From 6cd937c1cbb0a80935fccd69fb992c5b0c1854b2 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Sat, 26 Mar 2022 21:14:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=82=AC=EB=A0=B9=EB=B6=80=20=ED=84=B4?= =?UTF-8?q?=20=EC=9E=85=EB=A0=A5=EA=B8=B0=EC=97=90=EB=8F=84=20=EC=9D=BC?= =?UTF-8?q?=EB=B0=98,=20=EA=B3=A0=EA=B8=89=20=EB=AA=A8=EB=93=9C=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../API/NationCommand/ReserveBulkCommand.php | 76 ++ hwe/scss/chiefCenter.scss | 1 - hwe/ts/ChiefCenter/TopItem.vue | 4 +- hwe/ts/PageChiefCenter.vue | 246 +---- hwe/ts/PartialReservedCommand.vue | 187 ++-- hwe/ts/SammoAPI.ts | 5 + hwe/ts/components/ChiefReservedCommand.vue | 877 ++++++++++++++---- hwe/ts/components/CommandSelectForm.vue | 80 +- hwe/v_chiefCenter.php | 5 + 9 files changed, 939 insertions(+), 542 deletions(-) create mode 100644 hwe/sammo/API/NationCommand/ReserveBulkCommand.php diff --git a/hwe/sammo/API/NationCommand/ReserveBulkCommand.php b/hwe/sammo/API/NationCommand/ReserveBulkCommand.php new file mode 100644 index 00000000..b8da199d --- /dev/null +++ b/hwe/sammo/API/NationCommand/ReserveBulkCommand.php @@ -0,0 +1,76 @@ +args as $idx => $turn) { + $v = new Validator($turn); + $v->rule('required', [ + 'action', + 'turnList' + ]) + ->rule('lengthMin', 'action', 1) + ->rule('integerArray', 'turnList'); + + if (!$v->validate()) { + return "{$idx}:{$v->errorStr()}"; + } + } + + return null; + } + + public function getRequiredSessionMode(): int + { + return static::REQ_GAME_LOGIN | static::REQ_READ_ONLY; + } + + public function launch(Session $session, ?DateTimeInterface $modifiedSince, ?string $reqEtag) + { + $briefList = []; + foreach ($this->args as $idx => $turn) { + $action = $turn['action']; + $turnList = $turn['turnList']; + $arg = $turn['arg'] ?? []; + + if (!$turnList) { + return "{$idx}: 턴이 입력되지 않았습니다"; + } + + if (!in_array($action, Util::array_flatten(GameConst::$availableChiefCommand))) { + return "{$idx}: 사용할 수 없는 커맨드입니다."; + } + + if (!is_array($arg)) { + return "{$idx}: 올바른 arg 형태가 아닙니다."; + } + $partialResult = setNationCommand($session->generalID, $turnList, $action, $arg); + if(!$partialResult['result']){ + return [ + 'result' => false, + 'briefList' => $briefList, + 'errorIdx' => $idx, + 'reason' => $partialResult['reason'] + ]; + } + $briefList[$idx] = $partialResult['brief']; + } + + return [ + 'result' => true, + 'briefList' => $briefList, + 'reason' => 'success' + ]; + } +} diff --git a/hwe/scss/chiefCenter.scss b/hwe/scss/chiefCenter.scss index f340adaa..5f3cfde8 100644 --- a/hwe/scss/chiefCenter.scss +++ b/hwe/scss/chiefCenter.scss @@ -109,7 +109,6 @@ $modcolor2: color.adjust($nbase2color, $lightness: -5%); width: 500px; height: 460px; margin: auto; - overflow: hidden; } #mainTable { diff --git a/hwe/ts/ChiefCenter/TopItem.vue b/hwe/ts/ChiefCenter/TopItem.vue index e1c9af4c..b6bf764e 100644 --- a/hwe/ts/ChiefCenter/TopItem.vue +++ b/hwe/ts/ChiefCenter/TopItem.vue @@ -38,13 +38,13 @@