Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DrawInvasionProgress()

static void Terraria.Main.DrawInvasionProgress ( )
inlinestatic

Definition at line 44723 of file Main.cs.

44724 {
44725 if (invasionProgress == -1)
44726 {
44727 return;
44728 }
44730 {
44732 }
44734 {
44736 }
44738 {
44739 invasionProgressAlpha += 0.05f;
44740 }
44741 else
44742 {
44743 invasionProgressAlpha -= 0.05f;
44744 }
44745 if (invasionProgressMode == 0)
44746 {
44749 }
44750 if (invasionProgressAlpha < 0f)
44751 {
44753 }
44754 if (invasionProgressAlpha > 1f)
44755 {
44757 }
44758 if (invasionProgressAlpha <= 0f)
44759 {
44760 return;
44761 }
44762 float num = 0.5f + invasionProgressAlpha * 0.5f;
44764 string text = "";
44766 if (invasionProgressIcon == 1)
44767 {
44768 value = TextureAssets.Extra[8].Value;
44769 text = Lang.inter[83].Value;
44770 c = new Microsoft.Xna.Framework.Color(64, 109, 164) * 0.5f;
44771 }
44772 else if (invasionProgressIcon == 2)
44773 {
44774 value = TextureAssets.Extra[12].Value;
44775 text = Lang.inter[84].Value;
44776 c = new Microsoft.Xna.Framework.Color(112, 86, 114) * 0.5f;
44777 }
44778 else if (invasionProgressIcon == 3)
44779 {
44780 value = TextureAssets.Extra[79].Value;
44781 text = Language.GetTextValue("DungeonDefenders2.InvasionProgressTitle");
44782 c = new Microsoft.Xna.Framework.Color(88, 0, 160) * 0.5f;
44783 }
44784 else if (invasionProgressIcon == 7)
44785 {
44786 value = TextureAssets.Extra[10].Value;
44787 text = Lang.inter[85].Value;
44788 c = new Microsoft.Xna.Framework.Color(165, 160, 155) * 0.5f;
44789 }
44790 else if (invasionProgressIcon == 6)
44791 {
44792 value = TextureAssets.Extra[11].Value;
44793 text = Lang.inter[86].Value;
44794 c = new Microsoft.Xna.Framework.Color(148, 122, 72) * 0.5f;
44795 }
44796 else if (invasionProgressIcon == 5)
44797 {
44798 value = TextureAssets.Extra[7].Value;
44799 text = Lang.inter[87].Value;
44800 c = new Microsoft.Xna.Framework.Color(173, 135, 140) * 0.5f;
44801 }
44802 else if (invasionProgressIcon == 4)
44803 {
44804 value = TextureAssets.Extra[9].Value;
44805 text = Lang.inter[88].Value;
44806 c = new Microsoft.Xna.Framework.Color(94, 72, 131) * 0.5f;
44807 }
44808 if (invasionProgressWave > 0)
44809 {
44810 int num2 = (int)(200f * num);
44811 int num3 = (int)(45f * num);
44812 Vector2 vector = new Vector2(screenWidth - 120, screenHeight - 40);
44813 Utils.DrawInvBG(R: new Microsoft.Xna.Framework.Rectangle((int)vector.X - num2 / 2, (int)vector.Y - num3 / 2, num2, num3), sb: spriteBatch, c: new Microsoft.Xna.Framework.Color(63, 65, 151, 255) * 0.785f);
44814 string text2 = "";
44815 text2 = Language.GetTextValue(arg1: (invasionProgressMax != 0) ? ((int)((float)invasionProgress * 100f / (float)invasionProgressMax) + "%") : Language.GetTextValue("Game.InvasionPoints", invasionProgress), key: "Game.WaveMessage", arg0: invasionProgressWave);
44817 _ = TextureAssets.ColorBlip.Value;
44818 float num4 = MathHelper.Clamp((float)invasionProgress / (float)invasionProgressMax, 0f, 1f);
44819 if (invasionProgressMax == 0)
44820 {
44821 num4 = 1f;
44822 }
44823 float num5 = 169f * num;
44824 float num6 = 8f * num;
44825 Vector2 vector2 = vector + Vector2.UnitY * num6 + Vector2.UnitX * 1f;
44826 Utils.DrawBorderString(spriteBatch, text2, vector2, Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, num, 0.5f, 1f);
44827 spriteBatch.Draw(value2, vector, null, Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, 0f, new Vector2(value2.Width / 2, 0f), num, SpriteEffects.None, 0f);
44828 vector2 += Vector2.UnitX * (num4 - 0.5f) * num5;
44829 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector2, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), new Microsoft.Xna.Framework.Color(255, 241, 51) * invasionProgressAlpha, 0f, new Vector2(1f, 0.5f), new Vector2(num5 * num4, num6), SpriteEffects.None, 0f);
44830 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector2, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), new Microsoft.Xna.Framework.Color(255, 165, 0, 127) * invasionProgressAlpha, 0f, new Vector2(1f, 0.5f), new Vector2(2f, num6), SpriteEffects.None, 0f);
44831 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector2, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), Microsoft.Xna.Framework.Color.Black * invasionProgressAlpha, 0f, new Vector2(0f, 0.5f), new Vector2(num5 * (1f - num4), num6), SpriteEffects.None, 0f);
44832 }
44833 else
44834 {
44835 int num7 = (int)(200f * num);
44836 int num8 = (int)(45f * num);
44837 Vector2 vector3 = new Vector2(screenWidth - 120, screenHeight - 40);
44838 Utils.DrawInvBG(R: new Microsoft.Xna.Framework.Rectangle((int)vector3.X - num7 / 2, (int)vector3.Y - num8 / 2, num7, num8), sb: spriteBatch, c: new Microsoft.Xna.Framework.Color(63, 65, 151, 255) * 0.785f);
44839 string text3 = "";
44840 text3 = ((invasionProgressMax != 0) ? ((int)((float)invasionProgress * 100f / (float)invasionProgressMax) + "%") : invasionProgress.ToString());
44841 text3 = Language.GetTextValue("Game.WaveCleared", text3);
44843 _ = TextureAssets.ColorBlip.Value;
44844 if (invasionProgressMax != 0)
44845 {
44846 spriteBatch.Draw(value3, vector3, null, Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, 0f, new Vector2(value3.Width / 2, 0f), num, SpriteEffects.None, 0f);
44847 float num9 = MathHelper.Clamp((float)invasionProgress / (float)invasionProgressMax, 0f, 1f);
44848 Vector2 vector4 = FontAssets.MouseText.Value.MeasureString(text3);
44849 float num10 = num;
44850 if (vector4.Y > 22f)
44851 {
44852 num10 *= 22f / vector4.Y;
44853 }
44854 float num11 = 169f * num;
44855 float num12 = 8f * num;
44856 Vector2 vector5 = vector3 + Vector2.UnitY * num12 + Vector2.UnitX * 1f;
44857 Utils.DrawBorderString(spriteBatch, text3, vector5 + new Vector2(0f, -4f), Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, num10, 0.5f, 1f);
44858 vector5 += Vector2.UnitX * (num9 - 0.5f) * num11;
44859 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector5, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), new Microsoft.Xna.Framework.Color(255, 241, 51) * invasionProgressAlpha, 0f, new Vector2(1f, 0.5f), new Vector2(num11 * num9, num12), SpriteEffects.None, 0f);
44860 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector5, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), new Microsoft.Xna.Framework.Color(255, 165, 0, 127) * invasionProgressAlpha, 0f, new Vector2(1f, 0.5f), new Vector2(2f, num12), SpriteEffects.None, 0f);
44861 spriteBatch.Draw(TextureAssets.MagicPixel.Value, vector5, new Microsoft.Xna.Framework.Rectangle(0, 0, 1, 1), Microsoft.Xna.Framework.Color.Black * invasionProgressAlpha, 0f, new Vector2(0f, 0.5f), new Vector2(num11 * (1f - num9), num12), SpriteEffects.None, 0f);
44862 }
44863 }
44864 Vector2 vector6 = FontAssets.MouseText.Value.MeasureString(text);
44865 float num13 = 120f;
44866 if (vector6.X > 200f)
44867 {
44868 num13 += vector6.X - 200f;
44869 }
44870 Microsoft.Xna.Framework.Rectangle r3 = Utils.CenteredRectangle(new Vector2((float)screenWidth - num13, screenHeight - 80), (vector6 + new Vector2(value.Width + 12, 6f)) * num);
44871 Utils.DrawInvBG(spriteBatch, r3, c);
44872 spriteBatch.Draw(value, r3.Left() + Vector2.UnitX * num * 8f, null, Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, 0f, new Vector2(0f, value.Height / 2), num * 0.8f, SpriteEffects.None, 0f);
44873 Utils.DrawBorderString(spriteBatch, text, r3.Right() + Vector2.UnitX * num * -22f, Microsoft.Xna.Framework.Color.White * invasionProgressAlpha, num * 0.9f, 1f, 0.4f);
44874 }
static float Clamp(float value, float min, float max)
Definition MathHelper.cs:46
static Asset< DynamicSpriteFont > MouseText
Definition FontAssets.cs:10
static Asset< Texture2D >[] Extra
static Asset< Texture2D > ColorBlip
static Asset< Texture2D > MagicPixel
static Asset< Texture2D > ColorBar
static string GetTextValue(string key)
Definition Language.cs:15
static int invasionProgressIcon
Definition Main.cs:1986
static int invasionProgressDisplayLeft
Definition Main.cs:1994
static SpriteBatch spriteBatch
Definition Main.cs:974
static float invasionProgressAlpha
Definition Main.cs:1996
static int screenHeight
Definition Main.cs:1721
static bool invasionProgressNearInvasion
Definition Main.cs:1982
static int invasionProgressWave
Definition Main.cs:1992
static int invasionProgress
Definition Main.cs:1988
static int invasionProgressMode
Definition Main.cs:1984
static int screenWidth
Definition Main.cs:1719
static int invasionProgressMax
Definition Main.cs:1990
static bool gamePaused
Definition Main.cs:1072

References Terraria.Utils.CenteredRectangle(), Microsoft.Xna.Framework.MathHelper.Clamp(), Terraria.GameContent.TextureAssets.ColorBar, Terraria.GameContent.TextureAssets.ColorBlip, Terraria.Utils.DrawBorderString(), Terraria.Utils.DrawInvBG(), Terraria.GameContent.TextureAssets.Extra, Terraria.Main.gamePaused, Terraria.Localization.Language.GetTextValue(), Terraria.Lang.inter, Terraria.Main.invasionProgress, Terraria.Main.invasionProgressAlpha, Terraria.Main.invasionProgressDisplayLeft, Terraria.Main.invasionProgressIcon, Terraria.Main.invasionProgressMax, Terraria.Main.invasionProgressMode, Terraria.Main.invasionProgressNearInvasion, Terraria.Main.invasionProgressWave, System.key, Terraria.GameContent.TextureAssets.MagicPixel, Terraria.GameContent.FontAssets.MouseText, System.R, Terraria.Main.screenHeight, Terraria.Main.screenWidth, Terraria.Main.spriteBatch, System.text, System.value, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Color.White.

Referenced by Terraria.Main.DrawInterface_15_InvasionProgressBars().