dragon-forks/controllers/site/help.php
2025-03-29 09:20:12 +01:00

197 lines
No EOL
6.2 KiB
PHP

<?php
/**
* Index from the help,
* Just show the different classname, difficulties and the size of the game.
*/
function index() {
global $renderer;
global $controlrow;
$renderer->prepare("class1name", $controlrow["class1name"]);
$renderer->prepare("class2name", $controlrow["class2name"]);
$renderer->prepare("class3name", $controlrow["class3name"]);
$renderer->prepare("diff1name", $controlrow["diff1name"]);
$renderer->prepare("diff2name", $controlrow["diff2name"]);
$renderer->prepare("diff3name", $controlrow["diff3name"]);
$renderer->prepare("diff1mod", $controlrow["diff1mod"]);
$renderer->prepare("diff2mod", $controlrow["diff2mod"]);
$renderer->prepare("diff3mod", $controlrow["diff3mod"]);
$renderer->prepare("gamesize", $controlrow["gamesize"]);
$renderer->display("help");
}
/**
* List all items for the help
*/
function items() {
global $renderer;
$itemsquery = doquery("SELECT * FROM {{table}} ORDER BY id", "items");
$items = [];
while ($itemsrow = mysqli_fetch_array($itemsquery)) {
switch ($itemsrow["type"]) {
case "1":
$image = "weapon";
$power = "Attack";
break;
case "2":
$image = "armor";
$power = "Defense";
break;
default:
$image = "shield";
$power = "Defense";
break;
}
if ($itemsrow["special"] != "X") {
$specialArray = explode(",", $itemsrow["special"]);
$attr = match ($specialArray[0]) {
"maxhp" => "Max HP",
"maxmp" => "Max MP",
"maxtp" => "Max TP",
"goldbonus" => "Gold Bonus (%)",
"expbonus" => "Experience Bonus (%)",
"strength" => "Strength",
"dexterity" => "Dexterity",
"attackpower" => "Attack Power",
"defensepower" => "Defense Power",
default => $specialArray[0],
};
$stat = ($specialArray[1] > 0) ? '+' . $specialArray[1] : $specialArray[1];
$specialEffect = "$attr $stat";
} else {
$specialEffect = "<span class=\"light\">None</span>";
}
$items[] = [
'image' => $image,
'name' => $itemsrow["name"],
'buycost' => $itemsrow["buycost"],
'attribute' => $itemsrow["attribute"],
'power' => $power,
'specialEffect' => $specialEffect,
];
}
$renderer->prepare('items', $items);
$renderer->display("help_items");
}
/**
* List all levels for the help
*/
function levels() {
global $renderer;
global $controlrow;
$classes = ['class1', 'class2', 'class3'];
$spellsquery = doquery("SELECT * FROM {{table}} ORDER BY id", "spells");
$levelsData = [];
$spells = [];
while ($spellsrow = mysqli_fetch_array($spellsquery)) {
$spells[$spellsrow["id"]] = $spellsrow;
}
//FIXME: Will be improved when classes will have their own table
foreach ($classes as $index => $class) {
$classIndex = $index + 1;
$levelquery = doquery("SELECT id,{$classIndex}_exp,{$classIndex}_hp,{$classIndex}_mp,{$classIndex}_tp,{$classIndex}_strength,{$classIndex}_dexterity,{$classIndex}_spells FROM {{table}} ORDER BY id", "levels");
$levels = [];
while ($levelsrow = mysqli_fetch_array($levelquery)) {
$spell = ($levelsrow["{$classIndex}_spells"] != 0) ? $spells[$levelsrow["{$classIndex}_spells"]]["name"] : "<span class=\"light\">None</span>";
if ($levelsrow["id"] < 100) {
$levels[] = [
'id' => $levelsrow["id"],
'exp' => number_format($levelsrow["{$classIndex}_exp"]),
'hp' => $levelsrow["{$classIndex}_hp"],
'mp' => $levelsrow["{$classIndex}_mp"],
'tp' => $levelsrow["{$classIndex}_tp"],
'strength' => $levelsrow["{$classIndex}_strength"],
'dexterity' => $levelsrow["{$classIndex}_dexterity"],
'spell' => $spell,
];
}
}
$levelsData[$class] = [
'name' => $controlrow["{$class}name"],
'levels' => $levels,
];
}
$renderer->prepare('levelsData', $levelsData);
$renderer->display("help_levels");
}
/**
* List all monsters for the help
*/
function monsters() {
global $renderer;
$monstersquery = doquery("SELECT * FROM {{table}} ORDER BY id", "monsters");
$monsters = [];
while ($monstersrow = mysqli_fetch_array($monstersquery)) {
if ($monstersrow["immune"] == 0) {
$immune = "<span class=\"light\">None</span>";
} elseif ($monstersrow["immune"] == 1) {
$immune = "Hurt";
} else {
$immune = "Hurt & Sleep";
}
$monsters[] = [
'name' => $monstersrow["name"],
'maxhp' => $monstersrow["maxhp"],
'maxdam' => $monstersrow["maxdam"],
'armor' => $monstersrow["armor"],
'level' => $monstersrow["level"],
'maxexp' => $monstersrow["maxexp"],
'maxgold' => $monstersrow["maxgold"],
'immune' => $immune,
];
}
$renderer->prepare('monsters', $monsters);
$renderer->display("help_monsters");
}
/**
* List all spells for the help
*/
function spells() {
global $renderer;
$spellsquery = doquery("SELECT * FROM {{table}} ORDER BY id", "spells");
$spells = [];
while ($spellrow = mysqli_fetch_array($spellsquery)) {
$type = match ($spellrow["type"]) {
"1" => "Heal",
"2" => "Hurt",
"3" => "Sleep",
"4" => "+Damage (%)",
"5" => "+Defense (%)",
default => "Unknown",
};
$spells[] = [
'color' => $color,
'name' => $spellrow["name"],
'cost' => $spellrow["mp"],
'type' => $type,
'attribute' => $spellrow["attribute"],
];
}
$renderer->prepare('spells', $spells);
$renderer->display("help_spells");
}