Example #1
0
 public string use(WeaponTypes type, Projector target, Range firingRange)
 {
     if (isWaitingForLoad)
     {
         return(null);
     }
     lock (validWeapons) {
         if (target != null && target.isLanded() &&
             target.Equals(Mission.player))
         {
             return(null);
         }
         //don't let fire at player if player on ground
         if (type == WeaponTypes.landingBeaconLock)
         {
             return(null);
         }
         WeaponBase e     = null;
         int        c     = 0;
         String     p     = null;
         bool       first = true;
         do
         {
             if (c > 0 && !muted) //Only guns will increase c
             {
                 setStrafe(true); //Object may fire a few more rounds before it is suspended so don't restart strafe sound.
             }
             e = createNewWeapon(type, target, firingRange);
             if (e == null)
             {
                 setStrafe(false); //turn off strafing in case player ran out of ammo.
                 return(null);
             }
             if (first)
             {
                 p = initializeWeapon(e);
             }
             if (weaponIndex != WeaponTypes.guns)
             {
                 return(p);
             }
             first = false;
         } while (++c <= 10);
         return(p);
     } //lock
 }