     float bucketsBehind = floor((x + separatorHalfWidth) / bucketWidth);
     float logicalX = ((x - separatorHalfWidth) - (bucketsBehind * separatorWidth)) / (bucketsNo * bucketInteriorWidth);
     float hpBarFunction = step(logicalX, health);
-    float alphaFunction = step(separatorHalfWidth, abs((bucketsBehind * bucketWidth) - x)) * step(logicalX, maxHp/(bucketsNo * hpPerBucket));
-    float lostHealthOverlay = alphaFunction * 0.2;
+    float alphaFunction = healthAlpha * step(separatorHalfWidth, abs((bucketsBehind * bucketWidth) - x)) * step(logicalX, maxHp/(bucketsNo * hpPerBucket));
+    float lostHealthOverlay = alphaFunction * lostHealthAlpha;
 
     float colorFunction = hpBarFunction * alphaFunction + lostHealthOverlay;
     gl_FragColor = vec4(circleFilter * healthColor * colorFunction, circleFilter * hpBarFunction * alphaFunction);

#define PI 3.1415926535897932384626433832795
precision mediump float;

varying vec2 vTextureCoord;


uniform mat3 magicMatrix;

// colors
const vec3 healthColor = vec3(0.6, 1.0, 0.6);
const float healthAlpha = 0.4;
const float lostHealthAlpha = 0.2;

// circle constants
const vec2 center = vec2(0.5, 0.5);
