//============================================================================= // 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 }