예제 #1
0
        public void AnvändFöremål(Kvadrat kvadrat)
        {
            if (this.namn == "Exit")
            {
            }

            else
            {
                Spelare.Inventory.Remove(this);

                if (namn == "Health Potion")
                {
                    Spelare.Hp += 50;
                    Console.Beep(200, 300);
                }

                if (namn == "Bomb")
                {
                    kvadrat.Fiende.Hp -= 2;
                    Console.Beep(37, 300);
                }
            }
        }
예제 #2
0
        private static void Attack(Kvadrat kvadrat)
        {
            for (int i = 0; i < Spelare.Namn.Length; i++)
            {
                Console.Write(Spelare.Namn[i]);
                Thread.Sleep(100);
            }

            for (int i = 0; i < " is attacking".Length; i++)
            {
                Console.Write(" is attacking"[i]);
                Thread.Sleep(100);
            }

            Console.WriteLine();
            Console.WriteLine(Spelare.Namn + " dealt " + Spelare.Attack + " damage");
            kvadrat.Fiende.Hp -= Spelare.Attack;

            Console.WriteLine("Remaining HP: " + kvadrat.Fiende.Hp);
            Thread.Sleep(2000);

            spelaresTur = false;
        }
예제 #3
0
        public Level(int höjd, int bredd, string levelNamn)
        {
            this.höjd      = höjd;
            this.bredd     = bredd;
            this.levelNamn = levelNamn;
            this.kvadrater = new Kvadrat[höjd, bredd];

            for (int i = 0; i < kvadrater.GetLength(0); i++)
            {
                for (int j = 0; j < kvadrater.GetLength(1); j++)
                {
                    kvadrater[i, j] = new Kvadrat();
                }
            }

            Random rng = new Random();

            for (int i = 1; i <= 3; i++)
            {
                int randomY = rng.Next(1, kvadrater.GetLength(0));
                int randomX = rng.Next(1, kvadrater.GetLength(1));

                kvadrater[randomY, randomX].Monster = true;
                kvadrater[randomY, randomX].Fiende  = new Fiende(rng.Next(0, 4));
            }

            for (int i = 1; i <= 3; i++)
            {
                int randomY = rng.Next(1, kvadrater.GetLength(0));
                int randomX = rng.Next(1, kvadrater.GetLength(1));
                kvadrater[randomY, randomX].Kista = true;
            }


            kvadrater[0, 0].Spelare = true;
        }
예제 #4
0
        private static void DrawFight(Kvadrat kvadrat, Spelare spelare)
        {
            PrintEnemy(kvadrat);
            PrintStats(spelare);
            Console.WriteLine();

            if (spelaresTur)
            {
                Console.WriteLine("╔════════════════════════════════╗");
                for (int i = 0; i < fightMeny.GetLength(0); i++)
                {
                    Console.Write("   ");

                    if (fightMeny[i, 1] == "1")
                    {
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.Write(fightMeny[i, 0]);
                        Console.ForegroundColor = ConsoleColor.White;
                    }

                    else
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write(fightMeny[i, 0]);
                    }
                }

                Console.WriteLine();
                Console.WriteLine("╚════════════════════════════════╝");


                Console.WriteLine();

                ConsoleKeyInfo input = Console.ReadKey(true);

                if (input.Key == ConsoleKey.RightArrow && fightMenyVal != 3)
                {
                    fightMeny[fightMenyVal, 1] = "0";
                    fightMenyVal++;
                    fightMeny[fightMenyVal, 1] = "1";
                }


                if (input.Key == ConsoleKey.LeftArrow && fightMenyVal != 0)
                {
                    fightMeny[fightMenyVal, 1] = "0";
                    fightMenyVal--;
                    fightMeny[fightMenyVal, 1] = "1";
                }

                if (input.Key == ConsoleKey.Enter)
                {
                    if (fightMenyVal == 0)
                    {
                        Attack(kvadrat);
                    }

                    else if (fightMenyVal == 1)
                    {
                        Spelare.Inventory[0].Vald = true;

                        bool vald = false;

                        int menyVal = 0;

                        while (!vald)
                        {
                            Console.Clear();
                            PrintEnemy(kvadrat);
                            PrintStats(spelare);
                            Console.WriteLine();
                            spelare.PrintInventory();


                            ConsoleKeyInfo input2 = Console.ReadKey(true);

                            if (input2.Key == ConsoleKey.UpArrow)
                            {
                                if (menyVal != 0)
                                {
                                    Spelare.Inventory[menyVal].Vald = false;
                                    menyVal--;
                                    Spelare.Inventory[menyVal].Vald = true;

                                    Console.Beep(300, 100);
                                }
                            }

                            if (input2.Key == ConsoleKey.DownArrow)
                            {
                                if (menyVal < Spelare.Inventory.Count - 1)
                                {
                                    Spelare.Inventory[menyVal].Vald = false;
                                    menyVal++;
                                    Spelare.Inventory[menyVal].Vald = true;

                                    Console.Beep(300, 100);
                                }
                            }

                            if (input2.Key == ConsoleKey.Enter)
                            {
                                Spelare.Inventory[menyVal].AnvändFöremål(kvadrat);
                                vald        = true;
                                spelaresTur = false;
                            }

                            Console.Clear();
                        }
                    }

                    else if (fightMenyVal == 2)
                    {
                        Pass();
                        spelaresTur = false;
                    }

                    else
                    {
                        Flee();
                        spelaresTur = false;
                    }
                }
            }

            else if (!spelaresTur)
            {
                FiendeAttack(kvadrat.Fiende);
                spelaresTur = true;
            }
        }
