public static bool LoadMenu(List <Game> Games) { List <string> menuList = VisualList(Games); menuList.Add("<< Atrás"); if (Games.Count <= 0) { Boxy NoGamesMs = new Boxy(22, 0, 15, true, "No hay juegos guardados"); Console.ReadKey(); NoGamesMs.Erase(); return(false); } else { Menu SavedGames = new Menu(12, true); int game = SavedGames.Read(menuList, "Elige qué partida quieres cargar", 3); if (game < Games.Count) { //Game LOADED LoadGame(Games[game]); Console.Clear(); Boxy LoadedMs = new Boxy(18, 0, 15, true, "Partida cargada"); Console.ReadKey(); LoadedMs.Erase(); return(true); } else { SavedGames.Erase(); return(false); } } }
static void Take() { int dmg = Mob.Attack(); Boxy DamageM = new Boxy(22, 0, true, $"Te pega un legüetazo ácido! Te mete {Player.TakeDamage(false, dmg)} de daño! Uos!"); PlayerStatus.Refresh(); PlayerStatus.AnimationLeft(2, 35); Console.ReadKey(); DamageM.Erase(); }
//Returns false if no item has been used public bool Open() { List <string> Objects = new List <string>(); if (this.Potion.quantity > 0) { Objects.Add($"{Potion.PotName} ({Potion.quantity})"); } if (Objects.Count <= 0) { Boxy Noth = new Boxy(17, 0, true, "El inventario está vacío."); Console.ReadKey(); Noth.Erase(); return(false); } else { Objects.Add("Salir"); Menu InvMenu = new Menu(3, true); switch (InvMenu.InvMenu(Objects, $"¿Qué objeto quieres usar?", 20)) { case "p": InvMenu.Erase(); int heal = Potion.Drink(); Program.PlayerStatus.Refresh(); Program.PlayerStatus.Print(); Boxy Poti = new Boxy(17, 0, true, $"Bebes una poti y te curas {heal} hp"); Console.ReadKey(); Poti.Erase(); return(true); break; case "s": InvMenu.Erase(); return(false); break; } } return(false); }
static void Attack(bool magic) { int dmg = 0; if (magic) { dmg = Player.MagicDmg(critical()); Boxy DamageM = new Boxy(22, 0, true, $"Le lanzas una bola de fuego! Le haces {Mob.TakeDmg(dmg, magic)} de daño! WOW!"); MobStatus.Refresh(); MobStatus.Animation(2, 35); Console.ReadKey(); DamageM.Erase(); } else { dmg = Player.PhisicDmg(critical()); Boxy DamageM = new Boxy(22, 0, true, $"Le pegas una patada voladora! Le haces {Mob.TakeDmg(dmg, magic)} de daño! WOW!"); MobStatus.Refresh(); MobStatus.Animation(2, 35); Console.ReadKey(); DamageM.Erase(); } }
public void NewPlayer() { existent = false; Name = "STATIC"; Age = Random.Next(16, 24); LifeTime = 1; LongLife = 0; Race = "humano"; Class = ""; St = 5; In = 4; Rs = 3; Cr = 2; Crit = 1; cure = false; fury = false; meditate = false; vampire = false; Hp = new int[] { 24, 24 }; Mana = new int[] { 7, 7 }; Xp = new int[] { 0, 4 }; Lvl = 1; bool invalidName; string newName; Menu CreatePlayerMenu = new Menu(5, true); do { Console.Clear(); Boxy NameBoxy = new Boxy("Introduce el nombre de tu personaje", 2, 0, 5, true); newName = NameBoxy.ReadLine(20); NameBoxy.Erase(); if (newName.Length <= 0) { NameBoxy = new Boxy("Tienes que introducir un nombre ._.", 1, 0, 5, true); Console.ReadKey(); invalidName = true; } else if (Program.SuccesfulConnection && SavedGames.CheckPlayerName(newName)) { NameBoxy = new Boxy("Ya existe una partida guardada con este nombre", 1, 0, 5, true); Console.ReadKey(); invalidName = true; } else { invalidName = false; } } while (invalidName); this.Name = newName; switch (CreatePlayerMenu.Read(new string[] { "ella", "él", "elle" }, "Con qué pronombre prefieres que se refieran a ti?", 20)) { case 0: this.Gender = "f"; break; case 1: this.Gender = "m"; break; case 2: this.Gender = "n"; break; } Console.Clear(); this.Race = Program.Races.NewRace(this.Gender); Boxy Message = new Boxy(22, 0, true, BackStory()); Console.ReadKey(); Console.Clear(); }
//true if new game, false if loaded static bool StartMenu(List <Game> Games) { Graphics.Title(1); Menu StartMenu = new Menu(12, true); bool exit = false; bool output = true; while (!exit) { StartMenu.Erase(); switch (StartMenu.Read(new string[] { "Nueva partida", "Cargar Partida", "Salón de la Fama", "Conectar BDD local", "Salir" }, "Hola!", 18)) { case 0: exit = true; output = true; break; case 1: exit = SavedGames.LoadMenu(Games); output = false; break; case 2: Boxy noMsn = new Boxy(12, 0, true, "Esta función se encuentra en desarrollo"); Console.ReadKey(); noMsn.Erase(); break; case 3: Boxy NameBoxy = new Boxy("Introduce la dirección de la BDD (ejemplo 'THIS-PC\\SQLEXPRESS'", 2, 0, 5, true); string url = Console.ReadLine(); SavedGames.Connect(url); try { Games = SavedGames.GetAll(); SuccesfulConnection = true; Boxy dBError = new Boxy(22, 13, 0, true, "Conectado a la base de datos con éxito!"); Console.ReadKey(); dBError.Erase(); } catch { Boxy dBError = new Boxy(22, 13, 0, true, "No se ha podido conectar con la base de datos. Las funciones de carga y de guardado no estarán disponibles"); Console.ReadKey(); Console.Clear(); dBError.Erase(); } NameBoxy.Erase(); break; case 4: Console.Clear(); Boxy thanks = new Boxy(12, 0, true, "Gracias por jugar :')"); Console.ReadKey(); Environment.Exit(0); break; } } Console.Clear(); return(output); }
static void Combat() { Menu Combat = new Menu(3, true); bool runaway = false; while (1 < 2) { MobStatus.Refresh(); MobStatus.Print(); bool pass = true; switch (Combat.CombatMenu($"{Mob.Name.Print(false, 2)} se retuerce violentamente!", Player.cure, Player.meditate, Player.fury)) { case "a": Combat.Erase(); //ataque Attack(false); break; case "c": Combat.Erase(); //conjuro if (Player.Mana[0] < 1) { Boxy NoMana = new Boxy(22, 0, true, "No te queda mana!"); pass = false; Console.ReadKey(); NoMana.Erase(); } else { Attack(true); } break; case "d": Combat.Erase(); //discurso if (Mob.TakeDiscourse(Player.Discourse())) { Boxy MD = new Boxy(22, 0, true, "Le echas una buena bronca. Se ha reducido su agresividad."); Console.ReadKey(); MD.Erase(); } else { Boxy MD = new Boxy(22, 0, true, "La bestia ya no atiende a razones"); Console.ReadKey(); MD.Erase(); } break; case "i": Combat.Erase(); //inventario pass = Inventory.Open(); break; case "h": Combat.Erase(); //huida if (Random.Next(1, 3) == 1) { MobStatus.Erase(); Boxy MH = new Boxy(22, 0, true, "Huiste!"); Console.ReadKey(); MH.Erase(); runaway = true; } else { Boxy MH = new Boxy(22, 0, true, "Corres y corres, pero el monstruo te persigue!"); Console.ReadKey(); MH.Erase(); } break; } if (runaway) { loot = false; lastAct = "runaway"; break; } else if (Player.Hp[0] <= 0) { //Boxy MH = new Boxy(22, 0, true, "Has muerto :("); //Console.ReadKey(); //MH.Erase(); break; } else if (Mob.Hp[0] <= 0) { int xp = Mob.St + Random.Next(-Mob.St / 3, Mob.St / 3); Boxy MH = new Boxy(25, 0, true, $"Has asesinado a {Mob.Name.Print(false, 1)}. Ganas {xp}xp"); lastAct = "fight"; loot = true; MobStatus.Erase(); Console.ReadKey(); Player.GainXp(xp); MH.Erase(); break; } if (pass) { Take(); } if (Player.Hp[0] <= 0) { //Boxy MH = new Boxy(22, 0, true, "Has muerto :("); //Console.ReadKey(); //MH.Erase(); gameover = true; break; } } }
static bool Encounter() { Place Place = new Place(); Menu RunMenu = new Menu(3, true); int rdn = Random.Next(1, 7); if (rdn == 1) { switch (RunMenu.Read(new string[] { "Montar el campamento", "Descansar es para débiles" }, $"{Arrival()} Todo está tranquilo ¿Qué haces?", 30)) { case 0: RunMenu.Erase(); Firecamp.FireMenu(); break; case 1: RunMenu.Erase(); Boxy Keep = new Boxy(17, 0, true, "Sigues andando toda la noche"); Console.ReadKey(); Keep.Erase(); break; } lastAct = "camp"; return(false); } else { anotherMob(); switch (RunMenu.Read(new string[] { "Luchar", "Parlamentar", "Huir" }, $"{Arrival()} {View()} {Mob.Name.Print(true, 1)}. ¿Qué haces?", 37)) { case 2: if (Random.Next(1, 4) == 1) { RunMenu.Erase(); Boxy Message = new Boxy(22, 0, true, $"Huíste como {Common.Dt().GetWord(Player.Gender)} cobarde!"); lastAct = "runaway"; Console.ReadKey(); Message.Erase(); return(false); } else { RunMenu.Erase(); Boxy MessageTwo = new Boxy(22, 0, true, "No puedes huir!"); Console.ReadKey(); MessageTwo.Erase(); return(true); } break; case 0: RunMenu.Erase(); Boxy MessageThree = new Boxy(22, 0, true, "A luchar!"); Console.ReadKey(); MessageThree.Erase(); return(true); break; case 1: RunMenu.Erase(); if (Player.Discourse(Mob.St)) { int xp = Random.Next(Mob.Attack() / 8, Mob.Attack() / 5) + 1; Boxy MessageConvinced = new Boxy(22, 0, true, $"Charlas con el monstruo y lo vuelves pacifista. Ganas {xp} xp"); Console.ReadKey(); Player.GainXp(xp); MessageConvinced.Erase(); loot = true; lastAct = "dialogue"; return(false); } else { if (Random.Next(1, 2) == 1) { Boxy MessageUnConvinced = new Boxy(22, 0, true, "Intentas hablar con el monstruo, pero solo quiere luchar!"); Console.ReadKey(); MessageUnConvinced.Erase(); return(true); } else { Boxy MessageUnConvinced = new Boxy(22, 0, true, "Tu discurso vuelve al monstruo más agresivo!"); Mob.St += Random.Next(Mob.St / 10, Mob.St / 9); Console.ReadKey(); MessageUnConvinced.Erase(); return(true); } } break; } } return(false); }
//TRue if game keeps going, false if returning to main menu public bool Direction(string txt) { Menu DirectionMenu = new Menu(3, true); switch (DirectionMenu.Read(new string[] { "Norte", "Sur", "Este", "Oeste", "(Guardar y salir)" }, $"{txt}¿Hacia dónde quieres ir?", 20)) { case 0: DirectionMenu.Erase(); Boxy Northy = new Boxy("Te diriges hacia el Norte...", 1, 0, 5, true); Console.ReadKey(); Northy.Erase(); return(true); break; case 1: DirectionMenu.Erase(); Boxy Southy = new Boxy("Te diriges hacia el Sur...", 1, 0, 5, true); Console.ReadKey(); Southy.Erase(); return(true); break; case 2: DirectionMenu.Erase(); Boxy Easty = new Boxy("Te diriges hacia el Este...", 1, 0, 5, true); Console.ReadKey(); Easty.Erase(); return(true); break; case 3: DirectionMenu.Erase(); Boxy Westy = new Boxy("Te diriges hacia el Oeste...", 1, 0, 5, true); Console.ReadKey(); Westy.Erase(); return(true); break; case 4: //Save and Go if (Program.SuccesfulConnection) { if (!Program.Player.existent) { SavedGames.SaveNew(); Boxy Save = new Boxy("Se ha guardado una nueva partida", 1, 0, 5, true); Console.ReadKey(); Console.Clear(); return(false); } else { SavedGames.Rewrite(); Boxy Rewrite = new Boxy("Se han sobreescrito los datos guardados", 1, 0, 5, true); Console.ReadKey(); Console.Clear(); return(false); } } else { System.Threading.Thread.Sleep(2000); Boxy Rewrite = new Boxy("No se ha podido conectar con la base de datos :S", 1, 0, 5, true); Console.ReadKey(); Console.Clear(); return(true); } break; } return(false); }
public static void FireMenu() { Random ran = new Random(); List <string> Options = new List <string>(); Options.Add("Dormir"); Options.Add("Meditar"); Options.Add("Hacer Sudokus"); Options.Add("Comer un marshmallow"); Menu Menu = new Menu(3, true); Boxy message; switch (Menu.Read(Options, $"Enciendes una hoguera y montas el campamento. ¿Qué vas a hacer esta noche?", 20)) { case 0: Menu.Erase(); message = new Boxy(22, 0, true, "A mimir!"); Program.Player.Hp[0] = Program.Player.Hp[1]; Console.ReadKey(); message.Erase(); break; case 1: Menu.Erase(); message = new Boxy(22, 0, true, $"Meditas durante toda la noche.");; Program.Player.Heal(ran.Next(Program.Player.Hp[1] / 4, Program.Player.Hp[1] / 2)); Program.Player.Restore(ran.Next(Program.Player.Hp[1] / 5, Program.Player.Hp[1] / 3)); Console.ReadKey(); message.Erase(); break; case 2: Menu.Erase(); message = new Boxy(22, 0, true, $"Te pasas la noche haciendo sudokus."); Program.Player.Restore(ran.Next(Program.Player.Hp[1] / 4, Program.Player.Hp[1] / 2)); Console.ReadKey(); message.Erase(); break; case 3: Menu.Erase(); //burn if (ran.Next(0, 2) == 0) { message = new Boxy(22, 0, true, $"El marshmallow se te ha quemado :_("); Console.ReadKey(); message.Erase(); break; } else { message = new Boxy(22, 0, true, $"El marshmallow estaba buenísimo."); switch (ran.Next(0, 2)) { case 0: Program.Player.Heal(ran.Next(1, 5)); break; case 1: Program.Player.Restore(ran.Next(1, 2)); break; case 2: Program.Player.GainXp(ran.Next(1, 2)); break; } Console.ReadKey(); message.Erase(); break; } } Program.PlayerStatus.Refresh(); }