Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
LanternNight.cs
Go to the documentation of this file.
3
5
6public class LanternNight
7{
8 public static bool ManualLanterns;
9
10 public static bool GenuineLanterns;
11
12 public static bool NextNightIsLanternNight;
13
14 public static int LanternNightsOnCooldown;
15
16 private static bool _wasLanternNight;
17
18 public static bool LanternsUp
19 {
20 get
21 {
22 if (!GenuineLanterns)
23 {
24 return ManualLanterns;
25 }
26 return true;
27 }
28 }
29
30 public static void CheckMorning()
31 {
32 bool flag = false;
34 {
35 flag = true;
36 GenuineLanterns = false;
37 }
39 {
40 flag = true;
41 ManualLanterns = false;
42 }
43 }
44
45 public static void CheckNight()
46 {
48 }
49
50 public static bool LanternsCanPersist()
51 {
52 if (!Main.dayTime)
53 {
54 return LanternsCanStart();
55 }
56 return false;
57 }
58
59 public static bool LanternsCanStart()
60 {
62 {
63 return !BossIsActive();
64 }
65 return false;
66 }
67
68 private static bool BossIsActive()
69 {
70 for (int i = 0; i < 200; i++)
71 {
72 NPC nPC = Main.npc[i];
73 if (nPC.active && (nPC.boss || (nPC.type >= 13 && nPC.type <= 15)))
74 {
75 return true;
76 }
77 }
78 return false;
79 }
80
81 private static void NaturalAttempt()
82 {
83 if (Main.netMode != 1 && LanternsCanStart())
84 {
85 bool flag = false;
87 {
89 }
90 if (LanternNightsOnCooldown == 0 && NPC.downedMoonlord && Main.rand.Next(14) == 0)
91 {
92 flag = true;
93 }
94 if (!flag && NextNightIsLanternNight)
95 {
97 flag = true;
98 }
99 if (flag)
100 {
101 GenuineLanterns = true;
102 LanternNightsOnCooldown = Main.rand.Next(5, 11);
103 }
104 }
105 }
106
107 public static void ToggleManualLanterns()
108 {
109 bool lanternsUp = LanternsUp;
110 if (Main.netMode != 1)
111 {
113 }
114 if (lanternsUp != LanternsUp && Main.netMode == 2)
115 {
117 }
118 }
119
120 public static void WorldClear()
121 {
122 ManualLanterns = false;
123 GenuineLanterns = false;
125 _wasLanternNight = false;
126 }
127
128 public static void UpdateTime()
129 {
131 {
132 GenuineLanterns = false;
133 }
135 {
136 if (Main.netMode != 2)
137 {
138 if (LanternsUp)
139 {
140 SkyManager.Instance.Activate("Lantern", default(Vector2));
141 }
142 else
143 {
144 SkyManager.Instance.Deactivate("Lantern");
145 }
146 }
147 else
148 {
150 }
151 }
153 }
154}
static int netMode
Definition Main.cs:2095
static bool dayTime
Definition Main.cs:1282
static bool bloodMoon
Definition Main.cs:1296
static int invasionType
Definition Main.cs:1970
static UnifiedRandom rand
Definition Main.cs:1387
static NPC[] npc
Definition Main.cs:1685
static bool snowMoon
Definition Main.cs:1300
static bool pumpkinMoon
Definition Main.cs:1298
bool boss
Definition NPC.cs:515
static bool downedMoonlord
Definition NPC.cs:383
int type
Definition NPC.cs:445
static int MoonLordCountdown
Definition NPC.cs:51
static void SendData(int msgType, int remoteClient=-1, int ignoreClient=-1, NetworkText text=null, int number=0, float number2=0f, float number3=0f, float number4=0f, int number5=0, int number6=0, int number7=0)
Definition NetMessage.cs:88