tModLoader v2024.11
A mod to make and play Terraria mods
ProjectileID.Sets Class Reference

Classes

class  FallingBlockTileItemInfo
 Used in FallingBlockTileItem. More...
 

Static Public Member Functions

static SettingsForCharacterPreview SimpleLoop (int startFrame, int frameCount, int delayPerFrame=4, bool bounceLoop=false)
 

Static Public Attributes

static bool[] AllowsContactDamageFromJellyfish = Factory.CreateBoolSet(false, 972, 982, 984, 997)
 If true for a given projectile type (Projectile.type), then that projectile will zap the player if used to attack a zapping jellyfish. See NPCID.Sets.ZappingJellyfish for more info.
 
static bool[] CanDistortWater = Factory.CreateBoolSet(true, 7, 8, 152, 151, 150, 493, 494)
 If true for a given projectile type (Projectile.type), then that projectile can create waves in water.
Defaults to true. More...
 
static bool[] CanHitPastShimmer = Factory.CreateBoolSet(605, 270, 719, 961, 962, 926, 922, 100, 84, 83, 96, 101, 102, 275, 276, 277, 258, 259, 384, 385, 386, 874, 872, 873, 871, 683, 676, 670, 675, 686, 687, 467, 468, 464, 465, 466, 526, 456, 462, 455, 452, 454, 949)
 If true for a given projectile type (Projectile.type), then that projectile can hit players submerged in shimmer.
Defaults to false.
 
static SettingsForCharacterPreview[] CharacterPreviewAnimations
 Determines the idle animation of a player's pets on the player select screen.
Common code for these can be found in DelegateMethods.CharacterPreview.
Defaults to a new SettingsForCharacterPreview instance, which does nothing. More...
 
static bool[] CultistIsResistantTo = Factory.CreateBoolSet(207, 182, 338, 339, 340, 341, 266, 390, 391, 392, 307, 316, 190, 227, 255, 297, 317, 321, 356, 407, 376, 374, 379, 408, 389, 388, 405, 409, 535, 536, 484, 477, 16, 34, 79, 634, 635, 616, 189, 181, 566, 837, 659, 803, 804, 805, 806, 807, 808, 809, 810, 856, 931, 248, 393, 394, 395, 378, 379, 664, 666, 668, 680, 625, 626, 627, 628, 613, 614, 309, 195, 433, 755, 864, 758, 759, 832, 833, 834, 835, 951, 644, 642, 946, 930, 937, 225, 285, 917, 700, 916, 640, 221, 606, 567, 568, 569, 570, 571, 617, 618, 619, 620, 963, 967)
 Indicates that the Lunatic Cultist takes 75% damage from this projectile. All projectiles in this set are homing projectiles, so this set can be seen as an indicator that this projectile homes in on the target. Use this set in ModNPC.ModifyHitByProjectile and adjust the damage parameter to implement a similar penalty for homing projectiles.
 
static bool[] DismountsPlayersOnHit = Factory.CreateBoolSet(877, 878, 879)
 If true for a given projectile type (Projectile.type), then that projectile will forcibly dismount any player it hits
Used in vanilla for the jousting lances.
Defaults to false.
 
static bool[] DontApplyParryDamageBuff = Factory.CreateBoolSet(false, 524, 321, 181, 566)
 If true for a given projectile type (Projectile.type), then that projectile won't receive the +400% damage boost from the BuffID.ParryDamageBuff.
Only applies to melee projectiles.
Defaults to false.
 
static bool[] DontAttachHideToAlpha = Factory.CreateBoolSet(598, 641, 617, 636, 579, 578, 625, 626, 627, 628, 759, 813, 525, 960, 971)
 Controls the lighting for projectiles with Projectile.hide set to true. By default, projectiles with Projectile.hide set to true would use the lighting color at the player's center. If this is set to true then this projectile will use lighting values from the projectile center as normal. Set this to true for any Projectile.hide projectile that isn't being held directly in the players hands. Defaults to false.
 
static bool[] DontCancelChannelOnKill = Factory.CreateBoolSet(190)
 If true for a given projectile type (Projectile.type), then that projectile will not call Player.TryCancelChannel(Projectile) when it dies.
Used in vanilla for the Piranha Gun.
Defaults to false.
 
static int[] DrawScreenCheckFluff = Factory.CreateIntSet(480, 461, 1600, 632, 1600, 447, 1600, 455, 2400, 754, 1600, 872, 1600, 873, 1600, 871, 1600, 919, 2400, 923, 2400, 931, 960, 16, 960, 34, 960, 79, 960, 933, 480, 642, 2400, 106, 960, 1020, 960)
 The distance off-screen, in pixels, that projectiles of the given projectile type (Projectile.type) can be whilst still drawing.
Useful for projectiles with drawn effects much larger than their hitbox.
Defaults to 480 (30 tiles).
 
