Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
DropOneByOne.cs
Go to the documentation of this file.
2
4
6{
7 public struct Parameters
8 {
9 public int ChanceNumerator;
10
12
14
16
18
20
22
24
25 public float GetPersonalDropRate()
26 {
27 return (float)ChanceNumerator / (float)ChanceDenominator;
28 }
29 }
30
31 public int itemId;
32
34
35 public List<IItemDropRuleChainAttempt> ChainedRules { get; private set; }
36
38 {
40 this.parameters = parameters;
41 this.itemId = itemId;
42 }
43
45 {
47 if (info.player.RollLuck(parameters.ChanceDenominator) < parameters.ChanceNumerator)
48 {
51 int minValue = parameters.MinimumStackPerChunkBase + activePlayersCount * parameters.BonusMinDropsPerChunkPerPlayer;
52 int num2 = parameters.MaximumStackPerChunkBase + activePlayersCount * parameters.BonusMaxDropsPerChunkPerPlayer;
53 for (int i = 0; i < num; i++)
54 {
55 CommonCode.DropItemFromNPC(info.npc, itemId, info.rng.Next(minValue, num2 + 1), scattered: true);
56 }
57 result = default(ItemDropAttemptResult);
58 result.State = ItemDropAttemptResultState.Success;
59 return result;
60 }
61 result = default(ItemDropAttemptResult);
62 result.State = ItemDropAttemptResultState.FailedRandomRoll;
63 return result;
64 }
65
73
74 public bool CanDrop(DropAttemptInfo info)
75 {
76 return true;
77 }
78}
void Add(TKey key, TValue value)
static void ReportDroprates(List< IItemDropRuleChainAttempt > ChainedRules, float personalDropRate, List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
Definition Chains.cs:85
static void DropItemFromNPC(NPC npc, int itemId, int stack, bool scattered=false)
Definition CommonCode.cs:9
ItemDropAttemptResult TryDroppingItem(DropAttemptInfo info)
List< IItemDropRuleChainAttempt > ChainedRules
void ReportDroprates(List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
DropOneByOne(int itemId, Parameters parameters)
static int ActivePlayersCount
Definition Main.cs:89