public void FirePhoton(Galaxy wg) { Klingon enemy = (Klingon)wg.Variable("target"); if (_torpedoStrength > 0) { int distance = enemy.Distance(); if ((Rnd(4) + ((distance / 500) + 1) > 7)) { wg.WriteLine("Torpedo missed Klingon at " + distance + " sectors..."); } else { //int damage = 800 + Rnd(50); int damage = CalculatePhotonDamage(800, 50); wg.WriteLine("Photons hit Klingon at " + distance + " sectors with " + damage + " units"); if (damage < enemy.GetEnergy()) { enemy.SetEnergy(enemy.GetEnergy() - damage); wg.WriteLine("Klingon has " + enemy.GetEnergy() + " remaining"); } else { wg.WriteLine("Klingon destroyed!"); enemy.Delete(); } } _torpedoStrength -= 1; } else { wg.WriteLine("No more photon torpedoes!"); } }
public void Fire(Galaxy wg) { Galaxy = wg; Klingon enemy = wg.Target; if (HasRemainingAmmo()) { int distance = enemy.Distance(); if (Missed(distance)) { WriteMissedMessage(distance); } else { int damage = GetDamage(); WriteHitMessage(distance, damage); Hit(wg, damage, enemy); } DecreaseAmmo(); } else { WriteNoAmmoMessage(); } }
public void FireWeapon(Galaxy wg) { IWeapon myWeapon = null; if (wg.Parameter("command").Equals("phaser")) { /* * myWeapon = new Phaser( wg, e ); * myWeapon.Fire(); */ FirePhaser(wg); } else if (wg.Parameter("command").Equals("photon")) { //FirePhoton(wg); Klingon enemy = (Klingon)wg.Variable("target"); if (_torpedoStrength > 0) { myWeapon = new PhotonTorpedo(enemy, wg); myWeapon.Fire(); _torpedoStrength -= 1; } else { wg.WriteLine("No more photon torpedoes!"); } } }
static void Main(string[] args) { Hero Jason = new Hero("Jason", 3, 15); Ork Harvey = new Ork("Ork Harvey", 1, 5); Ork Ben = new Ork("Ork Ben", 2, 8); Klingon Aaron = new Klingon("Klingon Aaron", 3, 12); Klingon Josh = new Klingon("Klingon Josh", 5, 15); HarryPotter HarryPotter1 = new HarryPotter("Harry Potter gen.1", 7, 20, 2); HarryPotter HarryPotter2 = new HarryPotter("Harry Potter gen.2", 8, 20, 3); HarryPotter HarryPotter3 = new HarryPotter("Harry Potter gen.3", 10, 25, 4); Story.BeforeOrk(); Battle.WithOrk(Jason, Harvey); Battle.WithOrk(Jason, Ben); Jason.LevelUp(); Story.BeforeKlingon(); Battle.WithKlingon(Jason, Aaron); Battle.WithKlingon(Jason, Josh); Jason.LevelUp(); Story.BeforeHarryPotter(); Battle.WithHarryPotter(Jason, HarryPotter1); Battle.WithHarryPotter(Jason, HarryPotter2); Battle.WithHarryPotter(Jason, HarryPotter3); Story.TheEnd(); }
protected void Hit(Galaxy wg, int damage, Klingon enemy) { if (damage < enemy.GetEnergy()) { enemy.SetEnergy(enemy.GetEnergy() - damage); wg.WriteLine("Klingon has " + enemy.GetEnergy() + " remaining"); } else { wg.WriteLine("Klingon destroyed!"); enemy.Delete(); } }
public static void WithKlingon(Hero hero, Klingon Klingon) { //ensures that both the player and the enemy are alive while (Klingon.health > 0 && hero.health > 0) { PrintTheStats(Klingon, hero); hero.YourTurn(hero.Choice(), Klingon); if (Klingon.health > 0) { Klingon.KlingonTurn(Klingon.EChoice(), hero); IsHeroDead(hero); } } Console.WriteLine("{0} was killed!", Klingon.name); Console.ReadLine(); Console.Clear(); }
private void ResolveHitOn(Klingon klingon, float perEnemyStrength, Quadrant quadrant) { var distance = _enterprise.SectorCoordinates.GetDistanceTo(klingon.Sector); var hitStrength = (int)(perEnemyStrength / distance * (2 + _random.GetFloat())); if (klingon.TakeHit(hitStrength)) { _output.WriteLine($"{hitStrength} unit hit on Klingon at sector {klingon.Sector}"); _output.WriteLine( klingon.Energy <= 0 ? quadrant.Remove(klingon) : $" (sensors show {klingon.Energy} units remaining)"); } else { _output.WriteLine($"Sensors show no damage to enemy at {klingon.Sector}"); } }
public void FirePhaser(Galaxy wg) { int amount = int.Parse(wg.Parameter("amount")); Klingon enemy = (Klingon)wg.Variable("target"); if (_energyRemaining >= amount) { int distance = enemy.Distance(); if (distance > 4000) { wg.WriteLine("Klingon out of range of phasers at " + distance + " sectors..."); } else { int damage = amount - (((amount / 20) * distance / 200) + Rnd(200)); if (damage < 1) { damage = 1; } wg.WriteLine("Phasers hit Klingon at " + distance + " sectors with " + damage + " units"); if (damage < enemy.GetEnergy()) { enemy.SetEnergy(enemy.GetEnergy() - damage); wg.WriteLine("Klingon has " + enemy.GetEnergy() + " remaining"); } else { wg.WriteLine("Klingon destroyed!"); enemy.Delete(); } } _energyRemaining -= amount; } else { wg.WriteLine("Insufficient energy to fire phasers!"); } }
public void FireWeapon(Galaxy wg) { if (wg.Parameter("command").Equals("phaser")) { int amount = int.Parse(wg.Parameter("amount")); Klingon enemy = (Klingon)wg.Variable("target"); if (e >= amount) { int distance = enemy.Distance(); if (distance > 4000) { wg.WriteLine("Klingon out of range of phasers at " + distance + " sectors..."); } else { int damage = amount - (((amount / 20) * distance / 200) + Rnd(200)); if (damage < 1) { damage = 1; } wg.WriteLine("Phasers hit Klingon at " + distance + " sectors with " + damage + " units"); if (damage < enemy.GetEnergy()) { enemy.SetEnergy(enemy.GetEnergy() - damage); wg.WriteLine("Klingon has " + enemy.GetEnergy() + " remaining"); } else { wg.WriteLine("Klingon destroyed!"); enemy.Delete(); } } e -= amount; } else { wg.WriteLine("Insufficient energy to fire phasers!"); } } else if (wg.Parameter("command").Equals("photon")) { Klingon enemy = (Klingon)wg.Variable("target"); if (t > 0) { int distance = enemy.Distance(); if ((Rnd(4) + ((distance / 500) + 1) > 7)) { wg.WriteLine("Torpedo missed Klingon at " + distance + " sectors..."); } else { int damage = 800 + Rnd(50); wg.WriteLine("Photons hit Klingon at " + distance + " sectors with " + damage + " units"); if (damage < enemy.GetEnergy()) { enemy.SetEnergy(enemy.GetEnergy() - damage); wg.WriteLine("Klingon has " + enemy.GetEnergy() + " remaining"); } else { wg.WriteLine("Klingon destroyed!"); enemy.Delete(); } } t -= 1; } else { wg.WriteLine("No more photon torpedoes!"); } } }
public PhotonTorpedo(Klingon inEnemy, Galaxy inWg) { enemy = inEnemy; wg = inWg; }