コード例 #1
0
        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);
        }
コード例 #2
0
        public void UnsubscribeOngoingDeal(IOngoingDeal deal)
        {
            deal.End();

            deal.TerminationRequested -= HandleTerminationRequest;

            ActiveDeals.Remove(deal);
        }
コード例 #3
0
        public void SubscribeOngoingDeal(IOngoingDeal deal)
        {
            deal.Start();

            deal.TurnsLeft = Config.TradeDuration;

            deal.TerminationRequested += HandleTerminationRequest;

            ActiveDeals.Add(deal);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
 public OngoingDealEventArgs(IOngoingDeal deal)
 {
     Deal = deal;
 }