Ejemplo n.º 1
0
        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);
                }
            }
        }
Ejemplo n.º 2
0
        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();
        }
Ejemplo n.º 3
0
        //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);
        }
Ejemplo n.º 4
0
        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();
            }
        }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        //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);
        }
Ejemplo n.º 7
0
        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;
                }
            }
        }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        //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);
        }
Ejemplo n.º 10
0
        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();
        }