예제 #1
0
 private void InstantiateBackground(MissionMapData mapData)
 {
     if (_backgroundResource != null)
     {
         //FightManager.SceneInstance.UI.ImgMapBackground.sprite = _backgroundResource;
     }
 }
예제 #2
0
    public void Load(MissionMapData mapData)
    {
        LoadResources(mapData);
        InstantiateGraphics(mapData);

        LoadingScreen.Instance.SetProgress(0.25f);
    }
    private void SetupEnemies(MissionData md)
    {
        float enemyImageWidth = _iconEnemy.UnitBG.transform.GetComponent <RectTransform>().rect.width;

        List <EUnitKey> unitKeys = new List <EUnitKey>();
        MissionMapData  mmd      = null;

        for (int i = 0; i < md.MapsCount; i++)
        {
            mmd = md.GetMap(i);
            for (int j = 0; j < mmd.Units.Length; j++)
            {
                if (unitKeys.IndexOf(mmd.Units[j]) == -1)
                {
                    unitKeys.Add(mmd.Units[j]);
                }
            }
        }
        _enemies = unitKeys.ToArray();

        _enemyIcons    = new UIBattlePreviewUnitInfo[_enemies.Length];
        _enemyIcons[0] = _iconEnemy;
        for (int i = 0; i < _enemies.Length; i++)
        {
            if (i > 0)
            {
                _enemyIcons[i] = (GameObject.Instantiate(_iconEnemy.gameObject) as GameObject).GetComponent <UIBattlePreviewUnitInfo>();
                _enemyIcons[i].transform.SetParent(_iconEnemy.transform.parent, false);
                _enemyIcons[i].UnitBG.rectTransform.anchoredPosition = _iconEnemy.UnitBG.rectTransform.anchoredPosition + new Vector2(i * (enemyImageWidth + _offsetImageEnemy), 0f);
            }
            _enemyIcons[i].Setup(_enemies[i]);
        }
    }
예제 #4
0
    private void LoadEnemyUnitsResources(MissionMapData mapData)
    {
        BaseUnitData      bud = null;
        BaseUnitBehaviour bub = null;

        //load unique units
        for (int i = 0; i < mapData.Units.Length; i++)
        {
            if (_enemyUnitsGraphicsResources.ContainsKey(mapData.Units[i]))
            {
                continue;
            }

            bud = UnitsConfig.Instance.GetUnitData(mapData.Units[i]);
            if (bud != null && !bud.PrefabName.Equals(string.Empty))
            {
                bub = LoadUnitResource <BaseUnitBehaviour>(string.Format("{0}/{1}", GameConstants.Paths.UNIT_RESOURCES, bud.PrefabName));
                _enemyUnitsGraphicsResources.Add(mapData.Units[i], bub);
            }
            else
            {
                Debug.LogError("Can't load unit graphics: " + mapData.Units[i]);
            }
        }
    }
예제 #5
0
    private IEnumerator InitializeUnits(MissionMapData mapData)
    {
        _fightPreparationStep = EFightPreparationStep.InitializeUnits;

        _rtfUnitsAmount = 0;

        _alliesCount = 1;               //hero
        for (int i = 0; i < Global.Instance.CurrentMission.SelectedSoldiers.Length; i++)
        {
            if (Global.Instance.CurrentMission.SelectedSoldiers[i] != null && !Global.Instance.CurrentMission.SelectedSoldiers[i].IsDead)
            {
                _alliesCount++;
            }
        }
        _enemiesCount = _graphics.EnemyUnits.Length;

        StartCoroutine(InitializeUnitsData(mapData));
        while (_fightPreparationStep != EFightPreparationStep.UnitsGraphicsInitialized)
        {
            yield return(null);
        }
        UnitSet.Instance.SetUnitPositions();

        _fightPreparationStep = EFightPreparationStep.UnitsInitialized;
    }
