public double GetPayoutMultiplier(UserViewModel user) { RoleProbabilityPayoutModel roleProbabilityPayout = this.GetRoleProbabilityPayout(user); if (roleProbabilityPayout != null) { return(roleProbabilityPayout.Payout); } return(0); }
protected GameOutcomeModel SelectRandomOutcome(UserViewModel user, IEnumerable <GameOutcomeModel> outcomes) { int randomNumber = this.GenerateProbability(); int cumulativeOutcomeProbability = 0; foreach (GameOutcomeModel outcome in outcomes) { RoleProbabilityPayoutModel roleProbabilityPayout = outcome.GetRoleProbabilityPayout(user); if (roleProbabilityPayout != null) { if (cumulativeOutcomeProbability < randomNumber && randomNumber <= (cumulativeOutcomeProbability + roleProbabilityPayout.Probability)) { return(outcome); } cumulativeOutcomeProbability += roleProbabilityPayout.Probability; } } return(outcomes.Last()); }