Beispiel #1
0
        public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers)
        {
            TidePlayer modPlayer1 = Main.player[Main.myPlayer].GetModPlayer <TidePlayer>();

            if (TideWorld.TheTide)
            {
                int index = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Inventory"));
                LegacyGameInterfaceLayer TideThing = new LegacyGameInterfaceLayer("SpiritMod: TideBenis",
                                                                                  delegate
                {
                    DrawTide(Main.spriteBatch);
                    return(true);
                },
                                                                                  InterfaceScaleType.UI);
                layers.Insert(index, TideThing);
            }
        }
Beispiel #2
0
        public void DrawTide(SpriteBatch spriteBatch)
        {
            TidePlayer modPlayer1 = Main.player[Main.myPlayer].GetModPlayer <TidePlayer>();

            if (TideWorld.TheTide && TideWorld.InBeach)
            {
                float     alpha          = 0.5f;
                Texture2D backGround1    = Main.colorBarTexture;
                Texture2D progressColor  = Main.colorBarTexture;
                Texture2D TideIcon       = SpiritMod.instance.GetTexture("Effects/InvasionIcons/Depths_Icon");
                float     scmp           = 0.5f + 0.75f * 0.5f;
                Color     descColor      = new Color(77, 39, 135);
                Color     waveColor      = new Color(255, 241, 51);
                Color     barrierColor   = new Color(255, 241, 51);
                const int offsetX        = 20;
                const int offsetY        = 20;
                int       width          = (int)(200f * scmp);
                int       height         = (int)(46f * scmp);
                Rectangle waveBackground = Utils.CenteredRectangle(new Vector2(Main.screenWidth - offsetX - 100f, Main.screenHeight - offsetY - 23f), new Vector2(width, height));
                Utils.DrawInvBG(spriteBatch, waveBackground, new Color(63, 65, 151, 255) * 0.785f);
                float  cleared  = TideWorld.TidePoints2 / 80f;
                string waveText = "Cleared " + Math.Round(100 * cleared) + "%";
                Utils.DrawBorderString(spriteBatch, waveText, new Vector2(waveBackground.X + waveBackground.Width / 2, waveBackground.Y + 5), Color.White, scmp * 0.8f, 0.5f, -0.1f);
                Rectangle waveProgressBar    = Utils.CenteredRectangle(new Vector2(waveBackground.X + waveBackground.Width * 0.5f, waveBackground.Y + waveBackground.Height * 0.75f), new Vector2(progressColor.Width, progressColor.Height));
                Rectangle waveProgressAmount = new Rectangle(0, 0, (int)(progressColor.Width * MathHelper.Clamp(cleared, 0f, 1f)), progressColor.Height);
                Vector2   offset             = new Vector2((waveProgressBar.Width - (int)(waveProgressBar.Width * scmp)) * 0.5f, (waveProgressBar.Height - (int)(waveProgressBar.Height * scmp)) * 0.5f);
                spriteBatch.Draw(backGround1, waveProgressBar.Location.ToVector2() + offset, null, Color.White * alpha, 0f, new Vector2(0f), scmp, SpriteEffects.None, 0f);
                spriteBatch.Draw(backGround1, waveProgressBar.Location.ToVector2() + offset, waveProgressAmount, waveColor, 0f, new Vector2(0f), scmp, SpriteEffects.None, 0f);
                const int internalOffset    = 6;
                Vector2   descSize          = new Vector2(154, 40) * scmp;
                Rectangle barrierBackground = Utils.CenteredRectangle(new Vector2(Main.screenWidth - offsetX - 100f, Main.screenHeight - offsetY - 19f), new Vector2(width, height));
                Rectangle descBackground    = Utils.CenteredRectangle(new Vector2(barrierBackground.X + barrierBackground.Width * 0.5f, barrierBackground.Y - internalOffset - descSize.Y * 0.5f), descSize * .8f);
                Utils.DrawInvBG(spriteBatch, descBackground, descColor * alpha);
                int       descOffset = (descBackground.Height - (int)(32f * scmp)) / 2;
                Rectangle icon       = new Rectangle(descBackground.X + descOffset + 7, descBackground.Y + descOffset, (int)(32 * scmp), (int)(32 * scmp));
                spriteBatch.Draw(TideIcon, icon, Color.White);
                Utils.DrawBorderString(spriteBatch, customEventName, new Vector2(barrierBackground.X + barrierBackground.Width * 0.5f, barrierBackground.Y - internalOffset - descSize.Y * 0.5f), Color.White, 0.8f, 0.3f, 0.4f);
            }
        }