diff --git a/Sources/Everglow.Function/Templates/Weapons/Clubs/ClubItem.cs b/Sources/Everglow.Function/Templates/Weapons/Clubs/ClubItem.cs index b8dc1e20f..db01f68e2 100644 --- a/Sources/Everglow.Function/Templates/Weapons/Clubs/ClubItem.cs +++ b/Sources/Everglow.Function/Templates/Weapons/Clubs/ClubItem.cs @@ -21,6 +21,11 @@ public abstract class ClubItem : ModItem /// public int ProjSmashType { get; protected set; } + /// + /// Damage multiplier applied when creating a smash down attack. + /// + public float SmashDamageMultiplier { get; protected set; } = 1.62f; + public override void SetStaticDefaults() { ItemSets.SwordsHammersAxesPicks[Type] = true; @@ -109,7 +114,7 @@ public override bool Shoot(Player player, EntitySource_ItemUse_WithAmmo source, if (player.ownedProjectileCounts[ProjSmashType] < 1 && Main.mouseLeftRelease) { player.mount.Dismount(player); - var p = Projectile.NewProjectileDirect(source, position + velocity * 2f, Vector2.Zero, ProjSmashType, (int)(damage * 1.62f), knockback, player.whoAmI, 0f, 0f); + var p = Projectile.NewProjectileDirect(source, position + velocity * 2f, Vector2.Zero, ProjSmashType, (int)(damage * SmashDamageMultiplier), knockback, player.whoAmI, 0f, 0f); p.scale = Item.scale; // Kill duplicate. diff --git a/Sources/Everglow/Localization/en-US/Mods.Everglow.Items.Weapons.Melee.hjson b/Sources/Everglow/Localization/en-US/Mods.Everglow.Items.Weapons.Melee.hjson index fbd118866..047039d96 100644 --- a/Sources/Everglow/Localization/en-US/Mods.Everglow.Items.Weapons.Melee.hjson +++ b/Sources/Everglow/Localization/en-US/Mods.Everglow.Items.Weapons.Melee.hjson @@ -45,7 +45,14 @@ BladeOfGreenMoss: { BloodGoldBayonet: { DisplayName: Blood Gold Bayonet - Tooltip: "" + Tooltip: + ''' + Hits have a 1/25 chance to heal 30% of damage dealt, up to 3 life + Hits against blood-marked enemies heal at least 1 life; the two heals do not stack + Healing shares a 20-tick cooldown + Gain 2 life regeneration while the struck enemy lives + Right-click: spend 15 life to apply a blood mark for 3 seconds + ''' } BloodyBoneYoyo: { @@ -55,7 +62,11 @@ BloodyBoneYoyo: { BlossomThorn: { DisplayName: Blossom Thorn - Tooltip: "" + Tooltip: + ''' + While attacking, releases up to 4 secondary spikes per second in random directions + Each spike deals 50% weapon damage and hits each target once + ''' } BlueRibbonBayonet: { @@ -140,7 +151,7 @@ CrystalClub_Item: { CurseClub_Item: { DisplayName: Curse Club_ Item - Tooltip: "" + Tooltip: Right-click while airborne to smash; cursed and ichor homing clubs share a limit of 3 per player } CurseFlameStabbingSword: { @@ -280,7 +291,7 @@ IchorBayonet: { IchorClub_Item: { DisplayName: Ichor Club_ Item - Tooltip: "" + Tooltip: Right-click while airborne to smash; cursed and ichor homing clubs share a limit of 3 per player } IronClub_Item: { @@ -339,7 +350,12 @@ MeatLantern: { MechanicMosquito: { DisplayName: Mechanic Mosquito - Tooltip: "" + Tooltip: + ''' + Summons up to three mechanical mosquitoes that deal 50% weapon damage + Each mosquito stores 1 life per eligible hit, up to 3 life + Stored life is returned when full or when you stop attacking + ''' } MechanismHalberd: { @@ -369,7 +385,7 @@ OrichalcumClub_Item: { PalladiumClub_Item: { DisplayName: Palladium Club_ Item - Tooltip: "" + Tooltip: Right-click while airborne to smash; returning clubs heal after hitting enemies, up to 3 life for a normal smash or 5 for a strong smash } PalmWoodClub_Item: { @@ -449,7 +465,12 @@ RodSpear: { RottenGoldBayonet: { DisplayName: Rotten Gold Bayonet - Tooltip: "" + Tooltip: + ''' + Normal stabs ignore 5 defense + Hits create three delayed slashes after 1 second, each dealing 100% weapon damage + Each slash hits each target once; normal stabs apply at most one mark per second + ''' } ScaleWingBlade: { @@ -514,7 +535,11 @@ TinStabbingSword: { TitaniumClub_Item: { DisplayName: Titanium Club_ Item - Tooltip: "" + Tooltip: + ''' + Right-click while high above the ground to smash down + Smashes release titanium fragments, up to 24 per player, lasting 10 seconds + ''' } ToothKnife: { @@ -574,7 +599,11 @@ VegetationBayonet: { VertebralSpur: { DisplayName: Vertebral Spur - Tooltip: "" + Tooltip: + ''' + Normal stabs gain damage with relative speed, up to 200% total damage + Right-click stabs deal more damage at close range + ''' } VortexVanquisherItem: { diff --git a/Sources/Everglow/Localization/zh-Hans/Mods.Everglow.Items.Weapons.Melee.hjson b/Sources/Everglow/Localization/zh-Hans/Mods.Everglow.Items.Weapons.Melee.hjson index e888f3edb..3507678a5 100644 --- a/Sources/Everglow/Localization/zh-Hans/Mods.Everglow.Items.Weapons.Melee.hjson +++ b/Sources/Everglow/Localization/zh-Hans/Mods.Everglow.Items.Weapons.Melee.hjson @@ -47,10 +47,11 @@ BloodGoldBayonet: { DisplayName: 血金刺剑 Tooltip: ''' - 命中敌人后有1/25的概率吸血,吸血量为造成伤害的30% - 命中的敌人未死之前,你的生命回复+2 - 右键重击:以自身损失15血为代价,对被命中的敌人施加持续3s的嗜血符印,血金刺剑命中有符印的敌人造成回血 - '据不完全统计,多数吸血鬼并不会吸取史莱姆汁' + 命中敌人有1/25概率回复伤害量30%的生命,单次最多3点 + 命中带有嗜血符印的敌人至少回复1点生命,两种治疗不叠加 + 治疗共享20帧冷却 + 命中的敌人存活时,生命回复提高2点 + 右键重击:消耗15点生命,施加持续3秒的嗜血符印 ''' } @@ -63,7 +64,8 @@ BlossomThorn: { DisplayName: 红梅落 Tooltip: ''' - 产生方向随机的二级刺锋 + 持续攻击每秒最多产生4道随机方向的二级刺锋 + 二级刺锋造成50%武器伤害,对同一目标只命中一次 '兼具美观与锋芒' ''' } @@ -154,7 +156,7 @@ CrystalClub_Item: { CurseClub_Item: { DisplayName: 咒火棍棒 - Tooltip: 一定高度后右键可下砸 + Tooltip: 一定高度后右键可下砸;咒火与灵液追踪飞棍每名玩家合计最多3个 } CurseFlameStabbingSword: { @@ -303,7 +305,7 @@ IchorBayonet: { IchorClub_Item: { DisplayName: 灵液棍棒 - Tooltip: 一定高度后右键可下砸 + Tooltip: 一定高度后右键可下砸;咒火与灵液追踪飞棍每名玩家合计最多3个 } IronClub_Item: { @@ -362,7 +364,12 @@ MeatLantern: { MechanicMosquito: { DisplayName: 械蚊刺 - Tooltip: 召唤三个会吸血的机械蚊子协助攻击,蚊子每次攻击会获得1点吸血,最多累积10点。使用结束之后,治疗吸血累积的点数 + Tooltip: + ''' + 召唤最多三只机械蚊子协助攻击,造成50%武器伤害 + 蚊子每次命中可吸血的敌人储存1点生命,每只最多储存3点 + 储满或停止使用后,蚊子返回储存的生命 + ''' } MechanismHalberd: { @@ -392,7 +399,7 @@ OrichalcumClub_Item: { PalladiumClub_Item: { DisplayName: 钯金棍棒 - Tooltip: 一定高度后右键可下砸 + Tooltip: 一定高度后右键可下砸;回旋棍命中敌人后返回治疗,弱砸最多3点、强砸最多5点生命 } PalmWoodClub_Item: { @@ -483,9 +490,9 @@ RottenGoldBayonet: { DisplayName: 魔金刺剑 Tooltip: ''' - 命中后削弱目标1点防御力 - 延时一秒在命中处生成三道200%倍率的魔金剑光 - 对于同一把[魔金刺剑],上述两种效果1秒最多触发1次,但是总数没有上限 + 普通刺击穿透5点防御 + 命中后延迟1秒生成三道各造成100%武器伤害的魔金剑光 + 每道剑光对同一目标只命中一次,普通刺击每秒最多施加一次标记 ''' } @@ -551,7 +558,11 @@ TinStabbingSword: { TitaniumClub_Item: { DisplayName: 钛金棍棒 - Tooltip: 一定高度后右键可下砸 + Tooltip: + ''' + 一定高度后右键可下砸 + 下砸释放钛金碎片,每名玩家最多保留24片,持续10秒 + ''' } ToothKnife: { @@ -613,7 +624,8 @@ VertebralSpur: { DisplayName: 椎刺骨 Tooltip: ''' - 在与目标相对速度较大的情况下提升伤害,最多不超过500% + 普通刺击随双方相对速度提高伤害,最高为200% + 右键重击距离目标越近伤害越高 '粗糙的接触面造成的毁坏随速度的增加急剧提高' ''' } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BloodGoldBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BloodGoldBayonet.cs index ae1fc03f9..12c670581 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BloodGoldBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BloodGoldBayonet.cs @@ -7,16 +7,16 @@ namespace Everglow.EternalResolve.Items.Weapons.StabbingSwords public class BloodGoldBayonet : StabbingSwordItem { // TODO:翻译 - // 命中敌人后有1/25的概率吸血,吸血量为造成伤害的30% + // 命中敌人后有1/25概率吸血,吸血量为伤害的30%,最多3点;治疗共享20帧冷却 // 命中的敌人未死之前,你的生命回复+2 // 据不完全统计,多数吸血鬼并不会吸取史莱姆汁 // 重击:以自身损失15血为代价,对被命中的敌人施加持续3s的嗜血符印,血金刺剑命中有符印的敌人造成回血 public override void SetDefaults() { - Item.damage = 11; + Item.damage = 18; Item.knockBack = 1.61f; Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 1, 2, 0); + Item.value = Item.buyPrice(0, 1, 35, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlossomThorn.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlossomThorn.cs index 9928a53a4..b5a523ca7 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlossomThorn.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlossomThorn.cs @@ -3,15 +3,15 @@ namespace Everglow.EternalResolve.Items.Weapons.StabbingSwords { - // TODO:翻译:红梅落\n产生方向随机的二级刺锋\n兼具美观与锋芒 + // TODO:翻译:红梅落\n每秒最多产生4道方向随机的二级刺锋,每道对同一目标只命中一次\n兼具美观与锋芒 public class BlossomThorn : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 9; + Item.damage = 14; Item.knockBack = 0.97f; Item.rare = ItemRarityID.Orange; - Item.value = Item.sellPrice(0, 2, 38, 0); + Item.value = Item.buyPrice(0, 2, 70, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlueRibbonBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlueRibbonBayonet.cs index 1c4c7ba19..11b603023 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlueRibbonBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/BlueRibbonBayonet.cs @@ -7,14 +7,23 @@ public class BlueRibbonBayonet : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 66; + Item.damage = 26; Item.knockBack = 2.7f; - Item.rare = ItemRarityID.LightRed; - Item.value = Item.sellPrice(0, 4, 72, 0); + Item.rare = ItemRarityID.Blue; + Item.value = Item.buyPrice(0, 2, 70, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); base.SetDefaults(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ItemID.MeteoriteBar, 15) + .AddIngredient(ItemID.Sapphire, 15) + .AddTile(TileID.Anvils) + .Register(); + } } } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CopperBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CopperBayonet.cs index 41f5d5749..4c1ad3033 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CopperBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CopperBayonet.cs @@ -8,10 +8,10 @@ public class CopperBayonet : StabbingSwordItem public override void SetDefaults() { StaminaCost += 0.3f; - Item.damage = 3; + Item.damage = 7; Item.knockBack = 1f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 12, 0); + Item.value = Item.buyPrice(0, 0, 4, 50); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CrutchBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CrutchBayonet.cs index 36702176f..a5e1f4af4 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CrutchBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CrutchBayonet.cs @@ -8,10 +8,10 @@ public class CrutchBayonet : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 9; + Item.damage = 22; Item.knockBack = 1.04f; - Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 2, 24, 0); + Item.rare = ItemRarityID.Green; + Item.value = Item.buyPrice(0, 10, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CurseFlameStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CurseFlameStabbingSword.cs index 57184a496..3ec11f47b 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CurseFlameStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/CurseFlameStabbingSword.cs @@ -9,10 +9,10 @@ public class CurseFlameStabbingSword : StabbingSwordItem // 用诅咒火焰点燃敌人! public override void SetDefaults() { - Item.damage = 40; + Item.damage = 36; Item.knockBack = 1.79f; Item.rare = ItemRarityID.LightRed; - Item.value = Item.sellPrice(0, 14, 56, 75); + Item.value = Item.buyPrice(0, 20, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; StaminaCost = 0.82f; @@ -25,7 +25,7 @@ public override void AddRecipes() CreateRecipe(). AddIngredient(ItemID.CursedFlame, 14). AddIngredient(ModContent.ItemType()). - AddTile(TileID.Anvils). + AddTile(TileID.MythrilAnvil). Register(); base.AddRecipes(); } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/DreamStar.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/DreamStar.cs index 5996e4b84..23939e36c 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/DreamStar.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/DreamStar.cs @@ -15,10 +15,10 @@ public class DreamStar : StabbingSwordItem // 读懂星空需要复杂深邃的理论知识,观赏星空只需要一只眼睛 public override void SetDefaults() { - Item.damage = 10; + Item.damage = 18; Item.knockBack = 1.5f; - Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 2, 27, 15); + Item.rare = ItemRarityID.Green; + Item.value = Item.buyPrice(0, 5, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 2.2f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EnchantedBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EnchantedBayonet.cs index a53bb6806..60bc33fb4 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EnchantedBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EnchantedBayonet.cs @@ -7,15 +7,23 @@ public class EnchantedBayonet : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 9; + Item.damage = 20; Item.knockBack = 1.45f; Item.rare = ItemRarityID.Green; - Item.value = Item.sellPrice(0, 0, 24, 0); + Item.value = Item.buyPrice(0, 15, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; StaminaCost -= 0.1f; PowerfulStabProj = ModContent.ProjectileType(); base.SetDefaults(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ItemID.EnchantedSword) + .AddTile(TileID.Anvils) + .Register(); + } } } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EternalNight.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EternalNight.cs index d702279d0..0dfc98640 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EternalNight.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/EternalNight.cs @@ -7,24 +7,33 @@ public class EternalNight : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 12; + Item.damage = 32; Item.knockBack = 2; Item.rare = ItemRarityID.Orange; - Item.value = Item.sellPrice(0, 1, 88, 48); + Item.value = Item.buyPrice(0, 20, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); base.SetDefaults(); } - // TODO: bayonet counterpart of murasama should be added to use in this recipe - // public override void AddRecipes() - // { - // CreateRecipe() - // .AddIngredient(ModContent.ItemType()) // or Blossom Thorn - // .AddIngredient(ModContent.ItemType()) - // .AddIngredient(ModContent.ItemType()) - // .AddTile(TileID.SkyMill) - // .Register(); - // } + + public override void AddRecipes() + { + int[] jungleSwords = [ModContent.ItemType(), ModContent.ItemType()]; + int[] evilSwords = [ModContent.ItemType(), ModContent.ItemType()]; + foreach (int jungleSword in jungleSwords) + { + foreach (int evilSword in evilSwords) + { + CreateRecipe() + .AddIngredient(jungleSword) + .AddIngredient(evilSword) + .AddIngredient() + .AddIngredient() + .AddTile(TileID.DemonAltar) + .Register(); + } + } + } } } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/GoldenStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/GoldenStabbingSword.cs index 5b6ff3110..449c5a626 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/GoldenStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/GoldenStabbingSword.cs @@ -7,10 +7,10 @@ public class GoldenStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 6; + Item.damage = 18; Item.knockBack = 2.7f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 72, 0); + Item.value = Item.buyPrice(0, 0, 90, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/HolyBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/HolyBayonet.cs index ab02082c4..fe8fe2268 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/HolyBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/HolyBayonet.cs @@ -7,10 +7,10 @@ public class HolyBayonet : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 58; + Item.damage = 56; Item.knockBack = 2.7f; Item.rare = ItemRarityID.Pink; - Item.value = Item.sellPrice(0, 0, 72, 0); + Item.value = Item.buyPrice(0, 23, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); @@ -21,7 +21,7 @@ public override void AddRecipes() { CreateRecipe(). AddIngredient(ItemID.HallowedBar, 10). - AddTile(TileID.Anvils). + AddTile(TileID.MythrilAnvil). Register(); base.AddRecipes(); } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IchorBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IchorBayonet.cs index 98e8c84d7..09ce1d8bc 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IchorBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IchorBayonet.cs @@ -9,10 +9,10 @@ public class IchorBayonet : StabbingSwordItem // 灵液刺剑 public override void SetDefaults() { - Item.damage = 44; + Item.damage = 32; Item.knockBack = 1.87f; Item.rare = ItemRarityID.LightRed; - Item.value = Item.sellPrice(0, 15, 27, 86); + Item.value = Item.buyPrice(0, 20, 0, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; StaminaCost = 0.82f; diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IronStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IronStabbingSword.cs index cded00041..e0b96c68d 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IronStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/IronStabbingSword.cs @@ -7,10 +7,10 @@ public class IronStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 4; + Item.damage = 11; Item.knockBack = 1.4f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 22, 0); + Item.value = Item.buyPrice(0, 0, 18, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/LeadStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/LeadStabbingSword.cs index 1e9277e1e..8527c898a 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/LeadStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/LeadStabbingSword.cs @@ -7,10 +7,10 @@ public class LeadStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 4; + Item.damage = 12; Item.knockBack = 1.45f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 24, 0); + Item.value = Item.buyPrice(0, 0, 27, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/MechanicMosquito.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/MechanicMosquito.cs index 5754bb1d9..53486bd13 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/MechanicMosquito.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/MechanicMosquito.cs @@ -5,13 +5,13 @@ namespace Everglow.EternalResolve.Items.Weapons.StabbingSwords { public class MechanicMosquito : StabbingSwordItem { - // TODO:翻译:械蚊\n召唤三个会吸血的机械蚊子协助攻击,蚊子每次攻击会获得1点吸血,最多累积10点。使用结束之后,治疗吸血累积的点数。 + // TODO:翻译:械蚊\n召唤三个会吸血的机械蚊子协助攻击,蚊子每次攻击会获得1点吸血,最多累积3点。使用结束之后,治疗吸血累积的点数。 public override void SetDefaults() { - Item.damage = 8; + Item.damage = 16; Item.knockBack = 1.14f; - Item.rare = ItemRarityID.Orange; - Item.value = Item.sellPrice(0, 8, 48, 0); + Item.rare = ItemRarityID.Green; + Item.value = Item.buyPrice(0, 2, 50, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; StaminaCost = 0.65f; // 机械剑省力,很合理() diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PlatinumStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PlatinumStabbingSword.cs index d88045efc..8fff48aef 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PlatinumStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PlatinumStabbingSword.cs @@ -7,10 +7,10 @@ public class PlatinumStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 7; + Item.damage = 21; Item.knockBack = 1.91f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 75, 0); + Item.value = Item.buyPrice(0, 1, 35, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PrisonFireBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PrisonFireBayonet.cs index 12d7fa40f..9cb36a0da 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PrisonFireBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/PrisonFireBayonet.cs @@ -11,10 +11,10 @@ public class PrisonFireBayonet : StabbingSwordItem // 切勿伤敌一万自损八千 public override void SetDefaults() { - Item.damage = 12; + Item.damage = 26; Item.knockBack = 2.34f; Item.rare = ItemRarityID.Orange; - Item.value = Item.sellPrice(0, 1, 12, 0); + Item.value = Item.buyPrice(0, 2, 70, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RedRibbonBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RedRibbonBayonet.cs index 5fa128f54..ba5b091b7 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RedRibbonBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RedRibbonBayonet.cs @@ -7,14 +7,23 @@ public class RedRibbonBayonet : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 66; + Item.damage = 26; Item.knockBack = 2.7f; - Item.rare = ItemRarityID.LightRed; - Item.value = Item.sellPrice(0, 4, 72, 0); + Item.rare = ItemRarityID.Blue; + Item.value = Item.buyPrice(0, 2, 70, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); base.SetDefaults(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ItemID.MeteoriteBar, 15) + .AddIngredient(ItemID.Ruby, 15) + .AddTile(TileID.Anvils) + .Register(); + } } } diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RottenGoldBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RottenGoldBayonet.cs index 79fe42a14..614cada56 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RottenGoldBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/RottenGoldBayonet.cs @@ -4,9 +4,9 @@ namespace Everglow.EternalResolve.Items.Weapons.StabbingSwords { // TODO:翻译 - // i:命中后削弱目标1点防御力 - // ii:延时一秒在命中处生成三道200%倍率的魔金剑光 - // 对于1个魔金刺剑,i效果和ii效果一秒最多触发一次,但是总数没有上限 + // i:普通刺击穿透5点防御 + // ii:延时一秒在命中处生成三道100%倍率的魔金剑光 + // 对于1个魔金刺剑,普通刺击每秒最多施加一次剑光标记 // 它会腐化你的骨髓 public class RottenGoldBayonet : StabbingSwordItem { @@ -14,10 +14,10 @@ public class RottenGoldBayonet : StabbingSwordItem public override void SetDefaults() { - Item.damage = 10; + Item.damage = 13; Item.knockBack = 1.52f; Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 1, 0, 0); + Item.value = Item.buyPrice(0, 1, 35, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SilverStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SilverStabbingSword.cs index 1045efef7..5702bce59 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SilverStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SilverStabbingSword.cs @@ -7,10 +7,10 @@ public class SilverStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 5; + Item.damage = 13; Item.knockBack = 1.54f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 40, 0); + Item.value = Item.buyPrice(0, 0, 45, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SwordfishBeak.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SwordfishBeak.cs index 0686d3c24..5c416648c 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SwordfishBeak.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/SwordfishBeak.cs @@ -8,10 +8,10 @@ public class SwordfishBeak : StabbingSwordItem // TODO:长喙剑鱼\n对于水里的敌人造成伤害下降40%,但是潮湿状态下攻击范围扩大50%,且体力消耗降低35%,对于干燥的敌人伤害提高40% public override void SetDefaults() { - Item.damage = 10; + Item.damage = 14; Item.knockBack = 1.22f; - Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 2, 14, 0); + Item.rare = ItemRarityID.Green; + Item.value = Item.buyPrice(0, 2, 50, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; StaminaCost = 0.75f; @@ -23,7 +23,7 @@ public override void UpdateVanitySet(Player player) { if (player.wet) { - StaminaCost = 0.4875f; + StaminaCost = 0.75f; } else { diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TinStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TinStabbingSword.cs index 8d1fe0b65..7f7faf7bb 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TinStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TinStabbingSword.cs @@ -7,10 +7,10 @@ public class TinStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 3; + Item.damage = 10; Item.knockBack = 1.24f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 16, 0); + Item.value = Item.buyPrice(0, 0, 6, 75); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TungstenStabbingSword.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TungstenStabbingSword.cs index 6196938bc..c7e0339dd 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TungstenStabbingSword.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/TungstenStabbingSword.cs @@ -7,10 +7,10 @@ public class TungstenStabbingSword : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 5; + Item.damage = 15; Item.knockBack = 1.74f; Item.rare = ItemRarityID.White; - Item.value = Item.sellPrice(0, 0, 48, 0); + Item.value = Item.buyPrice(0, 0, 67, 50); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VegetationBayonet.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VegetationBayonet.cs index 4ab387348..61195b64d 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VegetationBayonet.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VegetationBayonet.cs @@ -13,10 +13,10 @@ public class VegetationBayonet : StabbingSwordItem public override void SetDefaults() { - Item.damage = 9; + Item.damage = 18; Item.knockBack = 1.08f; Item.rare = ItemRarityID.Orange; - Item.value = Item.sellPrice(0, 0, 90, 0); + Item.value = Item.buyPrice(0, 2, 70, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); diff --git a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VertebralSpur.cs b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VertebralSpur.cs index 62876e382..1fd37cd08 100644 --- a/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VertebralSpur.cs +++ b/Sources/Modules/EternalResolve/Items/Weapons/StabbingSwords/VertebralSpur.cs @@ -3,19 +3,29 @@ namespace Everglow.EternalResolve.Items.Weapons.StabbingSwords { - // TODO:翻译:椎刺骨\n在与目标相对速度较大的情况下提升伤害,最多不超过500%\n粗糙的接触面造成的毁坏随速度的增加急剧提高 + // TODO:翻译:椎刺骨\n在与目标相对速度较大的情况下提升伤害,最多不超过200%\n粗糙的接触面造成的毁坏随速度的增加急剧提高 public class VertebralSpur : StabbingSwordItem { public override void SetDefaults() { - Item.damage = 10; + Item.damage = 16; Item.knockBack = 1.37f; - Item.rare = ItemRarityID.Blue; - Item.value = Item.sellPrice(0, 1, 16, 0); + Item.rare = ItemRarityID.Green; + Item.value = Item.buyPrice(0, 0, 90, 0); Item.shoot = ModContent.ProjectileType(); PowerfulStabDamageFlat = 4f; PowerfulStabProj = ModContent.ProjectileType(); base.SetDefaults(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ItemID.Bone, 60) + .AddIngredient(ItemID.Cobweb, 20) + .AddCondition(Condition.DownedSkeletron) + .AddTile(TileID.Anvils) + .Register(); + } } } diff --git a/Sources/Modules/EternalResolve/Projectiles/BloodGoldBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/BloodGoldBayonet_Pro.cs index c70aac49d..0c267ba26 100644 --- a/Sources/Modules/EternalResolve/Projectiles/BloodGoldBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/BloodGoldBayonet_Pro.cs @@ -10,8 +10,11 @@ public class BloodGoldBayonet_Pro : StabbingProjectile { public NPC ProjTarget; + private ulong nextHealTick; + public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = Color.Red; MaxDarkAttackUnitCount = 8; OldColorFactor = 0.7f; @@ -59,18 +62,17 @@ public override void OnKill(int timeLeft) public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) { - if (Main.rand.NextBool(25)) + if (Main.GameUpdateCount >= nextHealTick && target.type != NPCID.TargetDummy) { - if (target.type != NPCID.TargetDummy) + int healing = Main.rand.NextBool(25) ? Math.Min(3, (int)(damageDone * 0.3f)) : 0; + if (target.HasBuff(ModContent.BuffType())) { - Projectile.NewProjectile(Projectile.GetItemSource_OnHit(target, ModContent.ItemType()), target.Center, Vector2.Zero, ProjectileID.VampireHeal, 5, 0, Projectile.owner, Projectile.owner, damageDone * 0.3f); + healing = Math.Max(healing, 1); } - } - if (target.HasBuff(ModContent.BuffType())) - { - if (target.type != NPCID.TargetDummy) + if (healing > 0) { - Projectile.NewProjectile(Projectile.GetItemSource_OnHit(target, ModContent.ItemType()), target.Center, Vector2.Zero, ProjectileID.VampireHeal, 5, 0, Projectile.owner, Projectile.owner, 1); + nextHealTick = Main.GameUpdateCount + 20; + Projectile.NewProjectile(Projectile.GetItemSource_OnHit(target, ModContent.ItemType()), target.Center, Vector2.Zero, ProjectileID.VampireHeal, 5, 0, Projectile.owner, Projectile.owner, healing); } } ProjTarget = target; diff --git a/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Pro.cs index aaea5a602..402ad8bb2 100644 --- a/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Pro.cs @@ -7,6 +7,7 @@ public class BlossomThorn_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(209, 187, 107); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; @@ -25,10 +26,13 @@ public override void AI() base.AI(); } + private ulong nextSpikeTick; + public override void VisualParticle() { - if (Main.rand.NextBool(3)) + if (Main.GameUpdateCount >= nextSpikeTick) { + nextSpikeTick = Main.GameUpdateCount + 15; Vector2 vel = new Vector2(0, 12f).RotatedByRandom(6.283); Vector2 pos = Projectile.Center + Vector2.Normalize(Projectile.velocity) * Main.rand.NextFloat(Main.rand.NextFloat(30f), 120f) - vel * 3f; if (!Collision.SolidCollision(pos + vel * 3, 0, 0) && !Collision.SolidCollision(pos + vel * 6, 0, 0) && !Collision.SolidCollision(pos, 0, 0)) diff --git a/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Spike.cs b/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Spike.cs index 84e2a0968..f46b4c7f7 100644 --- a/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Spike.cs +++ b/Sources/Modules/EternalResolve/Projectiles/BlossomThorn_Spike.cs @@ -26,7 +26,7 @@ public override void SetDefaults() Projectile.DamageType = DamageClass.Melee; Projectile.penetrate = -1; Projectile.usesLocalNPCImmunity = true; - Projectile.localNPCHitCooldown = 6; + Projectile.localNPCHitCooldown = -1; Projectile.timeLeft = 20; Projectile.extraUpdates = 2; } diff --git a/Sources/Modules/EternalResolve/Projectiles/BlueRibbonBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/BlueRibbonBayonet_Pro.cs index c66325eab..aa2e90d12 100644 --- a/Sources/Modules/EternalResolve/Projectiles/BlueRibbonBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/BlueRibbonBayonet_Pro.cs @@ -6,6 +6,7 @@ public class BlueRibbonBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(220, 220, 220); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/CopperStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/CopperStabbingSword_Pro.cs index 12ef1cd31..07f85cb28 100644 --- a/Sources/Modules/EternalResolve/Projectiles/CopperStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/CopperStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class CopperStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(200, 101, 24); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/CrutchBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/CrutchBayonet_Pro.cs index 59ff267d1..32fe6bb9b 100644 --- a/Sources/Modules/EternalResolve/Projectiles/CrutchBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/CrutchBayonet_Pro.cs @@ -6,6 +6,7 @@ public class CrutchBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(155, 162, 164); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/CurseFlameStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/CurseFlameStabbingSword_Pro.cs index 1a055cd18..4c9281039 100644 --- a/Sources/Modules/EternalResolve/Projectiles/CurseFlameStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/CurseFlameStabbingSword_Pro.cs @@ -8,6 +8,7 @@ public class CurseFlameStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(87, 224, 0); MaxDarkAttackUnitCount = 9; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/DreamStar_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/DreamStar_Pro.cs index 03dfffb6f..9b452029a 100644 --- a/Sources/Modules/EternalResolve/Projectiles/DreamStar_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/DreamStar_Pro.cs @@ -30,7 +30,7 @@ public override void SetCustomDefaults() AttackLength = 1.05f; AttackEffectWidth = 0.4f; Projectile.usesLocalNPCImmunity = true; - Projectile.localNPCHitCooldown = 5; + Projectile.localNPCHitCooldown = 10; } public override void HitTileEffect(Vector2 hitPosition, float rotation, float power) diff --git a/Sources/Modules/EternalResolve/Projectiles/EnchantedBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/EnchantedBayonet_Pro.cs index 51d846ab4..07e9f8c66 100644 --- a/Sources/Modules/EternalResolve/Projectiles/EnchantedBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/EnchantedBayonet_Pro.cs @@ -7,6 +7,7 @@ public class EnchantedBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(76, 126, 255); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.8f; diff --git a/Sources/Modules/EternalResolve/Projectiles/EternalNight_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/EternalNight_Pro.cs index 484560f92..234308fef 100644 --- a/Sources/Modules/EternalResolve/Projectiles/EternalNight_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/EternalNight_Pro.cs @@ -7,6 +7,7 @@ public class EternalNight_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(189, 14, 255); MaxDarkAttackUnitCount = 8; OldColorFactor = 0.8f; diff --git a/Sources/Modules/EternalResolve/Projectiles/GoldenStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/GoldenStabbingSword_Pro.cs index 64e294550..c689c15bb 100644 --- a/Sources/Modules/EternalResolve/Projectiles/GoldenStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/GoldenStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class GoldenStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(255, 206, 48); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/HolyBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/HolyBayonet_Pro.cs index 03c8698f0..2dc25b182 100644 --- a/Sources/Modules/EternalResolve/Projectiles/HolyBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/HolyBayonet_Pro.cs @@ -7,6 +7,7 @@ public class HolyBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(243, 175, 105); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/IchorBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/IchorBayonet_Pro.cs index d86c92ceb..a083c52ae 100644 --- a/Sources/Modules/EternalResolve/Projectiles/IchorBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/IchorBayonet_Pro.cs @@ -8,6 +8,7 @@ public class IchorBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(247, 197, 0); MaxDarkAttackUnitCount = 6; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/IronStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/IronStabbingSword_Pro.cs index 126f83209..9d26a64fe 100644 --- a/Sources/Modules/EternalResolve/Projectiles/IronStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/IronStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class IronStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(120, 108, 96); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.4f; diff --git a/Sources/Modules/EternalResolve/Projectiles/LeadStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/LeadStabbingSword_Pro.cs index 477621064..ed0b876a0 100644 --- a/Sources/Modules/EternalResolve/Projectiles/LeadStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/LeadStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class LeadStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(85, 94, 123); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.4f; diff --git a/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Mosquito.cs b/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Mosquito.cs index 5e9e16eaf..6c1efc5e2 100644 --- a/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Mosquito.cs +++ b/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Mosquito.cs @@ -141,11 +141,11 @@ public override bool PreDraw(ref Color lightColor) public override void ModifyHitNPC(NPC target, ref NPC.HitModifiers modifiers) { - if (Blood < 10) + if (Blood < 3) { Blood++; } - if (Blood == 10) + if (Blood == 3) { Projectile.Kill(); } diff --git a/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Pro.cs index 3642a497e..b0f59b954 100644 --- a/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/MechanicMosquito_Pro.cs @@ -9,6 +9,7 @@ public class MechanicMosquito_Pro : StabbingProjectile public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(187, 196, 196); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.4f; @@ -66,7 +67,7 @@ public override void AI() if (player.ownedProjectileCounts[mosq] < 3) { Vector2 vel2 = new Vector2(0, -8f).RotatedBy(Main.rand.NextFloat(-0.2f, 0.2f)); - Projectile.NewProjectile(Projectile.GetSource_FromAI(), player.Center, vel2, mosq, Projectile.damage, 0, Projectile.owner, Main.rand.NextFloat(6.283f)); + Projectile.NewProjectile(Projectile.GetSource_FromAI(), player.Center, vel2, mosq, Projectile.damage / 2, 0, Projectile.owner, Main.rand.NextFloat(6.283f)); } } } diff --git a/Sources/Modules/EternalResolve/Projectiles/PlatinumStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/PlatinumStabbingSword_Pro.cs index 030737200..befb64eee 100644 --- a/Sources/Modules/EternalResolve/Projectiles/PlatinumStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/PlatinumStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class PlatinumStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(166, 166, 226); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/PrisonFireBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/PrisonFireBayonet_Pro.cs index 7ff51d33d..5bc5d7594 100644 --- a/Sources/Modules/EternalResolve/Projectiles/PrisonFireBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/PrisonFireBayonet_Pro.cs @@ -11,6 +11,7 @@ public class PrisonFireBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = Color.Orange; MaxDarkAttackUnitCount = 6; OldColorFactor = 1f; diff --git a/Sources/Modules/EternalResolve/Projectiles/RedRibbonBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/RedRibbonBayonet_Pro.cs index 1b0e18927..96704664e 100644 --- a/Sources/Modules/EternalResolve/Projectiles/RedRibbonBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/RedRibbonBayonet_Pro.cs @@ -6,6 +6,7 @@ public class RedRibbonBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(220, 220, 220); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Pro.cs index 57f54adc5..e59db8d7b 100644 --- a/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Pro.cs @@ -9,6 +9,7 @@ public class RottenGoldBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(105, 105, 255); MaxDarkAttackUnitCount = 8; OldColorFactor = 0.7f; @@ -46,12 +47,16 @@ public override void VisualParticle() } } + public override void ModifyHitNPC(NPC target, ref NPC.HitModifiers modifiers) + { + modifiers.ArmorPenetration += 5; + } + public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) { if (sourceItem.specialDelay == 0) { sourceItem.specialDelay = 60; - target.defense -= 1; Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), target.Center, Vector2.zeroVector, ModContent.ProjectileType(), (int)(Projectile.damage * 1f), Projectile.knockBack * 2.97f, Projectile.owner, 0, target.whoAmI); } } diff --git a/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Slash.cs b/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Slash.cs index 486f8bb87..bd26fd722 100644 --- a/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Slash.cs +++ b/Sources/Modules/EternalResolve/Projectiles/RottenGoldBayonet_Slash.cs @@ -30,7 +30,7 @@ public override void SetDefaults() Projectile.DamageType = DamageClass.Melee; Projectile.penetrate = -1; Projectile.usesLocalNPCImmunity = true; - Projectile.localNPCHitCooldown = 60; + Projectile.localNPCHitCooldown = -1; Projectile.timeLeft = 120; Projectile.extraUpdates = 3; } diff --git a/Sources/Modules/EternalResolve/Projectiles/SilverStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/SilverStabbingSword_Pro.cs index 19a839115..ed23fd2a1 100644 --- a/Sources/Modules/EternalResolve/Projectiles/SilverStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/SilverStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class SilverStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(180, 191, 193); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/SwordfishBeak_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/SwordfishBeak_Pro.cs index 15dcd512f..ab63c53a9 100644 --- a/Sources/Modules/EternalResolve/Projectiles/SwordfishBeak_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/SwordfishBeak_Pro.cs @@ -8,6 +8,7 @@ public class SwordfishBeak_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(117, 134, 243); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/TinStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/TinStabbingSword_Pro.cs index 71d93d9d5..f05c9f788 100644 --- a/Sources/Modules/EternalResolve/Projectiles/TinStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/TinStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class TinStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(196, 176, 117); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/TungstenStabbingSword_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/TungstenStabbingSword_Pro.cs index f38ab268d..88818acd9 100644 --- a/Sources/Modules/EternalResolve/Projectiles/TungstenStabbingSword_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/TungstenStabbingSword_Pro.cs @@ -6,6 +6,7 @@ public class TungstenStabbingSword_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(173, 218, 175); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.3f; diff --git a/Sources/Modules/EternalResolve/Projectiles/VegetationBayonet_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/VegetationBayonet_Pro.cs index f4c9ab424..f1d75d505 100644 --- a/Sources/Modules/EternalResolve/Projectiles/VegetationBayonet_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/VegetationBayonet_Pro.cs @@ -10,6 +10,7 @@ public class VegetationBayonet_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(66, 137, 58); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; diff --git a/Sources/Modules/EternalResolve/Projectiles/VertebralSpur_Pro.cs b/Sources/Modules/EternalResolve/Projectiles/VertebralSpur_Pro.cs index 5fc36006f..939144219 100644 --- a/Sources/Modules/EternalResolve/Projectiles/VertebralSpur_Pro.cs +++ b/Sources/Modules/EternalResolve/Projectiles/VertebralSpur_Pro.cs @@ -8,6 +8,7 @@ public class VertebralSpur_Pro : StabbingProjectile { public override void SetCustomDefaults() { + Projectile.localNPCHitCooldown = 8; AttackColor = new Color(105, 92, 76); MaxDarkAttackUnitCount = 4; OldColorFactor = 0.7f; @@ -55,7 +56,7 @@ public override void VisualParticle() public override void ModifyHitNPC(NPC target, ref NPC.HitModifiers modifiers) { - modifiers.FinalDamage.Multiplicative *= MathF.Log2(2 + (target.velocity - Main.player[Projectile.owner].velocity).Length()); + modifiers.FinalDamage.Multiplicative *= MathF.Min(2f, MathF.Log2(2 + (target.velocity - Main.player[Projectile.owner].velocity).Length())); } public override void HitTileSound(float scale) diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/AdamantiteClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/AdamantiteClub_Item.cs index aef13536a..d4c48b2e8 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/AdamantiteClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/AdamantiteClub_Item.cs @@ -6,9 +6,13 @@ public class AdamantiteClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 74; - Item.value = 3690; + Item.damage = 36; + Item.value = Item.buyPrice(0, 13, 80, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 61f / 36f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/BorealWoodClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/BorealWoodClub_Item.cs index 9f430f746..c2f0a1442 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/BorealWoodClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/BorealWoodClub_Item.cs @@ -6,8 +6,13 @@ public class BorealWoodClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 6; - Item.value = 54; + Item.damage = 9; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 8f / 9f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CactusClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CactusClub_Item.cs index 84b961f3f..7f7416c12 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CactusClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CactusClub_Item.cs @@ -6,8 +6,13 @@ public class CactusClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 68; + Item.damage = 8; + Item.value = Item.buyPrice(0, 0, 18, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 4.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 10f / 8f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ChlorophyteClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ChlorophyteClub_Item.cs index 9847de029..816f36631 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ChlorophyteClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ChlorophyteClub_Item.cs @@ -6,9 +6,13 @@ public class ChlorophyteClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 80; - Item.value = 9605; + Item.damage = 60; + Item.value = Item.buyPrice(0, 27, 60, 0); Item.rare = ItemRarityID.Lime; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 80f / 60f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CobaltClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CobaltClub_Item.cs index 526cabde4..e5dd4cd99 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CobaltClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CobaltClub_Item.cs @@ -6,9 +6,13 @@ public class CobaltClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 41; - Item.value = 2005; + Item.damage = 32; + Item.value = Item.buyPrice(0, 6, 90, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 40f / 32f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CopperClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CopperClub_Item.cs index 55313c976..e5b096418 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CopperClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CopperClub_Item.cs @@ -6,8 +6,13 @@ public class CopperClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 6; - Item.value = 65; + Item.damage = 13; + Item.value = Item.buyPrice(0, 0, 4, 50); + Item.rare = ItemRarityID.White; + Item.knockBack = 5.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 9f / 13f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CorruptClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CorruptClub_Item.cs index 5ca7e37c0..526185406 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CorruptClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CorruptClub_Item.cs @@ -6,9 +6,13 @@ public class CorruptClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 12; - Item.value = 169; + Item.damage = 30; + Item.value = Item.buyPrice(0, 1, 35, 0); Item.rare = ItemRarityID.Blue; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 16f / 30f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrimsonClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrimsonClub_Item.cs index 42dc9a268..f2cd0b3d0 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrimsonClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrimsonClub_Item.cs @@ -6,9 +6,13 @@ public class CrimsonClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 13; - Item.value = 174; + Item.damage = 32; + Item.value = Item.buyPrice(0, 1, 35, 0); Item.rare = ItemRarityID.Blue; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 22f / 32f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrystalClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrystalClub_Item.cs index 6240d120f..910337264 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrystalClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CrystalClub_Item.cs @@ -6,10 +6,24 @@ public class CrystalClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 51; - Item.value = 5000; + Item.damage = 28; + Item.value = Item.buyPrice(0, 20, 0, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 35f / 28f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient() + .AddIngredient(ItemID.CrystalShard, 20) + .AddIngredient(ItemID.SoulofLight, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CurseClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CurseClub_Item.cs index 1902d927b..46cff5386 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CurseClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/CurseClub_Item.cs @@ -6,10 +6,24 @@ public class CurseClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 57; - Item.value = 5000; + Item.damage = 30; + Item.value = Item.buyPrice(0, 20, 0, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 6.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 55f / 30f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient() + .AddIngredient(ItemID.CursedFlame, 20) + .AddIngredient(ItemID.SoulofNight, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/EbonwoodClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/EbonwoodClub_Item.cs index b64f268da..c3ae42565 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/EbonwoodClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/EbonwoodClub_Item.cs @@ -6,8 +6,13 @@ public class EbonwoodClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 75; + Item.damage = 12; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 11f / 12f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/GoldClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/GoldClub_Item.cs index e73978fa9..b3d45a117 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/GoldClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/GoldClub_Item.cs @@ -6,8 +6,13 @@ public class GoldClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 10; - Item.value = 142; + Item.damage = 25; + Item.value = Item.buyPrice(0, 0, 90, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 15f / 25f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IchorClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IchorClub_Item.cs index 64580560a..c8b42ba05 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IchorClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IchorClub_Item.cs @@ -6,10 +6,24 @@ public class IchorClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 47; - Item.value = 5000; + Item.damage = 24; + Item.value = Item.buyPrice(0, 20, 0, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 4f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 30f / 24f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient() + .AddIngredient(ItemID.Ichor, 20) + .AddIngredient(ItemID.SoulofNight, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IronClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IronClub_Item.cs index 1be6f8edd..d3bc63d6a 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IronClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/IronClub_Item.cs @@ -6,8 +6,13 @@ public class IronClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 85; + Item.damage = 18; + Item.value = Item.buyPrice(0, 0, 18, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 5.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 12f / 18f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/LeadClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/LeadClub_Item.cs index 1904f4543..58ff40c1a 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/LeadClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/LeadClub_Item.cs @@ -6,8 +6,13 @@ public class LeadClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 88; + Item.damage = 20; + Item.value = Item.buyPrice(0, 0, 27, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 5.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 13f / 20f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MeteorClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MeteorClub_Item.cs index 57117ddb0..b17198fd9 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MeteorClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MeteorClub_Item.cs @@ -6,9 +6,13 @@ public class MeteorClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 16; - Item.value = 576; + Item.damage = 15; + Item.value = Item.buyPrice(0, 2, 70, 0); Item.rare = ItemRarityID.Blue; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 26f / 15f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MythrilClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MythrilClub_Item.cs index 918fdb8ff..1dc9d955b 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MythrilClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/MythrilClub_Item.cs @@ -6,9 +6,13 @@ public class MythrilClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 56; - Item.value = 2682; + Item.damage = 34; + Item.value = Item.buyPrice(0, 10, 35, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 50f / 34f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/OrichalcumClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/OrichalcumClub_Item.cs index e13a97ce5..555799916 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/OrichalcumClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/OrichalcumClub_Item.cs @@ -6,9 +6,13 @@ public class OrichalcumClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 60; - Item.value = 2717; + Item.damage = 34; + Item.value = Item.buyPrice(0, 12, 65, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 59f / 34f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalladiumClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalladiumClub_Item.cs index 583385ad4..84c5a84b1 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalladiumClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalladiumClub_Item.cs @@ -6,9 +6,13 @@ public class PalladiumClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 44; - Item.value = 2074; + Item.damage = 30; + Item.value = Item.buyPrice(0, 9, 20, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 5.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 49f / 30f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalmWoodClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalmWoodClub_Item.cs index 4f4a9668c..fd1f4449a 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalmWoodClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PalmWoodClub_Item.cs @@ -6,8 +6,13 @@ public class PalmWoodClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 72; + Item.damage = 9; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 8f / 9f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PearlwoodClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PearlwoodClub_Item.cs index d75c0d72e..bac2fb475 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PearlwoodClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PearlwoodClub_Item.cs @@ -6,8 +6,13 @@ public class PearlwoodClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 9; - Item.value = 111; + Item.damage = 44; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 7f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 30f / 44f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PlatinumClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PlatinumClub_Item.cs index f9ccce95d..733c40a6a 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PlatinumClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/PlatinumClub_Item.cs @@ -6,8 +6,13 @@ public class PlatinumClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 11; - Item.value = 147; + Item.damage = 28; + Item.value = Item.buyPrice(0, 1, 35, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 16f / 28f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/RichMahoganyClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/RichMahoganyClub_Item.cs index de7c21dff..918ec8d43 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/RichMahoganyClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/RichMahoganyClub_Item.cs @@ -6,8 +6,13 @@ public class RichMahoganyClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 6; - Item.value = 64; + Item.damage = 9; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 8f / 9f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ShadewoodClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ShadewoodClub_Item.cs index f42601515..4e54c7fe5 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ShadewoodClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/ShadewoodClub_Item.cs @@ -6,8 +6,13 @@ public class ShadewoodClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 7; - Item.value = 80; + Item.damage = 12; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 11f / 12f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SilverClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SilverClub_Item.cs index fb1c47709..84b710898 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SilverClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SilverClub_Item.cs @@ -6,8 +6,13 @@ public class SilverClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 8; - Item.value = 108; + Item.damage = 21; + Item.value = Item.buyPrice(0, 0, 45, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 14f / 21f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SpikeClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SpikeClub_Item.cs index d528f840f..51640361f 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SpikeClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/SpikeClub_Item.cs @@ -6,9 +6,13 @@ public class SpikeClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 21; - Item.value = 450; + Item.damage = 26; + Item.value = Item.buyPrice(0, 1, 50, 0); Item.rare = ItemRarityID.Green; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 24f / 26f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } @@ -17,6 +21,7 @@ public override void AddRecipes() { CreateRecipe() .AddIngredient(ItemID.Spike, 114) + .AddCondition(Condition.DownedSkeletron) .AddTile(TileID.Anvils) .Register(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/StarDancer_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/StarDancer_Item.cs index 5afbc190e..20928c3d0 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/StarDancer_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/StarDancer_Item.cs @@ -6,9 +6,13 @@ public class StarDancer_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 12; - Item.value = 1114; - Item.rare = ItemRarityID.Blue; + Item.damage = 14; + Item.value = Item.buyPrice(0, 5, 0, 0); + Item.rare = ItemRarityID.Green; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 25f / 14f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TinClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TinClub_Item.cs index 4e8bfe141..31e28da9e 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TinClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TinClub_Item.cs @@ -6,8 +6,13 @@ public class TinClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 6; - Item.value = 70; + Item.damage = 15; + Item.value = Item.buyPrice(0, 0, 6, 75); + Item.rare = ItemRarityID.White; + Item.knockBack = 5.5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 10f / 15f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TitaniumClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TitaniumClub_Item.cs index c6278c3f6..737ac324d 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TitaniumClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TitaniumClub_Item.cs @@ -6,9 +6,13 @@ public class TitaniumClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 80; - Item.value = 3751; + Item.damage = 36; + Item.value = Item.buyPrice(0, 16, 10, 0); Item.rare = ItemRarityID.LightRed; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 61f / 36f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TungstenClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TungstenClub_Item.cs index d92e495a5..89946cb15 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TungstenClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/TungstenClub_Item.cs @@ -6,8 +6,13 @@ public class TungstenClub_Item : ClubItem { public override void SetCustomDefaults() { - Item.damage = 9; - Item.value = 112; + Item.damage = 22; + Item.value = Item.buyPrice(0, 0, 67, 50); + Item.rare = ItemRarityID.White; + Item.knockBack = 6f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 14f / 22f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/WoodenClub_Item.cs b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/WoodenClub_Item.cs index a8c4098ba..22e755958 100644 --- a/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/WoodenClub_Item.cs +++ b/Sources/Modules/Myth/Misc/Items/Weapons/Clubs/WoodenClub_Item.cs @@ -14,6 +14,13 @@ public override void AddRecipes() public override void SetCustomDefaults() { + Item.damage = 8; + Item.value = Item.buyPrice(0, 0, 1, 0); + Item.rare = ItemRarityID.White; + Item.knockBack = 5f; + Item.useTime = 12; + Item.useAnimation = 12; + SmashDamageMultiplier = 7f / 8f; ProjType = ModContent.ProjectileType(); ProjSmashType = ModContent.ProjectileType(); } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/ChlorophyteClub_smash.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/ChlorophyteClub_smash.cs index 041eb4a0c..6557a3556 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/ChlorophyteClub_smash.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/ChlorophyteClub_smash.cs @@ -26,13 +26,13 @@ public override void Smash(int level) for (int i = 0; i < 5; i++) { Vector2 v0 = new Vector2(0, -1 * Player.gravDir).RotatedBy((i - 2) / 10f * MathHelper.TwoPi); - Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Projectile.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner, 1.1f); + Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Projectile.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.12f), Projectile.knockBack * 0.4f, Projectile.owner, 1.1f); p0.rotation = Main.rand.NextFloat(6.283f); } for (int i = 0; i < 6; i++) { Vector2 v0 = new Vector2(0, -1 * Player.gravDir).RotatedBy((i - 2.5f) / 10f * MathHelper.TwoPi); - Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Projectile.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner, 0.8f); + Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Projectile.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.12f), Projectile.knockBack * 0.4f, Projectile.owner, 0.8f); p0.rotation = Main.rand.NextFloat(6.283f); } Projectile.NewProjectile(Projectile.GetSource_FromAI(), Projectile.Center, Vector2.Zero, ModContent.ProjectileType(), Projectile.damage, Projectile.knockBack * 0.4f, Projectile.owner, 0.7f, Player.gravDir); diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/CurseClub.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/CurseClub.cs index 8e70ce005..3359ecf02 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/CurseClub.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/CurseClub.cs @@ -35,7 +35,19 @@ public override void AI() if (flyClubCooling <= 0 && Omega > 0.2f) { flyClubCooling = 44; - Projectile.NewProjectile(Projectile.GetSource_FromAI(), Projectile.Center, Vector2.Zero, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner); + int flyingClubs = 0; + foreach (Projectile flyingClub in Main.projectile) + { + if (flyingClub.active && flyingClub.owner == Projectile.owner + && (flyingClub.type == ModContent.ProjectileType() || flyingClub.type == ModContent.ProjectileType())) + { + flyingClubs++; + } + } + if (flyingClubs < 3) + { + Projectile.NewProjectile(Projectile.GetSource_FromAI(), Projectile.Center, Vector2.Zero, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner); + } } } GenerateVFX(); diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/IchorClub.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/IchorClub.cs index 431185c2a..196f0b6d6 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/IchorClub.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/IchorClub.cs @@ -46,7 +46,19 @@ public override void AI() if (flyClubCooling <= 0 && Omega > 0.2f) { flyClubCooling = 44; - Projectile.NewProjectile(Projectile.GetSource_FromAI(), Projectile.Center, Vector2.Zero, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner); + int flyingClubs = 0; + foreach (Projectile flyingClub in Main.projectile) + { + if (flyingClub.active && flyingClub.owner == Projectile.owner + && (flyingClub.type == ModContent.ProjectileType() || flyingClub.type == ModContent.ProjectileType())) + { + flyingClubs++; + } + } + if (flyingClubs < 3) + { + Projectile.NewProjectile(Projectile.GetSource_FromAI(), Projectile.Center, Vector2.Zero, ModContent.ProjectileType(), (int)(Projectile.damage * 0.3f), Projectile.knockBack * 0.4f, Projectile.owner); + } } } vfxTimer += Omega * 4; diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/PalladiumClub_small.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/PalladiumClub_small.cs index f6288dfa4..b8d6dfa6c 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/PalladiumClub_small.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/PalladiumClub_small.cs @@ -96,9 +96,9 @@ public string TrailShapeTex() public override void ModifyHitNPC(NPC target, ref NPC.HitModifiers modifiers) { float power = Math.Max(StrikeOmegaDecrease - MathF.Pow(target.knockBackResist / 4f, 3), MinStrikeOmegaDecrease); - if (target.type != NPCID.TargetDummy && HealValue < Projectile.ai[0] * 30) + if (target.type != NPCID.TargetDummy && HealValue < Math.Ceiling(Projectile.ai[0] * 10f)) { - HealValue++; + HealValue = Math.Min(HealValue + 1f, (float)Math.Ceiling(Projectile.ai[0] * 10f)); CombatText.NewText(target.Hitbox, new Color(255, 125, 6, 255), "♥ + 1"); } Omega *= power; @@ -439,9 +439,12 @@ private void ProduceWaterRipples(Vector2 beamDims) public override void OnKill(int timeLeft) { Player player = Main.player[Projectile.owner]; - if (HealValue > 0 && (Projectile.Center - player.Center).Length() < 100) + int healing = Math.Min((int)HealValue, (int)Math.Ceiling(Projectile.ai[0] * 10f)); + healing = Math.Min(healing, (int)player.lifeSteal); + if (healing > 0 && (Projectile.Center - player.Center).Length() < 100) { - player.Heal((int)HealValue); + player.lifeSteal -= healing; + player.Heal(healing); } } } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClubSlash.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClubSlash.cs index a0a94ffa6..e041e2ed9 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClubSlash.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClubSlash.cs @@ -27,7 +27,7 @@ public override void SetDefaults() Projectile.DamageType = DamageClass.Melee; Projectile.penetrate = -1; Projectile.usesLocalNPCImmunity = true; - Projectile.localNPCHitCooldown = 60; + Projectile.localNPCHitCooldown = -1; Projectile.timeLeft = 120; Projectile.extraUpdates = 3; } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClub_smash.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClub_smash.cs index ca0c2ffff..feb0117bf 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClub_smash.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/SpikeClub_smash.cs @@ -11,14 +11,7 @@ public override void SetDef() public override void ModifyHitNPC(NPC target, ref NPC.HitModifiers modifiers) { - int k = (int)(Omega * 10); - k = Main.rand.Next(k * 2); - for (int x = 0; x < k; x++) - { - NPC.HitInfo hit = modifiers.ToHitInfo(Projectile.damage * 0.5f * Omega, Main.rand.NextFloat(100f) < Main.player[Projectile.owner].GetTotalCritChance(Projectile.DamageType), 0); - target.StrikeNPC(hit, true, true); - NetMessage.SendStrikeNPC(target, hit); - } + modifiers.SourceDamage *= 1f + Math.Min(Omega, 0.8f) * 0.5f; modifiers.Knockback *= 0.4f; } @@ -30,7 +23,7 @@ public override void Smash(int level = 0) { Vector2 v = new Vector2(0, Main.rand.NextFloat(4f, 8f)).RotatedByRandom(Math.PI * 2) * 5f; Vector2 v2 = new Vector2(0, 124).RotatedBy(Main.rand.NextFloat(-1f, 1f)); - Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Player.Center - v * 3 + v2 + new Vector2(0, -74), v, ModContent.ProjectileType(), Projectile.damage / 2, 0, Player.whoAmI, Main.rand.NextFloat(-0.05f, 0.05f)); + Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Player.Center - v * 3 + v2 + new Vector2(0, -74), v, ModContent.ProjectileType(), Projectile.damage / 6, 0, Player.whoAmI, Main.rand.NextFloat(-0.05f, 0.05f)); p0.timeLeft = Main.rand.Next(120, 136); } } @@ -40,7 +33,7 @@ public override void Smash(int level = 0) { Vector2 v = new Vector2(0, Main.rand.NextFloat(6f, 12f)).RotatedByRandom(Math.PI * 2) * 5f; Vector2 v2 = new Vector2(0, 204).RotatedBy(Main.rand.NextFloat(-1f, 1f)); - Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Player.Center - v * 3 + v2 + new Vector2(0, -134), v, ModContent.ProjectileType(), Projectile.damage / 2, 0, Player.whoAmI, Main.rand.NextFloat(-0.05f, 0.05f)); + Projectile p0 = Projectile.NewProjectileDirect(Projectile.GetSource_FromAI(), Player.Center - v * 3 + v2 + new Vector2(0, -134), v, ModContent.ProjectileType(), Projectile.damage / 6, 0, Player.whoAmI, Main.rand.NextFloat(-0.05f, 0.05f)); p0.timeLeft = Main.rand.Next(118, 126) + x * 3; } } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer.cs index 2c228bae8..6a6e711ed 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer.cs @@ -42,7 +42,7 @@ public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) } } Vector2 v7 = new Vector2(0, -Main.rand.NextFloat(1000f, 1200f)).RotatedBy(Main.rand.NextFloat(-0.4f, 0.4f)); - Projectile.NewProjectile(Projectile.GetSource_FromAI(), target.Center + v7, -v7 / 40f, ProjectileID.FallingStar, (int)(Projectile.damage * 8.3f), Projectile.knockBack, Projectile.owner); + Projectile.NewProjectile(Projectile.GetSource_FromAI(), target.Center + v7, -v7 / 40f, ProjectileID.FallingStar, (int)(Projectile.damage * 1.5f), Projectile.knockBack, Projectile.owner); SoundEngine.PlaySound(SoundID.DD2_CrystalCartImpact, target.Center); } } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_smash.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_smash.cs index 19a5590d3..38871b8db 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_smash.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_smash.cs @@ -42,7 +42,7 @@ public override void OnHitNPC(NPC target, NPC.HitInfo hit, int damageDone) } } Vector2 v7 = new Vector2(0, -Main.rand.NextFloat(1000f, 1200f)).RotatedBy(Main.rand.NextFloat(-0.4f, 0.4f)); - Projectile.NewProjectile(Projectile.GetSource_FromAI(), target.Center + v7, -v7 / 40f, ProjectileID.FallingStar, (int)(Projectile.damage * 8.3f), Projectile.knockBack, Projectile.owner); + Projectile.NewProjectile(Projectile.GetSource_FromAI(), target.Center + v7, -v7 / 40f, ProjectileID.FallingStar, (int)(Projectile.damage * 1.5f), Projectile.knockBack, Projectile.owner); SoundEngine.PlaySound(SoundID.DD2_CrystalCartImpact, target.Center); } } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj.cs index 4575f662d..a3dca51f9 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj.cs @@ -15,6 +15,8 @@ public override void SetDefaults() Projectile.hostile = false; Projectile.friendly = false; Projectile.penetrate = -1; + Projectile.usesIDStaticNPCImmunity = true; + Projectile.idStaticNPCHitCooldown = 12; Projectile.width = 30; Projectile.height = 30; } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj2.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj2.cs index f064e9ee2..4eda9d2d7 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj2.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/StarDancer_starProj2.cs @@ -15,6 +15,8 @@ public override void SetDefaults() Projectile.hostile = false; Projectile.friendly = false; Projectile.penetrate = -1; + Projectile.usesIDStaticNPCImmunity = true; + Projectile.idStaticNPCHitCooldown = 12; Projectile.width = 30; Projectile.height = 30; } diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/TitaniumClub_smash.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/TitaniumClub_smash.cs index b773d0979..657675e07 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/TitaniumClub_smash.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/TitaniumClub_smash.cs @@ -14,16 +14,22 @@ public override void SetDef() public override void Smash(int level) { + int fragmentCount = 0; + foreach (Projectile fragment in Main.projectile) + { + if (fragment != null && fragment.active && fragment.owner == Projectile.owner && fragment.type == ModContent.ProjectileType()) + { + fragmentCount++; + } + } + if (level == 0) { - for (int x = 0; x < 6; x++) + for (int x = 0; x < 6 && fragmentCount < 24; x++) { Vector2 v0 = new Vector2(0, -Main.rand.NextFloat(7, 14f) * Player.gravDir).RotatedBy(Main.rand.NextFloat(-1.7f, 1.7f)); - Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), Projectile.damage / 18, 0, Player.whoAmI, 72); - if (Player.ownedProjectileCounts[ModContent.ProjectileType()] > 120) - { - break; - } + Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.5f), 0, Player.whoAmI, 72); + fragmentCount++; } foreach (Projectile projectile in Main.projectile) { @@ -49,23 +55,17 @@ public override void Smash(int level) } if (level == 1) { - for (int x = 0; x < 12; x++) + for (int x = 0; x < 12 && fragmentCount < 24; x++) { Vector2 v0 = new Vector2(0, -Main.rand.NextFloat(7, 24f) * Player.gravDir).RotatedBy(Main.rand.NextFloat(-1.7f, 1.7f)); - Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), Projectile.damage / 13, 0, Player.whoAmI, 144); - if (Player.ownedProjectileCounts[ModContent.ProjectileType()] > 120) - { - break; - } + Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.5f), 0, Player.whoAmI, 144); + fragmentCount++; } - for (int x = 0; x < 12; x++) + for (int x = 0; x < 12 && fragmentCount < 24; x++) { Vector2 v0 = new Vector2(0, -Main.rand.NextFloat(7, 24f) * Player.gravDir).RotatedBy(Main.rand.NextFloat(-1.7f, 1.7f)); - Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), Projectile.damage / 13, 0, Player.whoAmI, 72); - if (Player.ownedProjectileCounts[ModContent.ProjectileType()] > 120) - { - break; - } + Projectile p0 = Projectile.NewProjectileDirect(null, Player.Center, v0, ModContent.ProjectileType(), (int)(Projectile.damage * 0.5f), 0, Player.whoAmI, 72); + fragmentCount++; } foreach (Projectile projectile in Main.projectile) { diff --git a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/Titanium_Fragment.cs b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/Titanium_Fragment.cs index 673c6896c..2f225b9a2 100644 --- a/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/Titanium_Fragment.cs +++ b/Sources/Modules/Myth/Misc/Projectiles/Weapon/Melee/Clubs/Titanium_Fragment.cs @@ -20,7 +20,7 @@ public override void SetDefaults() Projectile.ignoreWater = true; Projectile.penetrate = 6; Projectile.usesIDStaticNPCImmunity = true; - Projectile.localNPCHitCooldown = 60; + Projectile.idStaticNPCHitCooldown = 20; } public Vector2 OribTrack = Vector2.Zero; @@ -31,7 +31,7 @@ public override void SetDefaults() public override void OnSpawn(IEntitySource source) { AITimer = Main.rand.Next(-40, 40); - Projectile.timeLeft = 15000; + Projectile.timeLeft = 600; Projectile.frame = Main.rand.Next(6); Projectile.rotation = Main.rand.NextFloat(MathHelper.TwoPi); Projectile.ai[1] = Main.rand.NextFloat(-0.4f, 0.4f);