Add trans set
@@ -0,0 +1,59 @@
|
|||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Body)]
|
||||||
|
public class TranscendentCoreplate : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 64;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Generic) += 0.22f;
|
||||||
|
player.GetCritChance(DamageClass.Generic) += 12;
|
||||||
|
player.endurance += 0.10f;
|
||||||
|
|
||||||
|
player.statLifeMax2 += 220;
|
||||||
|
player.statManaMax2 += 160;
|
||||||
|
player.lifeRegen += 8;
|
||||||
|
player.manaCost -= 0.20f;
|
||||||
|
|
||||||
|
player.maxMinions += 4;
|
||||||
|
player.maxTurrets += 2;
|
||||||
|
|
||||||
|
player.buffImmune[BuffID.Bleeding] = true;
|
||||||
|
player.buffImmune[BuffID.Poisoned] = true;
|
||||||
|
player.buffImmune[BuffID.OnFire] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityChestplate>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardChestplate>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelChestplate>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 12)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||||
|
.AddIngredient(ModContent.ItemType<ContainmentUnit>(), 2)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,66 @@
|
|||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Head)]
|
||||||
|
public class TranscendentCowl : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 52;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Summon) += 0.40f;
|
||||||
|
player.maxMinions += 5;
|
||||||
|
player.maxTurrets += 2;
|
||||||
|
player.statLifeMax2 += 220;
|
||||||
|
player.endurance += 0.10f;
|
||||||
|
player.whipRangeMultiplier += 0.25f;
|
||||||
|
player.GetAttackSpeed(DamageClass.Summon) += 0.20f;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsArmorSet(Item head, Item body, Item legs)
|
||||||
|
{
|
||||||
|
return body.type == ModContent.ItemType<TranscendentCoreplate>() && legs.type == ModContent.ItemType<TranscendentGreaves>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateArmorSet(Player player)
|
||||||
|
{
|
||||||
|
TranscendentSetEffects.ApplySetBonus(player);
|
||||||
|
player.GetDamage(DamageClass.Summon) += 0.30f;
|
||||||
|
player.GetAttackSpeed(DamageClass.Summon) += 0.25f;
|
||||||
|
player.maxMinions += 4;
|
||||||
|
player.maxTurrets += 2;
|
||||||
|
player.whipRangeMultiplier += 0.20f;
|
||||||
|
player.spiderArmor = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardCowl>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelCowl>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,57 @@
|
|||||||
|
using System;
|
||||||
|
using Terraria;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Legs)]
|
||||||
|
public class TranscendentGreaves : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 56;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Generic) += 0.18f;
|
||||||
|
player.GetCritChance(DamageClass.Generic) += 10;
|
||||||
|
|
||||||
|
player.statLifeMax2 += 160;
|
||||||
|
player.moveSpeed += 0.35f;
|
||||||
|
player.runAcceleration += 0.12f;
|
||||||
|
player.maxRunSpeed += 2.5f;
|
||||||
|
player.jumpSpeedBoost += 3.5f;
|
||||||
|
player.wingTimeMax = Math.Max(player.wingTimeMax, 1800);
|
||||||
|
|
||||||
|
player.endurance += 0.08f;
|
||||||
|
player.noFallDmg = true;
|
||||||
|
player.rocketBoots = Math.Max(player.rocketBoots, 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityLeggings>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardLeggings>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelLeggings>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 4)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 16)
|
||||||
|
.AddIngredient(ModContent.ItemType<ContainmentUnit>(), 1)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,69 @@
|
|||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Head)]
|
||||||
|
public class TranscendentHelm : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 58;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Melee) += 0.30f;
|
||||||
|
player.GetCritChance(DamageClass.Melee) += 20;
|
||||||
|
player.GetAttackSpeed(DamageClass.Melee) += 0.25f;
|
||||||
|
player.statLifeMax2 += 250;
|
||||||
|
player.endurance += 0.10f;
|
||||||
|
player.magmaStone = true;
|
||||||
|
player.autoReuseGlove = true;
|
||||||
|
player.meleeScaleGlove = true;
|
||||||
|
player.kbGlove = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsArmorSet(Item head, Item body, Item legs)
|
||||||
|
{
|
||||||
|
return body.type == ModContent.ItemType<TranscendentCoreplate>() && legs.type == ModContent.ItemType<TranscendentGreaves>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateArmorSet(Player player)
|
||||||
|
{
|
||||||
|
TranscendentSetEffects.ApplySetBonus(player);
|
||||||
|
player.GetDamage(DamageClass.Melee) += 0.18f;
|
||||||
|
player.GetAttackSpeed(DamageClass.Melee) += 0.18f;
|
||||||
|
//player.meleeSpeed += 0.10f;
|
||||||
|
player.meleeScaleGlove = true;
|
||||||
|
player.autoReuseGlove = true;
|
||||||
|
player.kbGlove = true;
|
||||||
|
player.lavaImmune = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,66 @@
|
|||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Head)]
|
||||||
|
public class TranscendentHood : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 54;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Magic) += 0.34f;
|
||||||
|
player.GetCritChance(DamageClass.Magic) += 18;
|
||||||
|
player.statManaMax2 += 320;
|
||||||
|
player.manaCost -= 0.30f;
|
||||||
|
player.manaRegenBonus += 200;
|
||||||
|
player.manaFlower = true;
|
||||||
|
player.manaMagnet = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsArmorSet(Item head, Item body, Item legs)
|
||||||
|
{
|
||||||
|
return body.type == ModContent.ItemType<TranscendentCoreplate>() && legs.type == ModContent.ItemType<TranscendentGreaves>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateArmorSet(Player player)
|
||||||
|
{
|
||||||
|
TranscendentSetEffects.ApplySetBonus(player);
|
||||||
|
player.GetDamage(DamageClass.Magic) += 0.22f;
|
||||||
|
player.GetCritChance(DamageClass.Magic) += 20;
|
||||||
|
player.manaCost -= 0.18f;
|
||||||
|
player.manaRegenBonus += 150;
|
||||||
|
player.manaFlower = true;
|
||||||
|
player.magicCuffs = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardHood>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelHood>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,67 @@
|
|||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.AvaliVanguardSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.ProtogenSentinelSet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Armor.SingularitySet;
|
||||||
|
using ForgottenWawiTech.Content.Items.Materials;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
using ForgottenWawiTech.Content.Tiles.CraftingStations;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
[AutoloadEquip(EquipType.Head)]
|
||||||
|
public class TranscendentMask : ModItem
|
||||||
|
{
|
||||||
|
public override void SetDefaults()
|
||||||
|
{
|
||||||
|
Item.width = 20;
|
||||||
|
Item.height = 20;
|
||||||
|
Item.value = Item.sellPrice(platinum: 250);
|
||||||
|
Item.rare = ModContent.RarityType<TranscendentItem>();
|
||||||
|
Item.defense = 56;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateEquip(Player player)
|
||||||
|
{
|
||||||
|
player.GetDamage(DamageClass.Ranged) += 0.32f;
|
||||||
|
player.GetCritChance(DamageClass.Ranged) += 22;
|
||||||
|
player.statLifeMax2 += 180;
|
||||||
|
player.statManaMax2 += 120;
|
||||||
|
player.endurance += 0.08f;
|
||||||
|
player.ammoCost80 = true;
|
||||||
|
player.scope = true;
|
||||||
|
player.archery = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override bool IsArmorSet(Item head, Item body, Item legs)
|
||||||
|
{
|
||||||
|
return body.type == ModContent.ItemType<TranscendentCoreplate>() && legs.type == ModContent.ItemType<TranscendentGreaves>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void UpdateArmorSet(Player player)
|
||||||
|
{
|
||||||
|
TranscendentSetEffects.ApplySetBonus(player);
|
||||||
|
player.GetDamage(DamageClass.Ranged) += 0.22f;
|
||||||
|
player.GetCritChance(DamageClass.Ranged) += 25;
|
||||||
|
player.ammoBox = true;
|
||||||
|
player.ammoCost75 = true;
|
||||||
|
player.archery = true;
|
||||||
|
player.scope = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void AddRecipes()
|
||||||
|
{
|
||||||
|
CreateRecipe()
|
||||||
|
.AddIngredient(ModContent.ItemType<SingularityHelmet>())
|
||||||
|
.AddIngredient(ModContent.ItemType<AvaliVanguardMask>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ProtogenSentinelMask>())
|
||||||
|
.AddIngredient(ModContent.ItemType<ControlledSingularity>(), 6)
|
||||||
|
.AddIngredient(ModContent.ItemType<EnergyCore>(), 10)
|
||||||
|
.AddIngredient(ModContent.ItemType<MalfunctioningNanites>(), 18)
|
||||||
|
.AddIngredient(ModContent.ItemType<UnstableMatter>(), 4)
|
||||||
|
.AddTile(ModContent.TileType<SingularitySealingUnit>())
|
||||||
|
.Register();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
After Width: | Height: | Size: 504 B |
|
After Width: | Height: | Size: 504 B |
@@ -0,0 +1,93 @@
|
|||||||
|
using System;
|
||||||
|
using Terraria;
|
||||||
|
using Terraria.ID;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Armor.TranscendentSet
|
||||||
|
{
|
||||||
|
internal static class TranscendentSetEffects
|
||||||
|
{
|
||||||
|
private const string SetBonusDescription =
|
||||||
|
"Summons the Ascendant Swarm, sentinel core, and singularity star to fight alongside you\n" +
|
||||||
|
"+35% damage, +25% critical strike chance, +20% damage reduction, +6 max minions, +3 max turrets\n" +
|
||||||
|
"Grants limitless mobility, nearly absolute elemental immunity, and causes attacks to shed seeking nanite shards";
|
||||||
|
|
||||||
|
internal static void ApplySetBonus(Player player)
|
||||||
|
{
|
||||||
|
player.setBonus = SetBonusDescription;
|
||||||
|
|
||||||
|
player.GetDamage(DamageClass.Generic) += 0.35f;
|
||||||
|
player.GetCritChance(DamageClass.Generic) += 25;
|
||||||
|
player.endurance += 0.20f;
|
||||||
|
|
||||||
|
player.statLifeMax2 += 200;
|
||||||
|
player.statManaMax2 += 150;
|
||||||
|
player.lifeRegen += 10;
|
||||||
|
|
||||||
|
player.moveSpeed += 0.40f;
|
||||||
|
player.accRunSpeed += 3f;
|
||||||
|
player.maxRunSpeed += 3f;
|
||||||
|
player.jumpBoost = true;
|
||||||
|
player.jumpSpeedBoost += 4f;
|
||||||
|
player.hasMagiluminescence = true;
|
||||||
|
player.rocketBoots = Math.Max(player.rocketBoots, 3);
|
||||||
|
player.noFallDmg = true;
|
||||||
|
player.autoJump = true;
|
||||||
|
|
||||||
|
player.maxMinions += 6;
|
||||||
|
player.maxTurrets += 3;
|
||||||
|
player.GetDamage(DamageClass.Summon) += 0.25f;
|
||||||
|
player.GetAttackSpeed(DamageClass.Melee) += 0.20f;
|
||||||
|
player.GetAttackSpeed(DamageClass.Summon) += 0.20f;
|
||||||
|
|
||||||
|
player.waterWalk = true;
|
||||||
|
player.ignoreWater = true;
|
||||||
|
player.fireWalk = true;
|
||||||
|
player.lavaImmune = true;
|
||||||
|
player.iceSkate = true;
|
||||||
|
player.blackBelt = true;
|
||||||
|
player.sporeSac = true;
|
||||||
|
|
||||||
|
player.wingTimeMax = Math.Max(player.wingTimeMax, 900);
|
||||||
|
|
||||||
|
int[] immunities =
|
||||||
|
{
|
||||||
|
BuffID.OnFire,
|
||||||
|
BuffID.OnFire3,
|
||||||
|
BuffID.Burning,
|
||||||
|
BuffID.Frostburn,
|
||||||
|
BuffID.Frostburn2,
|
||||||
|
BuffID.CursedInferno,
|
||||||
|
BuffID.Ichor,
|
||||||
|
BuffID.ShadowFlame,
|
||||||
|
BuffID.Venom,
|
||||||
|
BuffID.Poisoned,
|
||||||
|
BuffID.Confused,
|
||||||
|
BuffID.Slow,
|
||||||
|
BuffID.Weak,
|
||||||
|
BuffID.Silenced,
|
||||||
|
BuffID.Cursed,
|
||||||
|
BuffID.Darkness,
|
||||||
|
BuffID.Blackout,
|
||||||
|
BuffID.Chilled,
|
||||||
|
BuffID.Frozen,
|
||||||
|
BuffID.Webbed,
|
||||||
|
BuffID.Stoned,
|
||||||
|
BuffID.Electrified,
|
||||||
|
BuffID.Obstructed,
|
||||||
|
BuffID.OgreSpit,
|
||||||
|
BuffID.Suffocation,
|
||||||
|
BuffID.VortexDebuff,
|
||||||
|
BuffID.PotionSickness,
|
||||||
|
BuffID.ManaSickness
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (int buffId in immunities)
|
||||||
|
{
|
||||||
|
player.buffImmune[buffId] = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO: Implement Ascendant Swarm minions, sentinel beam volley, and nanite shard projectiles.
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,136 @@
|
|||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using Microsoft.Xna.Framework.Graphics;
|
||||||
|
using ReLogic.Graphics;
|
||||||
|
using System;
|
||||||
|
using Terraria;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
using ForgottenWawiTech.Content.Rarities;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Items.Global
|
||||||
|
{
|
||||||
|
public class TranscendentRarityTooltip : GlobalItem
|
||||||
|
{
|
||||||
|
public override bool PreDrawTooltipLine(Item item, DrawableTooltipLine line, ref int yOffset)
|
||||||
|
{
|
||||||
|
if (item.rare != ModContent.RarityType<TranscendentItem>())
|
||||||
|
return base.PreDrawTooltipLine(item, line, ref yOffset);
|
||||||
|
|
||||||
|
if (line.Mod != "Terraria" || line.Name != "ItemName")
|
||||||
|
return base.PreDrawTooltipLine(item, line, ref yOffset);
|
||||||
|
|
||||||
|
float time = Main.GlobalTimeWrappedHourly;
|
||||||
|
Vector2 position = new Vector2(line.X, line.Y);
|
||||||
|
float scale = line.BaseScale.X;
|
||||||
|
|
||||||
|
ModRarity rarity = RarityLoader.GetRarity(item.rare);
|
||||||
|
Color baseColor = rarity.RarityColor;
|
||||||
|
|
||||||
|
// Celestial orbit trail: faint echoes revolved around the text.
|
||||||
|
const int orbitCopies = 5;
|
||||||
|
for (int i = 0; i < orbitCopies; i++)
|
||||||
|
{
|
||||||
|
float angle = time * 1.2f + i * MathHelper.TwoPi / orbitCopies;
|
||||||
|
float radius = 4.5f + 1.5f * (float)Math.Sin(time * 2.4f + i);
|
||||||
|
Vector2 offset = new Vector2((float)Math.Cos(angle), (float)Math.Sin(angle)) * radius;
|
||||||
|
|
||||||
|
float pulse = 0.35f + 0.25f * (float)Math.Sin(time * 3f + i);
|
||||||
|
Color orbitColor = Color.Lerp(baseColor, Color.White, pulse) * 0.55f;
|
||||||
|
|
||||||
|
DynamicSpriteFontExtensionMethods.DrawString(
|
||||||
|
Main.spriteBatch,
|
||||||
|
line.Font,
|
||||||
|
line.Text,
|
||||||
|
position + offset,
|
||||||
|
orbitColor,
|
||||||
|
line.Rotation,
|
||||||
|
line.Origin,
|
||||||
|
scale,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Vertical aurora shimmer behind the main text.
|
||||||
|
Vector2 auroraOffset = new Vector2(0f, (float)Math.Sin(time * 4.2f) * 2.2f);
|
||||||
|
Color auroraColor = Color.Lerp(baseColor, new Color(240, 255, 220), 0.6f) * 0.7f;
|
||||||
|
DynamicSpriteFontExtensionMethods.DrawString(
|
||||||
|
Main.spriteBatch,
|
||||||
|
line.Font,
|
||||||
|
line.Text,
|
||||||
|
position + auroraOffset,
|
||||||
|
auroraColor,
|
||||||
|
line.Rotation,
|
||||||
|
line.Origin,
|
||||||
|
scale * 1.04f,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0f
|
||||||
|
);
|
||||||
|
|
||||||
|
// Outline ensures readability against bright backgrounds.
|
||||||
|
Vector2[] outlines =
|
||||||
|
{
|
||||||
|
new Vector2(-1f, 0f),
|
||||||
|
new Vector2(1f, 0f),
|
||||||
|
new Vector2(0f, -1f),
|
||||||
|
new Vector2(0f, 1f)
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach (Vector2 outline in outlines)
|
||||||
|
{
|
||||||
|
DynamicSpriteFontExtensionMethods.DrawString(
|
||||||
|
Main.spriteBatch,
|
||||||
|
line.Font,
|
||||||
|
line.Text,
|
||||||
|
position + outline,
|
||||||
|
Color.Black * 0.85f,
|
||||||
|
line.Rotation,
|
||||||
|
line.Origin,
|
||||||
|
scale,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0f
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Main text with cascading prism shimmer.
|
||||||
|
float shimmer = (float)Math.Sin(time * 5.2f) * 0.5f + 0.5f;
|
||||||
|
Color highlight = Color.Lerp(baseColor, Color.White, 0.45f + shimmer * 0.35f);
|
||||||
|
Color finalColor = new Color(
|
||||||
|
(byte)MathHelper.Clamp(baseColor.R + (highlight.R - baseColor.R) * shimmer, 0, 255),
|
||||||
|
(byte)MathHelper.Clamp(baseColor.G + (highlight.G - baseColor.G) * shimmer, 0, 255),
|
||||||
|
(byte)MathHelper.Clamp(baseColor.B + (highlight.B - baseColor.B) * shimmer, 0, 255)
|
||||||
|
);
|
||||||
|
|
||||||
|
DynamicSpriteFontExtensionMethods.DrawString(
|
||||||
|
Main.spriteBatch,
|
||||||
|
line.Font,
|
||||||
|
line.Text,
|
||||||
|
position,
|
||||||
|
finalColor,
|
||||||
|
line.Rotation,
|
||||||
|
line.Origin,
|
||||||
|
scale,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0f
|
||||||
|
);
|
||||||
|
|
||||||
|
// Add a rising stardust sweep that briefly flashes across the name.
|
||||||
|
float sweepPos = (float)Math.Sin(time * 1.6f) * 0.5f + 0.5f;
|
||||||
|
Vector2 sweepOffset = new Vector2((sweepPos - 0.5f) * 14f, -6f);
|
||||||
|
Color sweepColor = new Color(255, 255, 220) * 0.5f;
|
||||||
|
DynamicSpriteFontExtensionMethods.DrawString(
|
||||||
|
Main.spriteBatch,
|
||||||
|
line.Font,
|
||||||
|
line.Text,
|
||||||
|
position + sweepOffset,
|
||||||
|
sweepColor,
|
||||||
|
line.Rotation,
|
||||||
|
line.Origin,
|
||||||
|
scale * 0.9f,
|
||||||
|
SpriteEffects.None,
|
||||||
|
0f
|
||||||
|
);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
using Microsoft.Xna.Framework;
|
||||||
|
using System;
|
||||||
|
using Terraria;
|
||||||
|
using Terraria.ModLoader;
|
||||||
|
|
||||||
|
namespace ForgottenWawiTech.Content.Rarities
|
||||||
|
{
|
||||||
|
public class TranscendentItem : ModRarity
|
||||||
|
{
|
||||||
|
public override Color RarityColor
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
float time = Main.GlobalTimeWrappedHourly;
|
||||||
|
|
||||||
|
Color singularity = new Color(160, 0, 255);
|
||||||
|
Color corrupted = new Color(0, 255, 200);
|
||||||
|
Color sentinel = new Color(90, 220, 255);
|
||||||
|
Color avalian = new Color(255, 170, 90);
|
||||||
|
|
||||||
|
float pulse = (float)(Math.Sin(time * MathHelper.TwoPi) * 0.5f + 0.5f);
|
||||||
|
float swirl = (float)(Math.Sin(time * 0.75f * MathHelper.TwoPi + Math.PI / 3f) * 0.5f + 0.5f);
|
||||||
|
float flare = (float)Math.Pow(Math.Max(0f, (float)Math.Sin(time * 2.1f * MathHelper.TwoPi)), 4f);
|
||||||
|
|
||||||
|
Color blend = Color.Lerp(singularity, corrupted, pulse);
|
||||||
|
blend = Color.Lerp(blend, sentinel, swirl * 0.6f);
|
||||||
|
blend = Color.Lerp(blend, avalian, (1f - pulse) * 0.4f);
|
||||||
|
|
||||||
|
float brightness = 1f + 0.35f * flare;
|
||||||
|
return blend * brightness;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -257,8 +257,9 @@ Items: {
|
|||||||
DisplayName: Avali Scout Pack
|
DisplayName: Avali Scout Pack
|
||||||
Tooltip:
|
Tooltip:
|
||||||
'''
|
'''
|
||||||
|
-10% damage
|
||||||
|
+15% movement speed.
|
||||||
A compact survival rig packed with rations, tools, and portable scanners.
|
A compact survival rig packed with rations, tools, and portable scanners.
|
||||||
Pairs with the Scout armor to keep you light on your talons and ready for recon.
|
|
||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -649,6 +650,85 @@ Items: {
|
|||||||
'''
|
'''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TranscendentHelm: {
|
||||||
|
DisplayName: Transcendent Helm
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+30% melee damage
|
||||||
|
+20% melee critical strike chance
|
||||||
|
+25% melee attack speed
|
||||||
|
+250 maximum life
|
||||||
|
+10% damage reduction
|
||||||
|
Fuses singularity fury with Avali agility and Protogen precision.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
TranscendentMask: {
|
||||||
|
DisplayName: Transcendent Mask
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+32% ranged damage
|
||||||
|
+22% ranged critical strike chance
|
||||||
|
+180 maximum life
|
||||||
|
+120 maximum mana
|
||||||
|
+8% damage reduction
|
||||||
|
Tri-spectrum targeting uplinks every shot to a nanite hunting net.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
TranscendentHood: {
|
||||||
|
DisplayName: Transcendent Hood
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+34% magic damage
|
||||||
|
+18% magic critical strike chance
|
||||||
|
+320 maximum mana
|
||||||
|
-30% mana cost
|
||||||
|
+200 mana regeneration
|
||||||
|
Wires your mind straight into the singularity-swarm lattice.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
TranscendentCowl: {
|
||||||
|
DisplayName: Transcendent Cowl
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+40% summon damage
|
||||||
|
+5 max minions
|
||||||
|
+2 max turrets
|
||||||
|
+220 maximum life
|
||||||
|
+10% damage reduction
|
||||||
|
Drone, sentinel, and singularity spirits obey every command.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
TranscendentCoreplate: {
|
||||||
|
DisplayName: Transcendent Coreplate
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+22% damage
|
||||||
|
+12% critical strike chance
|
||||||
|
+220 maximum life
|
||||||
|
+160 maximum mana
|
||||||
|
+8 life regeneration
|
||||||
|
+4 max minions, +2 max turrets, -20% mana cost, +10% damage reduction
|
||||||
|
An apex core woven from singularity alloys and corrupted nanites.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
|
TranscendentGreaves: {
|
||||||
|
DisplayName: Transcendent Greaves
|
||||||
|
Tooltip:
|
||||||
|
'''
|
||||||
|
+18% damage
|
||||||
|
+10% critical strike chance
|
||||||
|
+160 maximum life
|
||||||
|
+35% movement speed
|
||||||
|
+2.5 max run speed, +3.5 jump speed, +8% damage reduction
|
||||||
|
Leaves photon echoes as you outrun reality itself.
|
||||||
|
'''
|
||||||
|
}
|
||||||
|
|
||||||
ProtogenSentinelHelmet: {
|
ProtogenSentinelHelmet: {
|
||||||
DisplayName: Protogen Sentinel Helmet
|
DisplayName: Protogen Sentinel Helmet
|
||||||
Tooltip:
|
Tooltip:
|
||||||
|
|||||||