Dragon-Knight/src/explore.php

38 lines
1.5 KiB
PHP
Raw Normal View History

<?php
// explore.php :: Handles all map exploring, chances to fight, etc.
function move()
{
global $userrow, $controlrow;
if ($userrow["currentaction"] == "Fighting") { redirect('/fight'); }
$latitude = $userrow["latitude"];
$longitude = $userrow["longitude"];
$form = validate($_POST, [
'direction' => ['in:north,west,east,south']
]);
if (!$form['valid']) display(ul_from_validate_errors($form['errors']), 'Move Error');
$d = $form['data']['direction'];
if ($d === 'north') { $latitude++; if ($latitude > $controlrow["gamesize"]) { $latitude = $controlrow["gamesize"]; } }
if ($d === 'south') { $latitude--; if ($latitude < ($controlrow["gamesize"]*-1)) { $latitude = ($controlrow["gamesize"]*-1); } }
if ($d === 'east') { $longitude++; if ($longitude > $controlrow["gamesize"]) { $longitude = $controlrow["gamesize"]; } }
if ($d === 'west') { $longitude--; if ($longitude < ($controlrow["gamesize"]*-1)) { $longitude = ($controlrow["gamesize"]*-1); } }
2024-12-12 10:20:49 -06:00
$town = get_town_by_xy($longitude, $latitude);
if ($town !== false) {
require_once __DIR__ . '/towns.php';
2024-12-12 10:20:49 -06:00
travelto($town['id'], false);
return;
}
$chancetofight = rand(1, 5);
$action = $chancetofight === 1 ? "currentaction='Fighting', currentfight='1'," : "currentaction='Exploring',";
db()->query("UPDATE users SET $action latitude = ?, longitude = ?, dropcode = 0 WHERE id = ?;", [$latitude, $longitude, $userrow['id']]);
redirect('/');
}