Add Avali and Protogen progression sets

This commit is contained in:
2025-11-19 12:30:39 +00:00
parent 21f3736395
commit d5f99e4b66
38 changed files with 1819 additions and 0 deletions
@@ -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<ProtogenItem>();
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<MalfunctioningNanites>(), 18)
.AddIngredient(ModContent.ItemType<ProtogenInitiateChestplate>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 12)
.AddIngredient(ItemID.Wire, 15)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<ProtogenItem>();
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<ProtogenOperativeChestplate>() && legs.type == ModContent.ItemType<ProtogenOperativeLeggings>();
}
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<MalfunctioningNanites>(), 12)
.AddIngredient(ModContent.ItemType<ProtogenInitiateCowl>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddIngredient(ItemID.Wire, 10)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<ProtogenItem>();
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<ProtogenOperativeChestplate>() && legs.type == ModContent.ItemType<ProtogenOperativeLeggings>();
}
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<MalfunctioningNanites>(), 12)
.AddIngredient(ModContent.ItemType<ProtogenInitiateHelmet>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddIngredient(ItemID.Wire, 10)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<ProtogenItem>();
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<ProtogenOperativeChestplate>() && legs.type == ModContent.ItemType<ProtogenOperativeLeggings>();
}
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<MalfunctioningNanites>(), 12)
.AddIngredient(ModContent.ItemType<ProtogenInitiateHood>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddIngredient(ItemID.Wire, 10)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<ProtogenItem>();
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<MalfunctioningNanites>(), 15)
.AddIngredient(ModContent.ItemType<ProtogenInitiateLeggings>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 10)
.AddIngredient(ItemID.Wire, 12)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<ProtogenItem>();
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<ProtogenOperativeChestplate>() && legs.type == ModContent.ItemType<ProtogenOperativeLeggings>();
}
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<MalfunctioningNanites>(), 12)
.AddIngredient(ModContent.ItemType<ProtogenInitiateMask>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddIngredient(ItemID.Wire, 10)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}