106 lines
2.1 KiB
Ucode
106 lines
2.1 KiB
Ucode
/*
|
|
--------------------------------------------------------------
|
|
KFUseTrigger_Story
|
|
--------------------------------------------------------------
|
|
|
|
Custom Use Trigger that can trigger additional events.
|
|
|
|
Author : Alex Quick
|
|
|
|
--------------------------------------------------------------
|
|
*/
|
|
|
|
|
|
class KFUseTrigger_Story extends KFUseTrigger;
|
|
|
|
/* event to fire off when the doors associated with this trigger have been fully welded shut */
|
|
var(Events) name FullWeldEvent;
|
|
|
|
/* if true, this trigger starts life dormant. it can only be 'used' once it has been triggered */
|
|
var() bool bTriggerEnabled;
|
|
|
|
var() bool bEnabled;
|
|
|
|
var() bool bAllowZEDInteraction;
|
|
|
|
var() bool bShouldBeEnabledInWaveMode;
|
|
|
|
function PostBeginPlay()
|
|
{
|
|
Super.PostBeginPlay();
|
|
if(KFStoryGameinfo(Level.Game) == none)
|
|
{
|
|
bEnabled = bShouldBeEnabledInWaveMode;
|
|
}
|
|
}
|
|
|
|
function bool TriggerIsUseable()
|
|
{
|
|
return bEnabled && bCollideActors;
|
|
}
|
|
|
|
function AddWeld( float ExtraWeld, bool bZombieAttacking, Pawn WelderInst )
|
|
{
|
|
if(!TriggerIsUseable() && WelderInst != none)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Super.AddWeld(ExtraWeld,bZombieAttacking,WelderInst);
|
|
|
|
if(WeldStrength >= MaxWeldStrength)
|
|
{
|
|
TriggerEvent(FullWeldEvent,self,none);
|
|
}
|
|
}
|
|
|
|
function UnWeld(float DeWeldage,bool bZombieAttacking, Pawn WelderInst)
|
|
{
|
|
if(!TriggerIsUseable() && WelderInst != none)
|
|
{
|
|
return;
|
|
}
|
|
|
|
Super.UnWeld(DeWeldage,bZombieAttacking,WelderInst);
|
|
}
|
|
|
|
function UsedBy(Pawn user)
|
|
{
|
|
if(!TriggerIsUseable())
|
|
{
|
|
return;
|
|
}
|
|
|
|
Super.UsedBy(user);
|
|
}
|
|
|
|
function Touch( Actor Other )
|
|
{
|
|
if(bEnabled && (!Other.IsA('KFMonster') || bAllowZEDInteraction))
|
|
{
|
|
Super.Touch(Other);
|
|
}
|
|
}
|
|
|
|
function Reset()
|
|
{
|
|
Super.Reset();
|
|
bEnabled = !bTriggerEnabled ;
|
|
}
|
|
|
|
function Trigger( actor Other, pawn EventInstigator )
|
|
{
|
|
if(bTriggerEnabled)
|
|
{
|
|
bEnabled = !bEnabled;
|
|
}
|
|
|
|
Super.Trigger(other,EventInstigator);
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
bShouldBeEnabledInWaveMode = true
|
|
bEnabled = true
|
|
}
|