(d9829ac) v0.9.4.0
This commit is contained in:
@@ -95,6 +95,8 @@ namespace Barotrauma
|
||||
private const float UpdateDisplayedAfflictionsInterval = 0.5f;
|
||||
private List<Affliction> currentDisplayedAfflictions = new List<Affliction>();
|
||||
|
||||
public float DisplayedVitality, DisplayVitalityDelay;
|
||||
|
||||
public bool MouseOnElement
|
||||
{
|
||||
get { return highlightedLimbIndex > -1 || GUI.MouseOn == dropItemArea; }
|
||||
@@ -159,6 +161,8 @@ namespace Barotrauma
|
||||
|
||||
partial void InitProjSpecific(XElement element, Character character)
|
||||
{
|
||||
DisplayedVitality = MaxVitality;
|
||||
|
||||
if (strengthTexts == null)
|
||||
{
|
||||
strengthTexts = new string[]
|
||||
@@ -349,15 +353,17 @@ namespace Barotrauma
|
||||
|
||||
private void OnAttacked(Character attacker, AttackResult attackResult)
|
||||
{
|
||||
if (Math.Abs(attackResult.Damage) < 0.01f && attackResult.Afflictions.Count == 0) return;
|
||||
if (Math.Abs(attackResult.Damage) < 0.01f && attackResult.Afflictions.Count == 0) { return; }
|
||||
DamageOverlayTimer = MathHelper.Clamp(attackResult.Damage / MaxVitality, DamageOverlayTimer, 1.0f);
|
||||
if (healthShadowDelay <= 0.0f) healthShadowDelay = 1.0f;
|
||||
if (healthShadowDelay <= 0.0f) { healthShadowDelay = 1.0f; }
|
||||
|
||||
if (healthBarPulsateTimer <= 0.0f) healthBarPulsatePhase = 0.0f;
|
||||
if (healthBarPulsateTimer <= 0.0f) { healthBarPulsatePhase = 0.0f; }
|
||||
healthBarPulsateTimer = 1.0f;
|
||||
|
||||
float additionalIntensity = MathHelper.Lerp(0, 1, MathUtils.InverseLerp(0, 0.1f, attackResult.Damage / MaxVitality));
|
||||
damageIntensity = MathHelper.Clamp(damageIntensity + additionalIntensity, 0, 1);
|
||||
|
||||
DisplayVitalityDelay = 0.5f;
|
||||
}
|
||||
|
||||
private void UpdateAlignment()
|
||||
@@ -435,6 +441,35 @@ namespace Barotrauma
|
||||
uiScale = GUI.Scale;
|
||||
}
|
||||
|
||||
public void UpdateClientSpecific(float deltaTime)
|
||||
{
|
||||
if (GameMain.NetworkMember == null)
|
||||
{
|
||||
DisplayedVitality = Vitality;
|
||||
}
|
||||
else
|
||||
{
|
||||
DisplayVitalityDelay -= deltaTime;
|
||||
if (DisplayVitalityDelay <= 0.0f)
|
||||
{
|
||||
DisplayedVitality = Vitality;
|
||||
}
|
||||
}
|
||||
|
||||
if (damageIntensity > 0)
|
||||
{
|
||||
damageIntensity -= deltaTime * damageIntensityDropdownRate;
|
||||
if (damageIntensity < 0)
|
||||
{
|
||||
damageIntensity = 0;
|
||||
}
|
||||
}
|
||||
if (DamageOverlayTimer > 0.0f)
|
||||
{
|
||||
DamageOverlayTimer -= deltaTime;
|
||||
}
|
||||
}
|
||||
|
||||
partial void UpdateOxygenProjSpecific(float prevOxygen)
|
||||
{
|
||||
if (prevOxygen > 0.0f && OxygenAmount <= 0.0f &&
|
||||
@@ -492,20 +527,7 @@ namespace Barotrauma
|
||||
});
|
||||
updateDisplayedAfflictionsTimer = UpdateDisplayedAfflictionsInterval;
|
||||
}
|
||||
|
||||
if (DamageOverlayTimer > 0.0f)
|
||||
{
|
||||
DamageOverlayTimer -= deltaTime;
|
||||
}
|
||||
if (damageIntensity > 0)
|
||||
{
|
||||
damageIntensity -= deltaTime * damageIntensityDropdownRate;
|
||||
if (damageIntensity < 0)
|
||||
{
|
||||
damageIntensity = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (healthShadowDelay > 0.0f)
|
||||
{
|
||||
healthShadowDelay -= deltaTime;
|
||||
@@ -639,12 +661,12 @@ namespace Barotrauma
|
||||
}
|
||||
else
|
||||
{
|
||||
healthBar.Color = healthWindowHealthBar.Color = ToolBox.GradientLerp(Vitality / MaxVitality, Color.Red, Color.Orange, Color.Green);
|
||||
healthBar.Color = healthWindowHealthBar.Color = ToolBox.GradientLerp(DisplayedVitality / MaxVitality, Color.Red, Color.Orange, Color.Green);
|
||||
healthBar.HoverColor = healthWindowHealthBar.HoverColor = healthBar.Color * 2.0f;
|
||||
healthBar.BarSize = healthWindowHealthBar.BarSize =
|
||||
(Vitality > 0.0f) ?
|
||||
(MaxVitality > 0.0f ? Vitality / MaxVitality : 0.0f) :
|
||||
(Math.Abs(MinVitality) > 0.0f ? 1.0f - Vitality / MinVitality : 0.0f);
|
||||
(DisplayedVitality > 0.0f) ?
|
||||
(MaxVitality > 0.0f ? DisplayedVitality / MaxVitality : 0.0f) :
|
||||
(Math.Abs(MinVitality) > 0.0f ? 1.0f - DisplayedVitality / MinVitality : 0.0f);
|
||||
|
||||
if (healthBarPulsateTimer > 0.0f)
|
||||
{
|
||||
@@ -1446,6 +1468,9 @@ namespace Barotrauma
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CalculateVitality();
|
||||
DisplayedVitality = Vitality;
|
||||
}
|
||||
|
||||
partial void UpdateLimbAfflictionOverlays()
|
||||
|
||||
Reference in New Issue
Block a user