//============================================================================= // AICommand_FleshpoundKing_ChestBeamAttack //============================================================================= // Performs the Fleshpound King's chest beam attack //============================================================================= // Killing Floor 2 // Copyright (C) 2017 Tripwire Interactive LLC // - Matt 'Squirrlz' Farber //============================================================================= class AICommand_FleshpoundKing_ChestBeamAttack extends AICommand_SpecialMove within KFAIController_ZedFleshpoundKing config(AI); /** Base constructor to handle init */ static function bool ChestBeamAttack( KFAIController_ZedFleshpoundKing AI ) { local AICommand_FleshpoundKing_ChestBeamAttack Cmd; if (AI != none) { Cmd = new (AI) default.class; if (Cmd != none) { AI.PushCommand(Cmd); return true; } } return false; } function Pushed() { super.Pushed(); AIActionStatus = "Starting chest beam attack AICommand"; if (Enemy != none) { Focus = Enemy; } } function Popped() { AIActionStatus = "Finished chest beam attack AICommand"; NextBeamCheckTime = WorldInfo.TimeSeconds + class'KFDifficulty_FleshpoundKing'.static.GetChestBeamCooldownTime( MyKFGameInfo.MyKFGRI ) + fRand(); super.Popped(); } state Command_SpecialMove { /** Checks circumstances in which to consider special move completed */ function bool IsSpecialMoveComplete() { if( !bPreparingMove || MyKFPawn == None || MyKFPawn.SpecialMove == SM_None || MyKFPawn.SpecialMove != GetSpecialMove() ) { return true; } return false; } function ESpecialMove GetSpecialMove() { return SM_HoseWeaponAttack; } } defaultproperties { bShouldCheckSpecialMove=true bIgnoreNotifies=true bAllowedToAttack=false TimeOutDelaySeconds=10.f bIgnoreStepAside=true }