ZedCoal9
Official Terrarian
Here is the error I get:
Here's my code:
The Weapon:
using Terraria;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.DataStructures;
using Terraria.Enums;
using System.IO;
using Terraria.ModLoader.IO;
using Terraria.Utilities;
namespace MashOfMad.Items.Weapons
{
public class Butterknife : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Ancient Butterknife");
Tooltip.SetDefault("Wait... who uses this as a Butterknife?!");
}
public override void SetDefaults()
{
item.damage = 140;
item.melee = true;
item.width = 66;
item.height = 70;
item.useTime = 0;
item.useAnimation = 25;
item.channel = true;
item.noMelee = true;
item.useStyle = 5;
item.knockBack = 3;
item.value = Item.buyPrice(0, 22, 50, 0);
item.rare = 9;
item.UseSound = SoundID.Item13;
item.autoReuse = true;
item.shoot = mod.ProjectileType("Swooshy");
item.shootSpeed = 40f;
}
public bool Shoot(Player player, ref Microsoft.Xna.Framework.Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
{
float numberProjectiles = 3;
float rotation = MathHelper.ToRadians(45);
position += Vector2.Normalize(new Vector2(speedX, speedY)) * 45f;
for (int i = 0; i < numberProjectiles; i++)
{
Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedBy(MathHelper.Lerp(-rotation, rotation, i / (numberProjectiles - 1))) * .2f;
Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI);
}
return false;
}
}
}
And here's the projectile:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
namespace MashOfMad.Items.Weapons
{
class Swooshy : ModProjectile
{
public void SetDefaults()
{
projectile.CloneDefaults(ProjectileID.Arkhalis);
projectile.Name = "Swooshy";
aiType = ProjectileID.Arkhalis;
}
public bool Autoload(ref string name, ref string texture)
{
texture = "Terraria/Projectile_" + ProjectileID.Arkhalis;
return true;
}
public override void OnHitNPC(NPC target, int damage, float knockback, bool crit)
{
target.AddBuff(BuffID.Stoned, 30);
}
}
}
Note that both are in the weapons folder. Whats going on here?
Here's my code:
The Weapon:
using Terraria;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xna.Framework;
using Terraria.ID;
using Terraria.ModLoader;
using Terraria.DataStructures;
using Terraria.Enums;
using System.IO;
using Terraria.ModLoader.IO;
using Terraria.Utilities;
namespace MashOfMad.Items.Weapons
{
public class Butterknife : ModItem
{
public override void SetStaticDefaults()
{
DisplayName.SetDefault("Ancient Butterknife");
Tooltip.SetDefault("Wait... who uses this as a Butterknife?!");
}
public override void SetDefaults()
{
item.damage = 140;
item.melee = true;
item.width = 66;
item.height = 70;
item.useTime = 0;
item.useAnimation = 25;
item.channel = true;
item.noMelee = true;
item.useStyle = 5;
item.knockBack = 3;
item.value = Item.buyPrice(0, 22, 50, 0);
item.rare = 9;
item.UseSound = SoundID.Item13;
item.autoReuse = true;
item.shoot = mod.ProjectileType("Swooshy");
item.shootSpeed = 40f;
}
public bool Shoot(Player player, ref Microsoft.Xna.Framework.Vector2 position, ref float speedX, ref float speedY, ref int type, ref int damage, ref float knockBack)
{
float numberProjectiles = 3;
float rotation = MathHelper.ToRadians(45);
position += Vector2.Normalize(new Vector2(speedX, speedY)) * 45f;
for (int i = 0; i < numberProjectiles; i++)
{
Vector2 perturbedSpeed = new Vector2(speedX, speedY).RotatedBy(MathHelper.Lerp(-rotation, rotation, i / (numberProjectiles - 1))) * .2f;
Projectile.NewProjectile(position.X, position.Y, perturbedSpeed.X, perturbedSpeed.Y, type, damage, knockBack, player.whoAmI);
}
return false;
}
}
}
And here's the projectile:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
namespace MashOfMad.Items.Weapons
{
class Swooshy : ModProjectile
{
public void SetDefaults()
{
projectile.CloneDefaults(ProjectileID.Arkhalis);
projectile.Name = "Swooshy";
aiType = ProjectileID.Arkhalis;
}
public bool Autoload(ref string name, ref string texture)
{
texture = "Terraria/Projectile_" + ProjectileID.Arkhalis;
return true;
}
public override void OnHitNPC(NPC target, int damage, float knockback, bool crit)
{
target.AddBuff(BuffID.Stoned, 30);
}
}
}
Note that both are in the weapons folder. Whats going on here?