/// <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(); }
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); } }
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"); }
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!"); } }