static bool[] Explosive
 Contains all of the projectiles that are classified as explosives. This includes all vanilla projectiles using ProjAIStyleID.Explosive and any modded projectiles that should be regarded as explosives that do not necessarily use that aiStyle. This set facilitates implementing explosive projectiles without limiting them to using ProjAIStyleID.Explosive directly, allowing for custom AI code to be used without sacrificing other expected behaviors. Projectiles using this set need to also use ModLoader.ModProjectile.PrepareBombToBlow. Several shared behaviors of explosive projectiles will be automatically applied to projectiles using this set: Sets the timeLeft to 3 and the projectile direction when colliding with an NPC or player in PVP (so the explosive can detonate). Explosives also bounce off the top of Shimmer, detonate with no blast damage when touching the bottom or sides of Shimmer, and damage other players in For the Worthy worlds. Note that code should check both (projectile.aiStyle == ProjAIStyleID.Explosive || ProjectileID.Sets.Explosive[projectile.type]) for any code targeting explosive projectiles since this set might not be complete. More...
 
static float[] ExtendedCanHitCheckRange = Factory.CreateFloatSet(0f, 833f, 48f, 834f, 48f, 835f, 48f)
 If non-zero, then the given projectile type (Projectile.type) will check for collisions that many pixels above itself and its target if it doesn't directly collide.
For example, a value of 48f allow a hit if there was an empty line from 48 pixels above the projectile's Entity.Top to 48 pixels above the target's Top.
Defaults to 0f.
 
static GenSearch[] ExtendedCanHitCheckSearch
 A GenSearch to use when checking for collisions, in addition to standard hitbox checks.
Defaults to null. More...
 
static SetFactory Factory = new SetFactory(ProjectileLoader.ProjectileCount)
 
static bool[] FallingBlockDoesNotFallThroughPlatforms = Factory.CreateBoolSet(false, 71, 179, 40, 39, 17, 812, 411, 412, 413, 414, 31, 67, 56, 241, 42, 68, 65, 354)
 If true for a given projectile type (Projectile.type), then that projectile will not fall through platforms.
Only applies to projectiles using ProjAIStyleID.FallingTile. Aside from dungeon debris, most FallingTile projectiles set this.
Defaults to false.
 
static FallingBlockTileItemInfo[] FallingBlockTileItem
 Maps falling tile projectiles (projectiles using ProjAIStyleID.FallingTile) to the tile they place and the item they drop if tile placement fails. Falling tile projectiles come in 2 variants, the falling version and the weapon version. The weapon version typically leaves item drop as 0 so that the item is not recovered. More...
 
static bool[] FiresFewerFromDaedalusStormbow = Factory.CreateBoolSet(false, 91, 4, 5, 41)
 Set of Projectile IDs that have a chance to fire fewer projectiles from ItemID.DaedalusStormbow
 
static ? bool[] ForcePlateDetection
 If true for a given projectile type (Projectile.type), then that projectile can trigger TileID.ProjectilePressurePads.
If false for a given projectile type, then that projectile cannot trigger TileID.ProjectilePressurePads.
If null for a given projectile type, then that projectile can trigger TileID.ProjectilePressurePads if Projectile.tileCollide is true.
Defaults to null.
 
static bool[] HeldProjDoesNotUsePlayerGfxOffY = Factory.CreateBoolSet(947, 948, 25, 26, 35, 63, 154, 247, 757, 699)
 If true for a given projectile type (Projectile.type), then that projectile will not be visually offset by Player.gfxOffY.
Set to true for held projectiles that are already accounting for Player.gfxOffY in their position. If the held projectile doesn't follow the players position, then set to true.
Used in vanilla for flails.
Defaults to false,
 
static bool[] ImmediatelyUpdatesNPCBuffFlags = Factory.CreateBoolSet(636)
 If true for a given projectile type (Projectile.type), then that projectile will immediately update NPC buff flags (NPC.poisoned, for example) on hit.
Defaults to false.
 
static bool[] IsADD2Turret = Factory.CreateBoolSet(663, 665, 667, 677, 678, 679, 688, 689, 690, 691, 692, 693)
 Iff true for a given projectile type (Projectile.type), then that projectile is counted as a DD2 turret.
Items that create DD2 turrets cannot be used before the Old One's Army is cleared at least once, but can be infinitely used during the event for 20 Etherian Mana.
All DD2 turrets are cleared when the Old One's Army ends.
Defaults to false.
 
static bool[] IsAGolfBall = Factory.CreateBoolSet(false, 721, 739, 740, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 752)
 If true for a given projectile type (Projectile.type), then that projectile is a kind of golf ball.
Items that "shoot" golf balls can be placed onto tees. if one of these items is in the player's inventory or equipped, then its projectile will be preferred over the standard golf ball.
Defaults to false.
 
static bool[] IsAGravestone = Factory.CreateBoolSet(false, 202, 201, 204, 43, 203, 205, 527, 528, 529, 530, 531)
 If true for a given projectile type (Projectile.type), then that projectile handles player hits in a special way.
If a projectile in this set hits a player, it's Projectile.ai[0] value is used instead of Projectile.owner when assigning the damage source.
This has the effect of making the player who dropped the gravestone be responsible for any potential deaths rather than the server.
Defaults to false.
 
static bool[] IsAMineThatDealsTripleDamageWhenStationary = Factory.CreateBoolSet(135, 138, 141, 144, 778, 782, 795, 798, 801, 786, 789, 792)
 If true for a given projectile type (Projectile.type), then that projectile will deal triple damage when moving less than 0.5 pixels per tick.
Defauls to false.
 
static bool[] IsAnNPCAttachedExplosive = Factory.CreateBoolSet(636)
 If true for a given projectile type (Projectile.type), then that projectile is an explosive that can attach to an NPC.
