Example #1
0
    public void EquipWeapon(CitizenWeapon weapon)
    {
        if (LevelManager.Instance.Constants.RemoveOnEquip)
        {
            LevelManager.Instance.Command.RemoveWeapon(weapon.Name);
        }
        else
        {
            LevelManager.Instance.Command.RemoveWeapon(weapon.Name);
            if (EquipedWeapon != null)
            {
                LevelManager.Instance.Command.AddWeapon(EquipedWeapon);
            }
        }
        EquipedWeapon = weapon;
        if (OnEquipAudio.Count > 0)
        {
            GetComponent <AudioSource>().Stop();
            GetComponent <AudioSource>().PlayOneShot(OnEquipAudio[UnityEngine.Random.Range(0, OnEquipAudio.Count)]);
        }


        // Create the gun prefab
        if (weapon != null)
        {
            if (visualObject != null)
            {
                Destroy(visualObject);
            }
            visualObject = Instantiate(weapon.Visual, AttachmentPoint);
        }

        UpdateRangeIndicator();
    }
Example #2
0
    public override IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien)
    {
        alien.Armor -= ArmorRemoval;
        yield return(new WaitForSeconds(DebuffDuration));

        alien.Armor += ArmorRemoval;
    }
Example #3
0
 public override IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien)
 {
     for (int i = 0; i < TickPeriod; i++)
     {
         alien.Health -= TickAmount;
         yield return(new WaitForSeconds(TickPeriod));
     }
 }
Example #4
0
 public virtual CitizenWeaponType GetWeaponType(CitizenWeapon weapon)
 {
     if (weapon == null)
     {
         return(DefaultWeaponType);
     }
     return(weapon.Type);
 }
Example #5
0
 public virtual float GetFireRate(CitizenWeapon weapon)
 {
     if (weapon == null)
     {
         return(1 / DefaultFirerate);
     }
     return(1 / (weapon.FireRate * FireRateModifier));
 }
Example #6
0
 public virtual float GetRange(CitizenWeapon weapon)
 {
     if (weapon == null)
     {
         return(DefaultRange);
     }
     return(weapon.Range + RangeModifier);
 }
Example #7
0
 public virtual int GetDamage(CitizenWeapon weapon)
 {
     if (weapon == null)
     {
         return(DefaultDamage);
     }
     return(weapon.Damage + DamageModifier);
 }
Example #8
0
    public CitizenWeapon RemoveWeapon(string name)
    {
        CitizenWeapon weaponToRemove = null;

        for (int i = 0; i < LevelManager.Instance.Player.Weapons.Count; i++)
        {
            if (LevelManager.Instance.Player.Weapons[i].Name == name)
            {
                weaponToRemove = LevelManager.Instance.Player.Weapons[i];
            }
        }
        if (weaponToRemove != null)
        {
            LevelManager.Instance.Player.Weapons.Remove(weaponToRemove);
            return(weaponToRemove);
        }
        return(null);
    }
Example #9
0
    private IEnumerator DelayMessageForGun(CitizenWeapon weapon)
    {
        yield return(new WaitForSeconds(2.5f));

        StatusManager.DisplayError(string.Format("Recieved {0}", weapon.Name));
    }
Example #10
0
 public virtual IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien)
 {
     return(null);
 }
Example #11
0
 public void AddWeapon(CitizenWeapon weapon)
 {
     LevelManager.Instance.Player.Weapons.Add(weapon);
 }
Example #12
0
 public override CitizenWeaponType GetWeaponType(CitizenWeapon weapon)
 {
     return(CitizenWeaponType.Grenade);
 }