Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ CheckActive()

void Terraria.NPC.CheckActive ( )
inline

Definition at line 70168 of file NPC.cs.

70169 {
70171 {
70172 return;
70173 }
70174 if (townNPC)
70175 {
70177 return;
70178 }
70180 bool flag2 = false;
70181 Rectangle rectangle = new Rectangle((int)(position.X + (float)(width / 2) - (float)activeRangeX), (int)(position.Y + (float)(height / 2) - (float)activeRangeY), activeRangeX * 2, activeRangeY * 2);
70182 Rectangle rectangle2 = new Rectangle((int)((double)(position.X + (float)(width / 2)) - (double)sWidth * 0.5 - (double)width), (int)((double)(position.Y + (float)(height / 2)) - (double)sHeight * 0.5 - (double)height), sWidth + width * 2, sHeight + height * 2);
70183 for (int i = 0; i < 255; i++)
70184 {
70185 if (!Main.player[i].active)
70186 {
70187 continue;
70188 }
70189 Rectangle hitbox = Main.player[i].Hitbox;
70190 if (rectangle.Intersects(hitbox))
70191 {
70192 flag2 = true;
70193 if (type != 25 && type != 30 && type != 33 && releaseOwner == 255 && lifeMax > 0)
70194 {
70195 if (Main.slimeRain && Main.slimeRainNPC[type])
70196 {
70197 Main.player[i].nearbyActiveNPCs += npcSlots * Main.slimeRainNPCSlots;
70198 }
70199 else
70200 {
70201 Main.player[i].nearbyActiveNPCs += npcSlots;
70202 }
70203 }
70204 }
70205 if (flag)
70206 {
70207 continue;
70208 }
70209 if (rectangle2.Intersects(hitbox))
70210 {
70212 despawnEncouraged = false;
70213 if (i == Main.myPlayer && (type == 604 || type == 605))
70214 {
70215 LadyBugLuck(i, type == 605);
70216 }
70217 }
70218 if (boss)
70219 {
70220 flag2 = true;
70221 }
70222 switch (type)
70223 {
70224 case 7:
70225 case 10:
70226 case 13:
70227 case 35:
70228 case 36:
70229 case 39:
70230 case 87:
70231 case 127:
70232 case 128:
70233 case 129:
70234 case 130:
70235 case 131:
70236 case 392:
70237 case 393:
70238 case 394:
70239 case 491:
70240 case 492:
70241 flag2 = true;
70242 break;
70243 case 399:
70244 if (ai[0] == 2f || ai[0] == 1f)
70245 {
70247 }
70248 flag2 = true;
70249 break;
70250 case 583:
70251 case 584:
70252 case 585:
70253 if (!Main.dayTime && ai[2] == 0f)
70254 {
70255 flag2 = true;
70257 }
70258 break;
70259 }
70260 }
70261 if (flag)
70262 {
70263 return;
70264 }
70265 timeLeft--;
70266 if (timeLeft <= 0)
70267 {
70268 flag2 = false;
70269 }
70270 if (!flag2 && Main.netMode != 1)
70271 {
70272 noSpawnCycle = true;
70273 active = false;
70274 if (Main.netMode == 2)
70275 {
70276 netSkip = -1;
70277 life = 0;
70278 NetMessage.SendData(23, -1, -1, null, whoAmI);
70279 }
70280 if (extraValue > 0)
70281 {
70282 RevengeManager.CacheEnemy(this);
70283 }
70285 }
70286 }
Vector2 position
Definition Entity.cs:14
bool boss
Definition NPC.cs:515
int timeLeft
Definition NPC.cs:457
static CoinLossRevengeSystem RevengeManager
Definition NPC.cs:439
static bool noSpawnCycle
Definition NPC.cs:199
bool DoesntDespawnToInactivity()
Definition NPC.cs:70062
int lifeMax
Definition NPC.cs:479
bool despawnEncouraged
Definition NPC.cs:575
float[] ai
Definition NPC.cs:447
int extraValue
Definition NPC.cs:525
static int sWidth
Definition NPC.cs:177
int type
Definition NPC.cs:445
bool DoesntDespawnToInactivityAndCountsNPCSlots()
Definition NPC.cs:70057
float npcSlots
Definition NPC.cs:197
static int activeRangeX
Definition NPC.cs:189
void CheckActive_WormSegments()
Definition NPC.cs:70288
void LadyBugLuck(int plr, bool GoldLadyBug=false)
Definition NPC.cs:78331
void AddIntoPlayersTownNPCSlots()
Definition NPC.cs:70314
short releaseOwner
Definition NPC.cs:107
int life
Definition NPC.cs:477
static int activeTime
Definition NPC.cs:201
static int activeRangeY
Definition NPC.cs:191
int netSkip
Definition NPC.cs:169
bool townNPC
Definition NPC.cs:537
static int sHeight
Definition NPC.cs:179

References Terraria.Entity.active, Terraria.NPC.activeRangeX, Terraria.NPC.activeRangeY, Terraria.NPC.activeTime, Terraria.NPC.AddIntoPlayersTownNPCSlots(), Terraria.NPC.ai, Terraria.NPC.boss, Terraria.NPC.CheckActive_WormSegments(), Terraria.Main.dayTime, Terraria.NPC.despawnEncouraged, Terraria.NPC.DoesntDespawnToInactivity(), Terraria.NPC.DoesntDespawnToInactivityAndCountsNPCSlots(), Terraria.NPC.extraValue, Terraria.Entity.height, Terraria.NPC.LadyBugLuck(), Terraria.NPC.life, Terraria.NPC.lifeMax, Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.NPC.netSkip, Terraria.NPC.noSpawnCycle, Terraria.NPC.npcSlots, Terraria.Main.player, Terraria.Entity.position, Terraria.NPC.releaseOwner, Terraria.NPC.RevengeManager, Terraria.NetMessage.SendData(), Terraria.NPC.sHeight, Terraria.Main.slimeRain, Terraria.Main.slimeRainNPC, Terraria.Main.slimeRainNPCSlots, Terraria.NPC.sWidth, Terraria.NPC.timeLeft, Terraria.NPC.townNPC, Terraria.NPC.type, Terraria.Entity.whoAmI, Terraria.Entity.width, Microsoft.Xna.Framework.Vector2.X, and Microsoft.Xna.Framework.Vector2.Y.