This class allows you to modify and use hooks for all NPCs, including vanilla mobs. Create an instance of an overriding class then call Mod.AddGlobalNPC to use this.
More...
|
virtual void | AI (NPC npc) |
| Allows you to determine how any NPC behaves. This will only be called if PreAI returns true. More...
|
|
virtual void | BossHeadRotation (NPC npc, ref float rotation) |
| Allows you to customize the rotation of an NPC's boss head icon on the map. More...
|
|
virtual void | BossHeadSlot (NPC npc, ref int index) |
| Allows you to customize the boss head texture used by an NPC based on its state. Set index to -1 to stop the texture from being displayed. More...
|
|
virtual void | BossHeadSpriteEffects (NPC npc, ref SpriteEffects spriteEffects) |
| Allows you to flip an NPC's boss head icon on the map. More...
|
|
virtual void | BuffTownNPC (ref float damageMult, ref int defense) |
| Allows you to modify the stats of town NPCs. Useful for buffing town NPCs when certain bosses are defeated, etc. More...
|
|
virtual ? bool | CanBeCaughtBy (NPC npc, Item item, Player player) |
| Allows you to determine whether the given item can catch the given NPC.
Return true or false to say the given NPC can or cannot be caught, respectively, regardless of vanilla rules.
Returns null by default, which allows vanilla's NPC catching rules to decide the target's fate.
If this returns false, CombinedHooks.OnCatchNPC is never called.
NOTE: this does not classify the given item as an NPC-catching tool, which is necessary for catching NPCs in the first place.
To do that, you will need to use the "CatchingTool" set in ItemID.Sets. More...
|
|
virtual ? bool | CanBeHitByItem (NPC npc, Player player, Item item) |
| Allows you to determine whether an NPC can be hit by the given melee weapon when swung. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. More...
|
|
virtual ? bool | CanBeHitByProjectile (NPC npc, Projectile projectile) |
| Allows you to determine whether an NPC can be hit by the given projectile. Return true to allow hitting the NPC, return false to block hitting the NPC, and return null to use the vanilla code for whether the NPC can be hit. Returns null by default. More...
|
|
virtual ? bool | CanChat (NPC npc) |
| Allows you to determine whether this NPC can talk with the player. Return true to allow talking with the player, return false to block this NPC from talking with the player, and return null to use the vanilla code for whether the NPC can talk. Returns null by default. More...
|
|
virtual ? bool | CanFallThroughPlatforms (NPC npc) |
| Allows you to determine how and when an NPC can fall through platforms and similar tiles.
Return true to allow an NPC to fall through platforms, false to prevent it. Returns null by default, applying vanilla behaviors (based on aiStyle and type).
|
|
virtual ? bool | CanGoToStatue (NPC npc, bool toKingStatue) |
| Whether this NPC can be telported a King or Queen statue. Return true to allow the NPC to teleport to the statue, return false to block this NPC from teleporting to the statue, and return null to use the vanilla code for whether the NPC can teleport to the statue. Returns null by default. More...
|
|
virtual ? bool | CanHitNPC (NPC npc, NPC target) |
| Allows you to determine whether an NPC can hit the given friendly NPC. Return true to allow hitting the target, return false to block the NPC from hitting the target, and return null to use the vanilla code for whether the target can be hit. Returns null by default. More...
|
|
virtual bool | CanHitPlayer (NPC npc, Player target, ref int cooldownSlot) |
| Allows you to determine whether an NPC can hit the given player. Return false to block the NPC from hitting the target. Returns true by default. CooldownSlot determines which of the player's cooldown counters to use (-1, 0, or 1), and defaults to -1. More...
|
|
virtual bool | CheckActive (NPC npc) |
| Whether or not to run the code for checking whether an NPC will remain active. Return false to stop the NPC from being despawned and to stop the NPC from counting towards the limit for how many NPCs can exist near a player. Returns true by default. More...
|
|
virtual bool | CheckDead (NPC npc) |
| Whether or not an NPC should be killed when it reaches 0 health. You may program extra effects in this hook (for example, how Golem's head lifts up for the second phase of its fight). Return false to stop the NPC from being killed. Returns true by default. More...
|
|
virtual void | DrawBehind (NPC npc, int index) |
| When used in conjunction with "npc.hide = true", allows you to specify that this npc should be drawn behind certain elements. Add the index to one of Main.DrawCacheNPCsMoonMoon, DrawCacheNPCsOverPlayers, DrawCacheNPCProjectiles, or DrawCacheNPCsBehindNonSolidTiles. More...
|
|
virtual void | DrawEffects (NPC npc, ref Color drawColor) |
| Allows you to add special visual effects to an NPC (such as creating dust), and modify the color in which the NPC is drawn. More...
|
|
virtual ? bool | DrawHealthBar (NPC npc, byte hbPosition, ref float scale, ref Vector2 position) |
| Allows you to control how the health bar for the given NPC is drawn. The hbPosition parameter is the same as Main.hbPosition; it determines whether the health bar gets drawn above or below the NPC by default. The scale parameter is the health bar's size. By default, it will be the normal 1f; most bosses set this to 1.5f. Return null to let the normal vanilla health-bar-drawing code to run. Return false to stop the health bar from being drawn. Return true to draw the health bar in the position specified by the position parameter (note that this is the world position, not screen position). More...
|
|
virtual void | DrawTownAttackGun (NPC npc, ref float scale, ref int item, ref int closeness) |
| Allows you to customize how a town NPC's weapon is drawn when the NPC is shooting (the NPC must have an attack type of 1). Scale is a multiplier for the item's drawing size, item is the ID of the item to be drawn, and closeness is how close the item should be drawn to the NPC. More...
|
|
virtual void | DrawTownAttackSwing (NPC npc, ref Texture2D item, ref int itemSize, ref float scale, ref Vector2 offset) |
| Allows you to customize how a town NPC's weapon is drawn when the NPC is swinging it (the NPC must have an attack type of 3). Item is the Texture2D instance of the item to be drawn (use Main.itemTexture[id of item]), itemSize is the width and height of the item's hitbox (the same values for TownNPCAttackSwing), scale is the multiplier for the item's drawing size, and offset is the offset from which to draw the item from its normal position. More...
|
|
virtual void | EditSpawnPool (IDictionary< int, float > pool, NPCSpawnInfo spawnInfo) |
| Allows you to control which NPCs can spawn and how likely each one is to spawn. The pool parameter maps NPC types to their spawning weights (likelihood to spawn compared to other NPCs). A type of 0 in the pool represents the default vanilla NPC spawning. More...
|
|
virtual void | EditSpawnRange (Player player, ref int spawnRangeX, ref int spawnRangeY, ref int safeRangeX, ref int safeRangeY) |
| Allows you to modify the range at which NPCs can spawn around the given player. The spawnRanges determine that maximum distance NPCs can spawn from the player, and the safeRanges determine the minimum distance. More...
|
|
virtual void | EditSpawnRate (Player player, ref int spawnRate, ref int maxSpawns) |
| Allows you to modify the chance of NPCs spawning around the given player and the maximum number of NPCs that can spawn around the player. Lower spawnRates mean a higher chance for NPCs to spawn. More...
|
|
virtual void | FindFrame (NPC npc, int frameHeight) |
| Allows you to modify the frame from an NPC's texture that is drawn, which is necessary in order to animate NPCs. More...
|
|
virtual ? Color | GetAlpha (NPC npc, Color drawColor) |
| Allows you to determine the color and transparency in which an NPC is drawn. Return null to use the default color (normally light and buff color). Returns null by default. More...
|
|
virtual void | GetChat (NPC npc, ref string chat) |
| Allows you to modify the chat message of any NPC that the player can talk to. More...
|
|
virtual void | HitEffect (NPC npc, int hitDirection, double damage) |
| Allows you to make things happen whenever an NPC is hit, such as creating dust or gores.
This hook is client side. Usually when something happens when an npc dies such as item spawning, you use NPCLoot, but you can use HitEffect paired with a check for if (npc.life <= 0) to do client-side death effects, such as spawning dust, gore, or death sounds.
|
|
GlobalNPC | Instance (NPC npc) |
|
virtual void | LoadData (NPC npc, TagCompound tag) |
| Allows you to load custom data that you have saved for the given npc. More...
|
|
virtual bool | ModifyCollisionData (NPC npc, Rectangle victimHitbox, ref int immunityCooldownSlot, ref float damageMultiplier, ref Rectangle npcHitbox) |
| Allows you to modify the npc's - See also
- ID.ImmunityCooldownID
, damage multiplier, and hitbox. Useful for implementing dynamic damage hitboxes that change in dimensions or deal extra damage. Returns false to prevent vanilla code from running. Returns true by default. More...
|
|
virtual void | ModifyGlobalLoot (GlobalLoot globalLoot) |
| Allows you to add and modify global loot rules that are conditional, i.e. vanilla's biome keys and souls.
The Basic NPC Drops and Loot 1.4 Guideexplains how to use this hook to modify npc loot. More...
|
|
virtual void | ModifyHitByItem (NPC npc, Player player, Item item, ref int damage, ref float knockback, ref bool crit) |
| Allows you to modify the damage, knockback, etc., that an NPC takes from a melee weapon. More...
|
|
virtual void | ModifyHitByProjectile (NPC npc, Projectile projectile, ref int damage, ref float knockback, ref bool crit, ref int hitDirection) |
| Allows you to modify the damage, knockback, etc., that an NPC takes from a projectile. More...
|
|
virtual void | ModifyHitNPC (NPC npc, NPC target, ref int damage, ref float knockback, ref bool crit) |
| Allows you to modify the damage, knockback, etc., that an NPC does to a friendly NPC. More...
|
|
virtual void | ModifyHitPlayer (NPC npc, Player target, ref int damage, ref bool crit) |
| Allows you to modify the damage, etc., that an NPC does to a player. More...
|
|
virtual void | ModifyHoverBoundingBox (NPC npc, ref Rectangle boundingBox) |
| Allows you to modify the bounding box for hovering over the given NPC (affects things like whether or not its name is displayed). More...
|
|
virtual void | ModifyNPCLoot (NPC npc, NPCLoot npcLoot) |
| Allows you to add and modify NPC loot tables to drop on death and to appear in the Bestiary.
The Basic NPC Drops and Loot 1.4 Guideexplains how to use this hook to modify npc loot.
This hook only runs once per npc type during mod loading, any dynamic behavior must be contained in the rules themselves. More...
|
|
virtual void | ModifyNPCNameList (NPC npc, List< string > nameList) |
| Allows you to modify the list of names available to the given town NPC.
|
|
virtual ITownNPCProfile | ModifyTownNPCProfile (NPC npc) |
| Allows you to set the town NPC profile that a given NPC uses. More...
|
|
virtual void | ModifyTypeName (NPC npc, ref string typeName) |
| Allows you to modify the type name of this NPC dynamically.
|
|
virtual bool | NeedSaving (NPC npc) |
| Allows you to make a npc be saved even if it's not a townNPC and NPCID.Sets.SavesAndLoads[npc.type] is false.
NOTE: A town NPC will always be saved (except the Travelling Merchant that never will).
NOTE: A NPC that needs saving will not despawn naturally. More...
|
|
virtual void | OnCaughtBy (NPC npc, Player player, Item item, bool failed) |
| Allows you to make things happen when the given item attempts to catch the given NPC. More...
|
|
virtual void | OnChatButtonClicked (NPC npc, bool firstButton) |
| Allows you to make something happen whenever a button is clicked on this NPC's chat window. The firstButton parameter tells whether the first button or second button (button and button2 from SetChatButtons) was clicked. More...
|
|
virtual void | OnGoToStatue (NPC npc, bool toKingStatue) |
| Allows you to make things happen when this NPC teleports to a King or Queen statue. This method is only called server side. More...
|
|
virtual void | OnHitByItem (NPC npc, Player player, Item item, int damage, float knockback, bool crit) |
| Allows you to create special effects when an NPC is hit by a melee weapon. More...
|
|
virtual void | OnHitByProjectile (NPC npc, Projectile projectile, int damage, float knockback, bool crit) |
| Allows you to create special effects when an NPC is hit by a projectile. More...
|
|
virtual void | OnHitNPC (NPC npc, NPC target, int damage, float knockback, bool crit) |
| Allows you to create special effects when an NPC hits a friendly NPC. More...
|
|
virtual void | OnHitPlayer (NPC npc, Player target, int damage, bool crit) |
| Allows you to create special effects when an NPC hits a player (for example, inflicting debuffs). More...
|
|
virtual void | OnKill (NPC npc) |
| Allows you to make things happen when an NPC dies (for example, setting ModSystem fields). This hook runs on the server/single player. For client-side effects, such as dust, gore, and sounds, see HitEffect More...
|
|
virtual void | OnSpawn (NPC npc, IEntitySource source) |
| Gets called when any NPC spawns in world
|
|
virtual void | PostAI (NPC npc) |
| Allows you to determine how any NPC behaves. This will be called regardless of what PreAI returns. More...
|
|
virtual void | PostDraw (NPC npc, SpriteBatch spriteBatch, Vector2 screenPos, Color drawColor) |
| Allows you to draw things in front of this NPC. Substract screenPos from the draw position before drawing. This method is called even if PreDraw returns false. More...
|
|
virtual bool | PreAI (NPC npc) |
| Allows you to determine how any NPC behaves. Return false to stop the vanilla AI and the AI hook from being run. Returns true by default. More...
|
|
virtual bool | PreChatButtonClicked (NPC npc, bool firstButton) |
| Allows you to determine if something can happen whenever a button is clicked on this NPC's chat window. The firstButton parameter tells whether the first button or second button (button and button2 from SetChatButtons) was clicked. Return false to prevent the normal code for this button from running. Returns true by default. More...
|
|
virtual bool | PreDraw (NPC npc, SpriteBatch spriteBatch, Vector2 screenPos, Color drawColor) |
| Allows you to draw things behind an NPC, or to modify the way the NPC is drawn. Substract screenPos from the draw position before drawing. Return false to stop the game from drawing the NPC (useful if you're manually drawing the NPC). Returns true by default. More...
|
|
virtual bool | PreKill (NPC npc) |
| Allows you to determine whether or not NPC from doing anything on death (besides die). Return false to stop the NPC from doing anything special. Returns true by default. More...
|
|
virtual void | ReceiveExtraAI (NPC npc, BitReader bitReader, BinaryReader binaryReader) |
| Use this to receive information that was sent in SendExtraAI.
Called whenever MessageID.SyncNPC is successfully received.
Can be called on multiplayer clients. More...
|
|
virtual void | ResetEffects (NPC npc) |
| This is where you reset any fields you add to your subclass to their default states. This is necessary in order to reset your fields if they are conditionally set by a tick update but the condition is no longer satisfied. More...
|
|
virtual void | SaveData (NPC npc, TagCompound tag) |
| Allows you to save custom data for the given npc.
NOTE: The provided tag is always empty by default, and is provided as an argument only for the sake of convenience and optimization.
NOTE: Try to only save data that isn't default values.
NOTE: The npc may be saved even if NeedSaving returns false and npc is not a townNPC, if another mod returns true on NeedSaving. More...
|
|
virtual void | ScaleExpertStats (NPC npc, int numPlayers, float bossLifeScale) |
| Allows you to customize an NPC's stats in expert mode. More...
|
|
virtual void | SendExtraAI (NPC npc, BitWriter bitWriter, BinaryWriter binaryWriter) |
| Use this judiciously to avoid straining the network.
Checks and methods such as GlobalType<TEntity, TGlobal>.AppliesToEntity can reduce how much data must be sent for how many projectiles.
Called whenever MessageID.SyncNPC is successfully sent, for example on projectile creation, or whenever Projectile.netUpdate is set to true in the update loop for that tick.
Can be called on the server. More...
|
|
virtual void | SetBestiary (NPC npc, BestiaryDatabase database, BestiaryEntry bestiaryEntry) |
| Allows you to set an NPC's information in the Bestiary. More...
|
|
virtual void | SetDefaults (NPC npc) |
| Allows you to set the properties of any and every NPC that gets created.
|
|
sealed override void | SetupContent () |
| If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
|
|
virtual void | SetupShop (int type, Chest shop, ref int nextSlot) |
| Allows you to add items to an NPC's shop. The type parameter is the type of the NPC that this shop belongs to. Add an item by setting the defaults of shop.item[nextSlot] then incrementing nextSlot. In the end, nextSlot must have a value of 1 greater than the highest index in shop.item that contains an item. If you want to remove an item, you will have to be familiar with programming. More...
|
|
virtual void | SetupTravelShop (int[] shop, ref int nextSlot) |
| Allows you to add items to the traveling merchant's shop. Add an item by setting shop[nextSlot] to the ID of the item you are adding then incrementing nextSlot. In the end, nextSlot must have a value of 1 greater than the highest index in shop that represents an item ID. If you want to remove an item, you will have to be familiar with programming. More...
|
|
virtual void | SpawnNPC (int npc, int tileX, int tileY) |
| Allows you to customize an NPC (for example, its position or ai array) after it naturally spawns and before it is synced between servers and clients. As of right now, this only works for modded NPCs. More...
|
|
virtual bool | SpecialOnKill (NPC npc) |
| Allows you to call OnKill on your own when the NPC dies, rather then letting vanilla call it on its own. Returns false by default. More...
|
|
virtual bool | StrikeNPC (NPC npc, ref double damage, int defense, ref float knockback, int hitDirection, ref bool crit) |
| Allows you to use a custom damage formula for when an NPC takes damage from any source. For example, you can change the way defense works or use a different crit multiplier. Return false to stop the game from running the vanilla damage formula; returns true by default. More...
|
|
virtual void | TownNPCAttackCooldown (NPC npc, ref int cooldown, ref int randExtraCooldown) |
| Allows you to determine the cooldown between each of a town NPC's attack. The cooldown will be a number greater than or equal to the first parameter, and less then the sum of the two parameters. More...
|
|
virtual void | TownNPCAttackMagic (NPC npc, ref float auraLightMultiplier) |
| Allows you to control the brightness of the light emitted by a town NPC's aura when it performs a magic attack. Only used when the town NPC has an attack type of 2 (magic) More...
|
|
virtual void | TownNPCAttackProj (NPC npc, ref int projType, ref int attackDelay) |
| Allows you to determine the projectile type of a town NPC's attack, and how long it takes for the projectile to actually appear. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). More...
|
|
virtual void | TownNPCAttackProjSpeed (NPC npc, ref float multiplier, ref float gravityCorrection, ref float randomOffset) |
| Allows you to determine the speed at which a town NPC throws a projectile when it attacks. Multiplier is the speed of the projectile, gravityCorrection is how much extra the projectile gets thrown upwards, and randomOffset allows you to randomize the projectile's velocity in a square centered around the original velocity. This hook is only used when the town NPC has an attack type of 0 (throwing), 1 (shooting), or 2 (magic). More...
|
|
virtual void | TownNPCAttackShoot (NPC npc, ref bool inBetweenShots) |
| Allows you to tell the game that a town NPC has already created a projectile and will still create more projectiles as part of a single attack so that the game can animate the NPC's attack properly. Only used when the town NPC has an attack type of 1 (shooting). More...
|
|
virtual void | TownNPCAttackStrength (NPC npc, ref int damage, ref float knockback) |
| Allows you to determine the damage and knockback of a town NPC's attack before the damage is scaled. (More information on scaling in GlobalNPC.BuffTownNPCs.) More...
|
|
virtual void | TownNPCAttackSwing (NPC npc, ref int itemWidth, ref int itemHeight) |
| Allows you to determine the width and height of the item a town NPC swings when it attacks, which controls the range of the NPC's swung weapon. Only used when the town NPC has an attack type of 3 (swinging). More...
|
|
virtual void | UpdateLifeRegen (NPC npc, ref int damage) |
| Allows you to make the NPC either regenerate health or take damage over time by setting npc.lifeRegen. Regeneration or damage will occur at a rate of half of npc.lifeRegen per second. The damage parameter is the number that appears above the NPC's head if it takes damage over time. More...
|
|
virtual bool | AppliesToEntity (TEntity entity, bool lateInstantiation) |
| Use this to control whether or not this global should be associated with the provided entity instance. More...
|
|
virtual TGlobal | Clone (TEntity from, TEntity to) |
| Create a copy of this instanced global. Called when an entity is cloned. More...
|
|
virtual TGlobal | NewInstance (TEntity target) |
| Only called if GlobalType.InstancePerEntity and AppliesToEntity(target , ...) are both true More...
|
|
virtual TModType | Clone (TEntity newEntity) |
| Create a copy of this instanced global. Called when an entity is cloned. More...
|
|
virtual bool | IsLoadingEnabled (Mod mod) |
| Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More...
|
|
virtual void | Load () |
| Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More...
|
|
virtual TModType | NewInstance (TEntity entity) |
| Create a new instance of this ModType for a specific entity More...
|
|
virtual void | SetStaticDefaults () |
| Allows you to modify the properties after initial loading has completed. More...
|
|
virtual void | SetupContent () |
| If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
|
|
virtual void | Unload () |
| Allows you to safely unload things you added in Load. More...
|
|
virtual bool | IsLoadingEnabled (Mod mod) |
| Whether or not this type should be loaded when it's told to. Returning false disables Mod.AddContent from actually loading this type. More...
|
|
abstract void | Load (Mod mod) |
| Called when loading the type. More...
|
|
abstract void | Unload () |
| Called during unloading when needed. More...
|
|
virtual TModType | Clone (TEntity newEntity) |
| Create a copy of this instanced global. Called when an entity is cloned. More...
|
|
virtual bool | IsLoadingEnabled (Mod mod) |
| Allows you to stop Mod.AddContent from actually adding this content. Useful for items that can be disabled by a config. More...
|
|
virtual void | Load () |
| Allows you to perform one-time loading tasks. Beware that mod content has not finished loading here, things like ModContent lookup tables or ID Sets are not fully populated. More...
|
|
virtual TModType | NewInstance (TEntity entity) |
| Create a new instance of this ModType for a specific entity More...
|
|
virtual void | SetStaticDefaults () |
| Allows you to modify the properties after initial loading has completed. More...
|
|
virtual void | SetupContent () |
| If you make a new ModType, seal this override, and call SetStaticDefaults in it. More...
|
|
virtual void | Unload () |
| Allows you to safely unload things you added in Load. More...
|
|