示例#1
0
        public void Fire()
        {
            //int damage = 800 + Rnd(50);
            int damage   = CalculateDamage(800, 50);
            int distance = enemy.Distance();

            if ((Game.Rnd(4) + ((enemy.Distance() / 500) + 1) > 7))
            {
                wg.WriteLine("Torpedo missed Klingon at " + distance + " sectors...");
            }
            else
            {
                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();
                }
            }
        }
示例#2
0
    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!");
        }
    }
示例#3
0
        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();
            }
        }
示例#4
0
    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!");
        }
    }
示例#5
0
 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!");
         }
     }
 }