#pragma once #include "dinkyecs.hpp" #include "devices.hpp" #include "combat.hpp" #include "inventory.hpp" #include "tser.hpp" #include "config.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; bool random=false; DEFINE_SERIALIZABLE(Motion, dx, dy); }; struct Loot { int amount; DEFINE_SERIALIZABLE(Loot, amount); }; struct Tile { std::string chr; DEFINE_SERIALIZABLE(Tile, chr); }; struct GameConfig { Config game; Config enemies; Config items; Config tiles; Config devices; }; struct EnemyConfig { int hearing_distance = 10; }; struct Debug { bool PATHS=false; bool LIGHT=false; }; struct Weapon { int damage = 0; }; struct Curative { int hp = 10; }; void configure(DinkyECS::World &world, DinkyECS::Entity entity, json& entity_data); }