public void Init(int level, MageType mageType, GameObject[] enemies, SlidingBar slidingBar, Canvas canvas) { entity.InitStats(TypeIdentifier, level); Debug.Log(entity.Stats.Attack); Debug.Log(entity.Stats.MaxHealth); playerScript = Battle.playerScript; player = Battle.playerObject; this.mageType = mageType; switch (mageType) { case MageType.Normal: GetComponentInChildren <Renderer>().material.mainTexture = texture3; break; case MageType.Stun: GetComponentInChildren <Renderer>().material.mainTexture = texture2; break; case MageType.Heal: GetComponentInChildren <Renderer>().material.mainTexture = texture1; break; case MageType.Prince: break; default: throw new ArgumentOutOfRangeException(); } this.enemies = enemies; enemyScripts = new EnemyBattleScript[enemies.Length]; for (int i = 0; i < enemies.Length; i++) { enemyScripts[i] = enemies[i].GetComponent <EnemyBattleScript>(); } alive = new bool[enemies.Length]; for (int i = 0; i < alive.Length; i++) { alive[i] = true; } slidingBarScript = slidingBar; slidingBar.SetMaxValue(entity.Stats.MaxHealth); slidingBar.SetCurValue(entity.CurrentHealth); this.canvas = canvas; this.canvas.enabled = true; }
// Use this for initialization void Start() { won = false; xpNotCounted = true; enemiesGameObjects.Clear(); enemiesScripts.Clear(); playerTurn = true; enemiesAmount = Enemies.Length; GameObject player = Instantiate(PlayerPrefab, PlayerTransform); playerObject = player; playerScript = player.GetComponent <PlayerBattleScript>(); switch (enemiesAmount) { case 1: case 3: enemyTransforms = EnemiesTransforms3; break; case 2: enemyTransforms = EnemiesTransforms2; break; default: throw new Exception("EnemiesAmount invalid"); } for (int i = 0; i < enemiesAmount; i++) { GameObject enemy; if (Enemies[i].MageType == MageType.Prince) { enemy = Instantiate(PrincePrefab, enemyTransforms[i]); } else { enemy = Instantiate(MagePrefab, enemyTransforms[i]); } EnemyBattleScript enemyScript = enemy.GetComponent <EnemyBattleScript>(); enemiesGameObjects.Add(enemy); enemiesScripts.Add(enemyScript); } for (int i = 0; i < enemiesAmount; i++) { GameObject enemy = enemiesGameObjects[i]; EnemyBattleScript enemyScript = enemy.GetComponent <EnemyBattleScript>(); Canvas canvas = enemyTransforms[i].gameObject.GetComponentInChildren <Canvas>(); SlidingBar slidingBar = enemyTransforms[i].gameObject.GetComponentInChildren <SlidingBar>(); enemyScript.Init(Enemies[i].Level, Enemies[i].MageType, enemiesGameObjects.ToArray(), slidingBar, canvas); } alive = new bool[enemiesAmount]; for (int i = 0; i < alive.Length; i++) { alive[i] = true; } playerScript.SetEnemiesGameObjects(enemiesGameObjects.ToArray()); battleUIScript = battleUIObject.GetComponent <BattleUIController> (); battleUIScript.SetBattleScript(playerScript); battleUIScript.SetEnemiesGameObjects(enemiesGameObjects.ToArray()); healthBar.SetMaxValue(playerEntity.Stats.MaxHealth); }
void Awake() { SavedGame.gameObject.SetActive(false); if (!Battle.won) { SaveLoadController.Load(); } else if (Battle.worldObjName != "" && Battle.won) { SaveLoadController.EnemiesDefeatedList.Add(Battle.worldObjName); if (Battle.worldObjName == "Prince") { SceneManager.LoadScene("end_game"); } } SaveLoadController.SaveData data = SaveLoadController.data; if (SaveLoadController.data != null) { GameObject.FindGameObjectWithTag("Player").transform.position = new Vector3(data.PositionX, data.PositionY, data.PositionZ); Battle.playerEntity.InitStats("Dragon", data.CurrLevel); Battle.playerEntity.CurrentExperience = data.CurrExp; Battle.playerEntity.CurrentHealth = data.CurrHealth; StoryController.SetNumberScrollsFound(data.ScrollsCaughtCount); foreach (FountainController fountain in FindObjectsOfType <FountainController>()) { int i = Array.IndexOf(data.FountainsUsed, fountain.name); if (i > -1) { fountain.active = false; } } foreach (EnemyWorldScript enemy in FindObjectsOfType <EnemyWorldScript>()) { int i = Array.IndexOf(data.EnemiesDefeated, enemy.name); if (i > -1 || (enemy.name == Battle.worldObjName && Battle.won)) { Destroy(enemy.gameObject); } } foreach (ScrollController scrollSub in FindObjectsOfType <ScrollController>()) { GameObject scroll = scrollSub.transform.parent.gameObject; int i = Array.IndexOf(data.ScrollsCaught, scroll.name); if (i > -1) { Destroy(scroll.gameObject); } } } else { SaveLoadController.ResetValues(); SaveLoadController.Save(); } HealthBar.SetMaxValue(Battle.playerEntity.Stats.MaxHealth); HealthBar.SetCurValue(Battle.playerEntity.CurrentHealth); ExperienceBar.SetMaxValue(Battle.playerEntity.Stats.Experience); ExperienceBar.SetCurValue(Battle.playerEntity.CurrentExperience); LevelLabel.text = "Level " + Battle.playerEntity.Stats.Level; }