public void Walk(int milesNumber, IEventBus bus) { if (milesNumber * 100 > CurrentHp) { throw new Exception("Niquezvous"); } var walkingEvt = new Walked(Id, AggregateName, Version + 1, milesNumber, CurrentHp - (milesNumber * 100)); bus.Publish(walkingEvt); Mutate(walkingEvt); if (new Random().Next() % 2 == 0 && milesNumber > 10) { var lostedEvt = new LimbLost(Id, AggregateName, Version + 1, LimbNumber - 1); bus.Publish(lostedEvt); Mutate(lostedEvt); } }
public virtual void Walk() { Console.WriteLine("An animal is walking."); Walked?.Invoke(this, EventArgs.Empty); }