NPC-attached explosives will be killed when NPC.PopAllAttachedProjectilesAndTakeDamageForThem is called.
Used exclusively for the Daybreak.
Defaults to false. More...
 
static bool[] IsARocketThatDealsDoubleDamageToPrimaryEnemy = Factory.CreateBoolSet(134, 137, 140, 143, 776, 780, 793, 796, 799, 784, 787, 790, 246)
 If true for a given projectile type (Projectile.type), then that projectile will deal double damage as long as Projectile.timeLeft > 3.
Defauls to false.
 
static bool[] IsAWhip = Factory.CreateBoolSet(false, 847, 841, 848, 849, 912, 913, 914, 915, 952)
 If true for a given projectile type (Projectile.type), then that projectile will use whip collision and can have flasks applied to it.
Defaults to false. More...
 
static bool[] LightPet = Factory.CreateBoolSet(18, 500, 72, 87, 86, 211, 492, 650, 702, 891, 896, 895)
 If true for a given projectile type (Projectile.type), then that projectile is a light pet.
Items that summon light pets can be equipped in the light pet slot, and light pets are dyed according to their owner's Player.cLight shader.
Defaults to false.
 
static bool[] MinionSacrificable = Factory.CreateBoolSet(191, 192, 193, 194, 266, 317, 373, 375, 387, 388, 390, 393, 407, 423, 533, 613, 755, 758, 759, 831, 970, 864, 946, 951, 963, 625, 626, 627, 628)
 If true for a given projectile type (Projectile.type), then other minions will be sacrificed to make room to summon this minion.
Used for all standard minions.
Defaults to false.
 
static bool[] MinionShot = Factory.CreateBoolSet(374, 376, 389, 195, 408, 433, 614, 818)
 If true for a given projectile type (Projectile.type), then that projectile is shot by some minion.
Used for tracking whip effects and preventing minions from cutting tiles.
Defaults to false.
 
static bool[] MinionTargettingFeature = Factory.CreateBoolSet(191, 192, 193, 194, 266, 317, 373, 375, 387, 388, 390, 393, 407, 423, 533, 613, 625, 755, 758, 759, 831, 833, 834, 835, 864, 946, 951, 963, 970, 377, 308, 643, 641, 663, 665, 667, 677, 678, 679, 688, 689, 690, 691, 692, 693, 966)
 If true for a given projectile type (Projectile.type), then any item that shoots that projectile can be right-clicked to force minion targeting.
Defaults to false.
 
static bool[] NeedsUUID = Factory.CreateBoolSet(625, 626, 627, 628)
 
static bool[] NoLiquidDistortion = Factory.CreateBoolSet(511, 512, 513)
 If true for a given projectile type (Projectile.type), then that projectile will never distort liquids.
Defaults to false.
 
static bool[] NoMeleeSpeedVelocityScaling = Factory.CreateBoolSet(false, 699, 707, 877, 878, 879, 985, 973)
 If true for a given projectile type (Projectile.type), then its velocity will not scale with the player's melee speed.
Useful for melee projectiles (shortswords, lances, etc.) that use velocity as an offset from the player.
Defaults to false.
 
static bool[] PlayerHurtDamageIgnoresDifficultyScaling = Factory.CreateBoolSet(28, 29, 30, 37, 108, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 164, 397, 470, 516, 517, 519, 588, 637, 773, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 903, 904, 905, 906, 910, 911, 1002)
 If true for a given projectile type (Projectile.type), then that projectile will do the same damage to players regardless of difficulty (expert/master etc).
This set includes all the friendly vanilla explosives which can hurt players from vanilla
 
static bool[] RocketsSkipDamageForPlayers = Factory.CreateBoolSet(338, 339, 340, 341, 803, 804, 862, 863, 805, 806, 807, 808, 809, 810, 930)
 If true for a given projectile type (Projectile.type), then that projectile, despite exploding, will not deal damage to players.
Defaults to false.
 
static bool[] SentryShot = Factory.CreateBoolSet(680, 664, 666, 668, 694, 695, 696, 644, 642, 378, 379, 309, 967)
 If true for a given projectile type (Projectile.type), then that projectile is shot by some sentry.
Used for tracking whip effects and preventing sentries from cutting tiles.
Defaults to false.
 
static bool[] SingleGrappleHook = Factory.CreateBoolSet(false, 13, 315, 230, 231, 232, 233, 234, 235, 331, 753, 865, 935)
 Set of Grapple Hook Projectile IDs that determines whether or not said projectile can only have one copy of it within the world per player.
 
static bool[] StardustDragon = Factory.CreateBoolSet(625, 626, 627, 628)
 
static bool[] StormTiger = Factory.CreateBoolSet(833, 834, 835)
 
static int[] StormTigerIds
 
static float[] SummonTagDamageMultiplier
 Used to scale down summon tag damage for fast hitting minions and sentries. More...
 