예제 #6
0
    public IEnumerator LoadMap()
    {
        LoadingScreen.Instance.SetProgress(0.1f);

        _graphics.Unload(false);
        _logger.Clear();

        MissionMapData mapData = _missionData.GetMap(_currentMapIndex);

        _fightPreparationStep = EFightPreparationStep.MapGraphicsLoad;
        _graphics.Load(mapData);
        yield return(null);

        _fightPreparationStep = EFightPreparationStep.MapGraphicsLoaded;

        StartCoroutine(InitializeUnits(mapData));
        while (_fightPreparationStep != EFightPreparationStep.UnitsInitialized)
        {
            yield return(null);
        }
        _fightPreparationStep = EFightPreparationStep.End;

        StartCoroutine(PlayFightDialog());
        _ui.HideFader();
    }
    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");
    }
예제 #8
0
 private void LoadBackgroundResources(MissionMapData mapData)
 {
     if (!mapData.MapBackgroundPath.Equals(string.Empty))
     {
         _backgroundResource = UIResourcesManager.Instance.GetResource <Sprite>(string.Format("{0}/{1}", GameConstants.Paths.UI_MAP_BACKGROUND_RESOURCES, mapData.MapBackgroundPath));
     }
 }
예제 #9
0
    private void LoadResources(MissionMapData mapData)
    {
        LoadBackgroundResources(mapData);
        LoadAllyUnitsResources();
        LoadEnemyUnitsResources(mapData);

        _unitUIResource = Resources.Load(GameConstants.Paths.Prefabs.UI_UNIT) as GameObject;
    }
예제 #10
0
    private void InstantiateEnemyUnits(MissionMapData mapData)
    {
        //TODO: setup inventory

        BaseUnitBehaviour[] unitsList = new BaseUnitBehaviour[mapData.Units.Length];

        BaseUnitData      bud = null;
        BaseUnitBehaviour bub = null;

        //instantiate soldiers
        for (int i = 0; i < mapData.Units.Length; i++)
        {
            bub = (GameObject.Instantiate(_enemyUnitsGraphicsResources[mapData.Units[i]].gameObject) as GameObject).GetComponent <BaseUnitBehaviour>();
            bub.gameObject.name = "Enemy_" + mapData.Units[i] + " (" + i + ")";
            unitsList[i]        = bub;

            bud = UnitsConfig.Instance.GetUnitData(mapData.Units[i]);
            //LoadItemsResources(_enemyItemsGraphicsResources, mapData.Units[i], bub.ModelView, bud.GetBaseItemInSlot(EUnitEqupmentSlot.Weapon_RHand), bud.GetBaseItemInSlot(EUnitEqupmentSlot.Weapon_LHand), bud.GetBaseItemInSlot(EUnitEqupmentSlot.Armor));
        }

        //save
        _enemyUnits = new ArrayRO <BaseUnitBehaviour>(unitsList);
    }
