Beispiel #1
0
 public NPCWeaponSlot(Unit unit, WeaponData data, int totalAmmo) : base(unit, data, totalAmmo)
 {
     Data         = data;
     CurrentClip  = data.ClipSize;
     TotalAmmo    = totalAmmo;
     _weaponState = new ActiveWeaponState();
 }
 public Weapon(Unit unit, WeaponData data, int totalAmmo)
 {
     _unit        = unit;
     Data         = data;
     CurrentClip  = data.ClipSize;
     TotalAmmo    = totalAmmo;
     _weaponState = new ActiveWeaponState();
 }
 public virtual bool TryActivate(ActivateTime time, Unit unit, ActiveWeaponState state)
 {
     if ((time & _weaponActivateTime) == 0)
     {
         return(false);
     }
     // do weapon thing
     return(PerformAction(unit, state));
 }
Beispiel #4
0
    protected override bool PerformAction(Unit unit, ActiveWeaponState state)
    {
        if (!HasWeaponCooledDown(state.LastActivateTime))
        {
            // fail to fire
            return(false);
        }

        // start firing the shot
        InitiateShot(unit);
        // update weapon state
        state.LastActivateTime = Time.time;
        return(true);
    }
 protected abstract bool PerformAction(Unit unit, ActiveWeaponState state);