static int[] TrailCacheLength = Factory.CreateIntSet(10, 466, 20, 502, 25, 580, 20, 636, 20, 640, 20, 686, 20, 711, 20, 715, 20, 716, 20, 717, 20, 718, 20, 261, 20, 721, 20, 729, 20, 731, 20, 739, 20, 740, 20, 741, 20, 742, 20, 743, 20, 744, 20, 745, 20, 746, 20, 747, 20, 748, 20, 749, 20, 750, 20, 751, 20, 752, 20, 766, 60, 767, 60, 768, 60, 769, 60, 770, 60, 771, 80, 814, 40, 822, 80, 823, 80, 824, 60, 826, 60, 827, 65, 828, 60, 829, 60, 830, 80, 838, 80, 839, 60, 840, 60, 843, 60, 844, 65, 845, 80, 846, 80, 850, 80, 852, 60, 853, 60, 856, 2, 857, 2, 864, 60, 873, 60, 872, 120, 833, 20, 834, 20, 835, 20, 818, 20, 883, 41, 887, 51, 893, 71, 894, 10, 909, 5, 916, 20, 34, 30, 16, 30, 79, 60, 931, 20, 933, 60, 946, 20, 977, 30, 976, 60, 973, 20, 106, 15, 85, 60, 1001, 12, 1020, 20)
 The length of the trail to store. Each projectile type defaults to 10. Use for drawing trails. Must be used with ProjectileID.Sets.TrailingMode to be used properly.
 
static int[] TrailingMode = Factory.CreateIntSet(-1, 94, 0, 301, 0, 388, 0, 385, 0, 408, 0, 409, 0, 435, 0, 436, 0, 437, 0, 438, 0, 452, 0, 459, 0, 462, 0, 502, 0, 503, 0, 466, 1, 532, 0, 533, 0, 573, 0, 580, 1, 582, 0, 585, 0, 592, 0, 601, 0, 617, 0, 636, 0, 638, 0, 639, 0, 640, 0, 424, 0, 425, 0, 426, 0, 660, 0, 661, 0, 671, 2, 664, 0, 666, 0, 668, 0, 675, 0, 680, 2, 682, 0, 684, 0, 686, 2, 700, 0, 706, 0, 709, 0, 710, 2, 711, 2, 712, 0, 715, 2, 716, 2, 717, 2, 718, 2, 261, 0, 721, 0, 729, 2, 732, 0, 731, 0, 739, 0, 740, 0, 741, 0, 742, 0, 743, 0, 744, 0, 745, 0, 746, 0, 747, 0, 748, 0, 749, 0, 750, 0, 751, 0, 752, 0, 755, 2, 766, 2, 767, 2, 768, 2, 769, 2, 770, 2, 771, 2, 811, 2, 814, 2, 822, 2, 823, 2, 824, 2, 826, 2, 827, 2, 828, 2, 829, 2, 830, 2, 838, 2, 839, 2, 840, 2, 843, 2, 844, 2, 845, 2, 846, 2, 850, 2, 852, 2, 853, 2, 856, 0, 857, 0, 864, 2, 873, 2, 872, 2, 833, 2, 834, 2, 835, 2, 818, 2, 902, 0, 883, 0, 887, 0, 893, 0, 894, 0, 909, 0, 916, 2, 34, 3, 16, 3, 79, 3, 931, 2, 933, 4, 946, 2, 964, 0, 965, 0, 977, 2, 976, 2, 973, 2, 106, 5, 85, 3, 1001, 3, 1020, 2)
 Determines what data will be remembered for projectile trails. Each projectile type defaults to -1, meaning no information is saved. Use values of 0 or 2 most of the time.
0: only position data is remembered.
1: should not be used.
2: position, rotation, and spriteDirection data is remembered
3: same as 2, but attempts to smooth out old data by interpolating values
4: same as 2, but adjusts old data to follow the player owner.
Must be used with ProjectileID.Sets.TrailCacheLength, Projectile.oldPos, Projectile.oldRot, Projectile.oldSpriteDirection to be used properly.
Refer to ExampleBullet.csin ExampleMod for sample usage.
 
static bool[] TurretFeature = Factory.CreateBoolSet()
 If true for a given projectile type (Projectile.type), then any item that shoots that projectile will have an alt. use function to clear all projectiles the using player owns that are in this set.
Unused in vanilla.
Defaults to false.
 
static ? bool[] WindPhysicsImmunity
 Wind Physics is completely disabled and unfunctional in Terraria, but the presence of the code suggest that it might be enabled in a future update. There is no need to use WindPhysicsImmunity currently.
If true for a given projectile type (Projectile.type), then that projectile will always use wind physics.
If false for a given projectile type, then that projectile will never use wind physics.
If null for a given projectile type, then vanilla decides if that projectile will use wind physics by checking Projectile.aiStyle.
Defaults to null. More...
 
static float[] YoyosLifeTimeMultiplier = Factory.CreateFloatSet(-1f, 541f, 3f, 548f, 5f, 542f, 7f, 543f, 6f, 544f, 8f, 534f, 9f, 564f, 11f, 999f, 11f, 545f, 13f, 563f, 10f, 562f, 8f, 553f, 12f, 546f, 16f, 552f, 15f, 549f, 14f)
 The lifetime of a yoyo projectile (ProjAIStyleID.Yoyo) in seconds.
A value of -1f means that yoyo has an infinite lifetime.
Defaults to -1f.
 