예제 #11
0
    private IEnumerator InitializeUnitsData(MissionMapData mapData)
    {
        _fightPreparationStep = EFightPreparationStep.InitializeUnitsGraphics;

        float unitInitializationStep = (0.9f - 0.25f) / (_alliesCount + _enemiesCount);
        float currentLoadPercentage = 0.25f;

        //get player hero skills
        Dictionary<ESkillKey, BaseUnitSkill> playerHeroSkills = new Dictionary<ESkillKey, BaseUnitSkill>();
        SkillParameters skillParams = SkillsConfig.Instance.HetHeroSkillParameters(Global.Instance.Player.Heroes.Current.Data.Key);
        if (skillParams != null) {
            playerHeroSkills.Add(skillParams.Key, SkillsConfig.Instance.GetSkillInstance(skillParams));
        }
        ListRO<ESkillKey> playerHeroSkillKeys = Global.Instance.Player.HeroSkills.GetHeroSkills(Global.Instance.Player.Heroes.Current.Data.Key);
        for (int i = 0; i < playerHeroSkillKeys.Count; i++) {
            skillParams = SkillsConfig.Instance.GetSkillParameters(playerHeroSkillKeys[i]);
            if (skillParams != null) {
                playerHeroSkills.Add(skillParams.Key, SkillsConfig.Instance.GetSkillInstance(skillParams));
            }
        }

        _graphics.AllyUnits[_graphics.AllyUnits.Length - 1].Setup(Global.Instance.Player.Heroes.Current, playerHeroSkills,
            GameConstants.Tags.UNIT_ALLY, _graphics.UnitUIResource, Global.Instance.CurrentMission.SelectedSoldiers.Length);
        for(int i = 0; i < Global.Instance.CurrentMission.SelectedSoldiers.Length; i++) {
            if (!Global.Instance.CurrentMission.SelectedSoldiers[i].IsDead) {
                _graphics.AllyUnits[i].Setup(Global.Instance.CurrentMission.SelectedSoldiers[i], null, GameConstants.Tags.UNIT_ALLY, _graphics.UnitUIResource, i);	//TODO: setup units skills

                currentLoadPercentage += unitInitializationStep;
                LoadingScreen.Instance.SetProgress(currentLoadPercentage);

                yield return null;
            }
        }

        BaseUnitData bud = null;
        for (int i = 0; i < mapData.Units.Length; i++) {
            bud = UnitsConfig.Instance.GetUnitData(mapData.Units[i]);
            if (bud is BaseHeroData) {
                _graphics.EnemyUnits[i].Setup(new BaseHero(bud as BaseHeroData, 0), null, GameConstants.Tags.UNIT_ENEMY, _graphics.UnitUIResource, i);	//TODO: setup enemy hero inventory, hero skills
            } else {
                _graphics.EnemyUnits[i].Setup(new BaseSoldier(bud as BaseSoldierData, 1), null, GameConstants.Tags.UNIT_ENEMY, _graphics.UnitUIResource, i);	//TODO: setup enemy soldier upgrades, unit skills
            }

            currentLoadPercentage += unitInitializationStep;
            LoadingScreen.Instance.SetProgress(currentLoadPercentage);

            yield return null;
        }

        _fightPreparationStep = EFightPreparationStep.UnitsGraphicsInitialized;
    }
예제 #12
0
    private IEnumerator InitializeUnits(MissionMapData mapData)
    {
        _fightPreparationStep = EFightPreparationStep.InitializeUnits;

        _rtfUnitsAmount = 0;

        _alliesCount = 1;	//hero
        for (int i = 0; i < Global.Instance.CurrentMission.SelectedSoldiers.Length; i++) {
            if (Global.Instance.CurrentMission.SelectedSoldiers[i] != null && !Global.Instance.CurrentMission.SelectedSoldiers[i].IsDead) {
                _alliesCount++;
            }
        }
        _enemiesCount = _graphics.EnemyUnits.Length;

        StartCoroutine(InitializeUnitsData(mapData));
        while (_fightPreparationStep != EFightPreparationStep.UnitsGraphicsInitialized) {
            yield return null;
        }
        UnitSet.Instance.SetUnitPositions();

        _fightPreparationStep = EFightPreparationStep.UnitsInitialized;
    }
예제 #13
0
 private void InstantiateGraphics(MissionMapData mapData)
 {
     InstantiateBackground(mapData);
     InstantiateAllyUnits();
     InstantiateEnemyUnits(mapData);
 }
