Beispiel #1
0
        public static List <IAssetVO> GetBattlePreloads(BattleInitializationData battleData)
        {
            List <IAssetVO>      list = new List <IAssetVO>();
            StaticDataController staticDataController = Service.StaticDataController;
            SkinController       skinController       = Service.SkinController;
            BattleTypeVO         battleTypeVO         = (battleData == null) ? null : battleData.BattleVO;

            if (battleTypeVO == null || !battleTypeVO.OverridePlayerUnits)
            {
                Inventory inventory = Service.CurrentPlayer.Inventory;
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(inventory.Troop, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <SpecialAttackTypeVO>(inventory.SpecialAttack, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(inventory.Hero, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(inventory.Champion, list, battleData.AttackerEquipment, staticDataController, skinController);
            }
            if (battleTypeVO != null)
            {
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(battleTypeVO.TroopData, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <SpecialAttackTypeVO>(battleTypeVO.SpecialAttackData, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(battleTypeVO.HeroData, list, battleData.AttackerEquipment, staticDataController, skinController);
                MapDataLoaderUtils.AddDeployablesToList <TroopTypeVO>(battleTypeVO.ChampionData, list, battleData.AttackerEquipment, staticDataController, skinController);
            }
            MapDataLoaderUtils.AddSummonableVisitorsToList(battleData, staticDataController, list, skinController);
            MapDataLoaderUtils.AddFXPreloads(list);
            return(list);
        }
Beispiel #2
0
 private void OnActionButtonClicked(UXButton button)
 {
     if (this.selectedMission.MissionType == MissionType.Attack)
     {
         BattleTypeVO battle = null;
         if (this.selectedMission.Map != null && !this.selectedMission.Grind)
         {
             battle = base.Sdc.Get <BattleTypeVO>(this.selectedMission.Map);
         }
         if (!GameUtils.HasAvailableTroops(true, battle))
         {
             AlertScreen.ShowModal(false, base.LangController.Get("NOT_ENOUGH_TROOPS_TITLE", new object[0]), base.LangController.Get("NOT_ENOUGH_TROOPS_FOR_ATTACK", new object[0]), null, null);
             base.EvtManager.SendEvent(EventId.UIPvESelection, new ActionMessageBIData("start", "no_troops"));
             return;
         }
     }
     button.Enabled = false;
     base.CampController.StartMission(this.selectedMission);
     base.EvtManager.SendEvent(EventId.MissionActionButtonClicked, this.selectedMission);
     base.EvtManager.SendEvent(EventId.UIPvESelection, new ActionMessageBIData("start", string.Empty));
     if (this.selectedMission.MissionType == MissionType.Own || this.selectedMission.MissionType == MissionType.Collect)
     {
         StringBuilder stringBuilder = new StringBuilder();
         stringBuilder.Append(this.selectedMission.BIChapterId);
         stringBuilder.Append("|");
         stringBuilder.Append(this.selectedMission.BIMissionId);
         stringBuilder.Append("|");
         stringBuilder.Append(this.selectedMission.BIMissionName);
         stringBuilder.Append("|");
         stringBuilder.Append(this.selectedMission.Uid);
         base.EvtManager.SendEvent(EventId.UIPvEMissionStart, stringBuilder.ToString());
     }
 }
Beispiel #3
0
 public NpcMapDataLoader Initialize(BattleInitializationData battleData, bool isPveBuffBase)
 {
     this.battleData    = battleData;
     this.battle        = battleData.BattleVO;
     this.isPveBuffBase = isPveBuffBase;
     return(this);
 }
Beispiel #4
0
        public static BattleInitializationData CreateFromBattleTypeVO(string id)
        {
            BattleTypeVO             battleTypeVO             = Service.StaticDataController.Get <BattleTypeVO>(id);
            BattleInitializationData battleInitializationData = new BattleInitializationData();

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

            battleInitializationData.Attacker = new BattleParticipant(currentPlayer.PlayerId, currentPlayer.PlayerName, currentPlayer.Faction);
            battleInitializationData.Defender = new BattleParticipant(battleTypeVO.DefenderId, battleTypeVO.DefenderId, FactionType.Invalid);
            battleInitializationData.BattleVO = battleTypeVO;
            battleInitializationData.AttackerDeployableData   = BattleDeploymentData.Copy(battleTypeVO);
            battleInitializationData.DefenderDeployableData   = BattleDeploymentData.CreateEmpty();
            battleInitializationData.AllowMultipleHeroDeploys = false;
            battleInitializationData.OverrideDeployables      = false;
            battleInitializationData.PlanetId     = battleTypeVO.Planet;
            battleInitializationData.BattleLength = battleTypeVO.BattleTime;
            if (battleInitializationData.BattleLength == 0)
            {
                battleInitializationData.BattleLength = GameConstants.PVP_MATCH_DURATION;
            }
            battleInitializationData.VictoryConditions       = Service.VictoryConditionController.GetDefaultConditions();
            battleInitializationData.IsReplay                = false;
            battleInitializationData.IsRevenge               = false;
            battleInitializationData.DefenseEncounterProfile = battleTypeVO.EncounterProfile;
            battleInitializationData.BattleScript            = battleTypeVO.BattleScript;
            battleInitializationData.AllowReplay             = true;
            battleInitializationData.DisabledBuildings       = new List <string>();
            return(battleInitializationData);
        }
Beispiel #5
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);
        }
Beispiel #6
0
 public static string GetBattleOnPlanetName(BattleTypeVO battle)
 {
     return(Service.Get <Lang>().Get("LANG_BATTLE_ON_PLANET", new object[]
     {
         LangUtils.GetBattleName(battle),
         LangUtils.GetPlanetDisplayName(battle.Planet)
     }));
 }
Beispiel #7
0
        public void LoadMeta(BattleTypeVO battle)
        {
            string          json            = FileUtils.Read(FileUtils.GetAbsFilePathInMyDocuments(battle.AssetName + ".json", "/src/starts-game-assets/develop/battles"));
            object          obj             = new JsonParser(json).Parse();
            CombatEncounter combatEncounter = new CombatEncounter().FromObject(obj) as CombatEncounter;

            Service.CurrentPlayer.Map = combatEncounter.map;
            Service.WorldTransitioner.SetSkipTransitions(true);
            Service.WorldInitializer.PrepareWorld(combatEncounter.map);
            Service.EditBaseController.Enable(true);
        }
Beispiel #8
0
 private static void AddBattleProjectileAssets(Map map, BattleTypeVO battle, BattleDeploymentData defensiveWaveData, List <string> attackerWarBuffs, List <string> defenderWarBuffs, List <string> attackerEquipment, List <string> defenderEquipment, List <IAssetVO> assets, IDataController dc)
 {
     if (battle != null)
     {
         ProjectileUtils.AddTroopProjectileAssets(battle.TroopData, assets, dc);
         ProjectileUtils.AddSpecialAttackProjectileAssets(battle.SpecialAttackData, assets, dc);
         ProjectileUtils.AddTroopProjectileAssets(battle.HeroData, assets, dc);
         ProjectileUtils.AddTroopProjectileAssets(battle.ChampionData, assets, dc);
         if (!string.IsNullOrEmpty(battle.EncounterProfile))
         {
             EncounterProfileVO optional = dc.GetOptional <EncounterProfileVO>(battle.EncounterProfile);
             if (optional != null && !string.IsNullOrEmpty(optional.GroupString))
             {
                 string[] array = optional.GroupString.Split(new char[]
                 {
                     '|'
                 });
                 int i   = 0;
                 int num = array.Length;
                 while (i < num)
                 {
                     if (!string.IsNullOrEmpty(array[i]))
                     {
                         string[] array2 = array[i].Split(new char[]
                         {
                             ','
                         });
                         if (array2.Length > 2)
                         {
                             ProjectileUtils.AddTroopProjectileAssets(array2[2], assets, dc);
                         }
                     }
                     i++;
                 }
             }
         }
     }
     if (defensiveWaveData != null)
     {
         ProjectileUtils.AddTroopProjectileAssets(defensiveWaveData.TroopData, assets, dc);
         ProjectileUtils.AddSpecialAttackProjectileAssets(defensiveWaveData.SpecialAttackData, assets, dc);
         ProjectileUtils.AddTroopProjectileAssets(defensiveWaveData.HeroData, assets, dc);
         ProjectileUtils.AddTroopProjectileAssets(defensiveWaveData.ChampionData, assets, dc);
         ProjectileUtils.AddTroopProjectileAssets(defensiveWaveData.SquadData, assets, dc);
     }
     ProjectileUtils.AddWarBuffAssets(attackerWarBuffs, assets, dc);
     ProjectileUtils.AddWarBuffAssets(defenderWarBuffs, assets, dc);
     ProjectileUtils.AddEquipmentAssets(attackerEquipment, assets, dc);
     ProjectileUtils.AddEquipmentAssets(defenderEquipment, assets, dc);
     ProjectileUtils.AddBuildingProjectileAssets(map, assets, dc);
 }
Beispiel #9
0
        public override void Start()
        {
            Service.EventManager.SendEvent(EventId.InitializeWorldStart, null);
            new BuildingLookupController();
            new WorldController();
            new WorldInitializer();
            new WorldPreloader();
            new BuildingController();
            new PlayerValuesController();
            new HomeMapDataLoader();
            new NpcMapDataLoader();
            new PvpMapDataLoader();
            new WarBaseMapDataLoader();
            new ReplayMapDataLoader();
            new LightingEffectsController();
            new PlanetEffectController();
            new CombineMeshManager();
            new ShaderTimeController();
            Service.CurrentPlayer.Map.InitializePlanet();
            Service.CurrentPlayer.BattleHistory.SetupBattles();
            IMapDataLoader mapDataLoader;

            if (Service.CurrentPlayer.HasNotCompletedFirstFueStep() && GameConstants.START_FUE_IN_BATTLE_MODE)
            {
                mapDataLoader = Service.NpcMapDataLoader;
                BattleTypeVO battle = Service.StaticDataController.Get <BattleTypeVO>(GameConstants.FUE_BATTLE);
                ((NpcMapDataLoader)mapDataLoader).Initialize(battle);
                Service.UXController.HUD.Visible = false;
            }
            else
            {
                mapDataLoader = Service.HomeMapDataLoader;
            }
            Service.EventManager.SendEvent(EventId.InitializeWorldEnd, null);
            Service.WorldTransitioner.StartTransition(new WorldToWorldTransition(null, mapDataLoader, new TransitionCompleteDelegate(this.OnTransitionComplete), true, true));
        }
Beispiel #10
0
 public NpcMapDataLoader Initialize(BattleTypeVO battle)
 {
     this.battle = battle;
     return(this);
 }
Beispiel #11
0
 public static string GetBattleName(BattleTypeVO battleType)
 {
     return(Service.Get <Lang>().Get(battleType.BattleName, new object[0]));
 }