update to newest tmodloader version

This commit is contained in:
2025-12-22 17:28:31 +01:00
parent cc6d8d6dc2
commit e3f74c2e21
12 changed files with 304 additions and 240 deletions
+33
View File
@@ -0,0 +1,33 @@
using Terraria;
using Terraria.GameContent.Creative;
using Terraria.ID;
using Terraria.ModLoader;
namespace YHTMod.Items.ArcaneMissile;
public class ArcaneMissile : ModItem
{
public override void SetStaticDefaults()
{
CreativeItemSacrificesCatalog.Instance.SacrificeCountNeededByItemId[Type] = 1;
}
public override void SetDefaults()
{
Item.width = 64;
Item.height = 64;
Item.accessory = true;
Item.damage = 10;
Item.rare = ItemRarityID.LightRed;
Item.DamageType = DamageClass.Magic;
Item.noMelee = true;
Item.noUseGraphic = true;
}
public override void UpdateAccessory(Player player, bool hideVisual)
{
player.GetModPlayer<YhtPlayer>().arcaneMissle = Item.damage;
base.UpdateAccessory(player, hideVisual);
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

@@ -0,0 +1,50 @@
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace YHTMod.Items.ArcaneMissile;
public class ArcaneMissileBehavior : GlobalNPC
{
public override void OnHitByProjectile(NPC npc, Projectile projectile, NPC.HitInfo hitInfo, int damage)
{
if (!hitInfo.Crit)
{
base.OnHitByProjectile(npc, projectile, hitInfo, damage);
return;
}
if (Main.netMode == NetmodeID.Server)
{
return;
}
var player = Main.LocalPlayer;
if (player.GetModPlayer<YhtPlayer>().arcaneMissle != 0 && projectile.DamageType == DamageClass.Magic)
{
// player just crit with magic weapon while having arcane missile accessory
var proj = Projectile.NewProjectileDirect(
projectile.GetSource_FromThis("arcaneMissile"),
Main.LocalPlayer.position,
npc.position.DirectionFrom(Main.LocalPlayer.position),
ProjectileID.MagicMissile,
player.GetModPlayer<YhtPlayer>().arcaneMissle,
0,
Main.LocalPlayer.whoAmI
);
proj.friendly = true;
proj.hostile = false;
proj.timeLeft = 300;
proj.maxPenetrate = 1;
proj.tileCollide = false;
proj.DamageType = DamageClass.Magic;
proj.aiStyle = ProjAIStyleID.MagicMissile;
// Prevent crits for the missiles
proj.CritChance = int.MinValue;
}
base.OnHitByProjectile(npc, projectile, hitInfo, damage);
}
}