static float[] YoyosMaximumRange = Factory.CreateFloatSet(200f, 541f, 130f, 548f, 170f, 542f, 195f, 543f, 207f, 544f, 215f, 534f, 220f, 564f, 225f, 999f, 225f, 545f, 235f, 562f, 235f, 563f, 250f, 546f, 275f, 552f, 270f, 553f, 275f, 547f, 280f, 549f, 290f, 554f, 340f, 550f, 370f, 551f, 370f, 555f, 360f, 603f, 400f)
 The maximum distance a yoyo projectile (ProjAIStyleID.Yoyo) can be from its owner in pixels.
Defaults to 200f (12.5 tiles).
 
static float[] YoyosTopSpeed = Factory.CreateFloatSet(10f, 541f, 9f, 548f, 11f, 542f, 12.5f, 543f, 12f, 544f, 13f, 534f, 13f, 564f, 14f, 999f, 14f, 545f, 14f, 562f, 15f, 563f, 12f, 546f, 17f, 552f, 14f, 553f, 15f, 547f, 17f, 549f, 16f, 554f, 16f, 550f, 16f, 551f, 16f, 555f, 16.5f, 603f, 17.5f)
 The maximum speed a yoyo projectile (ProjAIStyleID.Yoyo) can go in pixels per tick.
Defaults to 10f.
 

Member Data Documentation

◆ CanDistortWater

bool [] ProjectileID.Sets.CanDistortWater = Factory.CreateBoolSet(true, 7, 8, 152, 151, 150, 493, 494)
static

If true for a given projectile type (Projectile.type), then that projectile can create waves in water.
Defaults to true.

This set only handles water. Use NoLiquidDistortion to prevent any liquid distortion.

◆ CharacterPreviewAnimations

