示例#1
0
        public static List <IAssetVO> GetBattleRecordProjectileAssets(Map map, BattleRecord battleRecord, List <string> attackerWarBuffs, List <string> defenderWarBuffs, List <string> attackerEquipment, List <string> defenderEquipment)
        {
            IDataController      dc   = Service.Get <IDataController>();
            List <IAssetVO>      list = new List <IAssetVO>();
            BattleDeploymentData attackerDeploymentData = battleRecord.AttackerDeploymentData;

            if (attackerDeploymentData != null)
            {
                ProjectileUtils.AddTroopProjectileAssets(attackerDeploymentData.TroopData, list, dc);
                ProjectileUtils.AddSpecialAttackProjectileAssets(attackerDeploymentData.SpecialAttackData, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(attackerDeploymentData.HeroData, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(attackerDeploymentData.ChampionData, list, dc);
            }
            BattleDeploymentData defenderDeploymentData = battleRecord.DefenderDeploymentData;

            if (defenderDeploymentData != null)
            {
                ProjectileUtils.AddTroopProjectileAssets(defenderDeploymentData.TroopData, list, dc);
                ProjectileUtils.AddSpecialAttackProjectileAssets(defenderDeploymentData.SpecialAttackData, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(defenderDeploymentData.HeroData, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(defenderDeploymentData.ChampionData, list, dc);
            }
            Dictionary <string, int> attackerGuildTroops = battleRecord.AttackerGuildTroops;

            ProjectileUtils.AddTroopProjectileAssets(attackerGuildTroops, list, dc);
            Dictionary <string, int> defenderGuildTroops = battleRecord.DefenderGuildTroops;

            ProjectileUtils.AddTroopProjectileAssets(defenderGuildTroops, list, dc);
            Dictionary <string, int> defenderChampions = battleRecord.DefenderChampions;

            ProjectileUtils.AddTroopProjectileAssets(defenderChampions, list, dc);
            ProjectileUtils.AddBattleProjectileAssets(map, null, null, attackerWarBuffs, defenderWarBuffs, attackerEquipment, defenderEquipment, list, dc);
            return(list);
        }
示例#2
0
        public static List <IAssetVO> GetBattleProjectileAssets(Map map, BattleTypeVO battle, BattleDeploymentData defensiveWaveData, List <string> attackerWarBuffs, List <string> defenderWarBuffs, Dictionary <string, int> defenderSquadTroops, Dictionary <string, int> defenderChampions, List <string> attackerEquipment, List <string> defenderEquipment)
        {
            IDataController dc   = Service.Get <IDataController>();
            List <IAssetVO> list = new List <IAssetVO>();

            if (battle == null || !battle.OverridePlayerUnits)
            {
                Inventory inventory = Service.Get <CurrentPlayer>().Inventory;
                ProjectileUtils.AddTroopProjectileAssets(inventory.Troop, list, dc);
                ProjectileUtils.AddSpecialAttackProjectileAssets(inventory.SpecialAttack, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(inventory.Hero, list, dc);
                ProjectileUtils.AddTroopProjectileAssets(inventory.Champion, list, dc);
            }
            List <SquadDonatedTroop> troops = Service.Get <SquadController>().StateManager.Troops;

            if (troops != null)
            {
                int i     = 0;
                int count = troops.Count;
                while (i < count)
                {
                    ProjectileUtils.AddTroopProjectileAssets(troops[i].TroopUid, list, dc);
                    i++;
                }
            }
            ProjectileUtils.AddTroopProjectileAssets(defenderSquadTroops, list, dc);
            ProjectileUtils.AddTroopProjectileAssets(defenderChampions, list, dc);
            ProjectileUtils.AddBattleProjectileAssets(map, battle, defensiveWaveData, attackerWarBuffs, defenderWarBuffs, attackerEquipment, defenderEquipment, list, dc);
            return(list);
        }
示例#3
0
 public unsafe static long $Invoke0(long instance, long *args)
 {
     ProjectileUtils.AddBattleProjectileAssets((Map)GCHandledObjects.GCHandleToObject(*args), (BattleTypeVO)GCHandledObjects.GCHandleToObject(args[1]), (BattleDeploymentData)GCHandledObjects.GCHandleToObject(args[2]), (List <string>)GCHandledObjects.GCHandleToObject(args[3]), (List <string>)GCHandledObjects.GCHandleToObject(args[4]), (List <string>)GCHandledObjects.GCHandleToObject(args[5]), (List <string>)GCHandledObjects.GCHandleToObject(args[6]), (List <IAssetVO>)GCHandledObjects.GCHandleToObject(args[7]), (IDataController)GCHandledObjects.GCHandleToObject(args[8]));
     return(-1L);
 }