Добавлена система NPC, а также боевая система.

This commit is contained in:
DeLiss
2026-06-11 12:45:30 +05:00
parent 5d4940f754
commit f0a928938b
19 changed files with 427 additions and 19 deletions

48
include/npc.h Normal file
View File

@@ -0,0 +1,48 @@
#pragma once
#include <string>
#include <vector>
#include "point.h"
enum class NPCState {
Friendly,
Hostile
};
enum class DialogResultType {
GiveItem,
BecomeHostile,
OpenLocation,
Fight,
Nothing
};
struct DialogOption {
std::string text;
DialogResultType result = DialogResultType::Nothing;
int value = 0;
std::string message;
};
class NPC {
public:
int id = 0;
std::string name;
NPCState state = NPCState::Friendly;
int hp = 100;
int damage = 10;
Point position;
std::string dialogText;
std::vector<DialogOption> options;
bool defeated = false;
bool loadFromFile(const std::string& path);
private:
NPCState parseState(const std::string& value);
DialogResultType parseDialogResult(const std::string& value);
};