SettingsForCharacterPreview [] ProjectileID.Sets.CharacterPreviewAnimations
static
Initial value:
= Factory.CreateCustomSet(new SettingsForCharacterPreview(), (short)111, SimpleLoop(0, 6).WithOffset(6f, 0f).WhenNotSelected(0, 0).WithSpriteDirection(-1), (short)112, SimpleLoop(0, 3, 5).WhenNotSelected(0, 0).WithSpriteDirection(-1), (short)127, SimpleLoop(0, 5).WhenNotSelected(0, 0).WithOffset(-6f, 0f).WithSpriteDirection(-1), (short)175, SimpleLoop(0, 2, 8).WhenNotSelected(0, 2, 10).WithOffset(-4f, -6f).WithCode(DelegateMethods.CharacterPreview.Float), (short)197, SimpleLoop(0, 0).WithOffset(-8f, -4f).WithCode(DelegateMethods.CharacterPreview.FloatAndSpinWhenWalking), (short)198, SimpleLoop(0, 4).WhenNotSelected(0, 4, 4).WithOffset(-8f, -20f).WithSpriteDirection(-1)
.WithCode(DelegateMethods.CharacterPreview.Float), (short)199, SimpleLoop(0, 8, 6).WhenNotSelected(0, 8, 6).WithOffset(-2f, -18f).WithCode(DelegateMethods.CharacterPreview.Float), (short)200, SimpleLoop(0, 6, 5).WhenNotSelected(0, 0).WithOffset(-2f, 0f).WithSpriteDirection(-1), (short)208, SimpleLoop(1, 4, 5).WhenNotSelected(1, 4, 7).WithOffset(-2f, -12f).WithSpriteDirection(-1)
.WithCode(DelegateMethods.CharacterPreview.Float), (short)209, SimpleLoop(2, 10, 5).WhenNotSelected(0, 0).WithOffset(6f, 0f).WithSpriteDirection(-1), (short)210, SimpleLoop(1, 6, 6).WhenNotSelected(0, 0).WithOffset(4f, 0f).WithSpriteDirection(-1), (short)236, SimpleLoop(2, 7, 5).WhenNotSelected(0, 0).WithOffset(-16f, 0f).WithSpriteDirection(-1), (short)268, SimpleLoop(0, 6, 6).WhenNotSelected(0, 0).WithOffset(4f, 0f).WithSpriteDirection(-1), (short)269, SimpleLoop(0, 4, 6).WhenNotSelected(0, 0).WithOffset(0f, 0f).WithSpriteDirection(-1), (short)313, SimpleLoop(0, 4, 5).WhenNotSelected(0, 0).WithOffset(-6f, 0f).WithSpriteDirection(-1), (short)314, SimpleLoop(1, 6, 5).WhenNotSelected(0, 0).WithOffset(-4f, 0f).WithSpriteDirection(-1), (short)319, SimpleLoop(2, 4, 6).WhenNotSelected(0, 0).WithOffset(-14f, 0f).WithSpriteDirection(-1), (short)324, SimpleLoop(2, 4, 6).WhenNotSelected(0, 0).WithOffset(-4f, 0f).WithSpriteDirection(-1), (short)334, SimpleLoop(2, 5, 5).WhenNotSelected(0, 0).WithOffset(-10f, 0f).WithSpriteDirection(-1), (short)353, SimpleLoop(2, 8, 6).WhenNotSelected(0, 0).WithOffset(4f, 0f).WithSpriteDirection(-1), (short)380, SimpleLoop(0, 4, 6).WithOffset(-10f, -20f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)398, SimpleLoop(1, 5, 7).WhenNotSelected(0, 0).WithOffset(6f, 0f), (short)499, SimpleLoop(2, 6, 7).WhenNotSelected(0, 0).WithOffset(-18f, 0f).WithSpriteDirection(-1), (short)653, SimpleLoop(0, 0).WithOffset(-2f, 0f).WithCode(DelegateMethods.CharacterPreview.CompanionCubePet), (short)703, SimpleLoop(0, 4).WhenNotSelected(0, 4, 4).WithOffset(4f, -10f).WithCode(DelegateMethods.CharacterPreview.Float), (short)701, SimpleLoop(0, 3, 6).WhenNotSelected(0, 3, 6).WithOffset(-2f, -18f).WithCode(DelegateMethods.CharacterPreview.Float), (short)764, SimpleLoop(0, 0).WithOffset(2f, -18f).WithCode(DelegateMethods.CharacterPreview.EtsyPet), (short)765, SimpleLoop(2, 4, 6).WhenNotSelected(0, 0).WithOffset(-4f, 0f).WithSpriteDirection(-1), (short)774, SimpleLoop(4, 4, 6).WithOffset(-14f, -24f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)825, SimpleLoop(14, 6, 6).WhenNotSelected(0, 0).WithOffset(-6f, 0f).WithSpriteDirection(-1), (short)821, SimpleLoop(13, 6, 6).WhenNotSelected(0, 0).WithOffset(0f, 0f).WithSpriteDirection(-1), (short)815, SimpleLoop(0, 6, 6).WhenNotSelected(0, 6, 6).WithOffset(-20f, -30f).WithSpriteDirection(-1)
.WithCode(DelegateMethods.CharacterPreview.Float), (short)816, SimpleLoop(4, 7, 6).WhenNotSelected(0, 0).WithOffset(-10f, 0f).WithSpriteDirection(-1), (short)817, SimpleLoop(0, 3, 6, bounceLoop: true).WithSpriteDirection(-1).WithOffset(-6f, -12f).WithCode(DelegateMethods.CharacterPreview.Float), (short)854, SimpleLoop(0, 4, 6).WithOffset(6f, 0f).WithSpriteDirection(-1).WhenSelected(4, 9, 4), (short)858, SimpleLoop(0, 1).WithOffset(-6f, 0f).WithSpriteDirection(-1).WhenSelected(2, 8, 4), (short)859, SimpleLoop(0, 1).WithOffset(4f, 0f).WithSpriteDirection(-1).WhenSelected(5, 13, 3), (short)860, SimpleLoop(0, 1).WithOffset(2f, 0f).WithSpriteDirection(-1).WhenSelected(5, 1), (short)875, SimpleLoop(0, 1).WithOffset(4f, 0f).WithSpriteDirection(-1).WhenSelected(0, 7, 4), (short)881, SimpleLoop(0, 1).WhenSelected(1, 5, 6).WithCode(DelegateMethods.CharacterPreview.SlimePet), (short)882, SimpleLoop(0, 6, 5).WithOffset(4f, -16f).WithCode(DelegateMethods.CharacterPreview.Float), (short)883, SimpleLoop(0, 1).WithOffset(2f, -8f).WithCode(DelegateMethods.CharacterPreview.WormPet), (short)884, SimpleLoop(0, 1).WhenSelected(2, 7, 5), (short)885, SimpleLoop(0, 5, 5).WithOffset(4f, -16f).WithCode(DelegateMethods.CharacterPreview.FloatAndSpinWhenWalking), (short)886, SimpleLoop(0, 8).WithOffset(4f, -16f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)887, SimpleLoop(0, 1).WithOffset(2f, -8f).WithCode(DelegateMethods.CharacterPreview.WormPet), (short)888, SimpleLoop(0, 6, 5).WithOffset(4f, -16f).WithCode(DelegateMethods.CharacterPreview.Float), (short)889, SimpleLoop(0, 5, 5).WithOffset(4f, -16f).WithCode(DelegateMethods.CharacterPreview.FloatAndSpinWhenWalking), (short)890, SimpleLoop(0, 1).WithOffset(2f, 0f).WhenSelected(2, 6, 5), (short)892, SimpleLoop(0, 6, 6).WithOffset(-4f, -12f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)893, SimpleLoop(0, 1).WithOffset(0f, -8f).WithCode(DelegateMethods.CharacterPreview.WormPet), (short)894, SimpleLoop(0, 8).WithOffset(-2f, -12f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)897, SimpleLoop(0, 1).WithOffset(2f, 0f).WhenSelected(2, 6, 5), (short)898, SimpleLoop(0, 16, 5).WithOffset(-2f, -16f), (short)899, SimpleLoop(0, 1).WithOffset(2f, 0f).WhenSelected(2, 7, 4), (short)900, SimpleLoop(0, 1).WithOffset(6f, 0f).WhenSelected(2, 7, 4), (short)901, SimpleLoop(0, 5).WithOffset(-2f, -12f).WithSpriteDirection(-1).WithCode(DelegateMethods.CharacterPreview.Float), (short)934, SimpleLoop(0, 1).WhenSelected(1, 5, 5).WithCode(DelegateMethods.CharacterPreview.SlimePet), (short)956, SimpleLoop(0, 1).WithOffset(0f, 0f).WhenSelected(1, 8, 4).WithCode(DelegateMethods.CharacterPreview.BerniePet), (short)957, SimpleLoop(0, 24, 3).WithOffset(0f, -14f).WithCode(DelegateMethods.CharacterPreview.Float), (short)958, SimpleLoop(0, 1).WithOffset(-2f, 0f).WhenSelected(5, 8, 4), (short)959, SimpleLoop(0, 1).WhenSelected(1, 7, 4).WithOffset(4f, 0f), (short)960, SimpleLoop(0, 4).WithOffset(4f, 0f).WhenSelected(5, 7, 4), (short)994, SimpleLoop(0, 4, 5).WithOffset(2f, 0f).WhenSelected(5, 7, 5), (short)998, SimpleLoop(0, 1).WithOffset(6f, 0f).WithSpriteDirection(-1).WhenSelected(0, 6, 5), (short)1003, SimpleLoop(0, 1).WithOffset(2f, 0f).WithSpriteDirection(-1).WhenSelected(2, 9, 4), (short)1004, SimpleLoop(0, 1).WithOffset(-2f, 0f).WithSpriteDirection(-1).WhenSelected(2, 7, 4), (short)1018, SimpleLoop(0, 0).WithOffset(8f, 0f).WithCode(DelegateMethods.CharacterPreview.CompanionCubePet))
Definition: DelegateMethods.cs:15
Definition: DelegateMethods.cs:13
Definition: SettingsForCharacterPreview.cs:6

