terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
CommonDrop.cs
Go to the documentation of this file.
1using System;
5
7{
8 // Token: 0x02000878 RID: 2168
9 public class CommonDrop : IItemDropRule
10 {
11 // Token: 0x170007D4 RID: 2004
12 // (get) Token: 0x060043E9 RID: 17385 RVA: 0x0024EC7C File Offset: 0x0024CE7C
13 // (set) Token: 0x060043EA RID: 17386 RVA: 0x0024EC90 File Offset: 0x0024CE90
15 {
17 get
18 {
19 return this.<ChainedRules>k__BackingField;
20 }
22 private set
23 {
25 }
26 }
27
28 // Token: 0x060043EB RID: 17387 RVA: 0x0024ECA4 File Offset: 0x0024CEA4
37
38 // Token: 0x060043EC RID: 17388 RVA: 0x0024ECDC File Offset: 0x0024CEDC
39 public virtual bool CanDrop(DropAttemptInfo info)
40 {
41 return true;
42 }
43
44 // Token: 0x060043ED RID: 17389 RVA: 0x0024ECEC File Offset: 0x0024CEEC
46 {
47 /*
48An exception occurred when decompiling this method (060043ED)
49
50ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.GameContent.ItemDropRules.ItemDropAttemptResult Terraria.GameContent.ItemDropRules.CommonDrop::TryDroppingItem(Terraria.GameContent.ItemDropRules.DropAttemptInfo)
51
52 ---> System.Exception: Basic block has to end with unconditional control flow.
53{
54 Block_0:
55 stloc:Player(var_0_06, ldfld:Player(DropAttemptInfo::player, ldloc:DropAttemptInfo[exp:valuetype Terraria.GameContent.ItemDropRules.DropAttemptInfo&](info)))
56 stloc:int32(var_1_0D, ldfld:int32(CommonDrop::chanceDenominator, ldloc:CommonDrop(this)))
57 stloc:int64(var_2_0F, ldc.i4:int64(0))
58 stloc:int32(var_3_17, call:int32(Player::RollLuck, ldloc:Player(var_0_06), ldloc:int32(var_1_0D)))
59 stloc:int32(var_4_1E, ldfld:int32(CommonDrop::chanceNumerator, ldloc:CommonDrop(this)))
60 stloc:int32(var_5_26, ldfld:int32(CommonDrop::amountDroppedMinimum, ldloc:CommonDrop(this)))
61 stloc:int32(var_6_2E, ldfld:int32(CommonDrop::chanceNumerator, ldloc:CommonDrop(this)))
62 stloc:UnifiedRandom(var_7_36, ldfld:UnifiedRandom(DropAttemptInfo::rng, ldloc:DropAttemptInfo[exp:valuetype Terraria.GameContent.ItemDropRules.DropAttemptInfo&](info)))
63 stloc:int32(var_8_3E, ldfld:int32(CommonDrop::itemId, ldloc:CommonDrop(this)))
64 stloc:int32(var_9_4A, call:int32(UnifiedRandom::Next, ldloc:UnifiedRandom(var_7_36), ldloc:int32(var_5_26), ldloc:int64[exp:int32](var_2_0F)))
65}
66
67 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
68 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
69 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
70 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
71 --- End of inner exception stack trace ---
72 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
73 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
74*/;
75 }
76
77 // Token: 0x060043EE RID: 17390 RVA: 0x000021DB File Offset: 0x000003DB
79 {
80 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
81 }
82
83 // Token: 0x040081BC RID: 33212
84 public int itemId;
85
86 // Token: 0x040081BD RID: 33213
88
89 // Token: 0x040081BE RID: 33214
91
92 // Token: 0x040081BF RID: 33215
94
95 // Token: 0x040081C0 RID: 33216
96 public int chanceNumerator;
97
98 // Token: 0x040081C1 RID: 33217
101 }
102}
class f__AnonymousType0<< Count > j__TPar
virtual ItemDropAttemptResult TryDroppingItem(DropAttemptInfo info)
Definition CommonDrop.cs:45
CommonDrop(int itemId, int chanceDenominator, int amountDroppedMinimum=1, int amountDroppedMaximum=1, int chanceNumerator=1)
Definition CommonDrop.cs:29
List< IItemDropRuleChainAttempt >< ChainedRules > k__BackingField
List< IItemDropRuleChainAttempt > ChainedRules
Definition CommonDrop.cs:15
virtual bool CanDrop(DropAttemptInfo info)
Definition CommonDrop.cs:39
virtual void ReportDroprates(List< DropRateInfo > drops, DropRateInfoChainFeed ratesInfo)
Definition CommonDrop.cs:78