protected override void DrawSelf(SpriteBatch spriteBatch) { Texture2D scrollTex = bgTex; CalculatedStyle dimensions = GetDimensions(); Color bgColor = Color.LightGray * 0.5f; Color iconColor = Color.SandyBrown * 0.4f; if (hunt.available()) { int item = Main.LocalPlayer.FindItem(hunt.item); if (item != -1) { scrollTex = ModContent.GetTexture("JoostMod/NPCs/Town/HuntScroll_HasItem"); if (IsMouseHovering) { bgColor = Color.White; iconColor = Color.Goldenrod; } else { bgColor = Color.White * 0.8f; iconColor = Color.Goldenrod * 0.8f; } } else if (hunt.completed()) { scrollTex = ModContent.GetTexture("JoostMod/NPCs/Town/HuntScroll_Completed"); bgColor = Color.White * 0.85f; iconColor = Color.Gray * 0.7f; } else { if (IsMouseHovering) { bgColor = Color.LightGray; iconColor = Color.SandyBrown * 0.9f; } if (JoostWorld.activeQuest.Contains(hunt.NPC)) { bgColor = Color.White; iconColor = Color.SandyBrown; } } } else { bgColor = Color.Black * 0.5f; iconColor = Color.Black * 0.5f; } spriteBatch.Draw(scrollTex, dimensions.Position(), null, bgColor, 0f, Vector2.Zero, scale, SpriteEffects.None, 0); Main.instance.LoadNPC(hunt.NPC); Texture2D tex = Main.npcTexture[hunt.NPC]; Rectangle rect = tex.Frame(hunt.xFrameCount, Main.npcFrameCount[hunt.NPC], 0, 0); float num = 0.6f; float num2 = scrollTex.Width * scale * 0.6f; if (rect.Width > num2 || rect.Height > num2) { if (rect.Width > rect.Height) { num = num2 / rect.Width; } else { num = num2 / rect.Height; } } Vector2 drawPos = dimensions.Position(); drawPos.X += scrollTex.Width * scale / 2f - rect.Width * num / 2f; drawPos.Y += scrollTex.Height * scale / 2f - rect.Height * num / 2f; spriteBatch.Draw(tex, drawPos, new Rectangle?(rect), iconColor, 0f, Vector2.Zero, num, SpriteEffects.None, 0f); }