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(); }
public override IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien) { alien.Armor -= ArmorRemoval; yield return(new WaitForSeconds(DebuffDuration)); alien.Armor += ArmorRemoval; }
public override IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien) { for (int i = 0; i < TickPeriod; i++) { alien.Health -= TickAmount; yield return(new WaitForSeconds(TickPeriod)); } }
public virtual CitizenWeaponType GetWeaponType(CitizenWeapon weapon) { if (weapon == null) { return(DefaultWeaponType); } return(weapon.Type); }
public virtual float GetFireRate(CitizenWeapon weapon) { if (weapon == null) { return(1 / DefaultFirerate); } return(1 / (weapon.FireRate * FireRateModifier)); }
public virtual float GetRange(CitizenWeapon weapon) { if (weapon == null) { return(DefaultRange); } return(weapon.Range + RangeModifier); }
public virtual int GetDamage(CitizenWeapon weapon) { if (weapon == null) { return(DefaultDamage); } return(weapon.Damage + DamageModifier); }
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); }
private IEnumerator DelayMessageForGun(CitizenWeapon weapon) { yield return(new WaitForSeconds(2.5f)); StatusManager.DisplayError(string.Format("Recieved {0}", weapon.Name)); }
public virtual IEnumerator OnDamageDebuff(CitizenWeapon weapon, Alien alien) { return(null); }
public void AddWeapon(CitizenWeapon weapon) { LevelManager.Instance.Player.Weapons.Add(weapon); }
public override CitizenWeaponType GetWeaponType(CitizenWeapon weapon) { return(CitizenWeaponType.Grenade); }