Waulk Stylie
Terrarian
I am currently creating a weapon for my mod. The weapon is supposed to give the user, friends, and npcs who walks into its aura a buff. However, I only managed to get the weapon to work when I damage the user or npcs. I would like to not damage the player when i want to activate the buff. Down below is the code, any help would be wonderful.
_________________________________________________________________________________________________________________________________________________________
Weapon Projectile
_________________________________________________________________________________________________________________________________________________________
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
namespace SupportClass.Content.Items.Weapon.SBS
{
internal class SteelButterflyStaffAura : ModProjectile
{
public override void SetDefaults()
{
Projectile.width = 144;
Projectile.height = 144;
Projectile.friendly = false;
Projectile.hostile = true;
Projectile.tileCollide = false;
Projectile.ignoreWater = true;
Projectile.DamageType = DamageClass.Magic;
Projectile.aiStyle = -1;
Projectile.penetrate = -1;
}
public override void AI()
{
Projectile.ai[0]++;
if (Projectile.ai[0] >= 180)
{
Projectile.Kill();
}
Lighting.AddLight(Projectile.Center, 1f, 1f, 0f);
}
public override void OnHitNPC(NPC target, int damage, float knockback, bool crit)
{
target.AddBuff(BuffID.Ironskin, 120 * 60);
}
}
}
_________________________________________________________________________________________________________________________________________________________
Weapon
_________________________________________________________________________________________________________________________________________________________
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Terraria.GameContent.Creative;
namespace SupportClass.Content.Items.Weapon.SBS
{
internal class SteelButterflyStaff : ModItem
{
private int timeToAdd;
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Steel Butterfly Staff");
Tooltip.SetDefault("Surrounds the user and allies in a field of Steel Butterflies, increasing Defense by 4");
CreativeItemSacrificesCatalog.Instance.SacrificeCountNeededByItemId[Type] = 5;
}
public override void SetDefaults()
{
Item.width = 42;
Item.height = 74;
Item.useStyle = ItemUseStyleID.Swing;
Item.useTime = 50;
Item.useAnimation = 50;
Item.autoReuse = true;
Item.DamageType = DamageClass.Magic;
Item.noMelee = true;
Item.mana = 0;
Item.damage = 0;
Item.knockBack = 0;
Item.crit = 0;
Item.value = Item.buyPrice(silver: 3);
Item.maxStack = 1;
Item.UseSound = SoundID.Item43;
Item.shoot = ModContent.ProjectileType<SteelButterflyStaffAura>();
Item.shootSpeed = 0;
Item.useAmmo = AmmoID.FallenStar;
}
public override void AddRecipes()
{
Recipe SBS = CreateRecipe();
SBS.AddRecipeGroup("Wood", 10);
SBS.AddRecipeGroup("IronBar", 10);
SBS.Register();
}
}
}
_________________________________________________________________________________________________________________________________________________________
Weapon Projectile
_________________________________________________________________________________________________________________________________________________________
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
namespace SupportClass.Content.Items.Weapon.SBS
{
internal class SteelButterflyStaffAura : ModProjectile
{
public override void SetDefaults()
{
Projectile.width = 144;
Projectile.height = 144;
Projectile.friendly = false;
Projectile.hostile = true;
Projectile.tileCollide = false;
Projectile.ignoreWater = true;
Projectile.DamageType = DamageClass.Magic;
Projectile.aiStyle = -1;
Projectile.penetrate = -1;
}
public override void AI()
{
Projectile.ai[0]++;
if (Projectile.ai[0] >= 180)
{
Projectile.Kill();
}
Lighting.AddLight(Projectile.Center, 1f, 1f, 0f);
}
public override void OnHitNPC(NPC target, int damage, float knockback, bool crit)
{
target.AddBuff(BuffID.Ironskin, 120 * 60);
}
}
}
_________________________________________________________________________________________________________________________________________________________
Weapon
_________________________________________________________________________________________________________________________________________________________
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Terraria.GameContent.Creative;
namespace SupportClass.Content.Items.Weapon.SBS
{
internal class SteelButterflyStaff : ModItem
{
private int timeToAdd;
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Steel Butterfly Staff");
Tooltip.SetDefault("Surrounds the user and allies in a field of Steel Butterflies, increasing Defense by 4");
CreativeItemSacrificesCatalog.Instance.SacrificeCountNeededByItemId[Type] = 5;
}
public override void SetDefaults()
{
Item.width = 42;
Item.height = 74;
Item.useStyle = ItemUseStyleID.Swing;
Item.useTime = 50;
Item.useAnimation = 50;
Item.autoReuse = true;
Item.DamageType = DamageClass.Magic;
Item.noMelee = true;
Item.mana = 0;
Item.damage = 0;
Item.knockBack = 0;
Item.crit = 0;
Item.value = Item.buyPrice(silver: 3);
Item.maxStack = 1;
Item.UseSound = SoundID.Item43;
Item.shoot = ModContent.ProjectileType<SteelButterflyStaffAura>();
Item.shootSpeed = 0;
Item.useAmmo = AmmoID.FallenStar;
}
public override void AddRecipes()
{
Recipe SBS = CreateRecipe();
SBS.AddRecipeGroup("Wood", 10);
SBS.AddRecipeGroup("IronBar", 10);
SBS.Register();
}
}
}