Exemplo n.º 1
0
        public void Travel(int citizenID, Region startRegion, Region endRegion, MovingTicket ticket)
        {
            using (NoSaveChanges)
            {
                var citizen = citizenRepository.GetById(citizenID);

                citizen.RegionID = endRegion.ID;

                equipmentRepository.RemoveEquipmentItem(citizen.Entity.EquipmentID.Value, ticket);

                var trades = tradeRepository.GetTradesAssociatedWithEntity(citizenID)
                             .Where(trade => trade.TradeStatusID == (int)TradeStatusEnum.Ongoing)
                             .ToList();

                var citizenLink = EntityLinkCreator.Create(citizen.Entity);
                var reason      = $"{citizenLink} moving into other region";
                foreach (var trade in trades)
                {
                    tradeService.AbortTrade(trade, reason);
                }

                citizen.HitPoints -= ticket.HpLoss;
            }

            ConditionalSaveChanges(citizenRepository);
        }
Exemplo n.º 2
0
 public void CloseTrade(Trade trade, int removedEntityID)
 {
     tradeService.AbortTrade(trade, reason: "removal of company");
     if (trade.DestinationEntityID == removedEntityID)
     {
         trade.DestinationEntityID = null;
     }
     else
     {
         trade.SourceEntityID = null;
     }
 }