private int GetAbsoluteLuckValue(LuckValue value) { // Daily luck in range from -100 to 100: int dailyLuck = Math.Min(100, Math.Max(-100, (int)((Game1.player.team.sharedDailyLuck.Value / 0.12) * 100.0))); // Player luck in range from 0 to 100: int playerLuck = Math.Min(100, Math.Max(0, deepWoods.GetLuckLevel() * 100 / DeepWoodsGlobals.MAXIMUM_POSSIBLE_LUCKLEVEL)); // Total luck in range from -100 to 100: int totalLuck = Math.Min(100, Math.Max(-100, (dailyLuck + playerLuck) / 2)); if (totalLuck < 0) { int badLuckFactor = -totalLuck; int neutralFactor = 100 - badLuckFactor; return(((value.BadLuck * badLuckFactor) + (value.Neutral * neutralFactor)) / 100); } else { int goodLuckFactor = totalLuck; int neutralFactor = 100 - goodLuckFactor; return(((value.GoodLuck * goodLuckFactor) + (value.Neutral * neutralFactor)) / 100); } }
public WeightedValue(T value, int weight) { Value = value; Weight = new LuckValue(weight, weight, weight); }
public WeightedValue(T value, LuckValue weight) { Value = value; Weight = weight; }
public LuckRange(LuckValue lowerBound, LuckValue upperBound) { LowerBound = lowerBound; UpperBound = upperBound; }
public Chance(int value, int range = PROCENT, LevelModifier levelModifier = null) { Value = new LuckValue(value, value, value); Range = range; RangeLevelModifier = levelModifier ?? LevelModifier.ZERO; }
public Chance(LuckValue value, int range = PROCENT, LevelModifier levelModifier = null) { Value = value; Range = range; RangeLevelModifier = levelModifier ?? LevelModifier.ZERO; }
public WeightedInt(int value, LuckValue weight) : base(value, weight) { }