Okay, yeah -- the Starfleet Commander has double-sized waves. The full breakdown on wave sizes by AI type is thus, for those curious:
public static int AdjustNumberShipsFromAIType( AIPlayer player, AIPlanet planet, int NumberOfShips,
bool IsForReinforcement )
{
FInt multiplier = Mat.One;
bool isCore = planet.IsCoreAIPlanet || planet.IsHomePlanet;
if ( planet.ControllingPlayer < Configuration.FIRST_AI_PLAYER_INDEX )
isCore = false;
switch ( player.AIType )
{
case AIType.NeinzulYoungster:
if ( IsForReinforcement )
multiplier = FInt.FromParts( 0, 250 );
else
multiplier = FInt.FromParts( 1, 500 );
break;
case AIType.Mad_Bomber:
if ( IsForReinforcement )
{
if ( !isCore )
return 1; //only gets one ship per non-core reinforcement
else
multiplier = FInt.FromParts( 0, 250 );
}
else
multiplier = FInt.FromParts( 3, 0 );
break;
case AIType.Vicious_Raider:
case AIType.Technologist_Raider:
case AIType.Attritioner:
case AIType.ZenithDescendant:
case AIType.StarfleetCommander:
case AIType.Experimentalist:
case AIType.GravDriller:
if ( IsForReinforcement )
multiplier = FInt.FromParts( 0, 300 );
else
multiplier = FInt.FromParts( 2, 0 );
break;
case AIType.The_Tank:
case AIType.The_Core:
if ( IsForReinforcement )
multiplier = FInt.FromParts( 0, 300 );
else
multiplier = FInt.FromParts( 0, 500 );
break;
case AIType.Feeding_Parasite:
case AIType.Technologist_Parasite:
case AIType.Bully:
case AIType.Assassin:
case AIType.SpeedRacer:
if ( !IsForReinforcement )
multiplier = FInt.FromParts( 1, 500 );
break;
}
int numberOfShips = ( NumberOfShips * multiplier * AILoop.Instance.UnitCapScale.AIShipCountScale ).IntValue;
if ( numberOfShips < 1 )
return 1;
else
return numberOfShips;
}
In light of the recent wave size changes, these ones that do SUCH huge increases as 2x or 3x wave sizes might be a little harsh. Or not -- after all, variety is good. What do folks think?