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 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;
        }