Esempio n. 1
0
        internal static void decreaseStats()
        {
            //Decreases all egg timers
            foreach (Egg item in player.Eggs)
            {
                if (item.HatchingTime > 0)
                {
                    item.HatchingTime -= 1;
                }
            }
            //Takes care of hunger
            if (tama.Food > 0)
            {
                tama.Food -= 1;
            }

            //Takes care of happiness
            if (tama.Happy > 0)
            {
                tama.Happy -= 1;
                if (tama.Food <= 0)
                {
                    tama.Happy -= 1;
                }
            }

            tama = tama.grantExp(tama, 5);

            Thread.Sleep(10000); // Run all this each 10 second
        }
Esempio n. 2
0
 internal Enemy CreateGnomeScout(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     Monster tama = new Monster(10, 10, 100);
     Enemy enemy = new Enemy(tama, "Gnome Scout", rng.Next(2, 10 * level), 0, 0, level, drops);
     return enemy;
 }
Esempio n. 3
0
 internal Enemy(Monster tama, string name, int money, int herbs, int metal, int level, List<Item> drops)
 {
     this.tama = tama.giveALevel(tama, level);
     this.name = name;
     this.money = money;
     this.herbs = herbs;
     this.metal = metal;
     this.drops = drops;
 }
Esempio n. 4
0
 internal Enemy CreateGnome(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     Monster tama = new Monster(10, 2, 50);
     Enemy enemy = new Enemy(tama, "Gnome", rng.Next(0, 10 * level), 0, rng.Next(0, 5 * level), level, drops);
     return enemy;
 }
Esempio n. 5
0
 internal Enemy CreateFirefly(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     Monster monster = new Monster(10, 10, 100);
     Enemy enemy = new Enemy(monster, "Firefly", rng.Next(0, 5 * level), rng.Next(0, 5 * level), 0, level, drops);
     return enemy;
 }
Esempio n. 6
0
 internal Enemy CreateFairy(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     drops.Add(IC.CreateAtkItem("Bronze wand", Item.equipment.weapon, 15, 0, 100));
     Monster tama = new Monster(10, 5, 40);
     tama.Weapon = IC.CreateAtkItem("Bronze wand", Item.equipment.weapon, 15, 0, 100);
     Enemy enemy = new Enemy(tama, "Fairy", rng.Next(0, 10 * level), 0, rng.Next(0, 5 * level), level, drops);
     return enemy;
 }
Esempio n. 7
0
 internal Enemy CreateGoblin(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateArmorItem("Bronze chest", Item.equipment.chest, 10, 0));
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     drops.Add(IC.CreateAtkItem("Bronze dagger", Item.equipment.weapon, 5, 0, 100));
     Monster tama = new Monster(5, 2, 50);
     tama.Weapon = IC.CreateAtkItem("Bronze dagger", Item.equipment.weapon, 5, 0, 100);
     Enemy enemy = new Enemy(tama, "Goblin", rng.Next(0, 10 * level), 0, rng.Next(0, 5 * level), level, drops);
     return enemy;
 }
Esempio n. 8
0
 /// <summary>
 /// Only use for creating enemy Monster cause of randomness
 /// </summary>
 /// <param name="tama"></param>
 /// <param name="levels"></param>
 /// <returns></returns>
 internal Monster giveALevel(Monster tama, int levels)
 {
     Random rng = new Random();
     tama.Level = levels;
     tama.CurrentHealth = tama.CurrentHealth + (rng.Next(1, 3) * levels + 3 * levels);
     tama.Attack = tama.Attack + (rng.Next(1, 3) * levels + 3 * levels);
     tama.Armor = tama.Armor + (rng.Next(1, 3) * levels + 3 * levels);
     return tama;
 }
