|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
#include <map>
|
|
|
|
#include <array>
|
|
|
|
#include <sstream>
|
|
|
|
|
|
|
|
using std::string;
|
|
|
|
|
|
|
|
class GameEngine {
|
|
|
|
std::map<string, int> damage_types{
|
|
|
|
{"error", 4},
|
|
|
|
{"warning", 1},
|
|
|
|
{"note", 0},
|
|
|
|
};
|
|
|
|
|
|
|
|
public:
|
|
|
|
int starting_hp = 0;
|
|
|
|
int hit_points = 0;
|
|
|
|
int hits_taken = 0;
|
|
|
|
int rounds = 0;
|
|
|
|
int streak = 0;
|
|
|
|
|
|
|
|
GameEngine(int hp);
|
|
|
|
|
|
|
|
// FOUND BUG: I was accidentally copying this and shouldn't have been
|
|
|
|
GameEngine(GameEngine &g) = delete;
|
|
|
|
|
|
|
|
int determine_damage(string &type);
|
|
|
|
|
|
|
|
void start_round();
|
|
|
|
|
|
|
|
void end_round();
|
|
|
|
|
|
|
|
bool hit(string &type);
|
|
|
|
|
|
|
|
bool is_dead();
|
|
|
|
|
|
|
|
void heal();
|
|
|
|
|
|
|
|
void reset();
|
|
|
|
};
|