//============================================================================= // KFAIWaveInfo //============================================================================= // The AI group setup for a wave //============================================================================= // Killing Floor 2 // Copyright (C) 2015 Tripwire Interactive LLC // - Christian "schneidzekk" Schneider //============================================================================= class KFAIWaveInfo extends Object hidecategories(Object); /** Once a squad is dead, do not reuse them */ var() const bool bRecycleWave; /** List of available squads to spawn for each wave */ var() const array Squads; /** The special squads - spawned once per wave */ var() const array SpecialSquads; /** Total number of AI that spawn for 1 player on Normal */ var() const int MaxAI; // make this max=42 for release /** Squads that can be triggered to spawn */ var() const array EventSquads; /** Copy the list of squads for this wave type */ function GetNewSquadList(out array out_SquadList) { local int i; // Clear our AvailableSquadList and repopulate it out_SquadList.Length = 0; for ( i = 0; i < Squads.Length; i++ ) { if ( Squads[i] != none ) { out_SquadList.AddItem(Squads[i]); } } } /** Add the special squad for this wave type */ function GetSpecialSquad(out array out_SquadList) { if ( SpecialSquads.Length > 0 ) { out_SquadList.AddItem( SpecialSquads[Rand(SpecialSquads.Length)] ); } } /** Copy the list of squads for this wave type */ function GetEventSquadList(out array out_SquadList) { local int i; // Clear our AvailableSquadList and repopulate it out_SquadList.Length = 0; for ( i = 0; i < EventSquads.Length; i++ ) { if ( EventSquads[i] != none ) { out_SquadList.AddItem(EventSquads[i]); } } } defaultproperties { bRecycleWave=true MaxAI=32 }