Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

135 righe
3.8 KiB

#include "src/class/player.hpp"
#include "src/class/monster.hpp"
#include "src/interface/battle.hpp"
#include "src/interface/creation.hpp"
#include "src/interface/info.hpp"
#include "src/system/betatest.hpp"
#include "src/system/memory.hpp"
#include "src/system/flag.hpp"
#include <iostream>
void printMenu();
void printMenu()
{
printf("===== HackTheGame v0.0.1 (Beta) =====\n");
printf("[1] Create new Character\n");
printf("[2] Character Info\n");
printf("[9] Credits\n");
printf("[0] Exit\n");
printf(">");
}
int main(int argc, char const *argv[])
{
Player *player;
Monster *enemy;
std::cout << "This game is still in closed beta\n"
<< "Please input your beta test code\n"
<< ">" << std::flush;
std::string betaCode;
std::cin >> betaCode;
if (BetaTest::check(betaCode))
{
std::cout << "Welcome back tester!\n"
<< "do you have your character backup code?\n"
<< "[y/N] " << std::flush;
char choice = 'n';
std::cin >> choice;
if (choice == 'Y' || choice == 'y')
{
std::cout << "Please input your backup code\n"
<< "> " << std::flush;
std::string code;
std::cin >> code;
player = Memory::loadFromCode(code);
if (player == nullptr)
{
std::cout << "Your backup code is invalid, please try again..." << std::endl;
return 1;
}
}
else
{
player = Creation::ofPlayer();
}
do
{
std::cout << "====== HackTheGame v0.0.2 (Closed Beta) =====\n"
<< "[1] Character Info\n"
<< "[2] Hunt Monster\n"
<< "[3] Fight Boss\n"
<< "[4] Rest\n"
<< "[9] Credits\n"
<< "[0] Exit\n"
<< ">" << std::flush;
choice = '0';
std::cin >> choice;
switch (choice)
{
case '1':
Info::ofPlayer(player);
break;
case '2':
enemy = Creation::ofMonster();
if (enemy != nullptr)
{
Battle::Start(player, enemy);
if (Battle::Lose())
{
std::cout << "GAME OVER !!!!" << std::endl;
return 0;
}
}
break;
case '3':
enemy = Creation::ofBoss();
if (enemy != nullptr)
{
Battle::Start(player, enemy);
if (Battle::Won())
{
Flag::Print();
}
else
{
std::cout << "GAME OVER !!!!" << std::endl;
return 0;
}
}
break;
case '4':
std::cout << "You take a rest at nearby Inn...\n"
<< "You wrote your journey to a diary in some cryptic language...\n"
<< Memory::saveToCode(player) << "\n"
<< "You woke up feeling resfreshed...\n"
<< std::flush;
player->restoreHP();
break;
case '9':
Info::ofApplication();
break;
case '0':
return 0;
break;
default:
printf("Not Implemented...\n");
}
} while (choice != 0);
}
else
{
std::cout << "Invalid code, exiting..." << std::endl;
return 0;
}
}