Merge pull request #3 from YouHaveTrouble/arcane-missle

Arcane missle accesory
This commit is contained in:
2022-12-21 00:10:15 +01:00
committed by GitHub
8 changed files with 114 additions and 4 deletions
+10 -2
View File
@@ -4,6 +4,7 @@ using Terraria.GameContent.ItemDropRules;
using Terraria.ID; using Terraria.ID;
using Terraria.ModLoader; using Terraria.ModLoader;
using YHTMod.Items; using YHTMod.Items;
using YHTMod.Items.ArcaneMissle;
namespace YHTMod.Changes; namespace YHTMod.Changes;
@@ -14,11 +15,18 @@ public class NpcLoot : GlobalNPC
int id = npc.type; int id = npc.type;
if (NPCID.Sets.CountsAsCritter[id]) { if (NPCID.Sets.CountsAsCritter[id]) {
npcLoot.Add(ItemDropRule.Common(ModContent.ItemType<MithrilPebbleOfPigSmiting>(), 400, 1, 1)); npcLoot.Add(ItemDropRule.Common(ModContent.ItemType<MithrilPebbleOfPigSmiting>(), 400));
} }
if (NPCID.Plantera == id) { switch (id) {
case NPCID.Plantera:
npcLoot.Add(ItemDropRule.Common(ItemID.ChlorophyteOre, 1, 60, 80)); npcLoot.Add(ItemDropRule.Common(ItemID.ChlorophyteOre, 1, 60, 80));
break;
case NPCID.Tim:
npcLoot.Add(ItemDropRule.Common(ModContent.ItemType<ArcaneMissle>()));
break;
} }
} }
} }
+36
View File
@@ -0,0 +1,36 @@
using Terraria;
using Terraria.GameContent.Creative;
using Terraria.ID;
using Terraria.ModLoader;
namespace YHTMod.Items.ArcaneMissle;
public class ArcaneMissle : ModItem {
public override void SetStaticDefaults() {
DisplayName.SetDefault("Arcane Missle");
Tooltip.SetDefault(
"Magical projectile crits shoot a homing arcane missle\n" +
"Arcane missles cannot crit"
);
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,47 @@
using System;
using Terraria;
using Terraria.ID;
using Terraria.ModLoader;
namespace YHTMod.Items.ArcaneMissle;
public class ArcaneMissleBehavior : GlobalNPC {
public override void OnHitByProjectile(NPC npc, Projectile projectile, int damage, float knockback, bool crit) {
if (!crit) {
base.OnHitByProjectile(npc, projectile, damage, knockback, false);
return;
}
if (Main.netMode == NetmodeID.Server) {
return;
}
Player player = Main.LocalPlayer;
if (player.GetModPlayer<YhtPlayer>().arcaneMissle != 0 && projectile.DamageType == DamageClass.Magic) {
// player just crit with magic weapon while having arcane missle accessory
Projectile proj = Projectile.NewProjectileDirect(
projectile.GetSource_FromThis("arcaneMissle"),
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 missles
proj.CritChance = Int32.MinValue;
}
base.OnHitByProjectile(npc, projectile, damage, knockback, true);
}
}
+15
View File
@@ -0,0 +1,15 @@
using Terraria.ModLoader;
namespace YHTMod;
public class YhtPlayer : ModPlayer {
public int arcaneMissle = 0;
public override void ResetEffects() {
this.arcaneMissle = 0;
base.ResetEffects();
}
}
+1 -1
View File
@@ -1,3 +1,3 @@
displayName = YHT Mod displayName = YHT Mod
author = YouHaveTrouble author = YouHaveTrouble
version = 1.0.1 version = 1.1.0
+2
View File
@@ -1,5 +1,7 @@
Bunch of random additions ranging from QoL to random references Bunch of random additions ranging from QoL to random references
All new content and changes are documented on the wiki.
Wiki: https://github.com/YouHaveTrouble/YHTMod/wiki Wiki: https://github.com/YouHaveTrouble/YHTMod/wiki
Source: https://github.com/YouHaveTrouble/YHTMod Source: https://github.com/YouHaveTrouble/YHTMod
+2
View File
@@ -1,5 +1,7 @@
A bunch of random additions ranging from QoL to random references A bunch of random additions ranging from QoL to random references
Steam workshop: https://steamcommunity.com/sharedfiles/filedetails/?id=2897350075
Mod wiki: https://github.com/YouHaveTrouble/YHTMod/wiki Mod wiki: https://github.com/YouHaveTrouble/YHTMod/wiki
Code: YouHaveTrouble Code: YouHaveTrouble