Add practically every projectile to Tome of Unyielding

This commit is contained in:
2025-11-10 14:52:37 +00:00
parent d9912fc173
commit cf9c8e8599
+75 -13
View File
@@ -4,6 +4,7 @@ using Terraria.Audio;
using Terraria.DataStructures; using Terraria.DataStructures;
using Terraria.ID; using Terraria.ID;
using Terraria.ModLoader; using Terraria.ModLoader;
using ForgottenWawiTech.Content.Rarities;
namespace ForgottenWawiTech.Content.Items.Weapons.Magic namespace ForgottenWawiTech.Content.Items.Weapons.Magic
{ {
@@ -11,18 +12,18 @@ namespace ForgottenWawiTech.Content.Items.Weapons.Magic
{ {
public override void SetDefaults() public override void SetDefaults()
{ {
Item.damage = 10000; Item.damage = 15000;
Item.mana = 30; Item.mana = 30;
Item.crit = 100; Item.crit = 100;
Item.DamageType = DamageClass.Magic; Item.DamageType = DamageClass.Magic;
Item.width = 40; Item.width = 40;
Item.height = 40; Item.height = 40;
Item.useTime = 10; Item.useTime = 20;
Item.useAnimation = 10; Item.useAnimation = 20;
Item.useStyle = ItemUseStyleID.Shoot; Item.useStyle = ItemUseStyleID.Shoot;
Item.knockBack = 6; Item.knockBack = 6;
Item.value = Item.buyPrice(platinum: 20); Item.value = Item.buyPrice(platinum: 20);
Item.rare = ItemRarityID.Red; Item.rare = ModContent.RarityType<SingularityItem>();
Item.autoReuse = true; Item.autoReuse = true;
Item.noMelee = true; Item.noMelee = true;
Item.shoot = ProjectileID.PurificationPowder; Item.shoot = ProjectileID.PurificationPowder;
@@ -30,24 +31,85 @@ namespace ForgottenWawiTech.Content.Items.Weapons.Magic
Item.useAmmo = AmmoID.None; Item.useAmmo = AmmoID.None;
} }
// On shoot, fire Projectile ID 502 (the rainbow projectile) instead of the default ammo projectile
public override bool Shoot(Player player, Terraria.DataStructures.EntitySource_ItemUse_WithAmmo source, Vector2 position, Vector2 velocity, int type, int damage, float knockBack) public override bool Shoot(Player player, Terraria.DataStructures.EntitySource_ItemUse_WithAmmo source, Vector2 position, Vector2 velocity, int type, int damage, float knockBack)
{ {
// Shoot every projectile from vanilla Terraria magic weapons at once. // Shoot every projectile from vanilla Terraria magic weapons at once.
int[] projectiles = new int[] { int[] projectiles = new int[] {
ProjectileID.WoodenArrowFriendly, // Pre-Hardmode Magic Weapons
ProjectileID.EnchantedBoomerang, ProjectileID.WandOfSparkingSpark,
ProjectileID.MagicMissile, ProjectileID.AmethystBolt,
ProjectileID.Flamelash, ProjectileID.TopazBolt,
ProjectileID.SapphireBolt,
ProjectileID.EmeraldBolt,
ProjectileID.RubyBolt,
ProjectileID.DiamondBolt,
ProjectileID.AmberBolt,
ProjectileID.VilethornBase,
ProjectileID.VilethornTip,
ProjectileID.Bee,
ProjectileID.WaterStream,
ProjectileID.BookOfSkullsSkull,
ProjectileID.DemonScythe, ProjectileID.DemonScythe,
ProjectileID.ThunderSpear,
ProjectileID.FlowerPetal,
ProjectileID.Flamelash,
ProjectileID.MagicMissile,
// Hardmode Magic Weapons
ProjectileID.SkyFracture,
ProjectileID.CrystalShard,
ProjectileID.CrystalStorm,
ProjectileID.CursedFlameFriendly,
ProjectileID.GoldenShowerFriendly,
//ProjectileID.CrystalSerpent,
ProjectileID.Meteor1,
ProjectileID.Meteor2,
ProjectileID.Meteor3,
ProjectileID.RainbowRodBullet, ProjectileID.RainbowRodBullet,
ProjectileID.UnholyTridentFriendly, //ProjectileID.MagicalHarp,
ProjectileID.LightBeam, ProjectileID.IceBlock,
ProjectileID.RainCloudRaining,
ProjectileID.PoisonFang,
ProjectileID.VenomFang,
ProjectileID.NettleBurstLeft,
ProjectileID.NettleBurstRight,
//ProjectileID.LeafBlowerLeaf,
ProjectileID.ShadowBeamFriendly,
ProjectileID.SpectreWrath,
ProjectileID.InfernoFriendlyBolt,
ProjectileID.MagnetSphereBall,
ProjectileID.MagnetSphereBolt,
ProjectileID.RainbowFront,
ProjectileID.RainbowBack,
ProjectileID.NorthPoleSnowflake,
ProjectileID.Blizzard,
ProjectileID.HeatRay,
ProjectileID.LaserMachinegunLaser,
ProjectileID.ChargedBlasterOrb,
ProjectileID.Bubble,
ProjectileID.NightBeam, ProjectileID.NightBeam,
ProjectileID.LightBeam,
ProjectileID.LunarFlare,
ProjectileID.NebulaArcanum,
ProjectileID.NebulaBlaze1,
ProjectileID.NebulaBlaze2,
ProjectileID.LastPrismLaser,
ProjectileID.ShadowFlame,
ProjectileID.ToxicFlask,
ProjectileID.BookStaffShot,
// Special/Event Magic Weapons
ProjectileID.FlaironBubble,
ProjectileID.UnholyTridentFriendly,
ProjectileID.RainFriendly, ProjectileID.RainFriendly,
ProjectileID.IceSickle, ProjectileID.IceSickle,
ProjectileID.LastPrismLaser, ProjectileID.FrostBoltStaff,
ProjectileID.NebulaBlaze2 ProjectileID.CrystalLeafShot,
ProjectileID.Spark,
ProjectileID.BeeArrow,
ProjectileID.Wasp,
ProjectileID.DD2PhoenixBowShot,
ProjectileID.MonkStaffT1,
ProjectileID.MonkStaffT2,
ProjectileID.MonkStaffT3,
}; };
foreach (int projectileType in projectiles) foreach (int projectileType in projectiles)
{ {