Complete early roadmap foundation and calendar helpers
This commit is contained in:
@@ -21,6 +21,10 @@
|
||||
AAgrarianGameCharacter::AAgrarianGameCharacter()
|
||||
{
|
||||
PrimaryActorTick.bCanEverTick = true;
|
||||
bReplicates = true;
|
||||
SetReplicateMovement(true);
|
||||
SetNetUpdateFrequency(30.0f);
|
||||
SetMinNetUpdateFrequency(10.0f);
|
||||
|
||||
// Set size for collision capsule
|
||||
GetCapsuleComponent()->InitCapsuleSize(42.f, 96.0f);
|
||||
@@ -286,6 +290,7 @@ bool AAgrarianGameCharacter::CanSprint() const
|
||||
&& SurvivalComponent->IsAlive()
|
||||
&& !bIsProne
|
||||
&& !bIsCrouched
|
||||
&& SurvivalComponent->Survival.Exhaustion < 85.0f
|
||||
&& SurvivalComponent->Survival.Stamina > MinSprintStamina;
|
||||
}
|
||||
|
||||
@@ -329,7 +334,19 @@ void AAgrarianGameCharacter::SetProne(bool bNewProne)
|
||||
|
||||
void AAgrarianGameCharacter::SetTerrainMovementMultiplier(float NewTerrainMovementMultiplier)
|
||||
{
|
||||
TerrainMovementMultiplier = FMath::Clamp(NewTerrainMovementMultiplier, 0.25f, 1.25f);
|
||||
const float ClampedTerrainMovementMultiplier = FMath::Clamp(NewTerrainMovementMultiplier, 0.25f, 1.25f);
|
||||
if (!HasAuthority())
|
||||
{
|
||||
ServerSetTerrainMovementMultiplier(ClampedTerrainMovementMultiplier);
|
||||
return;
|
||||
}
|
||||
|
||||
if (FMath::IsNearlyEqual(TerrainMovementMultiplier, ClampedTerrainMovementMultiplier))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TerrainMovementMultiplier = ClampedTerrainMovementMultiplier;
|
||||
ApplyMovementSpeed();
|
||||
}
|
||||
|
||||
@@ -403,8 +420,16 @@ float AAgrarianGameCharacter::CalculateSurvivalMovementMultiplier() const
|
||||
FVector2D(0.0f, 100.0f),
|
||||
FVector2D(1.0f, 0.5f),
|
||||
Survival.InjurySeverity);
|
||||
const float SicknessMultiplier = FMath::GetMappedRangeValueClamped(
|
||||
FVector2D(0.0f, 100.0f),
|
||||
FVector2D(1.0f, 0.7f),
|
||||
Survival.SicknessSeverity);
|
||||
const float ExhaustionMultiplier = FMath::GetMappedRangeValueClamped(
|
||||
FVector2D(0.0f, 100.0f),
|
||||
FVector2D(1.0f, 0.55f),
|
||||
Survival.Exhaustion);
|
||||
|
||||
return HungerMultiplier * ThirstMultiplier * InjuryMultiplier;
|
||||
return HungerMultiplier * ThirstMultiplier * InjuryMultiplier * SicknessMultiplier * ExhaustionMultiplier;
|
||||
}
|
||||
|
||||
float AAgrarianGameCharacter::CalculateCarryWeightMovementMultiplier() const
|
||||
@@ -460,6 +485,11 @@ void AAgrarianGameCharacter::OnRep_ProneState()
|
||||
ApplyMovementSpeed();
|
||||
}
|
||||
|
||||
void AAgrarianGameCharacter::OnRep_MovementModifierState()
|
||||
{
|
||||
ApplyMovementSpeed();
|
||||
}
|
||||
|
||||
void AAgrarianGameCharacter::DoMove(float Right, float Forward)
|
||||
{
|
||||
if (GetController() != nullptr)
|
||||
@@ -585,6 +615,11 @@ void AAgrarianGameCharacter::ServerSetProne_Implementation(bool bNewProne)
|
||||
SetProne(bNewProne);
|
||||
}
|
||||
|
||||
void AAgrarianGameCharacter::ServerSetTerrainMovementMultiplier_Implementation(float NewTerrainMovementMultiplier)
|
||||
{
|
||||
SetTerrainMovementMultiplier(NewTerrainMovementMultiplier);
|
||||
}
|
||||
|
||||
void AAgrarianGameCharacter::ServerInteract_Implementation(AActor* TargetActor)
|
||||
{
|
||||
if (!TargetActor || !TargetActor->GetClass()->ImplementsInterface(UAgrarianInteractable::StaticClass()))
|
||||
|
||||
Reference in New Issue
Block a user