private void MouseText_DrawBuffString(ref int X, ref int Y, int buffNameHeight) { Microsoft.Xna.Framework.Point p = new Microsoft.Xna.Framework.Point(X, Y); int num = 220; int num2 = -1; float num3 = 1f / Main.UIScale; List <Vector2> list = new List <Vector2>(); Vector2 vector = Main.fontMouseText.MeasureString(Main.buffString); list.Add(vector); int num4 = (int)((float)(Main.screenHeight - 250) * num3) / 20; if (num4 < 1) { num4 = 1; } if (Main.bannerMouseOver) { int num5 = 0; for (int i = 0; i < NPCLoader.NPCCount; i++) { if (Item.BannerToNPC(i) != 0 && Main.player[Main.myPlayer].NPCBannerBuff[i]) { num5++; string npcnameValue = Lang.GetNPCNameValue(Item.BannerToNPC(i)); Vector2 vector2 = Main.fontMouseText.MeasureString(npcnameValue); int num6 = X; int num7 = Y + (int)vector2.Y + num5 * 20 + 10; int num8 = 0; int num9 = (num5 - 1) / num4; for (int j = 0; j < num9; j++) { num8++; num6 += num; num7 -= num4 * 20; } if ((float)num6 + vector2.X > (float)Main.screenWidth * num3 && num2 == -1) { num2 = num5; } list.Add(new Vector2((float)(num6 - num * num8), (float)num7) + vector2 - p.ToVector2()); } } } BuffLoader.CustomBuffTipSize(Main.buffString, list); Vector2 zero = Vector2.Zero; foreach (Vector2 vector3 in list) { if (zero.X < vector3.X) { zero.X = vector3.X; } if (zero.Y < vector3.Y) { zero.Y = vector3.Y; } } if ((float)X + zero.X + 24f > (float)Main.screenWidth * num3) { X = (int)((float)Main.screenWidth * num3 - zero.X - 24f); } if ((float)Y + zero.Y + 4f > (float)Main.screenHeight * num3) { Y = (int)((float)Main.screenHeight * num3 - zero.Y - 4f); } if (num2 != -1) { num2--; } for (int k = 0; k < 5; k++) { int num10 = X; int num11 = Y + buffNameHeight; Microsoft.Xna.Framework.Color black = Microsoft.Xna.Framework.Color.Black; if (k == 0) { num10 -= 2; } else if (k == 1) { num10 += 2; } else if (k == 2) { num11 -= 2; } else if (k == 3) { num11 += 2; } else { black = new Microsoft.Xna.Framework.Color((int)Main.mouseTextColor, (int)Main.mouseTextColor, (int)Main.mouseTextColor, (int)Main.mouseTextColor); } DynamicSpriteFontExtensionMethods.DrawString(Main.spriteBatch, Main.fontMouseText, Main.buffString, new Vector2((float)num10, (float)num11), black, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); } if (Main.bannerMouseOver) { int num12 = 0; for (int l = 0; l < NPCLoader.NPCCount; l++) { if (Item.BannerToNPC(l) != 0 && Main.player[Main.myPlayer].NPCBannerBuff[l]) { num12++; bool flag = false; for (int m = 0; m < 5; m++) { int num13 = X; int num14 = Y + (int)vector.Y + num12 * 20 + 10; int num15 = (num12 - 1) / num4; num13 += num * num15; num14 -= num4 * 20 * num15; string text = Lang.GetNPCNameValue(Item.BannerToNPC(l)); if (num2 == num12) { text = Language.GetTextValue("UI.Ellipsis"); flag = true; } Microsoft.Xna.Framework.Color black2 = Microsoft.Xna.Framework.Color.Black; if (m == 0) { num13 -= 2; } else if (m == 1) { num13 += 2; } else if (m == 2) { num14 -= 2; } else if (m == 3) { num14 += 2; } else { float num16 = (float)Main.mouseTextColor / 255f; black2 = new Microsoft.Xna.Framework.Color((int)((byte)(80f * num16)), (int)((byte)(255f * num16)), (int)((byte)(120f * num16)), (int)Main.mouseTextColor); } DynamicSpriteFontExtensionMethods.DrawString(Main.spriteBatch, Main.fontMouseText, text, new Vector2((float)num13, (float)num14), black2, 0f, default(Vector2), 1f, SpriteEffects.None, 0f); } if (flag) { return; } } } } BuffLoader.DrawCustomBuffTip(Main.buffString, Main.spriteBatch, X, Y + (int)Main.fontMouseText.MeasureString(Main.buffString).Y); }