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
NPC.cs
Go to the documentation of this file.
1using System;
12using Terraria.ID;
15
16namespace Terraria
17{
18 // Token: 0x02000403 RID: 1027
19 public class NPC : Entity
20 {
21 // Token: 0x170004E0 RID: 1248
22 // (get) Token: 0x06002112 RID: 8466 RVA: 0x000D29C8 File Offset: 0x000D0BC8
23 public bool CanTalk
24 {
25 get
26 {
27 int num = this.type;
28 if (!this.townNPC)
29 {
30 return;
31 }
32 int num2 = this.aiStyle;
33 float y = this.velocity.Y;
34 if (num2 == 0)
35 {
36 int num3 = this.type;
37 return;
38 }
39 }
40 }
41
42 // Token: 0x170004E1 RID: 1249
43 // (get) Token: 0x06002113 RID: 8467 RVA: 0x000D2A04 File Offset: 0x000D0C04
44 public bool CanBeTalkedTo
45 {
46 get
47 {
48 int num = this.type;
49 if (this.townNPC)
50 {
51 int num2 = this.aiStyle;
52 float y = this.velocity.Y;
53 return;
54 }
55 }
56 }
57
58 // Token: 0x170004E2 RID: 1250
59 // (get) Token: 0x06002114 RID: 8468 RVA: 0x000D2A34 File Offset: 0x000D0C34
60 public bool HasValidTarget
61 {
62 get
63 {
64 int num = this.target;
65 if (!this.TargetPlayer.active || this.TargetPlayer.dead || this.TargetPlayer.ghost)
66 {
68 int num2 = this.target;
69 int num3 = this.target;
70 return;
71 }
72 }
73 }
74
75 // Token: 0x170004E3 RID: 1251
76 // (get) Token: 0x06002115 RID: 8469 RVA: 0x000D2A8C File Offset: 0x000D0C8C
78 {
79 get
80 {
81 /*
82An exception occurred when decompiling this method (06002115)
83
84ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.Player Terraria.NPC::get_TargetPlayer()
85
86 ---> System.Exception: Basic block has to end with unconditional control flow.
87{
88 IL_0005:
89 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
90}
91
92 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
93 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
94 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
95 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
96 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
97 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
98 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
99 --- End of inner exception stack trace ---
100 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
101 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
102*/;
103 }
104 }
105
106 // Token: 0x170004E4 RID: 1252
107 // (get) Token: 0x06002116 RID: 8470 RVA: 0x000D2AA0 File Offset: 0x000D0CA0
108 public bool HasPlayerTarget
109 {
110 get
111 {
112 /*
113An exception occurred when decompiling this method (06002116)
114
115ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::get_HasPlayerTarget()
116
117 ---> System.Exception: Basic block has to end with unconditional control flow.
118{
119 Block_0:
120 stloc:int32(var_0_06, ldfld:int32(NPC::target, ldloc:NPC(this)))
121}
122
123 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
124 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
125 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
126 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
127 --- End of inner exception stack trace ---
128 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
129 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
130*/;
131 }
132 }
133
134 // Token: 0x170004E5 RID: 1253
135 // (get) Token: 0x06002117 RID: 8471 RVA: 0x000D2AB4 File Offset: 0x000D0CB4
136 public bool HasNPCTarget
137 {
138 get
139 {
140 /*
141An exception occurred when decompiling this method (06002117)
142
143ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::get_HasNPCTarget()
144
145 ---> System.Exception: Basic block has to end with unconditional control flow.
146{
147 Block_0:
148 stloc:int32(var_0_06, ldfld:int32(NPC::target, ldloc:NPC(this)))
149}
150
151 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
152 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
153 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
154 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
155 --- End of inner exception stack trace ---
156 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
157 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
158*/;
159 }
160 }
161
162 // Token: 0x170004E6 RID: 1254
163 // (get) Token: 0x06002118 RID: 8472 RVA: 0x000D2AC8 File Offset: 0x000D0CC8
165 {
166 get
167 {
168 /*
169An exception occurred when decompiling this method (06002118)
170
171ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::get_SupportsNPCTargets()
172
173 ---> System.Exception: Basic block has to end with unconditional control flow.
174{
175 IL_0000:
176 brtrue(IL_0000, ldc.i4:bool(1))
177}
178
179 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
180 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
181 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
182 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
183 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
184 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
185 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
186 --- End of inner exception stack trace ---
187 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
188 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
189*/;
190 }
191 }
192
193 // Token: 0x170004E7 RID: 1255
194 // (get) Token: 0x06002119 RID: 8473 RVA: 0x000D2AD8 File Offset: 0x000D0CD8
196 {
197 get
198 {
199 /*
200An exception occurred when decompiling this method (06002119)
201
202ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::get_TranslatedTargetIndex()
203
204 ---> System.Exception: Basic block has to end with unconditional control flow.
205{
206 Block_0:
207 stloc:int32(var_0_06, ldfld:int32(NPC::target, ldloc:NPC(this)))
208}
209
210 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
211 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
212 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
213 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
214 --- End of inner exception stack trace ---
215 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
216 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
217*/;
218 }
219 }
220
221 // Token: 0x170004E8 RID: 1256
222 // (get) Token: 0x0600211A RID: 8474 RVA: 0x000D2AEC File Offset: 0x000D0CEC
224 {
225 get
226 {
227 /*
228An exception occurred when decompiling this method (0600211A)
229
230ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::get_WhoAmIToTargettingIndex()
231
232 ---> System.Exception: Basic block has to end with unconditional control flow.
233{
234 Block_0:
235 stloc:int32(var_0_06, ldfld:int32(Entity::whoAmI, ldloc:NPC[exp:Entity](this)))
236}
237
238 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
239 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
240 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
241 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
242 --- End of inner exception stack trace ---
243 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
244 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
245*/;
246 }
247 }
248
249 // Token: 0x0600211B RID: 8475 RVA: 0x000D2B00 File Offset: 0x000D0D00
251 {
252 /*
253An exception occurred when decompiling this method (0600211B)
254
255ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.DataStructures.NPCAimedTarget Terraria.NPC::GetTargetData(System.Boolean)
256
257 ---> System.Exception: Basic block has to end with unconditional control flow.
258{
259 Block_0:
260 stloc:bool(var_1_06, callgetter:bool(NPC::get_HasValidTarget, ldloc:NPC(this)))
261 stloc:bool(var_2_0D, callgetter:bool(NPC::get_SupportsNPCTargets, ldloc:NPC(this)))
262 stloc:int32(var_3_14, ldfld:int32(NPC::target, ldloc:NPC(this)))
263 stloc:int32(var_4_1B, ldfld:int32(NPC::target, ldloc:NPC(this)))
264 stloc:Player(var_6_26, callgetter:Player(NPC::get_TargetPlayer, ldloc:NPC(this)))
265}
266
267 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
268 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
269 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
270 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
271 --- End of inner exception stack trace ---
272 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
273 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
274*/;
275 }
276
277 // Token: 0x170004E9 RID: 1257
278 // (get) Token: 0x0600211C RID: 8476 RVA: 0x000D2B34 File Offset: 0x000D0D34
280 {
281 get
282 {
283 if (this.townNpcVariationIndex == 0)
284 {
285 return;
286 }
287 }
288 }
289
290 // Token: 0x0600211D RID: 8477 RVA: 0x000D2B4C File Offset: 0x000D0D4C
291 public static int[,,,] InitializeMoonLordAttacks()
292 {
293 int num = 1;
294 if (num == 0)
295 {
296 }
297 if (num == 0)
298 {
299 }
300 int num2;
301 return num2;
302 }
303
304 // Token: 0x0600211E RID: 8478 RVA: 0x000D2BD8 File Offset: 0x000D0DD8
305 public static int[,] InitializeMoonLordAttacks2()
306 {
307 int num = 1;
308 if (num == 0)
309 {
310 }
311 if (num == 0)
312 {
313 }
314 int num2;
315 return num2;
316 }
317
318 // Token: 0x170004EA RID: 1258
319 // (get) Token: 0x0600211F RID: 8479 RVA: 0x000D2C00 File Offset: 0x000D0E00
320 public string TypeName
321 {
322 get
323 {
324 int num = this.netID;
325 if (!true)
326 {
327 }
328 return Lang.GetNPCNameValue(num);
329 }
330 }
331
332 // Token: 0x170004EB RID: 1259
333 // (get) Token: 0x06002120 RID: 8480 RVA: 0x000D2C20 File Offset: 0x000D0E20
334 public string FullName
335 {
336 get
337 {
338 string givenName = this._givenName;
339 if (givenName._stringLength != 0)
340 {
341 string typeName = this.TypeName;
342 return Language.GetTextValue("Game.NPCTitle", givenName, typeName);
343 }
344 return this.TypeName;
345 }
346 }
347
348 // Token: 0x170004EC RID: 1260
349 // (get) Token: 0x06002121 RID: 8481 RVA: 0x000D2C58 File Offset: 0x000D0E58
350 public bool HasGivenName
351 {
352 get
353 {
354 /*
355An exception occurred when decompiling this method (06002121)
356
357ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::get_HasGivenName()
358
359 ---> System.Exception: Basic block has to end with unconditional control flow.
360{
361 Block_0:
362 stloc:int32(var_0_0B, ldfld:int32(string::_stringLength, ldfld:string(NPC::_givenName, ldloc:NPC(this))))
363}
364
365 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
366 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
367 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
368 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
369 --- End of inner exception stack trace ---
370 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
371 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
372*/;
373 }
374 }
375
376 // Token: 0x170004ED RID: 1261
377 // (get) Token: 0x06002122 RID: 8482 RVA: 0x000D2C70 File Offset: 0x000D0E70
378 public string GivenOrTypeName
379 {
380 get
381 {
382 string givenName = this._givenName;
383 if (givenName._stringLength != 0)
384 {
385 return givenName;
386 }
387 string text;
388 return text;
389 }
390 }
391
392 // Token: 0x170004EE RID: 1262
393 // (get) Token: 0x06002123 RID: 8483 RVA: 0x000D2C90 File Offset: 0x000D0E90
394 // (set) Token: 0x06002124 RID: 8484 RVA: 0x000D2CA4 File Offset: 0x000D0EA4
395 public string GivenName
396 {
397 get
398 {
399 return this._givenName;
400 }
401 set
402 {
403 this._givenName = "";
404 }
405 }
406
407 // Token: 0x06002125 RID: 8485 RVA: 0x000D2CBC File Offset: 0x000D0EBC
408 public static string GetFullnameByID(int npcID)
409 {
410 int num = 1;
411 if (num == 0)
412 {
413 }
414 if (num == 0 || num == 0)
415 {
416 }
417 if (num == 0)
418 {
419 }
420 return Lang.GetNPCNameValue(42178960);
421 }
422
423 // Token: 0x170004EF RID: 1263
424 // (get) Token: 0x06002126 RID: 8486 RVA: 0x000D2CE8 File Offset: 0x000D0EE8
425 public static bool downedTowers
426 {
427 get
428 {
429 if (!true)
430 {
431 return;
432 }
433 }
434 }
435
436 // Token: 0x170004F0 RID: 1264
437 // (get) Token: 0x06002127 RID: 8487 RVA: 0x000D2CFC File Offset: 0x000D0EFC
438 public static int ShieldStrengthTowerMax
439 {
440 get
441 {
442 /*
443An exception occurred when decompiling this method (06002127)
444
445ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::get_ShieldStrengthTowerMax()
446
447 ---> System.Exception: Basic block has to end with unconditional control flow.
448{
449 IL_0000:
450 brtrue(IL_0000, ldc.i4:bool(1))
451}
452
453 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
454 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
455 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
456 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
457 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
458 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
459 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
460 --- End of inner exception stack trace ---
461 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
462 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
463*/;
464 }
465 }
466
467 // Token: 0x170004F1 RID: 1265
468 // (get) Token: 0x06002128 RID: 8488 RVA: 0x000D2D0C File Offset: 0x000D0F0C
469 public static bool TowersDefeated
470 {
471 get
472 {
473 if (!true)
474 {
475 return;
476 }
477 }
478 }
479
480 // Token: 0x06002129 RID: 8489 RVA: 0x000D2D20 File Offset: 0x000D0F20
481 public static bool BusyWithAnyInvasionOfSorts()
482 {
483 if (!true)
484 {
485 }
486 return true;
487 }
488
489 // Token: 0x170004F2 RID: 1266
490 // (get) Token: 0x0600212A RID: 8490 RVA: 0x000D2D34 File Offset: 0x000D0F34
491 // (set) Token: 0x0600212B RID: 8491 RVA: 0x000D2D48 File Offset: 0x000D0F48
492 public float Opacity
493 {
494 get
495 {
496 /*
497An exception occurred when decompiling this method (0600212A)
498
499ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::get_Opacity()
500
501 ---> System.Exception: Basic block has to end with unconditional control flow.
502{
503 Block_0:
504 stloc:int32(var_0_06, ldfld:int32(NPC::alpha, ldloc:NPC(this)))
505}
506
507 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
508 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
509 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
510 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
511 --- End of inner exception stack trace ---
512 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
513 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
514*/;
515 }
516 set
517 {
518 this.alpha = 32768;
519 }
520 }
521
522 // Token: 0x0600212C RID: 8492 RVA: 0x000D2D64 File Offset: 0x000D0F64
524 {
525 /*
526An exception occurred when decompiling this method (0600212C)
527
528ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetAttackDamage_ScaledByStrength(System.Single)
529
530 ---> System.Exception: Basic block has to end with unconditional control flow.
531{
532 IL_0006:
533 stloc:float32(var_0_0C, ldfld:float32(NPC::strengthMultiplier, ldloc:NPC(this)))
534}
535
536 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
537 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
538 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
539 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
540 --- End of inner exception stack trace ---
541 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
542 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
543*/;
544 }
545
546 // Token: 0x0600212D RID: 8493 RVA: 0x000D2D80 File Offset: 0x000D0F80
548 {
549 /*
550An exception occurred when decompiling this method (0600212D)
551
552ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::GetAttackDamage_LerpBetweenFinalValuesFloat(System.Single,System.Single)
553
554 ---> System.Exception: Basic block has to end with unconditional control flow.
555{
556 IL_001A:
557 stloc:float32(var_6_27, call:float32(MathHelper::Lerp, ldloc:float32(var_4), ldloc:float32(normalDamage), ldloc:float32(var_4)))
558}
559
560 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
561 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
562 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
563 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
564 --- End of inner exception stack trace ---
565 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
566 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
567*/;
568 }
569
570 // Token: 0x0600212E RID: 8494 RVA: 0x000D2DB8 File Offset: 0x000D0FB8
572 {
573 /*
574An exception occurred when decompiling this method (0600212E)
575
576ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetAttackDamage_LerpBetweenFinalValues(System.Single,System.Single)
577
578 ---> System.Exception: Basic block has to end with unconditional control flow.
579{
580 IL_001A:
581 stloc:float32(var_6_26, call:float32(MathHelper::Lerp, ldloc:float32(normalDamage), ldloc:float32(expertDamage), ldloc:float32(var_4)))
582}
583
584 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
585 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
586 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
587 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
588 --- End of inner exception stack trace ---
589 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
590 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
591*/;
592 }
593
594 // Token: 0x0600212F RID: 8495 RVA: 0x000D2DEC File Offset: 0x000D0FEC
596 {
597 /*
598An exception occurred when decompiling this method (0600212F)
599
600ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetAttackDamage_ForProjectiles(System.Single,System.Single)
601
602 ---> System.Exception: Basic block has to end with unconditional control flow.
603{
604 IL_001A:
605 stloc:float32(var_6_26, call:float32(MathHelper::Lerp, ldloc:float32(normalDamage), ldloc:float32(expertDamage), ldloc:float32(var_4)))
606}
607
608 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
609 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
610 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
611 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
612 --- End of inner exception stack trace ---
613 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
614 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
615*/;
616 }
617
618 // Token: 0x06002130 RID: 8496 RVA: 0x000D2E20 File Offset: 0x000D1020
620 {
621 /*
622An exception occurred when decompiling this method (06002130)
623
624ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetAttackDamage_ForProjectiles_MultiLerp(System.Single,System.Single,System.Single)
625
626 ---> System.Exception: Basic block has to end with unconditional control flow.
627{
628 IL_0034:
629 brtrue(IL_0000, ldc.i4:bool(1))
630}
631
632 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
633 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
634 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
635 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
636 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
637 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
638 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
639 --- End of inner exception stack trace ---
640 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
641 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
642*/;
643 }
644
645 // Token: 0x170004F3 RID: 1267
646 // (get) Token: 0x06002131 RID: 8497 RVA: 0x000D2E64 File Offset: 0x000D1064
647 public bool isLikeATownNPC
648 {
649 get
650 {
651 int num = this.type;
652 return true;
653 }
654 }
655
656 // Token: 0x06002132 RID: 8498 RVA: 0x000D2E7C File Offset: 0x000D107C
657 public static bool SpawnAllowed_Demolitionist()
658 {
659 int num = 1;
660 if (num == 0)
661 {
662 }
663 if (num == 0)
664 {
665 if (num == 0)
666 {
667 }
668 if (num != 0)
669 {
670 if (num == 0)
671 {
672 }
673 if (num != 0)
674 {
675 return;
676 }
677 }
678 return;
679 }
680 }
681
682 // Token: 0x06002133 RID: 8499 RVA: 0x000D2EA8 File Offset: 0x000D10A8
683 public static bool SpawnAllowed_ArmsDealer()
684 {
685 int num = 1;
686 if (num == 0)
687 {
688 }
689 if (num == 0)
690 {
691 if (num == 0)
692 {
693 }
694 if (num == 0 || num == 0)
695 {
696 }
697 return;
698 }
699 }
700
701 // Token: 0x06002134 RID: 8500 RVA: 0x000D2ED0 File Offset: 0x000D10D0
702 public static bool SpawnAllowed_DyeTrader()
703 {
704 /*
705An exception occurred when decompiling this method (06002134)
706
707ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::SpawnAllowed_DyeTrader()
708
709 ---> System.Exception: Basic block has to end with unconditional control flow.
710{
711 IL_0029:
712 brtrue(IL_0029, ldloc:int32[exp:bool](var_4_1A))
713}
714
715 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
716 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
717 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
718 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
719 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
720 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
721 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
722 --- End of inner exception stack trace ---
723 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
724 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
725*/;
726 }
727
728 // Token: 0x06002135 RID: 8501 RVA: 0x000D2F0C File Offset: 0x000D110C
729 public static bool SpawnAllowed_Nurse()
730 {
731 int num = 1;
732 if (num == 0)
733 {
734 }
735 if (num != 0)
736 {
737 }
738 if (num == 0)
739 {
740 return;
741 }
742 }
743
744 // Token: 0x06002136 RID: 8502 RVA: 0x000D2F2C File Offset: 0x000D112C
745 public static bool SpawnAllowed_Merchant()
746 {
747 int num = 1;
748 if (num == 0)
749 {
750 }
751 if (num == 0)
752 {
753 if (num == 0)
754 {
755 }
756 return;
757 }
758 }
759
760 // Token: 0x06002137 RID: 8503 RVA: 0x000D2F58 File Offset: 0x000D1158
761 public static void ClearFoundActiveNPCs()
762 {
763 int num = 1;
764 if (num == 0)
765 {
766 }
767 if (num == 0)
768 {
769 }
770 }
771
772 // Token: 0x06002138 RID: 8504 RVA: 0x000D2F70 File Offset: 0x000D1170
773 public static void UpdateFoundActiveNPCs()
774 {
775 int num = 1;
776 if (num == 0)
777 {
778 }
779 if (num != 0)
780 {
781 }
782 }
783
784 // Token: 0x06002139 RID: 8505 RVA: 0x000D2F8C File Offset: 0x000D118C
785 public static void ClearFoundNPCTypesForBestiary()
786 {
787 int num = 1;
788 if (num == 0)
789 {
790 }
791 if (num == 0)
792 {
793 }
794 }
795
796 // Token: 0x0600213A RID: 8506 RVA: 0x000D2FA4 File Offset: 0x000D11A4
798 {
799 if (!true)
800 {
801 }
802 this.timeLeft = 1;
803 }
804
805 // Token: 0x0600213B RID: 8507 RVA: 0x000D2FBC File Offset: 0x000D11BC
807 {
808 int num = this.timeLeft;
811 }
812
813 // Token: 0x0600213C RID: 8508 RVA: 0x000D2FE0 File Offset: 0x000D11E0
815 {
816 int num = this.timeLeft;
818 }
819
820 // Token: 0x0600213D RID: 8509 RVA: 0x000D2FFC File Offset: 0x000D11FC
821 public static bool WouldBeEncouragedToDespawn(int aistyle, int type)
822 {
823 if (!true)
824 {
825 return;
826 }
827 }
828
829 // Token: 0x0600213E RID: 8510 RVA: 0x000D3010 File Offset: 0x000D1210
830 public static string getNewNPCName(int npcType)
831 {
832 if (!true)
833 {
834 }
835 return NPC.getNewNPCNameInner(int.MinValue);
836 }
837
838 // Token: 0x0600213F RID: 8511 RVA: 0x000D302C File Offset: 0x000D122C
839 private static string getNewNPCNameInner(int npcType)
840 {
841 return "DryadNames";
842 }
843
844 // Token: 0x06002140 RID: 8512 RVA: 0x000D322C File Offset: 0x000D142C
846 {
847 int num = this.netID;
848 if (!true)
849 {
850 }
852 string key = npcname.Key;
853 if (npcname == null)
854 {
855 }
857 return networkText;
858 }
859
860 // Token: 0x06002141 RID: 8513 RVA: 0x000D3258 File Offset: 0x000D1458
861 public void GetLifeStats([Out] int statLife, [Out] int statLifeMax)
862 {
863 int num = this.life;
864 statLife.m_value = num;
865 int num2 = this.lifeMax;
867 int num3 = this.realLife;
868 int num4 = this.realLife;
871 }
872
873 // Token: 0x06002142 RID: 8514 RVA: 0x000021DB File Offset: 0x000003DB
874 public float GetLifePercent()
875 {
876 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
877 }
878
879 // Token: 0x06002143 RID: 8515 RVA: 0x000D32A0 File Offset: 0x000D14A0
881 {
882 if (this._givenName._stringLength != 0)
883 {
885 if (givenNetName == null || givenNetName != null)
886 {
888 if (typeNetName == null || typeNetName != null)
889 {
891 return networkText;
892 }
893 }
894 throw new ArrayTypeMismatchException();
895 }
897 return networkText2;
898 }
899
900 // Token: 0x06002144 RID: 8516 RVA: 0x000D32E0 File Offset: 0x000D14E0
902 {
903 if (this._givenName._stringLength != 0)
904 {
905 return this.GetGivenNetName();
906 }
908 return networkText;
909 }
910
911 // Token: 0x06002145 RID: 8517 RVA: 0x000D3304 File Offset: 0x000D1504
913 {
914 string givenName = this._givenName;
915 if (!true)
916 {
917 }
918 return NetworkText.FromLiteral(givenName);
919 }
920
921 // Token: 0x06002146 RID: 8518 RVA: 0x000D3324 File Offset: 0x000D1524
922 public static void setNPCName(string newName, int npcType, bool resetExtras = false)
923 {
924 int num = 1;
925 if (num == 0)
926 {
927 }
928 if (num != 0)
929 {
930 if (num == 0)
931 {
932 }
933 if (num != 0)
934 {
935 if (num == 0)
936 {
937 }
939 return;
940 }
941 }
942 }
943
944 // Token: 0x06002147 RID: 8519 RVA: 0x000D3350 File Offset: 0x000D1550
945 public static string firstNPCName(int npcType)
946 {
947 int num = 1;
948 if (num == 0)
949 {
950 }
951 if (num == 0 || num == 0)
952 {
953 }
954 if (num == 0)
955 {
956 }
957 return NPC.getNewNPCName(int.MinValue);
958 }
959
960 // Token: 0x06002148 RID: 8520 RVA: 0x000D3388 File Offset: 0x000D1588
961 public static string GetFirstNPCNameOrNull(int npcType)
962 {
963 int num = 1;
964 if (num == 0)
965 {
966 }
967 if (num == 0 || num == 0)
968 {
969 }
970 string text;
971 return text;
972 }
973
974 // Token: 0x06002149 RID: 8521 RVA: 0x000D33A8 File Offset: 0x000D15A8
975 public static bool MechSpawn(float x, float y, int type)
976 {
977 /*
978An exception occurred when decompiling this method (06002149)
979
980ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::MechSpawn(System.Single,System.Single,System.Int32)
981
982 ---> System.Exception: Basic block has to end with unconditional control flow.
983{
984 IL_0012:
985 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
986}
987
988 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
989 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
990 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
991 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
992 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
993 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
994 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
995 --- End of inner exception stack trace ---
996 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
997 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
998*/;
999 }
1000
1001 // Token: 0x0600214A RID: 8522 RVA: 0x000D33CC File Offset: 0x000D15CC
1002 public static int TypeToDefaultHeadIndex(int type)
1003 {
1004 return 13;
1005 }
1006
1007 // Token: 0x0600214B RID: 8523 RVA: 0x000D3454 File Offset: 0x000D1654
1009 {
1010 /*
1011An exception occurred when decompiling this method (0600214B)
1012
1013ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetBossHeadTextureIndex()
1014
1015 ---> System.Exception: Basic block has to end with unconditional control flow.
1016{
1017 IL_0003:
1018 stloc:float32[](var_0_09, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1019 stloc:int32(var_1_10, ldfld:int32(NPC::alpha, ldloc:NPC(this)))
1020 stloc:float32[](var_2_17, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1021 stloc:float32[](var_4_21, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1022 stloc:float32[](var_5_29, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1023 stloc:float32[](var_6_31, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1024 stloc:float32[](var_7_39, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1025 stloc:int32(var_8_41, ldfld:int32(NPC::alpha, ldloc:NPC(this)))
1026 stloc:int32(var_9_49, ldfld:int32(NPC::lifeMax, ldloc:NPC(this)))
1027 stloc:int32(var_10_51, ldfld:int32(NPC::life, ldloc:NPC(this)))
1028}
1029
1030 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
1031 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
1032 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
1033 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
1034 --- End of inner exception stack trace ---
1035 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
1036 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
1037*/;
1038 }
1039
1040 // Token: 0x0600214C RID: 8524 RVA: 0x000D34B4 File Offset: 0x000D16B4
1041 public float GetBossHeadRotation()
1042 {
1043 /*
1044An exception occurred when decompiling this method (0600214C)
1045
1046ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::GetBossHeadRotation()
1047
1048 ---> System.Exception: Basic block has to end with unconditional control flow.
1049{
1050 Block_0:
1051 stloc:int32(var_0_06, ldfld:int32(NPC::type, ldloc:NPC(this)))
1052 stloc:float32[](var_1_0D, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1053 stloc:float32[](var_2_14, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
1054 stloc:float32(var_3_1B, ldfld:float32(NPC::rotation, ldloc:NPC(this)))
1055}
1056
1057 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
1058 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
1059 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
1060 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
1061 --- End of inner exception stack trace ---
1062 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
1063 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
1064*/;
1065 }
1066
1067 // Token: 0x0600214D RID: 8525 RVA: 0x000D34DC File Offset: 0x000D16DC
1069 {
1070 /*
1071An exception occurred when decompiling this method (0600214D)
1072
1073ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.SpriteEffects Terraria.NPC::GetBossHeadSpriteEffects()
1074
1075 ---> System.Exception: Basic block has to end with unconditional control flow.
1076{
1077 Block_0:
1078 stloc:int32(var_0_06, ldfld:int32(NPC::type, ldloc:NPC(this)))
1079 stloc:int32(var_1_0D, ldfld:int32(NPC::spriteDirection, ldloc:NPC(this)))
1080}
1081
1082 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
1083 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
1084 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
1085 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
1086 --- End of inner exception stack trace ---
1087 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
1088 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
1089*/;
1090 }
1091
1092 // Token: 0x0600214E RID: 8526 RVA: 0x000D34F8 File Offset: 0x000D16F8
1093 public int BannerID()
1094 {
1095 /*
1096An exception occurred when decompiling this method (0600214E)
1097
1098ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::BannerID()
1099
1100 ---> System.Exception: Basic block has to end with unconditional control flow.
1101{
1102 Block_0:
1103 stloc:int32(var_0_06, ldfld:int32(NPC::netID, ldloc:NPC(this)))
1104}
1105
1106 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
1107 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
1108 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
1109 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
1110 --- End of inner exception stack trace ---
1111 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
1112 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
1113*/;
1114 }
1115
1116 // Token: 0x0600214F RID: 8527 RVA: 0x000D350C File Offset: 0x000D170C
1117 private void SetDefaultsFromNetId(int id, [Optional] NPCSpawnParams spawnparams)
1118 {
1119 if (!true)
1120 {
1121 }
1122 int num = NPCID.FromNetId(id);
1123 long num2 = 0L;
1124 this.SetDefaults((int)num2, spawnparams);
1125 }
1126
1127 // Token: 0x06002150 RID: 8528 RVA: 0x000D3AE4 File Offset: 0x000D1CE4
1129 {
1130 bool[] array = this.playerInteraction;
1131 bool[] array2 = this.playerInteraction;
1132 bool[] array3 = this.playerInteraction;
1133 }
1134
1135 // Token: 0x06002151 RID: 8529 RVA: 0x000D3B0C File Offset: 0x000D1D0C
1137 {
1138 }
1139
1140 // Token: 0x06002152 RID: 8530 RVA: 0x000D3B1C File Offset: 0x000D1D1C
1146
1147 // Token: 0x06002153 RID: 8531 RVA: 0x000D3B3C File Offset: 0x000D1D3C
1149 {
1150 this.netShimmer = true;
1151 this.shimmerTransparency = (float)16256;
1152 }
1153
1154 // Token: 0x06002154 RID: 8532 RVA: 0x000D3B5C File Offset: 0x000D1D5C
1155 public void SetDefaults(int Type, [Optional] NPCSpawnParams spawnparams)
1156 {
1157 GameModeData gameModeData = spawnparams.gameModeData;
1158 int num;
1159 if (gameModeData == null)
1160 {
1161 if (gameModeData == null)
1162 {
1163 }
1164 num = 1;
1165 if (num == 0)
1166 {
1167 }
1169 }
1170 if (num == 0)
1171 {
1172 }
1173 if (num != 0)
1174 {
1175 return;
1176 }
1177 int num2 = 16000;
1179 float x = this.netOffset.X;
1180 float y = this.netOffset.Y;
1181 bool[] array = this.playerInteraction;
1182 int num3 = 16256;
1184 int num4;
1185 if (this.defDamage != 0)
1186 {
1187 num4 = 16256;
1189 }
1190 long num5 = 16256L;
1191 num4.m_value = (int)num5;
1192 if (num4 == 0)
1193 {
1194 }
1195 }
1196
1197 // Token: 0x06002155 RID: 8533 RVA: 0x000DD27C File Offset: 0x000DB47C
1199 {
1200 int num = this.type;
1201 float num2 = this.scale;
1202 }
1203
1204 // Token: 0x06002156 RID: 8534 RVA: 0x000DD2BC File Offset: 0x000DB4BC
1206 {
1207 int num = this.type;
1208 int num2 = this.lifeMax;
1209 int num3 = 32640;
1211 }
1212
1213 // Token: 0x06002157 RID: 8535 RVA: 0x000DD2E8 File Offset: 0x000DB4E8
1214 private void getGoodAdjustments()
1215 {
1216 int num = this.type;
1217 float num2 = this.scale;
1218 }
1219
1220 // Token: 0x06002158 RID: 8536 RVA: 0x000DD360 File Offset: 0x000DB560
1222 {
1223 this.honeyMovementSpeed = (float)16256;
1224 }
1225
1226 // Token: 0x06002159 RID: 8537 RVA: 0x000DD378 File Offset: 0x000DB578
1228 {
1229 int num = 1;
1230 if (num == 0)
1231 {
1232 }
1233 if (num == 0)
1234 {
1235 }
1236 }
1237
1238 // Token: 0x0600215A RID: 8538 RVA: 0x000DD3B0 File Offset: 0x000DB5B0
1247
1248 // Token: 0x0600215B RID: 8539 RVA: 0x000DD3D4 File Offset: 0x000DB5D4
1249 public void ScaleStats(int? activePlayersCount, GameModeData gameModeData, float? strengthOverride)
1250 {
1251 int num = 1;
1252 if (num == 0)
1253 {
1254 }
1255 int num2 = this.type;
1256 if (num == 0)
1257 {
1258 }
1259 if (num == 0)
1260 {
1261 }
1262 if (num != 0)
1263 {
1264 bool <IsJourneyMode>k__BackingField = gameModeData.<IsJourneyMode>k__BackingField;
1265 if (<IsJourneyMode>k__BackingField)
1266 {
1267 if (!<IsJourneyMode>k__BackingField)
1268 {
1269 }
1270 return;
1271 }
1273 this.ScaleStats_ApplyGameMode(gameModeData);
1274 return;
1275 }
1276 else
1277 {
1278 int num3 = this.lifeMax;
1279 if (this.damage != 0 && !this.friendly && !this.townNPC)
1280 {
1281 return;
1282 }
1283 return;
1284 }
1285 }
1286
1287 // Token: 0x0600215C RID: 8540 RVA: 0x000DD4BC File Offset: 0x000DB6BC
1289 {
1290 int num = this.type;
1291 if (this.type != 0)
1292 {
1293 return;
1294 }
1295 int num2 = this.lifeMax;
1296 int num3 = 32640;
1297 long num4 = 0L;
1299 int num5 = this.damage;
1300 int num6 = 32640;
1301 int num7 = 32768;
1302 this.damage = num6;
1303 if (num6 == 0)
1304 {
1305 }
1306 int num9;
1307 if (num4 == 0L)
1308 {
1309 if (num7 == 0)
1310 {
1311 }
1312 if (num7 == 0)
1313 {
1314 }
1315 float num8 = this.value;
1316 num9 = 32640;
1317 this.value = (float)num5;
1318 }
1319 if (num9 == 0)
1320 {
1321 }
1322 float num10 = this.knockBackResist;
1323 this.knockBackResist = (float)num5;
1324 }
1325
1326 // Token: 0x0600215D RID: 8541 RVA: 0x000DD550 File Offset: 0x000DB750
1327 public static float GetBalance()
1328 {
1329 /*
1330An exception occurred when decompiling this method (0600215D)
1331
1332ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::GetBalance()
1333
1334 ---> System.Exception: Basic block has to end with unconditional control flow.
1335{
1336 IL_0003:
1337 stloc:int32(var_0_08, call:int32(NPC::GetActivePlayerCount))
1338}
1339
1340 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
1341 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
1342 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
1343 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
1344 --- End of inner exception stack trace ---
1345 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
1346 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
1347*/;
1348 }
1349
1350 // Token: 0x0600215E RID: 8542 RVA: 0x000DD568 File Offset: 0x000DB768
1351 public float GetMyBalance()
1352 {
1353 /*
1354An exception occurred when decompiling this method (0600215E)
1355
1356ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::GetMyBalance()
1357
1358 ---> System.Exception: Basic block has to end with unconditional control flow.
1359{
1360 Block_0:
1361 stloc:int32(var_0_06, ldfld:int32(NPC::statsAreScaledForThisManyPlayers, ldloc:NPC(this)))
1362}
1363
1364 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
1365 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
1366 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
1367 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
1368 --- End of inner exception stack trace ---
1369 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
1370 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
1371*/;
1372 }
1373
1374 // Token: 0x0600215F RID: 8543 RVA: 0x000DD57C File Offset: 0x000DB77C
1375 private static int GetActivePlayerCount()
1376 {
1377 if (!true)
1378 {
1379 }
1380 return 1;
1381 }
1382
1383 // Token: 0x06002160 RID: 8544 RVA: 0x000DD590 File Offset: 0x000DB790
1385 {
1386 int num = this.type;
1387 int num2 = this.type;
1388 }
1389
1390 // Token: 0x06002161 RID: 8545 RVA: 0x000DD680 File Offset: 0x000DB880
1391 private void ScaleStats_ApplyGameMode(GameModeData gameModeData)
1392 {
1393 int num = this.type;
1394 int num2 = this.type;
1395 }
1396
1397 // Token: 0x06002162 RID: 8546 RVA: 0x000DD720 File Offset: 0x000DB920
1399 {
1400 int num = this.type;
1401 int num2 = this.lifeMax;
1402 }
1403
1404 // Token: 0x06002163 RID: 8547 RVA: 0x000DDB40 File Offset: 0x000DBD40
1405 public static void GetStatScalingFactors(int numPlayers, [Out] float balance, [Out] float boost)
1406 {
1407 }
1408
1409 // Token: 0x06002164 RID: 8548 RVA: 0x000DDB50 File Offset: 0x000DBD50
1410 public static bool GetNPCLocation(int i, bool seekHead, bool averageDirection, [Out] int index, [Out] Vector2 pos)
1411 {
1412 /*
1413An exception occurred when decompiling this method (06002164)
1414
1415ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::GetNPCLocation(System.Int32,System.Boolean,System.Boolean,System.Int32,Microsoft.Xna.Framework.Vector2)
1416
1417 ---> System.Exception: Basic block has to end with unconditional control flow.
1418{
1419 IL_0082:
1420 stfld:int32(int32::m_value, ldloc:int32[exp:int32&](var_12_4C), ldloc:int32(var_10_3E))
1421}
1422
1423 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
1424 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
1425 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
1426 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
1427 --- End of inner exception stack trace ---
1428 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
1429 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
1430*/;
1431 }
1432
1433 // Token: 0x06002165 RID: 8549 RVA: 0x000DDBEC File Offset: 0x000DBDEC
1435 {
1436 int num = 1;
1437 if (num == 0)
1438 {
1439 }
1440 if (num == 0)
1441 {
1442 }
1443 if (num != 0)
1444 {
1445 if (num == 0)
1446 {
1447 }
1448 int myPlayer = Main.myPlayer;
1449 if (num != 0)
1450 {
1451 }
1452 }
1453 }
1454
1455 // Token: 0x06002166 RID: 8550 RVA: 0x000DDC14 File Offset: 0x000DBE14
1457 {
1458 if (!true)
1459 {
1460 }
1461 Tile tile;
1462 bool flag = tile.nactive();
1463 Tile tile2;
1464 ushort wall = tile2.wall;
1465 Tile tile3;
1466 bool flag2 = tile3.lava();
1467 Tile tile4;
1468 ushort num = tile4.type;
1469 return NPC.AnyNPCs(35);
1470 }
1471
1472 // Token: 0x06002167 RID: 8551 RVA: 0x000DDCAC File Offset: 0x000DBEAC
1473 public static void TransformElderSlime(int npcIndex)
1474 {
1475 int num = 1;
1476 if (num == 0)
1477 {
1478 }
1479 if (num == 0)
1480 {
1481 }
1482 }
1483
1484 // Token: 0x06002168 RID: 8552 RVA: 0x000DDCE4 File Offset: 0x000DBEE4
1485 public static void TransformCopperSlime(int npcIndex)
1486 {
1487 int num = 1;
1488 if (num == 0)
1489 {
1490 }
1491 if (num == 0)
1492 {
1493 }
1494 }
1495
1496 // Token: 0x06002169 RID: 8553 RVA: 0x000DDD1C File Offset: 0x000DBF1C
1497 public static void HaveDryadDoStardewAnimation()
1498 {
1499 if (!true)
1500 {
1501 }
1502 }
1503
1504 // Token: 0x0600216A RID: 8554 RVA: 0x000021DB File Offset: 0x000003DB
1505 private void AI_047_GolemFist()
1506 {
1507 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
1508 }
1509
1510 // Token: 0x0600216B RID: 8555 RVA: 0x000DDD94 File Offset: 0x000DBF94
1511 private void AI_045_Golem()
1512 {
1513 int num = 1;
1514 int whoAmI = this.whoAmI;
1515 if (num == 0)
1516 {
1517 }
1518 float myBalance = this.GetMyBalance();
1519 if (num == 0)
1520 {
1521 }
1524 Vector2 center = this.TargetPlayer.Center;
1525 if (num == 0)
1526 {
1527 }
1528 float[] array = this.localAI;
1530 Vector2 center2 = base.Center;
1531 Vector2 center3 = base.Center;
1532 if (array == null)
1533 {
1534 }
1536 Vector2 center4 = base.Center;
1537 Vector2 center5 = base.Center;
1539 Vector2 center6 = base.Center;
1540 Vector2 center7 = base.Center;
1541 int num2 = this.target;
1542 if (this.TargetPlayer.dead)
1543 {
1544 int num3 = 1;
1545 int num4 = 1;
1546 this.TargetClosest(num3 != 0);
1547 if (this.TargetPlayer.dead)
1548 {
1549 this.noTileCollide = num4 != 0;
1550 }
1551 }
1552 int num5 = this.alpha;
1553 float[] array2 = this.ai;
1554 int num6 = 10;
1555 this.alpha = num5;
1556 if (num5 == 0)
1557 {
1558 }
1559 if (num6 == 0 || num6 == 0)
1560 {
1561 }
1562 if (num5 == 0)
1563 {
1564 }
1565 if (num6 == 0 || num6 == 0)
1566 {
1567 }
1568 if (num5 == 0)
1569 {
1570 }
1571 if (num5 == 0 || num5 == 0)
1572 {
1573 }
1575 if (num5 == 0)
1576 {
1577 }
1578 if (num6 == 0)
1579 {
1580 }
1581 float y = this.velocity.Y;
1582 float x = this.position.X;
1583 int width = this.width;
1584 float y2 = this.position.Y;
1585 int num7 = 32640;
1586 if (width == 0)
1587 {
1588 }
1589 Tile tile;
1590 ushort num8 = tile.type;
1591 if (width == 0)
1592 {
1593 }
1594 long num9 = 0L;
1595 Tile tile2;
1596 tile2.active(num9 != 0L);
1597 bool netHost = Main.NetHost;
1598 if (width == 0)
1599 {
1600 }
1601 int width2 = this.width;
1602 float y3 = this.position.Y;
1603 float x2 = this.position.X;
1604 float x3 = this.position.X;
1605 float y4 = this.position.Y;
1606 float x4 = this.netOffset.X;
1607 float y5 = this.netOffset.Y;
1608 if (width2 == 0)
1609 {
1610 }
1613 if (width2 == 0)
1614 {
1615 }
1616 if (width2 == 0)
1617 {
1618 Vector2 center8 = base.Center;
1619 float num10 = this.scale;
1620 Vector2 center9 = base.Center;
1621 if (49824 == 0)
1622 {
1623 }
1624 if (num7 == 0)
1625 {
1626 }
1627 int num11;
1628 if (num11 == 0)
1629 {
1630 Vector2 center10 = base.Center;
1631 float num12 = this.scale;
1632 Vector2 center11 = base.Center;
1633 if (49824 == 0)
1634 {
1635 }
1636 if (num7 == 0)
1637 {
1638 }
1639 int num13;
1640 if (num13 != 0)
1641 {
1642 }
1643 }
1644 Vector2 center12 = base.Center;
1645 float num14 = this.scale;
1646 Vector2 center13 = base.Center;
1647 if (17016 == 0)
1648 {
1649 }
1650 if (num7 == 0)
1651 {
1652 }
1653 int num15;
1654 if (num15 == 0)
1655 {
1656 Vector2 center14 = base.Center;
1657 float num16 = this.scale;
1658 Vector2 center15 = base.Center;
1659 if (17016 == 0)
1660 {
1661 }
1662 if (num7 == 0)
1663 {
1664 }
1665 int num17;
1666 if (num17 != 0)
1667 {
1668 }
1669 }
1670 }
1671 float x5 = this.position.X;
1672 float y6 = this.position.Y;
1673 float x6 = this.netOffset.X;
1674 float y7 = this.netOffset.Y;
1675 bool flag = this.noTileCollide;
1678 if (flag && !this.TargetPlayer.dead)
1679 {
1680 float y8 = this.velocity.Y;
1681 Vector2 bottom = base.Bottom;
1682 Vector2 top = this.TargetPlayer.Top;
1683 float x7 = this.position.X;
1684 float y9 = this.position.Y;
1685 int width3 = this.width;
1686 bool wet = this.wet;
1688 float x8 = this.position.X;
1689 float y10 = this.position.Y;
1690 int width4 = this.width;
1691 bool wet2 = this.wet;
1692 }
1693 float[] array3 = this.ai;
1694 float y11 = this.velocity.Y;
1695 float x9 = this.velocity.X;
1697 int num18 = this.life;
1698 if (33497088 == 0)
1699 {
1700 float[] array4 = this.ai;
1701 }
1702 int num19 = 1;
1703 int num20 = 1;
1704 this.noTileCollide = num19 != 0;
1705 this.TargetClosest(num20 != 0);
1706 int direction = this.direction;
1707 int num21 = this.life;
1708 int num22 = this.lifeMax;
1710 }
1711
1712 // Token: 0x170004F4 RID: 1268
1713 // (get) Token: 0x0600216C RID: 8556 RVA: 0x000DE478 File Offset: 0x000DC678
1714 public static bool IsMechQueenUp
1715 {
1716 get
1717 {
1718 if (!true)
1719 {
1720 }
1721 if (!false)
1722 {
1723 return;
1724 }
1725 }
1726 }
1727
1728 // Token: 0x0600216D RID: 8557 RVA: 0x000DE48C File Offset: 0x000DC68C
1729 public static bool SpawnMechQueen(int onWhichPlayer)
1730 {
1731 /*
1732An exception occurred when decompiling this method (0600216D)
1733
1734ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::SpawnMechQueen(System.Int32)
1735
1736 ---> System.Exception: Basic block has to end with unconditional control flow.
1737{
1738 IL_0067:
1739 stloc:IEntitySource(var_12_6E, call:IEntitySource(NPC::GetBossSpawnSource, ldloc:int32(var_11)))
1740 stloc:IEntitySource(var_16_77, call:IEntitySource(NPC::GetBossSpawnSource, ldloc:int32(var_15)))
1741 stloc:IEntitySource(var_20_80, call:IEntitySource(NPC::GetBossSpawnSource, ldloc:int32(var_19)))
1742 stloc:IEntitySource(var_24_89, call:IEntitySource(NPC::GetBossSpawnSource, ldloc:int32(var_23)))
1743}
1744
1745 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
1746 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
1747 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
1748 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
1749 --- End of inner exception stack trace ---
1750 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
1751 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
1752*/;
1753 }
1754
1755 // Token: 0x0600216E RID: 8558 RVA: 0x000021DB File Offset: 0x000003DB
1756 public void AI()
1757 {
1758 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
1759 }
1760
1761 // Token: 0x0600216F RID: 8559 RVA: 0x000DE524 File Offset: 0x000DC724
1763 {
1764 float y = this.velocity.Y;
1765 this.velocity.Y = y;
1766 }
1767
1768 // Token: 0x06002170 RID: 8560 RVA: 0x000DE54C File Offset: 0x000DC74C
1770 {
1771 if (this.localAI == null)
1772 {
1773 }
1774 int num = 1;
1775 int num2 = 1;
1776 this.TargetClosest(num != 0);
1777 float[] array = this.localAI;
1778 this.netUpdate = num2 != 0;
1779 int direction = this.direction;
1780 float x = this.velocity.X;
1781 int num3 = 1;
1783 this.rotation = x;
1784 NPCAimedTarget targetData = this.GetTargetData(num3 != 0);
1785 if (direction == 0)
1786 {
1787 }
1788 if (!true)
1789 {
1790 }
1791 }
1792
1793 // Token: 0x06002171 RID: 8561 RVA: 0x000DE8A4 File Offset: 0x000DCAA4
1795 {
1796 if (!true)
1797 {
1798 }
1799 int num = NPC.CountNPCS(405);
1800 int num2 = NPC.CountNPCS(406);
1801 }
1802
1803 // Token: 0x06002172 RID: 8562 RVA: 0x000DE9A4 File Offset: 0x000DCBA4
1805 {
1806 if (!true)
1807 {
1808 }
1809 int num = NPC.CountNPCS(405);
1810 int num2 = NPC.CountNPCS(406);
1811 }
1812
1813 // Token: 0x06002173 RID: 8563 RVA: 0x000DEA94 File Offset: 0x000DCC94
1814 public static bool IsDeerclopsHostile()
1815 {
1816 /*
1817An exception occurred when decompiling this method (06002173)
1818
1819ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::IsDeerclopsHostile()
1820
1821 ---> System.Exception: Basic block has to end with unconditional control flow.
1822{
1823 IL_000A:
1824 stloc:Vector2(var_1_11, callgetter:Vector2(Main::get_screenPosition))
1825 stloc:Vector2(var_3_19, callgetter:Vector2(Main::get_screenPosition))
1826 stloc:int32(var_5_22, callgetter:int32(Main::get_screenWidth))
1827 stloc:int32(var_7_2C, callgetter:int32(Main::get_screenHeight))
1828}
1829
1830 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
1831 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
1832 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
1833 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
1834 --- End of inner exception stack trace ---
1835 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
1836 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
1837*/;
1838 }
1839
1840 // Token: 0x06002174 RID: 8564 RVA: 0x000021DB File Offset: 0x000003DB
1841 private void AI_123_Deerclops()
1842 {
1843 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
1844 }
1845
1846 // Token: 0x06002175 RID: 8565 RVA: 0x000DEAE4 File Offset: 0x000DCCE4
1848 {
1849 /*
1850An exception occurred when decompiling this method (06002175)
1851
1852ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::ShouldRunAway(Terraria.DataStructures.NPCAimedTarget,System.Boolean)
1853
1854 ---> System.Exception: Basic block has to end with unconditional control flow.
1855{
1856 Block_0:
1857 stloc:Player(var_0_06, callgetter:Player(NPC::get_TargetPlayer, ldloc:NPC(this)))
1858 stloc:bool(var_1_0D, callgetter:bool(Player::get_ZoneSnow, ldloc:Player(var_0_06)))
1859 stloc:int32(var_2_14, ldfld:int32(NPC::homeTileX, ldloc:NPC(this)))
1860 stloc:int32(var_3_1B, ldfld:int32(NPC::homeTileY, ldloc:NPC(this)))
1861 stloc:bool(var_5_22, ldfld:bool(Player::dead, ldloc:Player(var_0_06)))
1862 stloc:Vector2(var_6_2A, callgetter:Vector2(Entity::get_Center, ldloc:Player[exp:Entity](var_0_06)))
1863}
1864
1865 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
1866 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
1867 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
1868 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
1869 --- End of inner exception stack trace ---
1870 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
1871 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
1872*/;
1873 }
1874
1875 // Token: 0x06002176 RID: 8566 RVA: 0x000DEB1C File Offset: 0x000DCD1C
1877 {
1878 if (!true)
1879 {
1880 }
1881 float[] array = this.localAI;
1882 int num = 32768;
1883 int num2 = 21846;
1884 long num3 = 0L;
1885 int num4 = 3;
1886 long num5 = 0L;
1887 float num6;
1888 bool flag = this.Boss_CanShootExtraAt((int)num3, 43143168, num4, num6, num5 != 0L);
1889 if (num == 0)
1890 {
1891 }
1892 if (num2 == 0)
1893 {
1894 }
1896 int myPlayer = Main.myPlayer;
1897 }
1898
1899 // Token: 0x06002177 RID: 8567 RVA: 0x000DEB78 File Offset: 0x000DCD78
1905
1906 // Token: 0x06002178 RID: 8568 RVA: 0x000DEBE0 File Offset: 0x000DCDE0
1908 {
1909 if (!true)
1910 {
1911 }
1912 float[] array = this.ai;
1913 int num = 16912;
1914 Vector2 bottom = base.Bottom;
1915 if (num == 0)
1916 {
1917 }
1918 int direction = this.direction;
1919 float[] array2 = this.ai;
1920 Vector2 center = base.Center;
1921 if (17530 == 0)
1922 {
1923 }
1924 int direction2 = this.direction;
1925 }
1926
1927 // Token: 0x06002179 RID: 8569 RVA: 0x000DEC30 File Offset: 0x000DCE30
1929 {
1930 if (!true)
1931 {
1932 }
1933 float[] array = this.ai;
1934 int num = 16992;
1935 Vector2 bottom = base.Bottom;
1936 if (num == 0)
1937 {
1938 }
1939 float[] array2 = this.ai;
1940 Vector2 center = base.Center;
1941 if (17530 == 0)
1942 {
1943 }
1944 int direction = this.direction;
1945 int direction2 = this.direction;
1946 }
1947
1948 // Token: 0x0600217A RID: 8570 RVA: 0x000DEC88 File Offset: 0x000DCE88
1949 public static bool IsADeerclopsNearScreen()
1950 {
1951 /*
1952An exception occurred when decompiling this method (0600217A)
1953
1954ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::IsADeerclopsNearScreen()
1955
1956 ---> System.Exception: Basic block has to end with unconditional control flow.
1957{
1958 IL_0000:
1959 brtrue(IL_0000, ldc.i4:bool(1))
1960}
1961
1962 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
1963 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
1964 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
1965 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
1966 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
1967 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
1968 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
1969 --- End of inner exception stack trace ---
1970 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
1971 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
1972*/;
1973 }
1974
1975 // Token: 0x0600217B RID: 8571 RVA: 0x000DEC98 File Offset: 0x000DCE98
1976 private void AI_123_Deerclops_FindSpotToSpawnSpike(int howMany, int whichOne, int x, int y)
1977 {
1978 if (!true)
1979 {
1980 }
1981 int num = 10;
1982 int num2 = 32768;
1983 y.m_value = num;
1984 if (num2 == 0)
1985 {
1986 }
1987 if (num2 == 0)
1988 {
1989 }
1990 }
1991
1992 // Token: 0x0600217C RID: 8572 RVA: 0x000DECD4 File Offset: 0x000DCED4
1994 {
1995 int num = this.AI_123_Deerclops_TryMakingSpike_FindBestY(sourceTileCoords, 43143168);
1996 bool flag = WorldGen.ActiveAndWalkableTile(43143168, num);
1997 if (8 == 0)
1998 {
1999 }
2001 int myPlayer = Main.myPlayer;
2002 }
2003
2004 // Token: 0x0600217D RID: 8573 RVA: 0x000DED14 File Offset: 0x000DCF14
2006 {
2007 /*
2008An exception occurred when decompiling this method (0600217D)
2009
2010ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::AI_123_Deerclops_TryMakingSpike_FindBestY(Microsoft.Xna.Framework.Point,System.Int32)
2011
2012 ---> System.Exception: Basic block has to end with unconditional control flow.
2013{
2014 IL_0069:
2015 stloc:bool(var_15_71, call:bool(WorldGen::ActiveAndWalkableTile, ldloc:int32(x), ldloc:int32(var_5_23)))
2016}
2017
2018 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
2019 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
2020 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
2021 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
2022 --- End of inner exception stack trace ---
2023 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
2024 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
2025*/;
2026 }
2027
2028 // Token: 0x0600217E RID: 8574 RVA: 0x000DED94 File Offset: 0x000DCF94
2030 {
2031 int num = this.life;
2032 int num2 = this.lifeMax;
2033 int num3 = 1;
2034 NPCAimedTarget targetData = this.GetTargetData(num3 != 0);
2035 int num4 = this.homeTileX;
2036 if (this.homeTileY == 0)
2037 {
2038 }
2039 Point point;
2040 Vector2 vector = point.ToVector2();
2041 Vector2 center = base.Center;
2042 int direction = this.direction;
2043 Vector2 center2 = base.Center;
2044 if (direction == 0)
2045 {
2046 }
2047 if (direction == 0)
2048 {
2049 }
2050 float num6;
2051 int num5 = Math.Sign(num6);
2054 float[] array = this.ai;
2055 float x = this.velocity.X;
2056 }
2057
2058 // Token: 0x0600217F RID: 8575 RVA: 0x000DEEF8 File Offset: 0x000DD0F8
2059 private void AI_124_DeerclopsLeg()
2060 {
2061 float[] array = this.ai;
2062 int num = 32768;
2063 int num2 = 32640;
2064 if (num2 == 0)
2065 {
2066 }
2067 int num3;
2068 if (num != 0)
2069 {
2071 Vector2 center = npcaimedTarget.Center;
2072 Vector2 center2 = base.Center;
2073 if (num2 == 0)
2074 {
2075 }
2076 int width = this.width;
2077 float x = this.position.X;
2078 if (num == 0)
2079 {
2080 }
2081 float x2 = this.position.X;
2082 Vector2 center3 = base.Center;
2083 float[] array2 = this.localAI;
2084 num3 = 16256;
2085 return;
2086 }
2087 if (num3 == 0)
2088 {
2089 }
2090 int whoAmI = this.whoAmI;
2091 }
2092
2093 // Token: 0x06002180 RID: 8576 RVA: 0x000DEFB8 File Offset: 0x000DD1B8
2095 {
2096 /*
2097An exception occurred when decompiling this method (06002180)
2098
2099ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Nullable`1<System.Single> Terraria.NPC::TryFindingFloor(Microsoft.Xna.Framework.Vector2,System.Int32,System.Int32)
2100
2101 ---> System.Exception: Basic block has to end with unconditional control flow.
2102{
2103 IL_0027:
2104 stfld:float32(Vector2::X, ldloc:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](searchStartPositionInWorld), ldloc:int64[exp:float32](var_3_08))
2105}
2106
2107 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
2108 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
2109 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
2110 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
2111 --- End of inner exception stack trace ---
2112 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
2113 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
2114*/;
2115 }
2116
2117 // Token: 0x06002181 RID: 8577 RVA: 0x000DEFF4 File Offset: 0x000DD1F4
2119 {
2120 if (!true)
2121 {
2122 }
2123 }
2124
2125 // Token: 0x06002182 RID: 8578 RVA: 0x000DF004 File Offset: 0x000DD204
2127 {
2129 float x = this.position.X;
2130 float y = this.position.Y;
2131 int width = this.width;
2132 bool wet = this.wet;
2133 if (32640 == 0)
2134 {
2135 }
2136 int width2 = this.width;
2137 int height = this.height;
2138 float x2 = this.position.X;
2139 float y2 = this.position.Y;
2140 Vector2 center = this.TargetPlayer.Center;
2141 if (17136 == 0)
2142 {
2143 }
2144 int num;
2145 if (num == 0)
2146 {
2147 }
2148 }
2149
2150 // Token: 0x06002183 RID: 8579 RVA: 0x000DF0BC File Offset: 0x000DD2BC
2152 {
2153 float[] array = this.localAI;
2154 if (array == null)
2155 {
2156 }
2157 float x = this.position.X;
2158 float y = this.position.Y;
2159 int num = 1;
2160 bool invalid = this.GetTargetData(num != 0).Invalid;
2161 int num2 = 1;
2162 this.TargetClosest(num2 != 0);
2163 int num3 = 1;
2164 bool invalid2 = this.GetTargetData(num3 != 0).Invalid;
2165 float x2 = this.velocity.X;
2166 float y2 = this.velocity.Y;
2167 if (array == null)
2168 {
2169 }
2170 this.velocity.X = x;
2171 this.velocity.Y = y;
2172 int num4 = this.alpha;
2173 }
2174
2175 // Token: 0x06002184 RID: 8580 RVA: 0x000DF228 File Offset: 0x000DD428
2177 {
2178 int num = 1;
2179 this.Transform(npcType);
2180 if (num == 0)
2181 {
2182 }
2183 int whoAmI = this.whoAmI;
2184 bool netHost = Main.NetHost;
2185 }
2186
2187 // Token: 0x06002185 RID: 8581 RVA: 0x000DF258 File Offset: 0x000DD458
2188 private void AI_065_Butterflies()
2189 {
2190 float[] array = this.ai;
2191 int num = this.type;
2192 if (array == null)
2193 {
2194 }
2195 Color color;
2196 Vector3 vector = color.ToVector3();
2197 if (array == null)
2198 {
2199 }
2200 int num2 = 1;
2201 if (num2 != 0)
2202 {
2203 return;
2204 }
2205 Vector2 center = base.Center;
2206 if (num2 == 0)
2207 {
2208 }
2209 int num3 = 1;
2210 bool invalid = this.GetTargetData(num3 != 0).Invalid;
2211 Vector2 center2 = base.Center;
2212 }
2213
2214 // Token: 0x06002186 RID: 8582 RVA: 0x000DF5F8 File Offset: 0x000DD7F8
2216 {
2217 /*
2218An exception occurred when decompiling this method (06002186)
2219
2220ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.NPC::AI_121_QueenSlime_GetDustColor()
2221
2222 ---> System.Exception: Basic block has to end with unconditional control flow.
2223{
2224 IL_0000:
2225 brtrue(IL_0000, ldc.i4:bool(1))
2226}
2227
2228 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
2229 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2230 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2231 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
2232 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
2233 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
2234 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
2235 --- End of inner exception stack trace ---
2236 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
2237 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
2238*/;
2239 }
2240
2241 // Token: 0x06002187 RID: 8583 RVA: 0x000DF60C File Offset: 0x000DD80C
2243 {
2244 int num = 257;
2245 int num2 = 1;
2246 this.noGravity = num != 0;
2247 this.TargetClosest(num2 != 0);
2248 Vector2 center = base.Center;
2249 int num3 = this.timeLeft;
2250 Vector2 center2 = base.Center;
2251 int direction = this.direction;
2252 if (50042 == 0)
2253 {
2254 }
2255 }
2256
2257 // Token: 0x06002188 RID: 8584 RVA: 0x000021DB File Offset: 0x000003DB
2258 private void AI_121_QueenSlime()
2259 {
2260 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
2261 }
2262
2263 // Token: 0x06002189 RID: 8585 RVA: 0x000DF6E8 File Offset: 0x000DD8E8
2265 {
2266 /*
2267An exception occurred when decompiling this method (06002189)
2268
2269ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::AI_120_HallowBoss_IsInPhase2()
2270
2271 ---> System.Exception: Basic block has to end with unconditional control flow.
2272{
2273 Block_0:
2274 stloc:float32[](var_0_06, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
2275}
2276
2277 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
2278 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
2279 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
2280 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
2281 --- End of inner exception stack trace ---
2282 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
2283 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
2284*/;
2285 }
2286
2287 // Token: 0x0600218A RID: 8586 RVA: 0x000DF6FC File Offset: 0x000DD8FC
2289 {
2290 /*
2291An exception occurred when decompiling this method (0600218A)
2292
2293ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::AI_120_HallowBoss_IsGenuinelyEnraged()
2294
2295 ---> System.Exception: Basic block has to end with unconditional control flow.
2296{
2297 Block_0:
2298 stloc:float32[](var_0_06, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
2299}
2300
2301 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
2302 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
2303 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
2304 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
2305 --- End of inner exception stack trace ---
2306 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
2307 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
2308*/;
2309 }
2310
2311 // Token: 0x0600218B RID: 8587 RVA: 0x000DF710 File Offset: 0x000DD910
2312 private void AI_120_HallowBoss_DoMagicEffect(Vector2 spot, int effectType, float progress)
2313 {
2314 }
2315
2316 // Token: 0x0600218C RID: 8588 RVA: 0x000DF910 File Offset: 0x000DDB10
2317 public static bool ShouldEmpressBeEnraged()
2318 {
2319 int num = 1;
2320 if (num == 0)
2321 {
2322 }
2323 if (num == 0)
2324 {
2325 }
2326 if (num != 0)
2327 {
2328 return;
2329 }
2330 }
2331
2332 // Token: 0x0600218D RID: 8589 RVA: 0x000DF934 File Offset: 0x000DDB34
2333 private void AI_120_HallowBoss()
2334 {
2335 int num = 50170;
2336 if (this.ai == null)
2337 {
2338 }
2339 bool expertMode = Main.expertMode;
2340 if (num == 0)
2341 {
2342 }
2343 bool flag = NPC.ShouldEmpressBeEnraged();
2344 int num2 = this.life;
2345 int num3 = this.lifeMax;
2346 float[] array = this.ai;
2347 }
2348
2349 // Token: 0x0600218E RID: 8590 RVA: 0x000E0D78 File Offset: 0x000DEF78
2351 {
2352 if (50070 == 0)
2353 {
2354 }
2355 if (17224 == 0)
2356 {
2357 }
2358 Vector2 center = base.Center;
2359 if (17096 == 0)
2360 {
2361 }
2362 Vector2 vector;
2363 float num = vector.Length();
2364 if (17096 == 0)
2365 {
2366 }
2367 if (17096 == 0)
2368 {
2369 }
2370 if (!true)
2371 {
2372 }
2373 }
2374
2375 // Token: 0x0600218F RID: 8591 RVA: 0x000E0DD4 File Offset: 0x000DEFD4
2377 {
2378 /*
2379An exception occurred when decompiling this method (0600218F)
2380
2381ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::Boss_CanShootExtraAt(System.Int32,System.Int32,System.Int32,System.Single,System.Boolean)
2382
2383 ---> System.Exception: Basic block has to end with unconditional control flow.
2384{
2385 IL_0012:
2386 brtrue(IL_0000, logicnot:bool(ldfld:bool[][exp:bool](NPC::playerInteraction, ldloc:NPC(this))))
2387}
2388
2389 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
2390 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2391 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2392 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
2393 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
2394 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
2395 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
2396 --- End of inner exception stack trace ---
2397 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
2398 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
2399*/;
2400 }
2401
2402 // Token: 0x06002190 RID: 8592 RVA: 0x000E0DFC File Offset: 0x000DEFFC
2403 private void AI_119_Dandelion()
2404 {
2405 if (!true)
2406 {
2407 }
2408 int num = 1;
2409 if (num == 0)
2410 {
2411 }
2412 if (num == 0)
2413 {
2414 int num2 = this.timeLeft;
2415 int num3 = 10;
2417 }
2418 int num4 = 17430;
2419 int num5 = 1;
2420 NPCAimedTarget targetData = this.GetTargetData(num5 != 0);
2421 if (num4 == 0)
2422 {
2423 }
2424 Vector2 center = base.Center;
2425 if (num4 == 0)
2426 {
2427 }
2428 Vector2 center2 = base.Center;
2429 }
2430
2431 // Token: 0x06002191 RID: 8593 RVA: 0x000E0F1C File Offset: 0x000DF11C
2432 private void AI_118_Seahorses()
2433 {
2434 bool wet = this.wet;
2436 Vector2 center = base.Center;
2437 if (!wet)
2438 {
2439 }
2440 Vector2 top = base.Top;
2441 }
2442
2443 // Token: 0x06002192 RID: 8594 RVA: 0x000E10C4 File Offset: 0x000DF2C4
2445 {
2446 float[] array = this.localAI;
2447 int num = 255;
2448 this.alpha = num;
2449 if (array == null)
2450 {
2451 }
2452 bool logicHost = Main.LogicHost;
2453 float[] array2 = this.ai;
2454 int num2 = 49024;
2455 int num3 = 1;
2456 this.netUpdate = num3 != 0;
2457 float[] array3 = this.ai;
2458 if (array3 == null)
2459 {
2460 }
2461 int num4;
2462 if (num4 == 0)
2463 {
2464 float x = this.position.X;
2465 float y = this.position.Y;
2466 float x2 = this.netOffset.X;
2467 float y2 = this.netOffset.Y;
2468 if (array3 == null)
2469 {
2470 }
2471 int width = this.width;
2472 bool wet = this.wet;
2473 if (array3 == null)
2474 {
2475 }
2476 Dust dust;
2477 float x3 = dust.velocity.X;
2478 float y3 = dust.velocity.Y;
2482 int num5 = 120;
2483 dust.alpha = num5;
2484 if (num5 == 0)
2485 {
2486 }
2487 if (num2 == 0)
2488 {
2489 }
2490 dust.scale = x3;
2491 float x4 = dust.velocity.X;
2492 float y4 = dust.velocity.Y;
2493 float x5 = this.velocity.X;
2494 float y5 = this.velocity.Y;
2496 float x6 = this.position.X;
2497 float y6 = this.position.Y;
2498 float x7 = this.netOffset.X;
2499 float y7 = this.netOffset.Y;
2502 }
2503 int num6 = this.target;
2504 int num7 = 1;
2505 this.TargetClosest(num7 != 0);
2506 int direction = this.direction;
2507 float[] array4 = this.ai;
2508 bool dead = this.TargetPlayer.dead;
2509 int num8;
2510 if (!dead)
2511 {
2512 Vector2 center = this.TargetPlayer.Center;
2513 Vector2 center2 = base.Center;
2514 if (!dead)
2515 {
2516 }
2517 num8 = 17658;
2518 }
2519 int num9 = 1;
2520 this.TargetClosest(num9 != 0);
2521 int num10 = 1;
2522 NPCAimedTarget targetData = this.GetTargetData(num10 != 0);
2523 if (num8 == 0)
2524 {
2525 }
2526 if (num2 != 0)
2527 {
2528 return;
2529 }
2530 if (num2 == 0)
2531 {
2532 }
2533 float[] array5 = this.ai;
2534 }
2535
2536 // Token: 0x06002193 RID: 8595 RVA: 0x000E2564 File Offset: 0x000E0764
2538 {
2539 if (!true)
2540 {
2541 }
2543 if (this.TargetPlayer.active && !this.TargetPlayer.dead)
2544 {
2545 Vector2 center = this.TargetPlayer.Center;
2546 int num = NPC.CountNPCS(619);
2547 Vector2 center2 = base.Center;
2548 Tile tile;
2549 bool flag = tile.nactive();
2550 long num2 = 0L;
2551 long num3 = 0L;
2552 Tile tile2;
2553 bool flag2 = tile2.lava();
2554 int num4;
2555 bool flag3 = Collision.SolidTiles(42168472, (int)num3, num4, (int)num2);
2556 Vector2 center3 = base.Center;
2558 }
2559 }
2560
2561 // Token: 0x170004F5 RID: 1269
2562 // (get) Token: 0x06002194 RID: 8596 RVA: 0x000E2610 File Offset: 0x000E0810
2563 public static bool TooWindyForButterflies
2564 {
2565 get
2566 {
2567 /*
2568An exception occurred when decompiling this method (06002194)
2569
2570ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::get_TooWindyForButterflies()
2571
2572 ---> System.Exception: Basic block has to end with unconditional control flow.
2573{
2574 IL_0000:
2575 brtrue(IL_0000, ldc.i4:bool(1))
2576}
2577
2578 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
2579 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2580 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
2581 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
2582 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
2583 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
2584 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
2585 --- End of inner exception stack trace ---
2586 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
2587 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
2588*/;
2589 }
2590 }
2591
2592 // Token: 0x06002195 RID: 8597 RVA: 0x000E2620 File Offset: 0x000E0820
2594 {
2595 Vector2 center = base.Center;
2596 if (!true)
2597 {
2598 }
2599 Vector2 bottom = base.Bottom;
2600 Vector2 center2 = base.Center;
2601 float y = this.velocity.Y;
2602 this.velocity.Y = y;
2603 }
2604
2605 // Token: 0x06002196 RID: 8598 RVA: 0x000E2730 File Offset: 0x000E0930
2606 private void AI_115_LadyBugs()
2607 {
2608 int num = 1;
2609 if (num == 0)
2610 {
2611 }
2612 bool logicHost = Main.LogicHost;
2613 float[] array = this.ai;
2614 if (num == 0)
2615 {
2616 }
2617 int num2 = 1;
2618 this.netUpdate = num2 != 0;
2619 float[] array2 = this.localAI;
2620 if (num2 == 0)
2621 {
2622 }
2623 int num3;
2624 int num4;
2625 if (num3 == 0)
2626 {
2627 float[] array3 = this.ai;
2628 num4 = 16256;
2629 int num5 = 1;
2630 this.netUpdate = num5 != 0;
2631 return;
2632 }
2633 int num6 = 1;
2634 this.TargetClosest(num6 != 0);
2635 float[] array4 = this.ai;
2636 int num7;
2637 if (num7 == 0)
2638 {
2639 }
2640 if (num4 == 0)
2641 {
2642 }
2643 Vector2 center = this.TargetPlayer.Center;
2644 int num8 = 17455;
2645 float[] array5 = this.ai;
2647 if (num8 == 0)
2648 {
2649 }
2650 if (num4 == 0)
2651 {
2652 }
2653 int num9 = 1;
2654 this.netUpdate = num9 != 0;
2655 float[] array6 = this.ai;
2656 this.scale = (float)num4;
2657 if (num4 == 0)
2658 {
2659 }
2660 float num10;
2661 Vector2 vector = num10.ToRotationVector2();
2662 if (array6 == null)
2663 {
2664 }
2665 if (array6 == null)
2666 {
2667 }
2668 float x = this.velocity.X;
2669 float y = this.velocity.Y;
2670 this.velocity.X = x;
2671 this.velocity.Y = y;
2672 Vector2 center3 = base.Center;
2673 Vector2 center4 = base.Center;
2674 Tile tile;
2675 bool flag = tile.nactive();
2676 if (-2147483648 == 0)
2677 {
2678 }
2679 Tile tile2;
2680 ushort num11 = tile2.type;
2681 if (-2147483648 == 0)
2682 {
2683 if (-2147483648 == 0)
2684 {
2685 }
2686 Tile tile3;
2687 byte liquid = tile3.liquid;
2688 }
2689 float[] array7 = this.ai;
2690 float y2 = this.velocity.Y;
2692 float y3 = this.velocity.Y;
2693 Vector2 center5 = base.Center;
2694 Vector2 center6 = base.Center;
2695 if (array7 == null)
2696 {
2697 }
2698 Tile tile4;
2699 bool flag2 = tile4.nactive();
2700 if (-2147483648 == 0)
2701 {
2702 }
2703 Tile tile5;
2704 ushort num12 = tile5.type;
2705 if (-2147483648 == 0)
2706 {
2707 if (-2147483648 == 0)
2708 {
2709 }
2710 Tile tile6;
2711 byte liquid2 = tile6.liquid;
2712 }
2713 float[] array8 = this.ai;
2714 float y4 = this.velocity.Y;
2716 if (this.collideX)
2717 {
2718 float[] array9 = this.ai;
2719 float x2 = this.velocity.X;
2720 return;
2721 }
2722 float x3 = this.velocity.X;
2723 int num13;
2725 }
2726
2727 // Token: 0x06002197 RID: 8599 RVA: 0x000E2B1C File Offset: 0x000E0D1C
2728 private void AI_114_Dragonflies()
2729 {
2730 if (this.localAI == null)
2731 {
2732 }
2733 bool logicHost = Main.LogicHost;
2734 float[] array = this.localAI;
2735 int num = 16256;
2736 Vector2 center = base.Center;
2737 if (this.ai == null)
2738 {
2739 }
2740 if (num == 0)
2741 {
2742 }
2743 float[] array2 = this.ai;
2744 int num2 = 1;
2745 this.netUpdate = num2 != 0;
2746 float[] array3 = this.ai;
2747 if (32640 == 0)
2748 {
2749 float x = this.velocity.X;
2750 float y = this.velocity.Y;
2751 if (-2147483648 == 0)
2752 {
2753 }
2754 float y2;
2756 bool logicHost2 = Main.LogicHost;
2757 if (this.ai == null)
2758 {
2759 }
2760 float[] array4 = this.ai;
2761 if (17088 == 0)
2762 {
2763 }
2764 return;
2765 }
2766 float[] array5 = this.ai;
2767 int num3 = 1;
2768 this.netUpdate = num3 != 0;
2769 Vector2 center2 = base.Center;
2770 Vector2 center3 = base.Center;
2771 if (num3 == 0)
2772 {
2773 }
2774 Tile tile;
2775 bool flag = tile.nactive();
2776 if (-2147483648 == 0)
2777 {
2778 }
2779 Tile tile2;
2780 ushort num4 = tile2.type;
2781 if (-2147483648 == 0)
2782 {
2783 if (-2147483648 == 0)
2784 {
2785 }
2786 Tile tile3;
2787 byte liquid = tile3.liquid;
2788 }
2789 float y3 = this.velocity.Y;
2792 float y4 = this.velocity.Y;
2793 if (-2147483648 == 0)
2794 {
2795 }
2796 Tile tile4;
2797 bool flag2 = tile4.nactive();
2798 if (-2147483648 == 0)
2799 {
2800 }
2801 Tile tile5;
2802 ushort num5 = tile5.type;
2803 if (-2147483648 == 0)
2804 {
2805 float y2 = this.velocity.Y;
2807 return;
2808 }
2809 float x2 = this.velocity.X;
2810 float[] array6;
2812 if (this.wet)
2813 {
2814 int num6 = 49216;
2815 this.velocity.Y = (float)num6;
2816 }
2817 float[] array7 = this.localAI;
2818 }
2819
2820 // Token: 0x06002198 RID: 8600 RVA: 0x000E2F00 File Offset: 0x000E1100
2821 private void AI_113_WindyBalloon()
2822 {
2823 if (this.localAI == null)
2824 {
2825 }
2826 bool logicHost = Main.LogicHost;
2827 int num = 1;
2828 this.TargetClosest(num != 0);
2829 float[] array = this.localAI;
2830 float[] array2 = this.ai;
2831 if (array == null)
2832 {
2833 }
2835 float x = this.position.X;
2836 float y = this.position.Y;
2837 if (array == null)
2838 {
2839 }
2840 int num2 = 32640;
2841 if (num2 != 0)
2842 {
2843 int num3;
2844 if (num3 != 0)
2845 {
2846 if (num2 != 0)
2847 {
2848 int num4;
2849 int num5;
2850 if (num4 != 0 && num5 == 0)
2851 {
2852 return;
2853 }
2854 }
2855 else
2856 {
2857 int num4;
2858 while (num4 != 0)
2859 {
2860 }
2861 }
2862 int num6 = 1;
2863 float[] array3 = this.ai;
2864 this.netUpdate = num6 != 0;
2865 Vector2 center = base.Center;
2866 float[] array4 = this.ai;
2867 if (array3 == null)
2868 {
2869 }
2870 float[] array5 = this.ai;
2871 float x2 = this.position.X;
2872 float y2 = this.position.Y;
2875 float x3 = this.velocity.X;
2876 this.rotation = x3;
2877 if (npc != null)
2878 {
2879 int num7 = 1;
2880 NPCAimedTarget targetData = this.GetTargetData(num7 != 0);
2881 if (array5 == null)
2882 {
2883 }
2884 if (!true)
2885 {
2886 }
2887 return;
2888 }
2889 float y3 = this.velocity.Y;
2891 float x4 = this.velocity.X;
2892 if (this.collideX || this.collideY)
2893 {
2894 int direction = this.direction;
2895 float x5 = this.oldVelocity.X;
2896 float x6 = this.position.X;
2898 return;
2899 }
2900 return;
2901 }
2902 }
2903 else
2904 {
2905 int num4;
2906 while (num4 != 0)
2907 {
2908 }
2909 }
2910 }
2911
2912 // Token: 0x06002199 RID: 8601 RVA: 0x000E3430 File Offset: 0x000E1630
2914 {
2915 /*
2916An exception occurred when decompiling this method (06002199)
2917
2918ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.NPC Terraria.NPC::AI_113_WindyBalloon_GetSlaveNPC()
2919
2920 ---> System.Exception: Basic block has to end with unconditional control flow.
2921{
2922 IL_0013:
2923 stloc:float32[](var_2_19, ldfld:float32[](NPC::ai, ldloc:NPC(this)))
2924 stloc:int32(var_5_24, ldc.i4:int32(1))
2925 stfld:bool(NPC::netUpdate, ldloc:NPC(this), ldloc:int32[exp:bool](var_5_24))
2926}
2927
2928 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
2929 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
2930 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
2931 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
2932 --- End of inner exception stack trace ---
2933 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
2934 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
2935*/;
2936 }
2937
2938 // Token: 0x0600219A RID: 8602 RVA: 0x000E3470 File Offset: 0x000E1670
2939 private void AI_112_FairyCritter()
2940 {
2941 int num = 1;
2942 this.lavaImmune = num != 0;
2943 if (num == 0)
2944 {
2945 }
2946 bool logicHost = Main.LogicHost;
2947 float[] array = this.ai;
2948 float[] array2 = this.localAI;
2949 Vector2 center = this.TargetPlayer.Center;
2950 Vector2 center2 = base.Center;
2951 int num2 = 1;
2953 this.netUpdate = num2 != 0;
2954 float[] array3 = this.ai;
2955 }
2956
2957 // Token: 0x0600219B RID: 8603 RVA: 0x000E4388 File Offset: 0x000E2588
2958 public static void FairyEffects(Vector2 Position, int type)
2959 {
2960 if (!true)
2961 {
2962 }
2963 }
2964
2965 // Token: 0x0600219C RID: 8604 RVA: 0x000E441C File Offset: 0x000E261C
2967 {
2968 int direction = this.direction;
2969 int num = 1;
2970 goDownwards.m_value = num != 0;
2971 if (direction == 0)
2972 {
2973 }
2974 if (direction == 0)
2975 {
2976 }
2977 Tile tile;
2978 bool isLoaded = tile.IsLoaded;
2979 if (direction == 0)
2980 {
2981 }
2982 if (direction == 0)
2983 {
2984 return;
2985 }
2986 int num2 = 1;
2987 goUpwards.m_value = num2 != 0;
2988 }
2989
2990 // Token: 0x0600219D RID: 8605 RVA: 0x000E445C File Offset: 0x000E265C
2992 {
2993 /*
2994An exception occurred when decompiling this method (0600219D)
2995
2996ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Vector2 Terraria.NPC::GetFairyCircleOffset(System.Single,System.Single,System.Single)
2997
2998 ---> System.Exception: Basic block has to end with unconditional control flow.
2999{
3000 IL_0003:
3001 stloc:Vector2(var_1_0B, call:Vector2(Utils::ToRotationVector2, ldloc:float32(elapsedTime)))
3002 stloc:int32(var_4_14, ldfld:int32(Entity::direction, ldloc:NPC[exp:Entity](this)))
3003}
3004
3005 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
3006 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
3007 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
3008 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
3009 --- End of inner exception stack trace ---
3010 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
3011 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
3012*/;
3013 }
3014
3015 // Token: 0x0600219E RID: 8606 RVA: 0x000E4484 File Offset: 0x000E2684
3017 {
3018 /*
3019An exception occurred when decompiling this method (0600219E)
3020
3021ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::GetFairyTreasureCoords(Microsoft.Xna.Framework.Point)
3022
3023 ---> System.Exception: Basic block has to end with unconditional control flow.
3024{
3025 IL_006B:
3026 stloc:uint16(var_27_72, callgetter:uint16(Tile::get_type, ldloc:Tile[exp:valuetype Terraria.Tile&](var_26)))
3027 stfld:int32(int32::m_value, ldc.i4:int32[exp:int32&](8), ldloc:Rectangle[exp:int32](var_10))
3028}
3029
3030 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
3031 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
3032 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
3033 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
3034 --- End of inner exception stack trace ---
3035 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
3036 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
3037*/;
3038 }
3039
3040 // Token: 0x0600219F RID: 8607 RVA: 0x000021DB File Offset: 0x000003DB
3041 private void AI_069_DukeFishron()
3042 {
3043 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
3044 }
3045
3046 // Token: 0x060021A0 RID: 8608 RVA: 0x000E450C File Offset: 0x000E270C
3047 private void AI_037_Destroyer()
3048 {
3049 if (!true)
3050 {
3051 }
3053 int num = this.type;
3054 float[] array = this.ai;
3055 float[] array2 = this.ai;
3056 int num2 = 32768;
3058 int num3 = this.target;
3059 if (this.TargetPlayer.dead)
3060 {
3061 int num4 = 1;
3062 this.TargetClosest(num4 != 0);
3063 }
3064 int num5 = this.type;
3065 if (this.type == 0)
3066 {
3067 }
3068 float[] array3 = this.ai;
3069 int num6 = this.alpha;
3070 int num7;
3071 if (num6 != 0)
3072 {
3073 float x = this.position.X;
3074 float y = this.position.Y;
3075 int width = this.width;
3076 bool wet = this.wet;
3077 if (num6 == 0)
3078 {
3079 }
3080 num7 = this.alpha;
3081 }
3082 this.alpha = num7;
3083 int num8 = this.type;
3084 float[] array4;
3085 if (this.ai == null)
3086 {
3087 array4 = this.ai;
3088 }
3089 long num9 = 0L;
3090 float num10;
3091 this.HitEffect((int)num9, (double)num10);
3092 this.checkDead();
3093 if (array4 == null)
3094 {
3095 }
3096 bool logicHost = Main.LogicHost;
3097 float[] array5 = this.ai;
3098 int num11 = this.type;
3099 int whoAmI = this.whoAmI;
3101 if (array5 == null)
3102 {
3103 }
3105 int num12 = 135;
3107 float x2 = this.position.X;
3108 float y2 = this.position.Y;
3109 int width2 = this.width;
3110 bool wet2 = this.wet;
3111 int whoAmI2 = this.whoAmI;
3112 if (num12 == 0)
3113 {
3114 }
3115 if (num11 == 0)
3116 {
3117 }
3118 int whoAmI3 = this.whoAmI;
3119 int num13 = this.type;
3120 float[] array6 = this.localAI;
3121 float[] array7 = this.localAI;
3122 float[] array8 = this.localAI;
3123 int num14 = 1;
3124 this.TargetClosest(num14 != 0);
3125 float x3 = this.position.X;
3126 float y3 = this.position.Y;
3127 int width3 = this.width;
3128 bool wet3 = this.wet;
3129 Player targetPlayer = this.TargetPlayer;
3130 float x4 = targetPlayer.position.X;
3131 float y4 = targetPlayer.position.Y;
3132 int width4 = this.TargetPlayer.width;
3133 int height = this.TargetPlayer.height;
3134 if (num13 == 0)
3135 {
3136 }
3137 int height2 = this.height;
3138 int width5 = this.width;
3139 float x5 = this.position.X;
3140 float y5 = this.position.Y;
3141 float x6 = this.TargetPlayer.position.X;
3143 int width6 = targetPlayer2.width;
3144 if (targetPlayer2 == null)
3145 {
3146 }
3149 if (num13 == 0)
3150 {
3151 }
3153 int myPlayer = Main.myPlayer;
3154 if (num13 == 0)
3155 {
3156 }
3157 long num15 = 0L;
3158 int num16 = 1;
3159 this.netUpdate = num16 != 0;
3160 float x7 = this.position.X;
3161 float y6 = this.position.Y;
3162 int width7 = this.width;
3163 int height3 = this.height;
3164 int num17 = 15744;
3165 int num18 = 32640;
3166 if (num18 != 0)
3167 {
3168 return;
3169 }
3170 if (num17 == 0)
3171 {
3172 }
3173 if (num18 != 0)
3174 {
3175 return;
3176 }
3177 if (num18 == 0)
3178 {
3179 }
3180 if (num18 == 0)
3181 {
3182 }
3183 if (num15 == 0L)
3184 {
3185 }
3186 float x8 = this.position.X;
3187 int width8 = this.width;
3188 float y7 = this.position.Y;
3189 int height4 = this.height;
3190 }
3191
3192 // Token: 0x060021A1 RID: 8609 RVA: 0x000E4DA4 File Offset: 0x000E2FA4
3193 private void AI_005_EaterOfSouls()
3194 {
3195 int num = this.type;
3196 }
3197
3198 // Token: 0x060021A2 RID: 8610 RVA: 0x000E5DB0 File Offset: 0x000E3FB0
3199 public void CopyInteractions(NPC npc)
3200 {
3201 bool[] array = this.playerInteraction;
3202 bool[] array2 = npc.playerInteraction;
3203 int num = npc.lastInteraction;
3205 }
3206
3207 // Token: 0x060021A3 RID: 8611 RVA: 0x000E5DDC File Offset: 0x000E3FDC
3209 {
3210 /*
3211An exception occurred when decompiling this method (060021A3)
3212
3213ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetEaterOfWorldsSegmentsCount()
3214
3215 ---> System.Exception: Basic block has to end with unconditional control flow.
3216{
3217 IL_0003:
3218 stloc:bool(var_1_0A, callgetter:bool(Main::get_expertMode))
3219}
3220
3221 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
3222 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
3223 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
3224 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
3225 --- End of inner exception stack trace ---
3226 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
3227 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
3228*/;
3229 }
3230
3231 // Token: 0x060021A4 RID: 8612 RVA: 0x000E5DF4 File Offset: 0x000E3FF4
3233 {
3234 if (!true)
3235 {
3236 }
3237 return 65;
3238 }
3239
3240 // Token: 0x060021A5 RID: 8613 RVA: 0x000E5E08 File Offset: 0x000E4008
3242 {
3243 /*
3244An exception occurred when decompiling this method (060021A5)
3245
3246ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetBrainOfCthuluCreepersCount()
3247
3248 ---> System.Exception: Basic block has to end with unconditional control flow.
3249{
3250 IL_0000:
3251 brtrue(IL_0000, ldc.i4:bool(1))
3252}
3253
3254 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
3255 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
3256 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
3257 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
3258 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
3259 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
3260 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
3261 --- End of inner exception stack trace ---
3262 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
3263 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
3264*/;
3265 }
3266
3267 // Token: 0x060021A6 RID: 8614 RVA: 0x000E5E18 File Offset: 0x000E4018
3268 public static int GetDestroyerSegmentsCount()
3269 {
3270 /*
3271An exception occurred when decompiling this method (060021A6)
3272
3273ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetDestroyerSegmentsCount()
3274
3275 ---> System.Exception: Basic block has to end with unconditional control flow.
3276{
3277 IL_0000:
3278 brtrue(IL_0000, ldc.i4:bool(1))
3279}
3280
3281 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
3282 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
3283 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
3284 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
3285 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
3286 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
3287 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
3288 --- End of inner exception stack trace ---
3289 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
3290 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
3291*/;
3292 }
3293
3294 // Token: 0x060021A7 RID: 8615 RVA: 0x000E5E28 File Offset: 0x000E4028
3296 {
3297 /*
3298An exception occurred when decompiling this method (060021A7)
3299
3300ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Vector2 Terraria.NPC::GetMechQueenCenter()
3301
3302 ---> System.Exception: Basic block has to end with unconditional control flow.
3303{
3304 IL_001A:
3305 stloc:Vector2(var_5_22, callgetter:Vector2(Entity::get_Center, ldloc:NPC[exp:Entity](this)))
3306}
3307
3308 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
3309 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
3310 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
3311 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
3312 --- End of inner exception stack trace ---
3313 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
3314 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
3315*/;
3316 }
3317
3318 // Token: 0x060021A8 RID: 8616 RVA: 0x000E5E58 File Offset: 0x000E4058
3319 private void AI_006_Worms()
3320 {
3321 int num = 1;
3322 if (num == 0)
3323 {
3324 }
3325 if (num == 0)
3326 {
3327 }
3328 if (num == 0)
3329 {
3330 }
3331 }
3332
3333 // Token: 0x060021A9 RID: 8617 RVA: 0x000E677C File Offset: 0x000E497C
3334 private void AI_002_FloatingEye()
3335 {
3336 if (this.type == 0)
3337 {
3338 }
3339 int num;
3340 if (num == 0)
3341 {
3342 float x = this.position.X;
3343 float y = this.position.Y;
3344 }
3345 bool flag = this.noTileCollide;
3346 int num2 = 1;
3347 this.noGravity = num2 != 0;
3348 if (!flag)
3349 {
3350 if (this.collideX)
3351 {
3352 float x2 = this.oldVelocity.X;
3353 int direction = this.direction;
3355 return;
3356 }
3357 if (this.collideY)
3358 {
3359 float y2 = this.oldVelocity.Y;
3361 return;
3362 }
3363 }
3364 int num3 = this.type;
3365 float x3 = this.position.X;
3366 float y3 = this.position.Y;
3367 int num4 = this.target;
3368 int num5 = this.timeLeft;
3369 int num6 = 10;
3371 float y4 = this.velocity.Y;
3372 int num7 = 1;
3373 this.despawnEncouraged = num7 != 0;
3376 float x4 = this.velocity.X;
3378 int num8 = 1;
3380 }
3381
3382 // Token: 0x060021AA RID: 8618 RVA: 0x000E70C4 File Offset: 0x000E52C4
3383 private void StingerExplosion()
3384 {
3385 if (!true)
3386 {
3387 }
3388 float num = this.scale;
3389 int num2 = this.type;
3391 Vector2 center = base.Center;
3392 Vector2 center2 = base.Center;
3393 if (num2 == 0)
3394 {
3395 }
3396 int myPlayer = Main.myPlayer;
3397 }
3398
3399 // Token: 0x060021AB RID: 8619 RVA: 0x000E7114 File Offset: 0x000E5314
3401 {
3402 /*
3403An exception occurred when decompiling this method (060021AB)
3404
3405ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::DespawnEncouragement_AIStyle2_FloatingEye_IsDiscouraged(System.Int32,Microsoft.Xna.Framework.Vector2,System.Int32)
3406
3407 ---> System.Exception: Basic block has to end with unconditional control flow.
3408{
3409 IL_0003:
3410 stloc:bool(var_2_0A, call:bool(Main::IsItDay))
3411}
3412
3413 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
3414 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
3415 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
3416 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
3417 --- End of inner exception stack trace ---
3418 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
3419 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
3420*/;
3421 }
3422
3423 // Token: 0x060021AC RID: 8620 RVA: 0x000E7130 File Offset: 0x000E5330
3425 {
3426 if (!true)
3427 {
3428 }
3429 if (true)
3430 {
3431 int num = this.type;
3432 if (this.wet)
3433 {
3434 return;
3435 }
3436 }
3437 float[] array = this.ai;
3438 if (array == null)
3439 {
3440 }
3441 if (array == null)
3442 {
3443 return;
3444 }
3445 }
3446
3447 // Token: 0x060021AD RID: 8621 RVA: 0x000E7160 File Offset: 0x000E5360
3448 private void AI_007_FindGoodRestingSpot(int myTileX, int myTileY, [Out] int floorX, [Out] int floorY)
3449 {
3450 int num = this.homeTileX;
3451 floorX.m_value = num;
3452 int num2 = this.homeTileY;
3454 if (num == 0)
3455 {
3456 }
3457 if (num == 0)
3458 {
3459 }
3460 }
3461
3462 // Token: 0x060021AE RID: 8622 RVA: 0x000E7254 File Offset: 0x000E5454
3464 {
3465 if (!true)
3466 {
3467 }
3468 int num = this.type;
3469 if (this.type == 0)
3470 {
3471 float[] array = this.ai;
3472 Vector2 bottom = base.Bottom;
3473 if (array == null)
3474 {
3475 }
3476 int num2 = 1;
3477 if (num2 == 0)
3478 {
3479 }
3480 if (num2 == 0)
3481 {
3482 }
3483 if (num2 == 0)
3484 {
3485 }
3486 int num3 = 1;
3487 if (num3 == 0)
3488 {
3489 }
3490 if (num3 == 0)
3491 {
3492 }
3493 Point point;
3494 Point point2;
3495 bool flag = point == point2;
3496 float[] array2 = this.ai;
3497 int num4 = 16544;
3498 if (num4 == 0)
3499 {
3500 }
3502 if (num4 == 0)
3503 {
3504 }
3505 if (!true)
3506 {
3507 }
3508 float[] array3 = this.localAI;
3509 int num5 = 1;
3510 this.netUpdate = num5 != 0;
3511 }
3512 }
3513
3514 // Token: 0x060021AF RID: 8623 RVA: 0x000E72FC File Offset: 0x000E54FC
3515 public void UpdateHomeTileState(bool homeless, int x, int y)
3516 {
3517 int num = this.homeTileX;
3518 int num2 = this.homeTileY;
3519 bool flag = this.homeless;
3520 this.homeTileX = x;
3521 this.homeTileY = y;
3522 }
3523
3524 // Token: 0x060021B0 RID: 8624 RVA: 0x000E735C File Offset: 0x000E555C
3526 {
3527 /*
3528An exception occurred when decompiling this method (060021B0)
3529
3530ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.NPC::GetMagicAuraColor()
3531
3532 ---> System.Exception: Basic block has to end with unconditional control flow.
3533{
3534 IL_0003:
3535 stloc:int32(var_0_09, ldfld:int32(NPC::townNpcVariationIndex, ldloc:NPC(this)))
3536 stloc:int32(var_1_10, ldfld:int32(NPC::type, ldloc:NPC(this)))
3537 stloc:int32(var_2_17, ldfld:int32(NPC::townNpcVariationIndex, ldloc:NPC(this)))
3538 stloc:int32(var_3_1E, ldfld:int32(NPC::type, ldloc:NPC(this)))
3539 stloc:int32(var_4_25, ldfld:int32(NPC::townNpcVariationIndex, ldloc:NPC(this)))
3540}
3541
3542 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
3543 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
3544 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
3545 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
3546 --- End of inner exception stack trace ---
3547 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
3548 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
3549*/;
3550 }
3551
3552 // Token: 0x060021B1 RID: 8625 RVA: 0x000021DB File Offset: 0x000003DB
3553 private void AI_007_TownEntities()
3554 {
3555 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
3556 }
3557
3558 // Token: 0x060021B2 RID: 8626 RVA: 0x000E7390 File Offset: 0x000E5590
3560 {
3562 float x = this.position.X;
3563 float y = this.position.Y;
3565 float num = vector2.Length();
3566 float[] array = this.ai;
3567 Vector2 size = base.Size;
3568 if (array == null)
3569 {
3570 }
3571 if (array == null)
3572 {
3573 }
3574 this.netUpdate = true;
3575 }
3576
3577 // Token: 0x060021B3 RID: 8627 RVA: 0x000E73EC File Offset: 0x000E55EC
3579 {
3580 int num = 1;
3581 Vector2 top = base.Top;
3582 if (num == 0)
3583 {
3584 }
3585 if (this.homeless)
3586 {
3587 int num2 = this.homeTileX;
3588 int num3 = this.homeTileY;
3589 }
3590 Vector2? vector;
3591 return vector;
3592 }
3593
3594 // Token: 0x060021B4 RID: 8628 RVA: 0x000E74C8 File Offset: 0x000E56C8
3596 {
3597 if (this.type == 0)
3598 {
3599 }
3600 int num = 1;
3601 this.homeless = num != 0;
3602 int whoAmI = this.whoAmI;
3603 if (num == 0)
3604 {
3605 }
3607 }
3608
3609 // Token: 0x060021B5 RID: 8629 RVA: 0x000E751C File Offset: 0x000E571C
3611 {
3612 if (this.townNPC)
3613 {
3614 float[] array = this.ai;
3615 Vector2 top = base.Top;
3616 Vector2 bottom = base.Bottom;
3617 int width = this.width;
3618 if (array == null)
3619 {
3620 }
3621 Rectangle hitbox = base.Hitbox;
3622 if (this.whoAmI == 0)
3623 {
3624 }
3626 bool flag = rectangle.Intersects(rectangle);
3627 }
3628 int num = 1;
3629 keepwalking.m_value = num != 0;
3630 }
3631
3632 // Token: 0x060021B6 RID: 8630 RVA: 0x000021DB File Offset: 0x000003DB
3634 {
3635 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
3636 }
3637
3638 // Token: 0x060021B7 RID: 8631 RVA: 0x000E7618 File Offset: 0x000E5818
3640 {
3641 int num = 1;
3642 float x = this.velocity.X;
3643 if (num == 0)
3644 {
3645 }
3646 bool logicHost = Main.LogicHost;
3647 if (num == 0)
3648 {
3649 }
3650 int num2;
3651 if (num2 == 0)
3652 {
3653 int num3 = this.type;
3654 if (num != 0)
3655 {
3656 return;
3657 }
3658 int num4 = this.type;
3659 float[] array = this.ai;
3660 if (num4 != 0)
3661 {
3662 return;
3663 }
3664 if (num4 == 0)
3665 {
3666 }
3667 int num5 = 22;
3668 float[] array2 = this.ai;
3669 if (num5 == 0)
3670 {
3671 }
3672 float[] array3 = this.ai;
3673 if (this.type == 0)
3674 {
3675 }
3676 float[] array4 = this.ai;
3677 if (this.type == 0)
3678 {
3679 }
3680 float[] array5 = this.ai;
3681 if (this.type == 0)
3682 {
3683 }
3684 float[] array6 = this.ai;
3685 if (array6 == null)
3686 {
3687 }
3688 if (array6 != null)
3689 {
3690 float[] array7 = this.ai;
3691 if (array6 == null)
3692 {
3693 }
3694 }
3695 float[] array8 = this.ai;
3696 int num6 = 1;
3697 float[] array9 = this.localAI;
3698 this.netUpdate = num6 != 0;
3699 }
3700 }
3701
3702 // Token: 0x060021B8 RID: 8632 RVA: 0x000E770C File Offset: 0x000E590C
3704 {
3705 int num = 1;
3706 Vector2 center = base.Center;
3707 Vector2 center2 = base.Center;
3708 Tile tile;
3709 bool flag = tile.active();
3710 if (num == 0)
3711 {
3712 }
3713 if (num == 0)
3714 {
3715 return;
3716 }
3717 if (num == 0)
3718 {
3719 }
3720 if (num != 0)
3721 {
3722 return;
3723 }
3724 }
3725
3726 // Token: 0x060021B9 RID: 8633 RVA: 0x000E774C File Offset: 0x000E594C
3728 {
3729 if (!true)
3730 {
3731 }
3732 float y = this.position.Y;
3733 if (15744 == 0)
3734 {
3735 }
3736 float x = this.position.X;
3737 float y2 = this.position.Y;
3738 int width = this.width;
3739 bool wet = this.wet;
3740 bool flag;
3741 return flag;
3742 }
3743
3744 // Token: 0x060021BA RID: 8634 RVA: 0x000E779C File Offset: 0x000E599C
3745 private void AI_003_Fighters()
3746 {
3747 int num = 1;
3748 float y = this.TargetPlayer.position.Y;
3749 int height = this.TargetPlayer.height;
3750 int height2 = this.height;
3751 float y2 = this.position.Y;
3752 this.directionY = num;
3753 int num2 = this.type;
3754 bool flag = this.AI_003_Gnomes_ShouldTurnToStone();
3755 Vector2 center = base.Center;
3756 int num3 = 15744;
3757 int num4 = 32640;
3758 Vector2 bottom = base.Bottom;
3759 float x = this.position.X;
3760 float y3 = this.position.Y;
3761 float x2 = this.netOffset.X;
3762 float y4 = this.netOffset.Y;
3763 if (num3 == 0)
3764 {
3765 }
3766 this.position.X = (float)height;
3767 this.position.Y = (float)height2;
3768 int width = this.width;
3769 bool wet = this.wet;
3770 if (num3 == 0)
3771 {
3772 }
3773 if (num4 == 0)
3774 {
3775 }
3776 float x3 = this.position.X;
3777 float y5 = this.position.Y;
3778 float x4 = this.netOffset.X;
3779 float y6 = this.netOffset.Y;
3782 bool flag2 = WorldGen.SolidTileAllowBottomSlope(0, wet ? 1 : 0);
3783 float x5 = this.position.X;
3784 float y7 = this.position.Y;
3785 float x6 = this.netOffset.X;
3786 float y8 = this.netOffset.Y;
3787 if (!false)
3788 {
3789 }
3792 int width2 = this.width;
3793 bool wet2 = this.wet;
3794 if (!false)
3795 {
3796 }
3797 long num5 = 0L;
3798 if (num4 == 0)
3799 {
3800 }
3801 float x7 = this.position.X;
3802 float y9 = this.position.Y;
3803 float x8 = this.netOffset.X;
3804 float y10 = this.netOffset.Y;
3807 bool logicHost = Main.LogicHost;
3808 int direction = this.direction;
3809 int num6 = 5;
3810 if (num4 == 0)
3811 {
3812 }
3813 int num7 = 567;
3814 long num8 = 0L;
3815 long num9 = 0L;
3816 int num10;
3817 bool flag3 = WorldGen.PlaceTile(0, num6, num7, num8 != 0L, num9 != 0L, (int)num5, num10);
3818 if (!false)
3819 {
3820 }
3821 bool netHost = Main.NetHost;
3822 if (!false)
3823 {
3824 }
3825 bool logicHost2 = Main.LogicHost;
3827 if (!false)
3828 {
3829 }
3832 }
3833
3834 // Token: 0x060021BB RID: 8635 RVA: 0x000EB3A8 File Offset: 0x000E95A8
3836 {
3837 int num = 1;
3838 if (num == 0)
3839 {
3840 }
3841 if (num != 0)
3842 {
3843 return;
3844 }
3845 if (num == 0)
3846 {
3847 }
3848 bool flag = Main.IsItDay();
3849 if (npcID != 0 && num != 0)
3850 {
3851 return;
3852 }
3853 if (num == 0)
3854 {
3855 }
3856 if (npcID != 0)
3857 {
3858 Player player;
3859 bool zoneGraveyard = player.ZoneGraveyard;
3860 }
3861 if (num == 0)
3862 {
3863 }
3864 if (npcID != 0)
3865 {
3866 return;
3867 }
3868 }
3869
3870 // Token: 0x060021BC RID: 8636 RVA: 0x000EB3EC File Offset: 0x000E95EC
3874
3875 // Token: 0x060021BD RID: 8637 RVA: 0x000EB3FC File Offset: 0x000E95FC
3876 private void AI_001_Slimes()
3877 {
3878 int num = this.type;
3879 float[] array = this.ai;
3880 int num2 = 17046;
3881 Vector2 center = base.Center;
3882 Vector2 center2 = base.Center;
3883 if (num2 == 0)
3884 {
3885 }
3886 int num3;
3887 if (num3 == 0)
3888 {
3889 Vector2 center3 = base.Center;
3890 int height = this.height;
3891 int width = this.width;
3892 bool wet = this.wet;
3893 int num4 = 52429;
3894 int num5 = 16128;
3895 int num6 = 1;
3896 Dust dust;
3897 dust.scale = (float)num5;
3898 dust.fadeIn = (float)num4;
3899 dust.noGravity = num6 != 0;
3900 dust.noLight = num6 != 0;
3901 return;
3902 }
3903 int num7 = this.type;
3904 if (this.ai == null)
3905 {
3906 }
3907 bool logicHost = Main.LogicHost;
3908 float num8 = this.value;
3909 float[] array2 = this.ai;
3910 int num9 = 49024;
3911 if (array2 == null)
3912 {
3913 }
3914 float[] array3;
3915 if (array2 != null)
3916 {
3917 array3 = this.ai;
3918 if (array3 == null)
3919 {
3920 }
3921 int num10;
3922 if (num10 == 0)
3923 {
3924 float[] array4 = this.ai;
3925 int num11 = 1;
3926 this.netUpdate = num11 != 0;
3927 goto IL_0135;
3928 }
3929 }
3930 if (array3 == null)
3931 {
3932 }
3933 int num12;
3934 if (num12 == 0)
3935 {
3936 float[] array5 = this.ai;
3937 if (num9 == 0)
3938 {
3939 }
3941 float[] array6 = this.ai;
3942 int num14 = 1;
3943 this.netUpdate = num14 != 0;
3944 return;
3945 }
3946 IL_0135:
3947 int num15 = this.type;
3948 float[] array7 = this.ai;
3949 }
3950
3951 // Token: 0x060021BE RID: 8638 RVA: 0x000ED284 File Offset: 0x000EB484
3953 {
3954 if (!true)
3955 {
3956 }
3957 this.color = 100;
3958 this.alpha = 175;
3959 this.color.B = 1;
3960 }
3961
3962 // Token: 0x060021BF RID: 8639 RVA: 0x000ED2B4 File Offset: 0x000EB4B4
3964 {
3965 int num = 1;
3966 if (num == 0)
3967 {
3968 }
3969 if (num == 0)
3970 {
3971 }
3972 if (num == 0)
3973 {
3974 }
3975 return 4367;
3976 }
3977
3978 // Token: 0x060021C0 RID: 8640 RVA: 0x000ED334 File Offset: 0x000EB534
3979 private void AI_110_Betsy()
3980 {
3981 int num = 1;
3982 NPCAimedTarget targetData = this.GetTargetData(num != 0);
3983 float[] array = this.ai;
3984 int num2 = 1;
3985 this.netUpdate = num2 != 0;
3986 }
3987
3988 // Token: 0x060021C1 RID: 8641 RVA: 0x000ED968 File Offset: 0x000EBB68
3989 private void AI_026_Unicorns()
3990 {
3991 float y = this.velocity.Y;
3992 int direction = this.direction;
3993 int direction2 = this.direction;
3994 float[] array = this.ai;
3995 }
3996
3997 // Token: 0x060021C2 RID: 8642 RVA: 0x000EE698 File Offset: 0x000EC898
3999 {
4000 float x = this.velocity.X;
4001 float y = this.velocity.Y;
4002 bool flag = this.justHit;
4003 }
4004
4005 // Token: 0x060021C3 RID: 8643 RVA: 0x000021DB File Offset: 0x000003DB
4007 {
4008 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
4009 }
4010
4011 // Token: 0x060021C4 RID: 8644 RVA: 0x000021DB File Offset: 0x000003DB
4012 private void AI_108_DivingFlyer()
4013 {
4014 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
4015 }
4016
4017 // Token: 0x060021C5 RID: 8645 RVA: 0x000F09E8 File Offset: 0x000EEBE8
4018 private void AI_109_DarkMage()
4019 {
4020 int num = 1;
4021 NPCAimedTarget targetData = this.GetTargetData(num != 0);
4022 int num2 = this.type;
4023 int direction = this.direction;
4024 float x = this.velocity.X;
4025 float[] array = this.localAI;
4026 this.rotation = x;
4028 Vector2 top = base.Top;
4029 Vector2 bottom = base.Bottom;
4030 int width = this.width;
4031 float[] array2 = this.ai;
4032 float[] array3 = this.ai;
4033 if (17056 == 0)
4034 {
4035 }
4036 Vector2 center = base.Center;
4037 float[] array4 = this.ai;
4038 if (17024 == 0)
4039 {
4040 }
4041 bool logicHost = Main.LogicHost;
4043 Vector2 center2 = base.Center;
4044 int direction2 = this.direction;
4045 if (49696 == 0)
4046 {
4047 }
4048 if (!true)
4049 {
4050 }
4051 int myPlayer = Main.myPlayer;
4052 Vector2 center3 = base.Center;
4053 float[] array5 = this.ai;
4054 Vector2 center4 = base.Center;
4055 if (this.direction == 0)
4056 {
4057 }
4058 if (!true)
4059 {
4060 }
4061 bool logicHost2 = Main.LogicHost;
4063 Vector2 center5 = base.Center;
4064 int direction3 = this.direction;
4065 if (direction3 == 0)
4066 {
4067 }
4068 if (direction3 == 0)
4069 {
4070 }
4071 int myPlayer2 = Main.myPlayer;
4072 float[] array6 = this.ai;
4073 int num3 = 17148;
4074 if (array6 == null)
4075 {
4076 }
4077 Vector2 center6 = base.Center;
4078 if (this.ai == null)
4079 {
4080 }
4081 bool logicHost3 = Main.LogicHost;
4082 float[] array7 = this.ai;
4083 Vector2 center7 = base.Center;
4084 int direction4 = this.direction;
4085 Vector2 center8 = base.Center;
4087 if (num3 == 0)
4088 {
4089 }
4090 if (!true)
4091 {
4092 }
4093 int num4 = num3.m_value;
4094 int myPlayer3 = Main.myPlayer;
4095 if (num3 == 0)
4096 {
4097 }
4098 float[] array8 = this.ai;
4099 }
4100
4101 // Token: 0x060021C6 RID: 8646 RVA: 0x000F10A0 File Offset: 0x000EF2A0
4103 {
4104 Vector2 center = base.Center;
4105 int num = 1;
4106 NPCAimedTarget targetData = this.GetTargetData(num != 0);
4107 int num2 = this.type;
4108 int num3 = this.spriteDirection;
4109 if (num3 == 0)
4110 {
4111 }
4112 float x = this.position.X;
4113 float y = this.position.Y;
4114 float x2 = this.netOffset.X;
4115 float y2 = this.netOffset.Y;
4116 this.position.X = x;
4117 if (num3 == 0)
4118 {
4119 }
4120 int num4;
4121 int num5;
4122 int direction2;
4123 if (num4 == 0)
4124 {
4125 int direction = this.direction;
4126 int height = this.height;
4127 float x3 = this.position.X;
4128 float y3 = this.position.Y;
4129 int height2 = this.height;
4130 Dust dust;
4131 float x4 = dust.velocity.X;
4132 float y4 = dust.velocity.Y;
4133 num5 = 26214;
4134 dust.scale = (float)num5;
4136 direction2 = this.direction;
4138 if (num5 == 0)
4139 {
4140 }
4141 dust.velocity.X = (float)direction2;
4142 }
4143 if (num5 == 0)
4144 {
4145 }
4146 int num6;
4147 float x6;
4148 float y6;
4149 if (num6 == 0)
4150 {
4151 if (num5 == 0)
4152 {
4153 }
4154 float num7;
4155 Vector2 vector = num7.ToRotationVector2();
4156 Vector2 center2 = base.Center;
4157 Dust dust2;
4158 float x5 = dust2.velocity.X;
4159 float y5 = dust2.velocity.Y;
4160 int num8 = 1;
4162 dust2.noGravity = num8 != 0;
4163 dust2.customData = this;
4164 Vector2 center3 = base.Center;
4165 Dust dust3;
4166 x6 = dust3.velocity.X;
4167 y6 = dust3.velocity.Y;
4170 dust3.noGravity = num8 != 0;
4171 dust3.customData = this;
4172 }
4173 float x7 = this.position.X;
4174 float y7 = this.position.Y;
4175 float x8 = this.netOffset.X;
4176 float y8 = this.netOffset.Y;
4177 float[] array = this.localAI;
4180 int num9 = 255;
4181 this.alpha = num9;
4182 if (array == null)
4183 {
4184 }
4185 Vector2 center4 = base.Center;
4186 float[] array2 = this.localAI;
4187 int num10 = this.alpha;
4188 this.alpha = num10;
4189 float num11 = base.Size.Length();
4190 int num12 = this.type;
4191 int num13 = 52429;
4192 int num14 = 13107;
4193 if (num12 == 0)
4194 {
4195 }
4196 int num15;
4197 if (num15 == 0)
4198 {
4199 float x9 = this.position.X;
4200 float y9 = this.position.Y;
4201 int width = this.width;
4202 bool wet = this.wet;
4203 float x10 = this.velocity.X;
4204 Dust dust4;
4205 dust4.scale = (float)num13;
4206 dust4.fadeIn = (float)num14;
4207 float x11 = dust4.velocity.X;
4208 float y10 = dust4.velocity.Y;
4211 float x12 = this.velocity.X;
4212 float y11 = this.velocity.Y;
4215 }
4216 int whoAmI = this.whoAmI;
4217 if (whoAmI == 0)
4218 {
4219 }
4220 if (whoAmI != 0)
4221 {
4222 if (whoAmI == 0)
4223 {
4224 }
4225 int num16 = this.type;
4226 float x13 = this.position.X;
4227 if (whoAmI == 0)
4228 {
4229 }
4230 if (num16 == 0)
4231 {
4232 }
4233 float y12 = this.position.Y;
4234 int width2 = this.width;
4235 float x14 = this.position.X;
4236 float y13 = this.position.Y;
4237 float x15 = this.velocity.X;
4239 float y14 = this.velocity.Y;
4240 return;
4241 }
4242 }
4243
4244 // Token: 0x060021C7 RID: 8647 RVA: 0x000F1614 File Offset: 0x000EF814
4246 {
4247 if (!true)
4248 {
4249 }
4250 }
4251
4252 // Token: 0x060021C8 RID: 8648 RVA: 0x000F1628 File Offset: 0x000EF828
4254 {
4255 /*
4256An exception occurred when decompiling this method (060021C8)
4257
4258ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::CanReflectProjectile(Terraria.Projectile)
4259
4260 ---> System.Exception: Basic block has to end with unconditional control flow.
4261{
4262 Block_0:
4263 stloc:Rectangle(var_0_06, callgetter:Rectangle(Entity::get_Hitbox, ldloc:Projectile[exp:Entity](proj)))
4264 stloc:Rectangle(var_1_0D, callgetter:Rectangle(Entity::get_Hitbox, ldloc:NPC[exp:Entity](this)))
4265 stloc:bool(var_2_15, call:bool(Rectangle::Intersects, ldloc:Rectangle[exp:valuetype Microsoft.Xna.Framework.Rectangle&](var_1_0D), ldloc:Rectangle(var_1_0D)))
4266 stloc:int32(var_3_1C, ldfld:int32(NPC::type, ldloc:NPC(this)))
4267}
4268
4269 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
4270 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
4271 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
4272 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
4273 --- End of inner exception stack trace ---
4274 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
4275 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
4276*/;
4277 }
4278
4279 // Token: 0x060021C9 RID: 8649 RVA: 0x000F1654 File Offset: 0x000EF854
4281 {
4282 int num = this.spriteDirection;
4283 float num2 = this.rotation;
4285 Vector2 center = base.Center;
4286 float x = mouthDirection.X;
4287 float y = mouthDirection.Y;
4288 if (num == 0)
4289 {
4290 }
4292 }
4293
4294 // Token: 0x060021CA RID: 8650 RVA: 0x000F16A0 File Offset: 0x000EF8A0
4296 {
4297 if (!true)
4298 {
4299 }
4300 float x = proj.position.X;
4301 float y = proj.position.Y;
4302 float x2 = proj.position.X;
4303 float y2 = proj.position.Y;
4304 int width = proj.width;
4305 bool wet = proj.wet;
4306 int num = 257;
4307 proj.hostile = num != 0;
4308 if (num == 0)
4309 {
4310 }
4311 Vector2 center = proj.Center;
4312 if (num == 0)
4313 {
4314 }
4315 Vector2 vector;
4316 vector.Normalize();
4317 float num2 = vector.Length();
4318 float val = proj.ai.val1;
4319 int num3 = 1;
4320 proj.stepSpeed = (float)num3;
4321 proj.ai.val1 = val;
4322 }
4323
4324 // Token: 0x060021CB RID: 8651 RVA: 0x000F1768 File Offset: 0x000EF968
4325 public int GetShootingFrame(float circleY)
4326 {
4327 /*
4328An exception occurred when decompiling this method (060021CB)
4329
4330ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetShootingFrame(System.Single)
4331
4332 ---> System.Exception: Basic block has to end with unconditional control flow.
4333{
4334 Block_0:
4335 stloc:int32(var_0_06, ldfld:int32(NPC::type, ldloc:NPC(this)))
4336}
4337
4338 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
4339 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
4340 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
4341 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
4342 --- End of inner exception stack trace ---
4343 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
4344 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
4345*/;
4346 }
4347
4348 // Token: 0x060021CC RID: 8652 RVA: 0x000F177C File Offset: 0x000EF97C
4349 public Tuple<Vector2, float> GetSwingStats(int swingMax, int swingCurrent, int aimDir, int itemWidth, int itemHeight)
4350 {
4351 /*
4352An exception occurred when decompiling this method (060021CC)
4353
4354ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Tuple`2<Microsoft.Xna.Framework.Vector2,System.Single> Terraria.NPC::GetSwingStats(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)
4355
4356 ---> System.Exception: Basic block has to end with unconditional control flow.
4357{
4358 IL_0006:
4359 stloc:Vector2(var_0_0C, callgetter:Vector2(Entity::get_Center, ldloc:NPC[exp:Entity](this)))
4360 stloc:float32(var_1_18, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
4361 stloc:Vector2(var_2_1F, callgetter:Vector2(Entity::get_Center, ldloc:NPC[exp:Entity](this)))
4362 stloc:float32(var_3_2B, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
4363 stloc:Vector2(var_4_32, callgetter:Vector2(Entity::get_Center, ldloc:NPC[exp:Entity](this)))
4364 stloc:float32(var_5_3F, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
4365}
4366
4367 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
4368 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
4369 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
4370 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
4371 --- End of inner exception stack trace ---
4372 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
4373 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
4374*/;
4375 }
4376
4377 // Token: 0x060021CD RID: 8653 RVA: 0x000F17CC File Offset: 0x000EF9CC
4379 {
4380 int width = itemRectangle.Width;
4381 }
4382
4383 // Token: 0x060021CE RID: 8654 RVA: 0x000F1838 File Offset: 0x000EFA38
4384 public bool UsesPartyHat()
4385 {
4386 for (;;)
4387 {
4388 int num = this.type;
4389 int num2 = this.townNpcVariationIndex;
4390 if (this.ForcePartyHatOn)
4391 {
4392 break;
4393 }
4394 if (this.IsABestiaryIconDummy)
4395 {
4396 }
4397 int height = this.frame.Height;
4398 if (this.townNPC)
4399 {
4400 goto Block_1;
4401 }
4402 }
4403 return true;
4404 Block_1:
4405 return BirthdayParty.PartyIsUp;
4406 }
4407
4408 // Token: 0x060021CF RID: 8655 RVA: 0x000F1888 File Offset: 0x000EFA88
4410 {
4411 /*
4412An exception occurred when decompiling this method (060021CF)
4413
4414ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.PartyHatColor Terraria.NPC::GetPartyHatColor()
4415
4416 ---> System.Exception: Basic block has to end with unconditional control flow.
4417{
4418 IL_006D:
4419 stloc:int32(var_10_73, ldfld:int32(Entity::whoAmI, ldloc:NPC[exp:Entity](this)))
4420 stloc:int32(var_11_7B, call:int32(Utils::ToDirectionInt, ldc.i4:bool(1)))
4421}
4422
4423 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
4424 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
4425 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
4426 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
4427 --- End of inner exception stack trace ---
4428 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
4429 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
4430*/;
4431 }
4432
4433 // Token: 0x060021D0 RID: 8656 RVA: 0x000F1914 File Offset: 0x000EFB14
4434 public void SetFrameSize()
4435 {
4436 if (!true)
4437 {
4438 }
4439 int num = this.type;
4440 bool flag = this.setFrameSize;
4441 if (!flag || !flag)
4442 {
4443 }
4444 }
4445
4446 // Token: 0x060021D1 RID: 8657 RVA: 0x000F1938 File Offset: 0x000EFB38
4447 public void FindFrame()
4448 {
4449 int num = 1;
4450 float x = this.position.X;
4451 float y = this.position.Y;
4452 float x2 = this.netOffset.X;
4453 float y2 = this.netOffset.Y;
4454 if (num == 0)
4455 {
4456 }
4457 }
4458
4459 // Token: 0x060021D2 RID: 8658 RVA: 0x000021DB File Offset: 0x000003DB
4460 private static int FindFrame_FromSequence(int sequenceFrame, int[] frames)
4461 {
4462 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
4463 }
4464
4465 // Token: 0x060021D3 RID: 8659 RVA: 0x000F2BE4 File Offset: 0x000F0DE4
4467 {
4468 /*
4469An exception occurred when decompiling this method (060021D3)
4470
4471ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::FindFrame_Deerclops_GetAttack1Frame(System.Int32)
4472
4473 ---> System.Exception: Basic block has to end with unconditional control flow.
4474{
4475 IL_0000:
4476 brtrue(IL_0000, ldc.i4:bool(1))
4477}
4478
4479 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
4480 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4481 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4482 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
4483 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
4484 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
4485 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
4486 --- End of inner exception stack trace ---
4487 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
4488 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
4489*/;
4490 }
4491
4492 // Token: 0x060021D4 RID: 8660 RVA: 0x000F2BF4 File Offset: 0x000F0DF4
4494 {
4495 /*
4496An exception occurred when decompiling this method (060021D4)
4497
4498ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::FindFrame_Deerclops_GetAttack2Frame(System.Int32)
4499
4500 ---> System.Exception: Basic block has to end with unconditional control flow.
4501{
4502 IL_0000:
4503 brtrue(IL_0000, ldc.i4:bool(1))
4504}
4505
4506 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
4507 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4508 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4509 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
4510 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
4511 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
4512 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
4513 --- End of inner exception stack trace ---
4514 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
4515 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
4516*/;
4517 }
4518
4519 // Token: 0x060021D5 RID: 8661 RVA: 0x000F2C04 File Offset: 0x000F0E04
4521 {
4522 /*
4523An exception occurred when decompiling this method (060021D5)
4524
4525ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::FindFrame_Deerclops_GetAttack3Frame(System.Int32)
4526
4527 ---> System.Exception: Basic block has to end with unconditional control flow.
4528{
4529 IL_0000:
4530 brtrue(IL_0000, ldc.i4:bool(1))
4531}
4532
4533 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
4534 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4535 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
4536 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
4537 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
4538 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
4539 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
4540 --- End of inner exception stack trace ---
4541 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
4542 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
4543*/;
4544 }
4545
4546 // Token: 0x060021D6 RID: 8662 RVA: 0x000F2C14 File Offset: 0x000F0E14
4547 public void SimpleFlyMovement(Vector2 desiredVelocity, float moveSpeed)
4548 {
4549 float x = this.velocity.X;
4550 this.velocity.X = x;
4551 }
4552
4553 // Token: 0x060021D7 RID: 8663 RVA: 0x000F2C78 File Offset: 0x000F0E78
4554 public void HealEffect(int healAmount, bool broadcast = true)
4555 {
4556 float x = this.position.X;
4557 float y = this.position.Y;
4558 int width = this.width;
4559 bool wet = this.wet;
4560 if (32640 == 0)
4561 {
4562 }
4563 }
4564
4565 // Token: 0x060021D8 RID: 8664 RVA: 0x000F2CB4 File Offset: 0x000F0EB4
4566 public static void HealEffect(Rectangle r, int healAmount, bool broadcast = true)
4567 {
4568 bool netHost = Main.NetHost;
4569 }
4570
4571 // Token: 0x060021D9 RID: 8665 RVA: 0x000F2CCC File Offset: 0x000F0ECC
4573 {
4574 int num;
4575 return num;
4576 }
4577
4578 // Token: 0x060021DA RID: 8666 RVA: 0x000F2CDC File Offset: 0x000F0EDC
4579 public int FindClosestPlayer([Out] float distanceToPlayer)
4580 {
4581 int num = 1;
4582 Vector2 center = base.Center;
4583 if (num == 0)
4584 {
4585 return;
4586 }
4587 }
4588
4589 // Token: 0x060021DB RID: 8667 RVA: 0x000F2D00 File Offset: 0x000F0F00
4591 {
4592 if (!true)
4593 {
4594 }
4595 bool netHost = Main.NetHost;
4596 int whoAmI = this.whoAmI;
4597 }
4598
4599 // Token: 0x060021DC RID: 8668 RVA: 0x000F2D34 File Offset: 0x000F0F34
4600 public static bool BigMimicSummonCheck(int x, int y, Player user)
4601 {
4602 int num = 1;
4603 if (num == 0)
4604 {
4605 }
4607 if (num == 0)
4608 {
4609 }
4610 if (num != 0)
4611 {
4612 int num2 = Chest.FindChest(42168200, x);
4613 long num3 = 0L;
4614 long num4 = 0L;
4615 if (42168200 == 0)
4616 {
4617 }
4618 Tile tile;
4619 ushort num5 = tile.type;
4620 Tile tile2;
4621 short frameX = tile2.frameX;
4622 if (num4 == 0L)
4623 {
4624 Tile tile3;
4625 ushort num6 = tile3.type;
4626 Tile tile4;
4627 short frameX2 = tile4.frameX;
4628 if (36409 == 0)
4629 {
4630 }
4631 Tile tile5;
4632 short frameY = tile5.frameY;
4633 int num7 = 36409;
4634 if (num7 == 0)
4635 {
4636 }
4637 int num8 = Chest.FindChest(42168200, x);
4638 num3.m_value = -1073741824L;
4639 bool flag = Chest.DestroyChest(42168200, x);
4640 if (num7 == 0)
4641 {
4642 }
4643 Tile tile6;
4644 ushort num9 = tile6.type;
4645 Tile tile7;
4646 tile7.ClearTile();
4647 Tile tile8;
4648 ushort num10 = tile8.type;
4649 if (5 == 0)
4650 {
4651 }
4652 if (473 == 0)
4653 {
4654 }
4655 }
4656 }
4657 throw new ArrayTypeMismatchException();
4658 }
4659
4660 // Token: 0x060021DD RID: 8669 RVA: 0x000F2E34 File Offset: 0x000F1034
4662 {
4663 /*
4664An exception occurred when decompiling this method (060021DD)
4665
4666ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::ShouldFaceTarget(Terraria.Utilities.NPCUtils/TargetSearchResults,System.Nullable`1<Terraria.Utilities.NPCUtils/TargetType>)
4667
4668 ---> System.Exception: Basic block has to end with unconditional control flow.
4669{
4670 Block_2:
4671 stloc:int32(var_4_29, ldfld:int32(Entity::width, ldloc:NPC[exp:Entity](this)))
4672 stloc:bool(var_5_31, ldfld:bool(Entity::wet, ldloc:NPC[exp:Entity](this)))
4673 stloc:float32(var_6_39, ldfld:float32(TargetSearchResults::_nearestTankDistance, ldloc:TargetSearchResults[exp:valuetype Terraria.Utilities.NPCUtils/TargetSearchResults&](searchResults)))
4674 stloc:int32(var_7_41, ldfld:int32(NPC::oldTarget, ldloc:NPC(this)))
4675}
4676
4677 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
4678 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
4679 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
4680 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
4681 --- End of inner exception stack trace ---
4682 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
4683 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
4684*/;
4685 }
4686
4687 // Token: 0x060021DE RID: 8670 RVA: 0x000F2E84 File Offset: 0x000F1084
4688 public void FaceTarget()
4689 {
4690 Vector2 center = base.Center;
4691 Vector2 center2 = base.Center;
4692 }
4693
4694 // Token: 0x060021DF RID: 8671 RVA: 0x000021DB File Offset: 0x000003DB
4695 public void TargetClosestUpgraded(bool faceTarget = true, [Optional] Vector2? checkPosition)
4696 {
4697 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
4698 }
4699
4700 // Token: 0x060021E0 RID: 8672 RVA: 0x000F2EA0 File Offset: 0x000F10A0
4701 public void TargetClosest(bool faceTarget = true)
4702 {
4703 int num = 1;
4704 if (num == 0)
4705 {
4706 }
4707 if (num != 0)
4708 {
4709 }
4710 }
4711
4712 // Token: 0x060021E1 RID: 8673 RVA: 0x000F2EB8 File Offset: 0x000F10B8
4713 public void TargetClosest_WOF(bool faceTarget = true)
4714 {
4715 if (!true)
4716 {
4717 }
4718 }
4719
4720 // Token: 0x060021E2 RID: 8674 RVA: 0x000F2ECC File Offset: 0x000F10CC
4721 private void TryTrackingTarget(float distance, float realDist, bool t, int tankTarget, int j)
4722 {
4723 if (!true)
4724 {
4725 }
4726 float x = this.position.X;
4727 int width = this.width;
4728 int height = this.height;
4729 float y = this.position.Y;
4730 int direction = this.direction;
4731 int num = 1;
4732 j.m_value = num;
4733 if (num == 0)
4734 {
4735 }
4736 float x2 = this.position.X;
4737 int width2 = this.width;
4738 int height2 = this.height;
4739 float y2 = this.position.Y;
4740 t.m_value = x != null;
4741 }
4742
4743 // Token: 0x060021E3 RID: 8675 RVA: 0x000F2F94 File Offset: 0x000F1194
4745 {
4746 if (!true)
4747 {
4748 }
4749 int num = 32640;
4750 int num2 = 1;
4751 num.m_value = (int)realDist;
4752 int width = this.targetRect.Width;
4753 int width2 = this.width;
4755 float x = this.position.X;
4758 int height = this.targetRect.Height;
4759 int height2 = this.height;
4760 int y = this.targetRect.Y;
4761 float y2 = this.position.Y;
4764 }
4765
4766 // Token: 0x060021E4 RID: 8676 RVA: 0x000F313C File Offset: 0x000F133C
4768 {
4769 /*
4770An exception occurred when decompiling this method (060021E4)
4771
4772ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::DoesntDespawnToInactivityAndCountsNPCSlots()
4773
4774 ---> System.Exception: Basic block has to end with unconditional control flow.
4775{
4776 Block_0:
4777 stloc:int32(var_0_06, ldfld:int32(NPC::type, ldloc:NPC(this)))
4778}
4779
4780 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
4781 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
4782 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
4783 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
4784 --- End of inner exception stack trace ---
4785 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
4786 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
4787*/;
4788 }
4789
4790 // Token: 0x060021E5 RID: 8677 RVA: 0x000F3150 File Offset: 0x000F1350
4792 {
4793 int num = this.type;
4794 if (num == 0)
4795 {
4796 }
4797 int num2;
4798 if (num == 0)
4799 {
4800 num2 = 6943;
4801 }
4802 if (num2 == 0)
4803 {
4804 }
4805 while (num2 != 0)
4806 {
4807 }
4808 }
4809
4810 // Token: 0x060021E6 RID: 8678 RVA: 0x000F318C File Offset: 0x000F138C
4811 public void CheckActive()
4812 {
4813 if (!this.active)
4814 {
4815 return;
4816 }
4817 bool flag = this.DoesntDespawnToInactivity();
4818 bool flag2 = this.townNPC;
4819 if (flag2)
4820 {
4822 return;
4823 }
4824 int num = this.type;
4825 float x = this.position.X;
4826 int width = this.width;
4827 if (!flag2)
4828 {
4829 }
4830 int height = this.height;
4831 float y = this.position.Y;
4832 int width2 = this.width;
4833 bool wet = this.wet;
4834 float x2 = this.position.X;
4835 float y2 = this.position.Y;
4836 if (width2 == 0)
4837 {
4838 }
4839 if (!wet)
4840 {
4841 }
4844 int num2 = this.type;
4845 if (num2 == 0)
4846 {
4847 }
4849 if (num2 == 0)
4850 {
4851 }
4852 if (num2 != 0)
4853 {
4854 int num3 = this.type;
4855 }
4856 int num4 = this.type;
4857 bool flag4 = this.boss;
4858 float[] array = this.ai;
4859 if (array == null)
4860 {
4861 }
4863 }
4864
4865 // Token: 0x060021E7 RID: 8679 RVA: 0x000F3318 File Offset: 0x000F1518
4867 {
4868 int num = this.aiStyle;
4869 float[] array = this.ai;
4870 int whoAmI = this.whoAmI;
4871 if (whoAmI == 0)
4872 {
4873 }
4874 if (whoAmI != 0)
4875 {
4876 if (whoAmI == 0)
4877 {
4878 }
4879 bool netHost = Main.NetHost;
4880 if (whoAmI == 0)
4881 {
4882 }
4883 int whoAmI2 = this.whoAmI;
4884 }
4885 }
4886
4887 // Token: 0x060021E8 RID: 8680 RVA: 0x000F3364 File Offset: 0x000F1564
4889 {
4890 int num = 1;
4891 float x = this.position.X;
4892 int width = this.width;
4893 if (num == 0)
4894 {
4895 }
4896 int height = this.height;
4897 int num2 = 32640;
4898 float y = this.position.Y;
4899 if (num == 0)
4900 {
4901 }
4902 if (height == 0)
4903 {
4904 }
4905 if (height != 0)
4906 {
4907 if (num2 == 0)
4908 {
4909 }
4910 if (height != 0)
4911 {
4912 if (height == 0)
4913 {
4914 }
4916 bool flag = rectangle.Intersects(rectangle);
4917 float num3 = this.npcSlots;
4918 }
4919 }
4920 }
4921
4922 // Token: 0x060021E9 RID: 8681 RVA: 0x000F33CC File Offset: 0x000F15CC
4923 public void checkDead()
4924 {
4925 if (this.active)
4926 {
4927 int num = this.realLife;
4928 int whoAmI = this.whoAmI;
4929 int num2 = this.life;
4930 }
4931 }
4932
4933 // Token: 0x060021EA RID: 8682 RVA: 0x000F385C File Offset: 0x000F1A5C
4935 {
4936 int num = 1;
4937 if (num == 0)
4938 {
4939 }
4940 bool logicHost = Main.LogicHost;
4941 if (num == 0)
4942 {
4943 }
4944 int num2;
4945 if (num2 != 0)
4946 {
4947 }
4948 if (this.type == 0)
4949 {
4950 }
4951 }
4952
4953 // Token: 0x060021EB RID: 8683 RVA: 0x000F38E8 File Offset: 0x000F1AE8
4954 public static int GetNPCInvasionGroup(int npcID)
4955 {
4956 return 3;
4957 }
4958
4959 // Token: 0x060021EC RID: 8684 RVA: 0x000F38FC File Offset: 0x000F1AFC
4960 private void DropEoWLoot(bool fromCheckDead = true)
4961 {
4962 if (this.whoAmI == 0)
4963 {
4964 }
4965 int num = 1;
4966 this.boss = num != 0;
4967 this.NPCLoot();
4968 }
4969
4970 // Token: 0x060021ED RID: 8685 RVA: 0x000F3924 File Offset: 0x000F1B24
4972 {
4973 /*
4974An exception occurred when decompiling this method (060021ED)
4975
4976ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Single Terraria.NPC::GetMoonEventPointScalar()
4977
4978 ---> System.Exception: Basic block has to end with unconditional control flow.
4979{
4980 IL_000E:
4981 stloc:bool(var_3_15, callgetter:bool(Main::get_expertMode))
4982}
4983
4984 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
4985 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
4986 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
4987 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
4988 --- End of inner exception stack trace ---
4989 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
4990 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
4991*/;
4992 }
4993
4994 // Token: 0x060021EE RID: 8686 RVA: 0x000F3948 File Offset: 0x000F1B48
4996 {
4997 int num = 1;
4998 if (num == 0)
4999 {
5000 }
5001 if (num != 0)
5002 {
5003 if (num == 0)
5004 {
5005 }
5006 return;
5007 }
5008 }
5009
5010 // Token: 0x060021EF RID: 8687 RVA: 0x000F3A48 File Offset: 0x000F1C48
5012 {
5013 int num = 1;
5014 if (num == 0)
5015 {
5016 }
5017 if (num != 0)
5018 {
5019 if (num == 0)
5020 {
5021 }
5022 return;
5023 }
5024 }
5025
5026 // Token: 0x060021F0 RID: 8688 RVA: 0x000F3B68 File Offset: 0x000F1D68
5027 public static void ResetKillCount()
5028 {
5029 if (!true)
5030 {
5031 }
5032 }
5033
5034 // Token: 0x060021F1 RID: 8689 RVA: 0x000F3B80 File Offset: 0x000F1D80
5035 public bool AnyInteractions()
5036 {
5037 int num = 1;
5038 if (num == 0)
5039 {
5040 }
5041 bool[] array;
5042 if (num != 0)
5043 {
5044 if (num == 0)
5045 {
5046 }
5047 array = this.playerInteraction;
5048 while (array == null)
5049 {
5050 }
5051 }
5052 bool[] array2 = this.playerInteraction;
5053 if (array == null)
5054 {
5055 }
5056 int myPlayer = Main.myPlayer;
5057 if (array != null)
5058 {
5059 return;
5060 }
5061 }
5062
5063 // Token: 0x060021F2 RID: 8690 RVA: 0x000F3BC0 File Offset: 0x000F1DC0
5064 public bool IsDamageDodgeable()
5065 {
5066 int num = this.type;
5067 if (this.ai == null)
5068 {
5069 }
5070 return true;
5071 }
5072
5073 // Token: 0x060021F3 RID: 8691 RVA: 0x000F3BE0 File Offset: 0x000F1DE0
5074 public static void SetEventFlagCleared(bool eventFlag, int gameEventId)
5075 {
5076 eventFlag.m_value = true;
5077 }
5078
5079 // Token: 0x060021F4 RID: 8692 RVA: 0x000F3BFC File Offset: 0x000F1DFC
5084
5085 // Token: 0x060021F5 RID: 8693 RVA: 0x000F3C30 File Offset: 0x000F1E30
5086 public void NPCLoot()
5087 {
5088 if (!true)
5089 {
5090 }
5092 int num = this.type;
5093 if (num == 0)
5094 {
5095 }
5096 if (num != 0)
5097 {
5098 if (num == 0)
5099 {
5100 }
5101 if (num == 0)
5102 {
5103 int num2 = this.type;
5104 return;
5105 }
5106 }
5107 if (num == 0)
5108 {
5109 }
5110 float x = this.position.X;
5111 float y = this.position.Y;
5112 int width = this.width;
5113 bool wet = this.wet;
5114 if (num == 0)
5115 {
5116 }
5119 int num3 = this.type;
5120 bool flag = this.boss;
5121 if (!flag || !flag)
5122 {
5123 }
5125 int num4 = this.type;
5126 if (num4 == 0)
5127 {
5128 }
5129 if (num4 == 0)
5130 {
5132 bool spawnedFromStatue2;
5133 if (spawnedFromStatue)
5134 {
5135 if (!spawnedFromStatue)
5136 {
5137 }
5139 {
5140 if (!spawnedFromStatue)
5141 {
5142 }
5143 if (!spawnedFromStatue)
5144 {
5145 return;
5146 }
5147 }
5149 if (!spawnedFromStatue2 || !spawnedFromStatue2)
5150 {
5151 }
5152 }
5153 if (!spawnedFromStatue2)
5154 {
5155 }
5156 return;
5157 }
5158 }
5159
5160 // Token: 0x060021F6 RID: 8694 RVA: 0x000F3D3C File Offset: 0x000F1F3C
5162 {
5163 /*
5164An exception occurred when decompiling this method (060021F6)
5165
5166ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::IsNPCValidForBestiaryKillCredit()
5167
5168 ---> System.Exception: Basic block has to end with unconditional control flow.
5169{
5170 Block_0:
5171 stloc:int32(var_0_06, ldfld:int32(NPC::type, ldloc:NPC(this)))
5172 stloc:bool(var_1_0D, ldfld:bool(NPC::boss, ldloc:NPC(this)))
5173}
5174
5175 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
5176 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
5177 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
5178 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
5179 --- End of inner exception stack trace ---
5180 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
5181 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
5182*/;
5183 }
5184
5185 // Token: 0x060021F7 RID: 8695 RVA: 0x000F3D58 File Offset: 0x000F1F58
5187 {
5188 int num = this.type;
5189 bool flag = NPC.AnyNPCs(43143168);
5190 }
5191
5192 // Token: 0x060021F8 RID: 8696 RVA: 0x000F3D78 File Offset: 0x000F1F78
5194 {
5195 if (!true)
5196 {
5197 }
5198 bool expertMode = Main.expertMode;
5199 bool masterMode = Main.masterMode;
5200 }
5201
5202 // Token: 0x060021F9 RID: 8697 RVA: 0x000F3D98 File Offset: 0x000F1F98
5203 public static void ResetBadgerHatTime()
5204 {
5205 if (!true)
5206 {
5207 }
5208 }
5209
5210 // Token: 0x060021FA RID: 8698 RVA: 0x000F3DA8 File Offset: 0x000F1FA8
5212 {
5213 if (!true)
5214 {
5215 }
5216 int num = this.type;
5217 }
5218
5219 // Token: 0x060021FB RID: 8699 RVA: 0x000F3EB4 File Offset: 0x000F20B4
5221 {
5222 int num = 1;
5223 int num2 = this.type;
5224 if (num == 0)
5225 {
5226 }
5227 if (num == 0)
5228 {
5229 string textValue = Language.GetTextValue("Enemies.MoonLord");
5230 return;
5231 }
5232 if (num == 0)
5233 {
5234 }
5235 bool netHost = Main.NetHost;
5237 if (networkText == null || networkText != null)
5238 {
5239 return;
5240 }
5241 throw new ArrayTypeMismatchException();
5242 }
5243
5244 // Token: 0x060021FC RID: 8700 RVA: 0x000F3F8C File Offset: 0x000F218C
5246 {
5247 int width = this.width;
5248 bool wet = this.wet;
5249 float x = this.position.X;
5250 float y = this.position.Y;
5251 int num = 32640;
5252 if (num == 0)
5253 {
5254 }
5255 int num2;
5256 if (num != 0)
5257 {
5258 Tile tile;
5259 bool flag = tile.active();
5260 if (num == 0)
5261 {
5262 }
5263 num2 = 347;
5264 }
5265 if (num2 == 0)
5266 {
5267 }
5268 bool netHost = Main.NetHost;
5269 if (num2 == 0)
5270 {
5271 }
5272 if (num2 == 0)
5273 {
5274 }
5276 if (num2 == 0)
5277 {
5278 }
5279 }
5280
5281 // Token: 0x060021FD RID: 8701 RVA: 0x000F4018 File Offset: 0x000F2218
5283 {
5284 int num = this.lifeMax;
5285 int num2 = this.type;
5286 float num3 = this.value;
5287 int num4 = this.target;
5288 if (num4 == 0)
5289 {
5290 }
5291 if (num4 != 0)
5292 {
5293 if (num4 == 0)
5294 {
5295 }
5296 if (num4 != 0)
5297 {
5298 Player targetPlayer = this.TargetPlayer;
5299 long num5 = 0L;
5300 bool zoneDungeon = targetPlayer.ZoneDungeon;
5301 if (num4 == 0)
5302 {
5303 }
5304 bool expertMode = Main.expertMode;
5305 int num6 = 13;
5306 if (closestPlayer.RollLuck((int)num5) == 0)
5307 {
5308 if (num6 == 0)
5309 {
5310 }
5311 Vector2 center = base.Center;
5312 Vector2 center2 = base.Center;
5313 Tile tile;
5314 ushort wall = tile.wall;
5315 if (num6 != 0)
5316 {
5318 Vector2 center3 = base.Center;
5319 Vector2 center4 = base.Center;
5320 if (num6 == 0)
5321 {
5322 }
5323 }
5324 }
5325 }
5326 }
5327 }
5328
5329 // Token: 0x060021FE RID: 8702 RVA: 0x000F40C8 File Offset: 0x000F22C8
5331 {
5332 if (!true)
5333 {
5334 }
5335 bool flag = NPC.AnyNPCs(50);
5336 int num = 150;
5337 int whoAmI = closestPlayer.whoAmI;
5338 if (num == 0)
5339 {
5340 }
5341 int num2 = 50;
5343 if (num == 0)
5344 {
5345 }
5346 }
5347
5348 // Token: 0x060021FF RID: 8703 RVA: 0x000F4100 File Offset: 0x000F2300
5350 {
5351 this.NPCLoot_DropCommonLifeAndMana(closestPlayer);
5352 int num = this.type;
5353 }
5354
5355 // Token: 0x06002200 RID: 8704 RVA: 0x000F41AC File Offset: 0x000F23AC
5357 {
5358 int num = 1;
5359 this.DoDeathEvents_AdvanceSlimeRain(closestPlayer);
5360 this.DoDeathEvents_SummonDungeonSpirit(closestPlayer);
5361 if (num == 0)
5362 {
5363 }
5364 if (num != 0)
5365 {
5366 if (num == 0)
5367 {
5368 }
5369 if (num == 0)
5370 {
5371 bool flag = this.AnyInteractions();
5372 if (num == 0)
5373 {
5374 }
5376 int num2 = this.type;
5377 if (num2 == 0)
5378 {
5379 }
5380 bool flag3 = NPC.AnyNPCs(50);
5381 if (num2 == 0)
5382 {
5383 }
5384 int num3;
5385 if (num3 == 0)
5386 {
5387 int whoAmI = closestPlayer.whoAmI;
5388 if (num2 == 0)
5389 {
5390 }
5391 int num4 = 50;
5393 }
5394 }
5395 }
5396 if (this.type == 0)
5397 {
5398 }
5399 }
5400
5401 // Token: 0x06002201 RID: 8705 RVA: 0x000F4670 File Offset: 0x000F2870
5403 {
5404 int num = 1;
5406 Vector2 center = base.Center;
5407 Vector2 center2 = base.Center;
5408 if (num == 0)
5409 {
5410 }
5411 int num2 = 32640;
5412 if (num2 == 0)
5413 {
5414 }
5415 if (num2 == 0)
5416 {
5417 }
5419 Vector2 center3 = base.Center;
5420 }
5421
5422 // Token: 0x06002202 RID: 8706 RVA: 0x000F46BC File Offset: 0x000F28BC
5424 {
5425 int num = this.type;
5426 if (closestPlayer.RollLuck(6) == 0)
5427 {
5428 int num2 = this.lifeMax;
5429 if (this.damage == 0)
5430 {
5431 }
5432 int num3;
5433 if (num3 == 0)
5434 {
5435 int statMana = closestPlayer.statMana;
5436 int statManaMax = closestPlayer.statManaMax2;
5438 float x = this.position.X;
5439 float y = this.position.Y;
5440 int width = this.width;
5441 bool wet = this.wet;
5442 if (statManaMax == 0)
5443 {
5444 }
5445 return;
5446 }
5447 int num4;
5448 if (num4 == 0)
5449 {
5450 int statLife = closestPlayer.statLife;
5451 int statLifeMax = closestPlayer.statLifeMax2;
5453 float x2 = this.position.X;
5454 float y2 = this.position.Y;
5455 int width2 = this.width;
5456 bool wet2 = this.wet;
5457 if (statLifeMax == 0)
5458 {
5459 }
5460 }
5461 }
5462 int num5 = this.type;
5463 if (closestPlayer.RollLuck(2) == 0)
5464 {
5465 int num6 = this.lifeMax;
5466 int num7 = this.damage;
5467 int statMana2 = closestPlayer.statMana;
5468 int statManaMax2 = closestPlayer.statManaMax2;
5470 float x3 = this.position.X;
5471 float y3 = this.position.Y;
5472 int width3 = this.width;
5473 bool wet3 = this.wet;
5474 if (statManaMax2 == 0)
5475 {
5476 }
5477 }
5478 }
5479
5480 // Token: 0x06002203 RID: 8707 RVA: 0x000F47E8 File Offset: 0x000F29E8
5482 {
5483 int num = 1;
5484 float luck = closestPlayer.luck;
5485 if (num == 0)
5486 {
5487 }
5488 long num2 = 0L;
5489 bool flag = this.midas;
5490 float num3 = this.value;
5491 if (flag)
5492 {
5493 if (!flag)
5494 {
5495 }
5496 }
5497 if (!flag)
5498 {
5499 }
5500 int num4;
5501 if (num4 == 0)
5502 {
5503 if (!flag)
5504 {
5505 }
5506 }
5507 if (!flag)
5508 {
5509 }
5510 int num5;
5511 if (num5 == 0)
5512 {
5513 if (!flag)
5514 {
5515 }
5516 }
5517 if (!flag)
5518 {
5519 }
5520 int num6;
5521 if (num6 == 0)
5522 {
5523 if (!flag)
5524 {
5525 }
5526 }
5527 if (!flag)
5528 {
5529 }
5530 int num7;
5531 if (num7 == 0)
5532 {
5533 if (!flag)
5534 {
5535 }
5536 }
5537 if (!flag)
5538 {
5539 }
5540 int num8;
5541 if (num8 == 0)
5542 {
5543 if (!flag)
5544 {
5545 }
5546 }
5547 if (!flag)
5548 {
5549 }
5550 int num9;
5551 if (num9 == 0)
5552 {
5553 if (!flag)
5554 {
5555 }
5556 }
5557 if (!flag)
5558 {
5559 }
5560 if (flag)
5561 {
5562 if (!flag)
5563 {
5564 }
5565 }
5566 if (num2 != 0L)
5567 {
5568 return;
5569 }
5570 int num10 = this.extraValue;
5571 int num11;
5572 if (num11 == 0)
5573 {
5574 }
5575 int num12;
5576 if (num12 == 0)
5577 {
5578 }
5580 float x = this.position.X;
5581 float y = this.position.Y;
5582 int width = this.width;
5583 bool wet = this.wet;
5585 float x2 = this.position.X;
5586 float y2 = this.position.Y;
5587 int width2 = this.width;
5588 bool wet2 = this.wet;
5589 }
5590
5591 // Token: 0x06002204 RID: 8708 RVA: 0x000F4A34 File Offset: 0x000F2C34
5592 public static int GetStackForSlimeItemDrop(int item)
5593 {
5594 int num = 1;
5595 if (num == 0)
5596 {
5597 }
5598 if (num == 0)
5599 {
5600 }
5601 int num2;
5602 return num2;
5603 }
5604
5605 // Token: 0x06002205 RID: 8709 RVA: 0x000F4A60 File Offset: 0x000F2C60
5607 {
5608 /*
5609An exception occurred when decompiling this method (06002205)
5610
5611ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::ExcludedFromDeathTally()
5612
5613 ---> System.Exception: Basic block has to end with unconditional control flow.
5614{
5615 Block_0:
5616 stloc:int32(var_0_06, ldfld:int32(NPC::netID, ldloc:NPC(this)))
5617 stloc:int32(var_1_0D, ldfld:int32(NPC::netID, ldloc:NPC(this)))
5618}
5619
5620 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
5621 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
5622 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
5623 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
5624 --- End of inner exception stack trace ---
5625 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
5626 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
5627*/;
5628 }
5629
5630 // Token: 0x06002206 RID: 8710 RVA: 0x000F4A7C File Offset: 0x000F2C7C
5632 {
5633 int num = this.netID;
5634 int num2 = 340;
5635 int num3 = 528;
5636 if (num2 == 0)
5637 {
5638 }
5639 int num4 = Item.NPCtoBanner(43143168);
5640 bool flag = this.ExcludedFromDeathTally();
5641 if (num == 0)
5642 {
5643 }
5644 if (num == 0)
5645 {
5646 }
5647 bool netHost = Main.NetHost;
5648 if (num3 == 0)
5649 {
5650 }
5651 int num5 = Item.BannerToItem(num4);
5652 if (num2 == 0)
5653 {
5654 }
5655 if (num5 == 0)
5656 {
5657 if (num5 == 0)
5658 {
5659 }
5660 int num6 = Item.BannerToNPC(num4);
5661 int num7 = this.lastInteraction;
5662 if (num5 == 0)
5663 {
5664 }
5665 if (num2 == 0 || num2 == 0)
5666 {
5667 }
5668 if (num2 == 0)
5669 {
5670 }
5672 string key = npcname.Key;
5673 if (npcname == null)
5674 {
5675 }
5676 if (num3 == 0)
5677 {
5678 }
5680 if (networkText == null || networkText != null)
5681 {
5682 if (num2 == 0)
5683 {
5684 }
5685 if (networkText == null || networkText != null)
5686 {
5688 string key2 = npcname2.Key;
5689 if (npcname2 == null)
5690 {
5691 }
5692 if (num3 == 0)
5693 {
5694 }
5696 if (networkText2 == null || networkText2 != null)
5697 {
5698 if ("Game.EnemiesDefeatedByAnnouncement" == null)
5699 {
5700 }
5701 if ("Game.EnemiesDefeatedByAnnouncement" != null)
5702 {
5703 if ("Game.EnemiesDefeatedByAnnouncement" == null)
5704 {
5705 }
5706 bool netHost2 = Main.NetHost;
5707 if ("Game.EnemiesDefeatedByAnnouncement" == null)
5708 {
5709 }
5710 return;
5711 }
5712 int num8 = Item.BannerToItem(num4);
5713 return;
5714 }
5715 }
5716 }
5717 throw new ArrayTypeMismatchException();
5718 }
5719 }
5720
5721 // Token: 0x06002207 RID: 8711 RVA: 0x000F4BB8 File Offset: 0x000F2DB8
5723 {
5724 int num = this.realLife;
5725 int num2 = this.realLife;
5726 return this.AnyInteractions();
5727 }
5728
5729 // Token: 0x06002208 RID: 8712 RVA: 0x000F4BDC File Offset: 0x000F2DDC
5731 {
5734 if (!this.boss)
5735 {
5736 return;
5737 }
5738 int num = this.netID;
5739 bool flag;
5740 if (!flag)
5741 {
5742 }
5744 }
5745
5746 // Token: 0x06002209 RID: 8713 RVA: 0x000F4C60 File Offset: 0x000F2E60
5748 {
5749 if (!true)
5750 {
5751 }
5752 if (this.type == 0)
5753 {
5754 }
5755 if (!true)
5756 {
5757 }
5758 Vector2 center = base.Center;
5759 if (!true)
5760 {
5761 }
5762 int width = this.width;
5763 int height = this.height;
5764 int whoAmI = this.whoAmI;
5765 if (width == 0)
5766 {
5767 }
5768 return true;
5769 }
5770
5771 // Token: 0x0600220A RID: 8714 RVA: 0x000F4CCC File Offset: 0x000F2ECC
5772 public static void CatchNPC(int i, int who = -1)
5773 {
5774 int myPlayer = Main.myPlayer;
5776 }
5777
5778 // Token: 0x0600220B RID: 8715 RVA: 0x000F4D1C File Offset: 0x000F2F1C
5779 public void DropItemInstanced(Vector2 Position, Vector2 HitboxSize, int itemType, int itemStack = 1, bool interactionRequired = true)
5780 {
5781 if (!true)
5782 {
5783 }
5784 bool netHost = Main.NetHost;
5786 int num = 32640;
5787 if (num == 0)
5788 {
5789 }
5790 int num2 = 54000;
5791 if (num2 == 0)
5792 {
5793 }
5794 if (num2 == 0)
5795 {
5796 }
5797 if (num != 0)
5798 {
5799 if (num2 == 0)
5800 {
5801 }
5802 if (num != 0)
5803 {
5804 if (this.playerInteraction == null)
5805 {
5806 }
5807 int myPlayer = Main.myPlayer;
5808 return;
5809 }
5810 }
5811 }
5812
5813 // Token: 0x0600220C RID: 8716 RVA: 0x000F4DE0 File Offset: 0x000F2FE0
5814 public void PlayerInteraction(int player)
5815 {
5816 int num = this.realLife;
5817 if (this == null)
5818 {
5819 int num2 = this.realLife;
5820 }
5821 int num3 = this.lastInteraction;
5822 }
5823
5824 // Token: 0x0600220D RID: 8717 RVA: 0x000F4FA4 File Offset: 0x000F31A4
5825 public void ApplyInteraction(int player)
5826 {
5827 int num = this.realLife;
5828 int num2 = this.realLife;
5829 }
5830
5831 // Token: 0x0600220E RID: 8718 RVA: 0x000F4FDC File Offset: 0x000F31DC
5832 public static bool CanReleaseNPCs(int who)
5833 {
5834 int num = 1;
5835 if (num == 0)
5836 {
5837 }
5838 bool logicHost = Main.LogicHost;
5839 if (num == 0)
5840 {
5841 }
5842 if (num == 0 || num == 0)
5843 {
5844 }
5845 if (num == 0)
5846 {
5847 }
5848 if (num == 0)
5849 {
5850 }
5851 if (num == 0 || num == 0)
5852 {
5853 return;
5854 }
5855 }
5856
5857 // Token: 0x0600220F RID: 8719 RVA: 0x000F5020 File Offset: 0x000F3220
5858 public static int ReleaseNPC(int x, int y, int Type, int Style, int who)
5859 {
5860 if (!true)
5861 {
5862 }
5864 return 71;
5865 }
5866
5867 // Token: 0x06002210 RID: 8720 RVA: 0x000F509C File Offset: 0x000F329C
5868 public static void SlimeRainSpawns(int plr)
5869 {
5870 if (!true)
5871 {
5872 }
5873 bool expertMode = Main.expertMode;
5874 if (32752 == 0)
5875 {
5876 }
5877 int num = 1;
5878 if (num == 0)
5879 {
5880 }
5881 int num2;
5882 int num3;
5883 if (num != 0)
5884 {
5886 if (power != null)
5887 {
5889 bool remappedSliderValueFor = power.GetRemappedSliderValueFor(plr, 3.689349E+19f);
5890 num2 = 32640;
5891 num3 = 32768;
5892 }
5893 }
5894 if (num2 == 0)
5895 {
5896 }
5897 int num4;
5898 if (num4 == 0)
5899 {
5900 if (32752 == 0)
5901 {
5902 }
5903 if (num3 == 0)
5904 {
5905 }
5906 if (num3 == 0)
5907 {
5908 }
5909 if (42168472 == 0)
5910 {
5911 }
5912 Tile tile;
5913 ushort wall = tile.wall;
5914 if (42168472 == 0)
5915 {
5917 if (num3 == 0)
5918 {
5919 }
5920 if (num3 == 0)
5921 {
5922 }
5923 int num5;
5924 if (num5 == 0)
5925 {
5926 return;
5927 }
5929 if (num3 == 0)
5930 {
5931 }
5932 if (num3 == 0)
5933 {
5934 }
5935 int num6;
5936 if (num6 == 0)
5937 {
5938 return;
5939 }
5940 int num7;
5941 if (num7 == 0)
5942 {
5943 return;
5944 }
5945 }
5946 }
5947 }
5948
5949 // Token: 0x06002211 RID: 8721 RVA: 0x000F5180 File Offset: 0x000F3380
5950 public static bool Spawning_SandstoneCheck(int x, int y)
5951 {
5952 for (;;)
5953 {
5954 int num = 1;
5955 if (num == 0)
5956 {
5957 }
5958 int num2 = 10;
5959 bool flag = WorldGen.InWorld(0, x, num2);
5960 if (num == 0)
5961 {
5962 }
5963 Tile tile;
5964 bool flag2 = tile.active();
5965 if (num == 0)
5966 {
5967 }
5968 if (num != 0)
5969 {
5970 if (num == 0)
5971 {
5972 }
5973 Tile tile2;
5974 bool flag3 = tile2.active();
5975 if (num == 0)
5976 {
5977 }
5978 if (num != 0)
5979 {
5980 }
5981 if (num == 0)
5982 {
5983 }
5984 Tile tile3;
5985 bool flag4 = tile3.active();
5986 if (num == 0)
5987 {
5988 }
5989 if (num != 0)
5990 {
5991 }
5992 }
5993 if (num == 0)
5994 {
5995 }
5996 if (num != 0)
5997 {
5998 return;
5999 }
6000 }
6001 }
6002
6003 // Token: 0x06002212 RID: 8722 RVA: 0x000F51EC File Offset: 0x000F33EC
6004 public static bool Spawning_FlyingAntlionCheck(int x, int y)
6005 {
6006 int num = 1;
6007 if (num == 0)
6008 {
6009 }
6010 int num2 = 10;
6011 bool flag = WorldGen.InWorld(0, x, num2);
6012 if (num == 0)
6013 {
6014 return;
6015 }
6016 }
6017
6018 // Token: 0x06002213 RID: 8723 RVA: 0x000F5214 File Offset: 0x000F3414
6019 private static int RollDragonflyType(int tileType = 2)
6020 {
6021 /*
6022An exception occurred when decompiling this method (06002213)
6023
6024ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::RollDragonflyType(System.Int32)
6025
6026 ---> System.Exception: Basic block has to end with unconditional control flow.
6027{
6028 IL_0003:
6029 brtrue(IL_0000, ldtoken:RuntimeFieldHandle[exp:bool]('<PrivateImplementationDetails>'::746773A11884D65BB97254A4C2A5FE86D1884505C46A053504CFD06D5DBCC7C9))
6030}
6031
6032 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
6033 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6034 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6035 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6036 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
6037 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
6038 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
6039 --- End of inner exception stack trace ---
6040 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
6041 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
6042*/;
6043 }
6044
6045 // Token: 0x06002214 RID: 8724 RVA: 0x000F522C File Offset: 0x000F342C
6046 public static void ResetRemixHax()
6047 {
6048 if (!true)
6049 {
6050 }
6051 }
6052
6053 // Token: 0x06002215 RID: 8725 RVA: 0x000F523C File Offset: 0x000F343C
6054 public static void SetRemixHax()
6055 {
6056 if (!true)
6057 {
6058 }
6059 }
6060
6061 // Token: 0x06002216 RID: 8726 RVA: 0x000F524C File Offset: 0x000F344C
6062 public static bool SpawnTileOrAboveHasAnyWallInSet(int x, int y, bool[] wallTypes)
6063 {
6064 /*
6065An exception occurred when decompiling this method (06002216)
6066
6067ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::SpawnTileOrAboveHasAnyWallInSet(System.Int32,System.Int32,System.Boolean[])
6068
6069 ---> System.Exception: Basic block has to end with unconditional control flow.
6070{
6071 IL_0013:
6072 stloc:uint16(var_5_1A, callgetter:uint16(Tile::get_wall, ldloc:Tile[exp:valuetype Terraria.Tile&](var_4)))
6073}
6074
6075 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
6076 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
6077 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
6078 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
6079 --- End of inner exception stack trace ---
6080 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
6081 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
6082*/;
6083 }
6084
6085 // Token: 0x06002217 RID: 8727 RVA: 0x000F527C File Offset: 0x000F347C
6086 public static void SpawnNPC()
6087 {
6088 int num = 1;
6089 if (num != 0 && num != 0)
6090 {
6091 return;
6092 }
6094 }
6095
6096 // Token: 0x06002218 RID: 8728 RVA: 0x000FBA68 File Offset: 0x000F9C68
6097 public static void SpawnNPC_SpawnFrog(int spawnTileX, int spawnTileY, int plr)
6098 {
6099 int num = 1;
6100 if (num == 0)
6101 {
6102 }
6103 if (num == 0)
6104 {
6105 if (num == 0)
6106 {
6107 }
6108 int num2;
6109 if (num2 == 0)
6110 {
6111 if (num == 0)
6112 {
6113 }
6114 bool flag = NPC.AnyNPCs(687);
6115 }
6116 }
6117 if (num == 0)
6118 {
6119 }
6121 int num3;
6122 if (num3 != 0)
6123 {
6124 return;
6125 }
6126 }
6127
6128 // Token: 0x06002219 RID: 8729 RVA: 0x000FBAB4 File Offset: 0x000F9CB4
6130 {
6131 if (!true)
6132 {
6133 }
6134 int num;
6135 return num;
6136 }
6137
6138 // Token: 0x0600221A RID: 8730 RVA: 0x000FBAE4 File Offset: 0x000F9CE4
6140 {
6141 if (!true)
6142 {
6143 }
6144 int num;
6145 return num;
6146 }
6147
6148 // Token: 0x0600221B RID: 8731 RVA: 0x000FBB14 File Offset: 0x000F9D14
6149 private static bool SpawnNPC_CheckToSpawnRockGolem(int spawnTileX, int spawnTileY, int plr, int tileType)
6150 {
6151 int num = 1;
6152 if (num == 0)
6153 {
6154 }
6155 if (num != 0)
6156 {
6157 if (num == 0)
6158 {
6159 }
6160 if (num != 0)
6161 {
6162 if (num == 0)
6163 {
6164 }
6165 if (num == 0)
6166 {
6167 }
6168 int num2;
6169 if (num2 == 0)
6170 {
6171 if (num == 0)
6172 {
6173 }
6174 long num3 = 0L;
6175 bool flag = WorldGen.SolidTile(0, spawnTileX, num3 != 0L);
6176 if (num == 0)
6177 {
6178 }
6179 long num4 = 0L;
6180 bool flag2 = WorldGen.SolidTile(0, spawnTileX, num4 != 0L);
6181 }
6182 }
6183 }
6184 if (num == 0)
6185 {
6186 }
6187 long num5 = 0L;
6188 return WorldGen.SolidTile(0, spawnTileX, num5 != 0L);
6189 }
6190
6191 // Token: 0x0600221C RID: 8732 RVA: 0x000FBB70 File Offset: 0x000F9D70
6192 private static bool SpawnNPC_CheckToSpawnUndergroundFairy(int spawnTileX, int spawnTileY, int plr)
6193 {
6194 int num = 1;
6195 if (num == 0)
6196 {
6197 }
6198 if (num == 0)
6199 {
6200 return;
6201 }
6202 if (num == 0)
6203 {
6204 }
6205 int num2 = 500;
6206 if (250 == 0)
6207 {
6208 }
6209 int num3;
6210 if (num2 != 0)
6211 {
6212 num3 = 32640;
6213 }
6214 if (num3 == 0)
6215 {
6216 }
6217 int num4;
6218 if (num4 == 0)
6219 {
6220 if (num3 == 0)
6221 {
6222 }
6223 return NPC.AnyHelpfulFairies();
6224 }
6225 }
6226
6227 // Token: 0x0600221D RID: 8733 RVA: 0x000FBBBC File Offset: 0x000F9DBC
6228 private static int SpawnNPC_SpawnLavaBaitCritters(int spawnTileX, int spawnTileY)
6229 {
6230 for (;;)
6231 {
6232 int num = 1;
6233 if (num == 0)
6234 {
6235 }
6236 int num2;
6237 if (num2 == 0)
6238 {
6239 goto IL_0013;
6240 }
6241 if (num == 0)
6242 {
6243 }
6244 if (num != 0)
6245 {
6246 if (num == 0)
6247 {
6248 goto IL_0013;
6249 }
6250 goto IL_0013;
6251 }
6252 IL_0016:
6253 if (num == 0)
6254 {
6255 }
6256 int num3;
6257 if (num3 != 0)
6258 {
6259 continue;
6260 }
6262 if (8 == 0)
6263 {
6264 }
6265 int num4;
6266 if (num4 == 0)
6267 {
6268 break;
6269 }
6270 continue;
6271 IL_0013:
6272 if (num == 0)
6273 {
6274 goto IL_0016;
6275 }
6276 goto IL_0016;
6277 }
6279 if (8 == 0)
6280 {
6281 }
6282 int num5;
6283 if (num5 == 0)
6284 {
6286 }
6287 int num6;
6288 if (num6 == 0)
6289 {
6291 }
6293 int num7;
6294 return num7;
6295 }
6296
6297 // Token: 0x0600221E RID: 8734 RVA: 0x000FBC20 File Offset: 0x000F9E20
6298 private static int SpawnNPC_TryFindingProperGroundTileType(int spawnTileType, int x, int y)
6299 {
6300 /*
6301An exception occurred when decompiling this method (0600221E)
6302
6303ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::SpawnNPC_TryFindingProperGroundTileType(System.Int32,System.Int32,System.Int32)
6304
6305 ---> System.Exception: Basic block has to end with unconditional control flow.
6306{
6307 IL_001B:
6308 stloc:uint16(var_4_21, callgetter:uint16(Tile::get_type, ldloc:Tile[exp:valuetype Terraria.Tile&](var_3)))
6309}
6310
6311 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
6312 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
6313 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
6314 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
6315 --- End of inner exception stack trace ---
6316 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
6317 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
6318*/;
6319 }
6320
6321 // Token: 0x0600221F RID: 8735 RVA: 0x000FBC50 File Offset: 0x000F9E50
6322 public static bool IsValidSpawningGroundTile(int x, int y)
6323 {
6324 /*
6325An exception occurred when decompiling this method (0600221F)
6326
6327ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::IsValidSpawningGroundTile(System.Int32,System.Int32)
6328
6329 ---> System.Exception: Basic block has to end with unconditional control flow.
6330{
6331 IL_001B:
6332 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
6333}
6334
6335 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
6336 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6337 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6338 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6339 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
6340 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
6341 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
6342 --- End of inner exception stack trace ---
6343 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
6344 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
6345*/;
6346 }
6347
6348 // Token: 0x06002220 RID: 8736 RVA: 0x000FBC7C File Offset: 0x000F9E7C
6349 public static bool FindCattailTop(int landX, int landY, [Out] int cattailX, [Out] int cattailY)
6350 {
6351 int num = 1;
6353 if (num == 0)
6354 {
6355 }
6356 int num2 = 31;
6357 bool flag = WorldGen.InWorld(0, landX, num2);
6358 if (num == 0)
6359 {
6360 }
6361 Tile tile;
6362 bool isLoaded = tile.IsLoaded;
6363 if (num == 0)
6364 {
6365 }
6366 int num3;
6367 if (num3 == 0)
6368 {
6369 landY.m_value = 0;
6370 return;
6371 }
6372 }
6373
6374 // Token: 0x06002221 RID: 8737 RVA: 0x000FBCC4 File Offset: 0x000F9EC4
6375 public static bool FindTreeBranch(int landX, int landY, [Out] int treeBranchX, [Out] int treeBranchY)
6376 {
6377 int num = 1;
6379 if (num == 0)
6380 {
6381 }
6382 int num2 = 11;
6383 bool flag = WorldGen.InWorld(0, landX, num2);
6384 if (num == 0)
6385 {
6386 }
6387 Tile tile;
6388 bool isLoaded = tile.IsLoaded;
6389 if (num == 0)
6390 {
6391 }
6392 if (num == 0)
6393 {
6394 return;
6395 }
6396 if (num == 0)
6397 {
6398 }
6399 int num3;
6400 if (num3 == 0)
6401 {
6404 return;
6405 }
6406 }
6407
6408 // Token: 0x06002222 RID: 8738 RVA: 0x000FBD18 File Offset: 0x000F9F18
6409 public static bool AnyDanger(bool quickBossNPCCheck = false, bool ignorePillarsAndMoonlordCountdown = false)
6410 {
6411 if (!true)
6412 {
6413 return;
6414 }
6415 }
6416
6417 // Token: 0x06002223 RID: 8739 RVA: 0x000FBD2C File Offset: 0x000F9F2C
6418 public static bool AnyoneNearCultists()
6419 {
6420 int num = 1;
6421 if (num == 0)
6422 {
6423 }
6424 int num2 = NPC.FindFirstNPC(437);
6425 if (num == 0)
6426 {
6427 }
6429 Vector2 vector = rectangle.Size();
6430 bool flag;
6431 return flag;
6432 }
6433
6434 // Token: 0x06002224 RID: 8740 RVA: 0x000FBD78 File Offset: 0x000F9F78
6435 public static void SpawnWOF(Vector2 pos)
6436 {
6437 int num = 1;
6438 if (num == 0)
6439 {
6440 }
6441 if (num == 0)
6442 {
6443 }
6445 if (num == 0)
6446 {
6447 }
6448 bool flag = NPC.AnyNPCs(113);
6449 int num2 = 32768;
6450 int num3 = 1;
6451 if (num2 == 0)
6452 {
6453 }
6454 if (num3 == 0)
6455 {
6456 }
6457 }
6458
6459 // Token: 0x06002225 RID: 8741 RVA: 0x000FBF24 File Offset: 0x000FA124
6460 public static void SpawnSkeletron(int onWho)
6461 {
6462 if (!true)
6463 {
6464 }
6465 int num = 1;
6466 if (num == 0)
6467 {
6468 }
6469 int num2 = num.m_value;
6470 if (num == 0)
6471 {
6472 }
6473 if (num == 0 || num == 0)
6474 {
6475 }
6476 }
6477
6478 // Token: 0x06002226 RID: 8742 RVA: 0x000FC004 File Offset: 0x000FA204
6479 public static void SpawnFaelings(int plr)
6480 {
6481 int num = 1;
6482 if (num == 0)
6483 {
6484 }
6485 bool flag = NPC.AnyNPCs(677);
6486 if (num == 0)
6487 {
6488 }
6489 }
6490
6491 // Token: 0x06002227 RID: 8743 RVA: 0x000FC08C File Offset: 0x000FA28C
6492 public static void SpawnOnPlayer(int plr, int Type)
6493 {
6494 if (!true)
6495 {
6496 }
6498 }
6499
6500 // Token: 0x06002228 RID: 8744 RVA: 0x000FC354 File Offset: 0x000FA554
6502 {
6503 /*
6504An exception occurred when decompiling this method (06002228)
6505
6506ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::GetAvailableAmountOfNPCsToSpawnUpToSlot(System.Int32,System.Int32)
6507
6508 ---> System.Exception: Basic block has to end with unconditional control flow.
6509{
6510 IL_0009:
6511 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
6512}
6513
6514 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
6515 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6516 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6517 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6518 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
6519 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
6520 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
6521 --- End of inner exception stack trace ---
6522 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
6523 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
6524*/;
6525 }
6526
6527 // Token: 0x06002229 RID: 8745 RVA: 0x000FC36C File Offset: 0x000FA56C
6529 {
6530 /*
6531An exception occurred when decompiling this method (06002229)
6532
6533ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.DataStructures.IEntitySource Terraria.NPC::GetBossSpawnSource(System.Int32)
6534
6535 ---> System.Exception: Basic block has to end with unconditional control flow.
6536{
6537 IL_0000:
6538 brtrue(IL_0000, ldc.i4:bool(1))
6539}
6540
6541 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
6542 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6543 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6544 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6545 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
6546 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
6547 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
6548 --- End of inner exception stack trace ---
6549 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
6550 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
6551*/;
6552 }
6553
6554 // Token: 0x0600222A RID: 8746 RVA: 0x000FC37C File Offset: 0x000FA57C
6555 public static void SpawnBoss(int spawnPositionX, int spawnPositionY, int Type, int targetPlayerIndex)
6556 {
6557 int num = 1;
6558 if (num == 0)
6559 {
6560 }
6561 if (num == 0)
6562 {
6563 }
6565 }
6566
6567 // Token: 0x0600222B RID: 8747 RVA: 0x000FC470 File Offset: 0x000FA670
6568 public static int NewNPC(IEntitySource source, int X, int Y, int Type, int Start = 0, float ai0 = 0f, float ai1 = 0f, float ai2 = 0f, float ai3 = 0f, int Target = 255)
6569 {
6570 int num = 1;
6571 if (num == 0)
6572 {
6573 }
6574 int num3;
6575 if (num != 0)
6576 {
6577 if (num == 0)
6578 {
6579 }
6580 int num2;
6581 if (num2 != 0)
6582 {
6583 num3 = 614;
6584 }
6585 }
6586 if (num3 == 0)
6587 {
6588 }
6590 if (num3 == 0)
6591 {
6592 }
6594 int num4 = 32768;
6595 int num5;
6596 if (num4 != 0)
6597 {
6598 bool netHost = Main.NetHost;
6599 if (num4 == 0)
6600 {
6601 }
6603 if (networkText != null && networkText == null)
6604 {
6605 throw new ArrayTypeMismatchException();
6606 }
6607 num5 = 200;
6608 }
6609 if (num4 == 0)
6610 {
6611 }
6613 while (networkText2 != null)
6614 {
6615 }
6616 string text;
6617 string textValue = Language.GetTextValue("Announcement.HasAwoken", text);
6618 int num6 = 175;
6619 int num7 = 75;
6620 int num8 = 255;
6621 Main.NewText(textValue, (byte)num6, (byte)num7, (byte)num8);
6622 return num5;
6623 }
6624
6625 // Token: 0x0600222C RID: 8748 RVA: 0x000FC524 File Offset: 0x000FA724
6626 private static int GetAvailableNPCSlot(int Type, int startIndex)
6627 {
6628 int num = 199;
6629 if (num == 0)
6630 {
6631 }
6632 if (num == 0)
6633 {
6634 }
6635 if (num != 0)
6636 {
6637 if (num == 0)
6638 {
6639 }
6640 if (num == 0)
6641 {
6642 }
6643 }
6644 return num;
6645 }
6646
6647 // Token: 0x0600222D RID: 8749 RVA: 0x000FC548 File Offset: 0x000FA748
6649 {
6650 int num = 1;
6651 if (num == 0)
6652 {
6653 }
6654 if (num != 0)
6655 {
6656 if (num == 0)
6657 {
6658 }
6659 string newNPCName = NPC.getNewNPCName(Type);
6660 if ("" == null)
6661 {
6662 }
6663 return;
6664 }
6665 }
6666
6667 // Token: 0x0600222E RID: 8750 RVA: 0x000FC584 File Offset: 0x000FA784
6669 {
6670 if (!true)
6671 {
6672 }
6673 bool flag = NPC.AnyNPCs(npcType);
6674 int myPlayer = Main.myPlayer;
6675 }
6676
6677 // Token: 0x0600222F RID: 8751 RVA: 0x000FC5B8 File Offset: 0x000FA7B8
6678 public static bool RerollVariationForNPCType(int npcType)
6679 {
6680 if (!true)
6681 {
6682 }
6683 bool flag;
6684 return flag;
6685 }
6686
6687 // Token: 0x06002230 RID: 8752 RVA: 0x000FC5D0 File Offset: 0x000FA7D0
6688 public bool RerollVariation()
6689 {
6690 if (!true)
6691 {
6692 }
6693 int num = this.type;
6694 int num2 = this.townNpcVariationIndex;
6695 int num3 = this.lifeMax;
6696 this._givenName = "";
6697 this.life = num3;
6698 if ("" == null)
6699 {
6700 }
6701 Vector2 center = base.Center;
6702 Vector2 velocity = this.velocity;
6703 if ("" == null)
6704 {
6705 }
6706 int whoAmI = this.whoAmI;
6707 if ("" == null)
6708 {
6709 return;
6710 }
6711 }
6712
6713 // Token: 0x06002231 RID: 8753 RVA: 0x000FC648 File Offset: 0x000FA848
6714 public void TransformVisuals(int oldType, int newType)
6715 {
6716 int num = 1;
6717 float x = this.position.X;
6718 float y = this.position.Y;
6719 float x2 = this.netOffset.X;
6720 float y2 = this.netOffset.Y;
6721 if (num == 0)
6722 {
6723 }
6724 if (num == 0)
6725 {
6726 float x3 = this.position.X;
6727 float y3 = this.position.Y;
6728 }
6729 float x4 = this.position.X;
6730 float y4 = this.position.Y;
6731 float x5 = this.velocity.X;
6732 float y5 = this.velocity.Y;
6733 float num2 = this.scale;
6734 if (num == 0)
6735 {
6736 }
6737 int height = this.height;
6738 float x6 = this.position.X;
6739 float y6 = this.position.Y;
6740 float x7 = this.velocity.X;
6741 float y7 = this.velocity.Y;
6742 float num3 = this.scale;
6743 int height2 = this.height;
6744 float x8 = this.position.X;
6745 float y8 = this.position.Y;
6746 float x9 = this.velocity.X;
6747 float y9 = this.velocity.Y;
6748 float num4 = this.scale;
6749 float x10 = this.position.X;
6750 float y10 = this.position.Y;
6751 float x11 = this.netOffset.X;
6752 float y11 = this.netOffset.Y;
6754 this.position.Y = (float)height2;
6755 }
6756
6757 // Token: 0x06002232 RID: 8754 RVA: 0x000FC984 File Offset: 0x000FAB84
6758 public void Teleport(Vector2 newPos, int Style = 0, int extraInfo = 0)
6759 {
6760 int num = this.lastPortalColorIndex;
6761 }
6762
6763 // Token: 0x06002233 RID: 8755 RVA: 0x000FC9F4 File Offset: 0x000FABF4
6764 public void Transform(int newType)
6765 {
6766 if (!true)
6767 {
6768 }
6770 int num = this.extraValue;
6771 float num2 = this.value;
6772 if (num == 0)
6773 {
6774 }
6775 int[] array = this.buffType;
6776 int[] array2 = this.buffTime;
6777 }
6778
6779 // Token: 0x06002234 RID: 8756 RVA: 0x000FCBB0 File Offset: 0x000FADB0
6780 public int checkArmorPenetration(int armorPenetration, float armorPenetrationPercent)
6781 {
6782 /*
6783An exception occurred when decompiling this method (06002234)
6784
6785ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::checkArmorPenetration(System.Int32,System.Single)
6786
6787 ---> System.Exception: Basic block has to end with unconditional control flow.
6788{
6789 Block_0:
6790 stloc:int32(var_0_06, ldfld:int32(NPC::defense, ldloc:NPC(this)))
6791 stloc:bool(var_1_0D, ldfld:bool(NPC::ichor, ldloc:NPC(this)))
6792 stloc:bool(var_2_14, ldfld:bool(NPC::betsysCurse, ldloc:NPC(this)))
6793}
6794
6795 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
6796 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
6797 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
6798 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
6799 --- End of inner exception stack trace ---
6800 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
6801 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
6802*/;
6803 }
6804
6805 // Token: 0x06002235 RID: 8757 RVA: 0x000FCBD4 File Offset: 0x000FADD4
6806 public double StrikeNPCNoInteraction(int Damage, float knockBack, int hitDirection, bool crit = false, bool noEffect = false, bool fromNet = false)
6807 {
6808 /*
6809An exception occurred when decompiling this method (06002235)
6810
6811ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.NPC::StrikeNPCNoInteraction(System.Int32,System.Single,System.Int32,System.Boolean,System.Boolean,System.Boolean)
6812
6813 ---> System.Exception: Basic block has to end with unconditional control flow.
6814{
6815 IL_0005:
6816 stloc:bool(var_2_0C, callgetter:bool(Main::get_LogicClient))
6817 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
6818}
6819
6820 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
6821 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6822 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6823 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6824 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
6825 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
6826 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
6827 --- End of inner exception stack trace ---
6828 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
6829 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
6830*/;
6831 }
6832
6833 // Token: 0x06002236 RID: 8758 RVA: 0x000FCBF0 File Offset: 0x000FADF0
6834 public double StrikeNPC(int Damage, float knockBack, int hitDirection, bool crit = false, bool noEffect = false, bool fromNet = false)
6835 {
6836 /*
6837An exception occurred when decompiling this method (06002236)
6838
6839ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Double Terraria.NPC::StrikeNPC(System.Int32,System.Single,System.Int32,System.Boolean,System.Boolean,System.Boolean)
6840
6841 ---> System.Exception: Basic block has to end with unconditional control flow.
6842{
6843 IL_0442:
6844 brtrue(IL_0000, ldloc:int32[exp:bool](var_99))
6845}
6846
6847 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
6848 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6849 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6850 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6851 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6852 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
6853 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
6854 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
6855 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
6856 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
6857 --- End of inner exception stack trace ---
6858 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
6859 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
6860*/;
6861 }
6862
6863 // Token: 0x06002237 RID: 8759 RVA: 0x000FD048 File Offset: 0x000FB248
6864 public static void LadyBugKilled(Vector2 Position, bool GoldLadyBug = false)
6865 {
6866 if (!true)
6867 {
6868 }
6869 int myPlayer = Main.myPlayer;
6870 Vector2 vector;
6871 float num = vector.Length();
6872 float num2 = vector.Length();
6873 float num3 = vector.Length();
6874 long num4 = 32752L;
6875 if (num4 == 0L)
6876 {
6877 }
6878 if (num4 == 0L)
6879 {
6880 }
6881 }
6882
6883 // Token: 0x06002238 RID: 8760 RVA: 0x000FD08C File Offset: 0x000FB28C
6884 private void LadyBugLuck(int plr, bool GoldLadyBug = false)
6885 {
6886 short num = this.releaseOwner;
6887 if (num == 0)
6888 {
6889 }
6890 Vector2 center = base.Center;
6891 if (num == 0)
6892 {
6893 }
6894 if (num == 0)
6895 {
6896 }
6897 Vector2 vector;
6898 float num2 = vector.Length();
6899 float num3 = vector.Length();
6900 float num4 = vector.Length();
6901 if (49289 == 0)
6902 {
6903 }
6904 long num5 = 32752L;
6905 if (num5 == 0L)
6906 {
6907 }
6908 if (num5 == 0L)
6909 {
6910 }
6911 }
6912
6913 // Token: 0x06002239 RID: 8761 RVA: 0x000FD0EC File Offset: 0x000FB2EC
6914 private void NPCLuck()
6915 {
6916 if (!true)
6917 {
6918 }
6919 int myPlayer = Main.myPlayer;
6920 int num = this.type;
6921 if (num == 0)
6922 {
6923 }
6924 if (num == 0)
6925 {
6926 return;
6927 }
6928 }
6929
6930 // Token: 0x0600223A RID: 8762 RVA: 0x000FD128 File Offset: 0x000FB328
6931 public void HitEffect(int hitDirection = 0, double dmg = 10.0)
6932 {
6933 if (!this.active)
6934 {
6935 return;
6936 }
6937 if (this.townNPC)
6938 {
6939 int num = this.life;
6940 bool flag = this.UsesPartyHat();
6942 int num2 = this.type;
6943 float x = this.position.X;
6944 float x2 = this.velocity.X;
6946 return;
6947 }
6948 if (this.daybreak)
6949 {
6950 int num3 = this.life;
6951 Rectangle hitbox = base.Hitbox;
6952 if (20 != 0)
6953 {
6954 Vector2 vector = hitbox.TopLeft();
6955 int width = this.width;
6956 bool wet = this.wet;
6957 return;
6958 }
6959 bool logicHost = Main.LogicHost;
6960 int num4;
6961 if (num4 == 0)
6962 {
6963 }
6964 if (num4 == 0 || num4 != 0 || num4 != 0 || num4 != 0 || num4 == 0)
6965 {
6966 }
6967 }
6968 int num5 = this.type;
6969 int num6 = this.life;
6970 Vector2 bottom = base.Bottom;
6971 if (!true)
6972 {
6973 }
6974 float num7 = this.rotation;
6975 Gore gore;
6976 float y = gore.velocity.Y;
6977 float x3 = gore.velocity.X;
6978 float num8;
6981 Vector2 bottom2 = base.Bottom;
6982 if (!true)
6983 {
6984 }
6985 float num9 = this.rotation;
6986 Gore gore2;
6987 float y2 = gore2.velocity.Y;
6988 float x4 = gore2.velocity.X;
6991 Vector2 bottom3 = base.Bottom;
6992 Vector2 velocity = this.velocity;
6993 int num10 = 680;
6994 this.Transform(num10);
6995 int num11 = 1;
6998 this.netUpdate = num11 != 0;
6999 if (num11 == 0)
7000 {
7001 }
7002 bool netHost = Main.NetHost;
7003 int num12 = this.life;
7004 float[] array = this.ai;
7005 Vector2 bottom4 = base.Bottom;
7006 if (!true)
7007 {
7008 }
7009 float num13 = this.rotation;
7010 Gore gore3;
7011 float y3 = gore3.velocity.Y;
7012 float x5 = gore3.velocity.X;
7015 Vector2 bottom5 = base.Bottom;
7016 if (!true)
7017 {
7018 }
7019 float num14 = this.rotation;
7020 Gore gore4;
7021 float y4 = gore4.velocity.Y;
7022 float x6 = gore4.velocity.X;
7026 if (npc != null)
7027 {
7028 float[] array2 = npc.ai;
7029 float y5 = npc.position.Y;
7030 int num15 = 1;
7031 npc.netUpdate = num15 != 0;
7033 }
7034 int num16 = this.life;
7035 int num17 = this.lifeMax;
7036 int num18;
7037 if (num18 == 0)
7038 {
7039 int num19 = 255;
7040 float num20;
7042 float x7 = this.position.X;
7043 float y6 = this.position.Y;
7044 int width2 = this.width;
7045 bool wet2 = this.wet;
7046 Vector2 center = base.Center;
7047 int width3 = this.width;
7048 bool wet3 = this.wet;
7049 Vector2 center2 = base.Center;
7050 return;
7051 }
7052 int num21 = this.lifeMax;
7053 }
7054
7055 // Token: 0x0600223B RID: 8763 RVA: 0x0010F8F4 File Offset: 0x0010DAF4
7056 public static int CountNPCS(int Type)
7057 {
7058 /*
7059An exception occurred when decompiling this method (0600223B)
7060
7061ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::CountNPCS(System.Int32)
7062
7063 ---> System.Exception: Basic block has to end with unconditional control flow.
7064{
7065 Block_0:
7066 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
7067}
7068
7069 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
7070 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7071 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7072 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7073 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7074 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7075 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7076 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
7077 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
7078 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
7079 --- End of inner exception stack trace ---
7080 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
7081 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
7082*/;
7083 }
7084
7085 // Token: 0x0600223C RID: 8764 RVA: 0x0010F910 File Offset: 0x0010DB10
7086 public static bool AnyHelpfulFairies()
7087 {
7088 int num = 1;
7089 if (num == 0)
7090 {
7091 }
7092 if (num == 0)
7093 {
7094 }
7095 if (num == 0)
7096 {
7097 return;
7098 }
7099 }
7100
7101 // Token: 0x0600223D RID: 8765 RVA: 0x0010F930 File Offset: 0x0010DB30
7102 public static bool AnyNPCs(int Type)
7103 {
7104 int num = 1;
7105 if (num == 0)
7106 {
7107 }
7108 if (num == 0 || num == 0)
7109 {
7110 return;
7111 }
7112 }
7113
7114 // Token: 0x0600223E RID: 8766 RVA: 0x0010F950 File Offset: 0x0010DB50
7115 public static int FindFirstNPC(int Type)
7116 {
7117 /*
7118An exception occurred when decompiling this method (0600223E)
7119
7120ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::FindFirstNPC(System.Int32)
7121
7122 ---> System.Exception: Basic block has to end with unconditional control flow.
7123{
7124 Block_0:
7125 brtrue(IL_0000, ldloc:int32[exp:bool](var_0_01))
7126}
7127
7128 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
7129 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7130 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7131 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7132 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7133 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7134 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7135 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
7136 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
7137 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
7138 --- End of inner exception stack trace ---
7139 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
7140 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
7141*/;
7142 }
7143
7144 // Token: 0x0600223F RID: 8767 RVA: 0x0010F96C File Offset: 0x0010DB6C
7145 public static bool NearSpikeBall(int x, int y)
7146 {
7147 if (!true)
7148 {
7149 return;
7150 }
7151 }
7152
7153 // Token: 0x06002240 RID: 8768 RVA: 0x0010F99C File Offset: 0x0010DB9C
7154 public int FindBuffIndex(int type)
7155 {
7156 /*
7157An exception occurred when decompiling this method (06002240)
7158
7159ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 Terraria.NPC::FindBuffIndex(System.Int32)
7160
7161 ---> System.Exception: Basic block has to end with unconditional control flow.
7162{
7163 IL_000F:
7164 stloc:int32[](var_2_15, ldfld:int32[](NPC::buffTime, ldloc:NPC(this)))
7165 stloc:int32[](var_3_1C, ldfld:int32[](NPC::buffType, ldloc:NPC(this)))
7166}
7167
7168 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
7169 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
7170 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
7171 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
7172 --- End of inner exception stack trace ---
7173 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
7174 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
7175*/;
7176 }
7177
7178 // Token: 0x06002241 RID: 8769 RVA: 0x0010F9C8 File Offset: 0x0010DBC8
7179 public void AddBuff(int type, int time, bool quiet = false)
7180 {
7181 bool[] array = this.buffImmune;
7182 if (array != null)
7183 {
7184 return;
7185 }
7186 if (array == null)
7187 {
7188 }
7190 int whoAmI = this.whoAmI;
7191 if (array == null)
7192 {
7193 }
7194 }
7195
7196 // Token: 0x06002242 RID: 8770 RVA: 0x0010FA6C File Offset: 0x0010DC6C
7198 {
7199 int num = 1;
7200 if (num == 0)
7201 {
7202 }
7203 if (num != 0)
7204 {
7205 int num2 = this.FindBuffIndex(buffTypeToRemove);
7206 this.DelBuff(num2);
7207 if (num == 0)
7208 {
7209 }
7211 int whoAmI = this.whoAmI;
7212 }
7213 }
7214
7215 // Token: 0x06002243 RID: 8771 RVA: 0x0010FAAC File Offset: 0x0010DCAC
7216 public void DelBuff(int buffIndex)
7217 {
7218 int[] array = this.buffTime;
7219 if (this.buffType == null)
7220 {
7221 }
7222 int[] array2;
7223 if (this.buffTime != null)
7224 {
7225 array2 = this.buffType;
7226 if (array2 != null)
7227 {
7228 return;
7229 }
7230 }
7231 if (array2 == null)
7232 {
7233 }
7234 int[] array3 = this.buffTime;
7235 int[] array4 = this.buffType;
7236 }
7237
7238 // Token: 0x06002244 RID: 8772 RVA: 0x0010FB10 File Offset: 0x0010DD10
7240 {
7241 /*
7242An exception occurred when decompiling this method (06002244)
7243
7244ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Rectangle Terraria.NPC::getRect()
7245
7246 ---> System.Exception: Basic block has to end with unconditional control flow.
7247{
7248 Block_0:
7249 stloc:float32(var_0_0B, ldfld:float32(Vector2::X, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
7250 stloc:float32(var_1_17, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
7251 stloc:int32(var_2_1E, ldfld:int32(Entity::width, ldloc:NPC[exp:Entity](this)))
7252 stloc:bool(var_3_25, ldfld:bool(Entity::wet, ldloc:NPC[exp:Entity](this)))
7253}
7254
7255 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
7256 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
7257 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
7258 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
7259 --- End of inner exception stack trace ---
7260 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
7261 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
7262*/;
7263 }
7264
7265 // Token: 0x06002245 RID: 8773 RVA: 0x0010FB44 File Offset: 0x0010DD44
7266 public bool CanBeChasedBy([Optional] object attacker, bool ignoreDontTakeDamage = false)
7267 {
7268 while (this.active && this.chaseable)
7269 {
7270 int num = this.lifeMax;
7271 if (!this.dontTakeDamage || this.friendly)
7272 {
7273 return;
7274 }
7275 }
7276 }
7277
7278 // Token: 0x06002246 RID: 8774 RVA: 0x0010FB7C File Offset: 0x0010DD7C
7280 {
7281 /*
7282An exception occurred when decompiling this method (06002246)
7283
7284ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::HittableForOnHitRewards()
7285
7286 ---> System.Exception: Basic block has to end with unconditional control flow.
7287{
7288 IL_0016:
7289 stloc:int32(var_2_1C, ldfld:int32(NPC::type, ldloc:NPC(this)))
7290}
7291
7292 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
7293 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
7294 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
7295 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
7296 --- End of inner exception stack trace ---
7297 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
7298 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
7299*/;
7300 }
7301
7302 // Token: 0x170004F6 RID: 1270
7303 // (get) Token: 0x06002247 RID: 8775 RVA: 0x0010FBA8 File Offset: 0x0010DDA8
7305 {
7306 get
7307 {
7308 for (;;)
7309 {
7310 int num = this.lifeMax;
7311 if (this.damage != 0)
7312 {
7313 return;
7314 }
7315 }
7316 }
7317 }
7318
7319 // Token: 0x06002248 RID: 8776 RVA: 0x0010FBC8 File Offset: 0x0010DDC8
7320 public void moneyPing(Vector2 pos)
7321 {
7322 int num = this.extraValue;
7323 }
7324
7325 // Token: 0x06002249 RID: 8777 RVA: 0x0010FBFC File Offset: 0x0010DDFC
7326 public void IdleSounds()
7327 {
7328 float num = this.shimmerTransparency;
7329 }
7330
7331 // Token: 0x0600224A RID: 8778 RVA: 0x001101F8 File Offset: 0x0010E3F8
7332 public void UpdateAltTexture()
7333 {
7334 if (this.townNPC)
7335 {
7336 int num = this.altTexture;
7338 return;
7339 }
7340 }
7341
7342 // Token: 0x0600224B RID: 8779 RVA: 0x00110254 File Offset: 0x0010E454
7344 {
7345 int num = 1;
7346 if (oldAltTexture == 0)
7347 {
7348 float x = this.position.X;
7349 float y = this.position.Y;
7350 int width = this.width;
7351 bool wet = this.wet;
7352 if (num == 0)
7353 {
7354 }
7355 }
7356 if (currentAltTexture == 0)
7357 {
7358 float x2 = this.position.X;
7359 float y2 = this.position.Y;
7360 }
7361 int num2 = this.type;
7362 if (num2 != 0)
7363 {
7364 int num3 = 1;
7365 int num4 = 16384;
7366 float x3 = this.position.X;
7367 float y3 = this.position.Y;
7368 int width2 = this.width;
7369 bool wet2 = this.wet;
7370 if (num2 == 0)
7371 {
7372 }
7373 Dust dust;
7374 dust.noGravity = num3 != 0;
7375 dust.scale = (float)num4;
7376 }
7377 }
7378
7379 // Token: 0x0600224C RID: 8780 RVA: 0x0011030C File Offset: 0x0010E50C
7380 public static void ResetNetOffsets()
7381 {
7382 int num = 1;
7383 if (num == 0)
7384 {
7385 }
7386 if (num == 0)
7387 {
7388 }
7389 if (num == 0)
7390 {
7391 }
7392 }
7393
7394 // Token: 0x0600224D RID: 8781 RVA: 0x00110330 File Offset: 0x0010E530
7395 public void UpdateNPC(int i)
7396 {
7397 bool active = this.active;
7398 this.whoAmI = i;
7399 if (active)
7400 {
7401 if (!active)
7402 {
7403 }
7404 if (!active)
7405 {
7406 }
7407 bool netHost = Main.NetHost;
7408 float x = this.netOffset.X;
7409 float y = this.netOffset.Y;
7410 if (!active)
7411 {
7412 }
7413 this.UpdateAltTexture();
7414 int num = this.type;
7415 if (num == 0)
7416 {
7417 }
7418 if (num == 0)
7419 {
7420 }
7422 this.UpdateNPC_CastLights();
7426 int num2 = this.aiStyle;
7427 float y2 = this.position.Y;
7428 if (num2 == 0)
7429 {
7430 }
7431 int height = this.height;
7432 int num3 = 50208;
7433 if (num3 == 0)
7434 {
7435 }
7436 bool logicHost = Main.LogicHost;
7437 if (num3 == 0)
7438 {
7439 }
7440 if (num3 == 0)
7441 {
7442 if (num3 == 0)
7443 {
7444 }
7445 bool netHost2 = Main.NetHost;
7446 int whoAmI = this.whoAmI;
7447 }
7449 int width = this.width;
7450 bool wet = this.wet;
7451 float x2 = this.position.X;
7452 float y3 = this.position.Y;
7453 int num4 = 32768;
7454 int num5 = 1;
7456 this.UpdateNPC_BuffSetFlags(num5 != 0);
7462 double num6;
7463 this.UpdateNPC_UpdateGravity((float)num6);
7464 int num7 = this.soundDelay;
7466 int num8 = this.life;
7467 int num9 = this.target;
7468 int direction = this.direction;
7469 int num10 = this.directionY;
7473 float x3 = this.velocity.X;
7474 if (num9 == 0)
7475 {
7476 }
7477 float num11 = this.gfxOffY;
7478 float num12 = this.stepSpeed;
7480 return;
7481 }
7482 }
7483
7484 // Token: 0x0600224E RID: 8782 RVA: 0x00110A64 File Offset: 0x0010EC64
7486 {
7487 int num = this.type;
7488 if (this.type != 0)
7489 {
7490 short num2 = this.releaseOwner;
7491 long num4;
7492 if (!this.SpawnedFromStatue)
7493 {
7495 bool flag = this.friendly;
7497 return;
7498 }
7499 bool flag2 = this.friendly;
7500 num4 = 0L;
7501 int num5 = 1;
7502 this.netUpdate = num5 != 0;
7503 }
7504 }
7505
7506 // Token: 0x0600224F RID: 8783 RVA: 0x00110ABC File Offset: 0x0010ECBC
7508 {
7509 if (!true)
7510 {
7511 }
7513 if (this.needsUniqueInfoUpdate)
7514 {
7515 int num = this.type;
7516 if (this.townNPC)
7517 {
7518 }
7519 }
7520 }
7521
7522 // Token: 0x06002250 RID: 8784 RVA: 0x00110AEC File Offset: 0x0010ECEC
7523 private void UpdateNetworkCode(int i)
7524 {
7525 int num;
7526 if (!this.active)
7527 {
7528 num = 1;
7529 this.netUpdate = num != 0;
7530 }
7531 if (num == 0)
7532 {
7533 }
7534 bool netHost = Main.NetHost;
7535 if (num == 0)
7536 {
7537 }
7538 if (!this.townNPC)
7539 {
7540 int num2;
7541 if (num2 == 0)
7542 {
7543 }
7544 while (num2 == 0)
7545 {
7546 }
7547 float x = this.velocity.X;
7548 if (num2 == 0)
7549 {
7550 }
7551 float y = this.velocity.Y;
7552 if (this.netStream == 0)
7553 {
7554 }
7555 Vector2 center = base.Center;
7556 Vector2 center2 = base.Center;
7557 int[] array = this.streamPlayer;
7558 return;
7559 }
7560 if (!this.townNPC)
7561 {
7562 int num3 = this.aiStyle;
7563 }
7564 if (this.netUpdate2)
7565 {
7566 int num4 = 1;
7567 this.netUpdate = num4 != 0;
7568 }
7569 if (!this.active)
7570 {
7571 }
7572 if (!this.netUpdate)
7573 {
7574 int num5 = this.netSpam;
7576 if (this.active && this.townNPC)
7577 {
7578 int num6 = NPC.TypeToDefaultHeadIndex(this.type);
7579 bool flag = this.homeless;
7580 bool flag2 = this.oldHomeless;
7581 int num7 = this.homeTileX;
7582 int num8 = this.oldHomeTileX;
7583 int num9 = this.homeTileY;
7584 int num10 = this.oldHomeTileY;
7585 if (!flag)
7586 {
7587 }
7588 if (num7 == 0)
7589 {
7590 }
7591 if (num7 == 0)
7592 {
7593 }
7594 bool flag3 = this.homeless;
7595 int num11 = this.homeTileX;
7596 int num12 = this.homeTileY;
7600 }
7601 return;
7602 }
7603 if (this.boss)
7604 {
7605 float x2 = this.oldPosition.X;
7606 float y2 = this.oldPosition.Y;
7607 float x3 = this.position.X;
7608 float y3 = this.position.Y;
7609 int num2 = this.netSpam;
7610 return;
7611 }
7612 int num13 = this.netSpam;
7613 }
7614
7615 // Token: 0x06002251 RID: 8785 RVA: 0x000021DB File Offset: 0x000003DB
7617 {
7618 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7619 }
7620
7621 // Token: 0x06002252 RID: 8786 RVA: 0x00110CDC File Offset: 0x0010EEDC
7623 {
7624 /*
7625An exception occurred when decompiling this method (06002252)
7626
7627ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.DataStructures.IEntitySource Terraria.NPC::GetSpawnSource_NPCRelease(System.Int32)
7628
7629 ---> System.Exception: Basic block has to end with unconditional control flow.
7630{
7631 IL_0000:
7632 brtrue(IL_0000, ldc.i4:bool(1))
7633}
7634
7635 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
7636 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7637 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7638 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7639 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
7640 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
7641 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
7642 --- End of inner exception stack trace ---
7643 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
7644 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
7645*/;
7646 }
7647
7648 // Token: 0x06002253 RID: 8787 RVA: 0x00110CEC File Offset: 0x0010EEEC
7650 {
7651 /*
7652An exception occurred when decompiling this method (06002253)
7653
7654ICSharpCode.Decompiler.DecompilerException: Error decompiling Terraria.DataStructures.IEntitySource Terraria.NPC::GetSpawnSource_NPCCatch(System.Int32)
7655
7656 ---> System.Exception: Basic block has to end with unconditional control flow.
7657{
7658 IL_0000:
7659 brtrue(IL_0000, ldc.i4:bool(1))
7660}
7661
7662 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
7663 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7664 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
7665 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
7666 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
7667 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
7668 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
7669 --- End of inner exception stack trace ---
7670 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
7671 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
7672*/;
7673 }
7674
7675 // Token: 0x06002254 RID: 8788 RVA: 0x000021DB File Offset: 0x000003DB
7677 {
7678 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7679 }
7680
7681 // Token: 0x06002255 RID: 8789 RVA: 0x000021DB File Offset: 0x000003DB
7683 {
7684 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7685 }
7686
7687 // Token: 0x06002256 RID: 8790 RVA: 0x000021DB File Offset: 0x000003DB
7689 {
7690 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7691 }
7692
7693 // Token: 0x06002257 RID: 8791 RVA: 0x000021DB File Offset: 0x000003DB
7695 {
7696 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7697 }
7698
7699 // Token: 0x06002258 RID: 8792 RVA: 0x000021DB File Offset: 0x000003DB
7701 {
7702 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7703 }
7704
7705 // Token: 0x06002259 RID: 8793 RVA: 0x000021DB File Offset: 0x000003DB
7707 {
7708 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7709 }
7710
7711 // Token: 0x0600225A RID: 8794 RVA: 0x000021DB File Offset: 0x000003DB
7713 {
7714 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7715 }
7716
7717 // Token: 0x0600225B RID: 8795 RVA: 0x00110CFC File Offset: 0x0010EEFC
7719 {
7720 if (!true)
7721 {
7722 }
7723 }
7724
7725 // Token: 0x0600225C RID: 8796 RVA: 0x0011101C File Offset: 0x0010F21C
7726 private void UpdateNPC_UpdateGravity([Out] float maxFallSpeed)
7727 {
7728 if (16672 == 0)
7729 {
7730 }
7731 if (this.type == 0)
7732 {
7733 }
7734 float y = this.velocity.Y;
7735 int num = 16448;
7736 this.velocity.Y = (float)num;
7737 }
7738
7739 // Token: 0x0600225D RID: 8797 RVA: 0x000021DB File Offset: 0x000003DB
7741 {
7742 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
7743 }
7744
7745 // Token: 0x0600225E RID: 8798 RVA: 0x001110F8 File Offset: 0x0010F2F8
7746 public static Color buffColor(Color newColor, float R, float G, float B, float A)
7747 {
7748 Color color;
7749 return color;
7750 }
7751
7752 // Token: 0x0600225F RID: 8799 RVA: 0x00111108 File Offset: 0x0010F308
7754 {
7755 /*
7756An exception occurred when decompiling this method (0600225F)
7757
7758ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::CanApplyHunterPotionEffects()
7759
7760 ---> System.Exception: Basic block has to end with unconditional control flow.
7761{
7762 IL_0003:
7763 stloc:int32(var_1_0A, callgetter:int32(Main::get_myPlayer))
7764}
7765
7766 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
7767 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
7768 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
7769 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
7770 --- End of inner exception stack trace ---
7771 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
7772 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
7773*/;
7774 }
7775
7776 // Token: 0x06002260 RID: 8800 RVA: 0x00111120 File Offset: 0x0010F320
7778 {
7779 if (this.canDisplayBuffs)
7780 {
7781 bool flag = this.poisoned;
7782 if (!flag || !flag)
7783 {
7784 }
7785 bool flag2 = this.venom;
7786 if (!flag2 || !flag2)
7787 {
7788 }
7789 if (this.midas)
7790 {
7791 }
7792 if (this.betsysCurse)
7793 {
7794 }
7795 if (this.oiled)
7796 {
7797 }
7798 if (this.stinky)
7799 {
7800 }
7801 bool flag3 = this.drippingSlime;
7802 if (!flag3 || !flag3)
7803 {
7804 }
7805 bool flag4 = this.drippingSparkleSlime;
7806 if (!flag4 || !flag4)
7807 {
7808 }
7809 if (this.ichor)
7810 {
7811 }
7812 int num = this.lifeMax;
7813 if (this.friendly)
7814 {
7815 return 50;
7816 }
7817 }
7818 return 50;
7819 }
7820
7821 // Token: 0x06002261 RID: 8801 RVA: 0x001111C0 File Offset: 0x0010F3C0
7823 {
7824 bool flag = this.canDisplayBuffs;
7825 if (flag)
7826 {
7827 float x = this.position.X;
7828 float y = this.position.Y;
7829 float x2 = this.netOffset.X;
7830 float y2 = this.netOffset.Y;
7831 if (!flag)
7832 {
7833 }
7834 bool flag2 = this.markedByScytheWhip;
7835 if (flag2)
7836 {
7837 if (!flag2)
7838 {
7839 }
7840 int num;
7841 if (num == 0)
7842 {
7843 if (!flag2)
7844 {
7845 }
7846 Rectangle hitbox = base.Hitbox;
7847 }
7848 }
7849 bool flag3 = this.poisoned;
7850 if (flag3)
7851 {
7852 if (!flag3)
7853 {
7854 }
7855 int num2;
7856 if (num2 == 0)
7857 {
7858 float x3 = this.position.X;
7859 float y3 = this.position.Y;
7860 int width = this.width;
7861 bool wet = this.wet;
7862 if (!flag3)
7863 {
7864 }
7865 int num3 = 13107;
7866 int num4 = 1;
7867 Dust dust;
7868 dust.noGravity = num4 != 0;
7869 dust.fadeIn = (float)num3;
7870 }
7871 }
7872 bool flag4 = this.venom;
7873 if (flag4)
7874 {
7875 if (!flag4)
7876 {
7877 }
7878 int num5;
7879 if (num5 == 0)
7880 {
7881 float x4 = this.position.X;
7882 float y4 = this.position.Y;
7883 int width2 = this.width;
7884 bool wet2 = this.wet;
7885 if (!flag4)
7886 {
7887 }
7888 int num6 = 1;
7889 int num7 = 16320;
7890 Dust dust2;
7891 dust2.noGravity = num6 != 0;
7892 dust2.fadeIn = (float)num7;
7893 }
7894 }
7895 bool flag5 = this.shadowFlame;
7896 if (flag5)
7897 {
7898 if (!flag5)
7899 {
7900 }
7901 float x5 = this.position.X;
7902 float y5 = this.position.Y;
7903 int width3 = this.width;
7904 bool wet3 = this.wet;
7905 float x6 = this.velocity.X;
7906 float y6 = this.velocity.Y;
7907 if (!flag5)
7908 {
7909 }
7910 int num8 = 1;
7911 Dust dust3;
7912 dust3.noGravity = num8 != 0;
7913 float x7 = dust3.velocity.X;
7914 float y7 = dust3.velocity.Y;
7915 if (num8 == 0)
7916 {
7917 }
7920 if (num8 == 0)
7921 {
7922 }
7923 int num9;
7924 if (num9 == 0)
7925 {
7926 float num10 = dust3.scale;
7928 }
7929 }
7930 bool flag6 = this.onFire;
7931 if (flag6)
7932 {
7933 if (!flag6)
7934 {
7935 }
7936 float x8 = this.position.X;
7937 float y8 = this.position.Y;
7938 int width4 = this.width;
7939 bool wet4 = this.wet;
7940 float x9 = this.velocity.X;
7941 float y9 = this.velocity.Y;
7942 if (!flag6)
7943 {
7944 }
7945 int num11 = 1;
7946 Dust dust4;
7947 dust4.noGravity = num11 != 0;
7948 float x10 = dust4.velocity.X;
7949 float y10 = dust4.velocity.Y;
7950 if (num11 == 0)
7951 {
7952 }
7955 int num12;
7956 if (num12 == 0)
7957 {
7958 float num13 = dust4.scale;
7960 }
7961 float x11 = this.position.X;
7962 float y11 = this.position.Y;
7963 }
7964 bool flag7 = this.onFire3;
7965 if (flag7)
7966 {
7967 if (!flag7)
7968 {
7969 }
7970 float x12 = this.position.X;
7971 float y12 = this.position.Y;
7972 int width5 = this.width;
7973 bool wet5 = this.wet;
7974 float x13 = this.velocity.X;
7975 float y13 = this.velocity.Y;
7976 if (!flag7)
7977 {
7978 }
7979 int num14 = 1;
7980 Dust dust5;
7981 dust5.noGravity = num14 != 0;
7982 float x14 = dust5.velocity.X;
7983 float y14 = dust5.velocity.Y;
7984 if (num14 == 0)
7985 {
7986 }
7989 int num15;
7990 if (num15 == 0)
7991 {
7992 float num16 = dust5.scale;
7994 }
7995 float x15 = this.position.X;
7996 float y15 = this.position.Y;
7997 }
7998 bool flag8 = this.daybreak;
7999 if (flag8)
8000 {
8001 if (!flag8)
8002 {
8003 }
8004 float x16 = this.position.X;
8005 float y16 = this.position.Y;
8006 int width6 = this.width;
8007 bool wet6 = this.wet;
8008 float x17 = this.velocity.X;
8009 float y17 = this.velocity.Y;
8010 if (!flag8)
8011 {
8012 }
8013 int num17 = 1;
8014 Dust dust6;
8015 dust6.noGravity = num17 != 0;
8016 float x18 = dust6.velocity.X;
8017 float y18 = dust6.velocity.Y;
8018 if (num17 == 0)
8019 {
8020 }
8023 if (num17 == 0)
8024 {
8025 }
8026 int num18;
8027 if (num18 == 0)
8028 {
8029 float num19 = dust6.scale;
8031 }
8032 float x19 = this.position.X;
8033 float y19 = this.position.Y;
8034 if (num17 == 0)
8035 {
8036 }
8037 }
8038 bool flag9 = this.betsysCurse;
8039 int num22;
8040 if (flag9)
8041 {
8042 if (!flag9)
8043 {
8044 }
8045 float x20 = this.position.X;
8046 float y20 = this.position.Y;
8047 int width7 = this.width;
8048 bool wet7 = this.wet;
8049 float x21 = this.velocity.X;
8050 float y21 = this.velocity.Y;
8051 if (!flag9)
8052 {
8053 }
8054 int num20 = 1;
8055 Dust dust7;
8056 dust7.noGravity = num20 != 0;
8057 float x22 = dust7.velocity.X;
8058 float y22 = dust7.velocity.Y;
8059 if (num20 == 0)
8060 {
8061 }
8062 int num21 = 26214;
8063 dust7.scale = (float)num21;
8066 float x23 = dust7.velocity.X;
8067 float y23 = dust7.velocity.Y;
8071 float x24 = this.position.X;
8072 float y24 = this.position.Y;
8073 num22 = 32640;
8074 }
8075 bool flag10 = this.oiled;
8076 if (flag10)
8077 {
8078 if (!flag10)
8079 {
8080 }
8081 int num23;
8082 if (num23 != 0)
8083 {
8084 float x25 = this.position.X;
8085 float y25 = this.position.Y;
8086 if (!flag10)
8087 {
8088 }
8089 int num24;
8090 if (num24 == 0)
8091 {
8092 int width8 = this.width;
8093 bool wet8 = this.wet;
8094 if (!flag10)
8095 {
8096 }
8097 if (num22 == 0)
8098 {
8099 }
8100 int num25;
8101 Dust dust8;
8102 int num26;
8103 if (num25 == 0)
8104 {
8105 num26 = dust8.alpha;
8107 }
8108 if (num26 == 0)
8109 {
8110 }
8111 int num27;
8112 if (num27 == 0)
8113 {
8114 int num28 = dust8.alpha;
8116 }
8117 int num29 = 1;
8118 dust8.noLight = num29 != 0;
8119 float x26 = dust8.velocity.X;
8120 float y26 = dust8.velocity.Y;
8121 if (num29 == 0)
8122 {
8123 }
8124 float x27 = this.velocity.X;
8125 float y27 = this.velocity.Y;
8126 }
8127 }
8128 }
8129 bool flag11 = this.dryadWard;
8130 if (flag11)
8131 {
8132 float x28 = this.velocity.X;
8133 if (!flag11)
8134 {
8135 }
8136 int num30;
8137 if (num30 == 0)
8138 {
8139 int height = this.height;
8140 float x29 = this.position.X;
8141 float y28 = this.position.Y;
8142 int width9 = this.width;
8143 float x30 = this.velocity.X;
8144 float y29 = this.velocity.Y;
8145 if (!flag11)
8146 {
8147 }
8148 int num31 = 1;
8149 Dust dust9;
8150 dust9.noGravity = num31 != 0;
8151 dust9.noLight = num31 != 0;
8152 float x31 = dust9.velocity.X;
8153 float y30 = dust9.velocity.Y;
8154 if (num31 == 0)
8155 {
8156 }
8158 dust9.velocity.Y = (float)height;
8159 }
8160 }
8161 bool flag12 = this.dryadBane;
8162 if (flag12)
8163 {
8164 if (!flag12)
8165 {
8166 }
8167 int num32;
8168 if (num32 == 0)
8169 {
8170 float x32 = this.position.X;
8171 float y31 = this.position.Y;
8172 int width10 = this.width;
8173 bool wet9 = this.wet;
8174 float x33 = this.velocity.X;
8175 float y32 = this.velocity.Y;
8176 if (!flag12)
8177 {
8178 }
8179 int num33 = 1;
8180 Dust dust10;
8181 dust10.noGravity = num33 != 0;
8182 float x34 = dust10.velocity.X;
8183 float y33 = dust10.velocity.Y;
8184 if (num33 == 0)
8185 {
8186 }
8187 int num34 = 1;
8190 dust10.noLight = num34 != 0;
8191 }
8192 }
8193 bool flag13 = this.loveStruck;
8194 if (flag13)
8195 {
8196 if (!flag13)
8197 {
8198 }
8199 int num35;
8200 if (num35 == 0)
8201 {
8202 if (!flag13)
8203 {
8204 }
8205 float x35 = this.position.X;
8206 float y34 = this.position.Y;
8207 int width11 = this.width;
8208 if (this.height == 0)
8209 {
8210 }
8211 }
8212 }
8213 bool flag14 = this.stinky;
8214 float x37;
8215 float y36;
8216 if (flag14)
8217 {
8218 if (!flag14)
8219 {
8220 }
8221 int num36;
8222 if (num36 == 0)
8223 {
8224 if (!flag14)
8225 {
8226 }
8227 float x36 = this.position.X;
8228 float y35 = this.position.Y;
8229 int width12 = this.width;
8230 bool wet10 = this.wet;
8231 Dust dust11;
8232 x37 = dust11.velocity.X;
8233 y36 = dust11.velocity.Y;
8236 }
8237 }
8238 bool flag15 = this.dripping;
8239 if (flag15)
8240 {
8241 if (!flag15)
8242 {
8243 }
8244 int num37;
8245 if (num37 != 0)
8246 {
8247 float x38 = this.position.X;
8248 float y37 = this.position.Y;
8249 if (!flag15)
8250 {
8251 }
8252 int width13 = this.width;
8253 bool wet11 = this.wet;
8254 int num38;
8255 if (num38 != 0)
8256 {
8257 int num39;
8258 Dust dust12;
8259 int num40;
8260 if (num39 == 0)
8261 {
8262 num40 = dust12.alpha;
8264 }
8265 if (num40 == 0)
8266 {
8267 }
8268 int num41;
8269 if (num41 == 0)
8270 {
8271 int num42 = dust12.alpha;
8273 }
8274 int num43 = 1;
8275 dust12.noLight = num43 != 0;
8276 dust12.noGravity = num43 != 0;
8277 float x39 = dust12.velocity.X;
8278 float y38 = dust12.velocity.Y;
8279 if (num43 == 0)
8280 {
8281 }
8282 return;
8283 }
8284 int num44;
8285 Dust dust13;
8286 int num45;
8287 if (num44 == 0)
8288 {
8289 num45 = dust13.alpha;
8291 }
8292 if (num45 == 0)
8293 {
8294 }
8295 int num46;
8296 if (num46 == 0)
8297 {
8298 int num47 = dust13.alpha;
8300 }
8301 int num48 = 1;
8302 dust13.noLight = num48 != 0;
8303 float x40 = dust13.velocity.X;
8304 float y39 = dust13.velocity.Y;
8305 if (num48 == 0)
8306 {
8307 }
8310 float x41 = this.velocity.X;
8311 float y40 = this.velocity.Y;
8314 }
8315 }
8316 bool flag16 = this.drippingSlime;
8317 if (flag16)
8318 {
8319 if (!flag16)
8320 {
8321 }
8322 int num49;
8323 if (num49 != 0)
8324 {
8325 float x42 = this.position.X;
8326 float y41 = this.position.Y;
8327 if (!flag16)
8328 {
8329 }
8330 int num50;
8331 if (num50 == 0)
8332 {
8333 int width14 = this.width;
8334 bool wet12 = this.wet;
8335 if (!flag16)
8336 {
8337 }
8338 int num51;
8339 Dust dust14;
8340 int num52;
8341 if (num51 == 0)
8342 {
8343 num52 = dust14.alpha;
8345 }
8346 if (num52 == 0)
8347 {
8348 }
8349 int num53;
8350 if (num53 == 0)
8351 {
8352 int num54 = dust14.alpha;
8354 }
8355 int num55 = 1;
8356 dust14.noLight = num55 != 0;
8357 float x43 = dust14.velocity.X;
8358 float y42 = dust14.velocity.Y;
8359 if (num55 == 0)
8360 {
8361 }
8364 float x44 = this.velocity.X;
8365 float y43 = this.velocity.Y;
8368 }
8369 }
8370 }
8371 bool flag17 = this.drippingSparkleSlime;
8372 if (flag17)
8373 {
8374 if (!flag17)
8375 {
8376 }
8377 int num56;
8378 if (num56 != 0)
8379 {
8380 float x45 = this.position.X;
8381 float y44 = this.position.Y;
8382 if (!flag17)
8383 {
8384 }
8385 int num57;
8386 if (num57 == 0)
8387 {
8388 int width15 = this.width;
8389 bool wet13 = this.wet;
8390 if (!flag17)
8391 {
8392 }
8393 int num58;
8394 Dust dust15;
8395 int num59;
8396 if (num58 == 0)
8397 {
8398 num59 = dust15.alpha;
8400 }
8401 if (num59 == 0)
8402 {
8403 }
8404 int num60;
8405 if (num60 == 0)
8406 {
8407 int num61 = dust15.alpha;
8409 }
8410 int num62 = 1;
8411 dust15.noLight = num62 != 0;
8412 float x46 = dust15.velocity.X;
8413 float y45 = dust15.velocity.Y;
8414 if (num62 == 0)
8415 {
8416 }
8419 float x47 = this.velocity.X;
8420 float y46 = this.velocity.Y;
8423 }
8424 }
8425 }
8426 bool flag18 = this.onFrostBurn;
8427 float num67;
8428 if (flag18)
8429 {
8430 if (!flag18)
8431 {
8432 }
8433 float x48 = this.position.X;
8434 float y47 = this.position.Y;
8435 int width16 = this.width;
8436 bool wet14 = this.wet;
8437 float x49 = this.velocity.X;
8438 float y48 = this.velocity.Y;
8439 if (!flag18)
8440 {
8441 }
8442 int num63 = 1;
8443 Dust dust16;
8444 dust16.noGravity = num63 != 0;
8445 float x50 = dust16.velocity.X;
8446 float y49 = dust16.velocity.Y;
8447 if (num63 == 0)
8448 {
8449 }
8452 int num64 = 4;
8453 int num65;
8454 if (num65 == 0)
8455 {
8456 float num66 = dust16.scale;
8458 }
8459 float x51 = this.position.X;
8460 float y50 = this.position.Y;
8461 Lighting.AddLight(1073741824, num64, num67, num67, num67);
8462 }
8463 bool flag19 = this.onFrostBurn2;
8464 if (flag19)
8465 {
8466 if (!flag19)
8467 {
8468 }
8469 float x52 = this.position.X;
8470 float y51 = this.position.Y;
8471 int width17 = this.width;
8472 bool wet15 = this.wet;
8473 float x53 = this.velocity.X;
8474 float y52 = this.velocity.Y;
8475 if (!flag19)
8476 {
8477 }
8478 int num68 = 1;
8479 Dust dust17;
8480 dust17.noGravity = num68 != 0;
8481 float x54 = dust17.velocity.X;
8482 float y53 = dust17.velocity.Y;
8483 if (num68 == 0)
8484 {
8485 }
8488 int num69 = 4;
8489 int num70;
8490 if (num70 == 0)
8491 {
8492 float num71 = dust17.scale;
8494 }
8495 float x55 = this.position.X;
8496 float y54 = this.position.Y;
8497 Lighting.AddLight(1073741824, num69, num67, num67, num67);
8498 }
8499 bool flag20 = this.onFire2;
8500 if (flag20)
8501 {
8502 if (!flag20)
8503 {
8504 }
8505 float x56 = this.position.X;
8506 float y55 = this.position.Y;
8507 int width18 = this.width;
8508 bool wet16 = this.wet;
8509 float x57 = this.velocity.X;
8510 float y56 = this.velocity.Y;
8511 if (!flag20)
8512 {
8513 }
8514 int num72 = 1;
8515 Dust dust18;
8516 dust18.noGravity = num72 != 0;
8517 float x58 = dust18.velocity.X;
8518 float y57 = dust18.velocity.Y;
8519 if (num72 == 0)
8520 {
8521 }
8524 int num73 = 4;
8525 int num74;
8526 if (num74 == 0)
8527 {
8528 float num75 = dust18.scale;
8530 }
8531 float x59 = this.position.X;
8532 float y58 = this.position.Y;
8533 Lighting.AddLight(1073741824, num73, num67, num67, num67);
8534 }
8535 bool flag21 = this.shimmering;
8536 float num76 = this.shimmerTransparency;
8537 float num78;
8538 if (flag21)
8539 {
8541 float num77 = this.shimmerTransparency;
8542 this.GetShimmered();
8543 num78 = this.shimmerTransparency;
8544 int num79 = 16256;
8546 return;
8547 }
8548 if (this.justHit)
8549 {
8551 }
8552 bool[] array = this.buffImmune;
8554 float x60 = this.position.X;
8555 float y59 = this.position.Y;
8556 float x61 = this.netOffset.X;
8557 float y60 = this.netOffset.Y;
8558 if (array == null)
8559 {
8560 }
8562 }
8563 }
8564
8565 // Token: 0x06002262 RID: 8802 RVA: 0x00112448 File Offset: 0x00110648
8566 private void GetShimmered()
8567 {
8569 long num;
8570 int num2;
8572 {
8573 if (!spawnedFromStatue)
8574 {
8575 }
8576 Vector2 center = base.Center;
8577 num = 0L;
8578 Vector2 center2 = base.Center;
8579 if (!spawnedFromStatue)
8580 {
8581 }
8582 num2 = 32640;
8583 return;
8584 }
8585 if (num2 == 0)
8586 {
8587 }
8588 if (num2 != 0)
8589 {
8590 this.Transform((int)num);
8591 if (!spawnedFromStatue)
8592 {
8593 }
8594 Vector2 center3 = base.Center;
8595 Vector2 center4 = base.Center;
8596 if (!spawnedFromStatue)
8597 {
8598 }
8599 return;
8600 }
8601 int num3;
8602 if (num3 == 0)
8603 {
8604 }
8605 if (num3 == 0)
8606 {
8607 }
8608 if (32640 == 0)
8609 {
8610 }
8611 if (16256 == 0)
8612 {
8613 }
8614 int myPlayer = Main.myPlayer;
8615 }
8616
8617 // Token: 0x06002263 RID: 8803 RVA: 0x0011252C File Offset: 0x0011072C
8619 {
8620 if (this.dontTakeDamage)
8621 {
8622 return;
8623 }
8624 bool flag = this.poisoned;
8625 int num = this.lifeRegenExpectedLossPerSecond;
8626 if (flag)
8627 {
8628 int num2 = this.lifeRegen;
8629 long num3 = 0L;
8630 this.lifeRegen = (int)num3;
8631 }
8632 bool flag2 = this.onFire;
8633 if (flag2)
8634 {
8635 int num4 = this.lifeRegen;
8636 long num5 = 0L;
8637 this.lifeRegen = (int)num5;
8638 }
8639 bool flag3 = this.onFire3;
8640 if (flag3)
8641 {
8642 int num6 = this.lifeRegen;
8643 long num7 = 0L;
8644 this.lifeRegen = (int)num7;
8645 }
8646 bool flag4 = this.onFrostBurn;
8647 if (flag4)
8648 {
8649 int num8 = this.lifeRegen;
8650 long num9 = 0L;
8651 this.lifeRegen = (int)num9;
8652 }
8653 bool flag5 = this.onFrostBurn2;
8654 if (flag5)
8655 {
8656 int num10 = this.lifeRegen;
8657 long num11 = 0L;
8658 this.lifeRegen = (int)num11;
8659 }
8660 if (this.onFire2)
8661 {
8662 int num12 = this.lifeRegen;
8663 long num13 = 0L;
8664 this.lifeRegen = (int)num13;
8665 }
8666 if (this.venom)
8667 {
8668 int num14 = this.lifeRegen;
8669 long num15 = 0L;
8670 this.lifeRegen = (int)num15;
8671 }
8672 bool flag6 = this.shadowFlame;
8673 if (flag6)
8674 {
8675 int num16 = this.lifeRegen;
8676 long num17 = 0L;
8677 this.lifeRegen = (int)num17;
8678 }
8679 int num20;
8680 if (this.oiled && (flag2 || flag3 || flag4 || flag5 || flag6))
8681 {
8682 int num18 = this.lifeRegen;
8683 long num19 = 0L;
8684 num20 = 10;
8685 this.lifeRegen = (int)num19;
8686 }
8687 if (this.javelined)
8688 {
8689 int num21 = this.lifeRegen;
8690 if (num21 == 0)
8691 {
8692 }
8693 if (num21 == 0)
8694 {
8695 }
8696 while (num20 == 0)
8697 {
8698 }
8699 int whoAmI = this.whoAmI;
8700 return;
8701 }
8702 if (this.tentacleSpiked)
8703 {
8704 int num22 = this.lifeRegen;
8705 if (num22 == 0)
8706 {
8707 }
8708 if (num22 == 0)
8709 {
8710 }
8711 while (num20 == 0)
8712 {
8713 }
8714 int whoAmI2 = this.whoAmI;
8715 return;
8716 }
8717 if (this.bloodButchered)
8718 {
8719 if (this.lifeRegen == 0)
8720 {
8721 }
8722 if (num20 != 0)
8723 {
8724 if (num20 == 0)
8725 {
8726 }
8727 if (num20 == 0)
8728 {
8729 }
8730 int whoAmI3 = this.whoAmI;
8731 }
8732 int num23 = this.lifeRegen;
8734 }
8735 if (this.daybreak)
8736 {
8737 if (this.lifeRegen == 0)
8738 {
8739 }
8740 if (num20 == 0)
8741 {
8742 }
8743 while (!flag4)
8744 {
8745 }
8746 if (!flag4)
8747 {
8748 }
8749 int whoAmI4 = this.whoAmI;
8750 return;
8751 }
8752 if (this.celled)
8753 {
8754 int num24 = this.lifeRegen;
8755 if (num24 == 0)
8756 {
8757 }
8758 if (num24 == 0)
8759 {
8760 }
8761 while (num20 == 0)
8762 {
8763 }
8764 int whoAmI5 = this.whoAmI;
8765 return;
8766 }
8767 if (!this.dryadBane)
8768 {
8769 if (this.soulDrain)
8770 {
8771 int num25 = this.realLife;
8772 int num26 = this.lifeRegen;
8773 long num27 = 0L;
8774 this.lifeRegen = (int)num27;
8775 }
8776 int num28 = this.lifeRegen;
8777 int num29 = this.lifeRegenCount;
8779 if (!this.immortal)
8780 {
8781 int num30 = this.life;
8782 int num31 = this.lifeMax;
8783 this.life = num31;
8784 }
8787 int num32 = this.realLife;
8788 int whoAmI6 = this.whoAmI;
8789 if (num32 != 0 || num32 == 0)
8790 {
8791 }
8792 float x = this.position.X;
8793 float y = this.position.Y;
8794 int width = this.width;
8795 bool wet = this.wet;
8796 if (num32 == 0)
8797 {
8798 }
8799 if (num32 == 0)
8800 {
8801 if (num32 == 0)
8802 {
8803 }
8804 bool logicHost = Main.LogicHost;
8805 bool netHost = Main.NetHost;
8806 }
8807 int num33 = this.lifeRegenCount;
8808 return;
8809 }
8810 int num34 = this.lifeRegen;
8811 if (num34 == 0)
8812 {
8813 }
8814 if (num34 != 0)
8815 {
8816 return;
8817 }
8818 }
8819
8820 // Token: 0x06002264 RID: 8804 RVA: 0x001129B0 File Offset: 0x00110BB0
8822 {
8823 int num = 1;
8824 if (num == 0)
8825 {
8826 }
8827 bool logicHost = Main.LogicHost;
8828 long num2 = 0L;
8829 if (num == 0)
8830 {
8831 }
8832 int[] array = this.buffType;
8833 int[] array2 = this.buffTime;
8834 this.DelBuff((int)num2);
8835 if (array2 == null)
8836 {
8837 }
8838 bool netHost = Main.NetHost;
8839 int whoAmI = this.whoAmI;
8840 if (array2 == null)
8841 {
8842 }
8843 }
8844
8845 // Token: 0x06002265 RID: 8805 RVA: 0x00112A08 File Offset: 0x00110C08
8847 {
8848 if (!true)
8849 {
8850 }
8851 bool logicHost = Main.LogicHost;
8852 if (!true)
8853 {
8854 }
8855 if (true)
8856 {
8857 float num = this.value;
8858 if (!true)
8859 {
8860 }
8861 }
8862 }
8863
8864 // Token: 0x06002266 RID: 8806 RVA: 0x00112A30 File Offset: 0x00110C30
8865 public void AttemptToConvertNPCToEvil(bool crimson)
8866 {
8867 int num = this.type;
8868 }
8869
8870 // Token: 0x06002267 RID: 8807 RVA: 0x00112A60 File Offset: 0x00110C60
8871 public void UpdateNPC_BuffSetFlags(bool lowerBuffTime = true)
8872 {
8873 int num = 1;
8874 int num2 = 1;
8875 if (num == 0)
8876 {
8877 }
8878 int[] array = this.buffType;
8879 int[] array2 = this.buffTime;
8880 this.onFrostBurn = num2 != 0;
8881 }
8882
8883 // Token: 0x06002268 RID: 8808 RVA: 0x00112B78 File Offset: 0x00110D78
8885 {
8886 }
8887
8888 // Token: 0x06002269 RID: 8809 RVA: 0x00112B88 File Offset: 0x00110D88
8890 {
8891 float num = this.teleportTime;
8892 int num6;
8893 int num7;
8894 if (this.teleportStyle != 0)
8895 {
8896 this.teleportTime = num;
8897 float num2 = this.teleportTime;
8898 int num3 = 17096;
8899 if (num3 == 0)
8900 {
8901 }
8902 float x = this.position.X;
8903 float y = this.position.Y;
8904 int width = this.width;
8905 bool wet = this.wet;
8906 if (num3 == 0)
8907 {
8908 }
8909 int num4 = this.lastPortalColorIndex;
8910 int num5;
8911 if (num5 == 0)
8912 {
8913 }
8915 num6 = 39322;
8916 num7 = 1;
8917 return;
8918 }
8919 if (num7 == 0)
8920 {
8921 }
8922 float num8 = this.teleportTime;
8923 int num9 = 17096;
8924 Rectangle rect = this.getRect();
8925 Rectangle rect2 = this.getRect();
8926 Rectangle rect3 = this.getRect();
8927 Rectangle rect4 = this.getRect();
8928 if (num9 == 0)
8929 {
8930 }
8931 if (num6 == 0)
8932 {
8933 }
8934 float num10 = this.teleportTime;
8935 if (!true)
8936 {
8937 }
8938 }
8939
8940 // Token: 0x0600226A RID: 8810 RVA: 0x00112CD8 File Offset: 0x00110ED8
8942 {
8943 if (!true)
8944 {
8945 }
8947 int num = this.type;
8948 if (num == 0)
8949 {
8950 }
8951 if (num == 0)
8952 {
8953 if (num == 0)
8954 {
8955 }
8956 int num2;
8957 if (num2 == 0)
8958 {
8959 float x = this.position.X;
8960 float y = this.position.Y;
8961 }
8962 }
8963 int num3 = this.type;
8964 if (num3 == 0)
8965 {
8966 }
8967 if (num3 != 0)
8968 {
8969 if (num3 == 0)
8970 {
8971 }
8972 int num4;
8973 if (num4 == 0)
8974 {
8975 float x2 = this.position.X;
8976 float y2 = this.position.Y;
8977 }
8978 }
8979 int num5 = this.type;
8980 }
8981
8982 // Token: 0x0600226B RID: 8811 RVA: 0x00112FEC File Offset: 0x001111EC
8984 {
8985 int num = this.type;
8986 float x = this.position.X;
8987 float y = this.position.Y;
8988 float x2 = this.netOffset.X;
8989 float y2 = this.netOffset.Y;
8990 if (num == 0)
8991 {
8992 }
8993 Vector2 center = base.Center;
8994 long num2 = 0L;
8995 Vector2 center2 = base.Center;
8996 if (num == 0)
8997 {
8998 }
8999 int num3 = 32640;
9000 Color color = Lighting.GetColor(1073741824, (int)num2);
9001 if (num3 == 0)
9002 {
9003 }
9004 float x3 = this.position.X;
9005 float y3 = this.position.Y;
9006 int width = this.width;
9007 bool wet = this.wet;
9008 if (num == 0)
9009 {
9010 }
9011 if (num3 == 0)
9012 {
9013 }
9014 float x4 = this.position.X;
9015 float y4 = this.position.Y;
9016 float x5 = this.netOffset.X;
9017 float y5 = this.netOffset.Y;
9018 if (this.type == 0)
9019 {
9020 }
9021 int num4 = this.townNpcVariationIndex;
9022 Vector2 center3 = base.Center;
9023 Vector2 center4 = base.Center;
9024 if (this.type == 0)
9025 {
9026 }
9027 int num5 = this.type;
9028 Vector2 center5 = base.Center;
9029 Vector2 center6 = base.Center;
9030 if (this.type == 0)
9031 {
9032 }
9033 Vector2 center7 = base.Center;
9034 Vector2 center8 = base.Center;
9035 float[] array = this.ai;
9036 Vector2 top = base.Top;
9037 if (array == null)
9038 {
9039 }
9040 int num6 = this.type;
9041 int width2 = this.width;
9042 float x6 = this.position.X;
9043 float y6 = this.position.Y;
9044 if (num6 == 0)
9045 {
9046 }
9047 }
9048
9049 // Token: 0x0600226C RID: 8812 RVA: 0x001131B4 File Offset: 0x001113B4
9051 {
9052 if (!this.dontTakeDamage && !this.dontTakeDamageFromHostiles && !this.immortal)
9053 {
9054 int[] array = this.immune;
9055 if (array == null)
9056 {
9057 Rectangle hitbox = base.Hitbox;
9058 if (array == null)
9059 {
9060 }
9061 if (array == null || array == null || array != null)
9062 {
9063 return;
9064 }
9065 if (array == null)
9066 {
9067 }
9068 return;
9069 }
9070 }
9071 }
9072
9073 // Token: 0x0600226D RID: 8813 RVA: 0x00113208 File Offset: 0x00111408
9075 {
9076 int num = this.type;
9077 int num2 = thatNPC.damage;
9078 if (num == 0)
9079 {
9080 }
9081 Vector2 center = thatNPC.Center;
9082 Vector2 center2 = base.Center;
9083 if (num == 0)
9084 {
9085 }
9086 if (num != 0)
9087 {
9088 int whoAmI = this.whoAmI;
9089 if (num == 0)
9090 {
9091 }
9092 }
9093 int[] array = this.immune;
9094 int num3 = 1;
9095 this.netUpdate = num3 != 0;
9096 bool flag = this.dryadWard;
9097 double num7;
9098 int[] array2;
9099 if (flag)
9100 {
9101 long num4 = 0L;
9102 long num5 = 0L;
9103 long num6 = 0L;
9104 int num8;
9105 double num9;
9106 num7 = thatNPC.StrikeNPCNoInteraction(num8, (float)num9, num2, num4 != 0L, num5 != 0L, num6 != 0L);
9107 if (!flag)
9108 {
9109 }
9110 if (flag)
9111 {
9112 if (!flag)
9113 {
9114 }
9115 }
9116 array2 = thatNPC.immune;
9117 int num10 = 1;
9118 thatNPC.netUpdate = num10 != 0;
9119 }
9120 if (array2 == null)
9121 {
9122 }
9123 if (array2 != null)
9124 {
9125 int num11 = this.damage;
9126 long num12 = 0L;
9127 long num13 = 0L;
9128 long num14 = 0L;
9129 double num15 = thatNPC.StrikeNPCNoInteraction(num11, (float)num7, num2, num12 != 0L, num13 != 0L, num14 != 0L);
9130 if (array2 == null)
9131 {
9132 }
9133 if (array2 != null)
9134 {
9135 if (array2 == null)
9136 {
9137 }
9138 }
9139 int[] array3 = thatNPC.immune;
9140 int num16 = 1;
9141 thatNPC.netUpdate = num16 != 0;
9142 }
9143 }
9144
9145 // Token: 0x0600226E RID: 8814 RVA: 0x001132FC File Offset: 0x001114FC
9146 private void CheckLifeRegen()
9147 {
9148 int num = this.life;
9149 int num2 = this.lifeMax;
9150 int num3 = this.friendlyRegen;
9151 bool flag = this.dryadWard;
9153 if (flag)
9154 {
9156 }
9157 int num4 = 1;
9158 this.life = num;
9159 this.netUpdate = num4 != 0;
9160 }
9161
9162 // Token: 0x0600226F RID: 8815 RVA: 0x00113348 File Offset: 0x00111548
9163 public void GetImmuneTime(int fromWho, int time)
9164 {
9165 int[] array = this.immune;
9166 }
9167
9168 // Token: 0x06002270 RID: 8816 RVA: 0x00113370 File Offset: 0x00111570
9169 private void UpdateCollision()
9170 {
9172 bool flag = this.Collision_LavaCollision();
9173 if (!this.wet)
9174 {
9175 }
9176 byte wetCount = this.wetCount;
9177 if (wetCount != 0)
9178 {
9180 }
9182 Vector2 velocity = this.velocity;
9185 float x = this.velocity.X;
9186 float y = this.velocity.Y;
9187 if (!this.wet)
9188 {
9190 return;
9191 }
9192 if (this.shimmerWet)
9193 {
9194 float num = this.shimmerMovementSpeed;
9195 return;
9196 }
9197 if (this.honeyWet)
9198 {
9199 float num2 = this.honeyMovementSpeed;
9200 return;
9201 }
9202 if (this.lavaWet)
9203 {
9204 float num3 = this.lavaMovementSpeed;
9205 return;
9206 }
9207 float num4 = this.waterMovementSpeed;
9208 int num5 = this.aiStyle;
9210 }
9211
9212 // Token: 0x06002271 RID: 8817 RVA: 0x00113454 File Offset: 0x00111654
9214 {
9215 if (!true)
9216 {
9217 }
9218 if (true)
9219 {
9220 this.velocity.Y = (float)55050;
9221 }
9222 float x = this.oldVelocity.X;
9223 float x2 = this.velocity.X;
9224 this.collideX = true;
9225 float y = this.oldVelocity.Y;
9226 float y2 = this.velocity.Y;
9227 this.collideY = true;
9228 Vector2 position = this.position;
9229 int direction = this.direction;
9230 float y3 = this.position.Y;
9233 this.position.X = y;
9234 }
9235
9236 // Token: 0x06002272 RID: 8818 RVA: 0x001134F4 File Offset: 0x001116F4
9238 {
9239 int num = this.type;
9241 }
9242
9243 // Token: 0x06002273 RID: 8819 RVA: 0x00113540 File Offset: 0x00111740
9245 {
9246 int num = 1;
9247 this.stairFall = num != 0;
9248 int num2 = this.aiStyle;
9249 Vector2 center = base.Center;
9250 int num3 = 32640;
9251 float y = this.position.Y;
9252 if (num3 == 0)
9253 {
9254 }
9255 if (num3 == 0)
9256 {
9257 }
9258 bool flag = this.townNPC;
9259 if (flag)
9260 {
9261 if (!flag)
9262 {
9263 }
9264 return;
9265 }
9266 if (!flag)
9267 {
9268 }
9269 if (num3 != 0)
9270 {
9271 if (num3 == 0)
9272 {
9273 }
9274 int height = this.height;
9275 float y2 = this.position.Y;
9276 int num4 = this.homeTileY;
9277 }
9278 int height2 = this.height;
9279 float y3 = this.position.Y;
9280 int num5 = this.homeTileY;
9281 int num6 = 1;
9282 this.stairFall = num6 != 0;
9283 }
9284
9285 // Token: 0x06002274 RID: 8820 RVA: 0x001136B8 File Offset: 0x001118B8
9287 {
9288 float x = this.position.X;
9289 float y = this.position.Y;
9290 float x2 = this.velocity.X;
9291 float y2 = this.velocity.Y;
9292 int width = this.width;
9293 bool wet = this.wet;
9294 if (!true)
9295 {
9296 }
9297 float x3 = this.position.X;
9298 float y3 = this.position.Y;
9299 float[] array = this.ai;
9300 float y4 = this.velocity.Y;
9301 int direction = this.direction;
9302 if (direction != 0)
9303 {
9304 float num = this.rotation;
9305 int num2 = this.spriteDirection;
9306 return;
9307 }
9308 this.directionY = 1;
9309 }
9310
9311 // Token: 0x06002275 RID: 8821 RVA: 0x00113774 File Offset: 0x00111974
9313 {
9314 float x = this.velocity.X;
9315 float y = this.velocity.Y;
9316 if (!true)
9317 {
9318 }
9319 }
9320
9321 // Token: 0x06002276 RID: 8822 RVA: 0x0011379C File Offset: 0x0011199C
9323 {
9324 if (!true)
9325 {
9326 }
9327 if (!true)
9328 {
9329 if (!true)
9330 {
9331 }
9332 float x = this.velocity.X;
9333 float y = this.velocity.Y;
9334 if (!true)
9335 {
9336 }
9337 }
9338 }
9339
9340 // Token: 0x06002277 RID: 8823 RVA: 0x001137D0 File Offset: 0x001119D0
9342 {
9343 float x = this.velocity.X;
9344 float y = this.velocity.Y;
9345 if (!true)
9346 {
9347 }
9348 float[] array = this.ai;
9349 float x2 = this.oldVelocity.X;
9350 float y2 = this.oldVelocity.Y;
9351 float[] array2 = this.ai;
9352 float x3 = this.velocity.X;
9353 float x4 = this.oldVelocity.X;
9354 int direction = this.direction;
9357 float y3 = this.velocity.Y;
9358 float y4 = this.oldVelocity.Y;
9359 }
9360
9361 // Token: 0x06002278 RID: 8824 RVA: 0x00113878 File Offset: 0x00111A78
9363 {
9364 float x = this.velocity.X;
9365 float y = this.velocity.Y;
9366 if (!true)
9367 {
9368 }
9369 float x2 = this.oldVelocity.X;
9370 float y2 = this.oldVelocity.Y;
9371 if (!true)
9372 {
9373 }
9374 float x3 = this.velocity.X;
9375 float x4 = this.oldVelocity.X;
9376 float y3 = this.velocity.Y;
9377 float y4 = this.oldVelocity.Y;
9378 }
9379
9380 // Token: 0x06002279 RID: 8825 RVA: 0x001138F4 File Offset: 0x00111AF4
9382 {
9383 int width = this.width;
9384 bool wet = this.wet;
9385 float x = this.position.X;
9386 float y = this.position.Y;
9387 float x2 = this.velocity.X;
9388 float y2 = this.velocity.Y;
9389 if (width == 0)
9390 {
9391 }
9392 this.velocity.X = x;
9393 this.velocity.Y = y;
9394 }
9395
9396 // Token: 0x0600227A RID: 8826 RVA: 0x0011395C File Offset: 0x00111B5C
9398 {
9399 if (!true)
9400 {
9401 }
9402 if (true)
9403 {
9404 this.velocity.Y = (float)55050;
9405 return;
9406 }
9407 float y = this.velocity.Y;
9408 float x = this.velocity.X;
9409 if (55050 == 0)
9410 {
9411 }
9412 float x2 = this.velocity.X;
9413 }
9414
9415 // Token: 0x0600227B RID: 8827 RVA: 0x00113A0C File Offset: 0x00111C0C
9416 public void GetTileCollisionParameters([Out] Vector2 cPosition, [Out] int cWidth, [Out] int cHeight)
9417 {
9418 Vector2 position = this.position;
9420 int width = this.width;
9422 int height = this.height;
9424 int num = this.type;
9425 float[] array = this.ai;
9428 int num2 = this.type;
9429 int num3 = 32;
9431 int num4 = this.type;
9432 int num5 = 90;
9434 int num6 = this.type;
9435 int num7 = 40;
9437 int num8 = this.type;
9438 int num9 = 40;
9440 int num10 = this.type;
9441 int num11 = 40;
9443 int num12 = this.type;
9444 int num13 = 40;
9446 int num14 = this.type;
9447 if (num14 == 0)
9448 {
9449 }
9450 if (num14 != 0)
9451 {
9452 if (num14 == 0)
9453 {
9454 }
9455 if (num14 == 0)
9456 {
9457 }
9458 int whoAmI = this.whoAmI;
9459 }
9460 }
9461
9462 // Token: 0x0600227C RID: 8828 RVA: 0x00113B5C File Offset: 0x00111D5C
9464 {
9465 if (!true)
9466 {
9467 }
9468 bool logicHost = Main.LogicHost;
9469 int num = this.type;
9470 if (this.wet)
9471 {
9472 int direction = this.direction;
9473 Vector2 velocity = this.velocity;
9474 return;
9475 }
9476 }
9477
9478 // Token: 0x0600227D RID: 8829 RVA: 0x00113C5C File Offset: 0x00111E5C
9480 {
9481 /*
9482An exception occurred when decompiling this method (0600227D)
9483
9484ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::Collision_DecideFallThroughPlatforms()
9485
9486 ---> System.Exception: Basic block has to end with unconditional control flow.
9487{
9488 IL_0175:
9489 stloc:int32(var_38_17B, ldfld:int32(Entity::height, ldloc:NPC[exp:Entity](this)))
9490 stloc:float32(var_39_188, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, ldloc:NPC[exp:Entity](this))))
9491 stloc:int32(var_41_197, ldfld:int32(NPC::homeTileY, ldloc:NPC(this)))
9492 stloc:int32(var_42_19F, ldfld:int32(NPC::type, ldloc:NPC(this)))
9493 stloc:int32(var_43_1A7, ldfld:int32(NPC::target, ldloc:NPC(this)))
9494 stloc:float32(var_44_1B9, ldfld:float32(Vector2::Y, ldfld:Vector2[exp:valuetype Microsoft.Xna.Framework.Vector2&](Entity::position, callgetter:Player[exp:Entity](NPC::get_TargetPlayer, ldloc:NPC(this)))))
9495 stloc:Vector2(var_45_1C1, callgetter:Vector2(Entity::get_Bottom, ldloc:NPC[exp:Entity](this)))
9496}
9497
9498 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
9499 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
9500 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
9501 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
9502 --- End of inner exception stack trace ---
9503 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
9504 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
9505*/;
9506 }
9507
9508 // Token: 0x0600227E RID: 8830 RVA: 0x00113E2C File Offset: 0x0011202C
9509 private bool Collision_WaterCollision(bool lava)
9510 {
9511 /*
9512An exception occurred when decompiling this method (0600227E)
9513
9514ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::Collision_WaterCollision(System.Boolean)
9515
9516 ---> System.Exception: Basic block has to end with unconditional control flow.
9517{
9518 Block_15:
9519 brtrue(IL_0000, ldfld:bool(NPC::noGravity, ldloc:NPC(this)))
9520}
9521
9522 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
9523 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
9524 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
9525 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
9526 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
9527 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
9528 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
9529 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
9530 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
9531 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
9532 --- End of inner exception stack trace ---
9533 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
9534 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
9535*/;
9536 }
9537
9538 // Token: 0x0600227F RID: 8831 RVA: 0x00114394 File Offset: 0x00112594
9540 {
9541 /*
9542An exception occurred when decompiling this method (0600227F)
9543
9544ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::Collision_LavaCollision()
9545
9546 ---> System.Exception: Basic block has to end with unconditional control flow.
9547{
9548 IL_00F4:
9549 stloc:int32(var_25_F6, ldc.i4:int32(24))
9550 stloc:int32(var_26_FD, ldc.i4:int32(180))
9551 stloc:int64(var_27_100, ldc.i4:int64(0))
9552 call:void(NPC::AddBuff, ldloc:NPC(this), ldloc:int32(var_25_F6), ldloc:int32(var_26_FD), ldloc:int64[exp:bool](var_27_100))
9553}
9554
9555 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
9556 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
9557 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
9558 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
9559 --- End of inner exception stack trace ---
9560 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
9561 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
9562*/;
9563 }
9564
9565 // Token: 0x06002280 RID: 8832 RVA: 0x001144B0 File Offset: 0x001126B0
9567 {
9568 float x = this.position.X;
9569 float y = this.position.Y;
9570 float x2 = this.velocity.X;
9571 float y2 = this.velocity.Y;
9572 int width = this.width;
9573 bool wet = this.wet;
9574 if (!true)
9575 {
9576 }
9577 }
9578
9579 // Token: 0x06002281 RID: 8833 RVA: 0x00114500 File Offset: 0x00112700
9580 public static void setFireFlyChance()
9581 {
9582 if (!true)
9583 {
9584 }
9585 long ticks = DateTime.Now.Ticks;
9586 if (WorldGen.genRand.Next(9) == 0)
9587 {
9588 return;
9589 }
9590 if (WorldGen.genRand.Next(3) != 0)
9591 {
9592 return;
9593 }
9594 if (16959 == 0)
9595 {
9596 }
9597 int num;
9598 if (num != 0)
9599 {
9600 if (WorldGen.genRand.Next(5) == 0)
9601 {
9602 return;
9603 }
9604 }
9605 else if (WorldGen.genRand.Next(5) == 0)
9606 {
9607 }
9608 int num2 = Math.Max(1, 5);
9609 int num3 = Math.Max(1, 5);
9610 }
9611
9612 // Token: 0x06002282 RID: 8834 RVA: 0x0011457C File Offset: 0x0011277C
9614 {
9615 if (!true)
9616 {
9617 }
9618 return 1;
9619 }
9620
9621 // Token: 0x06002283 RID: 8835 RVA: 0x00114590 File Offset: 0x00112790
9623 {
9624 /*
9625An exception occurred when decompiling this method (06002283)
9626
9627ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.NPC::GetAlpha(Microsoft.Xna.Framework.Graphics.Color)
9628
9629 ---> System.Exception: Basic block has to end with unconditional control flow.
9630{
9631 IL_011D:
9632 stloc:float32(var_47_12E, ldfld:float32(NPC::shimmerTransparency, ldloc:NPC(this)))
9633 stloc:float32(var_49_136, ldfld:float32(NPC::shimmerTransparency, ldloc:NPC(this)))
9634}
9635
9636 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
9637 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
9638 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
9639 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
9640 --- End of inner exception stack trace ---
9641 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
9642 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
9643*/;
9644 }
9645
9646 // Token: 0x06002284 RID: 8836 RVA: 0x001146D4 File Offset: 0x001128D4
9648 {
9649 float num = this.shimmerTransparency;
9650 bool flag = this.CanApplyHunterPotionEffects();
9651 float num2 = this.shimmerTransparency;
9652 Color color;
9653 return color;
9654 }
9655
9656 // Token: 0x06002285 RID: 8837 RVA: 0x001146F8 File Offset: 0x001128F8
9658 {
9659 /*
9660An exception occurred when decompiling this method (06002285)
9661
9662ICSharpCode.Decompiler.DecompilerException: Error decompiling Microsoft.Xna.Framework.Graphics.Color Terraria.NPC::GetColor(Microsoft.Xna.Framework.Graphics.Color)
9663
9664 ---> System.Exception: Basic block has to end with unconditional control flow.
9665{
9666 IL_000B:
9667 stloc:uint8(var_0_16, ldfld:uint8(Color::G, ldfld:Color[exp:valuetype Microsoft.Xna.Framework.Graphics.Color&](NPC::color, ldloc:NPC(this))))
9668 stloc:uint8(var_1_22, ldfld:uint8(Color::B, ldfld:Color[exp:valuetype Microsoft.Xna.Framework.Graphics.Color&](NPC::color, ldloc:NPC(this))))
9669 stloc:uint8(var_2_2E, ldfld:uint8(Color::R, ldfld:Color[exp:valuetype Microsoft.Xna.Framework.Graphics.Color&](NPC::color, ldloc:NPC(this))))
9670 stloc:Color(var_3_35, ldfld:Color(NPC::color, ldloc:NPC(this)))
9671 stloc:float32(var_4_3C, ldfld:float32(NPC::shimmerTransparency, ldloc:NPC(this)))
9672 stloc:float32(var_6_44, ldfld:float32(NPC::shimmerTransparency, ldloc:NPC(this)))
9673}
9674
9675 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
9676 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
9677 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
9678 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
9679 --- End of inner exception stack trace ---
9680 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
9681 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
9682*/;
9683 }
9684
9685 // Token: 0x06002286 RID: 8838 RVA: 0x0011474C File Offset: 0x0011294C
9687 {
9688 if (!true)
9689 {
9690 }
9691 if (true)
9692 {
9693 if (!true)
9694 {
9695 }
9696 }
9697 return true;
9698 }
9699
9700 // Token: 0x06002287 RID: 8839 RVA: 0x00114768 File Offset: 0x00112968
9701 public string GetChat()
9702 {
9703 int num = 1;
9704 if (num == 0)
9705 {
9706 }
9707 if (num == 0)
9708 {
9709 }
9710 Recipe.FindRecipes(false);
9711 if (num == 0)
9712 {
9713 }
9715 if (num == 0)
9716 {
9717 }
9718 if (num != 0)
9719 {
9720 if (num == 0)
9721 {
9722 }
9723 if (num == 0)
9724 {
9725 }
9726 if (num == 0)
9727 {
9728 }
9729 if (num == 0)
9730 {
9731 }
9732 if (num == 0)
9733 {
9734 }
9735 if (num == 0)
9736 {
9737 }
9738 if (!true)
9739 {
9740 }
9741 if (!true)
9742 {
9743 }
9744 int num2 = 1;
9745 if (num2 == 0)
9746 {
9747 }
9748 if (num2 == 0)
9749 {
9750 }
9751 int num3 = 1;
9752 if (num3 == 0)
9753 {
9754 }
9755 if (num3 == 0)
9756 {
9757 }
9758 if (!true)
9759 {
9760 }
9761 if (!true)
9762 {
9763 }
9764 if (!true)
9765 {
9766 }
9767 if (!true)
9768 {
9769 }
9770 if (!true)
9771 {
9772 }
9773 }
9774 int num4 = this.type;
9775 int num5;
9776 int num23;
9777 if (num5 != 0)
9778 {
9779 if ("TaxCollector" == null)
9780 {
9781 }
9782 if ("TaxCollector" == null)
9783 {
9784 }
9785 if ("Merchant" == null)
9786 {
9787 }
9788 if ("Merchant" == null)
9789 {
9790 if ("Merchant" == null)
9791 {
9792 }
9793 int num6;
9794 if (num6 == 0)
9795 {
9796 goto IL_0CA9;
9797 }
9798 }
9799 if ("Merchant" != null)
9800 {
9801 int num7;
9802 if (num7 != 0)
9803 {
9804 goto IL_0EF5;
9805 }
9806 if ("Merchant" == null)
9807 {
9808 }
9809 if ("Merchant" == null)
9810 {
9811 }
9812 if ("Steampunker" == null)
9813 {
9814 }
9815 if ("Steampunker" != null)
9816 {
9817 if ("Steampunker" == null)
9818 {
9819 }
9820 int num8;
9821 if (num8 == 0)
9822 {
9823 goto IL_0BAF;
9824 }
9825 }
9826 if ("Steampunker" == null)
9827 {
9828 }
9829 int num9;
9830 if (num9 == 0)
9831 {
9832 goto IL_0C97;
9833 }
9834 if ("Steampunker" == null)
9835 {
9836 }
9837 int num10;
9838 if (num10 != 0)
9839 {
9840 return Lang.PrincessChat(this);
9841 }
9842 int num11;
9843 if (num11 == 0)
9844 {
9845 }
9846 if ("." == null)
9847 {
9848 }
9849 int num12;
9850 if (num12 == 0)
9851 {
9852 int num13;
9853 if (num13 == 0)
9854 {
9855 }
9856 if (num11 == 0)
9857 {
9858 }
9859 goto IL_0E4F;
9860 }
9861 goto IL_10B8;
9862 }
9863 else
9864 {
9865 int num14;
9866 if (num14 == 0)
9867 {
9868 goto IL_113F;
9869 }
9870 int num15;
9871 if (num15 != 0)
9872 {
9873 goto IL_1117;
9874 }
9875 int num16;
9876 if (num16 == 0)
9877 {
9878 goto IL_0E4F;
9879 }
9880 int num17;
9881 if (num17 == 0)
9882 {
9883 goto IL_112D;
9884 }
9885 int num18;
9886 if (num18 == 0)
9887 {
9888 goto IL_11F6;
9889 }
9890 int num19;
9891 if (num19 == 0)
9892 {
9893 goto IL_11D5;
9894 }
9895 int num20;
9896 if (num20 == 0)
9897 {
9898 goto IL_123B;
9899 }
9900 int num21;
9901 if (num21 != 0)
9902 {
9903 goto IL_0F52;
9904 }
9905 int myPlayer = Main.myPlayer;
9906 bool anglerQuestFinished = Main.anglerQuestFinished;
9907 int num22;
9908 if (num22 == 0)
9909 {
9910 goto IL_11CC;
9911 }
9912 if ("AnglerChatter." == null)
9913 {
9914 }
9915 if ("AnglerChatter." == null)
9916 {
9917 }
9918 if ("AnglerChatter." == null)
9919 {
9920 }
9921 if (num23 == 0)
9922 {
9923 goto IL_106F;
9924 }
9925 if ("GolferQuestsChatterMaster" == null)
9926 {
9927 }
9928 if ("GolferQuestsChatterMaster" == null)
9929 {
9930 }
9931 if ("GolferQuestsChatterMaster" == null)
9932 {
9933 }
9934 if ("GolferQuestsChatterMaster" == null)
9935 {
9936 }
9937 int num24;
9938 if (num24 == 0)
9939 {
9940 goto IL_10A6;
9941 }
9942 int myPlayer2 = Main.myPlayer;
9943 }
9944 IL_0BAF:
9947 return "AnglerSpecialText.BloodMoonFishing";
9948 IL_0E4F:
9949 int num25 = 6;
9950 int num26;
9951 if (num26 == 0)
9952 {
9953 }
9954 if (num26 == 0)
9955 {
9956 }
9957 if (num26 == 0)
9958 {
9959 }
9960 if (num26 == 0)
9961 {
9962 }
9963 if (num26 == 0)
9964 {
9965 }
9966 IL_0EF5:
9967 return Language.GetTextValueWith("DryadSpecialText.AfterDD2Tier1", num25);
9968 }
9969 if ("Mechanic" == null)
9970 {
9971 }
9972 if ("Mechanic" == null)
9973 {
9974 goto IL_0CD0;
9975 }
9976 if ("Mechanic" == null)
9977 {
9978 }
9979 int num27;
9980 if (num27 != 0)
9981 {
9982 goto IL_1003;
9983 }
9984 if ("Mechanic" == null)
9985 {
9986 }
9987 if ("GoblinTinkerer" == null)
9988 {
9989 }
9990 int num28;
9991 if (num28 == 0)
9992 {
9993 goto IL_0FA4;
9994 }
9995 if ("GoblinTinkerer" == null)
9996 {
9997 }
9998 int num29 = 5;
9999 int num30;
10000 if (num30 == 0)
10001 {
10002 goto IL_1039;
10003 }
10004 if ("GoblinTinkerer" == null)
10005 {
10006 }
10008 string <Value>k__BackingField = Language.FindAll(languageSearchFilter).<Value>k__BackingField;
10009 if (<Value>k__BackingField == null)
10010 {
10011 }
10012 int num54;
10013 if (<Value>k__BackingField != null)
10014 {
10015 int num31;
10016 if (num31 != 0)
10017 {
10018 if ("Wizard" == null)
10019 {
10020 }
10021 if ("Wizard" != null)
10022 {
10023 if ("Wizard" == null)
10024 {
10025 }
10026 int num32;
10027 if (num32 == 0)
10028 {
10029 goto IL_10BE;
10030 }
10031 }
10032 if ("Wizard" == null)
10033 {
10034 }
10035 int myPlayer3 = Main.myPlayer;
10036 if ("Wizard" == null)
10037 {
10038 }
10039 int num33;
10040 if (num33 != 0)
10041 {
10042 if ("Wizard" == null)
10043 {
10044 }
10045 int myPlayer4 = Main.myPlayer;
10046 if ("Wizard" == null)
10047 {
10048 }
10049 int num34;
10050 if (num34 != 0)
10051 {
10052 if ("Wizard" == null)
10053 {
10054 }
10055 int myPlayer5 = Main.myPlayer;
10056 if ("Wizard" == null)
10057 {
10058 }
10059 int num35;
10060 if (num35 == 0)
10061 {
10062 goto IL_12B6;
10063 }
10064 if ("Wizard" == null)
10065 {
10066 }
10067 int myPlayer6 = Main.myPlayer;
10068 if ("Wizard" == null)
10069 {
10070 }
10071 int num36;
10072 if (num36 == 0)
10073 {
10074 goto IL_1345;
10075 }
10076 if ("Wizard" == null)
10077 {
10078 }
10079 int myPlayer7 = Main.myPlayer;
10080 if ("Wizard" == null)
10081 {
10082 }
10083 int num37;
10084 if (num37 == 0)
10085 {
10086 goto IL_13BD;
10087 }
10088 if ("Wizard" == null)
10089 {
10090 }
10091 int myPlayer8 = Main.myPlayer;
10092 if ("Wizard" == null)
10093 {
10094 }
10095 int num38;
10096 if (num38 == 0)
10097 {
10098 goto IL_13D8;
10099 }
10100 if ("Wizard" == null)
10101 {
10102 goto IL_130B;
10103 }
10104 if ("PartyGirl" == null)
10105 {
10106 }
10108 {
10109 }
10111 {
10112 }
10113 int golferScoreAccumulated = Main.LocalPlayer.golferScoreAccumulated;
10114 if ("GolferQuestsChatterApprentice" == null)
10115 {
10116 }
10117 if ("GolferQuestsChatterApprentice" == null)
10118 {
10119 }
10120 if ("GolferQuestsChatterApprentice" == null)
10121 {
10122 }
10123 int num39;
10124 if (num39 != 0)
10125 {
10126 goto IL_0C97;
10127 }
10128 if ("GolferQuestsChatterApprentice" == null)
10129 {
10130 }
10131 if ("GolferQuestsChatterBeginner" == null)
10132 {
10133 }
10134 while (num31 != 0)
10135 {
10136 }
10137 int num40;
10138 int numberOfDeathsPVE;
10139 if (num40 == 0)
10140 {
10141 if ("GolferQuestsChatterApprentice" == null)
10142 {
10143 }
10144 numberOfDeathsPVE = Main.LocalPlayer.numberOfDeathsPVE;
10145 }
10146 if (numberOfDeathsPVE == 0)
10147 {
10148 }
10149 int num41;
10150 if (num41 == 0)
10151 {
10152 if (numberOfDeathsPVE == 0)
10153 {
10154 }
10155 if (numberOfDeathsPVE == 0)
10156 {
10157 goto IL_10EB;
10158 }
10159 }
10160 if (numberOfDeathsPVE == 0)
10161 {
10162 }
10163 int num42;
10164 if (num42 == 0)
10165 {
10166 goto IL_108E;
10167 }
10168 if (numberOfDeathsPVE == 0)
10169 {
10170 }
10171 int num43;
10172 if (num43 == 0)
10173 {
10174 goto IL_1139;
10175 }
10176 if (numberOfDeathsPVE == 0)
10177 {
10178 }
10179 int num44;
10180 if (num44 != 0)
10181 {
10182 if (numberOfDeathsPVE == 0)
10183 {
10184 }
10185 int myPlayer9 = Main.myPlayer;
10186 int myPlayer10 = Main.myPlayer;
10187 int num45;
10188 if (num45 == 0)
10189 {
10190 }
10191 if (num45 == 0)
10192 {
10193 }
10194 int num46;
10195 if (num46 == 0)
10196 {
10197 goto IL_10DC;
10198 }
10199 if (num45 == 0)
10200 {
10201 }
10202 int myPlayer11 = Main.myPlayer;
10203 if (num45 == 0)
10204 {
10205 }
10206 int num47;
10207 if (num47 == 0)
10208 {
10209 goto IL_0FD7;
10210 }
10211 if (num45 == 0)
10212 {
10213 }
10214 int myPlayer12 = Main.myPlayer;
10215 if (num45 == 0)
10216 {
10217 }
10218 int num48;
10219 if (num48 == 0)
10220 {
10221 goto IL_107A;
10222 }
10223 if (num45 == 0)
10224 {
10225 }
10226 int num49;
10227 if (num49 == 0)
10228 {
10229 goto IL_1124;
10230 }
10231 if (num45 == 0)
10232 {
10233 }
10234 int num50;
10235 if (num50 != 0)
10236 {
10237 if (num45 == 0)
10238 {
10239 }
10240 int num51;
10241 if (num51 != 0)
10242 {
10243 if (num45 == 0)
10244 {
10245 }
10246 int num52 = 5;
10247 int num53;
10248 if (num53 != 0)
10249 {
10252 int num11 = 4;
10253 if (array.<Value>k__BackingField == null)
10254 {
10255 }
10256 if (num54 != 0)
10257 {
10258 string text;
10259 return text;
10260 }
10261 goto IL_14D3;
10262 }
10263 }
10264 }
10265 }
10266 }
10267 }
10268 }
10269 goto IL_11CC;
10270 }
10271 goto IL_1094;
10272 IL_0C97:
10273 IL_0CA9:
10274 int myPlayer13 = Main.myPlayer;
10275 int myPlayer14 = Main.myPlayer;
10276 IL_0CD0:
10277 int num55;
10278 if (num55 == 0)
10279 {
10280 goto IL_11ED;
10281 }
10282 int num56 = 6;
10283 int num57;
10284 if (num57 == 0)
10285 {
10286 goto IL_1271;
10287 }
10289 string <Value>k__BackingField2 = Language.FindAll(languageSearchFilter3).<Value>k__BackingField;
10290 int num58;
10291 if (num58 != 0)
10292 {
10293 goto IL_1328;
10294 }
10295 if (num23 == 0)
10296 {
10297 goto IL_1074;
10298 }
10299 int num59;
10300 string text2;
10301 if (num23 == 0 || num59 != 0)
10302 {
10303 int num60;
10304 if (num60 == 0)
10305 {
10306 text2 = "GolferQuestsChatterJourneyman" + ".";
10307 if ("." == null)
10308 {
10309 }
10311 string text3;
10312 return text3;
10313 }
10314 goto IL_10DC;
10315 }
10316 IL_0F52:
10318 if ("Low" == null)
10319 {
10320 }
10321 int myPlayer15 = Main.myPlayer;
10322 int myPlayer16 = Main.myPlayer;
10323 int num61;
10324 if (num61 == 0)
10325 {
10326 }
10327 IL_0FA4:
10328 if (num61 == 0)
10329 {
10330 }
10331 if (num61 == 0)
10332 {
10333 }
10334 if (num61 == 0)
10335 {
10336 }
10337 IL_0FD7:
10338 int num62;
10339 while (num62 != 0)
10340 {
10341 }
10342 IL_1003:
10343 IL_1039:
10344 IL_106F:
10345 IL_1074:
10346 IL_107A:
10347 int num63 = 3;
10348 int num64;
10349 while (num64 != 0)
10350 {
10351 }
10352 IL_108E:
10353 IL_1094:
10354 if (text2 == null)
10355 {
10356 goto IL_12BF;
10357 }
10358 IL_10A6:
10359 IL_10B8:
10360 IL_10BE:
10361 return Language.GetTextValueWith("WizardSpecialText.AfterDD2Tier1", num63);
10362 IL_10DC:
10363 IL_10EB:
10364 if ("GuideSpecialText.Lantern1" == null)
10365 {
10366 }
10367 if ("GuideSpecialText.Lantern1" == null)
10368 {
10369 }
10370 IL_1117:
10371 if ("GuideSpecialText.Lantern1" == null)
10372 {
10373 }
10374 IL_1124:
10375 IL_112D:
10376 IL_1139:
10377 IL_113F:
10378 int num65;
10379 if (num65 == 0)
10380 {
10381 }
10382 int num66;
10383 if (num66 == 0)
10384 {
10385 if (num65 == 0)
10386 {
10387 }
10388 return "NurseSpecialText.DeathCount";
10389 }
10390 goto IL_13ED;
10391 IL_11CC:
10392 IL_11D5:
10393 IL_11ED:
10394 IL_11F6:
10395 IL_123B:
10396 IL_1271:
10397 int num67;
10398 if (num67 == 0)
10399 {
10400 goto IL_1524;
10401 }
10402 int num68;
10403 if (num68 == 0)
10404 {
10405 return;
10406 }
10407 int num69;
10408 if (num69 != 0)
10409 {
10410 goto IL_1534;
10411 }
10412 IL_12B6:
10413 IL_12BF:
10414 int num70;
10415 if (num70 == 0)
10416 {
10417 goto IL_13C6;
10418 }
10419 int num71;
10420 if (num71 != 0)
10421 {
10422 goto IL_13D2;
10423 }
10424 IL_130B:
10425 if (num70 != 0)
10426 {
10427 }
10428 IL_1328:
10429 int num72;
10430 while (num72 != 0)
10431 {
10432 }
10433 IL_1345:
10434 if (num54 == 0)
10435 {
10436 goto IL_14D3;
10437 }
10438 IL_13BD:
10439 IL_13C6:
10440 IL_13D2:
10441 IL_13D8:
10442 IL_13ED:
10443 int num73 = 77;
10444 long num74 = 0L;
10445 string text4 = Lang.dialog(num73, num74 != 0L);
10447 int num75 = 5275;
10448 bool flag = localPlayer.HasItem(num75);
10449 return Language.GetTextValue("StardewTalk.PlayerHasColaButIsNotHoldingIt");
10450 IL_14D3:
10451 IL_1524:
10452 if ("GuideChatter.Chatter_1" == null)
10453 {
10454 }
10455 IL_1534:
10456 if ("GuideChatter.Chatter_1" == null)
10457 {
10458 return;
10459 }
10460 }
10461
10462 // Token: 0x06002288 RID: 8840 RVA: 0x00115CDC File Offset: 0x00113EDC
10463 public object Clone()
10464 {
10465 return base.MemberwiseClone();
10466 }
10467
10468 // Token: 0x06002289 RID: 8841 RVA: 0x00115CF0 File Offset: 0x00113EF0
10469 public bool HasLuckTextForWizard([Out] string specialEventText)
10470 {
10471 /*
10472An exception occurred when decompiling this method (06002289)
10473
10474ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean Terraria.NPC::HasLuckTextForWizard(System.String)
10475
10476 ---> System.Exception: Basic block has to end with unconditional control flow.
10477{
10478 IL_0011:
10479 stloc:int32(var_5_19, callgetter:int32(Main::get_myPlayer))
10480 stloc:LanguageSearchFilter(var_7_25, call:LanguageSearchFilter(Lang::CreateDialogFilter, ldstr:string("WizardSpecialText.LuckIsGodly")))
10481 stloc:string(var_9_2F, call:string(LocalizedText::FormatWith, ldloc:LocalizedText(var_8), ldloc:object(var_0_09)))
10482}
10483
10484 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
10485 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
10486 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
10487 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
10488 --- End of inner exception stack trace ---
10489 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
10490 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
10491*/;
10492 }
10493
10494 // Token: 0x0600228A RID: 8842 RVA: 0x00115D30 File Offset: 0x00113F30
10496 {
10497 if (!true)
10498 {
10499 }
10502 int num;
10503 if (num == 0)
10504 {
10505 string text = specialTextCategoryKey + "SpecialText.Graveyard";
10506 }
10508 int num2;
10509 if (num2 == 0)
10510 {
10511 string text2 = specialTextCategoryKey + "SpecialText.Party";
10512 }
10513 if ("SpecialText.Party" == null)
10514 {
10515 }
10516 if ("SpecialText.Party" != null)
10517 {
10518 if ("SpecialText.Party" == null)
10519 {
10520 }
10521 int num3 = 1;
10522 if (num3 == 0)
10523 {
10524 }
10525 if (num3 == 0)
10526 {
10527 if (num3 == 0)
10528 {
10529 }
10530 int num4;
10531 if (num4 == 0)
10532 {
10533 string text3 = specialTextCategoryKey + "SpecialText.Rain";
10534 }
10535 }
10536 }
10537 if ("SpecialText.Rain" == null)
10538 {
10539 }
10540 int num5 = 1;
10541 if (num5 == 0)
10542 {
10543 }
10544 if (num5 != 0)
10545 {
10546 if (num5 == 0)
10547 {
10548 }
10549 int num6;
10550 if (num6 == 0)
10551 {
10552 string text4 = specialTextCategoryKey + "SpecialText.Windy";
10553 }
10554 }
10555 if ("SpecialText.Windy" == null)
10556 {
10557 }
10558 int num7 = 1;
10559 if (num7 == 0)
10560 {
10561 }
10562 if (num7 == 0)
10563 {
10564 return;
10565 }
10566 if (num7 == 0)
10567 {
10568 }
10569 int num8;
10570 if (num8 == 0)
10571 {
10572 string text5 = specialTextCategoryKey + "SpecialText.Storm";
10573 return;
10574 }
10575 }
10576
10577 // Token: 0x0600228B RID: 8843 RVA: 0x00115E18 File Offset: 0x00114018
10579 {
10580 if (!true)
10581 {
10582 }
10586 return true;
10587 }
10588
10589 // Token: 0x0600228C RID: 8844 RVA: 0x00115E3C File Offset: 0x0011403C
10590 public void CheckDrowning()
10591 {
10592 int num = 1;
10593 float x = this.position.X;
10594 float y = this.position.Y;
10595 int width = this.width;
10596 bool wet = this.wet;
10597 if (num == 0)
10598 {
10599 }
10600 bool logicHost = Main.LogicHost;
10601 int num2 = this.breathCounter;
10603 int num3 = this.breath;
10604 this.breath = num3;
10605 int num4 = this.life;
10606 this.life = num4;
10607 int num5 = 1;
10608 this.netUpdate = num5 != 0;
10609 int num6 = 1;
10610 this.life = num6;
10611 if (num6 == 0)
10612 {
10613 }
10614 if (num6 != 0)
10615 {
10616 int whoAmI = this.whoAmI;
10617 return;
10618 }
10619 int num7;
10620 if (num7 == 0 && !this.lavaWet && !this.honeyWet && !this.shimmerWet)
10621 {
10622 int num8 = this.type;
10623 float x2 = this.position.X;
10624 float y2 = this.position.Y;
10625 int direction = this.direction;
10626 int width2 = this.width;
10627 if (direction == 0)
10628 {
10629 }
10630 return;
10631 }
10632 }
10633
10634 // Token: 0x0600228D RID: 8845 RVA: 0x00115F38 File Offset: 0x00114138
10635 public void TryPortalJumping()
10636 {
10637 if (this.townNPC)
10638 {
10640 }
10641 }
10642
10643 // Token: 0x0600228E RID: 8846 RVA: 0x00115F5C File Offset: 0x0011415C
10645 {
10646 if (!true)
10647 {
10648 }
10649 if (17096 == 0)
10650 {
10651 }
10653 bool flag = rectangle.Intersects(rectangle);
10654 }
10655
10656 // Token: 0x0600228F RID: 8847 RVA: 0x00115FE8 File Offset: 0x001141E8
10657 public string GetBestiaryCreditId()
10658 {
10659 /*
10660An exception occurred when decompiling this method (0600228F)
10661
10662ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String Terraria.NPC::GetBestiaryCreditId()
10663
10664 ---> System.Exception: Basic block has to end with unconditional control flow.
10665{
10666 IL_0003:
10667 stloc:int32(var_0_09, ldfld:int32(NPC::netID, ldloc:NPC(this)))
10668}
10669
10670 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
10671 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
10672 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
10673 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
10674 --- End of inner exception stack trace ---
10675 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
10676 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
10677*/;
10678 }
10679
10680 // Token: 0x06002290 RID: 8848 RVA: 0x00116000 File Offset: 0x00114200
10681 public override string ToString()
10682 {
10683 if ("name:" == null || "name:" != null)
10684 {
10685 string typeName = this.TypeName;
10686 string text;
10687 string text2;
10688 if ((typeName == null || typeName != null) && (", active:" == null || ", active:" != null) && (text == null || text != null) && (", whoAmI:" == null || ", whoAmI:" != null) && (text2 == null || text2 != null))
10689 {
10690 string text3;
10691 return text3;
10692 }
10693 }
10694 throw new ArrayTypeMismatchException();
10695 }
10696
10697 // Token: 0x06002291 RID: 8849 RVA: 0x0011605C File Offset: 0x0011425C
10698 public NPC()
10699 {
10700 if (!true)
10701 {
10702 }
10703 int num = 255;
10704 this.releaseOwner = (short)num;
10705 long num2 = 255L;
10707 int num3 = 1;
10709 int num4 = 16256;
10710 this.npcSlots = (float)num4;
10711 this._givenName = "";
10712 if ("" == null)
10713 {
10714 }
10718 base..ctor();
10719 }
10720
10721 // Token: 0x06002292 RID: 8850 RVA: 0x001160F4 File Offset: 0x001142F4
10722 // Note: this type is marked as 'beforefieldinit'.
10723 static NPC()
10724 {
10725 int[,,,] array = NPC.InitializeMoonLordAttacks();
10727 }
10728
10729 // Token: 0x04002D1B RID: 11547
10730 public static int MoonLordCountdown;
10731
10732 // Token: 0x04002D1C RID: 11548
10733 public static int immuneTime;
10734
10735 // Token: 0x04002D1D RID: 11549
10736 public static int maxAI;
10737
10738 // Token: 0x04002D1E RID: 11550
10739 public static int[] killCount;
10740
10741 // Token: 0x04002D1F RID: 11551
10742 public static float waveKills;
10743
10744 // Token: 0x04002D20 RID: 11552
10745 public static int waveNumber;
10746
10747 // Token: 0x04002D21 RID: 11553
10748 public static bool taxCollector;
10749
10750 // Token: 0x04002D22 RID: 11554
10751 public static bool freeCake;
10752
10753 // Token: 0x04002D23 RID: 11555
10754 private static float gravity;
10755
10756 // Token: 0x04002D24 RID: 11556
10757 public static int fireFlyFriendly;
10758
10759 // Token: 0x04002D25 RID: 11557
10760 public static int fireFlyChance;
10761
10762 // Token: 0x04002D26 RID: 11558
10763 public static int fireFlyMultiple;
10764
10765 // Token: 0x04002D27 RID: 11559
10766 public static int butterflyChance;
10767
10768 // Token: 0x04002D28 RID: 11560
10769 public static int golemBoss;
10770
10771 // Token: 0x04002D29 RID: 11561
10772 public static int plantBoss;
10773
10774 // Token: 0x04002D2A RID: 11562
10775 public static int crimsonBoss;
10776
10777 // Token: 0x04002D2B RID: 11563
10778 public static int deerclopsBoss;
10779
10780 // Token: 0x04002D2C RID: 11564
10781 public static int sWidth;
10782
10783 // Token: 0x04002D2D RID: 11565
10784 public static int sHeight;
10785
10786 // Token: 0x04002D2E RID: 11566
10787 private static int spawnRangeX;
10788
10789 // Token: 0x04002D2F RID: 11567
10790 private static int spawnRangeY;
10791
10792 // Token: 0x04002D30 RID: 11568
10793 public static int safeRangeX;
10794
10795 // Token: 0x04002D31 RID: 11569
10796 public static int safeRangeY;
10797
10798 // Token: 0x04002D32 RID: 11570
10799 private static int activeRangeX;
10800
10801 // Token: 0x04002D33 RID: 11571
10802 private static int activeRangeY;
10803
10804 // Token: 0x04002D34 RID: 11572
10805 private static int townRangeX;
10806
10807 // Token: 0x04002D35 RID: 11573
10808 private static int townRangeY;
10809
10810 // Token: 0x04002D36 RID: 11574
10811 private static bool noSpawnCycle;
10812
10813 // Token: 0x04002D37 RID: 11575
10814 private static int activeTime;
10815
10816 // Token: 0x04002D38 RID: 11576
10817 private static int defaultSpawnRate;
10818
10819 // Token: 0x04002D39 RID: 11577
10820 private static int defaultMaxSpawns;
10821
10822 // Token: 0x04002D3A RID: 11578
10823 public static bool savedTaxCollector;
10824
10825 // Token: 0x04002D3B RID: 11579
10826 public static bool savedGoblin;
10827
10828 // Token: 0x04002D3C RID: 11580
10829 public static bool savedWizard;
10830
10831 // Token: 0x04002D3D RID: 11581
10832 public static bool savedMech;
10833
10834 // Token: 0x04002D3E RID: 11582
10835 public static bool savedAngler;
10836
10837 // Token: 0x04002D3F RID: 11583
10838 public static bool savedStylist;
10839
10840 // Token: 0x04002D40 RID: 11584
10841 public static bool savedBartender;
10842
10843 // Token: 0x04002D41 RID: 11585
10844 public static bool savedGolfer;
10845
10846 // Token: 0x04002D42 RID: 11586
10847 public static bool boughtCat;
10848
10849 // Token: 0x04002D43 RID: 11587
10850 public static bool boughtDog;
10851
10852 // Token: 0x04002D44 RID: 11588
10853 public static bool boughtBunny;
10854
10855 // Token: 0x04002D45 RID: 11589
10856 public static bool combatBookWasUsed;
10857
10858 // Token: 0x04002D46 RID: 11590
10859 public static bool combatBookVolumeTwoWasUsed;
10860
10861 // Token: 0x04002D47 RID: 11591
10862 public static bool peddlersSatchelWasUsed;
10863
10864 // Token: 0x04002D48 RID: 11592
10865 public static bool downedBoss1;
10866
10867 // Token: 0x04002D49 RID: 11593
10868 public static bool downedBoss2;
10869
10870 // Token: 0x04002D4A RID: 11594
10871 public static bool downedBoss3;
10872
10873 // Token: 0x04002D4B RID: 11595
10874 public static bool downedQueenBee;
10875
10876 // Token: 0x04002D4C RID: 11596
10877 public static bool downedSlimeKing;
10878
10879 // Token: 0x04002D4D RID: 11597
10880 public static bool downedGoblins;
10881
10882 // Token: 0x04002D4E RID: 11598
10883 public static bool downedFrost;
10884
10885 // Token: 0x04002D4F RID: 11599
10886 public static bool downedPirates;
10887
10888 // Token: 0x04002D50 RID: 11600
10889 public static bool downedClown;
10890
10891 // Token: 0x04002D51 RID: 11601
10892 public static bool downedPlantBoss;
10893
10894 // Token: 0x04002D52 RID: 11602
10895 public static bool downedGolemBoss;
10896
10897 // Token: 0x04002D53 RID: 11603
10898 public static bool downedMartians;
10899
10900 // Token: 0x04002D54 RID: 11604
10901 public static bool downedFishron;
10902
10903 // Token: 0x04002D55 RID: 11605
10904 public static bool downedHalloweenTree;
10905
10906 // Token: 0x04002D56 RID: 11606
10907 public static bool downedHalloweenKing;
10908
10909 // Token: 0x04002D57 RID: 11607
10910 public static bool downedChristmasIceQueen;
10911
10912 // Token: 0x04002D58 RID: 11608
10913 public static bool downedChristmasTree;
10914
10915 // Token: 0x04002D59 RID: 11609
10916 public static bool downedChristmasSantank;
10917
10918 // Token: 0x04002D5A RID: 11610
10919 public static bool downedAncientCultist;
10920
10921 // Token: 0x04002D5B RID: 11611
10922 public static bool downedMoonlord;
10923
10924 // Token: 0x04002D5C RID: 11612
10925 public static bool downedTowerSolar;
10926
10927 // Token: 0x04002D5D RID: 11613
10928 public static bool downedTowerVortex;
10929
10930 // Token: 0x04002D5E RID: 11614
10931 public static bool downedTowerNebula;
10932
10933 // Token: 0x04002D5F RID: 11615
10934 public static bool downedTowerStardust;
10935
10936 // Token: 0x04002D60 RID: 11616
10937 public static bool downedEmpressOfLight;
10938
10939 // Token: 0x04002D61 RID: 11617
10940 public static bool downedQueenSlime;
10941
10942 // Token: 0x04002D62 RID: 11618
10943 public static bool downedDeerclops;
10944
10945 // Token: 0x04002D63 RID: 11619
10946 public static int ShieldStrengthTowerSolar;
10947
10948 // Token: 0x04002D64 RID: 11620
10949 public static int ShieldStrengthTowerVortex;
10950
10951 // Token: 0x04002D65 RID: 11621
10952 public static int ShieldStrengthTowerNebula;
10953
10954 // Token: 0x04002D66 RID: 11622
10956
10957 // Token: 0x04002D67 RID: 11623
10958 public static int LunarShieldPowerNormal;
10959
10960 // Token: 0x04002D68 RID: 11624
10961 public static int LunarShieldPowerExpert;
10962
10963 // Token: 0x04002D69 RID: 11625
10964 public static bool TowerActiveSolar;
10965
10966 // Token: 0x04002D6A RID: 11626
10967 public static bool TowerActiveVortex;
10968
10969 // Token: 0x04002D6B RID: 11627
10970 public static bool TowerActiveNebula;
10971
10972 // Token: 0x04002D6C RID: 11628
10973 public static bool TowerActiveStardust;
10974
10975 // Token: 0x04002D6D RID: 11629
10976 public static bool LunarApocalypseIsUp;
10977
10978 // Token: 0x04002D6E RID: 11630
10979 public static bool downedMechBossAny;
10980
10981 // Token: 0x04002D6F RID: 11631
10982 public static bool downedMechBoss1;
10983
10984 // Token: 0x04002D70 RID: 11632
10985 public static bool downedMechBoss2;
10986
10987 // Token: 0x04002D71 RID: 11633
10988 public static bool downedMechBoss3;
10989
10990 // Token: 0x04002D72 RID: 11634
10991 public static bool[] npcsFoundForCheckActive;
10992
10993 // Token: 0x04002D73 RID: 11635
10995
10996 // Token: 0x04002D74 RID: 11636
10997 private static int spawnRate;
10998
10999 // Token: 0x04002D75 RID: 11637
11000 private static int maxSpawns;
11001
11002 // Token: 0x04002D76 RID: 11638
11004
11005 // Token: 0x04002D77 RID: 11639
11006 public static bool travelNPC;
11007
11008 // Token: 0x04002D78 RID: 11640
11009 public static int[,] cavernMonsterType;
11010
11011 // Token: 0x04002D79 RID: 11641
11012 private static bool EoCKilledToday;
11013
11014 // Token: 0x04002D7A RID: 11642
11015 private static bool WoFKilledToday;
11016
11017 // Token: 0x04002D7B RID: 11643
11018 public static bool fairyLog;
11019
11020 // Token: 0x04002D7C RID: 11644
11021 private static int ignorePlayerInteractions;
11022
11023 // Token: 0x04002D7D RID: 11645
11024 public static int ladyBugGoodLuckTime;
11025
11026 // Token: 0x04002D7E RID: 11646
11027 public static int ladyBugBadLuckTime;
11028
11029 // Token: 0x04002D7F RID: 11647
11030 private static int ladyBugRainTime;
11031
11032 // Token: 0x04002D80 RID: 11648
11034
11035 // Token: 0x04002D81 RID: 11649
11036 public static int offSetDelayTime;
11037
11038 // Token: 0x04002D82 RID: 11650
11039 private const int NPC_TARGETS_START = 300;
11040
11041 // Token: 0x04002D83 RID: 11651
11043
11044 // Token: 0x04002D84 RID: 11652
11045 public bool ForcePartyHatOn;
11046
11047 // Token: 0x04002D85 RID: 11653
11049
11050 // Token: 0x04002D86 RID: 11654
11051 public float lavaMovementSpeed;
11052
11053 // Token: 0x04002D87 RID: 11655
11055
11056 // Token: 0x04002D88 RID: 11656
11058
11059 // Token: 0x04002D89 RID: 11657
11060 public static readonly int[,,,] MoonLordAttacksArray;
11061
11062 // Token: 0x04002D8A RID: 11658
11063 public static readonly int[,] MoonLordAttacksArray2;
11064
11065 // Token: 0x04002D8B RID: 11659
11066 public static int MoonLordFightingDistance;
11067
11068 // Token: 0x04002D8C RID: 11660
11069 public static int MaxMoonLordCountdown;
11070
11071 // Token: 0x04002D8D RID: 11661
11072 public const int NaturalMoonlordCountdownTime = 3600;
11073
11074 // Token: 0x04002D8E RID: 11662
11075 public const int ItemMoonlordCountdownTime = 720;
11076
11077 // Token: 0x04002D8F RID: 11663
11078 public int teleportStyle;
11079
11080 // Token: 0x04002D90 RID: 11664
11081 public float teleportTime;
11082
11083 // Token: 0x04002D91 RID: 11665
11084 public int netSpam;
11085
11086 // Token: 0x04002D92 RID: 11666
11087 public const int goldCritterChance = 400;
11088
11089 // Token: 0x04002D93 RID: 11667
11090 public static float totalInvasionPoints;
11091
11092 // Token: 0x04002D94 RID: 11668
11093 public const float nameOverIncrement = 0.025f;
11094
11095 // Token: 0x04002D95 RID: 11669
11096 public const float nameOverDistance = 350f;
11097
11098 // Token: 0x04002D96 RID: 11670
11099 public float nameOver;
11100
11101 // Token: 0x04002D97 RID: 11671
11103
11104 // Token: 0x04002D98 RID: 11672
11106
11107 // Token: 0x04002D99 RID: 11673
11108 public bool dripping;
11109
11110 // Token: 0x04002D9A RID: 11674
11111 public bool drippingSlime;
11112
11113 // Token: 0x04002D9B RID: 11675
11115
11116 // Token: 0x04002D9C RID: 11676
11118
11119 // Token: 0x04002D9D RID: 11677
11120 public static bool[] ShimmeredTownNPCs;
11121
11122 // Token: 0x04002D9E RID: 11678
11123 public int altTexture;
11124
11125 // Token: 0x04002D9F RID: 11679
11127
11128 // Token: 0x04002DA0 RID: 11680
11130
11131 // Token: 0x04002DA1 RID: 11681
11132 public short catchItem;
11133
11134 // Token: 0x04002DA2 RID: 11682
11135 public short releaseOwner;
11136
11137 // Token: 0x04002DA3 RID: 11683
11138 public int rarity;
11139
11140 // Token: 0x04002DA4 RID: 11684
11141 public bool[] playerInteraction;
11142
11143 // Token: 0x04002DA5 RID: 11685
11145
11146 // Token: 0x04002DA6 RID: 11686
11148
11149 // Token: 0x04002DA7 RID: 11687
11150 private static int spawnSpaceX;
11151
11152 // Token: 0x04002DA8 RID: 11688
11153 private static int spawnSpaceY;
11154
11155 // Token: 0x04002DA9 RID: 11689
11156 public float gfxOffY;
11157
11158 // Token: 0x04002DAA RID: 11690
11159 public float stepSpeed;
11160
11161 // Token: 0x04002DAB RID: 11691
11162 public bool teleporting;
11163
11164 // Token: 0x04002DAC RID: 11692
11165 public bool stairFall;
11166
11167 // Token: 0x04002DAD RID: 11693
11168 public static int stinkBugChance;
11169
11170 // Token: 0x04002DAE RID: 11694
11171 private int netStream;
11172
11173 // Token: 0x04002DAF RID: 11695
11174 private int[] streamPlayer;
11175
11176 // Token: 0x04002DB0 RID: 11696
11178
11179 // Token: 0x04002DB1 RID: 11697
11180 public Vector2[] oldPos;
11181
11182 // Token: 0x04002DB2 RID: 11698
11183 public float[] oldRot;
11184
11185 // Token: 0x04002DB3 RID: 11699
11186 public bool setFrameSize;
11187
11188 // Token: 0x04002DB4 RID: 11700
11189 public int netSkip;
11190
11191 // Token: 0x04002DB5 RID: 11701
11192 public bool netAlways;
11193
11194 // Token: 0x04002DB6 RID: 11702
11195 public int realLife;
11196
11197 // Token: 0x04002DB7 RID: 11703
11198 private string _givenName;
11199
11200 // Token: 0x04002DB8 RID: 11704
11201 public float npcSlots;
11202
11203 // Token: 0x04002DB9 RID: 11705
11205
11206 // Token: 0x04002DBA RID: 11706
11207 public bool dontCountMe;
11208
11209 // Token: 0x04002DBB RID: 11707
11210 public static readonly int maxBuffs;
11211
11212 // Token: 0x04002DBC RID: 11708
11213 public int[] buffType;
11214
11215 // Token: 0x04002DBD RID: 11709
11216 public int[] buffTime;
11217
11218 // Token: 0x04002DBE RID: 11710
11219 public bool[] buffImmune;
11220
11221 // Token: 0x04002DBF RID: 11711
11222 public bool canDisplayBuffs;
11223
11224 // Token: 0x04002DC0 RID: 11712
11225 public bool midas;
11226
11227 // Token: 0x04002DC1 RID: 11713
11228 public bool ichor;
11229
11230 // Token: 0x04002DC2 RID: 11714
11231 public bool onFire;
11232
11233 // Token: 0x04002DC3 RID: 11715
11234 public bool onFire2;
11235
11236 // Token: 0x04002DC4 RID: 11716
11237 public bool onFire3;
11238
11239 // Token: 0x04002DC5 RID: 11717
11240 public bool onFrostBurn;
11241
11242 // Token: 0x04002DC6 RID: 11718
11243 public bool onFrostBurn2;
11244
11245 // Token: 0x04002DC7 RID: 11719
11246 public bool poisoned;
11247
11248 // Token: 0x04002DC8 RID: 11720
11250
11251 // Token: 0x04002DC9 RID: 11721
11252 public bool venom;
11253
11254 // Token: 0x04002DCA RID: 11722
11255 public bool shadowFlame;
11256
11257 // Token: 0x04002DCB RID: 11723
11258 public bool soulDrain;
11259
11260 // Token: 0x04002DCC RID: 11724
11261 public bool shimmering;
11262
11263 // Token: 0x04002DCD RID: 11725
11264 public int lifeRegen;
11265
11266 // Token: 0x04002DCE RID: 11726
11267 public int lifeRegenCount;
11268
11269 // Token: 0x04002DCF RID: 11727
11271
11272 // Token: 0x04002DD0 RID: 11728
11273 public bool confused;
11274
11275 // Token: 0x04002DD1 RID: 11729
11276 public bool loveStruck;
11277
11278 // Token: 0x04002DD2 RID: 11730
11279 public bool stinky;
11280
11281 // Token: 0x04002DD3 RID: 11731
11282 public bool dryadWard;
11283
11284 // Token: 0x04002DD4 RID: 11732
11285 public bool immortal;
11286
11287 // Token: 0x04002DD5 RID: 11733
11288 public bool chaseable;
11289
11290 // Token: 0x04002DD6 RID: 11734
11291 public bool canGhostHeal;
11292
11293 // Token: 0x04002DD7 RID: 11735
11294 public bool javelined;
11295
11296 // Token: 0x04002DD8 RID: 11736
11297 public bool tentacleSpiked;
11298
11299 // Token: 0x04002DD9 RID: 11737
11300 public bool bloodButchered;
11301
11302 // Token: 0x04002DDA RID: 11738
11303 public bool celled;
11304
11305 // Token: 0x04002DDB RID: 11739
11306 public bool dryadBane;
11307
11308 // Token: 0x04002DDC RID: 11740
11309 public bool daybreak;
11310
11311 // Token: 0x04002DDD RID: 11741
11313
11314 // Token: 0x04002DDE RID: 11742
11315 public bool betsysCurse;
11316
11317 // Token: 0x04002DDF RID: 11743
11318 public bool oiled;
11319
11320 // Token: 0x04002DE0 RID: 11744
11321 public static bool unlockedSlimeBlueSpawn;
11322
11323 // Token: 0x04002DE1 RID: 11745
11324 public static bool unlockedSlimeGreenSpawn;
11325
11326 // Token: 0x04002DE2 RID: 11746
11327 public static bool unlockedSlimeOldSpawn;
11328
11329 // Token: 0x04002DE3 RID: 11747
11330 public static bool unlockedSlimePurpleSpawn;
11331
11332 // Token: 0x04002DE4 RID: 11748
11333 public static bool unlockedSlimeRainbowSpawn;
11334
11335 // Token: 0x04002DE5 RID: 11749
11336 public static bool unlockedSlimeRedSpawn;
11337
11338 // Token: 0x04002DE6 RID: 11750
11339 public static bool unlockedSlimeYellowSpawn;
11340
11341 // Token: 0x04002DE7 RID: 11751
11342 public static bool unlockedSlimeCopperSpawn;
11343
11344 // Token: 0x04002DE8 RID: 11752
11345 public static bool unlockedMerchantSpawn;
11346
11347 // Token: 0x04002DE9 RID: 11753
11348 public static bool unlockedDemolitionistSpawn;
11349
11350 // Token: 0x04002DEA RID: 11754
11351 public static bool unlockedPartyGirlSpawn;
11352
11353 // Token: 0x04002DEB RID: 11755
11354 public static bool unlockedDyeTraderSpawn;
11355
11356 // Token: 0x04002DEC RID: 11756
11357 public static bool unlockedTruffleSpawn;
11358
11359 // Token: 0x04002DED RID: 11757
11360 public static bool unlockedArmsDealerSpawn;
11361
11362 // Token: 0x04002DEE RID: 11758
11363 public static bool unlockedNurseSpawn;
11364
11365 // Token: 0x04002DEF RID: 11759
11366 public static bool unlockedPrincessSpawn;
11367
11368 // Token: 0x04002DF0 RID: 11760
11369 public static int LunarShieldPowerMax;
11370
11371 // Token: 0x04002DF1 RID: 11761
11372 public int soundDelay;
11373
11374 // Token: 0x04002DF2 RID: 11762
11375 public int[] immune;
11376
11377 // Token: 0x04002DF3 RID: 11763
11378 public int directionY;
11379
11380 // Token: 0x04002DF4 RID: 11764
11381 public int type;
11382
11383 // Token: 0x04002DF5 RID: 11765
11384 public float[] ai;
11385
11386 // Token: 0x04002DF6 RID: 11766
11387 public float[] localAI;
11388
11389 // Token: 0x04002DF7 RID: 11767
11390 public int aiAction;
11391
11392 // Token: 0x04002DF8 RID: 11768
11393 public int aiStyle;
11394
11395 // Token: 0x04002DF9 RID: 11769
11396 public bool justHit;
11397
11398 // Token: 0x04002DFA RID: 11770
11399 public int timeLeft;
11400
11401 // Token: 0x04002DFB RID: 11771
11402 public int target;
11403
11404 // Token: 0x04002DFC RID: 11772
11405 public int damage;
11406
11407 // Token: 0x04002DFD RID: 11773
11408 public int defense;
11409
11410 // Token: 0x04002DFE RID: 11774
11411 public int defDamage;
11412
11413 // Token: 0x04002DFF RID: 11775
11414 public int defDefense;
11415
11416 // Token: 0x04002E00 RID: 11776
11417 public bool coldDamage;
11418
11419 // Token: 0x04002E01 RID: 11777
11420 public bool trapImmune;
11421
11422 // Token: 0x04002E02 RID: 11778
11424
11425 // Token: 0x04002E03 RID: 11779
11427
11428 // Token: 0x04002E04 RID: 11780
11429 public int life;
11430
11431 // Token: 0x04002E05 RID: 11781
11432 public int lifeMax;
11433
11434 // Token: 0x04002E06 RID: 11782
11436
11437 // Token: 0x04002E07 RID: 11783
11438 public double frameCounter;
11439
11440 // Token: 0x04002E08 RID: 11784
11442
11443 // Token: 0x04002E09 RID: 11785
11444 public Color color;
11445
11446 // Token: 0x04002E0A RID: 11786
11447 public int alpha;
11448
11449 // Token: 0x04002E0B RID: 11787
11450 public bool hide;
11451
11452 // Token: 0x04002E0C RID: 11788
11453 public float scale;
11454
11455 // Token: 0x04002E0D RID: 11789
11456 public float knockBackResist;
11457
11458 // Token: 0x04002E0E RID: 11790
11459 public int oldDirectionY;
11460
11461 // Token: 0x04002E0F RID: 11791
11462 public int oldTarget;
11463
11464 // Token: 0x04002E10 RID: 11792
11465 public float rotation;
11466
11467 // Token: 0x04002E11 RID: 11793
11468 public bool noGravity;
11469
11470 // Token: 0x04002E12 RID: 11794
11471 public bool noTileCollide;
11472
11473 // Token: 0x04002E13 RID: 11795
11474 public bool netUpdate;
11475
11476 // Token: 0x04002E14 RID: 11796
11477 public bool netUpdate2;
11478
11479 // Token: 0x04002E15 RID: 11797
11480 public bool collideX;
11481
11482 // Token: 0x04002E16 RID: 11798
11483 public bool collideY;
11484
11485 // Token: 0x04002E17 RID: 11799
11486 public bool boss;
11487
11488 // Token: 0x04002E18 RID: 11800
11490
11491 // Token: 0x04002E19 RID: 11801
11492 public bool behindTiles;
11493
11494 // Token: 0x04002E1A RID: 11802
11495 public bool lavaImmune;
11496
11497 // Token: 0x04002E1B RID: 11803
11498 public float value;
11499
11500 // Token: 0x04002E1C RID: 11804
11501 public int extraValue;
11502
11503 // Token: 0x04002E1D RID: 11805
11504 public bool dontTakeDamage;
11505
11506 // Token: 0x04002E1E RID: 11806
11508
11509 // Token: 0x04002E1F RID: 11807
11510 public int netID;
11511
11512 // Token: 0x04002E20 RID: 11808
11514
11515 // Token: 0x04002E21 RID: 11809
11517
11518 // Token: 0x04002E22 RID: 11810
11519 public bool townNPC;
11520
11521 // Token: 0x04002E23 RID: 11811
11522 public bool homeless;
11523
11524 // Token: 0x04002E24 RID: 11812
11525 public int homeTileX;
11526
11527 // Token: 0x04002E25 RID: 11813
11528 public int homeTileY;
11529
11530 // Token: 0x04002E26 RID: 11814
11532
11533 // Token: 0x04002E27 RID: 11815
11534 public bool oldHomeless;
11535
11536 // Token: 0x04002E28 RID: 11816
11537 public int oldHomeTileX;
11538
11539 // Token: 0x04002E29 RID: 11817
11540 public int oldHomeTileY;
11541
11542 // Token: 0x04002E2A RID: 11818
11543 public bool friendly;
11544
11545 // Token: 0x04002E2B RID: 11819
11546 public bool closeDoor;
11547
11548 // Token: 0x04002E2C RID: 11820
11549 public int doorX;
11550
11551 // Token: 0x04002E2D RID: 11821
11552 public int doorY;
11553
11554 // Token: 0x04002E2E RID: 11822
11555 public int friendlyRegen;
11556
11557 // Token: 0x04002E2F RID: 11823
11558 public int breath;
11559
11560 // Token: 0x04002E30 RID: 11824
11561 public const int breathMax = 200;
11562
11563 // Token: 0x04002E31 RID: 11825
11564 public int breathCounter;
11565
11566 // Token: 0x04002E32 RID: 11826
11568
11569 // Token: 0x04002E33 RID: 11827
11571
11572 // Token: 0x04002E34 RID: 11828
11574
11575 // Token: 0x04002E35 RID: 11829
11577
11578 // Token: 0x04002E36 RID: 11830
11580
11581 // Token: 0x04002E37 RID: 11831
11583
11584 // Token: 0x04002E38 RID: 11832
11586
11587 // Token: 0x04002E39 RID: 11833
11588 private bool netShimmer;
11589
11590 // Token: 0x04002E3A RID: 11834
11591 public static int mechQueen;
11592
11593 // Token: 0x04002E3B RID: 11835
11594 public static int brainOfGravity;
11595
11596 // Token: 0x04002E3C RID: 11836
11597 public static bool empressRageMode;
11598
11599 // Token: 0x04002E3D RID: 11837
11600 private static readonly int[] _deerclopsAttack1Frames;
11601
11602 // Token: 0x04002E3E RID: 11838
11603 private static readonly int[] _deerclopsAttack2Frames;
11604
11605 // Token: 0x04002E3F RID: 11839
11606 private static readonly int[] _deerclopsAttack3Frames;
11607
11608 // Token: 0x04002E40 RID: 11840
11610
11611 // Token: 0x04002E41 RID: 11841
11612 private static bool dayTimeHax;
11613
11614 // Token: 0x04002E42 RID: 11842
11615 private static bool rainingHax;
11616
11617 // Token: 0x04002E43 RID: 11843
11618 private static float cloudAlphaHax;
11619
11620 // Token: 0x04002E44 RID: 11844
11621 public static bool PreventJojaColaDialog;
11622
11623 // Token: 0x04002E45 RID: 11845
11624 public static int RerollDryadText;
11625 }
11626}
class f__AnonymousType0<< Count > j__TPar
static eBossKillStatistics GetBossStatIDFromNetID(int netID)
static void NoteBossKillForAllLocalUsers(eBossKillStatistics bossID)
static int Sign(double value)
Definition Math.cs:252
static byte Max(byte val1, byte val2)
Definition Math.cs:111
static bool DestroyChest(int X, int Y)
Definition Chest.cs:400
static int FindChest(int X, int Y)
Definition Chest.cs:260
static bool SolidTiles(Vector2 position, int width, int height)
int alpha
Definition Dust.cs:471
Vector2 velocity
Definition Dust.cs:441
Vector2 oldPosition
Definition Entity.cs:466
Vector2 Center
Definition Entity.cs:134
bool shimmerWet
Definition Entity.cs:487
Vector2 Top
Definition Entity.cs:246
Vector2 velocity
Definition Entity.cs:463
Vector2 position
Definition Entity.cs:460
Vector2 oldVelocity
Definition Entity.cs:469
static Color GetPortalColor(int colorIndex)
Vector2 velocity
Definition Gore.cs:445
static int FromNetId(int id)
Definition NPCID.cs:42
static int BannerToItem(int banner)
Definition Item.cs:475
static int NPCtoBanner(int i)
Definition Item.cs:481
static int BannerToNPC(int i)
Definition Item.cs:486
static string GetNPCNameValue(int netID)
Definition Lang.cs:93
static string dialog(int l, bool english=false)
Definition Lang.cs:84
static object CreateDialogSubstitutionObject([Optional] NPC npc)
Definition Lang.cs:43
static string PrincessChat(NPC npc)
Definition Lang.cs:371
static LanguageSearchFilter CreateDialogFilter(string startsWith, object substitutions)
Definition Lang.cs:442
static LocalizedText GetNPCName(int netID)
Definition Lang.cs:102
static Color GetColor(Point tileCoords)
Definition Lighting.cs:423
static void AddLight(Vector2 position, Vector3 rgb)
Definition Lighting.cs:339
static LocalizedText[] FindAll(Regex regex)
Definition Language.cs:144
static string GetTextValue(string key)
Definition Language.cs:54
static string GetTextValueWith(string key, object obj)
Definition Language.cs:104
static NetworkText FromLiteral(string text)
static bool LogicClient
Definition Main.cs:5513
static bool NetHost
Definition Main.cs:5544
static bool anglerQuestFinished
Definition Main.cs:2603
static int myPlayer
Definition Main.cs:2337
static bool expertMode
Definition Main.cs:4186
static bool masterMode
Definition Main.cs:4176
static bool IsItDay()
Definition Main.cs:17014
static bool AnyPlayerReadyToFightKingSlime()
Definition Main.cs:17879
static void NewText(string newText, byte R=255, byte G=255, byte B=255)
Definition Main.cs:17778
static bool NetClientOnly
Definition Main.cs:5407
static bool LogicHost
Definition Main.cs:5469
static Microsoft.Xna.Framework.Graphics.Color hslToRgb(Microsoft.Xna.Framework.Vector3 hslVector)
Definition Main.cs:13783
static Player LocalPlayer
Definition Main.cs:5267
int breath
Definition NPC.cs:11558
bool HasGivenName
Definition NPC.cs:351
bool boss
Definition NPC.cs:11486
Vector2 netOffset
Definition NPC.cs:11129
static bool Spawning_FlyingAntlionCheck(int x, int y)
Definition NPC.cs:6004
void AI_114_Dragonflies()
Definition NPC.cs:2728
NPCSpawnParams GetMatchingSpawnParams()
Definition NPC.cs:1239
void AI_117_BloodNautilus()
Definition NPC.cs:2444
void UpdateNPC_CritterSounds()
Definition NPC.cs:8941
void AI_026_Unicorns()
Definition NPC.cs:3989
static void SpawnNPC_SpawnFrog(int spawnTileX, int spawnTileY, int plr)
Definition NPC.cs:6097
int[] immune
Definition NPC.cs:11375
int timeLeft
Definition NPC.cs:11399
void TweakSwingStats(int swingMax, int swingCurrent, int aimDir, Rectangle itemRectangle)
Definition NPC.cs:4378
static bool downedChristmasSantank
Definition NPC.cs:10916
static ? float TryFindingFloor(Vector2 searchStartPositionInWorld, int searchRange, [Out] int tilesTraveled)
Definition NPC.cs:2094
bool dontCountMe
Definition NPC.cs:11207
bool drippingSparkleSlime
Definition NPC.cs:11114
static int ladyBugBadLuckTime
Definition NPC.cs:11027
static int GetDestroyerSegmentsCount()
Definition NPC.cs:3268
float GetMyBalance()
Definition NPC.cs:1351
int checkArmorPenetration(int armorPenetration, float armorPenetrationPercent)
Definition NPC.cs:6780
void FindFrame()
Definition NPC.cs:4447
bool netAlways
Definition NPC.cs:11192
static bool downedTowerSolar
Definition NPC.cs:10925
static int TypeToDefaultHeadIndex(int type)
Definition NPC.cs:1002
bool SupportsNPCTargets
Definition NPC.cs:165
string FullName
Definition NPC.cs:335
void SpawnWithHigherTime(int timeMult)
Definition NPC.cs:797
bool dryadBane
Definition NPC.cs:11306
static CoinLossRevengeSystem RevengeManager
Definition NPC.cs:11003
bool CanTalk
Definition NPC.cs:24
void Collision_MoveSnailOnSlopes()
Definition NPC.cs:9286
void UpdateNPC_BuffApplyDOTs()
Definition NPC.cs:8618
void HealEffect(int healAmount, bool broadcast=true)
Definition NPC.cs:4554
static string GetFullnameByID(int npcID)
Definition NPC.cs:408
static int townRangeY
Definition NPC.cs:10808
static bool fairyLog
Definition NPC.cs:11018
void CheckDrowning()
Definition NPC.cs:10590
static bool downedFrost
Definition NPC.cs:10883
int FindBuffIndex(int type)
Definition NPC.cs:7154
void ScaleStats_ApplyGameMode(GameModeData gameModeData)
Definition NPC.cs:1391
int netSpam
Definition NPC.cs:11084
static bool savedAngler
Definition NPC.cs:10835
void AI_003_Fighters()
Definition NPC.cs:3745
static void ResetNetOffsets()
Definition NPC.cs:7380
int defense
Definition NPC.cs:11408
void AI_110_Betsy()
Definition NPC.cs:3979
static bool noSpawnCycle
Definition NPC.cs:10811
void NPCLoot()
Definition NPC.cs:5086
static void GiveTownUniqueDataToNPCsThatNeedIt(int Type, int nextNPC)
Definition NPC.cs:6648
void UpdateNPC_BuffSetFlags(bool lowerBuffTime=true)
Definition NPC.cs:8871
int damage
Definition NPC.cs:11405
const int NaturalMoonlordCountdownTime
Definition NPC.cs:11072
void ScaleStats_ApplyExpertTweaks()
Definition NPC.cs:1384
void SpawnStardustMark_StardustWorm()
Definition NPC.cs:1804
bool HittableForOnHitRewards()
Definition NPC.cs:7279
static void GetStatScalingFactors(int numPlayers, [Out] float balance, [Out] float boost)
Definition NPC.cs:1405
NetworkText GetTypeNetName()
Definition NPC.cs:845
Color GetMagicAuraColor()
Definition NPC.cs:3525
bool ShouldBestiaryGirlBeLycantrope()
Definition NPC.cs:9686
int GetAttackDamage_ForProjectiles_MultiLerp(float normalDamage, float expertDamage, float masterDamage)
Definition NPC.cs:619
static bool AnyHelpfulFairies()
Definition NPC.cs:7086
static int CountNPCS(int Type)
Definition NPC.cs:7056
bool immortal
Definition NPC.cs:11285
static int stinkBugChance
Definition NPC.cs:11168
float[] localAI
Definition NPC.cs:11387
int spriteDirection
Definition NPC.cs:11489
static bool SpawnAllowed_Nurse()
Definition NPC.cs:729
bool CountsAsACritter
Definition NPC.cs:7305
bool chaseable
Definition NPC.cs:11288
static int spawnRangeY
Definition NPC.cs:10790
static string firstNPCName(int npcType)
Definition NPC.cs:945
float Opacity
Definition NPC.cs:493
bool DoesntDespawnToInactivity()
Definition NPC.cs:4791
static void UpdateFoundActiveNPCs()
Definition NPC.cs:773
bool teleporting
Definition NPC.cs:11162
bool ForcePartyHatOn
Definition NPC.cs:11045
static bool boughtCat
Definition NPC.cs:10847
static void ResetRemixHax()
Definition NPC.cs:6046
static void OnGameEventClearedForTheFirstTime(int gameEventId)
Definition NPC.cs:5080
int oldTarget
Definition NPC.cs:11462
bool confused
Definition NPC.cs:11273
static bool unlockedSlimeRainbowSpawn
Definition NPC.cs:11333
void AI_107_ImprovedWalkers()
Definition NPC.cs:3998
static int LunarShieldPowerExpert
Definition NPC.cs:10961
static bool downedTowers
Definition NPC.cs:426
static bool unlockedSlimeGreenSpawn
Definition NPC.cs:11324
static bool downedTowerVortex
Definition NPC.cs:10928
static bool downedMechBoss2
Definition NPC.cs:10985
void AI_007_FindGoodRestingSpot(int myTileX, int myTileY, [Out] int floorX, [Out] int floorY)
Definition NPC.cs:3448
void AI_001_SetRainbowSlimeColor()
Definition NPC.cs:3952
void AI_120_HallowBoss_DashTo(Vector2 targetPosition)
Definition NPC.cs:2350
long GoodRestingTileCacheTileState
Definition NPC.cs:11576
bool onFire2
Definition NPC.cs:11234
bool venom
Definition NPC.cs:11252
void Teleport(Vector2 newPos, int Style=0, int extraInfo=0)
Definition NPC.cs:6758
static int FindFrame_FromSequence(int sequenceFrame, int[] frames)
Definition NPC.cs:4460
float lavaMovementSpeed
Definition NPC.cs:11051
bool AI_007_TownEntities_CheckIfWillDrown(bool currentlyDrowning)
Definition NPC.cs:3633
static bool downedFishron
Definition NPC.cs:10901
void DiscourageDespawn(int despawnTime)
Definition NPC.cs:814
bool stinky
Definition NPC.cs:11279
void CheckProgressPumpkinMoon()
Definition NPC.cs:5011
static bool MechSpawn(float x, float y, int type)
Definition NPC.cs:975
static bool unlockedSlimePurpleSpawn
Definition NPC.cs:11330
static bool NearSpikeBall(int x, int y)
Definition NPC.cs:7145
static int ShieldStrengthTowerNebula
Definition NPC.cs:10952
void EncourageDespawn(int despawnTime)
Definition NPC.cs:806
int friendlyRegen
Definition NPC.cs:11555
static bool savedTaxCollector
Definition NPC.cs:10823
void Collision_MoveSandshark(bool fall, Vector2 cPosition, int cWidth, int cHeight)
Definition NPC.cs:9322
void AI_045_Golem()
Definition NPC.cs:1511
void GetTileCollisionParameters([Out] Vector2 cPosition, [Out] int cWidth, [Out] int cHeight)
Definition NPC.cs:9416
static int MoonLordFightingDistance
Definition NPC.cs:11066
static void SpawnBoss(int spawnPositionX, int spawnPositionY, int Type, int targetPlayerIndex)
Definition NPC.cs:6555
bool soulDrain
Definition NPC.cs:11258
bool Boss_CanShootExtraAt(int playerIndex, int rotationIndexToAttack, int rotationSize, float attackScanDistance, bool alwaysSkipMainTarget=true)
Definition NPC.cs:2376
static bool downedBoss2
Definition NPC.cs:10868
bool GoodRestingTileCacheFound
Definition NPC.cs:11579
int aiAction
Definition NPC.cs:11390
void AI_001_Slimes()
Definition NPC.cs:3876
static void CatchNPC(int i, int who=-1)
Definition NPC.cs:5772
bool oldHomeless
Definition NPC.cs:11534
static int maximumAmountOfTimesLadyBugRainCanStack
Definition NPC.cs:11033
Player TargetPlayer
Definition NPC.cs:78
bool poisoned
Definition NPC.cs:11246
static readonly int maxBuffs
Definition NPC.cs:11210
static void setFireFlyChance()
Definition NPC.cs:9580
static int waveNumber
Definition NPC.cs:10745
static int ShieldStrengthTowerSolar
Definition NPC.cs:10946
void AI_124_DeerclopsLeg()
Definition NPC.cs:2059
static bool savedGolfer
Definition NPC.cs:10844
static bool WoFKilledToday
Definition NPC.cs:11015
void AI_108_DivingFlyer()
Definition NPC.cs:4012
bool reflectsProjectiles
Definition NPC.cs:11567
bool Collision_DecideFallThroughPlatforms()
Definition NPC.cs:9479
int lifeMax
Definition NPC.cs:11432
static int crimsonBoss
Definition NPC.cs:10775
int lifeRegenExpectedLossPerSecond
Definition NPC.cs:11270
bool dryadWard
Definition NPC.cs:11282
string GivenName
Definition NPC.cs:396
static int ignorePlayerInteractions
Definition NPC.cs:11021
bool CanApplyHunterPotionEffects()
Definition NPC.cs:7753
static int SpawnNPC_SpawnLavaBaitCritters(int spawnTileX, int spawnTileY)
Definition NPC.cs:6228
static int ShieldStrengthTowerMax
Definition NPC.cs:439
void AI_109_DarkMage()
Definition NPC.cs:4018
void BigMimicSpawnSmoke()
Definition NPC.cs:4590
static bool TowerActiveStardust
Definition NPC.cs:10973
bool closeDoor
Definition NPC.cs:11546
static bool SpawnAllowed_Demolitionist()
Definition NPC.cs:657
static void HaveDryadDoStardewAnimation()
Definition NPC.cs:1497
void SetDefaultsFromNetId(int id, [Optional] NPCSpawnParams spawnparams)
Definition NPC.cs:1117
IEntitySource GetSpawnSource_NPCHurt()
Definition NPC.cs:7676
string TypeName
Definition NPC.cs:321
bool markedByScytheWhip
Definition NPC.cs:11249
void Collision_MoveNormal(bool fall, Vector2 cPosition, int cWidth, int cHeight)
Definition NPC.cs:9312
float gfxOffY
Definition NPC.cs:11156
static void UnlockOrExchangePet(bool petBoughtFlag, int npcType, string textKeyForLicense, int netMessageData)
Definition NPC.cs:6668
Color GetAlpha(Color newColor)
Definition NPC.cs:9622
static readonly int[] _deerclopsAttack3Frames
Definition NPC.cs:11606
void moneyPing(Vector2 pos)
Definition NPC.cs:7320
void AI_120_HallowBoss()
Definition NPC.cs:2333
void GetBirdFlightRecommendation(int downScanRange, int upRange, Point tCoords, [Out] bool goDownwards, [Out] bool goUpwards)
Definition NPC.cs:2966
void ApplyTileCollision(bool fall, Vector2 cPosition, int cWidth, int cHeight)
Definition NPC.cs:9237
void TargetClosest(bool faceTarget=true)
Definition NPC.cs:4701
int aiStyle
Definition NPC.cs:11393
int breathCounter
Definition NPC.cs:11564
static int butterflyChance
Definition NPC.cs:10766
static int[] killCount
Definition NPC.cs:10739
static int safeRangeY
Definition NPC.cs:10796
static readonly int[,] MoonLordAttacksArray2
Definition NPC.cs:11063
NetworkText GetFullNetName()
Definition NPC.cs:880
static bool savedMech
Definition NPC.cs:10832
static bool unlockedMerchantSpawn
Definition NPC.cs:11345
bool coldDamage
Definition NPC.cs:11417
static Color AI_121_QueenSlime_GetDustColor()
Definition NPC.cs:2215
Vector2 GetMechQueenCenter()
Definition NPC.cs:3295
float GetMoonEventPointScalar()
Definition NPC.cs:4971
static readonly int AFKTimeNeededForNoWorms
Definition NPC.cs:11117
static int FindFirstNPC(int Type)
Definition NPC.cs:7115
bool ichor
Definition NPC.cs:11228
void UpdateNPC_BuffApplyVFX()
Definition NPC.cs:7822
static int spawnSpaceX
Definition NPC.cs:11150
bool AI_120_HallowBoss_IsGenuinelyEnraged()
Definition NPC.cs:2288
static bool SpawnAllowed_ArmsDealer()
Definition NPC.cs:683
bool setFrameSize
Definition NPC.cs:11186
bool isLikeATownNPC
Definition NPC.cs:648
Rectangle getRect()
Definition NPC.cs:7239
static bool ShouldEmpressBeEnraged()
Definition NPC.cs:2317
float takenDamageMultiplier
Definition NPC.cs:11147
static bool unlockedSlimeBlueSpawn
Definition NPC.cs:11321
bool hide
Definition NPC.cs:11450
bool ShouldFaceTarget(NPCUtils.TargetSearchResults searchResults, [Optional] NPCUtils.TargetType? overrideTargetType)
Definition NPC.cs:4661
static bool downedMechBossAny
Definition NPC.cs:10979
void SetDefaults_ForNetId(int Type, float scaleOverride)
Definition NPC.cs:1136
void GetShimmered()
Definition NPC.cs:8566
void AI_123_Deerclops_Movement(bool haltMovement, bool goHome)
Definition NPC.cs:2029
static int ladyBugRainTime
Definition NPC.cs:11030
static bool downedEmpressOfLight
Definition NPC.cs:10937
void AI_121_QueenSlime_FlyMovement()
Definition NPC.cs:2242
void DropTombstoneTownNPC(NetworkText deathText)
Definition NPC.cs:4934
int townNpcVariationIndex
Definition NPC.cs:11126
int oldHomeTileX
Definition NPC.cs:11537
int BannerID()
Definition NPC.cs:1093
bool netUpdate2
Definition NPC.cs:11477
static void SpawnWOF(Vector2 pos)
Definition NPC.cs:6435
void AI_111_DD2LightningBug()
Definition NPC.cs:4102
static int[,] cavernMonsterType
Definition NPC.cs:11009
void UpdateHomeTileState(bool homeless, int x, int y)
Definition NPC.cs:3515
static int FindFrame_Deerclops_GetAttack2Frame(int sequenceFrame)
Definition NPC.cs:4493
void AI_112_FairyCritter()
Definition NPC.cs:2939
bool GetFairyTreasureCoords([Out] Point treasureCoords)
Definition NPC.cs:3016
static int GetEaterOfWorldsSegmentsCount()
Definition NPC.cs:3208
static float gravity
Definition NPC.cs:10754
static bool unlockedDyeTraderSpawn
Definition NPC.cs:11354
int GetShootingFrame(float circleY)
Definition NPC.cs:4325
bool canDisplayBuffs
Definition NPC.cs:11222
static bool savedWizard
Definition NPC.cs:10829
NPCAimedTarget GetTargetData(bool ignorePlayerTankPets=true)
Definition NPC.cs:250
static int GetAvailableNPCSlot(int Type, int startIndex)
Definition NPC.cs:6626
bool CanBeReplacedByOtherNPCs
Definition NPC.cs:11105
void DropItemInstanced(Vector2 Position, Vector2 HitboxSize, int itemType, int itemStack=1, bool interactionRequired=true)
Definition NPC.cs:5779
bool despawnEncouraged
Definition NPC.cs:11573
float GetLifePercent()
Definition NPC.cs:874
static int[] MoonEventRequiredPointsPerWaveLookup
Definition NPC.cs:11609
static void ResetBadgerHatTime()
Definition NPC.cs:5203
static bool travelNPC
Definition NPC.cs:11006
static bool downedHalloweenKing
Definition NPC.cs:10907
void AI_87_BigMimic_FireStuffCannonBurst()
Definition NPC.cs:2118
float[] oldRot
Definition NPC.cs:11183
bool AI_003_Gnomes_ShouldTurnToStone()
Definition NPC.cs:3727
bool dontTakeDamageFromHostiles
Definition NPC.cs:11312
void TryTrackingTarget(float distance, float realDist, bool t, int tankTarget, int j)
Definition NPC.cs:4721
bool netShimmer
Definition NPC.cs:11588
static bool boughtDog
Definition NPC.cs:10850
void DoDeathEvents_AdvanceSlimeRain(Player closestPlayer)
Definition NPC.cs:5330
bool noGravity
Definition NPC.cs:11468
string GivenOrTypeName
Definition NPC.cs:379
bool oiled
Definition NPC.cs:11318
static int MaxMoonLordCountdown
Definition NPC.cs:11069
static int townRangeX
Definition NPC.cs:10805
float waterMovementSpeed
Definition NPC.cs:11048
static void ResetKillCount()
Definition NPC.cs:5027
static bool downedBoss1
Definition NPC.cs:10865
static int fireFlyChance
Definition NPC.cs:10760
float shimmerMovementSpeed
Definition NPC.cs:11057
void CountKillForAchievements()
Definition NPC.cs:5730
int[] buffTime
Definition NPC.cs:11216
void TargetClosest_WOF(bool faceTarget=true)
Definition NPC.cs:4713
int defDefense
Definition NPC.cs:11414
bool ShouldRunAway(NPCAimedTarget targetData, bool isChasing)
Definition NPC.cs:1847
string GetChat()
Definition NPC.cs:9701
const int goldCritterChance
Definition NPC.cs:11087
static bool downedSlimeKing
Definition NPC.cs:10877
bool needsUniqueInfoUpdate
Definition NPC.cs:11177
void PopAllAttachedProjectilesAndTakeDamageForThem()
Definition NPC.cs:1434
void getGoodAdjustments()
Definition NPC.cs:1214
static bool unlockedPrincessSpawn
Definition NPC.cs:11366
bool TryTeleportingCaughtMysticFrog()
Definition NPC.cs:5747
static bool RerollVariationForNPCType(int npcType)
Definition NPC.cs:6678
void UpdateNPC_CastLights()
Definition NPC.cs:8983
static int spawnRangeX
Definition NPC.cs:10787
float[] ai
Definition NPC.cs:11384
bool SpawnedFromStatue
Definition NPC.cs:11102
static int GetStackForSlimeItemDrop(int item)
Definition NPC.cs:5592
Color GetShimmerColor(Color newColor)
Definition NPC.cs:9647
static int GetEaterOfWorldsSegmentsCountByGamemode(int gamemode)
Definition NPC.cs:3232
static bool savedGoblin
Definition NPC.cs:10826
static int SpawnNPC_TryFindingProperGroundTileType(int spawnTileType, int x, int y)
Definition NPC.cs:6298
int oldDirectionY
Definition NPC.cs:11459
void CheckProgressFrostMoon()
Definition NPC.cs:4995
static bool TowerActiveVortex
Definition NPC.cs:10967
static int[,] InitializeMoonLordAttacks2()
Definition NPC.cs:305
void AI_87_BigMimic_ShootItem(int itemID)
Definition NPC.cs:2126
void CreateBrickBoxForWallOfFlesh()
Definition NPC.cs:5245
int extraValue
Definition NPC.cs:11501
static int GetNPCInvasionGroup(int npcID)
Definition NPC.cs:4954
bool CanBeChasedBy([Optional] object attacker, bool ignoreDontTakeDamage=false)
Definition NPC.cs:7266
static int defaultSpawnRate
Definition NPC.cs:10817
int doorX
Definition NPC.cs:11549
void AttemptToConvertNPCToEvil(bool crimson)
Definition NPC.cs:8865
void FaceTarget()
Definition NPC.cs:4688
bool AI_007_TownEntities_IsInAGoodRestingSpot(int tileX, int tileY, int idealRestX, int idealRestY)
Definition NPC.cs:3424
void AI_123_Deerclops_FindSpotToSpawnSpike(int howMany, int whichOne, int x, int y)
Definition NPC.cs:1976
static int sWidth
Definition NPC.cs:10781
static bool unlockedTruffleSpawn
Definition NPC.cs:11357
static bool empressRageMode
Definition NPC.cs:11597
static void SpawnFaelings(int plr)
Definition NPC.cs:6479
static bool taxCollector
Definition NPC.cs:10748
Rectangle targetRect
Definition NPC.cs:11435
static bool IsDeerclopsHostile()
Definition NPC.cs:1814
const float nameOverDistance
Definition NPC.cs:11096
static bool combatBookWasUsed
Definition NPC.cs:10856
bool HasPlayerTarget
Definition NPC.cs:109
static IEntitySource GetSpawnSource_NPCCatch(int whoCatchedIt)
Definition NPC.cs:7649
void getZenithSeedAdjustmentsBeforeEverything()
Definition NPC.cs:1205
bool midas
Definition NPC.cs:11225
static readonly int[] _deerclopsAttack1Frames
Definition NPC.cs:11600
int housingCategory
Definition NPC.cs:11531
void SetDefaults(int Type, [Optional] NPCSpawnParams spawnparams)
Definition NPC.cs:1155
void TargetClosestUpgraded(bool faceTarget=true, [Optional] Vector2? checkPosition)
Definition NPC.cs:4695
float strengthMultiplier
Definition NPC.cs:11516
void AI_002_FloatingEye()
Definition NPC.cs:3334
static int maxSpawns
Definition NPC.cs:11000
void NPCLoot_DropMoney(Player closestPlayer)
Definition NPC.cs:5481
static bool[] ShimmeredTownNPCs
Definition NPC.cs:11120
void UpdateNPC_UpdateGravity([Out] float maxFallSpeed)
Definition NPC.cs:7726
void UpdateNPC_BuffFlagsReset()
Definition NPC.cs:8884
void NPCLoot_DropCommonLifeAndMana(Player closestPlayer)
Definition NPC.cs:5423
static bool downedTowerStardust
Definition NPC.cs:10934
int FindClosestPlayer([Out] float distanceToPlayer)
Definition NPC.cs:4579
int homeTileX
Definition NPC.cs:11525
static int LunarShieldPowerNormal
Definition NPC.cs:10958
float knockBackResist
Definition NPC.cs:11456
int doorY
Definition NPC.cs:11552
void DoDeathEvents_SummonDungeonSpirit(Player closestPlayer)
Definition NPC.cs:5282
static float totalInvasionPoints
Definition NPC.cs:11090
static bool unlockedSlimeRedSpawn
Definition NPC.cs:11336
bool dontTakeDamage
Definition NPC.cs:11504
static bool downedMechBoss3
Definition NPC.cs:10988
void CountKillForBannersAndDropThem()
Definition NPC.cs:5631
void ApplyInteraction(int player)
Definition NPC.cs:5825
static int LunarShieldPowerMax
Definition NPC.cs:11369
static bool BusyWithAnyInvasionOfSorts()
Definition NPC.cs:481
static void HealEffect(Rectangle r, int healAmount, bool broadcast=true)
Definition NPC.cs:4566
void UpdateNetworkCode(int i)
Definition NPC.cs:7523
void SpawnPassiveShadowHands(float lifePercent, int shadowHandDamage)
Definition NPC.cs:1876
void SetFrameSize()
Definition NPC.cs:4434
static int ShieldStrengthTowerStardust
Definition NPC.cs:10955
static int ReleaseNPC(int x, int y, int Type, int Style, int who)
Definition NPC.cs:5858
void AI_047_GolemFist()
Definition NPC.cs:1505
bool friendly
Definition NPC.cs:11543
void AI_007_TownEntities()
Definition NPC.cs:3553
static bool downedPirates
Definition NPC.cs:10886
void GetLifeStats([Out] int statLife, [Out] int statLifeMax)
Definition NPC.cs:861
static int ShieldStrengthTowerVortex
Definition NPC.cs:10949
float stepSpeed
Definition NPC.cs:11159
void NPCLoot_DropItems(Player closestPlayer)
Definition NPC.cs:5193
void AI_007_TownEntities_Shimmer_TeleportToLandingSpot()
Definition NPC.cs:3559
static bool GetNPCLocation(int i, bool seekHead, bool averageDirection, [Out] int index, [Out] Vector2 pos)
Definition NPC.cs:1410
static bool downedMoonlord
Definition NPC.cs:10922
static void SlimeRainSpawns(int plr)
Definition NPC.cs:5868
float value
Definition NPC.cs:11498
void CheckActive()
Definition NPC.cs:4811
void LazySetLiquidMovementDD2()
Definition NPC.cs:1221
double StrikeNPC(int Damage, float knockBack, int hitDirection, bool crit=false, bool noEffect=false, bool fromNet=false)
Definition NPC.cs:6834
static bool IsValidSpawningGroundTile(int x, int y)
Definition NPC.cs:6322
static bool unlockedPartyGirlSpawn
Definition NPC.cs:11351
static bool freeCake
Definition NPC.cs:10751
void UpdateNPC_UpdateTrails()
Definition NPC.cs:7718
static bool PreventJojaColaDialog
Definition NPC.cs:11621
static bool IsMechQueenUp
Definition NPC.cs:1715
void AI_065_Butterflies()
Definition NPC.cs:2188
void SetDefaultsKeepPlayerInteraction(int Type)
Definition NPC.cs:1128
static float GetBalance()
Definition NPC.cs:1327
static bool FindTreeBranch(int landX, int landY, [Out] int treeBranchX, [Out] int treeBranchY)
Definition NPC.cs:6375
bool onFire
Definition NPC.cs:11231
static bool BigMimicSummonCheck(int x, int y, Player user)
Definition NPC.cs:4600
void AI_007_TownEntities_GetWalkPrediction(int myTileX, int homeFloorX, bool canBreathUnderWater, bool currentlyDrowning, int tileX, int tileY, [Out] bool keepwalking, [Out] bool avoidFalling)
Definition NPC.cs:3610
void TryPortalJumping()
Definition NPC.cs:10635
bool GetWereThereAnyInteractions()
Definition NPC.cs:5722
float scale
Definition NPC.cs:11453
static bool DespawnEncouragement_AIStyle2_FloatingEye_IsDiscouraged(int npcID, Vector2 npcPosition, int target=255)
Definition NPC.cs:3400
static bool AnyDanger(bool quickBossNPCCheck=false, bool ignorePillarsAndMoonlordCountdown=false)
Definition NPC.cs:6409
bool trapImmune
Definition NPC.cs:11420
static string GetFirstNPCNameOrNull(int npcType)
Definition NPC.cs:961
int lifeRegen
Definition NPC.cs:11264
bool betsysCurse
Definition NPC.cs:11315
static int spawnRate
Definition NPC.cs:10997
static bool TowerActiveSolar
Definition NPC.cs:10964
void CopyInteractions(NPC npc)
Definition NPC.cs:3199
void AI_119_Dandelion()
Definition NPC.cs:2403
bool collideX
Definition NPC.cs:11480
bool collideY
Definition NPC.cs:11483
void Collision_MoveSolarSroller(bool fall, Vector2 cPosition, int cWidth, int cHeight)
Definition NPC.cs:9341
void NPCLoot_DropHeals(Player closestPlayer)
Definition NPC.cs:5349
static bool AnyNPCs(int Type)
Definition NPC.cs:7102
static int SpawnNPC_GetGemBunnyToSpawn()
Definition NPC.cs:6129
static int FindFrame_Deerclops_GetAttack1Frame(int sequenceFrame)
Definition NPC.cs:4466
void SetNetShimmerEffect()
Definition NPC.cs:1148
static void TransformCopperSlime(int npcIndex)
Definition NPC.cs:1485
bool AI_AttemptToFindTeleportSpot(Vector2 chosenTile, int targetTileX, int targetTileY, int rangeFromTargetTile=20, int telefragPreventionDistanceInTiles=5, int solidTileCheckFluff=1, bool solidTileCheckCentered=false, bool teleportInAir=false)
Definition NPC.cs:1456
static bool SpawnNPC_CheckToSpawnUndergroundFairy(int spawnTileX, int spawnTileY, int plr)
Definition NPC.cs:6192
void AI_069_DukeFishron()
Definition NPC.cs:3041
bool HasValidTarget
Definition NPC.cs:61
void AI_124_ElderSlimeChest()
Definition NPC.cs:1762
static int GetActivePlayerCount()
Definition NPC.cs:1375
void AI_121_QueenSlime()
Definition NPC.cs:2258
int GetAttackDamage_LerpBetweenFinalValues(float normalDamage, float expertDamage)
Definition NPC.cs:571
int alpha
Definition NPC.cs:11447
static int safeRangeX
Definition NPC.cs:10793
Color color
Definition NPC.cs:11444
const int NPC_TARGETS_START
Definition NPC.cs:11039
bool ExcludedFromDeathTally()
Definition NPC.cs:5606
void AI_120_HallowBoss_DoMagicEffect(Vector2 spot, int effectType, float progress)
Definition NPC.cs:2312
static int maxAI
Definition NPC.cs:10736
LegacySoundStyle DeathSound
Definition NPC.cs:11426
Point GoodRestingTileCacheResult
Definition NPC.cs:11585
bool DoesntDespawnToInactivityAndCountsNPCSlots()
Definition NPC.cs:4767
IEntitySource GetSpawnSourceForProjectileNPC()
Definition NPC.cs:7688
static bool CanReleaseNPCs(int who)
Definition NPC.cs:5832
static bool IsADeerclopsNearScreen()
Definition NPC.cs:1949
void ScaleStats_ApplyMultiplayerStats(int numPlayers, float balance, float boost, float bossAdjustment)
Definition NPC.cs:1398
bool[] playerInteraction
Definition NPC.cs:11141
NetworkText GetGivenOrTypeNetName()
Definition NPC.cs:901
void UpdateNPC(int i)
Definition NPC.cs:7395
int altTexture
Definition NPC.cs:11123
static void SetRemixHax()
Definition NPC.cs:6054
static bool downedQueenBee
Definition NPC.cs:10874
static bool downedHalloweenTree
Definition NPC.cs:10904
double StrikeNPCNoInteraction(int Damage, float knockBack, int hitDirection, bool crit=false, bool noEffect=false, bool fromNet=false)
Definition NPC.cs:6806
void Collision_WalkDownSlopes()
Definition NPC.cs:9566
static int RollDragonflyType(int tileType=2)
Definition NPC.cs:6019
static Color buffColor(Color newColor, float R, float G, float B, float A)
Definition NPC.cs:7746
Color GetBestiaryEntryColor()
Definition NPC.cs:9613
bool RerollVariation()
Definition NPC.cs:6688
static void FairyEffects(Vector2 Position, int type)
Definition NPC.cs:2958
bool AnyInteractions()
Definition NPC.cs:5035
void TransformVisuals(int oldType, int newType)
Definition NPC.cs:6714
static bool downedChristmasTree
Definition NPC.cs:10913
static bool WouldBeEncouragedToDespawn(int aistyle, int type)
Definition NPC.cs:821
int GetBossHeadTextureIndex()
Definition NPC.cs:1008
static int RerollDryadText
Definition NPC.cs:11624
float rotation
Definition NPC.cs:11465
bool IsDamageDodgeable()
Definition NPC.cs:5064
bool bloodButchered
Definition NPC.cs:11300
static string getNewNPCNameInner(int npcType)
Definition NPC.cs:839
static int deerclopsBoss
Definition NPC.cs:10778
static bool unlockedSlimeOldSpawn
Definition NPC.cs:11327
bool UsesPartyHat()
Definition NPC.cs:4384
void AI_123_Deerclops_ShootRubbleUp(NPCAimedTarget targetData, Point sourceTileCoords, int howMany, int distancedByThisManyTiles, float upBiasPerSpike, int whichOne)
Definition NPC.cs:1900
static bool downedGoblins
Definition NPC.cs:10880
static float waveKills
Definition NPC.cs:10742
void AI_122_PirateGhost()
Definition NPC.cs:2151
static readonly int[] _deerclopsAttack2Frames
Definition NPC.cs:11603
void AI_000_TransformBoundNPC(int playerID, int npcType)
Definition NPC.cs:2176
bool behindTiles
Definition NPC.cs:11492
string GetBestiaryCreditId()
Definition NPC.cs:10657
void DelBuff(int buffIndex)
Definition NPC.cs:7216
static int AI_001_Slimes_GenerateItemInsideBody(bool isBallooned)
Definition NPC.cs:3963
void SubAI_HandleTemporaryCatchableNPCPlayerInvulnerability()
Definition NPC.cs:7485
void DoDeathEvents_CelebrateBossDeath()
Definition NPC.cs:5220
static void SpawnSkeletron(int onWho)
Definition NPC.cs:6460
static int FindFrame_Deerclops_GetAttack3Frame(int sequenceFrame)
Definition NPC.cs:4520
const float nameOverIncrement
Definition NPC.cs:11093
Vector2 GetFairyCircleOffset(float elapsedTime, float circleRotation, float circleHeight)
Definition NPC.cs:2991
static bool downedClown
Definition NPC.cs:10889
static bool Spawning_SandstoneCheck(int x, int y)
Definition NPC.cs:5950
double frameCounter
Definition NPC.cs:11438
void AI_125_ClumsySlimeBalloon()
Definition NPC.cs:1769
IEntitySource GetSpawnSourceForNPCFromNPCAI()
Definition NPC.cs:7706
float shimmerTransparency
Definition NPC.cs:11204
static int NewNPC(IEntitySource source, int X, int Y, int Type, int Start=0, float ai0=0f, float ai1=0f, float ai2=0f, float ai3=0f, int Target=255)
Definition NPC.cs:6568
static void SpawnOnPlayer(int plr, int Type)
Definition NPC.cs:6492
IEntitySource GetItemSource_Misc(int itemSourceId)
Definition NPC.cs:7616
void IdleSounds()
Definition NPC.cs:7326
bool shimmering
Definition NPC.cs:11261
bool lavaImmune
Definition NPC.cs:11495
SpriteEffects GetBossHeadSpriteEffects()
Definition NPC.cs:1068
void AI_084_LunaticCultist()
Definition NPC.cs:4006
void AI_116_WaterStriders()
Definition NPC.cs:2593
static bool peddlersSatchelWasUsed
Definition NPC.cs:10862
bool noTileCollide
Definition NPC.cs:11471
void FishTransformationDuringRain()
Definition NPC.cs:9463
int defDamage
Definition NPC.cs:11411
int lastInteraction
Definition NPC.cs:11144
int catchableNPCTempImmunityCounter
Definition NPC.cs:11507
static int offSetDelayTime
Definition NPC.cs:11036
static bool SpawnMechQueen(int onWhichPlayer)
Definition NPC.cs:1729
float npcSlots
Definition NPC.cs:11201
IEntitySource GetItemSource_Loot()
Definition NPC.cs:7712
void AI_037_Destroyer()
Definition NPC.cs:3047
static IEntitySource GetBossSpawnSource(int targetPlayerIndex)
Definition NPC.cs:6528
static float cloudAlphaHax
Definition NPC.cs:11618
static void LadyBugKilled(Vector2 Position, bool GoldLadyBug=false)
Definition NPC.cs:6864
static bool SpawnAllowed_Merchant()
Definition NPC.cs:745
override string ToString()
Definition NPC.cs:10681
static bool AnyoneNearCultists()
Definition NPC.cs:6418
bool Collision_LavaCollision()
Definition NPC.cs:9539
void AI_007_AttemptToPlayIdleAnimationsForPets(int petIdleChance)
Definition NPC.cs:3639
static int activeRangeX
Definition NPC.cs:10799
static bool EoCKilledToday
Definition NPC.cs:11012
int GetAttackDamage_ScaledByStrength(float normalDamage)
Definition NPC.cs:523
bool stairFall
Definition NPC.cs:11165
void CheckActive_WormSegments()
Definition NPC.cs:4866
void ReflectProjectile(Projectile proj)
Definition NPC.cs:4295
bool[] buffImmune
Definition NPC.cs:11219
void LadyBugLuck(int plr, bool GoldLadyBug=false)
Definition NPC.cs:6884
static void ClearFoundActiveNPCs()
Definition NPC.cs:761
void AI_113_WindyBalloon()
Definition NPC.cs:2821
void checkDead()
Definition NPC.cs:4923
static string getNewNPCName(int npcType)
Definition NPC.cs:830
int GetAttackDamage_ForProjectiles(float normalDamage, float expertDamage)
Definition NPC.cs:595
void BloodNautilus_CallForHelp()
Definition NPC.cs:2537
static int spawnSpaceY
Definition NPC.cs:11153
static int fireFlyFriendly
Definition NPC.cs:10757
static bool rainingHax
Definition NPC.cs:11615
static int MoonLordCountdown
Definition NPC.cs:10730
int oldHomeTileY
Definition NPC.cs:11540
void AddIntoPlayersTownNPCSlots()
Definition NPC.cs:4888
void UpdateAltTexture()
Definition NPC.cs:7332
bool canGhostHeal
Definition NPC.cs:11291
int netID
Definition NPC.cs:11510
void Collision_MoveSlopesAndStairFall(bool fall)
Definition NPC.cs:9244
static int[] lazyNPCOwnedProjectileSearchArray
Definition NPC.cs:10994
int netStream
Definition NPC.cs:11171
bool AI_120_HallowBoss_IsInPhase2()
Definition NPC.cs:2264
static bool combatBookVolumeTwoWasUsed
Definition NPC.cs:10859
void HitEffect(int hitDirection=0, double dmg=10.0)
Definition NPC.cs:6931
int AI_123_Deerclops_TryMakingSpike_FindBestY(Point sourceTileCoords, int x)
Definition NPC.cs:2005
void AI_118_Seahorses()
Definition NPC.cs:2432
void BloodNautilus_GetMouthPositionAndRotation([Out] Vector2 mouthPosition, [Out] Vector2 mouthDirection)
Definition NPC.cs:4280
int rarity
Definition NPC.cs:11138
Tuple< Vector2, float > GetSwingStats(int swingMax, int swingCurrent, int aimDir, int itemWidth, int itemHeight)
Definition NPC.cs:4349
void Collision_MoveWhileWet(Vector2 oldDryVelocity, float Slowdown=0.5f)
Definition NPC.cs:9397
static bool unlockedNurseSpawn
Definition NPC.cs:11363
float nameOver
Definition NPC.cs:11099
static IEntitySource GetSpawnSource_NPCRelease(int whoReleasedIt)
Definition NPC.cs:7622
bool justHit
Definition NPC.cs:11396
bool tentacleSpiked
Definition NPC.cs:11297
void UpdateCollision()
Definition NPC.cs:9169
void Collision_MoveBlazingWheel()
Definition NPC.cs:9381
void SpawnStardustMark_StardustTower()
Definition NPC.cs:1794
static bool downedGolemBoss
Definition NPC.cs:10895
static void SpawnNPC()
Definition NPC.cs:6086
void CheckLifeRegen()
Definition NPC.cs:9146
static bool LunarApocalypseIsUp
Definition NPC.cs:10976
bool CanBeTalkedTo
Definition NPC.cs:45
const int breathMax
Definition NPC.cs:11561
void TrySyncingUniqueTownNPCData(int npcIndex)
Definition NPC.cs:7507
bool dripping
Definition NPC.cs:11108
void AI_115_LadyBugs()
Definition NPC.cs:2606
bool CanReflectProjectile(Projectile proj)
Definition NPC.cs:4253
static bool downedMartians
Definition NPC.cs:10898
bool drippingSlime
Definition NPC.cs:11111
static int mechQueen
Definition NPC.cs:11591
float GetBossHeadRotation()
Definition NPC.cs:1041
bool celled
Definition NPC.cs:11303
static bool TowersDefeated
Definition NPC.cs:470
static bool boughtBunny
Definition NPC.cs:10853
void ReflectProjectiles(Rectangle myRect)
Definition NPC.cs:4245
string _givenName
Definition NPC.cs:11198
void PlayerInteraction(int player)
Definition NPC.cs:5814
int TranslatedTargetIndex
Definition NPC.cs:196
void DoDeathEvents(Player closestPlayer)
Definition NPC.cs:5356
bool javelined
Definition NPC.cs:11294
static bool downedChristmasIceQueen
Definition NPC.cs:10910
bool homeless
Definition NPC.cs:11522
void DoDeathEvents_BeforeLoot(Player closestPlayer)
Definition NPC.cs:5186
static bool downedAncientCultist
Definition NPC.cs:10919
static int golemBoss
Definition NPC.cs:10769
float GetAttackDamage_LerpBetweenFinalValuesFloat(float normalDamage, float expertDamage)
Definition NPC.cs:547
bool IsShimmerVariant
Definition NPC.cs:280
static bool downedBoss3
Definition NPC.cs:10871
void MakeTransitionEffectsForTextureChanges(int oldAltTexture, int currentAltTexture)
Definition NPC.cs:7343
void Transform(int newType)
Definition NPC.cs:6764
void DoDeathEvents_DropBossPotionsAndHearts()
Definition NPC.cs:5211
short releaseOwner
Definition NPC.cs:11135
static bool FindCattailTop(int landX, int landY, [Out] int cattailX, [Out] int cattailY)
Definition NPC.cs:6349
static readonly int[,,,] MoonLordAttacksArray
Definition NPC.cs:11060
void GetHurtByOtherNPCs(bool[] acceptableNPCIDs)
Definition NPC.cs:9050
bool GetSpecialEventTextIfNotEmpty(string specialTextKey, object substitutes, string specialEventText)
Definition NPC.cs:10578
static int SpawnNPC_GetGemSquirrelToSpawn()
Definition NPC.cs:6139
IEntitySource GetSpawnSource_ForProjectile()
Definition NPC.cs:7682
static bool[] npcsFoundForCheckActive
Definition NPC.cs:10991
int lastPortalColorIndex
Definition NPC.cs:11570
static void SetWorldSpecificMonstersByWorldID()
Definition NPC.cs:1227
bool IsNPCValidForBestiaryKillCredit()
Definition NPC.cs:5161
void AI_123_Deerclops_MakeSpikesForward(int AISLOT_PhaseCounter, NPCAimedTarget targetData)
Definition NPC.cs:1907
static IEntitySource GetSpawnSourceForTownSpawn()
Definition NPC.cs:7700
int teleportStyle
Definition NPC.cs:11078
static bool unlockedSlimeYellowSpawn
Definition NPC.cs:11339
static bool downedPlantBoss
Definition NPC.cs:10892
const int ItemMoonlordCountdownTime
Definition NPC.cs:11075
short catchItem
Definition NPC.cs:11132
static int ladyBugGoodLuckTime
Definition NPC.cs:11024
bool NPCCanStickToWalls()
Definition NPC.cs:3703
void DropEoWLoot(bool fromCheckDead=true)
Definition NPC.cs:4960
int soundDelay
Definition NPC.cs:11372
static bool DespawnEncouragement_AIStyle3_Fighters_CanBeBusyWithAction(int npcID)
Definition NPC.cs:3871
static bool savedBartender
Definition NPC.cs:10841
static bool TooWindyForButterflies
Definition NPC.cs:2564
static bool SpawnAllowed_DyeTrader()
Definition NPC.cs:702
bool shadowFlame
Definition NPC.cs:11255
bool Collision_WaterCollision(bool lava)
Definition NPC.cs:9509
void UpdateNPC_BloodMoonTransformations()
Definition NPC.cs:8846
static bool dayTimeHax
Definition NPC.cs:11612
void UpdateNPC_BuffClearExpiredBuffs()
Definition NPC.cs:8821
static int defaultMaxSpawns
Definition NPC.cs:10820
float teleportTime
Definition NPC.cs:11081
bool HasSpecialEventText(string specialTextCategoryKey, [Out] string specialEventText)
Definition NPC.cs:10495
void AI_007_TownEntities_TeleportToHome(int homeFloorX, int homeFloorY)
Definition NPC.cs:3595
void ScaleStats(int? activePlayersCount, GameModeData gameModeData, float? strengthOverride)
Definition NPC.cs:1249
static void TransformElderSlime(int npcIndex)
Definition NPC.cs:1473
int FindClosestPlayer()
Definition NPC.cs:4572
void UpdateNPC_SoulDrainDebuff()
Definition NPC.cs:7740
bool onFrostBurn2
Definition NPC.cs:11243
void NPCLuck()
Definition NPC.cs:6914
bool daybreak
Definition NPC.cs:11309
static bool unlockedDemolitionistSpawn
Definition NPC.cs:11348
static IEntitySource GetSpawnSourceForNaturalSpawn()
Definition NPC.cs:7694
void SetDefaults_ForNetId(int Type, NPCSpawnParams spawnparams, float scaleOverride)
Definition NPC.cs:1141
void AI_005_EaterOfSouls()
Definition NPC.cs:3193
void getTenthAnniversaryAdjustments()
Definition NPC.cs:1198
PartyHatColor GetPartyHatColor()
Definition NPC.cs:4409
static int brainOfGravity
Definition NPC.cs:11594
bool loveStruck
Definition NPC.cs:11276
void GetImmuneTime(int fromWho, int time)
Definition NPC.cs:9163
static bool TowerActiveNebula
Definition NPC.cs:10970
void ScaleStats_UseStrengthMultiplier(float strength)
Definition NPC.cs:1288
static bool DespawnEncouragement_AIStyle3_Fighters_NotDiscouraged(int npcID, Vector2 position, NPC npcInstance)
Definition NPC.cs:3835
float honeyMovementSpeed
Definition NPC.cs:11054
int[] buffType
Definition NPC.cs:11213
static void SetEventFlagCleared(bool eventFlag, int gameEventId)
Definition NPC.cs:5074
Color GetNPCColorTintedByBuffs(Color npcColor)
Definition NPC.cs:7777
static int activeTime
Definition NPC.cs:10814
bool onFire3
Definition NPC.cs:11237
void AI_006_Worms()
Definition NPC.cs:3319
static int immuneTime
Definition NPC.cs:10733
void AI_123_Deerclops_TryMakingSpike(Point sourceTileCoords, int dir, int howMany, int whichOne, int xOffset)
Definition NPC.cs:1993
int realLife
Definition NPC.cs:11195
static bool SpawnTileOrAboveHasAnyWallInSet(int x, int y, bool[] wallTypes)
Definition NPC.cs:6062
void SetTargetTrackingValues(bool faceTarget, float realDist, int tankTarget)
Definition NPC.cs:4744
bool onFrostBurn
Definition NPC.cs:11240
NPC AI_113_WindyBalloon_GetSlaveNPC()
Definition NPC.cs:2913
Rectangle frame
Definition NPC.cs:11441
int directionY
Definition NPC.cs:11378
NetworkText GetGivenNetName()
Definition NPC.cs:912
object Clone()
Definition NPC.cs:10463
static bool downedMechBoss1
Definition NPC.cs:10982
int[] streamPlayer
Definition NPC.cs:11174
void SimpleFlyMovement(Vector2 desiredVelocity, float moveSpeed)
Definition NPC.cs:4547
Vector2? AI_007_TownEntities_Shimmer_ScanForBestSpotToLandOn()
Definition NPC.cs:3578
int lifeRegenCount
Definition NPC.cs:11267
static NPC()
Definition NPC.cs:10723
void Collision_MoveWhileDry()
Definition NPC.cs:9213
int WhoAmIToTargettingIndex
Definition NPC.cs:224
static int GetBrainOfCthuluCreepersCount()
Definition NPC.cs:3241
bool netUpdate
Definition NPC.cs:11474
Vector2[] oldPos
Definition NPC.cs:11180
bool IsABestiaryIconDummy
Definition NPC.cs:11042
void AI_123_Deerclops_MakeSpikesBothSides(int AISLOT_PhaseCounter, NPCAimedTarget targetData)
Definition NPC.cs:1928
static bool downedDeerclops
Definition NPC.cs:10943
void Collision_MoveStardustCell(bool fall, Vector2 cPosition, int cWidth, int cHeight)
Definition NPC.cs:9362
int statsAreScaledForThisManyPlayers
Definition NPC.cs:11513
Color GetColor(Color newColor)
Definition NPC.cs:9657
void AI_007_TryForcingSitting(int homeFloorX, int homeFloorY)
Definition NPC.cs:3463
int target
Definition NPC.cs:11402
Point GoodRestingTileCacheOrigin
Definition NPC.cs:11582
static bool unlockedSlimeCopperSpawn
Definition NPC.cs:11342
bool HasLuckTextForWizard([Out] string specialEventText)
Definition NPC.cs:10469
static int plantBoss
Definition NPC.cs:10772
static bool SpawnNPC_CheckToSpawnRockGolem(int spawnTileX, int spawnTileY, int plr, int tileType)
Definition NPC.cs:6149
static int activeRangeY
Definition NPC.cs:10802
void AI_123_Deerclops()
Definition NPC.cs:1841
static int fireFlyMultiple
Definition NPC.cs:10763
void StingerExplosion()
Definition NPC.cs:3383
static bool unlockedArmsDealerSpawn
Definition NPC.cs:11360
void AddBuff(int type, int time, bool quiet=false)
Definition NPC.cs:7179
static int GetAvailableAmountOfNPCsToSpawnUpToSlot(int amountWeWant, int highestNPCSlotIndexWeWillPick=100)
Definition NPC.cs:6501
void ViolentlySpawnNerdySlime()
Definition NPC.cs:5402
int netSkip
Definition NPC.cs:11189
static void GetMeleeCollisionData(Rectangle victimHitbox, int enemyIndex, int specialHitSetter, float damageMultiplier, Rectangle npcRect)
Definition NPC.cs:10644
bool townNPC
Definition NPC.cs:11519
bool HasNPCTarget
Definition NPC.cs:137
void RequestBuffRemoval(int buffTypeToRemove)
Definition NPC.cs:7197
void AI()
Definition NPC.cs:1756
static bool downedTowerNebula
Definition NPC.cs:10931
static bool downedQueenSlime
Definition NPC.cs:10940
int homeTileY
Definition NPC.cs:11528
LegacySoundStyle HitSound
Definition NPC.cs:11423
static int[,,,] InitializeMoonLordAttacks()
Definition NPC.cs:291
void BeHurtByOtherNPC(int npcIndex, NPC thatNPC)
Definition NPC.cs:9074
static void setNPCName(string newName, int npcType, bool resetExtras=false)
Definition NPC.cs:922
static void ClearFoundNPCTypesForBestiary()
Definition NPC.cs:785
static bool savedStylist
Definition NPC.cs:10838
void UpdateNPC_TeleportVisuals()
Definition NPC.cs:8889
static int sHeight
Definition NPC.cs:10784
bool ZoneJungle
Definition Player.cs:680
bool ZoneDungeon
Definition Player.cs:620
int numberOfDeathsPVE
Definition Player.cs:20333
bool HasItem(int type)
Definition Player.cs:19341
bool ZoneGraveyard
Definition Player.cs:1070
bool ZoneLihzhardTemple
Definition Player.cs:1055
int RollLuck(int range)
Definition Player.cs:5616
int golferScoreAccumulated
Definition Player.cs:21752
static void FindRecipes(bool canDelayCheck=false)
Definition Recipe.cs:204
static bool ActiveAndWalkableTile(int i, int j)
static bool SolidTile(short tileSHeader, ushort tileType)
static void CheckAchievement_RealEstateAndTownSlimes()
Definition WorldGen.cs:685
static bool PlaceTile(int i, int j, int Type, bool mute=false, bool forced=false, int plr=-1, int style=0)
static UnifiedRandom genRand
Definition WorldGen.cs:38
static void QuickFindHome(int npc)
Definition WorldGen.cs:742
static bool SolidTileAllowBottomSlope(int i, int j)
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:1952
void Intersects(Rectangle value, [Out] bool result)
Definition Rectangle.cs:263
static DateTime Now
Definition DateTime.cs:530
NPCSpawnParams WithScale(float scaleOverride)
bool nactive()
Definition Tile.cs:1187
byte liquid
Definition Tile.cs:110
bool IsLoaded
Definition Tile.cs:34
short frameY
Definition Tile.cs:285
ushort type
Definition Tile.cs:58
short frameX
Definition Tile.cs:244
bool active()
Definition Tile.cs:1241
bool lava()
Definition Tile.cs:845
ushort wall
Definition Tile.cs:85
void ClearTile()
Definition Tile.cs:368