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

◆ NewNPC()

static int Terraria.NPC.NewNPC ( IEntitySource source,
int X,
int Y,
int Type,
int Start = 0,
float ai0 = 0f,
float ai1 = 0f,
float ai2 = 0f,
float ai3 = 0f,
int Target = 255 )
inlinestatic

Definition at line 77654 of file NPC.cs.

77655 {
77656 if (Main.getGoodWorld && Main.rand.Next(3) != 0)
77657 {
77658 if (Type == 46)
77659 {
77660 Type = 614;
77661 }
77662 if (Type == 62)
77663 {
77664 Type = 66;
77665 }
77666 }
77668 if (availableNPCSlot >= 0)
77669 {
77670 Main.npc[availableNPCSlot] = new NPC();
77671 Main.npc[availableNPCSlot].SetDefaults(Type);
77672 Main.npc[availableNPCSlot].whoAmI = availableNPCSlot;
77674 Main.npc[availableNPCSlot].position.X = X - Main.npc[availableNPCSlot].width / 2;
77675 Main.npc[availableNPCSlot].position.Y = Y - Main.npc[availableNPCSlot].height;
77676 Main.npc[availableNPCSlot].active = true;
77677 Main.npc[availableNPCSlot].timeLeft = (int)((double)activeTime * 1.25);
77678 Main.npc[availableNPCSlot].wet = Collision.WetCollision(Main.npc[availableNPCSlot].position, Main.npc[availableNPCSlot].width, Main.npc[availableNPCSlot].height);
77679 Main.npc[availableNPCSlot].ai[0] = ai0;
77680 Main.npc[availableNPCSlot].ai[1] = ai1;
77681 Main.npc[availableNPCSlot].ai[2] = ai2;
77682 Main.npc[availableNPCSlot].ai[3] = ai3;
77683 Main.npc[availableNPCSlot].target = Target;
77684 if (Type == 50)
77685 {
77686 if (Main.netMode == 0)
77687 {
77688 Main.NewText(Language.GetTextValue("Announcement.HasAwoken", Main.npc[availableNPCSlot].TypeName), 175, 75);
77689 }
77690 else if (Main.netMode == 2)
77691 {
77692 ChatHelper.BroadcastChatMessage(NetworkText.FromKey("Announcement.HasAwoken", Main.npc[availableNPCSlot].GetTypeNetName()), new Color(175, 75, 255));
77693 }
77694 }
77695 return availableNPCSlot;
77696 }
77697 return 200;
77698 }
static void BroadcastChatMessage(NetworkText text, Color color, int excludedPlayer=-1)
Definition ChatHelper.cs:46
static string GetTextValue(string key)
Definition Language.cs:15
static NetworkText FromKey(string key, params object[] substitutions)
static void GiveTownUniqueDataToNPCsThatNeedIt(int Type, int nextNPC)
Definition NPC.cs:77728
static int GetAvailableNPCSlot(int Type, int startIndex)
Definition NPC.cs:77700
static int activeTime
Definition NPC.cs:201

References Terraria.Chat.ChatHelper.BroadcastChatMessage(), Microsoft.Xna.Framework.Graphics.Color, Terraria.Localization.NetworkText.FromKey(), Terraria.Main.getGoodWorld, Terraria.Localization.Language.GetTextValue(), Terraria.Main.netMode, Terraria.Main.NewText(), Terraria.Enums.NPC, Terraria.Main.npc, Terraria.Main.rand, Microsoft.Xna.Framework.Graphics.Target, Terraria.Collision.WetCollision(), System.X, and System.Y.

Referenced by Terraria.GameContent.Tile_Entities.TETrainingDummy.Activate(), Terraria.NPC.AI(), Terraria.NPC.AI_003_Fighters(), Terraria.NPC.AI_005_EaterOfSouls(), Terraria.NPC.AI_006_Worms(), Terraria.NPC.AI_037_Destroyer(), Terraria.NPC.AI_045_Golem(), Terraria.NPC.AI_069_DukeFishron(), Terraria.NPC.AI_084_LunaticCultist(), Terraria.NPC.AI_110_Betsy(), Terraria.NPC.AI_113_WindyBalloon(), Terraria.NPC.AI_121_QueenSlime(), Terraria.NPC.BigMimicSummonCheck(), Terraria.NPC.checkDead(), Terraria.WorldGen.CheckSuper(), Terraria.Cinematics.DD2Film.CreateCritters(), Terraria.Cinematics.DD2Film.CreateOgre(), Terraria.GameContent.Events.DD2Event.Difficulty_1_SpawnMonsterFromGate(), Terraria.GameContent.Events.DD2Event.Difficulty_2_SpawnMonsterFromGate(), Terraria.GameContent.Events.DD2Event.Difficulty_3_SpawnMonsterFromGate(), Terraria.NPC.DoDeathEvents_SummonDungeonSpirit(), Terraria.WorldGen.DungeonEnt(), Terraria.MessageBuffer.GetData(), Terraria.Item.GetShimmered(), Terraria.Player.ItemCheck_CheckFishingBobber_PullBobber(), Terraria.Projectile.Kill(), Terraria.WorldGen.KillTile_DropBait(), Terraria.WorldGen.KillTile_GetItemDrops(), Terraria.Cinematics.DD2Film.PlaceNPCOnGround(), Terraria.Cinematics.DSTFilm.PlaceNPCOnGround(), Terraria.GameContent.Events.DD2Event.RaiseGoblins(), Terraria.WorldGen.ShakeTree(), Terraria.Projectile.Shimmer(), Terraria.GameContent.CoinLossRevengeSystem.RevengeMarker.SpawnEnemy(), Terraria.Cinematics.DD2Film.SpawnGoblin(), Terraria.Cinematics.DD2Film.SpawnJavalinThrower(), Terraria.NPC.SpawnMechQueen(), Terraria.WorldGen.SpawnThingsFromPot(), Terraria.WorldGen.SpawnTownNPC(), Terraria.WorldGen.SpawnTravelNPC(), Terraria.Cinematics.DD2Film.SpawnWitherBeast(), Terraria.GameContent.Events.DD2Event.SummonCrystalDirect(), Terraria.WorldGen.TriggerLunarApocalypse(), Terraria.GameContent.Events.CultistRitual.TrySpawning(), Terraria.GameContent.Events.MysticLogFairiesEvent.TrySpawningFairies(), Terraria.Main.UpdateTime_SpawnTownNPCs(), and Terraria.NPC.ViolentlySpawnNerdySlime().