private void InstantiateBackground(MissionMapData mapData) { if (_backgroundResource != null) { //FightManager.SceneInstance.UI.ImgMapBackground.sprite = _backgroundResource; } }
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]); } }
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]); } } }
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; }
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"); }
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)); } }
private void LoadResources(MissionMapData mapData) { LoadBackgroundResources(mapData); LoadAllyUnitsResources(); LoadEnemyUnitsResources(mapData); _unitUIResource = Resources.Load(GameConstants.Paths.Prefabs.UI_UNIT) as GameObject; }
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); }
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 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; }
private void InstantiateGraphics(MissionMapData mapData) { InstantiateBackground(mapData); InstantiateAllyUnits(); InstantiateEnemyUnits(mapData); }
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"); }
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; }