Ejemplo n.º 1
0
    public void Resume()
    {
        _status = EFightStatus.InProgress;

        EventsAggregator.Fight.Broadcast(EFightEvent.Resume);
        Time.timeScale = 1;
    }
Ejemplo n.º 2
0
    public void Pause()
    {
        _status = EFightStatus.Paused;

        EventsAggregator.Fight.Broadcast(EFightEvent.Pause);
        Time.timeScale = 0;
    }
Ejemplo n.º 3
0
 public void StartFightPreparations()
 {
     _fightPreparationStep = EFightPreparationStep.Begin;
     _status = EFightStatus.Preparation;
     Global.Instance.Player.Heroes.Current.ResetDamageTaken();
     Global.Instance.Player.Heroes.Current.ResetAggro();
     StartCoroutine(LoadMap());
 }
Ejemplo n.º 4
0
    private void MapComlete()
    {
        _status = EFightStatus.Finished;

        EventsAggregator.Fight.Broadcast(EFightEvent.MapComplete);

        EventsAggregator.Network.AddListener <bool>(ENetworkEvent.FightDataCheckResponse, OnFightResultsCheckServerResponse);
        Global.Instance.Network.SendFightResults(_logger.ToJSON());
    }
Ejemplo n.º 5
0
    private void MapFail()
    {
        _status = EFightStatus.Finished;

        EventsAggregator.Fight.Broadcast(EFightEvent.MapFail);

        Debug.Log("Map fail");

        MissionFail();
    }
Ejemplo n.º 6
0
    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");
    }
Ejemplo n.º 7
0
    //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();
            }
        }
    }
Ejemplo n.º 8
0
    //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();
        }
    }
Ejemplo n.º 9
0
    private void MapFail()
    {
        _status = EFightStatus.Finished;

        EventsAggregator.Fight.Broadcast(EFightEvent.MapFail);

        Debug.Log("Map fail");

        MissionFail();
    }
Ejemplo n.º 10
0
    private void MapComlete()
    {
        _status = EFightStatus.Finished;

        EventsAggregator.Fight.Broadcast(EFightEvent.MapComplete);

        EventsAggregator.Network.AddListener<bool>(ENetworkEvent.FightDataCheckResponse, OnFightResultsCheckServerResponse);
        Global.Instance.Network.SendFightResults(_logger.ToJSON());
    }
Ejemplo n.º 11
0
    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");
    }
Ejemplo n.º 12
0
 public void StartFightPreparations()
 {
     _fightPreparationStep = EFightPreparationStep.Begin;
     _status = EFightStatus.Preparation;
     Global.Instance.Player.Heroes.Current.ResetDamageTaken();
     Global.Instance.Player.Heroes.Current.ResetAggro();
     StartCoroutine(LoadMap());
 }
Ejemplo n.º 13
0
    public void Resume()
    {
        _status = EFightStatus.InProgress;

        EventsAggregator.Fight.Broadcast(EFightEvent.Resume);
        Time.timeScale = 1;
    }
Ejemplo n.º 14
0
    public void Pause()
    {
        _status = EFightStatus.Paused;

        EventsAggregator.Fight.Broadcast(EFightEvent.Pause);
        Time.timeScale = 0;
    }
Ejemplo n.º 15
0
 public void BattleFaile()
 {
     //		return;
     M_FightStatus = EFightStatus.Fighting;
 }