37 lines
822 B
C#
37 lines
822 B
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
public class WeaponModel : IDisposable
|
|
{
|
|
public Weapon CurrentWeapon;
|
|
public List<Weapon> Weapons;
|
|
|
|
public event Action<WeaponModel> OnUpdate;
|
|
|
|
public WeaponModel(Weapon currentWeapon, List<Weapon> 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;
|
|
}
|
|
}
|