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

◆ DrawLife()

void Terraria.GameContent.UI.ResourceSets.ClassicPlayerResourcesDisplaySet.DrawLife ( )
inlineprivate

Definition at line 33 of file ClassicPlayerResourcesDisplaySet.cs.

34 {
35 Player localPlayer = Main.LocalPlayer;
36 SpriteBatch spriteBatch = Main.spriteBatch;
37 Color color = new Color(Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor, Main.mouseTextColor);
39 if (localPlayer.ghost)
40 {
41 return;
42 }
43 int num = localPlayer.statLifeMax / 20;
44 int num2 = (localPlayer.statLifeMax - 400) / 5;
45 if (num2 < 0)
46 {
47 num2 = 0;
48 }
49 if (num2 > 0)
50 {
51 num = localPlayer.statLifeMax / (20 + num2 / 4);
52 UIDisplay_LifePerHeart = (float)localPlayer.statLifeMax / 20f;
53 }
54 int num3 = localPlayer.statLifeMax2 - localPlayer.statLifeMax;
55 UIDisplay_LifePerHeart += num3 / num;
56 int num4 = (int)((float)localPlayer.statLifeMax2 / UIDisplay_LifePerHeart);
57 if (num4 >= 10)
58 {
59 num4 = 10;
60 }
61 string text = Lang.inter[0].Value + " " + localPlayer.statLifeMax2 + "/" + localPlayer.statLifeMax2;
62 Vector2 vector = FontAssets.MouseText.Value.MeasureString(text);
63 if (!localPlayer.ghost)
64 {
65 DynamicSpriteFontExtensionMethods.DrawString(spriteBatch, FontAssets.MouseText.Value, Lang.inter[0].Value, new Vector2((float)(500 + 13 * num4) - vector.X * 0.5f + (float)UI_ScreenAnchorX, 6f), color, 0f, default(Vector2), 1f, SpriteEffects.None, 0f);
66 DynamicSpriteFontExtensionMethods.DrawString(spriteBatch, FontAssets.MouseText.Value, localPlayer.statLife + "/" + localPlayer.statLifeMax2, new Vector2((float)(500 + 13 * num4) + vector.X * 0.5f + (float)UI_ScreenAnchorX, 6f), color, 0f, new Vector2(FontAssets.MouseText.Value.MeasureString(localPlayer.statLife + "/" + localPlayer.statLifeMax2).X, 0f), 1f, SpriteEffects.None, 0f);
67 }
68 for (int i = 1; i < (int)((float)localPlayer.statLifeMax2 / UIDisplay_LifePerHeart) + 1; i++)
69 {
70 int num5 = 255;
71 float num6 = 1f;
72 bool flag = false;
73 if ((float)localPlayer.statLife >= (float)i * UIDisplay_LifePerHeart)
74 {
75 num5 = 255;
76 if ((float)localPlayer.statLife == (float)i * UIDisplay_LifePerHeart)
77 {
78 flag = true;
79 }
80 }
81 else
82 {
83 float num7 = ((float)localPlayer.statLife - (float)(i - 1) * UIDisplay_LifePerHeart) / UIDisplay_LifePerHeart;
84 num5 = (int)(30f + 225f * num7);
85 if (num5 < 30)
86 {
87 num5 = 30;
88 }
89 num6 = num7 / 4f + 0.75f;
90 if ((double)num6 < 0.75)
91 {
92 num6 = 0.75f;
93 }
94 if (num7 > 0f)
95 {
96 flag = true;
97 }
98 }
99 if (flag)
100 {
101 num6 += Main.cursorScale - 1f;
102 }
103 int num8 = 0;
104 int num9 = 0;
105 if (i > 10)
106 {
107 num8 -= 260;
108 num9 += 26;
109 }
110 int a = (int)((double)num5 * 0.9);
111 if (!localPlayer.ghost)
112 {
113 if (num2 > 0)
114 {
115 num2--;
116 spriteBatch.Draw(TextureAssets.Heart2.Value, new Vector2(500 + 26 * (i - 1) + num8 + UI_ScreenAnchorX + TextureAssets.Heart.Width() / 2, 32f + ((float)TextureAssets.Heart.Height() - (float)TextureAssets.Heart.Height() * num6) / 2f + (float)num9 + (float)(TextureAssets.Heart.Height() / 2)), new Rectangle(0, 0, TextureAssets.Heart.Width(), TextureAssets.Heart.Height()), new Color(num5, num5, num5, a), 0f, new Vector2(TextureAssets.Heart.Width() / 2, TextureAssets.Heart.Height() / 2), num6, SpriteEffects.None, 0f);
117 }
118 else
119 {
120 spriteBatch.Draw(TextureAssets.Heart.Value, new Vector2(500 + 26 * (i - 1) + num8 + UI_ScreenAnchorX + TextureAssets.Heart.Width() / 2, 32f + ((float)TextureAssets.Heart.Height() - (float)TextureAssets.Heart.Height() * num6) / 2f + (float)num9 + (float)(TextureAssets.Heart.Height() / 2)), new Rectangle(0, 0, TextureAssets.Heart.Width(), TextureAssets.Heart.Height()), new Color(num5, num5, num5, a), 0f, new Vector2(TextureAssets.Heart.Width() / 2, TextureAssets.Heart.Height() / 2), num6, SpriteEffects.None, 0f);
121 }
122 }
123 }
124 }
void Draw(Texture2D texture, Vector2 position, Color color)
static void DrawString(this SpriteBatch spriteBatch, DynamicSpriteFont spriteFont, string text, Vector2 position, Color color)

References Microsoft.Xna.Framework.Graphics.Color, Microsoft.Xna.Framework.Graphics.SpriteBatch.Draw(), ReLogic.Graphics.DynamicSpriteFontExtensionMethods.DrawString(), Terraria.Player.ghost, Terraria.GameContent.TextureAssets.Heart, Terraria.GameContent.TextureAssets.Heart2, Terraria.Lang.inter, Terraria.Main.LocalPlayer, Terraria.GameContent.FontAssets.MouseText, Terraria.Main.mouseTextColor, Terraria.Main.spriteBatch, Terraria.Player.statLife, Terraria.Player.statLifeMax, Terraria.Player.statLifeMax2, Terraria.GameContent.UI.ResourceSets.ClassicPlayerResourcesDisplaySet.UI_ScreenAnchorX, Terraria.GameContent.UI.ResourceSets.ClassicPlayerResourcesDisplaySet.UIDisplay_LifePerHeart, Microsoft.Xna.Framework.Graphics.Vector2, and Microsoft.Xna.Framework.Vector2.X.

Referenced by Terraria.GameContent.UI.ResourceSets.ClassicPlayerResourcesDisplaySet.Draw().