Exemplo n.º 1
0
 public WeaponStock(string nm, int acc, int wei, int att, int rel, int cli, string typ, int fr, Rectangle loc)
 {
     name = nm;
     accuracy = acc;
     weight = wei;
     attackPower = att;
     reloadSpeed = rel;
     clipCapacity = cli;
     type = typ;
     fireRate = fr;
     location = loc;
     clip = new GunClip(reloadSpeed, clipCapacity, new Rectangle(0,0,0,0));
 }
        public WeaponCustomizable(GunBody bdy, GunBarrel brrl, GunStock stck, GunClip clp)
        {
            barrel = brrl;
            body = bdy;
            stock = stck;
            clip = clp;

            accuracy += barrel.Accuracy + body.Accuracy + stock.Accuracy;
            weight += barrel.Weight + body.Weight + stock.Weight;
            attackPower += barrel.AttackPower + body.AttackPower;
            fireRate += body.FireRate;
            reloadSpeed += body.ReloadSpeed + clip.ReloadSpeed;
            clipCapacity += body.ClipCapacity + clip.ClipCapacity;
        }
Exemplo n.º 3
0
 private void SwitchCurrentClip()
 {
     //put current ammo into new gun
     int leftOverAmmo = currentClip.Current;
     if (leftOverAmmo > currentWeapon.ClipCapacity) //too much ammo for current clip, convert back to ammo
     {
         int excessAmmo = leftOverAmmo - currentWeapon.ClipCapacity;
         ammo += excessAmmo;
         leftOverAmmo -= excessAmmo;
     }
     currentClip = currentWeapon.Clip;
     currentClip.Current = leftOverAmmo;
 }
Exemplo n.º 4
0
 public void SwitchWeaponsPrevious()
 {
     reloading = false;
     reloadTimer = 0;
     weaponIndex -= 1;
     if (weaponIndex < 0)
     {
         weaponIndex = weapons.Count - 1;
     }
     currentWeapon = weapons[weaponIndex];
     fireRateTimer = 100 / currentWeapon.FireRate;
     if (currentWeapon.Weight >= 0 && currentWeapon.Weight <= 5)
     {
         moveSpeed = 4;
     }
     else if (currentWeapon.Weight >= 6 && currentWeapon.Weight <= 10)
     {
         moveSpeed = 3;
     }
     else if (currentWeapon.Weight >= 11 && currentWeapon.Weight <= 15)
     {
         moveSpeed = 2;
     }
     else if (currentWeapon.Weight >= 16 && currentWeapon.Weight <= 20)
     {
         moveSpeed = 1;
     }
     currentClip = currentWeapon.Clip;
     //SwitchCurrentClip();
 }
Exemplo n.º 5
0
 // methods
 //call in the constructors so we don't have have duplicate lines in each
 public void SetUp(string nm, Rectangle loc)
 {
     tBackend = new Tinkering.TinkerBackend(this);
     reloading = false;
     healingItemsAmount = 0;
     score = 0;
     ammo = 1000;
     name = nm;
     items = new List<GunBits>();
     weapons = new List<Weapon>();
     weaponIndex = 0;
     weapons.Add(new WeaponStock("Beginner's Pistol", 75, 1, 10, 5, 1, "Pistol", 10, new Rectangle(0,0,0,0)));
     currentWeapon = weapons[weaponIndex];
     currentClip = new GunClip(currentWeapon.ReloadSpeed, currentWeapon.ClipCapacity, new Rectangle(0,0,0,0));
     nextClip = null;
     currentClip.Current = currentClip.ClipCapacity;
     fireRateTimer = 100 / CurrentWeapon.FireRate;
     moveSpeed = 4;
     reloadTimer = 0;
 }
Exemplo n.º 6
0
 public void Reload()
 {
     if(GlobalVariables.map.AtSafehouse) return;
     reloading = true;
     //check for filled clips
     if (reloadTimer >= (nextClip.ReloadSpeed*60))
     {
         currentClip = nextClip;
         nextClip = null;
         reloadTimer = 0;
         reloading = false;
     }
 }
Exemplo n.º 7
0
        public void FindNextBestClip()
        {
            if (nextClip == null)
            {
                GunClip best = null;
                foreach (GunBits gunbit in items)
                {
                    if (gunbit is GunClip)
                    {
                        if (best == null)
                            best = (GunClip)gunbit;
                        else
                            if (((GunClip)gunbit).Current > best.Current)
                                best = (GunClip)gunbit;
                    }
                }

                if (best != null) //best clip found
                {
                    nextClip = best;
                }
            }
        }