Determines the idle animation of a player's pets on the player select screen.
Common code for these can be found in DelegateMethods.CharacterPreview.
Defaults to a new SettingsForCharacterPreview instance, which does nothing.

◆ Explosive

bool [] ProjectileID.Sets.Explosive
static
Initial value:
= Factory.CreateBoolSet(false, Bomb, Dynamite, Grenade, StickyBomb, HappyBomb, BombSkeletronPrime, Explosives,
GrenadeI, RocketI, ProximityMineI, GrenadeII, RocketII, ProximityMineII, GrenadeIII, RocketIII, ProximityMineIII, GrenadeIV, RocketIV, ProximityMineIV,
Landmine, RocketSkeleton, RocketSnowmanI, RocketSnowmanII, RocketSnowmanIII, RocketSnowmanIV, StickyGrenade, StickyDynamite, BouncyBomb, BouncyGrenade,
BombFish, PartyGirlGrenade, BouncyDynamite, DD2GoblinBomb, ScarabBomb, ClusterRocketI, ClusterGrenadeI, ClusterMineI, ClusterFragmentsI, ClusterRocketII,
ClusterRocketII, ClusterMineII, ClusterFragmentsII, WetRocket, WetGrenade, WetMine, LavaRocket, LavaGrenade, LavaMine, HoneyRocket, HoneyGrenade, HoneyMine,
MiniNukeRocketI, MiniNukeGrenadeI, MiniNukeMineI, MiniNukeRocketII, MiniNukeGrenadeII, MiniNukeMineII, DryRocket, DryGrenade, DryMine, ClusterSnowmanRocketI,
ClusterSnowmanRocketII, WetSnowmanRocket, LavaSnowmanRocket, HoneySnowmanRocket, MiniNukeSnowmanRocketI, MiniNukeSnowmanRocketII, DrySnowmanRocket,
ClusterSnowmanFragmentsI, ClusterSnowmanFragmentsII, WetBomb, LavaBomb, HoneyBomb, DryBomb, DirtBomb, DirtStickyBomb, SantankMountRocket, TNTBarrel)

Contains all of the projectiles that are classified as explosives. This includes all vanilla projectiles using ProjAIStyleID.Explosive and any modded projectiles that should be regarded as explosives that do not necessarily use that aiStyle. This set facilitates implementing explosive projectiles without limiting them to using ProjAIStyleID.Explosive directly, allowing for custom AI code to be used without sacrificing other expected behaviors. Projectiles using this set need to also use ModLoader.ModProjectile.PrepareBombToBlow. Several shared behaviors of explosive projectiles will be automatically applied to projectiles using this set: Sets the timeLeft to 3 and the projectile direction when colliding with an NPC or player in PVP (so the explosive can detonate). Explosives also bounce off the top of Shimmer, detonate with no blast damage when touching the bottom or sides of Shimmer, and damage other players in For the Worthy worlds. Note that code should check both (projectile.aiStyle == ProjAIStyleID.Explosive || ProjectileID.Sets.Explosive[projectile.type]) for any code targeting explosive projectiles since this set might not be complete.

◆ ExtendedCanHitCheckSearch

GenSearch [] ProjectileID.Sets.ExtendedCanHitCheckSearch
static
Initial value:
= Factory.CreateCustomSet<GenSearch>(null, new object[6] {
(short)833,
new Searches.Up(3),
(short)834,
new Searches.Up(3),
(short)835,
new Searches.Up(3)
})
Definition: GenSearch.cs:6
Definition: Searches.cs:68
Definition: Searches.cs:6

A GenSearch to use when checking for collisions, in addition to standard hitbox checks.
Defaults to null.

◆ FallingBlockTileItem

