Example #1
0
        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);
        }
Example #2
0
 public MPTroopSupplier(IEnhancedBattleTestCombatant combatant)
 {
     _combatant = combatant as MPCombatant;
     ArrangePriorities();
 }
Example #3
0
 public MPAgentOrigin(MPCombatant combatant, MPSpawnableCharacter character, MPTroopSupplier troopSupplier, BattleSideEnum side, int rank = -1, UniqueTroopDescriptor uniqueNo = default)
     : base(combatant, troopSupplier, side, rank, uniqueNo)
 {
     MPCharacter = character;
 }