diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/TeleportConsumableObject.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/backend/TeleportConsumableObject.cpp b/backend/TeleportConsumableObject.cpp index 5fd4459..7d1803f 100644 --- a/backend/TeleportConsumableObject.cpp +++ b/backend/TeleportConsumableObject.cpp @@ -1,6 +1,14 @@ +#include "RNG.h" #include "TeleportConsumableObject.h" +#include "Player.h" +#include "Location.h" void TeleportConsumableObject::consume(Player & player) { - // TODO + unsigned hops = RNG::get().rand_int(this->get_potency()); + Location * location = &player.get_location(); + for (size_t i = 0; i < hops; i++) { + location = location->get_exit(random_direction(*location)); + } + player.set_location(*location); } |