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,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<AvalianItem>();
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<AvaliFeather>(), 18)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 12)
.AddIngredient(ModContent.ItemType<AvaliScoutChestplate>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliVanguardChestplate>() && legs.type == ModContent.ItemType<AvaliVanguardLeggings>();
}
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<AvaliFeather>(), 12)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 8)
.AddIngredient(ModContent.ItemType<AvaliScoutCowl>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliVanguardChestplate>() && legs.type == ModContent.ItemType<AvaliVanguardLeggings>();
}
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<AvaliFeather>(), 12)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 8)
.AddIngredient(ModContent.ItemType<AvaliScoutHelmet>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliVanguardChestplate>() && legs.type == ModContent.ItemType<AvaliVanguardLeggings>();
}
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<AvaliFeather>(), 12)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 8)
.AddIngredient(ModContent.ItemType<AvaliScoutHood>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliFeather>(), 15)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
.AddIngredient(ModContent.ItemType<AvaliScoutLeggings>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliVanguardChestplate>() && legs.type == ModContent.ItemType<AvaliVanguardLeggings>();
}
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<AvaliFeather>(), 12)
.AddIngredient(ModContent.ItemType<EnergyCore>(), 8)
.AddIngredient(ModContent.ItemType<AvaliScoutMask>(), 1)
.AddTile(ModContent.TileType<HighTechMarvel>())
.Register();
}
}
}