FallingBlockTileItemInfo [] ProjectileID.Sets.FallingBlockTileItem
static
Initial value:
= Factory.CreateCustomSet<FallingBlockTileItemInfo>(null,
SandBallGun, new FallingBlockTileItemInfo(TileID.Sand),
EbonsandBallGun, new FallingBlockTileItemInfo(TileID.Ebonsand),
PearlSandBallGun, new FallingBlockTileItemInfo(TileID.Pearlsand),
CrimsandBallGun, new FallingBlockTileItemInfo(TileID.Crimsand),
MudBall, new FallingBlockTileItemInfo(TileID.Mud),
AshBallFalling, new FallingBlockTileItemInfo(TileID.Ash),
SnowBallHostile, new FallingBlockTileItemInfo(TileID.SnowBlock),
SandBallFalling, new FallingBlockTileItemInfo(TileID.Sand, ItemID.SandBlock),
EbonsandBallFalling, new FallingBlockTileItemInfo(TileID.Ebonsand, ItemID.EbonsandBlock),
PearlSandBallFalling, new FallingBlockTileItemInfo(TileID.Pearlsand, ItemID.PearlsandBlock),
CrimsandBallFalling, new FallingBlockTileItemInfo(TileID.Crimsand, ItemID.CrimsandBlock),
SiltBall, new FallingBlockTileItemInfo(TileID.Silt, ItemID.SiltBlock),
SlushBall, new FallingBlockTileItemInfo(TileID.Slush, ItemID.SlushBlock),
CopperCoinsFalling, new FallingBlockTileItemInfo(TileID.CopperCoinPile, ItemID.CopperCoin),
SilverCoinsFalling, new FallingBlockTileItemInfo(TileID.SilverCoinPile, ItemID.SilverCoin),
GoldCoinsFalling, new FallingBlockTileItemInfo(TileID.GoldCoinPile, ItemID.GoldCoin),
PlatinumCoinsFalling, new FallingBlockTileItemInfo(TileID.PlatinumCoinPile, ItemID.PlatinumCoin),
ShellPileFalling, new FallingBlockTileItemInfo(TileID.ShellPile, ItemID.ShellPileBlock)
)
Definition: ItemID.cs:10
Definition: TileID.cs:8

Maps falling tile projectiles (projectiles using ProjAIStyleID.FallingTile) to the tile they place and the item they drop if tile placement fails. Falling tile projectiles come in 2 variants, the falling version and the weapon version. The weapon version typically leaves item drop as 0 so that the item is not recovered.

◆ IsAnNPCAttachedExplosive

bool [] ProjectileID.Sets.IsAnNPCAttachedExplosive = Factory.CreateBoolSet(636)
static

If true for a given projectile type (Projectile.type), then that projectile is an explosive that can attach to an NPC.
NPC-attached explosives will be killed when NPC.PopAllAttachedProjectilesAndTakeDamageForThem is called.
Used exclusively for the Daybreak.
Defaults to false.

Check Projectile.IsAttachedTo(NPC) for the conditions in which a projectile in this set will actually explode.

◆ IsAWhip

bool [] ProjectileID.Sets.IsAWhip = Factory.CreateBoolSet(false, 847, 841, 848, 849, 912, 913, 914, 915, 952)
static

If true for a given projectile type (Projectile.type), then that projectile will use whip collision and can have flasks applied to it.
Defaults to false.

You can adjust whip settings using Projectile.WhipSettings.

◆ StormTigerIds

int [] ProjectileID.Sets.StormTigerIds
static
Initial value:
= new int[3] {
833,
834,
835
}

◆ SummonTagDamageMultiplier

float [] ProjectileID.Sets.SummonTagDamageMultiplier
static
Initial value:
= Factory.CreateFloatSet(1f,
ProjectileID.Smolstar, 0.75f,
ProjectileID.DD2LightningAuraT1, 0.5f,
ProjectileID.DD2LightningAuraT2, 0.5f,
ProjectileID.DD2LightningAuraT3, 0.5f
)
Definition: ProjectileID.cs:10

Used to scale down summon tag damage for fast hitting minions and sentries.

◆ WindPhysicsImmunity

? bool [] ProjectileID.Sets.WindPhysicsImmunity
static

Wind Physics is completely disabled and unfunctional in Terraria, but the presence of the code suggest that it might be enabled in a future update. There is no need to use WindPhysicsImmunity currently.
If true for a given projectile type (Projectile.type), then that projectile will always use wind physics.
If false for a given projectile type, then that projectile will never use wind physics.
If null for a given projectile type, then vanilla decides if that projectile will use wind physics by checking Projectile.aiStyle.
Defaults to null.

Wind physics slightly slow down projectiles facing into the wind.
Projectiles with the following AI styles will use wind physics if not blocked: ProjAIStyleID.Arrow, ProjAIStyleID.ThrownProjectile, ProjAIStyleID.Bounce, ProjAIStyleID.FallingTile, ProjAIStyleID.GroundProjectile, ProjAIStyleID.Explosive, ProjAIStyleID.GraveMarker, ProjAIStyleID.MusicNote, ProjAIStyleID.CrystalShard, ProjAIStyleID.ColdBolt, ProjAIStyleID.GemStaffBolt, ProjAIStyleID.BeachBall, ProjAIStyleID.Flare, ProjAIStyleID.FireWork, ProjAIStyleID.RopeCoil, ProjAIStyleID.ExplosiveBunny, ProjAIStyleID.Bubble, ProjAIStyleID.Nail, ProjAIStyleID.IchorSplash, ProjAIStyleID.SporeGas.