NullNic
Terrarian
I'm making a mod where a melee projectile homes in to enemies, here is code for the sword
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Terraria.GameContent.Creative;
using CalamityMusicAddonThing.Content.Projectiles.Weapons;
using Microsoft.Xna.Framework;
using System;
using Terraria.Graphics.Shaders;
using Terraria.Graphics.Effects;
using Terraria.DataStructures;
namespace CalamityMusicAddonThing.Content.Items.Weapons
{
internal class EnchantedEnchantedSword : ModItem
{
public override void SetDefaults()
{
Item.width = 16;
Item.height = 16;
Item.useStyle = ItemUseStyleID.Swing;
Item.useTime = 30;
Item.autoReuse = true;
Item.useAnimation = 30;
Item.DamageType = DamageClass.Melee;
Item.damage = 50;
Item.knockBack = 2.5f;
Item.crit = 15;
Item.value = Item.buyPrice(gold: 20, silver: 50);
Item.rare = ItemRarityID.Blue;
Item.UseSound = SoundID.Item1;
Item.shootSpeed = 7.5f;
Item.shoot = ModContent.ProjectileType<EnchantedSwordProjectile>();
}
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient<Enchanted_Chunk>();
recipe.AddIngredient(ItemID.CobaltBar, 20);
recipe.AddIngredient(ItemID.EnchantedSword, 1);
recipe.AddTile(TileID.MythrilAnvil);
recipe.Register();
CreateRecipe();
recipe.AddIngredient<Enchanted_Chunk>();
recipe.AddIngredient(ItemID.PalladiumBar, 20);
recipe.AddIngredient(ItemID.EnchantedSword, 1);
recipe.AddTile(TileID.MythrilAnvil);
recipe.Register();
}
public override bool Shoot(Player player, EntitySource_ItemUse_WithAmmo source, Vector2 position, Vector2 velocity, int type, int damage, float knockback)
{
const int NumProjectiles = 5;
for (int i = 0; i < NumProjectiles; i++)
{
Vector2 newVelocity = velocity.RotatedByRandom(MathHelper.ToRadians(35));
newVelocity *= 1f - Main.rand.NextFloat(0);
Projectile.NewProjectileDirect(source, position, newVelocity, type, damage, knockback, player.whoAmI);
}
return false;
}
}
}
And the projectile code :
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Microsoft.Xna.Framework;
using System;
using System.Security.Cryptography.X509Certificates;
namespace CalamityMusicAddonThing.Content.Projectiles.Weapons
{
internal class EnchantedSwordProjectile : ModProjectile
{
public override void SetDefaults()
{
Projectile.width = 28;
Projectile.height = 28;
Projectile.friendly = true;
Projectile.penetrate = 10;
Projectile.tileCollide = false;
Projectile.DamageType = DamageClass.Melee;
Projectile.ownerHitCheck = false;
Projectile.extraUpdates = 1;
Projectile.timeLeft = 2000;
Projectile.maxPenetrate = 5;
Projectile.aiStyle = ProjAIStyleID.Beam;
}
public override void AI()
{
base.AI();
Projectile.rotation = Projectile.velocity.ToRotation() + MathHelper.PiOver2 * Projectile.spriteDirection;
}
}
}
does anyone know how to make it home?
also don't mind the name of the mod, i just made it up randomly
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Terraria.GameContent.Creative;
using CalamityMusicAddonThing.Content.Projectiles.Weapons;
using Microsoft.Xna.Framework;
using System;
using Terraria.Graphics.Shaders;
using Terraria.Graphics.Effects;
using Terraria.DataStructures;
namespace CalamityMusicAddonThing.Content.Items.Weapons
{
internal class EnchantedEnchantedSword : ModItem
{
public override void SetDefaults()
{
Item.width = 16;
Item.height = 16;
Item.useStyle = ItemUseStyleID.Swing;
Item.useTime = 30;
Item.autoReuse = true;
Item.useAnimation = 30;
Item.DamageType = DamageClass.Melee;
Item.damage = 50;
Item.knockBack = 2.5f;
Item.crit = 15;
Item.value = Item.buyPrice(gold: 20, silver: 50);
Item.rare = ItemRarityID.Blue;
Item.UseSound = SoundID.Item1;
Item.shootSpeed = 7.5f;
Item.shoot = ModContent.ProjectileType<EnchantedSwordProjectile>();
}
public override void AddRecipes()
{
Recipe recipe = CreateRecipe();
recipe.AddIngredient<Enchanted_Chunk>();
recipe.AddIngredient(ItemID.CobaltBar, 20);
recipe.AddIngredient(ItemID.EnchantedSword, 1);
recipe.AddTile(TileID.MythrilAnvil);
recipe.Register();
CreateRecipe();
recipe.AddIngredient<Enchanted_Chunk>();
recipe.AddIngredient(ItemID.PalladiumBar, 20);
recipe.AddIngredient(ItemID.EnchantedSword, 1);
recipe.AddTile(TileID.MythrilAnvil);
recipe.Register();
}
public override bool Shoot(Player player, EntitySource_ItemUse_WithAmmo source, Vector2 position, Vector2 velocity, int type, int damage, float knockback)
{
const int NumProjectiles = 5;
for (int i = 0; i < NumProjectiles; i++)
{
Vector2 newVelocity = velocity.RotatedByRandom(MathHelper.ToRadians(35));
newVelocity *= 1f - Main.rand.NextFloat(0);
Projectile.NewProjectileDirect(source, position, newVelocity, type, damage, knockback, player.whoAmI);
}
return false;
}
}
}
And the projectile code :
using Terraria;
using Terraria.ModLoader;
using Terraria.ID;
using Microsoft.Xna.Framework;
using System;
using System.Security.Cryptography.X509Certificates;
namespace CalamityMusicAddonThing.Content.Projectiles.Weapons
{
internal class EnchantedSwordProjectile : ModProjectile
{
public override void SetDefaults()
{
Projectile.width = 28;
Projectile.height = 28;
Projectile.friendly = true;
Projectile.penetrate = 10;
Projectile.tileCollide = false;
Projectile.DamageType = DamageClass.Melee;
Projectile.ownerHitCheck = false;
Projectile.extraUpdates = 1;
Projectile.timeLeft = 2000;
Projectile.maxPenetrate = 5;
Projectile.aiStyle = ProjAIStyleID.Beam;
}
public override void AI()
{
base.AI();
Projectile.rotation = Projectile.velocity.ToRotation() + MathHelper.PiOver2 * Projectile.spriteDirection;
}
}
}
does anyone know how to make it home?
also don't mind the name of the mod, i just made it up randomly