Пример #1
0
 public override void HitEffect(int hitDirection, double damage)
 {
     if (npc.life <= 0)
     {
         BloomPlayer modPlayer = Main.player[Main.myPlayer].GetModPlayer <BloomPlayer>(mod);
         if (BloomWorld.TheBloom)
         {
             BloomWorld.bloomPoints1 += 2;
         }
     }
 }
Пример #2
0
        public override void ModifyInterfaceLayers(List <GameInterfaceLayer> layers)
        {
            BloomPlayer modPlayer1 = Main.player[Main.myPlayer].GetModPlayer <BloomPlayer>();

            if (BloomWorld.TheBloom)
            {
                int index = layers.FindIndex(layer => layer.Name.Equals("Vanilla: Inventory"));
                LegacyGameInterfaceLayer bloomProgress = new LegacyGameInterfaceLayer("Emperia: Invasion2",
                                                                                      delegate
                {
                    DrawBloom(Main.spriteBatch);
                    return(true);
                },
                                                                                      InterfaceScaleType.UI);
                layers.Insert(index, bloomProgress);
            }
        }
Пример #3
0
        public void DrawBloom(SpriteBatch spriteBatch)
        {
            BloomPlayer modPlayer1 = Main.player[Main.myPlayer].GetModPlayer <BloomPlayer>();

            if (BloomWorld.TheBloom && !Main.gameMenu)
            {
                float        scaleMultiplier  = 0.5f + 1 * 0.5f;
                float        alpha            = 0.5f;
                Texture2D    progressBg       = Main.colorBarTexture;
                Texture2D    progressColor    = Main.colorBarTexture;
                Texture2D    bloomIcon        = Emperia.instance.GetTexture("Bloom/Icon");
                const string bloomDescription = "The Bloom";
                Color        descColor        = new Color(77, 39, 135);

                Color waveColor    = new Color(255, 241, 51);
                Color barrierColor = new Color(255, 241, 51);

                try
                {
                    //draw the background for the waves counter
                    const int offsetX        = 20;
                    const int offsetY        = 20;
                    int       width          = (int)(200f * scaleMultiplier);
                    int       height         = (int)(46f * scaleMultiplier);
                    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);

                    //draw wave text

                    string waveText = "Cleared " + BloomWorld.bloomPoints1 + "%";
                    Utils.DrawBorderString(spriteBatch, waveText, new Vector2(waveBackground.X + waveBackground.Width / 2, waveBackground.Y + 5), Color.White, scaleMultiplier * 0.8f, 0.5f, -0.1f);

                    //draw the progress bar



                    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 * 0.01f * MathHelper.Clamp(BloomWorld.bloomPoints1, 0f, 100f)), progressColor.Height);
                    Vector2   offset             = new Vector2((waveProgressBar.Width - (int)(waveProgressBar.Width * scaleMultiplier)) * 0.5f, (waveProgressBar.Height - (int)(waveProgressBar.Height * scaleMultiplier)) * 0.5f);


                    spriteBatch.Draw(progressBg, waveProgressBar.Location.ToVector2() + offset, null, Color.White * alpha, 0f, new Vector2(0f), scaleMultiplier, SpriteEffects.None, 0f);
                    spriteBatch.Draw(progressBg, waveProgressBar.Location.ToVector2() + offset, waveProgressAmount, waveColor, 0f, new Vector2(0f), scaleMultiplier, SpriteEffects.None, 0f);

                    //draw the icon with the event description

                    //draw the background
                    const int internalOffset    = 6;
                    Vector2   descSize          = new Vector2(154, 40) * scaleMultiplier;
                    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);

                    //draw the icon
                    int       descOffset = (descBackground.Height - (int)(32f * scaleMultiplier)) / 2;
                    Rectangle icon       = new Rectangle(descBackground.X + descOffset + 7, descBackground.Y + descOffset, (int)(32 * scaleMultiplier), (int)(32 * scaleMultiplier));
                    spriteBatch.Draw(bloomIcon, icon, Color.White);

                    //draw text

                    Utils.DrawBorderString(spriteBatch, bloomDescription, new Vector2(barrierBackground.X + barrierBackground.Width * 0.5f, barrierBackground.Y - internalOffset - descSize.Y * 0.5f), Color.White, 0.8f, 0.3f, 0.4f);
                }
                catch (Exception e)
                {
                    ErrorLogger.Log(e.ToString());
                }
            }
        }