private void NPC_UpdateNPC(On.Terraria.NPC.orig_UpdateNPC orig, NPC self, int i) { if ((!TimeStopped || TimeStopStockOwner(self))) { orig.Invoke(self, i); } else { for (int k = 0; k < self.immune.Length; k++) { if (self.immune[k] > 0) { self.immune[k]--; } } } }
private static void NPC_UpdateNPC(On.Terraria.NPC.orig_UpdateNPC orig, NPC self, int i) { double time = Main.time; bool nighttime = Main.dayTime; bool nighttimeCheck = false; bool invertCheck = false; if (self != null && self.active && self.SGANPCs().treatAsNight) { nighttime = Main.dayTime; Main.dayTime = false; nighttimeCheck = true; } if (!nighttimeCheck && Items.Placeable.CelestialMonolithManager.queueRenderTargetUpdate > 0 && self != null && self.active) { if (self.SGANPCs().invertedTime > 0) { Main.dayTime = !nighttime; Main.time = Items.Placeable.CelestialMonolithManager.GetInvertedTime(time); invertCheck = true; } } /* * NPCUtils.TargetClosestOldOnesInvasion(this); * NPCAimedTarget targetData = self.GetTargetData(); * targetData.Center */ bool oldOnes = NPCID.Sets.BelongsToInvasionOldOnesArmy[self.type]; if (!oldOnes && self.HasValidTarget && Main.player[self.target].active) { /*if (oldOnes) * { * NPCAimedTarget targetData = self.GetTargetData(); * if (targetData.Type == Terraria.Enums.NPCTargetType.Player) * { * Player nearest = Main.player[Player.FindClosest(targetData.Center,64,64)]; * SGAPlayer sgaply = nearest.SGAPly(); * Vector2 newPos = sgaply.centerOverridePosition; * * if ((newPos - self.Center).LengthSquared() < 2560000) * { * Vector2 oldPos = sgaply.player.MountedCenter; * //targetData.Type = Terraria.Enums.NPCTargetType.NPC; * * sgaply.player.MountedCenter = newPos; * orig(self, i); * sgaply.player.MountedCenter = oldPos; * } * * } * * } * else */ SGAPlayer sgaply = Main.player[self.target].SGAPly(); if (sgaply.centerOverrideTimer > 0) { Vector2 newPos = sgaply.centerOverridePosition; if ((newPos - self.Center).LengthSquared() < 2560000) { Vector2 oldPos = sgaply.player.MountedCenter; sgaply.player.MountedCenter = newPos; orig(self, i); sgaply.player.MountedCenter = oldPos; return; } } } orig(self, i); if (nighttimeCheck) { Main.dayTime = nighttime; return; } if (invertCheck) { Main.dayTime = nighttime; Main.time = time; } }