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; }
public bool IsIncentiveAccepted(Incentive incentive) { return(IncentiveAcceptanceStrategy.IsIncentiveAccepted(incentive, this.CurrentAttraction, this.EstimatedWaitTimeLeft, this.IncentivePayoffCoefficientMap, this.AttractionPayoffMap)); }