From 2b2df9947d471b945793cca6af68c6a9b37f9890 Mon Sep 17 00:00:00 2001 From: Skylar Ittner Date: Mon, 3 Oct 2016 22:37:25 -0600 Subject: [PATCH] Add place refill code --- refillplace.php | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 refillplace.php diff --git a/refillplace.php b/refillplace.php new file mode 100644 index 0000000..ec124ab --- /dev/null +++ b/refillplace.php @@ -0,0 +1,52 @@ +select('locations', ['locationid', 'teamid', 'owneruuid', 'currentlife', 'maxlife'], ['locationid' => $VARS['locationid']])[0]; +$user = $database->select('players', ['level', 'teamid', 'energy', 'maxenergy', 'latitude', 'longitude'], ['uuid' => $_SESSION['uuid']])[0]; + +// This (probably) shouldn't happen in normal play +if ($place['teamid'] != $user['teamid']) { + sendError("Wrong team!", true); +} + +if ($place['currentlife'] == 100) { + sendError("Full!", true); +} + +$userdrain = 5 * floor($user['level']); + +// Calculate resulting user HP +$userhp = $user['energy'] - $userdrain; +// Check if action possible +if ($userhp < 0) { + sendError("No life!", true); +} + +// Update the user's health and level +$exp = pow(pow(floor($user['level']) + 1, 2), -1.2); +$userlevel = $user['level'] + $exp; +// If the new level is a whole int bigger than the current +$dolevelup = false; +if (floor($userlevel) > floor($user['level'])) { + $dolevelup = true; + $newmaxhp = floor($userlevel) * 100; + $database->update('players', ['energy' => $newmaxhp, 'maxenergy' => $newmaxhp, 'level' => $userlevel], ['uuid' => $_SESSION['uuid']]); +} else { + $database->update('players', ['energy' => $userhp, 'level' => $userlevel], ['uuid' => $_SESSION['uuid']]); +} + +$placelife = $place['currentlife'] + 10; +if ($placelife > 100) { + $placelife = 100; +} + +// Update the place +$database->update('locations', ['currentlife' => $placelife, 'maxlife' => 100, 'owneruuid' => $_SESSION['uuid'], 'teamid' => $user['teamid']], ['locationid' => $VARS['locationid']]); + +sendOK(($dolevelup ? "Level up!" : "Refilled!"));