Пример #1
0
        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);
        }