Esempio n. 9
0
        /// <summary>
        /// Takes in a player object to get the items there can be used in the fight and setup a fight between the 2 Monsters
        /// the user keeps interacting between each attack and can either attack, use item or run from the fight
        /// </summary>
        /// <param name="player"></param>
        /// <param name="you"></param>
        /// <param name="enemy"></param>
        /// <returns></returns>
        internal Player FightMonster(Player player, Monster you, Enemy ene)
        {
            this.you = you;
            old = you;
            Monster enemy = ene.Tama;
            enemy.prepareForBattle(); //Configures the attack and armor to itself if it has been modified by a battle before
            this.you.prepareForBattle();  //Configures the attack and armor to itself if it has been modified by a battle before

            int choice = 0;
            Console.Clear();
            while (enemy.CurrentHealth > 0 && this.you.CurrentHealth > 0)
            {

            fightingMenu:
                Console.WriteLine("****************");
                Console.WriteLine("Enemy: " + enemy.CurrentHealth + " you: " + this.you.CurrentHealth);
                Console.WriteLine("****************");
                Console.WriteLine("Enemy stats: armor: " + enemy.CurrentArmor + " attack: " + enemy.CurrentAttack);
                Console.WriteLine();
                Console.WriteLine("Your stats: armor: " + this.you.CurrentArmor + " attack: " + this.you.CurrentAttack);
                Console.WriteLine("****************");
                Console.WriteLine();
                Console.WriteLine("1. Do you wanna attack?");
                Console.WriteLine("2. Use an item?");
                Console.WriteLine("3. Run from the fight?");

                try
                {
                    choice = Convert.ToInt32(Console.ReadLine());
                    Console.Clear();
                }
                catch (Exception)
                {
                    Console.Clear();
                    goto fightingMenu;
                }

                switch (choice)
                {
                    case 1:
                        int a = attack(this.you, enemy);
                        enemy.CurrentHealth -= a;
                        Console.WriteLine("You did " + a + " damage to it");
                        Console.WriteLine();
                        break;
                    case 2:
                        if (player.Inventory.Count <= 0)
                        {
                            goto fightingMenu;
                        }
                        for (int i = 0; i < player.Inventory.Count; i++)
                        {
                            if (!player.Inventory[i].Name.Contains("potion"))
                            {
                                goto fightingMenu;

                            }

                        }
                        player = useItem(player, this.you);
                        goto fightingMenu;
                    case 3:
                        this.you.CurrentHealth = this.you.MaxHealth;
                        player.Monsters.Remove(old);
                        player.Monsters.Add(this.you);
                        return player;
                    default:
                        goto fightingMenu;
                }

                if (enemy.CurrentHealth > 0 && this.you.CurrentHealth > 0)
                {
                    int a = attack(enemy, this.you);
                    this.you.CurrentHealth -= a;
                    Console.WriteLine(ene.Name +" did " + a + " damage to you");
                    Console.WriteLine();
                }

            }
            if (enemy.CurrentHealth <= 0)
            {
                Console.Clear();
                Console.WriteLine("Congratz you won the battle");
                Console.WriteLine();
                this.you = this.you.grantExp(you, 20 * enemy.Level);
                player.Money += 5 * enemy.Level;
                Console.WriteLine("Exp: " + 20 * enemy.Level);
                Console.WriteLine("Money: " + 5 * enemy.Level);
                player.updateQuests(ene, null, null, 0, 5 * enemy.Level, 0);
                Console.WriteLine();

            }
            else
            {
                Console.WriteLine("You lost the battle");
                Console.WriteLine();
                //TODO Decide what to do when the player lost the battle
            }
            this.you.CurrentHealth = this.you.MaxHealth;
            player.Monsters.Remove(old);
            player.Monsters.Add(this.you);

            return player;
        }
Esempio n. 10
0
 internal Enemy CreateRiverMonster(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     Monster tama = new Monster(10, 10, 200);
     Enemy enemy = new Enemy(tama, "River Monster", rng.Next(10, 20 * level), 0, 0, level, drops);
     return enemy;
 }
Esempio n. 11
0
 private void petTamaguchi()
 {
     if (tama.Happy < 100)
     {
         tama = tama.grantExp(tama, 1);
         tama.Happy++;
     }
     else
         Console.WriteLine("Your Tamagouchi can't get more excited");
 }
Esempio n. 12
0
 private void feedTamaguchi()
 {
     if (tama.Food < 100)
     {
         tama.Food += 1;
         tama = tama.grantExp(tama, 1);
         if (tama.Happy < 100)
         {
             tama.Happy++;
         }
     }
 }
Esempio n. 13
0
 internal Enemy CreateSwampHumanoid(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     Monster monster = new Monster(5, 5, 100);
     monster.Weapon = IC.CreateAtkItem("Wooden Stick", Item.equipment.weapon, 5, 0, 100);
     Enemy enemy = new Enemy(monster, "Swamp Humanoid", rng.Next(0, 5 * level), 0, 0, level, drops);
     return enemy;
 }
Esempio n. 14
0
        public void Shoot(ref Monster.Monster CurrentMonster)//3 types: "Handgun","Shotgun" and "AK". No need for type, since PlayerGun is the gun player is using.
        {
            int newHP = CurrentMonster.GetHP() - (int)PlayerGun.CurrentPower;

            CurrentMonster.SetHP(newHP);
        }