예제 #14
0
    private IEnumerator InitializeUnitsData(MissionMapData mapData)
    {
        _fightPreparationStep = EFightPreparationStep.InitializeUnitsGraphics;

        float unitInitializationStep = (0.9f - 0.25f) / (_alliesCount + _enemiesCount);
        float currentLoadPercentage  = 0.25f;

        //get player hero skills
        Dictionary <ESkillKey, BaseUnitSkill> playerHeroSkills = new Dictionary <ESkillKey, BaseUnitSkill>();
        SkillParameters skillParams = SkillsConfig.Instance.HetHeroSkillParameters(Global.Instance.Player.Heroes.Current.Data.Key);

        if (skillParams != null)
        {
            playerHeroSkills.Add(skillParams.Key, SkillsConfig.Instance.GetSkillInstance(skillParams));
        }
        ListRO <ESkillKey> playerHeroSkillKeys = Global.Instance.Player.HeroSkills.GetHeroSkills(Global.Instance.Player.Heroes.Current.Data.Key);

        for (int i = 0; i < playerHeroSkillKeys.Count; i++)
        {
            skillParams = SkillsConfig.Instance.GetSkillParameters(playerHeroSkillKeys[i]);
            if (skillParams != null)
            {
                playerHeroSkills.Add(skillParams.Key, SkillsConfig.Instance.GetSkillInstance(skillParams));
            }
        }

        _graphics.AllyUnits[_graphics.AllyUnits.Length - 1].Setup(Global.Instance.Player.Heroes.Current, playerHeroSkills,
                                                                  GameConstants.Tags.UNIT_ALLY, _graphics.UnitUIResource, Global.Instance.CurrentMission.SelectedSoldiers.Length);
        for (int i = 0; i < Global.Instance.CurrentMission.SelectedSoldiers.Length; i++)
        {
            if (!Global.Instance.CurrentMission.SelectedSoldiers[i].IsDead)
            {
                _graphics.AllyUnits[i].Setup(Global.Instance.CurrentMission.SelectedSoldiers[i], null, GameConstants.Tags.UNIT_ALLY, _graphics.UnitUIResource, i);                      //TODO: setup units skills

                currentLoadPercentage += unitInitializationStep;
                LoadingScreen.Instance.SetProgress(currentLoadPercentage);

                yield return(null);
            }
        }

        BaseUnitData bud = null;

        for (int i = 0; i < mapData.Units.Length; i++)
        {
            bud = UnitsConfig.Instance.GetUnitData(mapData.Units[i]);
            if (bud is BaseHeroData)
            {
                _graphics.EnemyUnits[i].Setup(new BaseHero(bud as BaseHeroData, 0), null, GameConstants.Tags.UNIT_ENEMY, _graphics.UnitUIResource, i);                  //TODO: setup enemy hero inventory, hero skills
            }
            else
            {
                _graphics.EnemyUnits[i].Setup(new BaseSoldier(bud as BaseSoldierData, 1), null, GameConstants.Tags.UNIT_ENEMY, _graphics.UnitUIResource, i);                    //TODO: setup enemy soldier upgrades, unit skills
            }

            currentLoadPercentage += unitInitializationStep;
            LoadingScreen.Instance.SetProgress(currentLoadPercentage);

            yield return(null);
        }

        _fightPreparationStep = EFightPreparationStep.UnitsGraphicsInitialized;
    }
	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");
	}
예제 #16
0
	public MissionData(EMissionKey key, int fuelWinCost, int fuelLoseCost, int creditsWinCost, int creditsLoseCost, int mineralsWinCost, int mineralsLoseCost, int rewardExperienceWin, int rewardExperienceLose, int rewardFuel, int rewardCredits, int rewardMinerals, MissionMapData[] maps) {
		_key = key;
		_fuelWinCost = fuelWinCost;
		_fuelLoseCost = fuelLoseCost;
		_creditsWinCost = creditsWinCost;
		_creditsLoseCost = creditsLoseCost;
		_mineralsWinCost = mineralsWinCost;
		_mineralsLoseCost = mineralsLoseCost;
		_rewardExperienceWin = rewardExperienceWin;
		_rewardExperienceLose = rewardExperienceLose;
		_rewardFuel = rewardFuel;
		_rewardCredits = rewardCredits;
		_rewardMinerals = rewardMinerals;
		_maps = maps;
	}