示例#1
0
文件: MagicCast.cs 项目: RETUR07/Game
        public MagicHero SpellCastingHero;// лучше private мы же его нигде не меняем
        //public Hero TargetHero; а зачем вообще нужны?
        //public int Strength;

        public MagicCast(MagicHero spellCastingHero, uint minMana, bool moveAbility, bool speakAbility)
        {
            SpellCastingHero = spellCastingHero;
            MinMana          = minMana;
            MoveAbility      = moveAbility;
            SpeakAbility     = speakAbility;
        }
示例#2
0
        static void Draw(MagicHero hero, MagicHero enemy)
        {
            Console.Clear();

            Console.WriteLine(hero.ToString());
            Console.WriteLine(hero.Inventory.ToString());
            Console.WriteLine(hero.magicInventory.ToString());
            Console.WriteLine("############################################\n");
            Console.WriteLine(enemy.ToString());
        }
示例#3
0
 public override bool MainCast(MagicHero targetHero)
 {
     if (Renewable)//Если ещё не использовали артефакт
     {
         if (targetHero.CurMn + (uint)Volume > targetHero.MaxMana)
         {
             targetHero.CurMn = targetHero.MaxMana;
         }
         else
         {
             targetHero.CurMn = targetHero.CurMn + (uint)Volume;
         }
         Renewable = false;
         return(true);
     }
     return(false);
 }
示例#4
0
        static void Main(string[] args)
        {
            //инициализаци персов
            string name;

            Hero.Races  race   = Hero.Races.human;
            Hero.Gender gender = Hero.Gender.male;
            int         age    = 27;

            Console.WriteLine("Введите имя героя:");
            name = Console.ReadLine();
            Console.WriteLine("Выберите расу(введите номер расы): 0 - human, 1 - gnome, 2 - elf, 3 - ork, 4 - goblin");
            if (Int32.TryParse(Console.ReadLine(), out int r) && r >= 0 && r <= 5)
            {
                race = (Hero.Races)r;
            }

            Console.WriteLine("Выберите пол(введите номер пола): 0 - male, 1 - female");
            if (Int32.TryParse(Console.ReadLine(), out r) && r >= 0 && r <= 1)
            {
                gender = (Hero.Gender)r;
            }

            Console.WriteLine("Введите возраст");
            if (Int32.TryParse(Console.ReadLine(), out r) && r >= 0)
            {
                age = r;
            }

            MagicHero hero  = new MagicHero(name, race, gender, age);
            MagicHero enemy = new MagicHero("enemy", Hero.Races.ork, Hero.Gender.male, 500);

            hero.statmnt = Hero.Statements.ill;
            hero.CurHlth = 50;

            //добавление инвентаря hero
            hero.Inventory.AddArtifact(new LifeWaterBottle(LifeWaterBottle.VolumeTypes.small));
            hero.Inventory.AddArtifact(new LifeWaterBottle(LifeWaterBottle.VolumeTypes.big));
            hero.Inventory.AddArtifact(new DeadWaterBottle(DeadWaterBottle.VolumeTypes.medium));
            hero.Inventory.AddArtifact(new LightningStaff(60));
            hero.Inventory.AddArtifact(new BasiliskEye());
            hero.Inventory.AddArtifact(new PoisonousSaliva(5));
            hero.Inventory.AddArtifact(new FrogDecoction());


            //добавление спелов
            hero.magicInventory.AddSpell(new Armor(hero));
            hero.magicInventory.AddSpell(new AddHealth(hero));
            hero.magicInventory.AddSpell(new Heal(hero));

            Draw(hero, enemy);

            EnemyAtack atack = new EnemyAtack(enemy, hero);
            Thread     enmy  = new Thread(new ThreadStart(atack.EnemyAtackThread));

            enmy.Start();


            while (true)
            {
                string s, s2;
                Console.WriteLine("введите название заклинания или предмета");
                s = Console.ReadLine();
                Console.WriteLine("введите цель(hero or enemy)");
                s2 = Console.ReadLine();

                // поиск в инвентаре
                if (hero.Inventory.FindItem(s))
                {
                    if (s2 == "enemy")
                    {
                        Artifact art = hero.Inventory.GetArtifact(s);
                        if (art.HaveStrength)
                        {
                            uint str;
                            Console.WriteLine("введите силу предмета");
                            UInt32.TryParse(Console.ReadLine(), out str);
                            hero.Inventory.UseArtifact(art, enemy, str);
                        }
                        else
                        {
                            hero.Inventory.UseArtifact(art, enemy);
                        }
                    }
                    else
                    {
                        Artifact art = hero.Inventory.GetArtifact(s);
                        if (art.HaveStrength)
                        {
                            uint str;
                            Console.WriteLine("введите силу предмета");
                            UInt32.TryParse(Console.ReadLine(), out str);
                            hero.Inventory.UseArtifact(art, hero, str);
                        }
                        else
                        {
                            hero.Inventory.UseArtifact(art, hero);
                        }
                    }
                }

                if (hero.magicInventory.FindSpell(s))
                {
                    if (s2 == "enemy")
                    {
                        MagicCast spell = hero.magicInventory.GetSpell(s);
                        if (spell.HaveStrength)
                        {
                            uint str;
                            Console.WriteLine("введите силу предмета");
                            UInt32.TryParse(Console.ReadLine(), out str);
                            hero.magicInventory.UseSpell(spell, enemy, str);
                        }
                        else
                        {
                            hero.magicInventory.UseSpell(spell, enemy);
                        }
                    }
                    else
                    {
                        MagicCast spell = hero.magicInventory.GetSpell(s);
                        if (spell.HaveStrength)
                        {
                            uint str;
                            Console.WriteLine("введите силу предмета");
                            UInt32.TryParse(Console.ReadLine(), out str);
                            hero.magicInventory.UseSpell(spell, hero, str);
                        }
                        else
                        {
                            hero.magicInventory.UseSpell(spell, hero);
                        }
                    }
                }

                Draw(hero, enemy);

                if (hero.statmnt == Hero.Statements.died)
                {
                    break;
                }
                if (enemy.statmnt == Hero.Statements.died)
                {
                    Console.Clear();
                    Console.WriteLine("\n\n\n\n\n\n\n\n#####################################YOU" +
                                      " WIN#####################################\n\n\n\n\n\n\n\n");
                    break;
                }
            }


            enmy.Join();
        }
