Completed phase 1

This commit is contained in:
koritsa
2026-05-25 14:14:52 +03:00
committed by koritsa
parent b8b5ea25a8
commit 9b3d7b881f
22 changed files with 255 additions and 55 deletions
@@ -10,6 +10,7 @@
#include "NakedDesire/MissionBuilder/MissionsManager.h"
#include "NakedDesire/Player/NakedDesireCharacter.h"
#include "NakedDesire/SaveGame/GlobalSaveGameData.h"
#include "NakedDesire/SaveGame/SaveSubsystem.h"
void ANakedDesireGameMode::RestartGame()
{
@@ -23,7 +24,8 @@ AWardrobe* ANakedDesireGameMode::GetWardrobe() const
void ANakedDesireGameMode::BuyItem(UClothingItemInstance* ClothingItemInstance)
{
UGlobalSaveGameData* SaveGame = UGlobalSaveGameData::LoadGame();
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
UGlobalSaveGameData* SaveGame = SaveSubsystem->GetCurrentSave();
if (!SaveGame)
{
UE_LOG(LogTemp, Error, TEXT("ANakedDesireGameMode::BuyItem Couldn't load save game"));
@@ -31,19 +33,25 @@ void ANakedDesireGameMode::BuyItem(UClothingItemInstance* ClothingItemInstance)
}
if (SaveGame->Money < ClothingItemInstance->GetClothingItem()->BasePrice)
{
return;
}
SaveGame->Money -= ClothingItemInstance->GetClothingItem()->BasePrice;
Wardrobe->ClothingItems.Add(ClothingItemInstance);
Wardrobe->AddItem(ClothingItemInstance);
}
void ANakedDesireGameMode::OnHourChanged(int32 Hour)
{
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
UGlobalSaveGameData* SaveGame = SaveSubsystem->GetCurrentSave();
if (!SaveGame)
{
UE_LOG(LogTemp, Error, TEXT("ANakedDesireGameMode::BuyItem Couldn't load save game"));
return;
}
if (Hour == 4)
{
DaysPassed++;
SaveGame->DaysPassed++;
RefreshDailyMissions();
}
}
@@ -63,12 +71,12 @@ void ANakedDesireGameMode::BeginPlay()
void ANakedDesireGameMode::RefreshDailyMissions()
{
ANakedDesireCharacter* Player = Cast<ANakedDesireCharacter>(UGameplayStatics::GetPlayerCharacter(GetWorld(), 0));
const ANakedDesireCharacter* Player = Cast<ANakedDesireCharacter>(UGameplayStatics::GetPlayerCharacter(GetWorld(), 0));
if (!Player)
{
return;
}
int ClampedIndex = FMath::Clamp(DaysPassed, 0, MissionsConfig->DailyMissions.Num() - 1);
USaveSubsystem* SaveSubsystem = UGameplayStatics::GetGameInstance(GetWorld())->GetSubsystem<USaveSubsystem>();
int ClampedIndex = FMath::Clamp(SaveSubsystem->GetCurrentSave()->DaysPassed , 0, MissionsConfig->DailyMissions.Num() - 1);
Player->MissionsManager->RefreshDailyMissions(MissionsConfig->DailyMissions[ClampedIndex].Missions);
}