예제 #5
0
        public static void PrintEnemy(Kvadrat kvadrat)
        {
            int namnLängd = kvadrat.Fiende.FiendeTyp.Length;

            Console.Write("╔");

            for (int i = 0; i < namnLängd + 4; i++)
            {
                Console.Write("═");
            }

            Console.WriteLine("╗");

            for (int i = 0; i < 3; i++)
            {
                if (i == 0)
                {
                    Console.Write("║");
                }

                if (i == 1)
                {
                    Console.Write($"  {kvadrat.Fiende.FiendeTyp}  ");
                }

                if (i == 2)
                {
                    Console.WriteLine("║");
                }
            }



            Console.Write("╚");

            for (int i = 0; i < namnLängd + 4; i++)
            {
                Console.Write("═");
            }

            Console.WriteLine("╝");


            int initialHp = kvadrat.Fiende.Hp;

            Console.Write("╔");

            for (int i = 0; i < initialHp * 2 + 1; i++)
            {
                Console.Write("═");
            }

            Console.WriteLine("╗");


            for (int i = 0; i < kvadrat.Fiende.Hp; i++)
            {
                if (i == 0)
                {
                    Console.Write("║");
                }

                Console.ForegroundColor = ConsoleColor.Red;
                Console.Write(" ♥");
                Console.ForegroundColor = ConsoleColor.White;
                Console.Write("");

                if (i == kvadrat.Fiende.Hp - 1)
                {
                    Console.Write(" ║");
                }
            }

            Console.WriteLine();

            Console.Write("╚");

            for (int i = 0; i < initialHp * 2 + 1; i++)
            {
                Console.Write("═");
            }

            Console.Write("╝");

            Console.WriteLine();

            if (kvadrat.Fiende.FiendeTyp == "Slime")
            {
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"{kvadrat.Fiende.FiendeGrafik}");
                Console.ForegroundColor = ConsoleColor.White;
            }

            if (kvadrat.Fiende.FiendeTyp == "King-Slime")
            {
                Console.ForegroundColor = ConsoleColor.DarkCyan;
                Console.Write($"{kvadrat.Fiende.FiendeGrafik.Substring(0, 55)}");
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"{kvadrat.Fiende.FiendeGrafik.Substring(55)}");
                Console.ForegroundColor = ConsoleColor.White;
            }

            if (kvadrat.Fiende.FiendeTyp == "Witch")
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write($"{kvadrat.Fiende.FiendeGrafik.Substring(0, 84)}");
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.WriteLine($"{kvadrat.Fiende.FiendeGrafik.Substring(84)}");
            }

            if (kvadrat.Fiende.FiendeTyp == "Angry-Witch")
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write($"{kvadrat.Fiende.FiendeGrafik.Substring(0, 130)}");
                Console.ForegroundColor = ConsoleColor.Gray;
                Console.WriteLine($"{kvadrat.Fiende.FiendeGrafik.Substring(130)}");
            }

            Console.WriteLine("═══════════════════════════════════════════════════");
        }
예제 #6
0
 private static void Collect(Kvadrat kvadrat)
 {
     Spelare.Score += 50;
     kvadrat.Kista  = false;
 }
예제 #7
0
 private static void Attack(Kvadrat kvadrat)
 {
     throw new NotImplementedException();
 }