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,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<AvalianItem>();
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<AvaliFeather>(), 16)
.AddIngredient(ModContent.ItemType<AvaliScoutChestplate>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 12)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliSkirmisherChestplate>() && legs.type == ModContent.ItemType<AvaliSkirmisherLeggings>();
}
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<AvaliFeather>(), 10)
.AddIngredient(ModContent.ItemType<AvaliScoutCowl>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliSkirmisherChestplate>() && legs.type == ModContent.ItemType<AvaliSkirmisherLeggings>();
}
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<AvaliFeather>(), 10)
.AddIngredient(ModContent.ItemType<AvaliScoutHelmet>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliSkirmisherChestplate>() && legs.type == ModContent.ItemType<AvaliSkirmisherLeggings>();
}
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<AvaliFeather>(), 10)
.AddIngredient(ModContent.ItemType<AvaliScoutHood>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliFeather>(), 14)
.AddIngredient(ModContent.ItemType<AvaliScoutLeggings>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 10)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliSkirmisherChestplate>() && legs.type == ModContent.ItemType<AvaliSkirmisherLeggings>();
}
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<AvaliFeather>(), 10)
.AddIngredient(ModContent.ItemType<AvaliScoutMask>(), 1)
.AddIngredient(ItemID.ChlorophyteBar, 8)
.AddTile(TileID.MythrilAnvil)
.Register();
}
}
}