// The main function used to resolve a round of combat public void TakeRound() { CUI.DisplayLine(""); // Apply defense modifiers first if (player_action == PlayerAction.Defend) { Player.ModifyDefense(4); } if (dragon_action == DragonAction.Defend) { Player.ModifyDefense(4); } // If Player Speed > Enemy Speed and Dragon Speed, Player goes first if (Player.GetSpeed() >= Enemy.GetSpeed() && Player.GetSpeed() >= Dragon.GetSpeed()) { PlayerTurn(); // If Enemy not dead if (!Enemy.IsDead()) { //if a dragon exists and is not dead, it gets a turn if (Dragon != null && !Dragon.IsDead()) { //if it's faster than the enemy if (Dragon.GetSpeed() >= Enemy.GetSpeed()) { DragonTurn(); // If Enemy still not dead and not caputured if (!Enemy.IsDead() || !captured) { EnemyTurn(); } } //else if enemy is faster than dragon else { // If Enemy still not dead and not caputured if (!Enemy.IsDead() || !captured) { EnemyTurn(); } //if dragon is not dead, dragon's turn if (!Dragon.IsDead()) { DragonTurn(); } } } //else if no usable dragonn else { // If Enemy still not dead and not caputured if (!Enemy.IsDead() || !captured) { EnemyTurn(); } } } } //Else if dragon is fastest else if (Dragon != null && !Dragon.IsDead() && Dragon.GetSpeed() >= Enemy.GetSpeed()) { DragonTurn(); // If Enemy not dead and player not dead if (!Enemy.IsDead() && !Player.IsDead()) { //if player's faster than the enemy if (Player.GetSpeed() >= Enemy.GetSpeed()) { PlayerTurn(); // If Enemy still not dead and not caputured if (!Enemy.IsDead() || !captured) { EnemyTurn(); } } //else if enemy is faster than player else { // If Enemy still not dead and not caputured if (!Enemy.IsDead() || !captured) { EnemyTurn(); } //if player is not dead, player's turn if (!Player.IsDead()) { PlayerTurn(); } } } } //Else if enemy is fastest else { EnemyTurn(); //If Player not dead if (!Player.IsDead()) { //if a dragon exists and is not dead, it gets a turn if (Dragon != null && !Dragon.IsDead()) { //if dragon's faster than the player if (Dragon.GetSpeed() >= Player.GetSpeed()) { DragonTurn(); //if enemy and player not dead, player's turn if (!Enemy.IsDead() && !Player.IsDead()) { PlayerTurn(); } } //else if player is faster than dragon else { PlayerTurn(); //if dragon is not dead and enemy is not caputured or dead, dragon's turn if (!Dragon.IsDead() && !Enemy.IsDead() && !captured) { DragonTurn(); } } } //else if no usable dragonn else { PlayerTurn(); } } } // Reset variables at the end of the round player_action = PlayerAction.None; dragon_action = DragonAction.None; item = string.Empty; SuccessUse = false; // Reset any modifiers that occurred this round Player.ResetStats(); Dragon.ResetStats(); Enemy.ResetStats(); // Reset queue status CUI.ResetQueue(); CUI.UpdateSliders(Player.GetCurrentHealth(), Dragon.GetCurrentHealth(), Dragon.GetCurrentMana(), Enemy.GetCurrentHealth()); // If Player dead if (Player.IsDead() || Player.AllDragonsDead()) { // Game over CUI.DisplayLine("Game over"); CUI.Wait(); } // If Dragon dead if (Dragon.IsDead()) { GameObject.Find("Dragon").GetComponent <SpriteRenderer>().enabled = false; //if the player has dragons left with > 0 HP, send one out if (!Player.AllDragonsDead()) { CUI.SendOutDragon(); } } // If Enemy dead if (Enemy.IsDead()) { // Award experience and gold //float gold = Enemy.GetGold(); float gold = Random.Range(1, 25); float exp = 100; InventoryCanvasController.instance.InsertReward(); Player.AddGold(gold); Player.GainExperience(100); Dragon.GainExperience(100); CUI.DisplayLine(""); CUI.DisplayLine("Enemy defeated!"); CUI.DisplayLine("Gained " + gold.ToString() + " gold!"); CUI.DisplayLine("Gained " + exp.ToString() + " XP!"); CUI.DisplayLine("Press any key to continue..."); CUI.Wait(); } RoundCounter++; }