|
|
|
#pragma once
|
|
|
|
#include "dinkyecs.hpp"
|
|
|
|
#include "map.hpp"
|
|
|
|
#include "combat.hpp"
|
|
|
|
#include <deque>
|
|
|
|
#include "tser.hpp"
|
|
|
|
|
|
|
|
namespace components {
|
|
|
|
struct Player {
|
|
|
|
DinkyECS::Entity entity;
|
|
|
|
DEFINE_SERIALIZABLE(Player, entity);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Position {
|
|
|
|
Point location;
|
|
|
|
DEFINE_SERIALIZABLE(Position, location);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Motion {
|
|
|
|
int dx;
|
|
|
|
int dy;
|
|
|
|
DEFINE_SERIALIZABLE(Motion, dx, dy);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Treasure {
|
|
|
|
int amount;
|
|
|
|
DEFINE_SERIALIZABLE(Treasure, amount);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct Tile {
|
|
|
|
std::string chr = "!";
|
|
|
|
DEFINE_SERIALIZABLE(Tile, chr);
|
|
|
|
};
|
|
|
|
|
|
|
|
struct MapConfig {
|
|
|
|
std::string WALL_TILE;
|
|
|
|
std::string FLOOR_TILE;
|
|
|
|
std::string PLAYER_TILE;
|
|
|
|
std::string ENEMY_TILE;
|
|
|
|
std::string BG_TILE;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct EnemyConfig {
|
|
|
|
int HEARING_DISTANCE;
|
|
|
|
};
|
|
|
|
}
|