Terraria v1.4.4.9
Terraria source code documentation
All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Events Macros

◆ DrawInterface_Resources_Breath()

static void Terraria.Main.DrawInterface_Resources_Breath ( )
inlinestaticprivate

Definition at line 40403 of file Main.cs.

40404 {
40405 bool flag = false;
40406 if (player[myPlayer].dead)
40407 {
40408 return;
40409 }
40410 if (player[myPlayer].lavaTime < player[myPlayer].lavaMax && player[myPlayer].lavaWet)
40411 {
40412 flag = true;
40413 }
40414 else if (player[myPlayer].lavaTime < player[myPlayer].lavaMax && player[myPlayer].breath == player[myPlayer].breathMax)
40415 {
40416 flag = true;
40417 }
40418 Vector2 vector = player[myPlayer].Top + new Vector2(0f, player[myPlayer].gfxOffY);
40419 if (playerInventory && screenHeight < 1000)
40420 {
40421 vector.Y += player[myPlayer].height - 20;
40422 }
40424 if (!playerInventory || screenHeight >= 1000)
40425 {
40426 vector.Y -= 100f;
40427 }
40428 vector /= UIScale;
40429 if (ingameOptionsWindow || InGameUI.IsVisible)
40430 {
40431 vector = new Vector2(screenWidth / 2, screenHeight / 2 + 236);
40432 if (InGameUI.IsVisible)
40433 {
40434 vector.Y = screenHeight - 64;
40435 }
40436 }
40437 if (player[myPlayer].breath < player[myPlayer].breathMax && !player[myPlayer].ghost && !flag)
40438 {
40439 _ = player[myPlayer].breathMax / 20;
40440 int num = 20;
40441 for (int i = 1; i < player[myPlayer].breathMax / num + 1; i++)
40442 {
40443 int num2 = 255;
40444 float num3 = 1f;
40445 if (player[myPlayer].breath >= i * num)
40446 {
40447 num2 = 255;
40448 }
40449 else
40450 {
40451 float num4 = (float)(player[myPlayer].breath - (i - 1) * num) / (float)num;
40452 num2 = (int)(30f + 225f * num4);
40453 if (num2 < 30)
40454 {
40455 num2 = 30;
40456 }
40457 num3 = num4 / 4f + 0.75f;
40458 if ((double)num3 < 0.75)
40459 {
40460 num3 = 0.75f;
40461 }
40462 }
40463 int num5 = 0;
40464 int num6 = 0;
40465 if (i > 10)
40466 {
40467 num5 -= 260;
40468 num6 += 26;
40469 }
40470 spriteBatch.Draw(TextureAssets.Bubble.Value, vector + new Vector2((float)(26 * (i - 1) + num5) - 125f, 32f + ((float)TextureAssets.Bubble.Height() - (float)TextureAssets.Bubble.Height() * num3) / 2f + (float)num6), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Bubble.Width(), TextureAssets.Bubble.Height()), new Microsoft.Xna.Framework.Color(num2, num2, num2, num2), 0f, default(Vector2), num3, SpriteEffects.None, 0f);
40471 }
40472 }
40473 if (!(player[myPlayer].lavaTime < player[myPlayer].lavaMax && !player[myPlayer].ghost && flag))
40474 {
40475 return;
40476 }
40477 int num7 = player[myPlayer].lavaMax / 10;
40478 _ = player[myPlayer].breathMax / num7;
40479 for (int j = 1; j < player[myPlayer].lavaMax / num7 + 1; j++)
40480 {
40481 int num8 = 255;
40482 float num9 = 1f;
40483 if (player[myPlayer].lavaTime >= j * num7)
40484 {
40485 num8 = 255;
40486 }
40487 else
40488 {
40489 float num10 = (float)(player[myPlayer].lavaTime - (j - 1) * num7) / (float)num7;
40490 num8 = (int)(30f + 225f * num10);
40491 if (num8 < 30)
40492 {
40493 num8 = 30;
40494 }
40495 num9 = num10 / 4f + 0.75f;
40496 if ((double)num9 < 0.75)
40497 {
40498 num9 = 0.75f;
40499 }
40500 }
40501 int num11 = 0;
40502 int num12 = 0;
40503 if (j > 10)
40504 {
40505 num11 -= 260;
40506 num12 += 26;
40507 }
40508 spriteBatch.Draw(TextureAssets.Flame.Value, vector + new Vector2((float)(26 * (j - 1) + num11) - 125f, 32f + ((float)TextureAssets.Flame.Height() - (float)TextureAssets.Flame.Height() * num9) / 2f + (float)num12), new Microsoft.Xna.Framework.Rectangle(0, 0, TextureAssets.Bubble.Width(), TextureAssets.Bubble.Height()), new Microsoft.Xna.Framework.Color(num8, num8, num8, num8), 0f, default(Vector2), num9, SpriteEffects.None, 0f);
40509 }
40510 }
static Asset< Texture2D > Bubble
static Asset< Texture2D > Flame
static bool ingameOptionsWindow
Definition Main.cs:704
static UserInterface InGameUI
Definition Main.cs:383
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static float UIScale
Definition Main.cs:2624
static int screenHeight
Definition Main.cs:1721
static Vector2 screenPosition
Definition Main.cs:1715
static SpriteViewMatrix GameViewMatrix
Definition Main.cs:227
static bool playerInventory
Definition Main.cs:1759
static int screenWidth
Definition Main.cs:1719
static Player[] player
Definition Main.cs:1803
static Vector2 Transform(Vector2 position, Matrix matrix)
Definition Vector2.cs:317

References Terraria.GameContent.TextureAssets.Bubble, Terraria.GameContent.TextureAssets.Flame, Terraria.Main.GameViewMatrix, System.Text.RegularExpressions.i, Terraria.Main.ingameOptionsWindow, Terraria.Main.InGameUI, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.playerInventory, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.screenWidth, Terraria.Main.spriteBatch, Microsoft.Xna.Framework.Vector2.Transform(), Terraria.Main.UIScale, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.Main.GUIBarsDrawInner().