1
0
KF2-Dev-Scripts/KFGame/Classes/KFAIWaveInfo.uc
2020-12-13 18:01:13 +03:00

74 lines
2.1 KiB
Ucode

//=============================================================================
// 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<KFAISpawnSquad> Squads;
/** The special squads - spawned once per wave */
var() const array<KFAISpawnSquad> SpecialSquads;
/** Total number of AI that spawn for 1 player on Normal */
var() const int MaxAI<ClampMin=1|ClampMax=200|DisplayName=TotalAIBase>; // make this max=42 for release
/** Squads that can be triggered to spawn */
var() const array<KFAISpawnSquad> EventSquads;
/** Copy the list of squads for this wave type */
function GetNewSquadList(out array<KFAISpawnSquad> 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<KFAISpawnSquad> 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<KFAISpawnSquad> 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
}