관리자가 아닙니다.
1턴"; foreach (Util::range(1, GameConst::$maxChiefTurn) as $turnIdx) { $turnText = $turnIdx + 1; $turnList[] = ""; } $turnText = join("\n", $turnList); return " "; } function templateLimitMsg(string $turntime): string { return "이미 너무 많은 접속을 하셨습니다. 다음 턴에 다시 시도해주세요. (턴시간: {$turntime})"; } function displayiActionObjInfo(?iAction $action) { if ($action === null) { $info = ''; $text = '-'; } else { $info = $action->getInfo(); $text = $action->getName(); } $templates = new \League\Plates\Engine(__DIR__ . '/templates'); return $templates->render('tooltip', [ 'text' => $text, 'info' => $info, ]); } function displayCharInfo(string $type): string { $class = buildPersonalityClass($type); $info = $class->getInfo(); $text = $class->getName(); $templates = new \League\Plates\Engine(__DIR__ . '/templates'); return $templates->render('tooltip', [ 'text' => $text, 'info' => $info, ]); } function displaySpecialWarInfo(?string $type): string { $class = buildGeneralSpecialWarClass($type); $info = $class->getInfo(); $name = $class->getName(); $templates = new \League\Plates\Engine(__DIR__ . '/templates'); return $templates->render('tooltip', [ 'text' => $name, 'info' => $info, ]); } function displaySpecialDomesticInfo(?string $type): string { $class = buildGeneralSpecialDomesticClass($type); $info = $class->getInfo(); $name = $class->getName(); $templates = new \League\Plates\Engine(__DIR__ . '/templates'); return $templates->render('tooltip', [ 'text' => $name, 'info' => $info, ]); } function allButton(bool $seizeNPCMode, array $opts = []) { if ($seizeNPCMode) { $site = "a_npcList.php"; $call = "빙의일람"; } else { $site = "v_vote.php"; $call = "설문조사"; } if (\file_exists(__DIR__ . "/d_setting/templates/allButton.php")) { $templates = new \League\Plates\Engine(__DIR__ . '/d_setting/templates'); } else { $templates = new \League\Plates\Engine(__DIR__ . '/templates'); } return $templates->render('allButton', array_merge([ 'call' => $call, 'site' => $site ], $opts)); } function commandButton(array $opts = []) { $session = Session::getInstance(); $userID = Session::getUserID(); if (!$session->isGameLoggedIn()) { return ''; } $db = DB::db(); $me = $db->queryFirstRow("select no,nation,officer_level,belong,permission,penalty from general where owner=%i", $userID); $nation = $db->queryFirstRow("select nation,level,color,secretlimit from nation where nation=%i", $me['nation']) ?? [ 'nation' => 0, 'level' => 0, 'secretlimit' => 99, 'color' => '#000000' ]; $bgColor = $nation['color'] ?? '#000000'; $fgColor = newColor($bgColor); $templates = new \League\Plates\Engine(__DIR__ . '/templates'); $showSecret = false; $permission = checkSecretPermission($me); $btnClassForTournament = $opts['btnClass']; if ($opts['isTournamentApplicationOpen']) { if ($btnClassForTournament != 'dropdown-item') { $btnClassForTournament = 'toolbarButton2'; } } $btnClassForBetting = $opts['btnClass']; if ($opts['isBettingActive']) { if ($btnClassForTournament != 'dropdown-item') { $btnClassForBetting = 'toolbarButton2'; } } if ($permission >= 1) { $showSecret = true; } else if ($me['officer_level'] == 0) { $showSecret = false; } return $templates->render('commandButton', array_merge([ 'bgColor' => $bgColor, 'fgColor' => $fgColor, 'meLevel' => $me['officer_level'], 'nationLevel' => $nation['level'], 'showSecret' => $showSecret, 'permission' => $permission, 'btnClassForTournament' => $btnClassForTournament, 'btnClassForBetting' => $btnClassForBetting, ], $opts)); } function formatWounded(int $value, int $wound): string { if ($wound == 0) { return "$value"; } $woundedValue = intdiv($value * (100 - $wound), 100); return "$woundedValue"; } function formatDefenceTrain(int $value): string { if ($value === 999) { return "×"; } else if ($value >= 90) { return "☆"; } else if ($value >= 80) { return "◎"; } else if ($value >= 60) { return "○"; } else { return "△"; } } function formatLeadershipBonus(int $value): string { if ($value == 0) { return ''; } return "+{$value}"; } function getMapTheme(): string { return GameConst::$mapName; } function getMapHtml(?string $mapName = null) { $templates = new \League\Plates\Engine(__DIR__ . '/templates'); if ($mapName === null) { $mapName = GameConst::$mapName; } return $templates->render('map', [ 'mapName' => $mapName ]); } function getInvitationList(array $nationList) { $templates = new \League\Plates\Engine(__DIR__ . '/templates'); foreach ($nationList as &$nation) { $nation['textColor'] = newColor($nation['color']); } return $templates->render('invitationList', [ 'nationList' => $nationList ]); } function getAutorunInfo($autorunOption) { $templates = new \League\Plates\Engine(__DIR__ . '/templates'); $auto_info = []; foreach ($autorunOption['options'] as $auto_option => $value) { assert($value); switch ($auto_option) { case 'develop': $auto_info['내정'] = '내정'; break; case 'warp': $auto_info['순간이동'] = '순간이동'; break; case 'recruit': $auto_info['징병'] = $auto_info['징병'] ?? '징병'; break; case 'recruit_high': $auto_info['징병'] = '모병'; break; case 'train': $auto_info['훈사'] = '훈련/사기진작'; break; case 'battle': $auto_info['출병'] = '출병'; break; case 'chief': $auto_info['사령턴'] = '사령턴'; break; } } $limit = Util::toInt($autorunOption['limit_minutes']); if ($limit >= 43200) { $auto_info['제한'] = '항상 유효'; } else if ($limit % 60 == 0) { $auto_info['제한'] = ($limit / 60) . '시간 유효'; } else { $auto_info['제한'] = ($limit) . '분 유효'; } $auto_info = join(', ', array_values($auto_info)); return $templates->render('tooltip', [ 'text' => '자율행동', 'info' => $auto_info, 'style' => 'text-decoration:underline', 'copyable_info' => true ]); }