#include "CreateCharacterScene.h" #include "GameInstance.h" #include "CharacterStatScene.h" #include "Core/Subsystems/SceneManager.h" #include "Core/Subsystems/GameInputSystem.h" #include "Core/Subsystems/GameDataManager.h" #include "Data/Literals/Literals.h" #include "Game/Characters/Player/Player.h" void PrintStatus(const std::string& Name, int Stat[]) { std::cout << "====================================" << "\n"; std::cout << Name << " 의" << "현재 능력치" << "\n"; std::cout << "====================================" << "\n"; std::cout << "HP: " << Stat[0] << "\t" << "MP: " << Stat[1] << "\n"; std::cout << "공격력: " << Stat[2] << "\t" << "방어력: " << Stat[3] << "\n"; std::cout << "====================================" << "\n"; } void CreateStat(const std::string& Title, const std::string& ErrorMsg, int& Out1, int& Out2, int Max1, int Max2) { while (true) { GInput << Title; std::string buffer; if (!(GInput >> Out1 >> Out2)) { GInput.Reset(); continue; } bool IsValid = (Out1 < Max1 || Out2 < Max2); if (IsValid) { std::cout << ErrorMsg << "\n"; continue; } break; } } CreateCharacterScene::CreateCharacterScene(GameSceneManager* InOwner) : CoreScene(InOwner) { bEnableTick = false; } CreateCharacterScene::~CreateCharacterScene() { } void CreateCharacterScene::Enter() { CoreScene::Enter(); std::string PlayerName; const int Size = 4; int Stat[Size] = {0}; GInput << "용사의 이름을 입력하세요: "; GInput >> PlayerName; CreateStat(Game::CreateCharacter::SelectVitality, Game::CreateCharacter::ErrorVitality, Stat[0], Stat[1], Game::CreateCharacter::MaxHP, Game::CreateCharacter::MaxMP); CreateStat(Game::CreateCharacter::SelectCombatStats, Game::CreateCharacter::ErrorCombatStats, Stat[2], Stat[3], Game::CreateCharacter::MaxPower, Game::CreateCharacter::MaxDefence); auto Data = GInst->GetGameDataManager()->GetPlayerData(); *Data = PlayerStatData(PlayerName, "", 0, Stat[0], Stat[1], Stat[2], Stat[3]); GInput << "\n"; PrintStatus(PlayerName, Stat); system("pause"); Exit(); } void CreateCharacterScene::Update() { } void CreateCharacterScene::Exit() { system("cls"); Owner->TransitionTo(); } void CreateCharacterScene::Release() { CoreScene::Release(); }