internal PlayerHUD(IHUDTheme theme, Player p, int xOffset, int yOffset) { #region Name Text name = new Text("player_name_" + p.Name, "Text", p.Name); name.DisplayColor = theme.TextColor; name.Pos = new Vector2(xOffset, yOffset); name.Static = true; #endregion #region HealthBar healthBar = new ProgressBar("Health_" + p.Name, p.MaxHealth, Color.DarkRed, Color.Firebrick, Color.Black, barSize); healthBar.Pos = new Vector2(xOffset, name.Pos.Y + name.GetAnimation().Height); healthBar.Static = true; healthBar.Value = p.MaxHealth; p.HealthChanged += delegate(object obj, int value) { healthBar.Value = value; if (value == 0) { name.DisplayColor = Color.Tomato; } else { name.DisplayColor = theme.TextColor; } }; #endregion #region ManaBar manaBar = new ProgressBar("Mana_" + p.Name, p.MaxMana, Color.MidnightBlue, Color.Blue, Color.Black, barSize); manaBar.Pos = new Vector2(xOffset, healthBar.Pos.Y + barSize.Y + barSpacing.Y); manaBar.Static = true; manaBar.Value = p.MaxMana; p.ManaChanged += delegate(object obj, int value) { manaBar.Value = value; }; #endregion #region Spell Queue spellQueue = new SpellQueue("Queue", theme, p); spellQueue.Pos = new Vector2(xOffset, healthBar.Pos.Y + barSize.Y + 2 * barSpacing.Y + barSize.Y); spellQueue.Static = true; #endregion }
internal SpellQueue(string name, IHUDTheme theme, Player player) : base(name, new Actor(new DummyAnimation(name, (int)HUD.barSize.X, (int)HUD.barSize.Y))) { ZOrder = 100; this.theme = theme; background = new Texture2D(This.Game.GraphicsDevice, 1, 1); background.SetData(new Color[] { theme.TransparentBackgroundColor }); this.player = player; }
internal void AddPlayer(Player p) { int xoffset = 80 + playerHUDS.Count * (int)(barSize.X + barSpacing.X); playerHUDS.Add(new PlayerHUD(theme, p, xoffset, 10)); }