//============================================================================= // KFInterface_MonsterBoss //============================================================================= // Pawn interface for any shared behavior between bosses, whether they are // unique based on KFPawn_MonsterBoss, or an upgraded variant (ex: FP King). //============================================================================= // Killing Floor 2 // Copyright (C) 2017 Tripwire Interactive LLC //============================================================================= interface KFInterface_MonsterBoss; //AI Controller notes: // - Two calls to class'AICommand_BossTheatrics'.static.DoTheatrics in the AI controller for a boss // - See KFAIController_ZedBoss or KFAIController_ZedFleshpoundKing //Pawn Notes: // - Generally do the following in the PossessedBy() call: // - PlayBossMusic(); // - ServerDoSpecialMove(SM_BossTheatrics); //Pawn overrides to disable functionality related to head popping. These are optional, but are implemented for all standard TWI bosses. // - function CauseHeadTrauma(float BleedOutTime = 5.f); // - simulated function bool PlayDismemberment(int InHitZoneIndex, class InDmgType, optional vector HitDirection) // - simulated function PlayHeadAsplode() // - simulated function ApplyHeadChunkGore(class DmgType, vector HitLocation, vector HitDirection) //Quick access to a pawn reference simulated function KFPawn_Monster GetMonsterPawn(); //Localization Accessors simulated function string GetRandomBossCaption(); //Status Accessors static simulated event bool IsABoss(); simulated function float GetHealthPercent(); //Intro functionality simulated function SetAnimatedBossCamera(bool bEnable, optional vector CameraOffset); simulated function bool UseAnimatedBossCamera(); simulated function name GetBossCameraSocket(); simulated function vector GetBossCameraOffset(); //Death functionality function OnZedDied(Controller Killer); simulated function String GetIconPath(); //Wave functionality function KFAIWaveInfo GetWaveInfo(int BattlePhase, int Difficulty); function byte GetNumMinionsToSpawn();