示例#1
0
        public void testAttack()
        {
            Armor WoodenSheild = new Armor("Wooden Sheild", 10, "Normal", 10, "Fire");
            Weapon RustySword = new Weapon("Rusty Sword", 30, "Normal", 40, "Fire");

            Character Joe = new Character("Joe", 100, 20, 2.0, 2.0, 1.0, RustySword, WoodenSheild);
            Character Bob = new Character("Bob", 100, 20, 1.0, 2.0, 1.0, RustySword, WoodenSheild);
            Bob.Attack(Joe);

            Assert.AreEqual(40, Joe.getHP());
        }
示例#2
0
        static void Main(string[] args)
        {
            //Build and create a 3d board
            //Application.Run(new Board());

            Armor WoodenShield = new Armor ("Wooden Sheild", 10, "Normal", 10, "Fire");
            Weapon RustySword = new Weapon ("Rusty Sword", 30, "Normal", 40, "Fire");

            Weapon BetterSword = new Weapon("Better Sword", 50, "Normal", 60, "Electric");
            Armor BetterArmor = new Armor("Better Armor", 50, "Normal", 20, "Electric");

            SpellEffect poison = new SpellEffect("Poison", "Normal", 2, 3);

            Spell NewSpell = new Spell("testSpell", 5, 20, "Fire", poison);
            Spell NextSpell = new Spell("nextSpell", 2, 5, "Fire");

            Character Joe = new Character("Joe", 5, 5, 5, 5, 5, RustySword, WoodenShield);
            Character Bob = new Character ("Bob", 10, 10, 5, 2, 2, RustySword, WoodenShield);

            Bob.LevelCharacter(3);

            Console.WriteLine(Bob.getWeapon().getName());
            Bob.changeWeapon(BetterSword);
            Console.WriteLine(Bob.getWeapon().getName());
            Bob.changeWeapon(RustySword);

            Console.WriteLine(Joe.getHP());
            //Joe.hurt(Bob);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            //change weapon test
            Bob.changeWeapon(BetterSword);
            Bob.Attack(Joe);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            Joe.changeArmor(BetterArmor);
            Bob.Attack(Joe);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            //string path = serializer(Joe);
            //Character Joe2 = deserializer(path);

            Joe.LearnSpell(NewSpell);
            Joe.LearnSpell(NewSpell);

            Joe.CastSpell(Bob);

            List<SpellEffect> effectList = new List<SpellEffect>();
            effectList = SpellEffect.ImportEffects("../../ImportFiles/effect-list.csv", effectList);

            List<Spell> spellList = new List<Spell>();
            spellList = Spell.ImportSpells("../../ImportFiles/spell-list.csv", spellList, effectList);

            foreach (Spell spell in spellList)
            {
                Console.WriteLine(spell.getName());
            }

            //StartMenu game = new StartMenu();
            StartMenu menu = new StartMenu();

            menu.startMenu();

            //Wait
            Console.ReadKey();
        }
示例#3
0
        //Character passed hurts this character
        /*public void hurt(Character character)
        {
            int physDamage = character.physDamage;
            int magDamage = character.magDamage;
            int physResist = this.physResist;
            int magResist = this.magResist;

            string magicDefType = this.armor.getMagicType();
            string magicAtcType = character.getWeapon().getMagicType();

            string physDefType = this.armor.getPhysicalType();
            string physAtcType = character.getWeapon().getPhysicalType();

            //cout << "Magic Damage Before Armor: " << magDamage << endl;

            //Modify Damage
            if (0 == string.Compare(magicDefType, magicAtcType))
            { //Matching
                magDamage = (int)(magDamage * .5);
            }
            else if (0 == string.Compare(magicDefType, "Ice"))
            {
                if (0 == string.Compare(magicAtcType, "Electric"))
                    magDamage = (int)(magDamage * 1.5);
            }
            else if (0 == string.Compare(magicDefType, "Fire"))
            {
                if (0 == string.Compare(magicAtcType, "Ice"))
                    magDamage = (int)(magDamage * 1.5);
            }
            else if (0 == string.Compare(magicDefType, "Electric"))
            {
                if (0 == string.Compare(magicAtcType, "Fire"))
                    magDamage = (int)(magDamage * 1.5);
            }

            //cout << "Magic Damage After Armor: " << magDamage << endl;
            //cout << "Magic Damage After Resist: " << magDamage - magResist << endl;

            if (physResist > physDamage)
            {
                physResist = physDamage;
            }

            if (magResist > magDamage)
            {
                magResist = magDamage;
            }

            int actDamage = (physDamage - physResist) + (magDamage - magResist);

            //cout << actDamage << endl;

            //prevent Negative Health
            if (actDamage > 0)
            {
                if (this.HP > actDamage)
                    this.HP -= actDamage;
                else
                    this.HP = 0;
            }
        }*/
        //hurting the character being passed in
        public void Attack(Character character)
        {
            //local variable to calc magic damage
            int magDamage = this.magDamage;
            int magResist = character.magResist;

            //type of damage
            //probably remove magic from most weapons
            string magicAtkType = weapon.getMagicType();

            magDamage = checkResist(magDamage, magicAtkType, character.armor.getMagicType());

            //ensure that you aren't doing negative damage
            if (physResist > physDamage)
            {
                physResist = physDamage;
            }

            if (magResist > magDamage)
            {
                magResist = magDamage;
            }

            if (character.getHP() != 0)
            {
                //calc total damage
                int totalDam = (this.physDamage - character.physResist) + (magDamage - magResist);

                takeDamage(character, totalDam);
                if (character.getHP() == 0)
                {
                    getXP(character);
                }
            }
            else
            {
                Console.WriteLine("That character is already dead!");
            }
        }
