41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace sammo;
|
|
|
|
if (PHP_SAPI !== 'cli') {
|
|
http_response_code(404);
|
|
exit;
|
|
}
|
|
|
|
chdir(dirname(__DIR__));
|
|
require_once 'lib.php';
|
|
require_once 'func.php';
|
|
|
|
$groups = [
|
|
'nation' => ['ActionNationType', 'ActionNationType'],
|
|
'domestic' => ['ActionSpecialDomestic', 'ActionSpecialDomestic'],
|
|
'war' => ['ActionSpecialWar', 'ActionSpecialWar'],
|
|
'personality' => ['ActionPersonality', 'ActionPersonality'],
|
|
];
|
|
|
|
$result = [];
|
|
foreach ($groups as $kind => [$directory, $namespace]) {
|
|
foreach (glob(__DIR__ . "/../sammo/{$directory}/*.php") ?: [] as $path) {
|
|
$key = basename($path, '.php');
|
|
if ($key === 'None' || str_starts_with($key, 'che_event_') || $key === 'che_거상') {
|
|
continue;
|
|
}
|
|
$className = "\\sammo\\{$namespace}\\{$key}";
|
|
$trait = new $className();
|
|
$result[$kind][$key] = [
|
|
'name' => $trait->getName(),
|
|
'info' => $trait->getInfo(),
|
|
];
|
|
}
|
|
ksort($result[$kind]);
|
|
}
|
|
|
|
echo Json::encode($result);
|