public override void draw(SpriteBatch sprite_batch)
        {
            if (is_onscreen_for_drawing)
            {
                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);
                Window_Img.draw(sprite_batch, new Vector2(3, 3) - draw_vector());
                draw_hp(sprite_batch);
                Name.draw(sprite_batch, -NAME_LOC);
                sprite_batch.End();
                Face.draw(sprite_batch);

                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);
                //Stats.draw(sprite_batch);
                sprite_batch.End();
            }
        }
        new protected virtual void draw_window(SpriteBatch sprite_batch)
        {
            if (Window_Img != null)
            {
                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend);
                // Window background
                Window_Img.draw(sprite_batch, -(loc + draw_vector()));
                sprite_batch.End();
            }

            Rectangle rect = scissor_rect();

            if (rect.Width > 0 && rect.Height > 0)
            {
                sprite_batch.GraphicsDevice.ScissorRectangle = rect;
                sprite_batch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend, null, null, Raster_State);
                draw_bar(sprite_batch);
                sprite_batch.End();
            }
        }