Esempio n. 15
0
 internal Enemy CreateIronGolem(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     Monster monster = new Monster(7, 25, 150);
     Enemy enemy = new Enemy(monster, "Iron Golem", rng.Next(0, 5 * level), 0, rng.Next(5, 15 * level), level, drops);
     return enemy;
 }
Esempio n. 16
0
 internal Enemy CreateSkeleton(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     drops.Add(IC.CreateHPItem("HP potion 10", Item.equipment.potion, 10, 0));
     drops.Add(IC.CreateArmorItem("Bronze chest", Item.equipment.chest, 10, 0));
     drops.Add(IC.CreateArmorItem("Bronze shield", Item.equipment.shield, 10, 0));
     drops.Add(IC.CreateAtkItem("Bronze bow", Item.equipment.weapon, 10, 0, 100));
     Monster tama = new Monster(7, 4, 70);
     tama.Shield = IC.CreateArmorItem("Bronze chest", Item.equipment.chest, 10, 0);
     tama.Weapon = IC.CreateAtkItem("Bronze bow", Item.equipment.weapon, 10, 0, 100);
     tama.Chest = IC.CreateArmorItem("Bronze shield", Item.equipment.shield, 10, 0);
     Enemy enemy = new Enemy(tama, "Skeleton", rng.Next(0, 10 * level), 0, rng.Next(0, 5 * level), level, drops);
     return enemy;
 }
Esempio n. 17
0
 //TODO display that the user got a level
 internal Monster grantExp(Monster tama, int exp)
 {
     tama.Exp = tama.Exp + exp;
     if ((Math.Sqrt(tama.Exp) * 0.1) > tama.Level)
     {
         int a = 0;
         foreach (char c in genetic)
         {
             a += int.Parse(c.ToString());
         }
         a = a / 2;
         tama.Level++;
         tama.CurrentHealth = tama.CurrentHealth + a;
         tama.MaxHealth = tama.MaxHealth + 5 + a;
         tama.Attack = tama.Attack + a / 2;
         tama.Armor = tama.Armor + a;
         Console.Clear();
         Console.WriteLine("You got a level!");
         a = a + 5;
         Console.WriteLine("You got " + a + " health");
         a = (a - 5) / 2;
         Console.WriteLine("You got " + a + " attack");
         a = a * 2;
         Console.WriteLine("You got " + a + " armor");
         Console.WriteLine("Press enter to continue");
         Console.ReadLine();
         return tama;
     }
     return tama;
 }
Esempio n. 18
0
        internal void startLoadMenu()
        {
            Console.Clear();
            player = GetPlayer();
            tama = player.Monsters[0];
            Worker worker = new Worker();
            Thread thread1 = new Thread(new ThreadStart(worker.doWork));
            Thread thread2 = new Thread(new ThreadStart(MonsterMenu));

            thread1.Start();
            thread2.Start();

            while (!thread1.IsAlive) ;
            Thread.Sleep(1);
            thread1.Join();
            try
            {
                thread1.Start();
            }
            catch (Exception)
            {
                Console.WriteLine("Couldn't restart thread");
            }
            while (!thread2.IsAlive) ;
            Thread.Sleep(1);
            thread2.Join();
        }
Esempio n. 19
0
 public void MonsterDamage(Monster.Monster currentMonster)
 {
     //TODO
 }
Esempio n. 20
0
        private Monster changeMonster()
        {
            Console.Clear();
            Console.WriteLine("***** Displaying your Monsters *****");
            int count = 1;
            foreach (var item in player.Monsters)
            {
                Console.WriteLine("Number: " + count);
                Console.WriteLine(item.ToString());
                Console.WriteLine(item.showStats());
                Console.WriteLine();
                count++;
            }

            try
            {
                Console.WriteLine("Which Monster do you want to change to?");
                Console.WriteLine("If you don't want to change it don't write anything");
                int choice = int.Parse(Console.ReadLine()) - 1;

                tama = player.Monsters[choice];
            }
            catch (Exception)
            {
                Console.WriteLine("No such Monster available");
            }

            return tama;
        }
Esempio n. 21
0
 private int combatStrength(Monster m)
 {
     if (m.Weapon == null)
     {
         return m.Attack + m.MaxHealth * m.Armor / 2;
     }
     else
     {
         return ((m.Weapon.HitChance / 100) * m.Attack) + m.MaxHealth * m.Armor / 2;
     }
 }
