Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
OneFromRulesRule.cs
Go to the documentation of this file.
2
4
6{
8
9 public int chanceDenominator;
10
11 public List<IItemDropRuleChainAttempt> ChainedRules { get; private set; }
12
14 {
15 this.chanceDenominator = chanceDenominator;
16 this.options = options;
18 }
19
20 public bool CanDrop(DropAttemptInfo info)
21 {
22 return true;
23 }
24
26 {
28 result.State = ItemDropAttemptResultState.DidNotRunCode;
29 return result;
30 }
31
33 {
34 int num = -1;
36 if (info.rng.Next(chanceDenominator) == 0)
37 {
38 num = info.rng.Next(options.Length);
39 resolveAction(options[num], info);
40 result = default(ItemDropAttemptResult);
41 result.State = ItemDropAttemptResultState.Success;
42 return result;
43 }
44 result = default(ItemDropAttemptResult);
45 result.State = ItemDropAttemptResultState.FailedRandomRoll;
46 return result;
47 }
48
50 {
51 float num = 1f / (float)chanceDenominator;
52 float num2 = num * ratesInfo.parentDroprateChance;
53 float multiplier = 1f / (float)options.Length * num2;
54 for (int i = 0; i < options.Length; i++)
55 {
57 }
59 }
60}
static void ReportDroprates(List< IItemDropRuleChainAttempt > ChainedRules, float personalDropRate, List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
Definition Chains.cs:85
OneFromRulesRule(int chanceDenominator, params IItemDropRule[] options)
void ReportDroprates(List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
ItemDropAttemptResult TryDroppingItem(DropAttemptInfo info, ItemDropRuleResolveAction resolveAction)
ItemDropAttemptResult TryDroppingItem(DropAttemptInfo info)
void ReportDroprates(List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
delegate ItemDropAttemptResult ItemDropRuleResolveAction(IItemDropRule rule, DropAttemptInfo info)