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,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<AvalianItem>();
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<AvaliFeather>(), 12)
.AddTile(TileID.Anvils)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliScoutChestplate>() && legs.type == ModContent.ItemType<AvaliScoutLeggings>();
}
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<AvaliFeather>(), 8)
.AddTile(TileID.Anvils)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliScoutChestplate>() && legs.type == ModContent.ItemType<AvaliScoutLeggings>();
}
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<AvaliFeather>(), 8)
.AddTile(TileID.Anvils)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliScoutChestplate>() && legs.type == ModContent.ItemType<AvaliScoutLeggings>();
}
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<AvaliFeather>(), 8)
.AddTile(TileID.Anvils)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliFeather>(), 10)
.AddTile(TileID.Anvils)
.Register();
}
}
}
@@ -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<AvalianItem>();
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<AvaliScoutChestplate>() && legs.type == ModContent.ItemType<AvaliScoutLeggings>();
}
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<AvaliFeather>(), 8)
.AddTile(TileID.Anvils)
.Register();
}
}
}