Added commissions system

This commit is contained in:
2026-06-01 00:27:56 +03:00
parent a3e23393dc
commit 003d9992e2
81 changed files with 2418 additions and 1065 deletions
@@ -7,6 +7,7 @@
#include "SessionManagerSubsystem.generated.h"
class UStatsManager;
class ULocationData;
/**
* Why a session ended (GDD §4.4). SafeReturn is a non-loss end (player walked
@@ -33,6 +34,10 @@ DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnSessionEndSignature, ESessionLoss
* ALocationTrigger drives start / end; embarrassment-max and energy-zero are
* detected by subscribing to UStatsManager. This replaces the EndGameEmbarrassed
* Blueprint event on ANakedDesireGameMode.
*
* The apartment threshold is detected via ULocationSubsystem: a session starts when the player leaves
* a location tagged Location.Apartment and ends (SafeReturn) when they re-enter one. There is no
* per-trigger apartment flag — the apartment is just a tagged location.
*/
UCLASS()
class NAKEDDESIRE_API USessionManagerSubsystem : public UWorldSubsystem
@@ -42,10 +47,6 @@ class NAKEDDESIRE_API USessionManagerSubsystem : public UWorldSubsystem
public:
virtual void OnWorldBeginPlay(UWorld& InWorld) override;
// Called by the apartment ALocationTrigger as the player crosses the threshold.
void NotifyEnteredApartment();
void NotifyLeftApartment();
UFUNCTION(BlueprintPure, Category = "Session")
bool IsSessionActive() const { return bSessionActive; }
@@ -69,6 +70,12 @@ private:
void BindToPlayerStats();
UFUNCTION()
void HandleLocationEntered(ULocationData* Location);
UFUNCTION()
void HandleLocationExited(ULocationData* Location);
UFUNCTION()
void HandleEmbarrassmentUpdate(float CurrentValue, float MaxValue);