public override bool ArePreconditionsMet(StateOffset state) { int actionPoints = state.Get(StateKey.AP(_source), _source.ActionPoints); Point position = state.Get(StateKey.Position(_source), _source.Position); int predictedCost = Point.TaxicabDistance(position, _target.Position); return actionPoints > predictedCost; }
public StateOffset ApplyPostconditions(StateOffset state) { int targetHealth = state.Get(StateKey.Health(_target), _target.Health); int damage = state.Get(StateOffset.CombatantKey(_target, "attack"), _source.EffectiveStats.Attack); state.Set(StateOffset.CombatantHealthKey(_target), targetHealth - damage); return state; }
public override StateOffset ApplyPostconditions(StateOffset state) { int actionPoints = state.Get(StateKey.AP(_source), _source.ActionPoints); state.Set(StateKey.AP(_source), actionPoints - _predictedCost); state.Set(StateKey.Position(_source), _destination); return state; }
public bool ArePreconditionsMet(StateOffset state) { Point _targetPos = state.Get(StateKey.Position(_target), _target.Position); return _melee.InFullAreaOfEffect(_targetPos); }