internal override TwoColumnLine Create(Item item, DrawableTooltipLine line) { Player player = Main.LocalPlayer; float knockback = item.knockBack; if (item.summon) { knockback += player.minionKB; } if (player.magicQuiver && item.useAmmo == AmmoID.Arrow || item.useAmmo == AmmoID.Stake) { knockback = (int)(knockback * 1.1f); } if (player.inventory[player.selectedItem].type == 3106 && item.type == 3106) { knockback += knockback * (1f - player.stealth); } ItemLoader.GetWeaponKnockback(item, player, ref knockback); PlayerHooks.GetWeaponKnockback(player, item, ref knockback); string knockbackText; if (knockback <= 0f) { knockbackText = "No"; } else if (knockback <= 1.5f) { knockbackText = "Extremely weak"; } else if (knockback <= 3f) { knockbackText = "Very weak"; } else if (knockback <= 4f) { knockbackText = "Weak"; } else if (knockback <= 6f) { knockbackText = "Average"; } else if (knockback <= 7f) { knockbackText = "Strong"; } else if (knockback <= 9f) { knockbackText = "Very strong"; } else if (knockback <= 11f) { knockbackText = "Extremely strong"; } else { knockbackText = "Insane"; } return(new TwoColumnLine(line) { textLeft = "Knockback", textRight = $"{knockbackText} ({knockback:F1})", colorRight = Utility.DoubleLerp(Color.Red, Color.Yellow, Color.LimeGreen, knockback / GetMaxKnockback(item)) }); }
public override bool?CanHitNPC(Player player, NPC target) { if (recursionnt) { return(null); } if (!item.Hitbox.Intersects(target.Hitbox)) { return(false); } recursionnt = true; bool cantBeHit = !target.CanBeHitBy(player, item, false); recursionnt = false; if (cantBeHit) { return(false); } int totalDamage = player.GetWeaponDamage(item); int critChance = player.rangedCrit; ItemLoader.GetWeaponCrit(item, player, ref critChance); PlayerHooks.GetWeaponCrit(player, item, ref critChance); bool crit = (critChance >= 100 || Main.rand.Next(1, 101) <= critChance); float knockBack = item.knockBack; ItemLoader.GetWeaponKnockback(item, player, ref knockBack); PlayerHooks.GetWeaponKnockback(player, item, ref knockBack); int bannerID = Item.NPCtoBanner(target.BannerID()); if (bannerID >= 0 && player.NPCBannerBuff[bannerID]) { totalDamage = ((!Main.expertMode) ? ((int)(totalDamage * ItemID.Sets.BannerStrength[Item.BannerToItem(bannerID)].NormalDamageDealt)) : ((int)(totalDamage * ItemID.Sets.BannerStrength[Item.BannerToItem(bannerID)].ExpertDamageDealt))); } int damage = Main.DamageVar(totalDamage); NPCLoader.ModifyHitByItem(target, player, item, ref damage, ref knockBack, ref crit); PlayerHooks.ModifyHitNPC(player, item, target, ref damage, ref knockBack, ref crit); player.OnHit(target.Center.X, target.Center.Y, target); if (player.armorPenetration > 0) { damage += target.checkArmorPenetration(player.armorPenetration); } Vector2 oldVel = target.velocity; int dmgDealt = (int)target.StrikeNPC(damage, knockBack, player.direction, crit); Vector2 diff = target.velocity - oldVel; float totalKnockBack = diff.Length(); diff = new Vector2(totalKnockBack * 0.6f * player.direction, totalKnockBack * -0.2f); if (totalKnockBack > 0 && diff.X > 0 == player.direction > 0) { float rot = 0f; float mult = 1f; target.GetGlobalNPC <EpikGlobalNPC>().SetBounceTime(60); //Main.NewText(frame); switch (frame) { case 4: rot = target.collideY?-0.75f:1; mult = 1.75f; //target.GetGlobalNPC<EpikGlobalNPC>().OldCollideY = false; break; case 2: rot = -0.7f; mult = 1.5f; break; } if (rot != 0) { diff = diff.RotatedBy(rot * player.direction); } target.velocity = oldVel + (diff * mult); } if (bannerID >= 0) { player.lastCreatureHit = bannerID; } if (player.beetleOffense && !target.immortal) { player.beetleCounter += dmgDealt; player.beetleCountdown = 0; } target.immune[player.whoAmI] = player.itemAnimation; ItemLoader.OnHitNPC(item, player, target, dmgDealt, knockBack, crit); NPCLoader.OnHitByItem(target, player, item, dmgDealt, knockBack, crit); PlayerHooks.OnHitNPC(player, item, target, dmgDealt, knockBack, crit); if (Main.netMode != NetmodeID.SinglePlayer) { if (crit) { NetMessage.SendData(MessageID.StrikeNPC, -1, -1, null, target.whoAmI, damage, knockBack, player.direction, 1); } else { NetMessage.SendData(MessageID.StrikeNPC, -1, -1, null, target.whoAmI, damage, knockBack, player.direction); } } if (player.accDreamCatcher) { player.addDPS(damage); } //target.immune[player.whoAmI] = player.itemAnimation; return(false); }
public PrefixLine(Item item) { if (Main.cpItem == null || Main.cpItem.netID != item.netID) { Main.cpItem = new Item(); Main.cpItem.netDefaults(item.netID); } float dark = Main.mouseTextColor / 255f; byte a = Main.mouseTextColor; Color badColor = new Color((byte)(190f * dark), (byte)(120f * dark), (byte)(120f * dark), a); Color goodColor = new Color((byte)(120f * dark), (byte)(190f * dark), (byte)(120f * dark), a); if (Main.cpItem.damage != item.damage) { double num12 = item.damage - (float)Main.cpItem.damage; num12 = num12 / Main.cpItem.damage * 100.0; num12 = Math.Round(num12); Text.Add(num12 > 0.0 ? "+" + num12 + Language.GetTextValue("LegacyTooltip.39") : num12 + Language.GetTextValue("LegacyTooltip.39")); Color.Add(num12 < 0.0 ? badColor : goodColor); } if (Main.cpItem.useAnimation != item.useAnimation) { double num13 = item.useAnimation - (float)Main.cpItem.useAnimation; num13 = num13 / Main.cpItem.useAnimation * 100.0; num13 = Math.Round(num13); num13 *= -1.0; Text.Add(num13 > 0.0 ? "+" + num13 + Language.GetTextValue("LegacyTooltip.40") : num13 + Language.GetTextValue("LegacyTooltip.40")); Color.Add(num13 < 0.0 ? badColor : goodColor); } if (Main.cpItem.crit != item.crit) { double num14 = item.crit - (float)Main.cpItem.crit; Text.Add(num14 > 0.0 ? "+" + num14 + Language.GetTextValue("LegacyTooltip.41") : num14 + Language.GetTextValue("LegacyTooltip.41")); Color.Add(num14 < 0.0 ? badColor : goodColor); } if (Main.cpItem.mana != item.mana) { double num15 = item.mana - (float)Main.cpItem.mana; num15 = num15 / Main.cpItem.mana * 100.0; num15 = Math.Round(num15); Text.Add(num15 > 0.0 ? "+" + num15 + Language.GetTextValue("LegacyTooltip.42") : num15 + Language.GetTextValue("LegacyTooltip.42")); Color.Add(num15 > 0.0 ? badColor : goodColor); } if (Main.cpItem.scale != item.scale) { double num16 = item.scale - Main.cpItem.scale; num16 = num16 / Main.cpItem.scale * 100.0; num16 = Math.Round(num16); Text.Add(num16 > 0.0 ? "+" + num16 + Language.GetTextValue("LegacyTooltip.43") : num16 + Language.GetTextValue("LegacyTooltip.43")); Color.Add(num16 < 0.0 ? badColor : goodColor); } if (Main.cpItem.shootSpeed != item.shootSpeed) { double num17 = item.shootSpeed - Main.cpItem.shootSpeed; num17 = num17 / Main.cpItem.shootSpeed * 100.0; num17 = Math.Round(num17); Text.Add(num17 > 0.0 ? "+" + num17 + Language.GetTextValue("LegacyTooltip.44") : num17 + Language.GetTextValue("LegacyTooltip.44")); Color.Add(num17 < 0.0 ? badColor : goodColor); } float knockback = item.knockBack; if (item.summon) { knockback += Main.LocalPlayer.minionKB; } if (Main.LocalPlayer.magicQuiver && item.useAmmo == AmmoID.Arrow || item.useAmmo == AmmoID.Stake) { knockback = (int)(knockback * 1.1f); } if (Main.LocalPlayer.inventory[Main.LocalPlayer.selectedItem].type == 3106 && item.type == 3106) { knockback += knockback * (1f - Main.LocalPlayer.stealth); } ItemLoader.GetWeaponKnockback(item, Main.LocalPlayer, ref knockback); PlayerHooks.GetWeaponKnockback(Main.LocalPlayer, item, ref knockback); if (Main.cpItem.knockBack != knockback) { double num18 = knockback - Main.cpItem.knockBack; num18 = num18 / Main.cpItem.knockBack * 100.0; num18 = Math.Round(num18); Text.Add(num18 > 0.0 ? "+" + num18 + Language.GetTextValue("LegacyTooltip.45") : num18 + Language.GetTextValue("LegacyTooltip.45")); Color.Add(num18 < 0.0 ? badColor : goodColor); } if (item.prefix == 62) { Text.Add("+1" + Language.GetTextValue("LegacyTooltip.25")); Color.Add(goodColor); } if (item.prefix == 63) { Text.Add("+2" + Language.GetTextValue("LegacyTooltip.25")); Color.Add(goodColor); } if (item.prefix == 64) { Text.Add("+3" + Language.GetTextValue("LegacyTooltip.25")); Color.Add(goodColor); } if (item.prefix == 65) { Text.Add("+4" + Language.GetTextValue("LegacyTooltip.25")); Color.Add(goodColor); } if (item.prefix == 66) { Text.Add("+20 " + Language.GetTextValue("LegacyTooltip.31")); Color.Add(goodColor); } if (item.prefix == 67) { Text.Add("+2" + Language.GetTextValue("LegacyTooltip.5")); Color.Add(goodColor); } if (item.prefix == 68) { Text.Add("+4" + Language.GetTextValue("LegacyTooltip.5")); Color.Add(goodColor); } if (item.prefix == 69) { Text.Add("+1" + Language.GetTextValue("LegacyTooltip.39")); Color.Add(goodColor); } if (item.prefix == 70) { Text.Add("+2" + Language.GetTextValue("LegacyTooltip.39")); Color.Add(goodColor); } if (item.prefix == 71) { Text.Add("+3" + Language.GetTextValue("LegacyTooltip.39")); Color.Add(goodColor); } if (item.prefix == 72) { Text.Add("+4" + Language.GetTextValue("LegacyTooltip.39")); Color.Add(goodColor); } if (item.prefix == 73) { Text.Add("+1" + Language.GetTextValue("LegacyTooltip.46")); Color.Add(goodColor); } if (item.prefix == 74) { Text.Add("+2" + Language.GetTextValue("LegacyTooltip.46")); Color.Add(goodColor); } if (item.prefix == 75) { Text.Add("+3" + Language.GetTextValue("LegacyTooltip.46")); Color.Add(goodColor); } if (item.prefix == 76) { Text.Add("+4" + Language.GetTextValue("LegacyTooltip.46")); Color.Add(goodColor); } if (item.prefix == 77) { Text.Add("+1" + Language.GetTextValue("LegacyTooltip.47")); Color.Add(goodColor); } if (item.prefix == 78) { Text.Add("+2" + Language.GetTextValue("LegacyTooltip.47")); Color.Add(goodColor); } if (item.prefix == 79) { Text.Add("+3" + Language.GetTextValue("LegacyTooltip.47")); Color.Add(goodColor); } if (item.prefix == 80) { Text.Add("+4" + Language.GetTextValue("LegacyTooltip.47")); Color.Add(goodColor); } }
private static void GetTooltips(Player player, Item item, out int lenght, out int oneDropLogoIndex, out Color color, out string[] tooltipNames, out string[] texts, out bool[] modifiers, out bool[] badModifiers) { color = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor); oneDropLogoIndex = -1; float knockBack = item.knockBack; float knockbackMultiplier = 1f; if (item.melee && player.kbGlove) { knockbackMultiplier += 1f; } if (player.kbBuff) { knockbackMultiplier += 0.5f; } if (knockbackMultiplier != 1f) { item.knockBack *= knockbackMultiplier; } if (item.ranged && player.shroomiteStealth) { item.knockBack *= 1f + (1f - player.stealth) * 0.5f; } int numLines = 20 + item.ToolTip?.Lines ?? 0; lenght = 1; tooltipNames = new string[numLines]; texts = new string[numLines]; modifiers = new bool[numLines]; badModifiers = new bool[numLines]; for (int i = 0; i < numLines; i++) { modifiers[i] = false; badModifiers[i] = false; } texts[0] = item.HoverName; tooltipNames[0] = "ItemName"; if (item.favorited) { texts[lenght++] = Language.GetTextValue("LegacyTooltip.56"); tooltipNames[lenght - 1] = "Favorite"; texts[lenght++] = Language.GetTextValue("LegacyTooltip.57"); tooltipNames[lenght - 1] = "FavoriteDesc"; } if (item.social) { texts[lenght] = Language.GetTextValue("LegacyTooltip.0"); tooltipNames[lenght] = "Social"; lenght++; texts[lenght] = Language.GetTextValue("LegacyTooltip.1"); tooltipNames[lenght] = "SocialDesc"; lenght++; } else { if (item.damage > 0 && (!item.notAmmo || item.useStyle > 0) && (item.type < 71 || item.type > 74 || player.HasItem(905))) { LocalizedText tip; if (item.melee) { tip = Language.GetText("LegacyTooltip.2"); } else if (item.ranged) { tip = Language.GetText("LegacyTooltip.3"); } else if (item.magic) { tip = Language.GetText("LegacyTooltip.4"); } else if (item.thrown) { tip = Language.GetText("LegacyTooltip.58"); } else if (item.summon) { tip = Language.GetText("LegacyTooltip.53"); } else { tip = Language.GetText("LegacyTooltip.55"); } int damage = player.GetWeaponDamage(item); if (item.type == 3829 || item.type == 3830 || item.type == 3831) { damage *= 3; } texts[lenght] = string.Concat(damage, tip.Value); tooltipNames[lenght] = "Damage"; lenght++; if (item.melee) { int num7 = player.meleeCrit - player.HeldItem.crit + item.crit; ItemLoader.GetWeaponCrit(item, player, ref num7); PlayerHooks.GetWeaponCrit(player, item, ref num7); texts[lenght] = num7 + Language.GetTextValue("LegacyTooltip.5"); tooltipNames[lenght] = "CritChance"; lenght++; } else if (item.ranged) { int num8 = player.rangedCrit - player.HeldItem.crit + item.crit; ItemLoader.GetWeaponCrit(item, player, ref num8); PlayerHooks.GetWeaponCrit(player, item, ref num8); texts[lenght] = num8 + Language.GetTextValue("LegacyTooltip.5"); tooltipNames[lenght] = "CritChance"; lenght++; } else if (item.magic) { int num9 = player.magicCrit - player.HeldItem.crit + item.crit; ItemLoader.GetWeaponCrit(item, player, ref num9); PlayerHooks.GetWeaponCrit(player, item, ref num9); texts[lenght] = num9 + Language.GetTextValue("LegacyTooltip.5"); tooltipNames[lenght] = "CritChance"; lenght++; } else if (item.thrown) { int num10 = player.thrownCrit - player.HeldItem.crit + item.crit; ItemLoader.GetWeaponCrit(item, player, ref num10); PlayerHooks.GetWeaponCrit(player, item, ref num10); texts[lenght] = num10 + Language.GetTextValue("LegacyTooltip.5"); tooltipNames[lenght] = "CritChance"; lenght++; } else if (!item.summon) // crit tooltip for fully custom classes { int crit = item.crit; ItemLoader.GetWeaponCrit(item, player, ref crit); PlayerHooks.GetWeaponCrit(player, item, ref crit); texts[lenght] = crit + Language.GetTextValue("LegacyTooltip.5"); tooltipNames[lenght] = "CritChance"; lenght++; } if (item.useStyle > 0 && !item.summon) { if (item.useAnimation <= 8) { texts[lenght] = Language.GetTextValue("LegacyTooltip.6"); } else if (item.useAnimation <= 20) { texts[lenght] = Language.GetTextValue("LegacyTooltip.7"); } else if (item.useAnimation <= 25) { texts[lenght] = Language.GetTextValue("LegacyTooltip.8"); } else if (item.useAnimation <= 30) { texts[lenght] = Language.GetTextValue("LegacyTooltip.9"); } else if (item.useAnimation <= 35) { texts[lenght] = Language.GetTextValue("LegacyTooltip.10"); } else if (item.useAnimation <= 45) { texts[lenght] = Language.GetTextValue("LegacyTooltip.11"); } else if (item.useAnimation <= 55) { texts[lenght] = Language.GetTextValue("LegacyTooltip.12"); } else { texts[lenght] = Language.GetTextValue("LegacyTooltip.13"); } tooltipNames[lenght] = "Speed"; lenght++; } float num11 = item.knockBack; if (item.summon) { num11 += player.minionKB; } if (player.magicQuiver && item.useAmmo == AmmoID.Arrow || item.useAmmo == AmmoID.Stake) { num11 = (int)(num11 * 1.1f); } if (player.inventory[player.selectedItem].type == 3106 && item.type == 3106) { num11 += num11 * (1f - player.stealth); } ItemLoader.GetWeaponKnockback(item, player, ref num11); PlayerHooks.GetWeaponKnockback(player, item, ref num11); if (num11 == 0f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.14"); } else if (num11 <= 1.5) { texts[lenght] = Language.GetTextValue("LegacyTooltip.15"); } else if (num11 <= 3f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.16"); } else if (num11 <= 4f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.17"); } else if (num11 <= 6f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.18"); } else if (num11 <= 7f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.19"); } else if (num11 <= 9f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.20"); } else if (num11 <= 11f) { texts[lenght] = Language.GetTextValue("LegacyTooltip.21"); } else { texts[lenght] = Language.GetTextValue("LegacyTooltip.22"); } tooltipNames[lenght] = "Knockback"; lenght++; } if (item.fishingPole > 0) { texts[lenght] = Language.GetTextValue("GameUI.PrecentFishingPower", item.fishingPole); tooltipNames[lenght] = "FishingPower"; lenght++; texts[lenght] = Language.GetTextValue("GameUI.BaitRequired"); tooltipNames[lenght] = "NeedsBait"; lenght++; } if (item.bait > 0) { texts[lenght] = Language.GetTextValue("GameUI.BaitPower", item.bait); tooltipNames[lenght] = "BaitPower"; lenght++; } if (item.headSlot > 0 || item.bodySlot > 0 || item.legSlot > 0 || item.accessory || Main.projHook[item.shoot] || item.mountType != -1 || item.buffType > 0 && (Main.lightPet[item.buffType] || Main.vanityPet[item.buffType])) { texts[lenght] = Language.GetTextValue("LegacyTooltip.23"); tooltipNames[lenght] = "Equipable"; lenght++; } if (item.tileWand > 0) { texts[lenght] = Language.GetTextValue("LegacyTooltip.52") + Lang.GetItemNameValue(item.tileWand); tooltipNames[lenght] = "WandConsumes"; lenght++; } if (item.questItem) { texts[lenght] = Language.GetTextValue("LegacyInterface.65"); tooltipNames[lenght] = "Quest"; lenght++; } if (item.vanity) { texts[lenght] = Language.GetTextValue("LegacyTooltip.24"); tooltipNames[lenght] = "Vanity"; lenght++; } if (item.defense > 0) { texts[lenght] = item.defense + Language.GetTextValue("LegacyTooltip.25"); tooltipNames[lenght] = "Defense"; lenght++; } if (item.pick > 0) { texts[lenght] = item.pick + Language.GetTextValue("LegacyTooltip.26"); tooltipNames[lenght] = "PickPower"; lenght++; } if (item.axe > 0) { texts[lenght] = item.axe * 5 + Language.GetTextValue("LegacyTooltip.27"); tooltipNames[lenght] = "AxePower"; lenght++; } if (item.hammer > 0) { texts[lenght] = item.hammer + Language.GetTextValue("LegacyTooltip.28"); tooltipNames[lenght] = "HammerPower"; lenght++; } if (item.tileBoost != 0) { int tileBoost = item.tileBoost; if (tileBoost > 0) { texts[lenght] = "+" + tileBoost + Language.GetTextValue("LegacyTooltip.54"); } else { texts[lenght] = tileBoost + Language.GetTextValue("LegacyTooltip.54"); } tooltipNames[lenght] = "TileBoost"; lenght++; } if (item.healLife > 0) { texts[lenght] = Language.GetTextValue("CommonItemTooltip.RestoresLife", player.GetHealLife(item)); tooltipNames[lenght] = "HealLife"; lenght++; } if (item.healMana > 0) { texts[lenght] = Language.GetTextValue("CommonItemTooltip.RestoresMana", player.GetHealMana(item)); tooltipNames[lenght] = "HealMana"; lenght++; } if (item.mana > 0 && (item.type != 127 || !player.spaceGun)) { texts[lenght] = Language.GetTextValue("CommonItemTooltip.UsesMana", player.GetManaCost(item)); tooltipNames[lenght] = "UseMana"; lenght++; } if (item.createWall > 0 || item.createTile > -1) { if (item.type != 213 && item.tileWand < 1) { texts[lenght] = Language.GetTextValue("LegacyTooltip.33"); tooltipNames[lenght] = "Placeable"; lenght++; } } else if (item.ammo > 0 && !item.notAmmo) { texts[lenght] = Language.GetTextValue("LegacyTooltip.34"); tooltipNames[lenght] = "Ammo"; lenght++; } else if (item.consumable) { texts[lenght] = Language.GetTextValue("LegacyTooltip.35"); tooltipNames[lenght] = "Consumable"; lenght++; } if (item.material) { texts[lenght] = Language.GetTextValue("LegacyTooltip.36"); tooltipNames[lenght] = "Material"; lenght++; } if (item.ToolTip != null) { for (int j = 0; j < item.ToolTip.Lines; j++) { if (j == 0 && item.type >= 1533 && item.type <= 1537 && !NPC.downedPlantBoss) { texts[lenght] = Language.GetTextValue("LegacyTooltip.59"); tooltipNames[lenght] = "Tooltip" + j; lenght++; } else { texts[lenght] = item.ToolTip.GetLine(j); tooltipNames[lenght] = "Tooltip" + j; lenght++; } } } if ((item.type == 3818 || item.type == 3819 || item.type == 3820 || item.type == 3824 || item.type == 3825 || item.type == 3826 || item.type == 3829 || item.type == 3830 || item.type == 3831 || item.type == 3832 || item.type == 3833 || item.type == 3834) && !player.downedDD2EventAnyDifficulty) { texts[lenght] = Language.GetTextValue("LegacyMisc.104"); tooltipNames[lenght] = "EtherianManaWarning"; lenght++; } if (item.buffType == 26 && Main.expertMode) { texts[lenght] = Language.GetTextValue("LegacyMisc.40"); tooltipNames[lenght] = "WellFedExpert"; lenght++; } if (item.buffTime > 0) { var textValue = item.buffTime / 60 >= 60 ? Language.GetTextValue("CommonItemTooltip.MinuteDuration", Math.Round(item.buffTime / 3600f)) : Language.GetTextValue("CommonItemTooltip.SecondDuration", Math.Round(item.buffTime / 60f)); texts[lenght] = textValue; tooltipNames[lenght] = "BuffTime"; lenght++; } if (item.type == 3262 || item.type == 3282 || item.type == 3283 || item.type == 3284 || item.type == 3285 || item.type == 3286 || item.type == 3316 || item.type == 3315 || item.type == 3317 || item.type == 3291 || item.type == 3389) { texts[lenght] = " "; oneDropLogoIndex = lenght; tooltipNames[lenght] = "OneDropLogo"; lenght++; } if (item.prefix > 0) { if (Main.cpItem == null || Main.cpItem.netID != item.netID) { Main.cpItem = new Item(); Main.cpItem.netDefaults(item.netID); } if (Main.cpItem.damage != item.damage) { double num12 = item.damage - (float)Main.cpItem.damage; num12 = num12 / Main.cpItem.damage * 100.0; num12 = Math.Round(num12); texts[lenght] = num12 > 0.0 ? "+" + num12 + Language.GetTextValue("LegacyTooltip.39") : num12 + Language.GetTextValue("LegacyTooltip.39"); if (num12 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixDamage"; lenght++; } if (Main.cpItem.useAnimation != item.useAnimation) { double num13 = item.useAnimation - (float)Main.cpItem.useAnimation; num13 = num13 / Main.cpItem.useAnimation * 100.0; num13 = Math.Round(num13); num13 *= -1.0; texts[lenght] = num13 > 0.0 ? "+" + num13 + Language.GetTextValue("LegacyTooltip.40") : num13 + Language.GetTextValue("LegacyTooltip.40"); if (num13 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixSpeed"; lenght++; } if (Main.cpItem.crit != item.crit) { double num14 = item.crit - (float)Main.cpItem.crit; texts[lenght] = num14 > 0.0 ? "+" + num14 + Language.GetTextValue("LegacyTooltip.41") : num14 + Language.GetTextValue("LegacyTooltip.41"); if (num14 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixCritChance"; lenght++; } if (Main.cpItem.mana != item.mana) { double num15 = item.mana - (float)Main.cpItem.mana; num15 = num15 / Main.cpItem.mana * 100.0; num15 = Math.Round(num15); if (num15 > 0.0) { texts[lenght] = "+" + num15 + Language.GetTextValue("LegacyTooltip.42"); } else { texts[lenght] = num15 + Language.GetTextValue("LegacyTooltip.42"); } if (num15 > 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixUseMana"; lenght++; } if (Main.cpItem.scale != item.scale) { double num16 = item.scale - Main.cpItem.scale; num16 = num16 / Main.cpItem.scale * 100.0; num16 = Math.Round(num16); if (num16 > 0.0) { texts[lenght] = "+" + num16 + Language.GetTextValue("LegacyTooltip.43"); } else { texts[lenght] = num16 + Language.GetTextValue("LegacyTooltip.43"); } if (num16 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixSize"; lenght++; } if (Main.cpItem.shootSpeed != item.shootSpeed) { double num17 = item.shootSpeed - Main.cpItem.shootSpeed; num17 = num17 / Main.cpItem.shootSpeed * 100.0; num17 = Math.Round(num17); texts[lenght] = num17 > 0.0 ? "+" + num17 + Language.GetTextValue("LegacyTooltip.44") : num17 + Language.GetTextValue("LegacyTooltip.44"); if (num17 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixShootSpeed"; lenght++; } if (Main.cpItem.knockBack != knockBack) { double num18 = knockBack - Main.cpItem.knockBack; num18 = num18 / Main.cpItem.knockBack * 100.0; num18 = Math.Round(num18); texts[lenght] = num18 > 0.0 ? "+" + num18 + Language.GetTextValue("LegacyTooltip.45") : num18 + Language.GetTextValue("LegacyTooltip.45"); if (num18 < 0.0) { badModifiers[lenght] = true; } modifiers[lenght] = true; tooltipNames[lenght] = "PrefixKnockback"; lenght++; } if (item.prefix == 62) { texts[lenght] = "+1" + Language.GetTextValue("LegacyTooltip.25"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDefense"; lenght++; } if (item.prefix == 63) { texts[lenght] = "+2" + Language.GetTextValue("LegacyTooltip.25"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDefense"; lenght++; } if (item.prefix == 64) { texts[lenght] = "+3" + Language.GetTextValue("LegacyTooltip.25"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDefense"; lenght++; } if (item.prefix == 65) { texts[lenght] = "+4" + Language.GetTextValue("LegacyTooltip.25"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDefense"; lenght++; } if (item.prefix == 66) { texts[lenght] = "+20 " + Language.GetTextValue("LegacyTooltip.31"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMaxMana"; lenght++; } if (item.prefix == 67) { texts[lenght] = "+2" + Language.GetTextValue("LegacyTooltip.5"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccCritChance"; lenght++; } if (item.prefix == 68) { texts[lenght] = "+4" + Language.GetTextValue("LegacyTooltip.5"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccCritChance"; lenght++; } if (item.prefix == 69) { texts[lenght] = "+1" + Language.GetTextValue("LegacyTooltip.39"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDamage"; lenght++; } if (item.prefix == 70) { texts[lenght] = "+2" + Language.GetTextValue("LegacyTooltip.39"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDamage"; lenght++; } if (item.prefix == 71) { texts[lenght] = "+3" + Language.GetTextValue("LegacyTooltip.39"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDamage"; lenght++; } if (item.prefix == 72) { texts[lenght] = "+4" + Language.GetTextValue("LegacyTooltip.39"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccDamage"; lenght++; } if (item.prefix == 73) { texts[lenght] = "+1" + Language.GetTextValue("LegacyTooltip.46"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMoveSpeed"; lenght++; } if (item.prefix == 74) { texts[lenght] = "+2" + Language.GetTextValue("LegacyTooltip.46"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMoveSpeed"; lenght++; } if (item.prefix == 75) { texts[lenght] = "+3" + Language.GetTextValue("LegacyTooltip.46"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMoveSpeed"; lenght++; } if (item.prefix == 76) { texts[lenght] = "+4" + Language.GetTextValue("LegacyTooltip.46"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMoveSpeed"; lenght++; } if (item.prefix == 77) { texts[lenght] = "+1" + Language.GetTextValue("LegacyTooltip.47"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMeleeSpeed"; lenght++; } if (item.prefix == 78) { texts[lenght] = "+2" + Language.GetTextValue("LegacyTooltip.47"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMeleeSpeed"; lenght++; } if (item.prefix == 79) { texts[lenght] = "+3" + Language.GetTextValue("LegacyTooltip.47"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMeleeSpeed"; lenght++; } if (item.prefix == 80) { texts[lenght] = "+4" + Language.GetTextValue("LegacyTooltip.47"); modifiers[lenght] = true; tooltipNames[lenght] = "PrefixAccMeleeSpeed"; lenght++; } } if (item.wornArmor && player.setBonus != "") { texts[lenght] = Language.GetTextValue("LegacyTooltip.48") + " " + player.setBonus; tooltipNames[lenght] = "SetBonus"; lenght++; } } if (item.expert) { texts[lenght] = Language.GetTextValue("GameUI.Expert"); tooltipNames[lenght] = "Expert"; lenght++; } float dark = Main.mouseTextColor / 255f; int alpha = Main.mouseTextColor; if (Main.npcShop > 0) { int storeValue = item.GetStoreValue(); if (item.shopSpecialCurrency != -1) { tooltipNames[lenght] = "SpecialPrice"; CustomCurrencyManager.GetPriceText(item.shopSpecialCurrency, texts, ref lenght, storeValue); color = new Color((byte)(255f * dark), (byte)(255f * dark), (byte)(255f * dark), alpha); } else if (item.GetStoreValue() > 0) { int value = storeValue * item.stack; if (!item.buy) { value = storeValue / 5; if (value < 1) { value = 1; } value *= item.stack; } if (value < 1) { value = 1; } int[] coinStacks = Utils.CoinsSplit(value); string text = ""; for (int i = coinStacks.Length - 1; i >= 0; i--) { if (coinStacks[i] > 0) { text += $"{coinStacks[i]} {Language.GetTextValue($"LegacyInterface.{18 - i}")} "; } } texts[lenght] = !item.buy ? Language.GetTextValue("LegacyTooltip.49") + " " + text : Language.GetTextValue("LegacyTooltip.50") + " " + text; tooltipNames[lenght] = "Price"; lenght++; if (coinStacks[3] > 0) { color = new Color((byte)(220f * dark), (byte)(220f * dark), (byte)(198f * dark), alpha); } else if (coinStacks[2] > 0) { color = new Color((byte)(224f * dark), (byte)(201f * dark), (byte)(92f * dark), alpha); } else if (coinStacks[1] > 0) { color = new Color((byte)(181f * dark), (byte)(192f * dark), (byte)(193f * dark), alpha); } else if (coinStacks[0] > 0) { color = new Color((byte)(246f * dark), (byte)(138f * dark), (byte)(96f * dark), alpha); } } else if (item.type != 3817) { texts[lenght] = Language.GetTextValue("LegacyTooltip.51"); tooltipNames[lenght] = "Price"; lenght++; color = new Color((byte)(120f * dark), (byte)(120f * dark), (byte)(120f * dark), alpha); } } }