Пример #1
0
    public override void Draw()
    {
        GL.Enable(EnableCap.StencilTest);
        GL.Clear(ClearBufferMask.StencilBufferBit);

        GL.StencilFunc(StencilFunction.Always, 1, 0xff);
        GL.StencilOp(StencilOp.Keep, StencilOp.Keep, StencilOp.Replace);

        sprite.Color = new Color(1f, 1f, 1f, progress > 0 ? 0.3f : 0.1f);
        sprite.Draw(position, areaSize, 0f);

        GL.StencilFunc(StencilFunction.Equal, 1, 0xff);

        progressMesh.Reset();

        progressMesh.Translate(position);
        progressMesh.Translate(new Vector2(-0.5f, 0) * areaSize);
        progressMesh.Scale(new Vector2(progress, 1) * areaSize);

        progressMesh.Draw();

        GL.Disable(EnableCap.StencilTest);

        scrapBar.Draw(position, Color.White);
    }
Пример #2
0
	public override void Draw()
	{
		if (!IsAlive) return;

		sprite.Color = Color.Red;
		sprite.Draw(position, size, 0f);

		if (health < MaxHealth)
			healthBar.Draw(position, Color.Red);
	}
Пример #3
0
    public override void Draw()
    {
        if (!IsAlive && dieTimer.IsDone)
        {
            return;
        }

        //base.Draw();
        sprite.Draw();
        healthBar.Draw(position, Player.colorList[teamID]);
    }
Пример #4
0
    public void Draw()
    {
        if (!player.DodgeCooldown.IsDone)
        {
            dodgeBar.Draw(player.Position, player.Color);
        }

        if (!player.DashCooldown.IsDone)
        {
            dashBar.Draw(player.Position, player.Color);
        }

        #region Health
        healthBar.Draw(player.Position, new Color(1f, 0f, 0f, healthAlpha));
        #endregion

        #region Ammo
        if (player.Weapon != null)
        {
            int   maxAmmo = player.MaxAmmo;
            float dir     = 90f / (maxAmmo - 1);

            if (ammoAlpha > 0f && player.Weapon.ReloadProgress == -1)
            {
                ammoMesh.Color = new Color(1f, 1f, 1f, ammoAlpha);

                for (int i = 0; i < player.MaxAmmo; i++)
                {
                    float d = 90 + 45 - dir * i;

                    if (!ammoGainTimer.IsDone)
                    {
                        float f = TKMath.Exp(ammoGainTimer.PercentageDone);

                        Color c = new Color(1f, 1f, 1f, f);
                        ammoMesh.Color = c;

                        ammoMesh.Reset();

                        ammoMesh.Translate(player.Position);
                        ammoMesh.RotateZ(d);
                        ammoMesh.Translate(f * 2f, 0);
                        ammoMesh.Scale(0.4f, 0.15f);

                        ammoMesh.Draw();
                    }
                    else
                    {
                        ammoMesh.Color = new Color(1f, 1f, 1f, (i < player.Ammo ? 1f : 0.2f) * ammoAlpha);

                        ammoMesh.Reset();

                        ammoMesh.Translate(player.Position);
                        ammoMesh.RotateZ(d);
                        ammoMesh.Translate(2f, 0f);
                        ammoMesh.Scale(0.4f, 0.15f);

                        ammoMesh.Draw();
                    }
                }
            }

            if (player.Weapon.ReloadProgress != -1)
            {
                reloadBar.Draw(player.Position, Color.White);
            }

            if (player.Weapon.RearmProgress != -1 && player.Weapon.FireType == WeaponStats.FireType.SingleTimed)
            {
                rearmBar.Draw(player.Position, Color.White);
            }

            if (player.Weapon.Charge != 0 && player.Weapon.FireType == WeaponStats.FireType.Charge)
            {
                rearmBar.Draw(player.Position, Color.White);
            }

            if (!ammoUseTimer.IsDone)
            {
                float d = 90 + 45 - dir * ammoUseIndex;
                float f = 1f - TKMath.Exp(ammoUseTimer.PercentageDone, 10);

                Color c = new Color(1f, 1f, 1f, 1f - f);
                ammoMesh.Color = c;

                ammoMesh.Reset();

                ammoMesh.Translate(player.Position);
                ammoMesh.RotateZ(d);
                ammoMesh.Translate(2f, 0);
                ammoMesh.Scale(0.4f, 0.15f);
                ammoMesh.Scale(1 + f * 2f);

                ammoMesh.Draw();
            }
        }
        #endregion
    }