using System.Collections.Generic; using Decimation.Lib.Util; using Microsoft.Xna.Framework; using Terraria; using Terraria.ModLoader; using Terraria.UI.Chat; namespace Decimation.Content.Items.Accessories.Trinity { public class Body : TrinityAccessory { protected override string ItemName => "The Body"; protected override string ItemTooltip => "I feel all...\n" + "Increases maximum life by 50\n" + "Increases melee damage by 10%\n" + "Increases melee critical hit chances by 10%\n" + "Hostile projectiles have 10% chance to ricochet off you\nand target your enemies with 50% increased damage"; protected override void InitAccessory() { item.width = 10; item.height = 16; item.expert = true; item.expertOnly = true; item.rare = Rarity.Rainbow.GetRarityValue(); item.value = Item.sellPrice(gold: 5); } public override void UpdateAccessory(Player player, bool hideVisual) { player.statLifeMax2 += 50; player.meleeDamage *= 1.10f; player.meleeCrit = (int) (player.meleeCrit * 1.10f); base.UpdateAccessory(player, hideVisual); } public override void ModifyTooltips(List tooltips) { tooltips.Add(new TooltipLine(mod, "trinity", "Trinity") { overrideColor = ChatManager.WaveColor(Color.Red) }); } public static bool BodyEffect(Projectile projectile, Player player, bool fromPlayer, ref int damage) { if (Main.expertMode && Main.rand.NextBool(10) && (player.GetModPlayer().HasEquippedAccessory(ModContent.ItemType()) || player.GetModPlayer().HasEquippedAccessory(ModContent.ItemType()))) { return projectile.Richochet(player, fromPlayer, ref damage); } return false; } } class BodyProjectileEffects : GlobalProjectile { public override void ModifyHitPvp(Projectile projectile, Player target, ref int damage, ref bool crit) { Body.BodyEffect(projectile, target, true, ref damage); } public override void ModifyHitPlayer(Projectile projectile, Player target, ref int damage, ref bool crit) { if (Body.BodyEffect(projectile, target, false, ref damage)) { projectile.hostile = false; projectile.friendly = true; } } } }