public SurvivorSprite(Game game, Location location, Single currentHealth, Boolean alive, Single currentStamina, bool[] weaponsEnabled, Ammunition ammo, Int32 currentWeaponIndex)
     : base(game, location)
 {
     this.currentWeaponSpecifierIndex = currentWeaponIndex;
     this.weaponsEnabled = weaponsEnabled;
     this.Alive          = alive;
     this.CurrentHealth  = currentHealth;
     this.CurrentStamina = currentStamina;
     this.Ammunition     = ammo;
     CurrentWeapon.Deploy();
 }
        private void CalculateWeaponStatus(GameTime gameTime, GameControl gameControl)
        {
            // Cycle through Weapons
            if (gameControl.WeaponNextCycleControl)
            {
                Weapon oldWeapon = WEAPON_SPECIFIERS[currentWeaponSpecifierIndex];
                currentWeaponSpecifierIndex++;
                if (currentWeaponSpecifierIndex >= WEAPON_SPECIFIERS.Length)
                {
                    currentWeaponSpecifierIndex = 0;
                }
                while (!weaponsEnabled[currentWeaponSpecifierIndex])
                {
                    currentWeaponSpecifierIndex++;
                    if (currentWeaponSpecifierIndex >= WEAPON_SPECIFIERS.Length)
                    {
                        currentWeaponSpecifierIndex = 0;
                    }
                }
                oldWeapon.Stow();
                CurrentWeapon.Deploy();
            }
            else if (gameControl.WeaponPreviousCycleControl)
            {
                Weapon oldWeapon = WEAPON_SPECIFIERS[currentWeaponSpecifierIndex];
                currentWeaponSpecifierIndex--;
                if (currentWeaponSpecifierIndex < 0)
                {
                    currentWeaponSpecifierIndex = WEAPON_SPECIFIERS.Length - 1;
                }
                while (!weaponsEnabled[currentWeaponSpecifierIndex])
                {
                    currentWeaponSpecifierIndex--;
                    if (currentWeaponSpecifierIndex < 0)
                    {
                        currentWeaponSpecifierIndex = WEAPON_SPECIFIERS.Length - 1;
                    }
                }
                oldWeapon.Stow();
                CurrentWeapon.Deploy();
            }

            // Update current weapon
            CurrentWeapon.Update(gameTime, gameControl.WeaponLeftFireControl, gameControl.WeaponRightFireControl, gameControl.WeaponReloadControl, this);
        }