示例#5
0
 public EnemyAtack(MagicHero e, MagicHero h)
 {
     enemy = e;
     hero  = h;
 }
示例#6
0
 public DeParalyse(MagicHero spellCastingHero)
     : base(spellCastingHero, 85, true, false)
 {
 }
示例#7
0
文件: AddHealth.cs 项目: RETUR07/Game
 public AddHealth(MagicHero spellCastingHero)
     : base(spellCastingHero, 2, true, false)   //как выбирать компоненты t или f??
 {
     HaveStrength = true;
 }
示例#8
0
 public Revive(MagicHero spellCastingHero)
     : base(spellCastingHero, 150, true, true)          //MaxMana 150 а у нас 100 + она может меняться
 {
 }
示例#9
0
文件: Antidote.cs 项目: RETUR07/Game
 public Antidote(MagicHero spellCastingHero)
     : base(spellCastingHero, 30, false, false)
 {
 }
示例#10
0
文件: Armor.cs 项目: RETUR07/Game
 public Armor(MagicHero spellCastingHero)
     : base(spellCastingHero, 50, true, true)              //MaxMana 150 а у нас 100 + она может меняться
 {
     HaveStrength = true;
 }
示例#11
0
 public Heal(MagicHero spellCastingHero)
     : base(spellCastingHero, 20, true, true)
 {
 }
示例#12
0
文件: Artifact.cs 项目: RETUR07/Game
 public virtual bool MainCast(MagicHero targetHero)
 {
     return(MainCast(targetHero as Hero));
 }