Esempio n. 1
0
        static void Main(string[] args)
        {
            try
            {
                CreateCharacter.Mage p1 = new CreateCharacter.Mage("Akira", Enums.Races.Elf, Enums.Sex.Male, 77);

                Console.WriteLine(p1.ToString());
                Console.WriteLine();
                PoisonousSaliva poisonousSaliva = new PoisonousSaliva(p1.MaxMana);
                Console.WriteLine();
                p1.PickUpArtifact(poisonousSaliva, "poisonous saliva");
                Console.WriteLine();
                p1.UseArtifact(poisonousSaliva, Enums.KindsOfFunctions.ForAim, p1, p1, 40, "poisonous saliva");
                Console.WriteLine();
                Console.WriteLine(p1.ToString());
                Console.WriteLine();
                AliveWater aliveWater = new AliveWater(p1.MaxMana);
                Console.WriteLine();
                p1.PickUpArtifact(aliveWater, "alive water");
                Console.WriteLine();
                p1.UseArtifact(aliveWater, Enums.KindsOfFunctions.ForYourSelf, p1, p1, 25, "alive water middle bottle");
                Console.WriteLine();
                Console.WriteLine(p1.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
Esempio n. 2
0
    static public Artifact StringToArtifact(string _artifactType, string artifactName, string description, int power)
    {
        Artifact behavior = null;

        switch (_artifactType)
        {
        case "BasiliskEye":
            behavior = new BasiliskEye(artifactName, description);
            break;

        case "DeadWaterBottle":
            behavior = new DeadWaterBottle(artifactName, description, (Bottle.VolumeType)power);
            break;

        case "Decoctum":
            behavior = new Decoctum(artifactName, description);
            break;

        case "Lightning":
            behavior = new Lightning(artifactName, description, (uint)power);
            break;

        case "LivingWaterBottle":
            behavior = new LivingWaterBottle(artifactName, description, (Bottle.VolumeType)power);
            break;

        case "PoisonousSaliva":
            behavior = new PoisonousSaliva(artifactName, description, (uint)power);
            break;

        case "Slipper":
            behavior = new Slipper(artifactName, description, (uint)power);
            break;

        case "None":
        case "EmptyArifact":
            behavior = new EmptyArtifact(artifactName, description);
            break;
        }
        return(behavior);
    }
Esempio n. 3
0
        // вначале хотел сделать юзер-френдли интерфейс....
        /*
        private static void SetHero(Character hero)
        {
            string heroName;
            string heroRace;
            string heroGender;
            Console.Write("Введите имя вашего персонажа >>");
            heroName = Console.ReadLine();
            while (hero == null)
            {


                Console.WriteLine("Введите расу вашего персонажа >>");
                heroRace = Console.ReadLine();
                Console.WriteLine("Введите пол вашего персонажа >>");
                heroGender = Console.ReadLine();
                Console.WriteLine("Является ли ваш персонаж магом (y/n)");
                char mage = Console.ReadKey().KeyChar;
                try
                {
                    if (mage == 'n')
                    {
                        hero = new Character(heroName, heroRace, heroGender);
                    }
                    if (mage == 'y')
                    {
                        hero = new Mage(heroName, heroRace, heroGender);
                    }

                }
                catch (ArgumentException aExeption)
                {
                    Console.WriteLine("Уууупс!");
                    Console.WriteLine(aExeption.Message);
                }
            }
        }

        private static void ShowOptionsList()
        {
            Console.WriteLine("1 - изменить возраст персонажа");
            Console.WriteLine("2 - идти сражатся!");
            Console.WriteLine("3 - отправится за артефактами");
            Console.WriteLine("4 - работать с ")
        }*/
        static void Main(string[] args)
        {
            Character hero = null;
            Character badGuy = null;
            Mage mage = null;
            //создание персонажей
            //
            //
            //Нормально ли, что при выборе несуществующей расы создаётся персонаж с расой Human
            hero = new Character("Player", "numan", "Female");

            mage = new Mage("Gendalf", Race.Human, Gender.Male);


            badGuy = new Character("Ыыынгыз", Race.Goblin, Gender.Male);


            badGuy.Age = 50;
            mage.Age = 100;

            badGuy.Age = 50;
            mage.Age = 100;

            Console.WriteLine("Текущее значение маны мага = " + mage.CurrentMana);

            //Заклинания

            mage.LearnSpell(new UnRoot());
            mage.ForgotSpell(new UnRoot());
            mage.CastSpell(new UnRoot());


            mage.CurrentHP = 30;

            mage.LearnSpell(new IncreaseHP());
            mage.CastSpell(new IncreaseHP(),30);


            
            Console.WriteLine("Текущее значение маны мага = " + mage.CurrentMana);
            Console.WriteLine("Текущее значение хп мага = " + mage.CurrentHP);

            Console.WriteLine();
            Character experimentalMen = new Character("Его надо возродить", Race.Elf, Gender.Male);
            experimentalMen.CurrentHP = 0;
            Console.WriteLine("Текущее значение хп эльфа = " + experimentalMen.CurrentHP);
            Console.WriteLine("Текущее состояние эльфа = " + experimentalMen.Condition.ToString());

            mage.LearnSpell(new Revive());
            mage.CastSpell(new Revive(),1, experimentalMen);
            //эх не получилось
            Console.WriteLine("Текущее значение хп эльфа = " + experimentalMen.CurrentHP);
            Console.WriteLine("Текущее состояние эльфа = " + experimentalMen.Condition.ToString());

            //aртефакты

            Console.WriteLine();

            hero.UseArtefact(new EyeOfVasilisk(10), badGuy);
            DeadWater findArtefactDW = new DeadWater(BottleType.Малая);
            hero.Inventory.AddItem(findArtefactDW);
            hero.UseArtefact(findArtefactDW,mage);
        

            LightningStaff findArtefactLS = new LightningStaff(125);
            //попытка самоустранится
            hero.Inventory.AddItem(findArtefactLS);
            hero.UseArtefact(findArtefactLS,hero,40);
            //  почти удалось!
            
            Console.WriteLine("Текущее значение хп игрока = " + hero.CurrentHP);
            Console.WriteLine("Текущее состояние игрока = " + hero.Condition.ToString()+"\n");

            hero.UseArtefact(findArtefactLS,badGuy,45);
            Console.WriteLine("Текущее значение хп гоблина-вражины = " + badGuy.CurrentHP);
            Console.WriteLine("Текущее состояние гоблина-вражины = " + badGuy.Condition.ToString() + "\n");

            

            PoisonousSaliva saliva = new PoisonousSaliva(52);
            badGuy.Inventory.AddItem(saliva);
            badGuy.UseArtefact(saliva, hero, 26);
            Console.WriteLine("Текущее значение хп игрока = " + hero.CurrentHP);
            Console.WriteLine("Текущее состояние игрока = " + hero.Condition.ToString() + "\n");

            FrogDecoction healPoison = new FrogDecoction();
            mage.Inventory.AddItem(healPoison);
            mage.UseArtefact(healPoison, hero, 25);
            Console.WriteLine("Текущее значение хп игрока = " + hero.CurrentHP);
            Console.WriteLine("Текущее состояние игрока = " + hero.Condition.ToString() + "\n");

            //попытка использовать не реюзабельный артефакт
            mage.UseArtefact(healPoison, hero, 25);

            HolyWater holyWater = new HolyWater(BottleType.Большая);
            hero.Inventory.AddItem(holyWater);
            hero.UseArtefact(holyWater);
            Console.WriteLine("Текущее значение хп игрока = " + hero.CurrentHP);
            Console.WriteLine("Текущее состояние игрока = " + hero.Condition.ToString() + "\n");
            //передаём посох магу
            hero.Inventory.GiveItem(mage, "Посох молнии");
            // и сразу в бой
            mage.UseArtefact(findArtefactLS,badGuy,20);
            Console.WriteLine("Текущее значение хп гоблина-вражины = " + badGuy.CurrentHP);
            Console.WriteLine("Текущее состояние гоблина-вражины = " + badGuy.Condition.ToString() + "\n");


            //сравнение игроков
            Console.WriteLine(mage.CompareTo(hero));
            Console.WriteLine(hero.CompareTo(badGuy));
            //если добавить опыта, то всё изменится
            mage.Exp = 100;
            Console.WriteLine(mage.CompareTo(hero)+ "\n");
            

            //Работа брони
            mage.LearnSpell(new Armor());
            //cначала подбавим маны
            mage.CurrentMana = 100;
            Console.WriteLine("Текущее значение хп мага = " + mage.CurrentHP);

            mage.CastSpell(new Armor());
            //попробуем задомажить теперь мага
            mage.CurrentHP = 15;

            Console.WriteLine("Текущее состояние мага = " + mage.Condition.ToString());
            Console.WriteLine("Текущее значение хп мага = " + mage.CurrentHP);
         }