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

◆ DrawHealthBar()

void Terraria.Main.DrawHealthBar ( float X,
float Y,
int Health,
int MaxHealth,
float alpha,
float scale = 1f,
bool noFlip = false )
inline

Definition at line 20399 of file Main.cs.

20400 {
20401 if (Health <= 0)
20402 {
20403 return;
20404 }
20405 float num = (float)Health / (float)MaxHealth;
20406 if (num > 1f)
20407 {
20408 num = 1f;
20409 }
20410 int num2 = (int)(36f * num);
20411 float num3 = X - 18f * scale;
20412 float num4 = Y;
20413 if (player[myPlayer].gravDir == -1f && !noFlip)
20414 {
20415 num4 -= screenPosition.Y;
20416 num4 = screenPosition.Y + (float)screenHeight - num4;
20417 }
20418 float num5 = 0f;
20419 float num6 = 0f;
20420 float num7 = 0f;
20421 float num8 = 255f;
20422 num -= 0.1f;
20423 if ((double)num > 0.5)
20424 {
20425 num6 = 255f;
20426 num5 = 255f * (1f - num) * 2f;
20427 }
20428 else
20429 {
20430 num6 = 255f * num * 2f;
20431 num5 = 255f;
20432 }
20433 float num9 = 0.95f;
20434 num5 = num5 * alpha * num9;
20435 num6 = num6 * alpha * num9;
20436 num8 = num8 * alpha * num9;
20437 if (num5 < 0f)
20438 {
20439 num5 = 0f;
20440 }
20441 if (num5 > 255f)
20442 {
20443 num5 = 255f;
20444 }
20445 if (num6 < 0f)
20446 {
20447 num6 = 0f;
20448 }
20449 if (num6 > 255f)
20450 {
20451 num6 = 255f;
20452 }
20453 if (num8 < 0f)
20454 {
20455 num8 = 0f;
20456 }
20457 if (num8 > 255f)
20458 {
20459 num8 = 255f;
20460 }
20461 Microsoft.Xna.Framework.Color color = new Microsoft.Xna.Framework.Color((byte)num5, (byte)num6, (byte)num7, (byte)num8);
20462 if (num2 < 3)
20463 {
20464 num2 = 3;
20465 }
20466 if (num2 < 34)
20467 {
20468 if (num2 < 36)
20469 {
20470 spriteBatch.Draw(TextureAssets.Hb2.Value, new Vector2(num3 - screenPosition.X + (float)num2 * scale, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(2, 0, 2, TextureAssets.Hb2.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20471 }
20472 if (num2 < 34)
20473 {
20474 spriteBatch.Draw(TextureAssets.Hb2.Value, new Vector2(num3 - screenPosition.X + (float)(num2 + 2) * scale, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(num2 + 2, 0, 36 - num2 - 2, TextureAssets.Hb2.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20475 }
20476 if (num2 > 2)
20477 {
20478 spriteBatch.Draw(TextureAssets.Hb1.Value, new Vector2(num3 - screenPosition.X, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, num2 - 2, TextureAssets.Hb1.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20479 }
20480 spriteBatch.Draw(TextureAssets.Hb1.Value, new Vector2(num3 - screenPosition.X + (float)(num2 - 2) * scale, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(32, 0, 2, TextureAssets.Hb1.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20481 }
20482 else
20483 {
20484 if (num2 < 36)
20485 {
20486 spriteBatch.Draw(TextureAssets.Hb2.Value, new Vector2(num3 - screenPosition.X + (float)num2 * scale, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(num2, 0, 36 - num2, TextureAssets.Hb2.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20487 }
20488 spriteBatch.Draw(TextureAssets.Hb1.Value, new Vector2(num3 - screenPosition.X, num4 - screenPosition.Y), new Microsoft.Xna.Framework.Rectangle(0, 0, num2, TextureAssets.Hb1.Height()), color, 0f, new Vector2(0f, 0f), scale, SpriteEffects.None, 0f);
20489 }
20490 }
static Asset< Texture2D > Hb2
static Asset< Texture2D > Hb1
static SpriteBatch spriteBatch
Definition Main.cs:974
static int myPlayer
Definition Main.cs:1801
static int screenHeight
Definition Main.cs:1721
static Vector2 screenPosition
Definition Main.cs:1715
static Player[] player
Definition Main.cs:1803

References Terraria.GameContent.TextureAssets.Hb1, Terraria.GameContent.TextureAssets.Hb2, Terraria.Main.myPlayer, Terraria.Main.player, Terraria.Main.screenHeight, Terraria.Main.screenPosition, Terraria.Main.spriteBatch, Microsoft.Xna.Framework.Graphics.Vector2, System.X, and System.Y.

Referenced by Terraria.Main.DrawInterface_14_EntityHealthBars(), and Terraria.Main.DrawInterface_Healthbar_Worm().