public SerializableOngoingDealData ComposeOngoingDeal(IOngoingDeal ongoingDeal) { var retval = new SerializableOngoingDealData(); retval.Sender = ongoingDeal.Sender.Template.Name; retval.Receiver = ongoingDeal.Receiver.Template.Name; retval.TurnsLeft = ongoingDeal.TurnsLeft; foreach (var offer in ongoingDeal.ExchangesFromSender) { retval.ExchangesFromSender.Add(OngoingExchangeComposer.ComposeOngoingExchange(offer)); } foreach (var demand in ongoingDeal.ExchangesFromReceiver) { retval.ExchangesFromReceiver.Add(OngoingExchangeComposer.ComposeOngoingExchange(demand)); } foreach (var bilateral in ongoingDeal.BilateralExchanges) { retval.BilateralExchanges.Add(OngoingExchangeComposer.ComposeOngoingExchange(bilateral)); } return(retval); }
public void UnsubscribeOngoingDeal(IOngoingDeal deal) { deal.End(); deal.TerminationRequested -= HandleTerminationRequest; ActiveDeals.Remove(deal); }
public void SubscribeOngoingDeal(IOngoingDeal deal) { deal.Start(); deal.TurnsLeft = Config.TradeDuration; deal.TerminationRequested += HandleTerminationRequest; ActiveDeals.Add(deal); }
private IDiplomaticProposal BuildProposal( ICivilization sender, ICivilization receiver, bool canBePerformed = true, Action performCallback = null, IOngoingDeal ongoingDealReturned = null ) { var mockProposal = new Mock <IDiplomaticProposal>(); mockProposal.Setup(proposal => proposal.Sender).Returns(sender); mockProposal.Setup(proposal => proposal.Receiver).Returns(receiver); mockProposal.Setup(proposal => proposal.CanPerformProposal()).Returns(canBePerformed); mockProposal.Setup(proposal => proposal.PerformProposal()).Returns(ongoingDealReturned); if (performCallback != null) { mockProposal.Setup(proposal => proposal.PerformProposal()).Callback(performCallback); } return(mockProposal.Object); }
public OngoingDealEventArgs(IOngoingDeal deal) { Deal = deal; }