public void Resume() { _status = EFightStatus.InProgress; EventsAggregator.Fight.Broadcast(EFightEvent.Resume); Time.timeScale = 1; }
public void Pause() { _status = EFightStatus.Paused; EventsAggregator.Fight.Broadcast(EFightEvent.Pause); Time.timeScale = 0; }
public void StartFightPreparations() { _fightPreparationStep = EFightPreparationStep.Begin; _status = EFightStatus.Preparation; Global.Instance.Player.Heroes.Current.ResetDamageTaken(); Global.Instance.Player.Heroes.Current.ResetAggro(); StartCoroutine(LoadMap()); }
private void MapComlete() { _status = EFightStatus.Finished; EventsAggregator.Fight.Broadcast(EFightEvent.MapComplete); EventsAggregator.Network.AddListener <bool>(ENetworkEvent.FightDataCheckResponse, OnFightResultsCheckServerResponse); Global.Instance.Network.SendFightResults(_logger.ToJSON()); }
private void MapFail() { _status = EFightStatus.Finished; EventsAggregator.Fight.Broadcast(EFightEvent.MapFail); Debug.Log("Map fail"); MissionFail(); }
public void Withdraw() { _status = EFightStatus.Finished; Global.Instance.Network.SaveMissionFailResults(); _logger.Clear(); Global.Instance.Player.Resources.Fuel -= _missionData.FuelLoseCost; Global.Instance.Player.Resources.Credits -= _missionData.CreditsLoseCost; Global.Instance.Player.Resources.Minerals -= _missionData.MineralsLoseCost; Global.Instance.CurrentMission.Clear(); Clear(); _status = EFightStatus.None; //TODO: load correct planet Application.LoadLevel("Planet1"); }
//private void InitializeUnitsPositions(ArrayRO<BaseUnitBehaviour> units, Transform[] spawnPoints, Transform unitsRoot) { // Transform[] order = new Transform[spawnPoints.Length]; // List<BaseUnitBehaviour> sotrtedSoldiersList = new List<BaseUnitBehaviour>(); // for (int i = 0; i < units.Length; i++) { // if (units[i] != null) { // units[i].transform.parent = unitsRoot; // if (UnitsConfig.Instance.IsHero(units[i].UnitData.Data.Key)) { // //position hero // EItemKey rightHandWeapon = units[i].UnitData.Inventory.GetItemInSlot(EUnitEqupmentSlot.Weapon_RHand); // EItemKey leftHandWeapon = units[i].UnitData.Inventory.GetItemInSlot(EUnitEqupmentSlot.Weapon_LHand); // bool isMelee = true; // if (rightHandWeapon != EItemKey.None) { // isMelee = !ItemsConfig.Instance.IsWeaponRanged(rightHandWeapon); // } else if (leftHandWeapon != EItemKey.None) { // isMelee = !ItemsConfig.Instance.IsWeaponRanged(leftHandWeapon); // } // int positionIndex = isMelee ? 0 : 3; // if (order[positionIndex] != null) { // Debug.LogError("Two or more heroes of the same attack type found! position error!"); // return; // } // order[positionIndex] = units[i].transform; // } else { // //sort soldiers // int insertIndex = sotrtedSoldiersList.Count; // for (int j = 0; j < sotrtedSoldiersList.Count; j++) { // if (units[i].UnitData.AR > sotrtedSoldiersList[j].UnitData.AR) { // insertIndex = j; // break; // } else if (sotrtedSoldiersList[j].UnitData.AR == units[i].UnitData.AR) { // if (units[i].UnitData.HealthPoints > sotrtedSoldiersList[j].UnitData.HealthPoints) { //TODO: compare level // insertIndex = j; // break; // } // } // } // sotrtedSoldiersList.Insert(insertIndex, units[i]); // } // } // } // for (int i = 0, j = 0; i < order.Length; i++) { // if (order[i] == null && j < sotrtedSoldiersList.Count) { // order[i] = sotrtedSoldiersList[j].transform; // j++; // } // if (order[i] != null) { // order[i].position = spawnPoints[i].position; // } // } //} private IEnumerator RunUnits() { yield return(null); _status = EFightStatus.InProgress; //WARNING! temp for (int i = 0; i < _graphics.AllyUnits.Length; i++) { if (_graphics.AllyUnits[i] != null) { _graphics.AllyUnits[i].Run(); } } for (int i = 0; i < _graphics.EnemyUnits.Length; i++) { if (_graphics.EnemyUnits[i] != null) { _graphics.EnemyUnits[i].Run(); } } }
//private void InitializeUnitsPositions(ArrayRO<BaseUnitBehaviour> units, Transform[] spawnPoints, Transform unitsRoot) { // Transform[] order = new Transform[spawnPoints.Length]; // List<BaseUnitBehaviour> sotrtedSoldiersList = new List<BaseUnitBehaviour>(); // for (int i = 0; i < units.Length; i++) { // if (units[i] != null) { // units[i].transform.parent = unitsRoot; // if (UnitsConfig.Instance.IsHero(units[i].UnitData.Data.Key)) { // //position hero // EItemKey rightHandWeapon = units[i].UnitData.Inventory.GetItemInSlot(EUnitEqupmentSlot.Weapon_RHand); // EItemKey leftHandWeapon = units[i].UnitData.Inventory.GetItemInSlot(EUnitEqupmentSlot.Weapon_LHand); // bool isMelee = true; // if (rightHandWeapon != EItemKey.None) { // isMelee = !ItemsConfig.Instance.IsWeaponRanged(rightHandWeapon); // } else if (leftHandWeapon != EItemKey.None) { // isMelee = !ItemsConfig.Instance.IsWeaponRanged(leftHandWeapon); // } // int positionIndex = isMelee ? 0 : 3; // if (order[positionIndex] != null) { // Debug.LogError("Two or more heroes of the same attack type found! position error!"); // return; // } // order[positionIndex] = units[i].transform; // } else { // //sort soldiers // int insertIndex = sotrtedSoldiersList.Count; // for (int j = 0; j < sotrtedSoldiersList.Count; j++) { // if (units[i].UnitData.AR > sotrtedSoldiersList[j].UnitData.AR) { // insertIndex = j; // break; // } else if (sotrtedSoldiersList[j].UnitData.AR == units[i].UnitData.AR) { // if (units[i].UnitData.HealthPoints > sotrtedSoldiersList[j].UnitData.HealthPoints) { //TODO: compare level // insertIndex = j; // break; // } // } // } // sotrtedSoldiersList.Insert(insertIndex, units[i]); // } // } // } // for (int i = 0, j = 0; i < order.Length; i++) { // if (order[i] == null && j < sotrtedSoldiersList.Count) { // order[i] = sotrtedSoldiersList[j].transform; // j++; // } // if (order[i] != null) { // order[i].position = spawnPoints[i].position; // } // } //} private IEnumerator RunUnits() { yield return null; _status = EFightStatus.InProgress; //WARNING! temp for (int i = 0; i < _graphics.AllyUnits.Length; i++) { if (_graphics.AllyUnits[i] != null) { _graphics.AllyUnits[i].Run(); } } for (int i = 0; i < _graphics.EnemyUnits.Length; i++) { if (_graphics.EnemyUnits[i] != null) _graphics.EnemyUnits[i].Run(); } }
private void MapComlete() { _status = EFightStatus.Finished; EventsAggregator.Fight.Broadcast(EFightEvent.MapComplete); EventsAggregator.Network.AddListener<bool>(ENetworkEvent.FightDataCheckResponse, OnFightResultsCheckServerResponse); Global.Instance.Network.SendFightResults(_logger.ToJSON()); }
public void BattleFaile() { // return; M_FightStatus = EFightStatus.Fighting; }