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; } } }
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); } }
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()); } } }