示例#1
0
        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);
            }
        }
示例#2
0
 public virtual void Walk()
 {
     Console.WriteLine("An animal is walking.");
     Walked?.Invoke(this, EventArgs.Empty);
 }