private void StartFight() { PlayerResources playerResources = Global.Instance.Player.Resources; MissionData md = MissionsConfig.Instance.GetPlanet(EPlanetKey.PlanetA).GetMission(EMissionKey.PlanetA_Test1); if (playerResources.Fuel < md.FuelWinCost || playerResources.Fuel < md.FuelLoseCost || playerResources.Credits < md.CreditsWinCost || playerResources.Credits < md.CreditsLoseCost || playerResources.Minerals < md.MineralsWinCost || playerResources.Minerals < md.MineralsLoseCost) { Debug.LogWarning("Not enough resources"); return; } BaseSoldier[] soldiers = new BaseSoldier[_hiredUnits.Count]; for (int i = 0; i < soldiers.Length; i++) { soldiers[i] = new BaseSoldier(UnitsConfig.Instance.GetSoldierData(_hiredUnits[i]), Global.Instance.Player.City.GetSoldierUpgradesInfo(_hiredUnits[i]).Level); } Global.Instance.CurrentMission.PlanetKey = EPlanetKey.PlanetA; Global.Instance.CurrentMission.MissionKey = EMissionKey.PlanetA_Test1; Global.Instance.CurrentMission.SelectedSoldiers = new ArrayRO <BaseSoldier>(soldiers); FightManager.Setup(EFightMode.Campaign, MissionsConfig.Instance.GetPlanet(Global.Instance.CurrentMission.PlanetKey).GetMission(Global.Instance.CurrentMission.MissionKey)); Application.LoadLevel("Fight"); }
private void OnBtnPlayClick() { List <BaseSoldier> soldiers = new List <BaseSoldier>(); for (int i = 0; i < _hiredSoldiers.Length; i++) { if (_hiredSoldiers[i] >= 0) { soldiers.Add(new BaseSoldier(_availableSoldiers[_hiredSoldiers[i]], Global.Instance.Player.City.GetSoldierUpgradesInfo(_availableSoldiers[_hiredSoldiers[i]].Key).Level)); } } Global.Instance.CurrentMission.SelectedSoldiers = new ArrayRO <BaseSoldier>(soldiers.ToArray()); //setup random units and map EUnitKey[] availableUnits = new EUnitKey[] { EUnitKey.Scout, EUnitKey.Trooper, EUnitKey.Jawa_1 }; string[] availableMaps = new string[] { "battle1_forest_1", "battle1_forest_2" }; EUnitKey[] units = new EUnitKey[Random.Range(1, 6)]; units[0] = EUnitKey.Hero_Sniper; for (int i = 1; i < units.Length; i++) { units[i] = availableUnits[Random.Range(0, availableUnits.Length)]; } MissionMapData mmd = new MissionMapData(units, availableMaps[Random.Range(0, availableMaps.Length)]); MissionData md = new MissionData(EMissionKey.None, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, new MissionMapData[] { mmd }); FightManager.Setup(EFightMode.PvP, md); LoadingScreen.Instance.Show(); LoadingScreen.Instance.SetProgress(0f); Application.LoadLevel("Fight"); }
//private void UpdateSoldiersHireAvailability() { // int totalLeadershop = Global.Instance.Player.Heroes.Current.Leadership; // for (int i = 0; i < _availableSoldiersInfo.Length; i++) { // _availableSoldiersInfo[i].LblLeadershipCost.color = _leadershipSpent + _availableSoldiers[i].LeadershipCost > totalLeadershop ? Color.red : Color.white; // } //} #endregion #region hire/dismiss //private void HireSoldier(int unitIndex) { // if (_leadershipSpent + _availableSoldiers[unitIndex].LeadershipCost > Global.Instance.Player.Heroes.Current.Leadership) // { // return; // } // for (int i = 0; i < _hiredSoldiers.Length; i++) // { // if (_hiredSoldiers[i] < 0) // { // _hiredSoldiers[i] = unitIndex; // _hiredSoldiersButtons[i].image.sprite = _availableSoldiersInfo[unitIndex].Button.image.sprite; // _hiredSoldiersButtons[i].image.enabled = true; // break; // } // } // UpdateLeadership(); // UpdateSoldiersHireAvailability(); //} //private void DismissSoldier(int unitIndex) { // for (int i = unitIndex; i < _hiredSoldiers.Length - 1; i++) { // _hiredSoldiers[i] = _hiredSoldiers[i + 1]; // _hiredSoldiersButtons[i].image.sprite = _hiredSoldiersButtons[i + 1].image.sprite; // _hiredSoldiersButtons[i].image.enabled = _hiredSoldiersButtons[i].image.sprite != null; // } // _hiredSoldiers[_hiredSoldiers.Length - 1] = -1; // _hiredSoldiersButtons[_hiredSoldiersButtons.Length - 1].image.sprite = null; // _hiredSoldiersButtons[_hiredSoldiersButtons.Length - 1].image.enabled = false; // UpdateLeadership(); // UpdateSoldiersHireAvailability(); //} #endregion #region button listeners private void OnBtnPlayClick() { Global.Instance.CurrentMission.PlanetKey = _planetKey; Global.Instance.CurrentMission.MissionKey = _missionKey; _slotManager.SaveHiredSoldiers(); LoadingScreen.Instance.Show(); LoadingScreen.Instance.SetProgress(0f); FightManager.Setup(EFightMode.Campaign, MissionsConfig.Instance.GetPlanet(Global.Instance.CurrentMission.PlanetKey).GetMission(Global.Instance.CurrentMission.MissionKey)); Application.LoadLevel(GameConstants.Scenes.FIGHT); }