v0.8.0a: adjusted red flash effect when the hero is damaged

This commit is contained in:
Evan Debenham
2020-04-23 21:45:07 -04:00
parent 0390b3dbad
commit 4c7bf65742
@@ -1062,15 +1062,18 @@ public class Hero extends Char {
int preHP = HP + shielding(); int preHP = HP + shielding();
super.damage( dmg, src ); super.damage( dmg, src );
int effectiveDamage = preHP - (HP + shielding()); int postHP = HP + shielding();
int effectiveDamage = preHP - postHP;
//flash red when hit for 1/4 of your remaining HP or higher. //flash red when hit for serious damage.
// Intensity increases the more injured the player is. float percentDMG = effectiveDamage / (float)preHP; //percent of current HP that was taken
if (preHP > 0 && effectiveDamage >= preHP/4f){ float percentHP = 1 - ((HT - postHP) / (float)HT); //percent health after damage was taken
//08%/11%/16%/33% intensity at // The flash intensity increases primarily based on damage taken and secondarily on missing HP.
//75%/50%/25%/00% health float flashIntensity = 0.25f * (percentDMG * percentDMG) / percentHP;
float divisor = 3 + 12*((HP + shielding()) / (float)(HT + shielding())); //if the intensity is very low don't flash at all
GameScene.flash( (int)(0xFF/divisor) << 16 ); if (flashIntensity >= 0.05f){
flashIntensity = Math.min(1/3f, flashIntensity); //cap intensity at 1/3
GameScene.flash( (int)(0xFF*flashIntensity) << 16 );
} }
} }