Complete early roadmap foundation and calendar helpers

This commit is contained in:
2026-05-15 21:41:37 -07:00
parent 6cd6729b7b
commit 8ee1f83b16
80 changed files with 3354 additions and 157 deletions
@@ -27,6 +27,9 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_Survival, Category = "Agrarian|Survival")
FAgrarianSurvivalSnapshot Survival;
UPROPERTY(EditAnywhere, BlueprintReadOnly, ReplicatedUsing = OnRep_CareHistory, Category = "Agrarian|Survival")
FAgrarianCareHistorySnapshot CareHistory;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float HungerDecayPerMinute = 0.55f;
@@ -36,6 +39,15 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float StaminaRecoveryPerSecond = 14.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float ExhaustionGainPerLowStaminaSecond = 0.35f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float ExhaustionRecoveryPerSecond = 0.08f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0", ClampMax = "100"))
float LowStaminaExhaustionThreshold = 20.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float StarvationDamagePerMinute = 3.0f;
@@ -45,6 +57,12 @@ public:
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float ColdDamagePerMinute = 4.0f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float SicknessDamagePerMinute = 1.5f;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "Agrarian|Survival|Rates", meta = (ClampMin = "0"))
float SicknessRecoveryPerSecond = 0.02f;
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
bool IsAlive() const;
@@ -66,13 +84,32 @@ public:
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddInjury(float Severity);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddSickness(float Severity);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void ReduceSickness(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void ApplySavedState(const FAgrarianSurvivalSnapshot& SavedSurvival, const FAgrarianCareHistorySnapshot& SavedCareHistory);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void SpendStamina(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void AddExhaustion(float Amount);
UFUNCTION(BlueprintCallable, Category = "Agrarian|Survival")
void ReduceExhaustion(float Amount);
protected:
UFUNCTION()
void OnRep_Survival();
UFUNCTION()
void OnRep_CareHistory();
void ClampSurvival();
void ClampCareHistory();
void BroadcastSurvivalChanged();
};