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