Game Manager File - RPG Game
Tue Mar 07 2023 17:23:20 GMT+0000 (Coordinated Universal Time)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace RPG_Game.Classes { public static class GameManager { public static List<Player> ListPlayers = new List<Player>(); public static Player CurrentPlayer; public static bool gameOver = false; private static int BattleRounds = 0; private static int MaxRounds = 5; public static void StartGame(string name) { try { GameManager.ListPlayers = DataXML.Load("HighScores.xml"); }catch(Exception e) { Console.WriteLine("Exception error : "+e.Message); } Player player = Search_Player(name); //Player is loaded from the file if(player != null) { if (player.IsDead()) { CurrentPlayer = new Player(name, 100); } else { CurrentPlayer = player; } } else //Player is not found { CurrentPlayer = new Player(name, 100); } } //------------------------------------------------------------------------------- public static Player Search_Player(string name) { foreach (Player player in ListPlayers) { if (String.Compare(player.Name, name, true) == 0) { return player; } } return null; } //----------------------------------------------------------------------------- public static void GameOver() { gameOver = true; Console.WriteLine("Game Over !"); } public static void SaveGame() { CurrentPlayer.Enemy = null; Player player = Search_Player(CurrentPlayer.Name); //Player is found if (player != null) { if (player.GP < CurrentPlayer.GP) { ListPlayers.Remove(player);// remove the existing player with lower score ListPlayers.Add(CurrentPlayer);//save the player of highest score in List } } else //Player is not found { ListPlayers.Add(CurrentPlayer);//save the player in List } //Save the List in XML file DataXML.Save("HighScores.xml", GameManager.ListPlayers); } //-------------------------------------------------------------------------------------------- public static void StartBattle() { Console.WriteLine("You are triying to kill the enemy " + GameManager.CurrentPlayer.Enemy.Name); GameManager.CurrentPlayer.Attack(); BattleRounds++; System.Threading.Thread.Sleep(1000);//wait for one second if (GameManager.CurrentPlayer.Enemy != null && GameManager.CurrentPlayer.Enemy.IsDead()) { Message.Danger("\nYour enemy is dead !"); BattleRounds = 0; GameManager.CurrentPlayer.Enemy = null; GameManager.Explore(); } else { Message.Danger("\nYour enemy is not dead !"); if (BattleRounds >= MaxRounds) { Message.Danger("\nYou panic and run away ...."); GameManager.CurrentPlayer.Enemy = null; BattleRounds = 0; GameManager.Explore(); } else { //The enemy attack the player if (GameManager.CurrentPlayer.Enemy != null) { GameManager.CurrentPlayer.Enemy.Attack(); Message.Danger("\n" + GameManager.CurrentPlayer.Enemy.Name + " is attacking you ..."); } } } } //------------------------------------------------------------------------------------------ public static void Explore() { RNG dice = RNG.GetInstance(); int random = dice.Next(0, 15); Console.WriteLine("\nYou are exploring ..."); switch (random) { case 0: case 1: case 2: case 3: Monster monster = GameFactory.CreateMonster(); Message.Danger(monster.Name + " approches ! Prepare for battle !"); //monster.SetTarget(GameManager.CurrentPlayer); monster.Target = GameManager.CurrentPlayer; GameManager.CurrentPlayer.Enemy = monster; break; case 4: Power magic_potion = GameFactory.CreateHealing(); Message.Warning("\nYou collect a Magic Potion !"); GameManager.CurrentPlayer.AddPower(magic_potion); break; case 5: Message.Warning("\nYou collect a Magic Cape !"); Power magic_cape = GameFactory.CreateInvisible(); GameManager.CurrentPlayer.AddPower(magic_cape); break; case 6: Message.Warning("\nYou collect a Wood Shield !"); Power shield = GameFactory.CreateProtect(); GameManager.CurrentPlayer.AddPower(shield); break; case 7: Message.Warning("\nYou collect a Sleepy Dust !"); Power magic_powder = GameFactory.CreateSleepy(); GameManager.CurrentPlayer.AddPower(magic_powder); break; case 8: Message.Warning("\nYou find a Big Rock !"); Weapon rock = GameFactory.CreateRock(); GameManager.CurrentPlayer.UpdateWeapon(rock); break; case 9: Message.Warning("\nYou find a Torch !"); Weapon torch = GameFactory.CreateTorch(); GameManager.CurrentPlayer.UpdateWeapon(torch); break; case 10: Message.Warning("\nYou find a Magic Sword !"); Weapon sword = GameFactory.CreateSword(); GameManager.CurrentPlayer.UpdateWeapon(sword); break; case 11: //Number of Gold Pieces is Random between 20 and 99 int random_gp = RNG.GetInstance().Next(50, 500); Message.Warning("\nYou collect " + random_gp + " Gold Pieces !"); GameManager.CurrentPlayer.GP += random_gp; break; default: Console.WriteLine("\nYou are looking for gold pieces !"); break; } } } }
Comments