public void GenerateEnemyList(int waveIndex) { this.currentWaveIndex = waveIndex; StageInfoContainer stageInfo = GameManager.Instance.gameState.GetCurrentStage(); WaveInfoContainer waveInfo = stageInfo.GetWaveInfo(this.currentWaveIndex); List <JobActionsList> enemyList = waveInfo.GetEnemyList(); // float mult = stageInfo.GetDifficultyMult(); BattleType battleType = stageInfo.GetBattleType(); for (int i = 0; i < enemyList.Count; i++) { JobActionsList jobList = enemyList[i]; string name = jobList.prefab.Name + " (" + GetTargetNameFromIndex(i) + ")"; int index = i; Enemy enemy = new Enemy(); enemy.Initialize(jobList, name); EnemyObject instantiatedEnemy = enemy.InstantiateFromJob <EnemyObject>(jobList, name, index); // Apply stat adjustments based on difficulty PlayerStats stats = instantiatedEnemy.stats; /* * foreach(Stat stat in System.Enum.GetValues(typeof(Stat))) { * stats.ModifyStat(stat, (int) (stats.GetStat(stat) * mult)); * } */ int level = waveInfo.GetWaveInfo().averageLevel; if (battleType == BattleType.HARD_BATTLE) { level += 3; } else if (battleType == BattleType.EASY_BATTLE) { level -= 1; } else if (battleType == BattleType.BOSS) { // level += 10; // Should be done from inspector side } stats.ApplyStatsBasedOnLevel(level); // TODO: Some sort of entrance animation instantiatedEnemy.SetSortingOrder(i); FighterSlot slot = enemySlots[i]; slot.InitializePosition(instantiatedEnemy); GameManager.Instance.gameState.enemyParty.SetFighter(i, enemy); } }
public void SetStageInfoContainer(StageInfoContainer stageInfoContainer) { _stageInfoContainer = stageInfoContainer; // Set enemy list string listAsText = ""; foreach (KeyValuePair <string, int> enemy in stageInfoContainer.GetEnemyTally()) { // TODO: text display is temporary; switch to images or something later listAsText += enemy.Value + "x " + enemy.Key + "\n"; } _infoText.gameObject.SetActive(true); _infoText.text = listAsText; }
private void OnWaveComplete() { StageInfoContainer stageInfo = GameManager.Instance.gameState.GetCurrentStage(); WaveInfoContainer waveInfo = stageInfo.GetWaveInfo(GameManager.Instance.battleComponents.field.currentWaveIndex); GameManager.Instance.battleComponents.field.currentWaveIndex++; if (GameManager.Instance.battleComponents.field.currentWaveIndex >= stageInfo.numWaves) { GameManager.Instance.battleComponents.stageController.LoadNextScene(); } else { GameManager.Instance.battleComponents.field.GenerateEnemyList(GameManager.Instance.battleComponents.field.currentWaveIndex); } }
private void InitializeCombatStage(ZoneProperties properties, int stageCol, StageNode stage, BattleType battleType) { StageInfoContainer stageInfo = new StageInfoContainer(properties.columns[stageCol - 1], battleType); stage.SetStageInfoContainer(stageInfo); }
public void SetStage(StageInfoContainer stageInfoContainer) { _currStage = stageInfoContainer; }