Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ItemDropRule.cs
Go to the documentation of this file.
2
3public class ItemDropRule
4{
5 public static IItemDropRule Common(int itemId, int chanceDenominator = 1, int minimumDropped = 1, int maximumDropped = 1)
6 {
7 return new CommonDrop(itemId, chanceDenominator, minimumDropped, maximumDropped);
8 }
9
10 public static IItemDropRule BossBag(int itemId)
11 {
12 return new DropBasedOnExpertMode(DropNothing(), new DropLocalPerClientAndResetsNPCMoneyTo0(itemId, 1, 1, 1, null));
13 }
14
15 public static IItemDropRule BossBagByCondition(IItemDropRuleCondition condition, int itemId)
16 {
17 return new DropBasedOnExpertMode(DropNothing(), new DropLocalPerClientAndResetsNPCMoneyTo0(itemId, 1, 1, 1, condition));
18 }
19
20 public static IItemDropRule ExpertGetsRerolls(int itemId, int chanceDenominator, int expertRerolls)
21 {
22 return new DropBasedOnExpertMode(WithRerolls(itemId, 0, chanceDenominator), WithRerolls(itemId, expertRerolls, chanceDenominator));
23 }
24
25 public static IItemDropRule MasterModeCommonDrop(int itemId)
26 {
27 return ByCondition(new Conditions.IsMasterMode(), itemId);
28 }
29
30 public static IItemDropRule MasterModeDropOnAllPlayers(int itemId, int chanceDenominator = 1)
31 {
32 return new DropBasedOnMasterMode(DropNothing(), new DropPerPlayerOnThePlayer(itemId, chanceDenominator, 1, 1, new Conditions.IsMasterMode()));
33 }
34
35 public static IItemDropRule WithRerolls(int itemId, int rerolls, int chanceDenominator = 1, int minimumDropped = 1, int maximumDropped = 1)
36 {
37 return new CommonDropWithRerolls(itemId, chanceDenominator, minimumDropped, maximumDropped, rerolls);
38 }
39
40 public static IItemDropRule ByCondition(IItemDropRuleCondition condition, int itemId, int chanceDenominator = 1, int minimumDropped = 1, int maximumDropped = 1, int chanceNumerator = 1)
41 {
42 return new ItemDropWithConditionRule(itemId, chanceDenominator, minimumDropped, maximumDropped, condition, chanceNumerator);
43 }
44
45 public static IItemDropRule NotScalingWithLuck(int itemId, int chanceDenominator = 1, int minimumDropped = 1, int maximumDropped = 1)
46 {
47 return new CommonDropNotScalingWithLuck(itemId, chanceDenominator, minimumDropped, maximumDropped);
48 }
49
50 public static IItemDropRule OneFromOptionsNotScalingWithLuck(int chanceDenominator, params int[] options)
51 {
52 return new OneFromOptionsNotScaledWithLuckDropRule(chanceDenominator, 1, options);
53 }
54
55 public static IItemDropRule OneFromOptionsNotScalingWithLuckWithX(int chanceDenominator, int chanceNumerator, params int[] options)
56 {
57 return new OneFromOptionsNotScaledWithLuckDropRule(chanceDenominator, chanceNumerator, options);
58 }
59
60 public static IItemDropRule OneFromOptions(int chanceDenominator, params int[] options)
61 {
62 return new OneFromOptionsDropRule(chanceDenominator, 1, options);
63 }
64
65 public static IItemDropRule OneFromOptionsWithNumerator(int chanceDenominator, int chanceNumerator, params int[] options)
66 {
67 return new OneFromOptionsDropRule(chanceDenominator, chanceNumerator, options);
68 }
69
70 public static IItemDropRule DropNothing()
71 {
72 return new DropNothing();
73 }
74
75 public static IItemDropRule NormalvsExpert(int itemId, int chanceDenominatorInNormal, int chanceDenominatorInExpert)
76 {
77 return new DropBasedOnExpertMode(Common(itemId, chanceDenominatorInNormal), Common(itemId, chanceDenominatorInExpert));
78 }
79
80 public static IItemDropRule NormalvsExpertNotScalingWithLuck(int itemId, int chanceDenominatorInNormal, int chanceDenominatorInExpert)
81 {
82 return new DropBasedOnExpertMode(NotScalingWithLuck(itemId, chanceDenominatorInNormal), NotScalingWithLuck(itemId, chanceDenominatorInExpert));
83 }
84
85 public static IItemDropRule NormalvsExpertOneFromOptionsNotScalingWithLuck(int chanceDenominatorInNormal, int chanceDenominatorInExpert, params int[] options)
86 {
87 return new DropBasedOnExpertMode(OneFromOptionsNotScalingWithLuck(chanceDenominatorInNormal, options), OneFromOptionsNotScalingWithLuck(chanceDenominatorInExpert, options));
88 }
89
90 public static IItemDropRule NormalvsExpertOneFromOptions(int chanceDenominatorInNormal, int chanceDenominatorInExpert, params int[] options)
91 {
92 return new DropBasedOnExpertMode(OneFromOptions(chanceDenominatorInNormal, options), OneFromOptions(chanceDenominatorInExpert, options));
93 }
94
95 public static IItemDropRule Food(int itemId, int chanceDenominator, int minimumDropped = 1, int maximumDropped = 1)
96 {
97 return new ItemDropWithConditionRule(itemId, chanceDenominator, minimumDropped, maximumDropped, new Conditions.NotFromStatue());
98 }
99
100 public static IItemDropRule StatusImmunityItem(int itemId, int dropsOutOfX)
101 {
102 return ExpertGetsRerolls(itemId, dropsOutOfX, 1);
103 }
104}
static IItemDropRule StatusImmunityItem(int itemId, int dropsOutOfX)
static IItemDropRule NormalvsExpertNotScalingWithLuck(int itemId, int chanceDenominatorInNormal, int chanceDenominatorInExpert)
static IItemDropRule OneFromOptionsNotScalingWithLuck(int chanceDenominator, params int[] options)
static IItemDropRule ByCondition(IItemDropRuleCondition condition, int itemId, int chanceDenominator=1, int minimumDropped=1, int maximumDropped=1, int chanceNumerator=1)
static IItemDropRule BossBagByCondition(IItemDropRuleCondition condition, int itemId)
static IItemDropRule NormalvsExpertOneFromOptions(int chanceDenominatorInNormal, int chanceDenominatorInExpert, params int[] options)
static IItemDropRule ExpertGetsRerolls(int itemId, int chanceDenominator, int expertRerolls)
static IItemDropRule Common(int itemId, int chanceDenominator=1, int minimumDropped=1, int maximumDropped=1)
static IItemDropRule Food(int itemId, int chanceDenominator, int minimumDropped=1, int maximumDropped=1)
static IItemDropRule MasterModeCommonDrop(int itemId)
static IItemDropRule OneFromOptionsWithNumerator(int chanceDenominator, int chanceNumerator, params int[] options)
static IItemDropRule NotScalingWithLuck(int itemId, int chanceDenominator=1, int minimumDropped=1, int maximumDropped=1)
static IItemDropRule OneFromOptionsNotScalingWithLuckWithX(int chanceDenominator, int chanceNumerator, params int[] options)
static IItemDropRule NormalvsExpertOneFromOptionsNotScalingWithLuck(int chanceDenominatorInNormal, int chanceDenominatorInExpert, params int[] options)
static IItemDropRule OneFromOptions(int chanceDenominator, params int[] options)
static IItemDropRule WithRerolls(int itemId, int rerolls, int chanceDenominator=1, int minimumDropped=1, int maximumDropped=1)
static IItemDropRule NormalvsExpert(int itemId, int chanceDenominatorInNormal, int chanceDenominatorInExpert)
static IItemDropRule BossBag(int itemId)
static IItemDropRule MasterModeDropOnAllPlayers(int itemId, int chanceDenominator=1)