예제 #1
0
        public static BattleInitializationData CreateFromMemberWarData(SquadMemberWarData memberWarData, Dictionary <string, int> donatedSquadTroops, Dictionary <string, int> champions, FactionType faction, string participantSquadId, List <string> equipment)
        {
            BattleInitializationData battleInitializationData = new BattleInitializationData();

            battleInitializationData.BattleType = BattleType.PvpAttackSquadWar;
            CurrentPlayer currentPlayer = Service.CurrentPlayer;

            battleInitializationData.Attacker                     = new BattleParticipant(currentPlayer.PlayerId, currentPlayer.PlayerName, currentPlayer.Faction);
            battleInitializationData.Attacker.GuildId             = Service.SquadController.StateManager.GetCurrentSquad().SquadID;
            battleInitializationData.Defender                     = new BattleParticipant(memberWarData.SquadMemberId, memberWarData.SquadMemberName, faction);
            battleInitializationData.Defender.GuildId             = participantSquadId;
            battleInitializationData.AttackerDeployableData       = BattleDeploymentData.CreateEmpty();
            battleInitializationData.DefenderDeployableData       = BattleDeploymentData.CreateEmpty();
            battleInitializationData.AllowMultipleHeroDeploys     = false;
            battleInitializationData.OverrideDeployables          = false;
            battleInitializationData.BattleLength                 = GameConstants.PVP_MATCH_DURATION;
            battleInitializationData.PlanetId                     = memberWarData.BaseMap.Planet.Uid;
            battleInitializationData.MemberWarData                = memberWarData;
            battleInitializationData.VictoryConditions            = Service.VictoryConditionController.GetDefaultConditions();
            battleInitializationData.DefenderGuildTroopsAvailable = donatedSquadTroops;
            battleInitializationData.DefenderChampionsAvailable   = champions;
            battleInitializationData.AttackerGuildTroopsAvailable = BattleInitializationData.GetCurrentPlayerGuildTroops();
            battleInitializationData.DisabledBuildings            = null;
            battleInitializationData.IsReplay                     = false;
            battleInitializationData.IsRevenge                    = false;
            battleInitializationData.AllowReplay                  = true;
            SquadWarManager warManager = Service.SquadController.WarManager;

            battleInitializationData.AttackerWarBuffs  = warManager.GetBuffBasesOwnedBySquad(battleInitializationData.Attacker.GuildId);
            battleInitializationData.DefenderWarBuffs  = warManager.GetBuffBasesOwnedBySquad(battleInitializationData.Defender.GuildId);
            battleInitializationData.AttackerEquipment = BattleInitializationData.GetCurrentPlayerEquipment(battleInitializationData.PlanetId);
            battleInitializationData.DefenderEquipment = equipment;
            return(battleInitializationData);
        }
예제 #2
0
        public List <IAssetVO> GetProjectilePreloads(Map map)
        {
            List <string> attackerWarBuffs = null;
            List <string> defenderWarBuffs = null;
            Squad         currentSquad     = Service.SquadController.StateManager.GetCurrentSquad();

            if (currentSquad != null)
            {
                SquadWarManager warManager = Service.SquadController.WarManager;
                attackerWarBuffs = warManager.GetBuffBasesOwnedBySquad(currentSquad.SquadID);
                defenderWarBuffs = warManager.GetBuffBasesOwnedBySquad(this.squadId);
            }
            return(ProjectileUtils.GetBattleProjectileAssets(map, null, null, attackerWarBuffs, defenderWarBuffs, this.defenderSquadTroops, this.defenderChampions, this.battleData.AttackerEquipment, this.battleData.DefenderEquipment));
        }
예제 #3
0
        private static BattleInitializationData CreateBuffBaseBattleFromBattleTypeVO(string id, SquadWarBuffBaseData buffBaseData)
        {
            BattleInitializationData battleInitializationData = BattleInitializationData.CreateFromBattleTypeVO(id);

            battleInitializationData.BattleType                   = BattleType.PveBuffBase;
            battleInitializationData.Attacker.GuildId             = Service.SquadController.StateManager.GetCurrentSquad().SquadID;
            battleInitializationData.AttackerGuildTroopsAvailable = BattleInitializationData.GetCurrentPlayerGuildTroops();
            SquadWarManager warManager = Service.SquadController.WarManager;

            battleInitializationData.AttackerWarBuffs = warManager.GetBuffBasesOwnedBySquad(battleInitializationData.Attacker.GuildId);
            battleInitializationData.DefenderWarBuffs = null;
            SquadWarSquadData squadData  = warManager.GetSquadData(SquadWarSquadType.PLAYER_SQUAD);
            SquadWarSquadData squadData2 = warManager.GetSquadData(SquadWarSquadType.OPPONENT_SQUAD);
            string            ownerId    = buffBaseData.OwnerId;

            if (!string.IsNullOrEmpty(ownerId))
            {
                if (ownerId == squadData2.SquadId)
                {
                    battleInitializationData.Defender.PlayerFaction = squadData2.Faction;
                }
                else if (ownerId == squadData.SquadId)
                {
                    battleInitializationData.Defender.PlayerFaction = squadData.Faction;
                }
            }
            else
            {
                battleInitializationData.Defender.PlayerFaction = FactionType.Smuggler;
            }
            battleInitializationData.AttackerEquipment = BattleInitializationData.GetCurrentPlayerEquipment(battleInitializationData.PlanetId);
            battleInitializationData.DefenderEquipment = null;
            return(battleInitializationData);
        }
예제 #4
0
        public List <IAssetVO> GetProjectilePreloads(Map map)
        {
            List <string> attackerWarBuffs = null;
            List <string> defenderWarBuffs = null;

            if (this.isPveBuffBase)
            {
                Squad currentSquad = Service.Get <SquadController>().StateManager.GetCurrentSquad();
                if (currentSquad != null)
                {
                    SquadWarManager warManager = Service.Get <SquadController>().WarManager;
                    attackerWarBuffs = warManager.GetBuffBasesOwnedBySquad(currentSquad.SquadID);
                }
            }
            List <string> attackerEquipment = null;
            List <string> defenderEquipment = null;

            if (this.battleData != null)
            {
                attackerEquipment = this.battleData.AttackerEquipment;
                defenderEquipment = this.battleData.DefenderEquipment;
            }
            return(ProjectileUtils.GetBattleProjectileAssets(map, this.battle, null, attackerWarBuffs, defenderWarBuffs, null, null, attackerEquipment, defenderEquipment));
        }