Beispiel #1
0
        /// <summary>
        /// Runs a battle against an easy AI
        /// </summary>
        /// <param name="player"></param>
        /// <param name="computer"></param>
        public override void StartFight(Pokemon player, Pokemon computer)
        {
            //Prepare for the fight
            Console.WriteLine("You have selected... " + player.GetType().Name + "!");
            player.PrintStats();
            Console.WriteLine();
            Console.WriteLine("And you're going to be fighting... " + computer.GetType().Name + "!");
            computer.PrintStats();
            Console.WriteLine();
            Console.WriteLine("Good luck! Hit enter to begin!");
            Console.ReadLine();
            Console.Clear();

            //Generate available moves
            player.SetMoves();
            computer.SetMoves();

            //Simiulate the battle until there's a winner!
            do
            {
                //Print out the status of both pokemon
                Console.WriteLine("{0,45}: {1}/{2}", computer.GetType().Name, computer.HP, computer.MaxHP);
                Console.WriteLine("{0,45}: {1}/{2}", player.GetType().Name, player.HP, player.MaxHP);
                Console.WriteLine("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");

                int userAttack = GetUserAttack(player);
                int computerAttack = Utilities.Utilities.getRandomUniqueIndexArray(computer.Moves.Length, 1)[0];
                OrderAttacks(player, computer, userAttack, computerAttack);
            } while(player.HP != 0 && computer.HP != 0);

            if(0 == player.HP) Console.WriteLine("It looks like you lost! Better luck next time");
            else Console.WriteLine("You won! Congratulations!");
            Console.ReadLine();
        }
Beispiel #2
0
        public override void ImplementAttack(Pokemon user, Pokemon opponent)
        {
            if(0 == GetModifier(user, opponent))
            {
                this.Damage = 0;
            }
            else
            {
                if(user.Speed >= opponent.Speed)
                {
                    if(new Random().Next(100) < 30)
                    {
                        this.Damage = opponent.HP;
                    }
                    else
                    {
                        this.Damage = 0;
                    }
                }
                else
                {
                    this.Damage = 0;
                }
            }

            if(0 == this.Damage) Console.WriteLine(user.GetType().Name + " missed!");
            else
            {
                this.Attacker = user.GetType().Name + " uses " + this.GetType().Name + ". It's an instant KO!";
                opponent.TakeDamage(this);
            }
        }
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     this.Damage = -(user.MaxHP / 2);
     this.WasEffective = null;
     this.WasCritical = false;
     this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
     user.TakeDamage(this);
 }
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     if(IsAHit(user, opponent))
     {
         this.Damage = GenerateDamage(user.Attack, opponent.Defense, GetModifier(user, opponent));
         this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
         opponent.TakeDamage(this);
     }
     else
     {
         Console.WriteLine(user.GetType().Name + " missed!");
         this.Attacker = user.GetType().Name + " keeps going and crashes!";
         this.Damage = 1;
         this.WasCritical = false;
         this.WasEffective = null;
         user.TakeDamage(this);
     }
 }
Beispiel #5
0
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     if(IsAHit(user, opponent))
     {
         this.Damage = GenerateDamage(user.Attack, opponent.Defense, GetModifier(user, opponent));
         this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
         opponent.TakeDamage(this);
         if(0 != RecoilDivider) this.Damage /= RecoilDivider;
         else this.Damage = user.HP;
         this.WasEffective = null;
         this.WasCritical = false;
         this.Attacker = "The attack recoiled!";
         user.TakeDamage(this);
     }
     else
     {
         Console.WriteLine(user.GetType().Name + " missed!");
     }
 }
        public override void ImplementAttack(Pokemon user, Pokemon opponent)
        {
            int attacks = new Random().Next(8);
            if(attacks < 3) attacks = 2;
            else if(attacks < 6) attacks = 3;
            else if(6 == attacks) attacks = 4;
            else if(7 == attacks) attacks = 5;

            this.Damage = GenerateDamage(user.Attack, opponent.Defense, GetModifier(user, opponent));

            for(int i = 0; i < attacks; i++)
            {
                this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
                opponent.TakeDamage(this);
            }
        }
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     if(IsAHit(user, opponent))
     {
         this.Damage = opponent.HP / 2;
         this.WasEffective = null;
         this.WasCritical = false;
         this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
         opponent.TakeDamage(this);
     }
     else
     {
         Console.WriteLine(user.GetType().Name + " missed!");
     }
 }
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     this.Damage = 40; //This one always does 40 damage no matter what. (A little OP for this game!)
     this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
     opponent.TakeDamage(this);
 }
 public override void ImplementAttack(Pokemon user, Pokemon opponent)
 {
     Console.WriteLine(user.GetType().Name + " uses " + this.GetType().Name);
     Console.WriteLine("It has no effect whatsoever");
 }
Beispiel #10
0
 protected void CommonDamageAttack(Pokemon user, Pokemon opponent)
 {
     if(IsAHit(user, opponent))
     {
         this.Damage = GenerateDamage(user.Attack, opponent.Defense, GetModifier(user, opponent));
         this.Attacker = user.GetType().Name + " uses " + this.GetType().Name;
         opponent.TakeDamage(this);
     }
     else
     {
         Console.WriteLine(user.GetType().Name + " missed!");
     }
 }