Exemplo n.º 1
0
        protected override ReadonlyEvent Resolve()
        {
            Result.Actor      = _actor;
            Result.Targets    = _eventTargets;
            Result.Resolution = EventResolutionType.Commit;
            Result.Place      = _actor.Location.Id;

            _damage = new Damage();
            CombatMutator.Setup(_damage);

            return(this);
        }
Exemplo n.º 2
0
        protected override Event Persist()
        {
            CombatMutator.Attack(_actor, _damage);
            CombatMutator.Mitigate(_target, _damage);

            Result.Deltas.Add(new Delta {
                Actor = _actor, Key = "Attack", Value = GenerateAttackString(_damage), Targets = new IEntity[] { _target }
            });
            Result.Deltas.Add(new Delta {
                Actor = _actor, Key = "AttackMessage", Value = _damage.ToString(), Targets = repo.Get(Result)
            });

            CombatMutator.Cleanup(_damage);

            return(this);
        }