public void AddUnit(WarUnit unit) { WarUnits.Add(unit); }
public bool IsOpponent(WarUnit unit) { return Side.IsOpponent(unit.Side); }
public void HealMP(Situation situation, WarUnit doer, int value) { int newValue = _status.Params[StatusKey.MP] + value; _status.Params[StatusKey.MP] = newValue <= _status.MaxMP ? newValue : _status.MaxMP; }
public void ExpendMP(Situation situation, WarUnit doer, int value) { int newValue = _status.Params[StatusKey.MP] - value; _status.Params[StatusKey.MP] = newValue > 0 ? newValue : _status.MaxMP; }
public void Die(Situation situation, WarUnit doer) { _status.Params[StatusKey.HP] = 0; Map.UnDeploy(this, Location); if (_area != null) _area.Units.Remove(_unit); DiedEvent.InvokeIfNotNull(situation, this, doer); }
public void DamageHP(Situation situation, WarUnit doer, int value) { int newValue = _status.Params[StatusKey.HP] - value; _status.Params[StatusKey.HP] = newValue > 0 ? newValue : 0; DamageEvent.InvokeIfNotNull(situation, this, doer, value); if (!Alive) Die(situation, doer); }