示例#4
0
        //single target and AoE?
        //won't need a character in the latter case
        public bool CastSpell(Character character)
        {
            if (knownSpells.Count == 0)
            {
                Console.WriteLine("You don't know any spells!");
                Console.ReadLine();
                return false;
            }

            Spell chosenSpell = null;

            int position = 0;
            int posMax = knownSpells.Count - 1;

            bool spellChosen = false;

            while (!spellChosen)
            {
                int i = 0;
                foreach (Spell spell in knownSpells)
                {
                    if (position == i)
                    {
                        Console.ForegroundColor = ConsoleColor.Green;
                        Console.WriteLine("    Spell: {0}, Damage: {1}, Type: {2}, Effect: {3}", knownSpells[i].getName(), knownSpells[i].getDamage(), knownSpells[i].getType(), knownSpells[i].getEffect().getName());
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    else { Console.WriteLine("    Spell: {0}, Damage: {1}, Type: {2}, Effect: {3}", knownSpells[i].getName(), knownSpells[i].getDamage(), knownSpells[i].getType(), knownSpells[i].getEffect().getName()); }
                    i++;
                }
                //Read Key Input
                ConsoleKeyInfo keypressed = Console.ReadKey(false);
                if ((int)keypressed.Key == (char)ConsoleKey.DownArrow && position < posMax)
                {
                    position += 1;
                }
                else if ((int)keypressed.Key == (char)ConsoleKey.UpArrow && position > 0)
                {
                    position -= 1;
                }
                else if ((int)keypressed.Key == (char)ConsoleKey.Enter)
                {
                    Console.BackgroundColor = ConsoleColor.Black;
                    Console.CursorVisible = true;
                    Console.Clear();
                    spellChosen = true;
                    chosenSpell = knownSpells[position];
                }
            }

            int damage = chosenSpell.getDamage();
            string type = chosenSpell.getType();

            damage = checkResist(damage, type, character.armor.getMagicType());

            if (character.getHP() != 0)
            {
                int totalDam = damage - character.magResist;

                if (chosenSpell.getEffect() != null)
                {
                    character.activeEffects.Add(chosenSpell.getEffect());
                }
                takeDamage(character, totalDam);
                if (character.getHP() == 0)
                {
                    getXP(character);
                }
                return true;
            }
            else
            {
                Console.WriteLine("That character is already dead!");
                return false;
            }
        }
示例#5
0
        static void Main(string[] args)
        {
            Armor WoodenSheild = new Armor ("Wooden Sheild", 10, "Normal", 10, "Fire");
            Weapon RustySword = new Weapon ("Rusty Sword", 30, "Normal", 40, "Fire");

            Weapon BetterSword = new Weapon("Better Sword", 50, "Normal", 60, "Electric");
            Armor BetterArmor = new Armor("Better Armor", 50, "Normal", 20, "Electric");

            SpellEffect poison = new SpellEffect("Poison", "Normal", 2, 3);

            Spell NewSpell = new Spell("testSpell", 5, 20, "Fire", poison);
            Spell NextSpell = new Spell("nextSpell", 2, 5, "Fire");

            Character Joe = new Character ("Joe", 100, 20, 2.0, 2.0, 1.0, RustySword, WoodenSheild);
            Character Bob = new Character ("Bob", 100, 20, 1.0, 2.0, 1.0, RustySword, WoodenSheild);

            Console.WriteLine(Bob.getWeapon().getName());
            Bob.changeWeapon(BetterSword);
            Console.WriteLine(Bob.getWeapon().getName());
            Bob.changeWeapon(RustySword);

            Console.WriteLine(Joe.getHP());
            Joe.hurt(Bob);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            //change weapon test
            Bob.changeWeapon(BetterSword);
            Bob.Attack(Joe);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            Joe.changeArmor(BetterArmor);
            Bob.Attack(Joe);
            Console.WriteLine(Joe.getHP());
            Joe.heal(100F);
            Console.WriteLine(Joe.getHP());

            string path = serializer(Joe);
            Character Joe2 = deserializer(path);

            Joe.LearnSpell(NewSpell);
            Joe.LearnSpell(NewSpell);

            List<SpellEffect> effectList = new List<SpellEffect>();
            effectList = SpellEffect.ImportEffects("../../ImportFiles/effect-list.csv", effectList);

            List<Spell> spellList = new List<Spell>();
            spellList = Spell.ImportSpells("../../ImportFiles/spell-list.csv", spellList, effectList);

            foreach (Spell spell in spellList)
            {

                Console.WriteLine(spell.getName());
            }
            Console.WriteLine(Environment.CurrentDirectory);

            PlayGame game = new PlayGame();

            //Wait
            Console.ReadKey();
        }