//============================================================================= // KFSeqAct_SetTraderEnabled //============================================================================= // Action that enables or disables a trader trigger //============================================================================= // Killing Floor 2 // Copyright (C) 2019 Tripwire Interactive LLC //============================================================================= class KFSeqAct_SetTraderEnabled extends SequenceAction; // Whether list of traders should be reset to contain all currently-enabled traders var() bool bReinitializeTraderList; event Activated() { local SeqVar_Object ObjVar; local KFTraderTrigger Trader; local KFGameInfo KFGI; local bool bEnable; KFGI = KFGameInfo(class'WorldInfo'.static.GetWorldInfo().Game); if (KFGI == none) { `warn("KFSeqAct_SetTraderEnabled only supported for KFGameInfo types"); return; } bEnable = InputLinks[0].bHasImpulse; foreach LinkedVariables(class'SeqVar_Object', ObjVar, "KF Trader Trigger") { Trader = KFTraderTrigger(ObjVar.GetObjectValue()); if (!Trader.bEnabled && bEnable) { if (KFGI.TraderList.Find(Trader) == INDEX_NONE) { KFGI.TraderList.AddItem(Trader); } } else if (Trader.bEnabled && !bEnable) { KFGI.TraderList.RemoveItem(Trader); } Trader.bEnabled = bEnable; } if (KFGI.TraderList.Length == 0 || bReinitializeTraderList) { KFGI.InitTraderList(); } } defaultproperties { ObjCategory="Killing Floor" ObjName="Set Trader Enabled" InputLinks(0)=(LinkDesc="Enable") InputLinks(1)=(LinkDesc="Disable") VariableLinks(0)=(ExpectedType=class'SeqVar_Object',LinkDesc="KF Trader Trigger") bCallHandler=false }