From d5f99e4b66f09eeca3e6f588f8f7f59c58cdc19f Mon Sep 17 00:00:00 2001 From: Niko Date: Wed, 19 Nov 2025 12:30:39 +0000 Subject: [PATCH] Add Avali and Protogen progression sets --- .../AvaliScoutSet/AvaliScoutChestplate.cs | 37 +++++++++++ .../Armor/AvaliScoutSet/AvaliScoutCowl.cs | 50 +++++++++++++++ .../Armor/AvaliScoutSet/AvaliScoutHelmet.cs | 50 +++++++++++++++ .../Armor/AvaliScoutSet/AvaliScoutHood.cs | 50 +++++++++++++++ .../Armor/AvaliScoutSet/AvaliScoutLeggings.cs | 37 +++++++++++ .../Armor/AvaliScoutSet/AvaliScoutMask.cs | 50 +++++++++++++++ .../AvaliSkirmisherChestplate.cs | 40 ++++++++++++ .../AvaliSkirmisherSet/AvaliSkirmisherCowl.cs | 51 +++++++++++++++ .../AvaliSkirmisherHelmet.cs | 52 +++++++++++++++ .../AvaliSkirmisherSet/AvaliSkirmisherHood.cs | 52 +++++++++++++++ .../AvaliSkirmisherLeggings.cs | 39 +++++++++++ .../AvaliSkirmisherSet/AvaliSkirmisherMask.cs | 51 +++++++++++++++ .../AvaliVanguardChestplate.cs | 41 ++++++++++++ .../AvaliVanguardSet/AvaliVanguardCowl.cs | 59 +++++++++++++++++ .../AvaliVanguardSet/AvaliVanguardHelmet.cs | 60 +++++++++++++++++ .../AvaliVanguardSet/AvaliVanguardHood.cs | 60 +++++++++++++++++ .../AvaliVanguardSet/AvaliVanguardLeggings.cs | 41 ++++++++++++ .../AvaliVanguardSet/AvaliVanguardMask.cs | 59 +++++++++++++++++ .../ProtogenInitiateChestplate.cs | 38 +++++++++++ .../ProtogenInitiateCowl.cs | 52 +++++++++++++++ .../ProtogenInitiateHelmet.cs | 51 +++++++++++++++ .../ProtogenInitiateHood.cs | 51 +++++++++++++++ .../ProtogenInitiateLeggings.cs | 39 +++++++++++ .../ProtogenInitiateMask.cs | 52 +++++++++++++++ .../ProtogenOperativeChestplate.cs | 42 ++++++++++++ .../ProtogenOperativeCowl.cs | 53 +++++++++++++++ .../ProtogenOperativeHelmet.cs | 54 ++++++++++++++++ .../ProtogenOperativeHood.cs | 53 +++++++++++++++ .../ProtogenOperativeLeggings.cs | 41 ++++++++++++ .../ProtogenOperativeMask.cs | 53 +++++++++++++++ .../ProtogenSentinelChestplate.cs | 42 ++++++++++++ .../ProtogenSentinelCowl.cs | 63 ++++++++++++++++++ .../ProtogenSentinelHelmet.cs | 64 +++++++++++++++++++ .../ProtogenSentinelHood.cs | 63 ++++++++++++++++++ .../ProtogenSentinelLeggings.cs | 43 +++++++++++++ .../ProtogenSentinelMask.cs | 63 ++++++++++++++++++ .../Items/Materials/MalfunctioningNanites.cs | 21 ++++++ Content/Items/Materials/VisorShard.cs | 2 + 38 files changed, 1819 insertions(+) create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutChestplate.cs create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutCowl.cs create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutHelmet.cs create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutHood.cs create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutLeggings.cs create mode 100644 Content/Items/Armor/AvaliScoutSet/AvaliScoutMask.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherChestplate.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherCowl.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHelmet.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHood.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherLeggings.cs create mode 100644 Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherMask.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardChestplate.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardCowl.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHelmet.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHood.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardLeggings.cs create mode 100644 Content/Items/Armor/AvaliVanguardSet/AvaliVanguardMask.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateChestplate.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateCowl.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHelmet.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHood.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateLeggings.cs create mode 100644 Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateMask.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeChestplate.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeCowl.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHelmet.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHood.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeLeggings.cs create mode 100644 Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeMask.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelChestplate.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelCowl.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHelmet.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHood.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelLeggings.cs create mode 100644 Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelMask.cs create mode 100644 Content/Items/Materials/MalfunctioningNanites.cs diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutChestplate.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutChestplate.cs new file mode 100644 index 0000000..766fa50 --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutChestplate.cs @@ -0,0 +1,37 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Body)] + public class AvaliScoutChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 80); + Item.rare = ModContent.RarityType(); + Item.defense = 5; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.05f; + player.GetCritChance(DamageClass.Generic) += 3; + player.statLifeMax2 += 20; + player.moveSpeed += 0.08f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutCowl.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutCowl.cs new file mode 100644 index 0000000..972f558 --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutCowl.cs @@ -0,0 +1,50 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliScoutCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 3; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.10f; + player.maxMinions += 1; + player.statLifeMax2 += 15; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Increases jump height and grants a double jump\n+1 max minion and +15% summon damage"; + player.jumpBoost = true; + player.jumpSpeedBoost += 1.5f; + player.maxMinions += 1; + player.GetDamage(DamageClass.Summon) += 0.15f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 8) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutHelmet.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutHelmet.cs new file mode 100644 index 0000000..29e82f9 --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutHelmet.cs @@ -0,0 +1,50 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliScoutHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 4; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.08f; + player.GetCritChance(DamageClass.Melee) += 5; + player.statLifeMax2 += 20; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Increases jump height and grants a double jump\n+10% melee damage and speed"; + player.jumpBoost = true; + player.jumpSpeedBoost += 1.5f; + player.GetDamage(DamageClass.Melee) += 0.10f; + player.GetAttackSpeed(DamageClass.Melee) += 0.10f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 8) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutHood.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutHood.cs new file mode 100644 index 0000000..2a66e36 --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutHood.cs @@ -0,0 +1,50 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliScoutHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 2; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.12f; + player.statManaMax2 += 40; + player.manaCost -= 0.08f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Increases jump height and grants a double jump\n+15% magic damage and -10% mana cost"; + player.jumpBoost = true; + player.jumpSpeedBoost += 1.5f; + player.GetDamage(DamageClass.Magic) += 0.15f; + player.manaCost -= 0.10f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 8) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutLeggings.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutLeggings.cs new file mode 100644 index 0000000..bf40dd1 --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutLeggings.cs @@ -0,0 +1,37 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Legs)] + public class AvaliScoutLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 3; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.03f; + player.GetCritChance(DamageClass.Generic) += 2; + player.statLifeMax2 += 10; + player.moveSpeed += 0.12f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliScoutSet/AvaliScoutMask.cs b/Content/Items/Armor/AvaliScoutSet/AvaliScoutMask.cs new file mode 100644 index 0000000..f54cfca --- /dev/null +++ b/Content/Items/Armor/AvaliScoutSet/AvaliScoutMask.cs @@ -0,0 +1,50 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliScoutMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 3; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.10f; + player.GetCritChance(DamageClass.Ranged) += 7; + player.statLifeMax2 += 15; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Increases jump height and grants a double jump\n+12% ranged damage and critical strike chance"; + player.jumpBoost = true; + player.jumpSpeedBoost += 1.5f; + player.GetDamage(DamageClass.Ranged) += 0.12f; + player.GetCritChance(DamageClass.Ranged) += 12; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 8) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherChestplate.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherChestplate.cs new file mode 100644 index 0000000..7ebe47e --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherChestplate.cs @@ -0,0 +1,40 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Items.Armor.AvaliScoutSet; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Body)] + public class AvaliSkirmisherChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 7); + Item.rare = ModContent.RarityType(); + Item.defense = 18; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.10f; + player.GetCritChance(DamageClass.Generic) += 6; + player.statLifeMax2 += 50; + player.moveSpeed += 0.15f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 16) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 12) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherCowl.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherCowl.cs new file mode 100644 index 0000000..653fd20 --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherCowl.cs @@ -0,0 +1,51 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliSkirmisherCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 5); + Item.rare = ModContent.RarityType(); + Item.defense = 14; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.18f; + player.maxMinions += 2; + player.statLifeMax2 += 40; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons thermal vision drones that mark enemies\nMarked enemies take 12% more damage\n+2 max minions and +20% summon damage"; + player.maxMinions += 2; + player.GetDamage(DamageClass.Summon) += 0.20f; + // TODO: Implement thermal vision drone marking system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHelmet.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHelmet.cs new file mode 100644 index 0000000..4d78658 --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHelmet.cs @@ -0,0 +1,52 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliSkirmisherHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 5); + Item.rare = ModContent.RarityType(); + Item.defense = 18; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.15f; + player.GetCritChance(DamageClass.Melee) += 10; + player.statLifeMax2 += 50; + player.GetAttackSpeed(DamageClass.Melee) += 0.10f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons thermal vision drones that mark enemies\nMarked enemies take 12% more damage\n+15% melee damage and speed"; + player.GetDamage(DamageClass.Melee) += 0.15f; + player.GetAttackSpeed(DamageClass.Melee) += 0.15f; + // TODO: Implement thermal vision drone marking system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHood.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHood.cs new file mode 100644 index 0000000..935f008 --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherHood.cs @@ -0,0 +1,52 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliSkirmisherHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 5); + Item.rare = ModContent.RarityType(); + Item.defense = 12; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.20f; + player.statManaMax2 += 80; + player.manaCost -= 0.12f; + player.GetCritChance(DamageClass.Magic) += 8; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons thermal vision drones that mark enemies\nMarked enemies take 12% more damage\n+20% magic damage and -15% mana cost"; + player.GetDamage(DamageClass.Magic) += 0.20f; + player.manaCost -= 0.15f; + // TODO: Implement thermal vision drone marking system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherLeggings.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherLeggings.cs new file mode 100644 index 0000000..952e4ae --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherLeggings.cs @@ -0,0 +1,39 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Legs)] + public class AvaliSkirmisherLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 6); + Item.rare = ModContent.RarityType(); + Item.defense = 14; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.08f; + player.GetCritChance(DamageClass.Generic) += 6; + player.statLifeMax2 += 20; + player.moveSpeed += 0.20f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 14) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherMask.cs b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherMask.cs new file mode 100644 index 0000000..96c7770 --- /dev/null +++ b/Content/Items/Armor/AvaliSkirmisherSet/AvaliSkirmisherMask.cs @@ -0,0 +1,51 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliSkirmisherSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliSkirmisherMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 5); + Item.rare = ModContent.RarityType(); + Item.defense = 15; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.18f; + player.GetCritChance(DamageClass.Ranged) += 14; + player.statLifeMax2 += 45; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons thermal vision drones that mark enemies\nMarked enemies take 12% more damage\n+18% ranged damage and critical strike chance"; + player.GetDamage(DamageClass.Ranged) += 0.18f; + player.GetCritChance(DamageClass.Ranged) += 18; + // TODO: Implement thermal vision drone marking system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardChestplate.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardChestplate.cs new file mode 100644 index 0000000..08ead21 --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardChestplate.cs @@ -0,0 +1,41 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Body)] + public class AvaliVanguardChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 70); + Item.rare = ModContent.RarityType(); + Item.defense = 34; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.15f; + player.GetCritChance(DamageClass.Generic) += 10; + player.statLifeMax2 += 80; + player.moveSpeed += 0.20f; + player.endurance += 0.05f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 18) + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardCowl.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardCowl.cs new file mode 100644 index 0000000..06a2d06 --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardCowl.cs @@ -0,0 +1,59 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliVanguardCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 26; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.28f; + player.maxMinions += 3; + player.statLifeMax2 += 70; + player.endurance += 0.05f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons a pack of hunting drones that rapidly fire at nearby enemies\n+3 max minions and +25% summon damage when above 75% health\n+10% damage reduction"; + + if ((float)player.statLife / player.statLifeMax2 >= 0.75f) + { + player.maxMinions += 3; + player.GetDamage(DamageClass.Summon) += 0.25f; + } + + player.endurance += 0.10f; + // TODO: Implement hunting drone projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHelmet.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHelmet.cs new file mode 100644 index 0000000..e05c09e --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHelmet.cs @@ -0,0 +1,60 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliVanguardHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 32; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.25f; + player.GetCritChance(DamageClass.Melee) += 15; + player.statLifeMax2 += 80; + player.GetAttackSpeed(DamageClass.Melee) += 0.15f; + player.endurance += 0.05f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons a pack of hunting drones that rapidly fire at nearby enemies\n+20% melee damage and speed when above 75% health\n+10% damage reduction"; + + if ((float)player.statLife / player.statLifeMax2 >= 0.75f) + { + player.GetDamage(DamageClass.Melee) += 0.20f; + player.GetAttackSpeed(DamageClass.Melee) += 0.20f; + } + + player.endurance += 0.10f; + // TODO: Implement hunting drone projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHood.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHood.cs new file mode 100644 index 0000000..68277f8 --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardHood.cs @@ -0,0 +1,60 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliVanguardHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 24; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.30f; + player.statManaMax2 += 120; + player.manaCost -= 0.18f; + player.GetCritChance(DamageClass.Magic) += 12; + player.endurance += 0.05f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons a pack of hunting drones that rapidly fire at nearby enemies\n+25% magic damage and -20% mana cost when above 75% health\n+10% damage reduction"; + + if ((float)player.statLife / player.statLifeMax2 >= 0.75f) + { + player.GetDamage(DamageClass.Magic) += 0.25f; + player.manaCost -= 0.20f; + } + + player.endurance += 0.10f; + // TODO: Implement hunting drone projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardLeggings.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardLeggings.cs new file mode 100644 index 0000000..e67cd48 --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardLeggings.cs @@ -0,0 +1,41 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Legs)] + public class AvaliVanguardLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 26; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.13f; + player.GetCritChance(DamageClass.Generic) += 8; + player.statLifeMax2 += 40; + player.moveSpeed += 0.30f; + player.endurance += 0.05f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 15) + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardMask.cs b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardMask.cs new file mode 100644 index 0000000..e89d818 --- /dev/null +++ b/Content/Items/Armor/AvaliVanguardSet/AvaliVanguardMask.cs @@ -0,0 +1,59 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet +{ + [AutoloadEquip(EquipType.Head)] + public class AvaliVanguardMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 50); + Item.rare = ModContent.RarityType(); + Item.defense = 28; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.28f; + player.GetCritChance(DamageClass.Ranged) += 18; + player.statLifeMax2 += 75; + player.endurance += 0.05f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons a pack of hunting drones that rapidly fire at nearby enemies\n+22% ranged damage and critical strike chance when above 75% health\n+10% damage reduction"; + + if ((float)player.statLife / player.statLifeMax2 >= 0.75f) + { + player.GetDamage(DamageClass.Ranged) += 0.22f; + player.GetCritChance(DamageClass.Ranged) += 22; + } + + player.endurance += 0.10f; + // TODO: Implement hunting drone projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateChestplate.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateChestplate.cs new file mode 100644 index 0000000..65cba11 --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateChestplate.cs @@ -0,0 +1,38 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Body)] + public class ProtogenInitiateChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 90); + Item.rare = ModContent.RarityType(); + Item.defense = 4; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.06f; + player.GetCritChance(DamageClass.Generic) += 3; + player.statLifeMax2 += 20; + player.statManaMax2 += 30; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 15) + .AddIngredient(ItemID.Wire, 8) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateCowl.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateCowl.cs new file mode 100644 index 0000000..10be204 --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateCowl.cs @@ -0,0 +1,52 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenInitiateCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 2; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.11f; + player.maxMinions += 1; + player.statLifeMax2 += 12; + player.statManaMax2 += 20; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Regenerate mana 25% faster and emit light\n+1 max minion and +12% summon damage"; + player.manaRegenBonus += 5; + player.maxMinions += 1; + player.GetDamage(DamageClass.Summon) += 0.12f; + Lighting.AddLight(player.Center, 0.3f, 0.5f, 0.7f); + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ItemID.Wire, 5) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHelmet.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHelmet.cs new file mode 100644 index 0000000..12a5db9 --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHelmet.cs @@ -0,0 +1,51 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenInitiateHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 3; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.09f; + player.GetCritChance(DamageClass.Melee) += 4; + player.statLifeMax2 += 15; + player.statManaMax2 += 20; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Regenerate mana 25% faster and emit light\n+8% melee damage"; + player.manaRegenBonus += 5; + player.GetDamage(DamageClass.Melee) += 0.08f; + Lighting.AddLight(player.Center, 0.3f, 0.5f, 0.7f); + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ItemID.Wire, 5) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHood.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHood.cs new file mode 100644 index 0000000..68c9265 --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateHood.cs @@ -0,0 +1,51 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenInitiateHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 2; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.13f; + player.statManaMax2 += 50; + player.manaCost -= 0.10f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Regenerate mana 35% faster and emit light\n+12% magic damage and -12% mana cost"; + player.manaRegenBonus += 7; + player.GetDamage(DamageClass.Magic) += 0.12f; + player.manaCost -= 0.12f; + Lighting.AddLight(player.Center, 0.3f, 0.5f, 0.7f); + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ItemID.Wire, 5) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateLeggings.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateLeggings.cs new file mode 100644 index 0000000..1ba651d --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateLeggings.cs @@ -0,0 +1,39 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Legs)] + public class ProtogenInitiateLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 70); + Item.rare = ModContent.RarityType(); + Item.defense = 3; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.04f; + player.GetCritChance(DamageClass.Generic) += 2; + player.statLifeMax2 += 10; + player.statManaMax2 += 20; + player.moveSpeed += 0.08f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ItemID.Wire, 6) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateMask.cs b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateMask.cs new file mode 100644 index 0000000..7963b2a --- /dev/null +++ b/Content/Items/Armor/ProtogenInitiateSet/ProtogenInitiateMask.cs @@ -0,0 +1,52 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenInitiateMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(silver: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 2; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.11f; + player.GetCritChance(DamageClass.Ranged) += 6; + player.statLifeMax2 += 12; + player.statManaMax2 += 20; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Regenerate mana 25% faster and emit light\n+10% ranged damage and critical strike chance"; + player.manaRegenBonus += 5; + player.GetDamage(DamageClass.Ranged) += 0.10f; + player.GetCritChance(DamageClass.Ranged) += 10; + Lighting.AddLight(player.Center, 0.3f, 0.5f, 0.7f); + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ItemID.Wire, 5) + .AddTile(TileID.Anvils) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeChestplate.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeChestplate.cs new file mode 100644 index 0000000..7f67b83 --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeChestplate.cs @@ -0,0 +1,42 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Items.Armor.ProtogenInitiateSet; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Body)] + public class ProtogenOperativeChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 8); + Item.rare = ModContent.RarityType(); + Item.defense = 20; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.12f; + player.GetCritChance(DamageClass.Generic) += 6; + player.statLifeMax2 += 40; + player.statManaMax2 += 50; + player.endurance += 0.05f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 18) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 12) + .AddIngredient(ItemID.Wire, 15) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeCowl.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeCowl.cs new file mode 100644 index 0000000..2551e81 --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeCowl.cs @@ -0,0 +1,53 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenOperativeCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 6); + Item.rare = ModContent.RarityType(); + Item.defense = 16; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.20f; + player.maxMinions += 2; + player.statLifeMax2 += 38; + player.statManaMax2 += 40; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Taking damage releases seeking nanites\nNanites heal you for 50% of damage dealt\n+2 max minions and +18% summon damage"; + player.maxMinions += 2; + player.GetDamage(DamageClass.Summon) += 0.18f; + // TODO: Implement nanite swarm healing system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddIngredient(ItemID.Wire, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHelmet.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHelmet.cs new file mode 100644 index 0000000..db27407 --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHelmet.cs @@ -0,0 +1,54 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenOperativeHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 6); + Item.rare = ModContent.RarityType(); + Item.defense = 20; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.17f; + player.GetCritChance(DamageClass.Melee) += 9; + player.statLifeMax2 += 45; + player.statManaMax2 += 40; + player.GetAttackSpeed(DamageClass.Melee) += 0.08f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Taking damage releases seeking nanites\nNanites heal you for 50% of damage dealt\n+12% melee damage and speed"; + player.GetDamage(DamageClass.Melee) += 0.12f; + player.GetAttackSpeed(DamageClass.Melee) += 0.12f; + // TODO: Implement nanite swarm healing system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddIngredient(ItemID.Wire, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHood.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHood.cs new file mode 100644 index 0000000..8d90756 --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeHood.cs @@ -0,0 +1,53 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenOperativeHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 6); + Item.rare = ModContent.RarityType(); + Item.defense = 14; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.22f; + player.statManaMax2 += 100; + player.manaCost -= 0.15f; + player.GetCritChance(DamageClass.Magic) += 8; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Taking damage releases seeking nanites\nNanites heal you for 50% of damage dealt\n+18% magic damage and -18% mana cost"; + player.GetDamage(DamageClass.Magic) += 0.18f; + player.manaCost -= 0.18f; + // TODO: Implement nanite swarm healing system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddIngredient(ItemID.Wire, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeLeggings.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeLeggings.cs new file mode 100644 index 0000000..5b24ca5 --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeLeggings.cs @@ -0,0 +1,41 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Legs)] + public class ProtogenOperativeLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 7); + Item.rare = ModContent.RarityType(); + Item.defense = 14; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.08f; + player.GetCritChance(DamageClass.Generic) += 4; + player.statLifeMax2 += 20; + player.statManaMax2 += 30; + player.moveSpeed += 0.12f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 15) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 10) + .AddIngredient(ItemID.Wire, 12) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeMask.cs b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeMask.cs new file mode 100644 index 0000000..1d070ed --- /dev/null +++ b/Content/Items/Armor/ProtogenOperativeSet/ProtogenOperativeMask.cs @@ -0,0 +1,53 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenOperativeSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenOperativeMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 6); + Item.rare = ModContent.RarityType(); + Item.defense = 17; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.20f; + player.GetCritChance(DamageClass.Ranged) += 12; + player.statLifeMax2 += 40; + player.statManaMax2 += 40; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Taking damage releases seeking nanites\nNanites heal you for 50% of damage dealt\n+15% ranged damage and critical strike chance"; + player.GetDamage(DamageClass.Ranged) += 0.15f; + player.GetCritChance(DamageClass.Ranged) += 15; + // TODO: Implement nanite swarm healing system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.ChlorophyteBar, 8) + .AddIngredient(ItemID.Wire, 10) + .AddTile(TileID.MythrilAnvil) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelChestplate.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelChestplate.cs new file mode 100644 index 0000000..4769a2f --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelChestplate.cs @@ -0,0 +1,42 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Body)] + public class ProtogenSentinelChestplate : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 80); + Item.rare = ModContent.RarityType(); + Item.defense = 36; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.18f; + player.GetCritChance(DamageClass.Generic) += 9; + player.statLifeMax2 += 75; + player.statManaMax2 += 70; + player.endurance += 0.08f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 20) + .AddIngredient(ModContent.ItemType(), 12) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.Wire, 30) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelCowl.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelCowl.cs new file mode 100644 index 0000000..4b79395 --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelCowl.cs @@ -0,0 +1,63 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenSentinelCowl : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 28; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Summon) += 0.30f; + player.maxMinions += 4; + player.statLifeMax2 += 65; + player.statManaMax2 += 60; + player.endurance += 0.06f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons an AI core that fires adaptive energy beams\nProjectiles have a 20% chance to split into seeking fragments\n+4 max minions and +25% summon damage\nGrants immunity to most debuffs"; + player.maxMinions += 4; + player.GetDamage(DamageClass.Summon) += 0.25f; + player.buffImmune[BuffID.Poisoned] = true; + player.buffImmune[BuffID.OnFire] = true; + player.buffImmune[BuffID.Bleeding] = true; + player.buffImmune[BuffID.Confused] = true; + player.buffImmune[BuffID.Slow] = true; + player.buffImmune[BuffID.Weak] = true; + player.buffImmune[BuffID.Silenced] = true; + player.buffImmune[BuffID.Cursed] = true; + // TODO: Implement AI core projectile and splitting projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 14) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ItemID.Wire, 20) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHelmet.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHelmet.cs new file mode 100644 index 0000000..97682a8 --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHelmet.cs @@ -0,0 +1,64 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenSentinelHelmet : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 34; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Melee) += 0.27f; + player.GetCritChance(DamageClass.Melee) += 13; + player.statLifeMax2 += 75; + player.statManaMax2 += 60; + player.GetAttackSpeed(DamageClass.Melee) += 0.12f; + player.endurance += 0.06f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons an AI core that fires adaptive energy beams\nProjectiles have a 20% chance to split into seeking fragments\n+18% melee damage and speed\nGrants immunity to most debuffs"; + player.GetDamage(DamageClass.Melee) += 0.18f; + player.GetAttackSpeed(DamageClass.Melee) += 0.18f; + player.buffImmune[BuffID.Poisoned] = true; + player.buffImmune[BuffID.OnFire] = true; + player.buffImmune[BuffID.Bleeding] = true; + player.buffImmune[BuffID.Confused] = true; + player.buffImmune[BuffID.Slow] = true; + player.buffImmune[BuffID.Weak] = true; + player.buffImmune[BuffID.Silenced] = true; + player.buffImmune[BuffID.Cursed] = true; + // TODO: Implement AI core projectile and splitting projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 14) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.Wire, 20) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHood.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHood.cs new file mode 100644 index 0000000..b37ea84 --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelHood.cs @@ -0,0 +1,63 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenSentinelHood : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 26; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Magic) += 0.32f; + player.statManaMax2 += 150; + player.manaCost -= 0.20f; + player.GetCritChance(DamageClass.Magic) += 12; + player.endurance += 0.06f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons an AI core that fires adaptive energy beams\nProjectiles have a 20% chance to split into seeking fragments\n+25% magic damage and -22% mana cost\nGrants immunity to most debuffs"; + player.GetDamage(DamageClass.Magic) += 0.25f; + player.manaCost -= 0.22f; + player.buffImmune[BuffID.Poisoned] = true; + player.buffImmune[BuffID.OnFire] = true; + player.buffImmune[BuffID.Bleeding] = true; + player.buffImmune[BuffID.Confused] = true; + player.buffImmune[BuffID.Slow] = true; + player.buffImmune[BuffID.Weak] = true; + player.buffImmune[BuffID.Silenced] = true; + player.buffImmune[BuffID.Cursed] = true; + // TODO: Implement AI core projectile and splitting projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 14) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.Wire, 20) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelLeggings.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelLeggings.cs new file mode 100644 index 0000000..a7f8948 --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelLeggings.cs @@ -0,0 +1,43 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Legs)] + public class ProtogenSentinelLeggings : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 70); + Item.rare = ModContent.RarityType(); + Item.defense = 28; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Generic) += 0.12f; + player.GetCritChance(DamageClass.Generic) += 6; + player.statLifeMax2 += 35; + player.statManaMax2 += 50; + player.moveSpeed += 0.15f; + player.endurance += 0.06f; + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 17) + .AddIngredient(ModContent.ItemType(), 10) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.Wire, 25) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelMask.cs b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelMask.cs new file mode 100644 index 0000000..d01119f --- /dev/null +++ b/Content/Items/Armor/ProtogenSentinelSet/ProtogenSentinelMask.cs @@ -0,0 +1,63 @@ +using Terraria; +using Terraria.ID; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Items.Materials; +using ForgottenWawiTech.Content.Rarities; +using ForgottenWawiTech.Content.Tiles.CraftingStations; + +namespace ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet +{ + [AutoloadEquip(EquipType.Head)] + public class ProtogenSentinelMask : ModItem + { + public override void SetDefaults() + { + Item.width = 18; + Item.height = 18; + Item.value = Item.sellPrice(gold: 60); + Item.rare = ModContent.RarityType(); + Item.defense = 30; + } + + public override void UpdateEquip(Player player) + { + player.GetDamage(DamageClass.Ranged) += 0.30f; + player.GetCritChance(DamageClass.Ranged) += 16; + player.statLifeMax2 += 70; + player.statManaMax2 += 60; + player.endurance += 0.06f; + } + + public override bool IsArmorSet(Item head, Item body, Item legs) + { + return body.type == ModContent.ItemType() && legs.type == ModContent.ItemType(); + } + + public override void UpdateArmorSet(Player player) + { + player.setBonus = "Summons an AI core that fires adaptive energy beams\nProjectiles have a 20% chance to split into seeking fragments\n+22% ranged damage and critical strike chance\nGrants immunity to most debuffs"; + player.GetDamage(DamageClass.Ranged) += 0.22f; + player.GetCritChance(DamageClass.Ranged) += 22; + player.buffImmune[BuffID.Poisoned] = true; + player.buffImmune[BuffID.OnFire] = true; + player.buffImmune[BuffID.Bleeding] = true; + player.buffImmune[BuffID.Confused] = true; + player.buffImmune[BuffID.Slow] = true; + player.buffImmune[BuffID.Weak] = true; + player.buffImmune[BuffID.Silenced] = true; + player.buffImmune[BuffID.Cursed] = true; + // TODO: Implement AI core projectile and splitting projectile system + } + + public override void AddRecipes() + { + CreateRecipe() + .AddIngredient(ModContent.ItemType(), 14) + .AddIngredient(ModContent.ItemType(), 8) + .AddIngredient(ModContent.ItemType(), 1) + .AddIngredient(ItemID.Wire, 20) + .AddTile(ModContent.TileType()) + .Register(); + } + } +} diff --git a/Content/Items/Materials/MalfunctioningNanites.cs b/Content/Items/Materials/MalfunctioningNanites.cs new file mode 100644 index 0000000..fdf4bd8 --- /dev/null +++ b/Content/Items/Materials/MalfunctioningNanites.cs @@ -0,0 +1,21 @@ +using Terraria.ID; +using Terraria; +using Terraria.ModLoader; +using ForgottenWawiTech.Content.Rarities; + +namespace ForgottenWawiTech.Content.Items.Materials +{ + public class MalfunctioningNanites : ModItem + { + + public override void SetDefaults() + { + Item.width = 20; + Item.height = 20; + Item.maxStack = 9999; + Item.rare = ModContent.RarityType(); + Item.value = Item.buyPrice(silver: 1); + } + + } +} \ No newline at end of file diff --git a/Content/Items/Materials/VisorShard.cs b/Content/Items/Materials/VisorShard.cs index fa9dfd8..6b103cc 100644 --- a/Content/Items/Materials/VisorShard.cs +++ b/Content/Items/Materials/VisorShard.cs @@ -10,6 +10,8 @@ using System; using Terraria.GameContent; using ForgottenWawiTech.Content.Rarities; +// NOTE: Will be a drop from Lexy the Protogen boss in the future - meant for post-SCal. + namespace ForgottenWawiTech.Content.Items.Materials { public class VisorShard : ModItem