This commit is contained in:
koritsa
2026-05-17 22:44:49 +03:00
commit 0d90a0b02a
9071 changed files with 44364 additions and 0 deletions
@@ -0,0 +1,69 @@
// © 2025 Naked People Team. All Rights Reserved.
#include "MissionsManager.h"
#include "Mission.h"
#include "NakedDesire/Player/NakedDesireCharacter.h"
UMissionsManager::UMissionsManager()
{
PrimaryComponentTick.bCanEverTick = false;
}
void UMissionsManager::BeginPlay()
{
Super::BeginPlay();
Player = Cast<ANakedDesireCharacter>(GetOwner());
UE_LOG(LogTemp, Warning, TEXT("Player is NULL %s"), Player == nullptr ? TEXT("True") : TEXT("False"));
for (const auto& Mission : AvailableMissions)
{
Mission->Init(Player);
Mission->OnComplete.AddUObject(this, &UMissionsManager::CompleteMission);
}
}
void UMissionsManager::CompleteMission(UMission* Mission)
{
CompletedMissions.Add(Mission);
AvailableMissions.Remove(Mission);
OnMissionCompleted.Broadcast(Mission);
}
void UMissionsManager::CollectRewards()
{
if (CompletedMissions.IsEmpty())
{
return;
}
int TotalReward = 0;
for (const UMission* Mission : CompletedMissions)
{
TotalReward += Mission->GetMoneyReward();
}
Player->Money += TotalReward;
CompletedMissions.Empty();
OnRewardsCollected.Broadcast(TotalReward);
}
void UMissionsManager::RefreshDailyMissions(const TArray<UMission*>& NewMissions)
{
for (auto Mission : AvailableMissions)
{
Mission->OnComplete.RemoveAll(this);
AvailableMissions.Remove(Mission);
}
AvailableMissions.Append(NewMissions);
for (auto Mission : AvailableMissions)
{
Mission->Init(Player);
Mission->OnComplete.AddUObject(this, &UMissionsManager::CompleteMission);
}
}