Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
CommonConditions.cs
Go to the documentation of this file.
1using System;
4
6
7public static class CommonConditions
8{
9 public abstract class ConditionBase : ChromaCondition
10 {
12 }
13
15 {
16 private Func<Player, bool> _condition;
17
18 public SimpleCondition(Func<Player, bool> condition)
19 {
20 _condition = condition;
21 }
22
23 public override bool IsActive()
24 {
25 return _condition(base.CurrentPlayer);
26 }
27 }
28
29 public static class SurfaceBiome
30 {
31 public static readonly ChromaCondition Ocean = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneBeach && player.ZoneOverworldHeight);
32
33 public static readonly ChromaCondition Desert = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneDesert && !player.ZoneBeach && player.ZoneOverworldHeight);
34
35 public static readonly ChromaCondition Jungle = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneJungle && player.ZoneOverworldHeight);
36
37 public static readonly ChromaCondition Snow = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneSnow && player.ZoneOverworldHeight);
38
39 public static readonly ChromaCondition Mushroom = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneGlowshroom && player.ZoneOverworldHeight);
40
41 public static readonly ChromaCondition Corruption = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneCorrupt && player.ZoneOverworldHeight);
42
43 public static readonly ChromaCondition Hallow = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneHallow && player.ZoneOverworldHeight);
44
45 public static readonly ChromaCondition Crimson = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneCrimson && player.ZoneOverworldHeight);
46 }
47
48 public static class MiscBiome
49 {
50 public static readonly ChromaCondition Meteorite = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneMeteor);
51 }
52
53 public static class UndergroundBiome
54 {
55 public static readonly ChromaCondition Hive = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneHive);
56
57 public static readonly ChromaCondition Jungle = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneJungle && !player.ZoneOverworldHeight);
58
59 public static readonly ChromaCondition Mushroom = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneGlowshroom && !player.ZoneOverworldHeight);
60
61 public static readonly ChromaCondition Ice = (ChromaCondition)(object)new SimpleCondition(InIce);
62
63 public static readonly ChromaCondition HallowIce = (ChromaCondition)(object)new SimpleCondition((Player player) => InIce(player) && player.ZoneHallow);
64
65 public static readonly ChromaCondition CrimsonIce = (ChromaCondition)(object)new SimpleCondition((Player player) => InIce(player) && player.ZoneCrimson);
66
67 public static readonly ChromaCondition CorruptIce = (ChromaCondition)(object)new SimpleCondition((Player player) => InIce(player) && player.ZoneCorrupt);
68
69 public static readonly ChromaCondition Hallow = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneHallow && !player.ZoneOverworldHeight);
70
71 public static readonly ChromaCondition Crimson = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneCrimson && !player.ZoneOverworldHeight);
72
73 public static readonly ChromaCondition Corrupt = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneCorrupt && !player.ZoneOverworldHeight);
74
75 public static readonly ChromaCondition Desert = (ChromaCondition)(object)new SimpleCondition(InDesert);
76
77 public static readonly ChromaCondition HallowDesert = (ChromaCondition)(object)new SimpleCondition((Player player) => InDesert(player) && player.ZoneHallow);
78
79 public static readonly ChromaCondition CrimsonDesert = (ChromaCondition)(object)new SimpleCondition((Player player) => InDesert(player) && player.ZoneCrimson);
80
81 public static readonly ChromaCondition CorruptDesert = (ChromaCondition)(object)new SimpleCondition((Player player) => InDesert(player) && player.ZoneCorrupt);
82
83 public static readonly ChromaCondition Temple = (ChromaCondition)(object)new SimpleCondition(InTemple);
84
85 public static readonly ChromaCondition Dungeon = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneDungeon);
86
87 public static readonly ChromaCondition Marble = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneMarble);
88
89 public static readonly ChromaCondition Granite = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneGranite);
90
91 public static readonly ChromaCondition GemCave = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneGemCave);
92
93 public static readonly ChromaCondition Shimmer = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneShimmer);
94
95 private static bool InTemple(Player player)
96 {
97 int num = (int)(player.position.X + (float)(player.width / 2)) / 16;
98 int num2 = (int)(player.position.Y + (float)(player.height / 2)) / 16;
99 if (WorldGen.InWorld(num, num2) && Main.tile[num, num2] != null)
100 {
101 return Main.tile[num, num2].wall == 87;
102 }
103 return false;
104 }
105
106 private static bool InIce(Player player)
107 {
108 if (player.ZoneSnow)
109 {
110 return !player.ZoneOverworldHeight;
111 }
112 return false;
113 }
114
115 private static bool InDesert(Player player)
116 {
117 if (player.ZoneDesert)
118 {
119 return !player.ZoneOverworldHeight;
120 }
121 return false;
122 }
123 }
124
125 public static class Boss
126 {
127 public static int HighestTierBossOrEvent;
128
129 public static readonly ChromaCondition EaterOfWorlds = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 13);
130
131 public static readonly ChromaCondition Destroyer = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 134);
132
133 public static readonly ChromaCondition KingSlime = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 50);
134
135 public static readonly ChromaCondition QueenSlime = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 657);
136
137 public static readonly ChromaCondition BrainOfCthulhu = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 266);
138
139 public static readonly ChromaCondition DukeFishron = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 370);
140
141 public static readonly ChromaCondition QueenBee = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 222);
142
143 public static readonly ChromaCondition Plantera = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 262);
144
145 public static readonly ChromaCondition Empress = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 636);
146
147 public static readonly ChromaCondition EyeOfCthulhu = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 4);
148
149 public static readonly ChromaCondition TheTwins = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 126);
150
151 public static readonly ChromaCondition MoonLord = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 398);
152
153 public static readonly ChromaCondition WallOfFlesh = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 113);
154
155 public static readonly ChromaCondition Golem = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 245);
156
157 public static readonly ChromaCondition Cultist = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 439);
158
159 public static readonly ChromaCondition Skeletron = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 35);
160
161 public static readonly ChromaCondition SkeletronPrime = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 127);
162
163 public static readonly ChromaCondition Deerclops = (ChromaCondition)(object)new SimpleCondition((Player player) => HighestTierBossOrEvent == 668);
164 }
165
166 public static class Weather
167 {
168 public static readonly ChromaCondition Rain = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneRain && !player.ZoneSnow && !player.ZoneSandstorm);
169
170 public static readonly ChromaCondition Sandstorm = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneSandstorm);
171
172 public static readonly ChromaCondition Blizzard = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneSnow && player.ZoneRain);
173
174 public static readonly ChromaCondition SlimeRain = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.slimeRain && player.ZoneOverworldHeight);
175 }
176
177 public static class Depth
178 {
179 public static readonly ChromaCondition Sky = (ChromaCondition)(object)new SimpleCondition((Player player) => (double)(player.position.Y / 16f) < Main.worldSurface * 0.44999998807907104);
180
181 public static readonly ChromaCondition Surface = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneOverworldHeight && !((double)(player.position.Y / 16f) < Main.worldSurface * 0.44999998807907104) && !IsPlayerInFrontOfDirtWall(player));
182
183 public static readonly ChromaCondition Vines = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneOverworldHeight && !((double)(player.position.Y / 16f) < Main.worldSurface * 0.44999998807907104) && IsPlayerInFrontOfDirtWall(player));
184
185 public static readonly ChromaCondition Underground = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneDirtLayerHeight);
186
187 public static readonly ChromaCondition Caverns = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneRockLayerHeight && player.position.ToTileCoordinates().Y <= Main.maxTilesY - 400);
188
189 public static readonly ChromaCondition Magma = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneRockLayerHeight && player.position.ToTileCoordinates().Y > Main.maxTilesY - 400);
190
191 public static readonly ChromaCondition Underworld = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneUnderworldHeight);
192
193 private static bool IsPlayerInFrontOfDirtWall(Player player)
194 {
195 Point point = player.Center.ToTileCoordinates();
196 if (!WorldGen.InWorld(point.X, point.Y))
197 {
198 return false;
199 }
200 if (Main.tile[point.X, point.Y] == null)
201 {
202 return false;
203 }
204 switch (Main.tile[point.X, point.Y].wall)
205 {
206 case 2:
207 case 16:
208 case 54:
209 case 55:
210 case 56:
211 case 57:
212 case 58:
213 case 59:
214 case 61:
215 case 170:
216 case 171:
217 case 185:
218 case 196:
219 case 197:
220 case 198:
221 case 199:
222 case 212:
223 case 213:
224 case 214:
225 case 215:
226 return true;
227 default:
228 return false;
229 }
230 }
231 }
232
233 public static class Events
234 {
235 public static readonly ChromaCondition BloodMoon = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.bloodMoon && !Main.snowMoon && !Main.pumpkinMoon);
236
237 public static readonly ChromaCondition FrostMoon = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.snowMoon);
238
239 public static readonly ChromaCondition PumpkinMoon = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.pumpkinMoon);
240
241 public static readonly ChromaCondition SolarEclipse = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.eclipse);
242
243 public static readonly ChromaCondition SolarPillar = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneTowerSolar);
244
245 public static readonly ChromaCondition NebulaPillar = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneTowerNebula);
246
247 public static readonly ChromaCondition VortexPillar = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneTowerVortex);
248
249 public static readonly ChromaCondition StardustPillar = (ChromaCondition)(object)new SimpleCondition((Player player) => player.ZoneTowerStardust);
250
251 public static readonly ChromaCondition PirateInvasion = (ChromaCondition)(object)new SimpleCondition((Player player) => Boss.HighestTierBossOrEvent == -3);
252
253 public static readonly ChromaCondition DD2Event = (ChromaCondition)(object)new SimpleCondition((Player player) => Boss.HighestTierBossOrEvent == -6);
254
255 public static readonly ChromaCondition FrostLegion = (ChromaCondition)(object)new SimpleCondition((Player player) => Boss.HighestTierBossOrEvent == -2);
256
257 public static readonly ChromaCondition MartianMadness = (ChromaCondition)(object)new SimpleCondition((Player player) => Boss.HighestTierBossOrEvent == -4);
258
259 public static readonly ChromaCondition GoblinArmy = (ChromaCondition)(object)new SimpleCondition((Player player) => Boss.HighestTierBossOrEvent == -1);
260 }
261
262 public static class Alert
263 {
264 public static readonly ChromaCondition MoonlordComing = (ChromaCondition)(object)new SimpleCondition((Player player) => NPC.MoonLordCountdown > 0);
265
266 public static readonly ChromaCondition Drowning = (ChromaCondition)(object)new SimpleCondition((Player player) => player.breath != player.breathMax);
267
268 public static readonly ChromaCondition Keybinds = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.InGameUI.CurrentState == Main.ManageControlsMenu || Main.MenuUI.CurrentState == Main.ManageControlsMenu);
269
270 public static readonly ChromaCondition LavaIndicator = (ChromaCondition)(object)new SimpleCondition((Player player) => player.lavaWet);
271 }
272
273 public static class CriticalAlert
274 {
275 public static readonly ChromaCondition LowLife = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.ChromaPainter.PotionAlert);
276
277 public static readonly ChromaCondition Death = (ChromaCondition)(object)new SimpleCondition((Player player) => player.dead);
278 }
279
280 public static readonly ChromaCondition InMenu = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.gameMenu && !Main.drunkWorld);
281
282 public static readonly ChromaCondition DrunkMenu = (ChromaCondition)(object)new SimpleCondition((Player player) => Main.gameMenu && Main.drunkWorld);
283}
Vector2 Center
Definition Entity.cs:43
Vector2 position
Definition Entity.cs:14
static readonly ChromaCondition LavaIndicator
static readonly ChromaCondition MoonlordComing
static readonly ChromaCondition DukeFishron
static readonly ChromaCondition BrainOfCthulhu
static readonly ChromaCondition WallOfFlesh
static readonly ChromaCondition EaterOfWorlds
static readonly ChromaCondition SkeletronPrime
static readonly ChromaCondition EyeOfCthulhu
static readonly ChromaCondition InMenu
static readonly ChromaCondition DrunkMenu
static bool slimeRain
Definition Main.cs:1166
static int maxTilesY
Definition Main.cs:1116
static UIManageControls ManageControlsMenu
Definition Main.cs:1150
static UserInterface InGameUI
Definition Main.cs:383
static UserInterface MenuUI
Definition Main.cs:381
static double worldSurface
Definition Main.cs:1272
static int myPlayer
Definition Main.cs:1801
static bool bloodMoon
Definition Main.cs:1296
static Tile[,] tile
Definition Main.cs:1675
static bool eclipse
Definition Main.cs:1312
static ChromaHotkeyPainter ChromaPainter
Definition Main.cs:287
static bool drunkWorld
Definition Main.cs:339
static bool snowMoon
Definition Main.cs:1300
static bool pumpkinMoon
Definition Main.cs:1298
static bool gameMenu
Definition Main.cs:1926
static Player[] player
Definition Main.cs:1803
static int MoonLordCountdown
Definition NPC.cs:51
bool ZoneDirtLayerHeight
Definition Player.cs:3121
bool ZoneUnderworldHeight
Definition Player.cs:3145
bool ZoneTowerNebula
Definition Player.cs:3037
bool ZoneOverworldHeight
Definition Player.cs:3109
bool ZoneTowerVortex
Definition Player.cs:3025
bool ZoneSandstorm
Definition Player.cs:3181
bool ZoneTowerStardust
Definition Player.cs:3049
bool ZoneGlowshroom
Definition Player.cs:3073
bool ZoneRockLayerHeight
Definition Player.cs:3133
bool ZoneTowerSolar
Definition Player.cs:3013
static bool InWorld(int x, int y, int fluff=0)
Definition WorldGen.cs:5816