Added commision objectives
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
// © 2025 Naked People Team. All Rights Reserved.
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "NakedDesire/Commissions/CommissionObjective.h"
|
||||
#include "MoveDistanceFromClothingObjective.generated.h"
|
||||
|
||||
class UDroppedClothingSubsystem;
|
||||
|
||||
// §13.4 MoveDistanceFromClothing(meters): reach RequiredMeters of separation from the nearest clothing
|
||||
// you left on the ground (UDroppedClothingSubsystem). Distance has no event, so the objective polls.
|
||||
// Never auto-satisfies when nothing has been dropped — there is nothing to move away from.
|
||||
//
|
||||
// ReachLocationAwayFromClothing(tag, meters) needs no new class: author this objective with a
|
||||
// ULocationConstraint, and the base ANDs the location gate into the satisfaction check.
|
||||
UCLASS(EditInlineNew, DisplayName = "Move Distance From Clothing")
|
||||
class NAKEDDESIRE_API UMoveDistanceFromClothingObjective : public UCommissionObjective
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
virtual FText GetDescription() const override;
|
||||
virtual float GetProgress() const override;
|
||||
|
||||
protected:
|
||||
virtual void OnActivate() override;
|
||||
virtual void OnDeactivate() override;
|
||||
virtual bool IsConditionMet() const override;
|
||||
|
||||
private:
|
||||
void Poll();
|
||||
UDroppedClothingSubsystem* GetDroppedClothing() const;
|
||||
|
||||
UPROPERTY(EditDefaultsOnly, meta = (ClampMin = 1))
|
||||
float RequiredMeters = 50.0f;
|
||||
|
||||
FTimerHandle PollTimer;
|
||||
};
|
||||
Reference in New Issue
Block a user