Esempio n. 22
0
 internal Enemy CreateSorcerer(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     Item item = IC.CreateAtkItem("Ice wand",Item.equipment.weapon,50,level,100);
     drops.Add(item);
     Monster monster = new Monster(25, 10, 200);
     monster.Weapon = item;
     Enemy enemy = new Enemy(monster, "Sorcerer", rng.Next(0, 5 * level), 0, 0, level, drops);
     return enemy;
 }
Esempio n. 23
0
        internal void startNewtMonsterGame()
        {
            Console.Clear();
            try_parse:
            Console.WriteLine("What is your username?");
            try
            {
                String username = Console.ReadLine();
                Console.Clear();
                player = new Player(username);
                ItemCreater ic = new ItemCreater();
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                player.Inventory.Add(ic.CreateHPItem("HP potion", Item.equipment.potion, 20, 1));
                tama = new Monster();
                player.Monsters.Add(tama);
            }
            catch (Exception)
            {
                Console.WriteLine("There is no such option available");
                goto try_parse;
            }

            Console.WriteLine("You start adventure out in the world");
            Console.WriteLine();
            Console.WriteLine("Press Enter to continue");
            Console.Read();
            Console.Clear();

            Worker worker = new Worker();
            Thread thread1 = new Thread(new ThreadStart(worker.doWork));
            Thread thread2 = new Thread(new ThreadStart(MonsterMenu));

            thread1.Start();
            thread2.Start();

            while (!thread1.IsAlive) ;
            Thread.Sleep(1);
            thread1.Join();
            try
            {
                thread1.Start();
            }
            catch (Exception)
            {
                Console.WriteLine("Couldn't restart thread");
            }
            while (!thread2.IsAlive) ;
            Thread.Sleep(1);
            thread2.Join();
        }
Esempio n. 24
0
 /// <summary>
 /// Takes in an egg as param and then calls fitness on it to find out what genetics the new Monster should have
 /// then sets the new fitness to the Monster and returns it
 /// </summary>
 /// <param name="egg"></param>
 /// <returns></returns>
 internal Monster HatchEgg(Egg egg)
 {
     Monster tama = new Monster();
     tama.Genetic = fitness(egg.Father, egg.Mother, egg.GeneticCrossover);
     return tama;
 }
Esempio n. 25
0
 /// <summary>
 /// Takes in 2 Monsters and take there genetics and create an egg with both genetics and return it
 /// </summary>
 /// <param name="father"></param>
 /// <param name="mother"></param>
 /// <returns></returns>
 internal Egg MateMonsters(Monster father, Monster mother)
 {
     Egg egg = new Egg(father.Genetic, mother.Genetic);
     return egg;
 }
Esempio n. 26
0
        /// <summary>
        /// Takes in 2 Monsters and takes the attack and depending on the hit chance, deffense and randomness
        /// the attack decreases the other Monsters current health
        /// 
        /// By default all weapons have 20% double damage chance
        /// </summary>
        /// <param name="attacker"></param>
        /// <param name="deffender"></param>
        /// <returns></returns>
        private int attack(Monster attacker, Monster deffender)
        {
            int deffense = deffender.CurrentArmor;
            int hitChance = attacker.Weapon.HitChance;
            int damage = attacker.getAttack();
            int doubleDamage = 0;

            if (rng.Next(0, 101) <= attacker.Weapon.DoubleChance)
            {
                doubleDamage = damage;
            }

            if (hitChance > rng.Next(0, 101))
            {
                damage = Math.Abs(damage - (deffense / 2) + doubleDamage);
            }
            else
            {
                damage = 0;
            }

            return damage;
        }
