Beispiel #1
0
        public override void draw(SpriteBatch sprite_batch, Vector2 draw_offset = default(Vector2))
        {
            if (texture != null)
            {
                if (visible)
                {
                    draw_offset -= draw_vector();
                    sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
                    // Name section
                    foreach (HUD_Component component in Name_Components)
                    {
                        component.draw(sprite_batch, texture, -1 * (Name_Loc - draw_offset));
                    }
                    foreach (TextSprite name in Names)
                    {
                        name.draw(sprite_batch, -1 * (Name_Loc - draw_offset));
                    }
                    // Main section
                    foreach (HUD_Component component in Components)
                    {
                        component.draw(sprite_batch, texture, -1 * (Base_Loc - draw_offset));
                    }
                    sprite_batch.End();
                    // Faces
                    foreach (Battle_Face_Sprite face in Faces)
                    {
                        face.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }

                    sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
                    // Stat BG
                    foreach (Battle_Stats_BG bg in Stat_BGs)
                    {
                        bg.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }
                    // Stats
                    foreach (RightAdjustedText stat in Stat_Imgs)
                    {
                        stat.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }
                    sprite_batch.End();
                    // Weapon Icons
                    foreach (Item_Icon_Sprite icon in Weapon_Icons)
                    {
                        icon.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }
                    sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, SamplerState.PointClamp, null, null);
                    // Weapon Names
                    foreach (TextSprite name in Weapon_Names)
                    {
                        name.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }
                    // Weapon Triangle Arrows
                    foreach (Weapon_Triangle_Arrow wta in WTAs)
                    {
                        wta.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }
                    // Attack Multipliers
                    foreach (Multiplier_Img mult in Mults)
                    {
                        mult.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    }

                    HP_Gauge_1.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    HP_Count_1.draw(sprite_batch, -1 * (Base_Loc - draw_offset));
                    if (HP_Gauge_2 != null)
                    {
                        HP_Gauge_2.draw(sprite_batch, (-1 * Base_Loc) + draw_offset);
                        HP_Count_2.draw(sprite_batch, (-1 * Base_Loc) + draw_offset);
                    }
                    sprite_batch.End();
                }
            }
        }