예제 #1
0
        public void AcceptIncentive(Incentive incentive)
        {
            // Dequeue from current attraction and go to next one
            this.CurrentAttraction.VisitorsQueue.Remove(this);
            this.EnqueueInAttraction(incentive.ExchangeAtAttraction);

            // Get incentivePayoff
            this.AccruedPayoff += this.IncentivePayoffCoefficientMap[incentive.IncentiveType] * incentive.RetailValue;

            // decrease payoff for incentive (i may be happy with one plushie, but the second one makes me less happy)
            this.IncentivePayoffCoefficientMap[incentive.IncentiveType] = this.IncentivePayoffCoefficientMap[incentive.IncentiveType] / 2.0;
        }
예제 #2
0
 public bool IsIncentiveAccepted(Incentive incentive)
 {
     return(IncentiveAcceptanceStrategy.IsIncentiveAccepted(incentive, this.CurrentAttraction, this.EstimatedWaitTimeLeft, this.IncentivePayoffCoefficientMap, this.AttractionPayoffMap));
 }