92 lines
2.2 KiB
Ucode
92 lines
2.2 KiB
Ucode
|
//=============================================================================
|
||
|
// KFRepairableActorTrigger
|
||
|
//=============================================================================
|
||
|
//
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2018 Tripwire Interactive LLC
|
||
|
//=============================================================================
|
||
|
class KFRepairableActorTrigger extends Trigger_PawnsOnly
|
||
|
placeable
|
||
|
native
|
||
|
implements(KFInterface_Usable);
|
||
|
|
||
|
var() KFRepairableActor RepairableActor;
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
#if WITH_EDITOR
|
||
|
virtual void CheckForErrors(); // Skip 'Trigger is not referenced' warning
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
simulated event PostBeginPlay()
|
||
|
{
|
||
|
if (RepairableActor != none)
|
||
|
{
|
||
|
RepairableActor.RepairTrigger = self;
|
||
|
}
|
||
|
|
||
|
super.PostBeginPlay();
|
||
|
}
|
||
|
|
||
|
simulated event Touch(Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal)
|
||
|
{
|
||
|
Super.Touch(Other, OtherComp, HitLocation, HitNormal);
|
||
|
if (Role == ROLE_Authority)
|
||
|
{
|
||
|
class'KFPlayerController'.static.UpdateInteractionMessages(Other);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
simulated event UnTouch(Actor Other)
|
||
|
{
|
||
|
super.UnTouch(Other);
|
||
|
if (Role == ROLE_Authority)
|
||
|
{
|
||
|
class'KFPlayerController'.static.UpdateInteractionMessages(Other);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function OnDestroyOrReset()
|
||
|
{
|
||
|
local KFPawn_Human P;
|
||
|
|
||
|
foreach TouchingActors(class'KFPawn_Human', P)
|
||
|
{
|
||
|
class'KFPlayerController'.static.UpdateInteractionMessages(P);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
simulated function bool GetIsUsable(Pawn User)
|
||
|
{
|
||
|
if (RepairableActor != none)
|
||
|
{
|
||
|
return RepairableActor.WeldIntegrity < RepairableActor.MaxWeldIntegrity;
|
||
|
}
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
function int GetInteractionIndex(Pawn User)
|
||
|
{
|
||
|
if (RepairableActor != none && RepairableActor.WeldIntegrity < RepairableActor.MaxWeldIntegrity)
|
||
|
{
|
||
|
if (User.Weapon != none && User.Weapon.Class.Name == 'KFWeap_Welder')
|
||
|
{
|
||
|
return INDEX_NONE;
|
||
|
}
|
||
|
return IMT_UseDoorWelded;
|
||
|
}
|
||
|
return IMT_UseDoor;
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
Begin Object NAME=CollisionCylinder LegacyClassName=Trigger_TriggerCylinderComponent_Class
|
||
|
CollisionRadius=+00200.000000
|
||
|
CollisionHeight=+00100.000000
|
||
|
End Object
|
||
|
|
||
|
bProjTarget=false
|
||
|
}
|