From 2c4d0070da168cad5a7de7166eccfa38e5d6fc99 Mon Sep 17 00:00:00 2001 From: Peisong Xiao Date: Thu, 11 Jul 2024 12:29:44 -0400 Subject: [PATCH] ready to merge some races --- src/characters.h | 14 ++------------ src/inventory.h | 10 ++++++++++ src/objects.h | 5 +++++ src/races.cc | 6 +++--- src/races.h | 2 +- src/room.cc | 1 + src/room.h | 6 ++++++ 7 files changed, 28 insertions(+), 16 deletions(-) create mode 100644 src/inventory.h create mode 100644 src/room.cc create mode 100644 src/room.h diff --git a/src/characters.h b/src/characters.h index 9962f7e..e8d2545 100644 --- a/src/characters.h +++ b/src/characters.h @@ -20,17 +20,7 @@ class character; // forward declaration extern RNG rng; // Note: player should not be in the character list -class character_list final: public layer { -private: - std::vector> characters; -public: - character_list(); - void print() const; - void print(display &display) const; - - std::vector>::const_iterator begin() const; - std::vector>::const_iterator end() const; -}; +typedef std::vector character_list; class character { public: @@ -45,7 +35,7 @@ public: virtual result move(const direction dir, const position_list &available_positions); virtual result attack(const direction dir, - const character_list &chlist) = 0; + character_list &chlist) = 0; virtual result move_or_attack(const direction dir, const position_list &available_positions, const character_list &chlist); diff --git a/src/inventory.h b/src/inventory.h new file mode 100644 index 0000000..00b572f --- /dev/null +++ b/src/inventory.h @@ -0,0 +1,10 @@ +#ifndef __INVENTORY_H__ +#define __INVENTORY_H__ + +class inventory final { +private: + object_list objects; + +}; + +#endif diff --git a/src/objects.h b/src/objects.h index e4ae59b..c2e0424 100644 --- a/src/objects.h +++ b/src/objects.h @@ -18,6 +18,11 @@ public: void print(display &display) {} }; +class object_list final: public layer { +private: + +}; + // TODO: throw potion into another header class potion final: public object { diff --git a/src/races.cc b/src/races.cc index 9594b3d..c6a639b 100644 --- a/src/races.cc +++ b/src/races.cc @@ -10,12 +10,12 @@ shade::shade(const position_list &available_positions): hostile = true; } -result shade::attack(const direction dir, const character_list &chlist) { +result shade::attack(const direction dir, character_list &chlist) { position tmp{pos + MOVE[dir]}; for (auto &ch : chlist) - if (tmp == ch->get_position()) { - return ch->get_hit(race, ATK, base_hitrate); + if (tmp == ch.get_position()) { + return ch.get_hit(race, ATK, base_hitrate); } return result::fine; diff --git a/src/races.h b/src/races.h index 0351a9e..682a57b 100644 --- a/src/races.h +++ b/src/races.h @@ -14,7 +14,7 @@ class shade final: public character { public: shade(const position_list &available_positions); // spawn at a random place virtual result attack(const direction dir, - const character_list &chlist) override; + character_list &chlist) override; virtual result get_hit(const enum race &race, const int atk, const float hitrate) override; }; diff --git a/src/room.cc b/src/room.cc new file mode 100644 index 0000000..fe6026a --- /dev/null +++ b/src/room.cc @@ -0,0 +1 @@ +#include "room.h" diff --git a/src/room.h b/src/room.h new file mode 100644 index 0000000..f0a7b58 --- /dev/null +++ b/src/room.h @@ -0,0 +1,6 @@ +#ifndef __ROOM_H__ +#define __ROOM_H__ + + + +#endif