Add bleeding survival placeholder
This commit is contained in:
@@ -65,6 +65,14 @@ void UAgrarianSurvivalComponent::TickComponent(float DeltaTime, ELevelTick TickT
|
||||
}
|
||||
}
|
||||
|
||||
if (Survival.BleedingSeverity > 0.0f)
|
||||
{
|
||||
const float BleedingRatio = Survival.BleedingSeverity / 100.0f;
|
||||
Survival.Health -= BleedingDamagePerMinute * BleedingRatio * Minutes;
|
||||
Survival.Exhaustion += BleedingExhaustionPerSecond * BleedingRatio * DeltaTime;
|
||||
CareHistory.InjuryBurden += BleedingRatio * 0.001f * DeltaTime;
|
||||
}
|
||||
|
||||
if (const UWorld* World = GetWorld())
|
||||
{
|
||||
if (const AAgrarianGameState* AgrarianGameState = World->GetGameState<AAgrarianGameState>())
|
||||
@@ -170,9 +178,11 @@ void UAgrarianSurvivalComponent::AddInjury(float Severity)
|
||||
{
|
||||
if (GetOwner() && GetOwner()->HasAuthority())
|
||||
{
|
||||
Survival.InjurySeverity += FMath::Max(0.0f, Severity);
|
||||
CareHistory.InjuryBurden += FMath::Max(0.0f, Severity) / 100.0f;
|
||||
Survival.Health -= Severity * 5.0f;
|
||||
const float PositiveSeverity = FMath::Max(0.0f, Severity);
|
||||
Survival.InjurySeverity += PositiveSeverity;
|
||||
Survival.BleedingSeverity += PositiveSeverity * 0.35f;
|
||||
CareHistory.InjuryBurden += PositiveSeverity / 100.0f;
|
||||
Survival.Health -= PositiveSeverity * 5.0f;
|
||||
ClampSurvival();
|
||||
ClampCareHistory();
|
||||
BroadcastSurvivalChanged();
|
||||
@@ -189,6 +199,29 @@ void UAgrarianSurvivalComponent::ReduceInjury(float Amount)
|
||||
}
|
||||
}
|
||||
|
||||
void UAgrarianSurvivalComponent::AddBleeding(float Severity)
|
||||
{
|
||||
if (GetOwner() && GetOwner()->HasAuthority())
|
||||
{
|
||||
const float PositiveSeverity = FMath::Max(0.0f, Severity);
|
||||
Survival.BleedingSeverity += PositiveSeverity;
|
||||
CareHistory.InjuryBurden += PositiveSeverity / 200.0f;
|
||||
ClampSurvival();
|
||||
ClampCareHistory();
|
||||
BroadcastSurvivalChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void UAgrarianSurvivalComponent::ReduceBleeding(float Amount)
|
||||
{
|
||||
if (GetOwner() && GetOwner()->HasAuthority())
|
||||
{
|
||||
Survival.BleedingSeverity -= FMath::Max(0.0f, Amount);
|
||||
ClampSurvival();
|
||||
BroadcastSurvivalChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void UAgrarianSurvivalComponent::AddSickness(float Severity)
|
||||
{
|
||||
if (GetOwner() && GetOwner()->HasAuthority())
|
||||
@@ -362,6 +395,7 @@ void UAgrarianSurvivalComponent::ClampSurvival()
|
||||
Survival.Thirst = FMath::Clamp(Survival.Thirst, 0.0f, 100.0f);
|
||||
Survival.BodyTemperature = FMath::Clamp(Survival.BodyTemperature, 30.0f, 42.0f);
|
||||
Survival.InjurySeverity = FMath::Clamp(Survival.InjurySeverity, 0.0f, 100.0f);
|
||||
Survival.BleedingSeverity = FMath::Clamp(Survival.BleedingSeverity, 0.0f, 100.0f);
|
||||
Survival.SicknessSeverity = FMath::Clamp(Survival.SicknessSeverity, 0.0f, 100.0f);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user