public static MPCombatant CreateParty(BattleSideEnum side, BasicCultureObject culture, TeamConfig teamConfig, bool isPlayerTeam) { bool isAttacker = side == BattleSideEnum.Attacker; uint color1 = Utility.BackgroundColor(culture, isAttacker); uint color2 = Utility.ForegroundColor(culture, isAttacker); var combatant = new MPCombatant(side, teamConfig.TacticLevel, culture, new Tuple <uint, uint>(color1, color2), new Banner(culture.BannerKey, color1, color2)); if (teamConfig.HasGeneral) { if (teamConfig.General is MPCharacterConfig general) { combatant.AddCharacter( new MPSpawnableCharacter(general, (int)general.CharacterObject.DefaultFormationClass, general.FemaleRatio > 0.5, isPlayerTeam), 1); } } for (int i = 0; i < teamConfig.Troops.Troops.Length; ++i) { var troopConfig = teamConfig.Troops.Troops[i]; var mpCharacter = troopConfig.Character as MPCharacterConfig; if (mpCharacter == null) { continue; } var femaleCount = (int)(troopConfig.Number * mpCharacter.FemaleRatio + 0.49); var maleCount = troopConfig.Number - femaleCount; combatant.AddCharacter(new MPSpawnableCharacter(mpCharacter, i, true), femaleCount); combatant.AddCharacter(new MPSpawnableCharacter(mpCharacter, i, false), maleCount); } return(combatant); }
public MPTroopSupplier(IEnhancedBattleTestCombatant combatant) { _combatant = combatant as MPCombatant; ArrangePriorities(); }
public MPAgentOrigin(MPCombatant combatant, MPSpawnableCharacter character, MPTroopSupplier troopSupplier, BattleSideEnum side, int rank = -1, UniqueTroopDescriptor uniqueNo = default) : base(combatant, troopSupplier, side, rank, uniqueNo) { MPCharacter = character; }