aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
Diffstat (limited to 'backend')
-rw-r--r--backend/TeleportConsumableObject.cpp10
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);
}