96 lines
2.3 KiB
C++
96 lines
2.3 KiB
C++
#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<CharacterStatScene>();
|
|
}
|
|
|
|
void CreateCharacterScene::Release()
|
|
{
|
|
CoreScene::Release();
|
|
}
|