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

◆ CatchNPC()

static void Terraria.NPC.CatchNPC ( int i,
int who = -1 )
inlinestatic

Definition at line 72128 of file NPC.cs.

72129 {
72130 if (!Main.npc[i].active)
72131 {
72132 return;
72133 }
72134 if (who == -1)
72135 {
72136 who = Main.myPlayer;
72137 }
72138 if (Main.netMode == 1)
72139 {
72140 Main.npc[i].active = false;
72141 NetMessage.SendData(70, -1, -1, null, i, who);
72142 }
72143 else if (Main.npc[i].catchItem > 0)
72144 {
72145 if (Main.npc[i].type == 687)
72146 {
72147 Main.npc[i].TryTeleportingCaughtMysticFrog();
72148 }
72149 else if (Main.npc[i].SpawnedFromStatue)
72150 {
72151 Vector2 vector = Main.npc[i].Center - new Vector2(20f);
72152 Utils.PoofOfSmoke(vector);
72153 Main.npc[i].active = false;
72154 NetMessage.SendData(23, -1, -1, null, i);
72155 NetMessage.SendData(106, -1, -1, null, (int)vector.X, vector.Y);
72156 }
72157 else
72158 {
72159 new Item().SetDefaults(Main.npc[i].catchItem);
72160 Item.NewItem(GetSpawnSource_NPCCatch(who), (int)Main.player[who].Center.X, (int)Main.player[who].Center.Y, 0, 0, Main.npc[i].catchItem, 1, noBroadcast: false, 0, noGrabDelay: true);
72161 Main.npc[i].active = false;
72162 NetMessage.SendData(23, -1, -1, null, i);
72163 }
72164 }
72165 }
static IEntitySource GetSpawnSource_NPCCatch(int whoCatchedIt)
Definition NPC.cs:87516

References Terraria.Main.myPlayer, Terraria.Main.netMode, Terraria.Item.NewItem(), Terraria.Main.npc, Terraria.Main.player, Terraria.Utils.PoofOfSmoke(), Terraria.NetMessage.SendData(), Terraria.Item.SetDefaults(), and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.MessageBuffer.GetData(), and Terraria.Player.ItemCheck_CatchCritters().