Access denied.
'; return; } $res = isset($_GET['res']) && ctype_digit((string)$_GET['res']) ? (int)$_GET['res'] : Heatmap::DEFAULT_RES; $days = isset($_GET['days']) && ctype_digit((string)$_GET['days']) ? (int)$_GET['days'] : Heatmap::DEFAULT_INACTIVE_DAYS; $data = Heatmap::grid(['res' => $res, 'inactive_days' => $days]); $tribeNames = Heatmap::tribeNames(); // Compact payload for the client: [cx,cy,villages,inactive,attacks,pop,dom,x0,y0,x1,y1] $payload = []; foreach ($data['cells'] as $c) { $payload[] = [$c['cx'], $c['cy'], $c['villages'], $c['inactive'], $c['attacks'], $c['pop'], $c['dom'], $c['x0'], $c['y0'], $c['x1'], $c['y1']]; } $js = [ 'res' => $data['res'], 'max' => $data['max'], 'cells' => $payload, 'tribeNames' => $tribeNames, ]; ?>Density overlays on the world grid to help with starting balance: where villages cluster, which tribes dominate a region, where inactive players sit (dead zones / good spawn spots), and where attacks are currently landing. North (+y) is up.