Esempio n. 27
0
 private void petMenu()
 {
     Console.Clear();
     petMenu:
     Console.WriteLine();
     Console.WriteLine("Your monsters stats: " + tama.showStats());
     Console.WriteLine();
     Console.WriteLine("1 Pet your Monster");
     Console.WriteLine("2 Feed your Monster");
     Console.WriteLine("3 Heal your Monster");
     Console.WriteLine("4 Check your eggs");
     Console.WriteLine("5 Change your Monster");
     Console.WriteLine("6 Create an egg");
     Console.WriteLine("7 Mate 2 of your monsters");
     Console.WriteLine("8 Go back to the menu");
     try
     {
         choice = int.Parse(Console.ReadLine());
     }
     catch (Exception)
     {
         Console.Clear();
         goto petMenu;
     }
     switch (choice)
     {
         case 1:
             Console.Clear();
             petTamaguchi();
             petMenu();
             break;
         case 2:
             Console.Clear();
             feedTamaguchi();
             petMenu();
             break;
         case 3:
             Console.Clear();
             sendToHospital();
             petMenu();
             break;
         case 4:
             Console.Clear();
             checkEggs();
             petMenu();
             break;
         case 5:
             Console.Clear();
             tama = changeMonster();
             petMenu();
             break;
         case 6:
             Console.Clear();
             createEgg();
             petMenu();
             break;
         case 7:
             Console.Clear();
             mateMonsters();
             petMenu();
             break;
         case 8:
             Console.Clear();
             MonsterMenu();
             break;
         default:
             Console.Clear();
             petMenu();
             break;
     }
 }
Esempio n. 28
0
        /// <summary>
        /// Takes in a player and displays its inventory and then the player can choose an item which is then 
        /// uesd on the Monster
        /// </summary>
        /// <param name="you"></param>
        /// <param name="tama"></param>
        /// <returns></returns>
        private Player useItem(Player you, Monster tama)
        {
            combatItems = new List<Item>();
            Console.Clear();
            Console.WriteLine("*** Displaying your items ***");
            int count = 1;
            for (int i = 0; i < you.Inventory.Count; i++)
            {
                if (you.Inventory[i].Equip == Item.equipment.potion)
                {
                    Console.WriteLine("Number: " + count + " " + you.Inventory[i].Name);
                    count++;
                    combatItems.Add(you.Inventory[i]);
                }
            }
            useItem:
            Console.WriteLine("What item number do you want to use?");
            Console.WriteLine("type 0 if you don't want to use any item");
            foreach (var item in combatItems)
            {
                Console.WriteLine("It gives you " + item.showStats());
            }
            int choice;
            try
            {
                choice = int.Parse(Console.ReadLine()) - 1;
            }
            catch (Exception)
            {
                Console.Clear();
                goto useItem;
            }
            if (choice < 0 || choice > combatItems.Count)
            {
                this.you = tama;
                return you;
            }
            tama.CurrentArmor += combatItems[choice].Armor;
            tama.CurrentAttack += combatItems[choice].Atk;
            tama.CurrentHealth += combatItems[choice].Hp;
            you.Inventory.Remove(combatItems[choice]);
            combatItems = new List<Item>();
            this.you = tama;

            return you;
        }
Esempio n. 29
0
 private void showBattleMenu()
 {
     Console.Clear();
     Console.WriteLine("**** Battle menu ****");
     Console.WriteLine("Status on your monster: " + tama.ToString());
     Console.WriteLine();
     Console.WriteLine("1. Battle a random monster level 1");
     Console.WriteLine("2. Battle a random monster level 1-5");
     Console.WriteLine("3. Battle a random monster level 5-10");
     Console.WriteLine("4. Battle a random monster level 10-15");
     Console.WriteLine("5. Go back to the Monster menu");
     try
     {
         choice = int.Parse(Console.ReadLine());
     }
     catch (Exception)
     {
         showBattleMenu();
     }
     Random rng = new Random();
     Enemy enemy;
     switch (choice)
     {
         case 1:
             enemy = EC.CreateRandomEnemy(1);
             player = FM.FightMonster(player, tama, enemy);
             tama = player.Monsters[player.Monsters.Count - 1];
             showBattleMenu();
             break;
         case 2:
             enemy = EC.CreateRandomEnemy(rng.Next(1, 6));
             player = FM.FightMonster(player, tama, enemy);
             showBattleMenu();
             break;
         case 3:
             enemy = EC.CreateRandomEnemy(rng.Next(6, 10));
             player = FM.FightMonster(player, tama, enemy);
             showBattleMenu();
             break;
         case 4:
             enemy = EC.CreateRandomEnemy(rng.Next(10, 16));
             player = FM.FightMonster(player, tama, enemy);
             showBattleMenu();
             break;
         case 5:
             Console.Clear();
             MonsterMenu();
             break;
         default:
             break;
     }
 }
Esempio n. 30
0
 internal Enemy CreateMummy(int level)
 {
     Random rng = new Random();
     List<Item> drops = new List<Item>();
     Monster monster = new Monster(20, 10, 100);
     Enemy enemy = new Enemy(monster, "Mummy", rng.Next(0, 5 * level), 0, 0, level, drops);
     return enemy;
 }