From ace5c3f3093c50ff7fa6f8b281a377e3788abbd5 Mon Sep 17 00:00:00 2001 From: jacopograndi Date: Sun, 29 Aug 2021 13:57:41 +0200 Subject: adding techs --- game/gst.h | 46 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 39 insertions(+), 7 deletions(-) (limited to 'game/gst.h') diff --git a/game/gst.h b/game/gst.h index 340d596..ef6929a 100644 --- a/game/gst.h +++ b/game/gst.h @@ -1,17 +1,37 @@ #ifndef GST_H #define GST_H +#include +#include +#include #include +#include #include "ground.h" #include "entity.h" #include "tile.h" #include "player.h" +#include "tech.h" + +class Ability { + public: + Ability(std::string name) : name(name) {} + std::string name; +}; + +class Bonus { + public: + Bonus(float amt, int id, bool atk) : amt(amt), id(id), atk(atk) {} + float amt; int id; bool atk; + enum Id { ground, type, ability, tech }; +}; class Gst { public: Gst(int sx, int sy) : ground(sx, sy) {} + std::vector techs; + std::vector abilities; std::vector infos; std::vector tiles; std::vector entities; @@ -19,16 +39,28 @@ class Gst { std::vector players; + EntityInfo* get_info (std::string name); + EntityInfo* get_info (int id); + bool info_has_ability (EntityInfo* info, std::string name); + Entity& get_at (int x, int y); + + float get_type_bonus (Entity &atk, Entity &def); + std::vector get_bonuses (Entity &atk, Entity &def); + float get_damage (Entity &atk, Entity &def); + bool get_first_strike (Entity &atk, Entity &def); + void battle (Entity &atk, Entity &def); + void clear_dead(); + + std::vector get_possible_builds (Entity &ent); + + bool check_req_build(Entity &ent, EntityInfo *info); + + bool check_obstructed (Entity &ent); + int turn { 0 }; int day { 0 }; - void end_day () { - day++; - if (day >= players.size()) { - day = 0; - turn++; - } - } + void end_day (); }; #endif \ No newline at end of file -- cgit v1.2.3-54-g00ecf