using System; using System.Collections.Generic; public class WeaponModel : IDisposable { public Weapon CurrentWeapon; public List Weapons; public event Action OnUpdate; public WeaponModel(Weapon currentWeapon, List weapons) { CurrentWeapon = currentWeapon; Weapons = weapons; foreach (var weapon in Weapons) weapon.OnShoot += ShootHandler; } public void ShootHandler(AbstractProjectile obj) { OnUpdate?.Invoke(this); } public void WeaponChangeHandler(Weapon weapon) { CurrentWeapon = weapon; OnUpdate?.Invoke(this); } public void Dispose() { foreach (var weapon in Weapons) if(weapon!= null) weapon.OnShoot -= ShootHandler; } }