From 15b2c8b8e6a57bb957ab438e234d8eeb2e7cfbe5 Mon Sep 17 00:00:00 2001 From: Hide_D Date: Fri, 6 Dec 2024 18:12:24 +0000 Subject: [PATCH] =?UTF-8?q?game:=20=EC=9E=AC=EC=95=BC=20=EC=9D=98=EC=88=A0?= =?UTF-8?q?=EC=9E=A5=EC=9D=80=20=EA=B5=AD=EA=B0=80=20=EC=9E=A5=EC=88=98?= =?UTF-8?q?=EB=A5=BC=20=EC=B9=98=EB=A3=8C=ED=95=98=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EC=9D=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/sammo/GeneralTrigger/che_도시치료.php | 52 +++++++++++++++-------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/hwe/sammo/GeneralTrigger/che_도시치료.php b/hwe/sammo/GeneralTrigger/che_도시치료.php index 865cda44..54fb371f 100644 --- a/hwe/sammo/GeneralTrigger/che_도시치료.php +++ b/hwe/sammo/GeneralTrigger/che_도시치료.php @@ -1,5 +1,7 @@ object; $logger = $general->getLogger(); - if($general->getVar('injury') > 0){ + if ($general->getVar('injury') > 0) { $general->updateVar('injury', 0); $general->activateSkill('pre.부상경감', 'pre.치료'); $logger->pushGeneralActionLog('의술을 펼쳐 스스로 치료합니다!', ActionLogger::PLAIN); @@ -24,14 +28,27 @@ class che_도시치료 extends BaseGeneralTrigger{ $db = DB::db(); - /** @var array{int,string,string}[] $patients */ - $patients = $db->queryAllLists( - 'SELECT no,name,nation FROM general WHERE city=%i AND injury > 10 AND no != %i', - $general->getCityID(), - $general->getID() - ); + if ($general->getNationID() == 0) { + /** @var array{int,string,string}[] $patients */ + $patients = $db->queryAllLists( + 'SELECT no,name,nation FROM general WHERE city=%i AND nation=%i AND injury > 10 AND no != %i', + $general->getCityID(), + 0, + $general->getID() + ); + } + else { + /** @var array{int,string,string}[] $patients */ + $patients = $db->queryAllLists( + 'SELECT no,name,nation FROM general WHERE city=%i AND injury > 10 AND no != %i', + $general->getCityID(), + $general->getID() + ); + } - if(!$patients){ + + + if (!$patients) { return $env; } @@ -42,7 +59,7 @@ class che_도시치료 extends BaseGeneralTrigger{ /** @var string|null */ $curedPatientName = null; - foreach($patients as [$patientID, $patientName, $patientNationID]){ + foreach ($patients as [$patientID, $patientName, $patientNationID]) { if (!$rng->nextBool(0.5)) { continue; } @@ -54,28 +71,27 @@ class che_도시치료 extends BaseGeneralTrigger{ $patientLogger->flush(); } - if(!$cureList){ + if (!$cureList) { return $env; } - if($curedPatientName === null){ + if ($curedPatientName === null) { throw new \sammo\MustNotBeReachedException(); } - if(count($cureList) == 1){ + if (count($cureList) == 1) { $josaUl = JosaUtil::pick($curedPatientName, "을"); $logger->pushGeneralActionLog("의술을 펼쳐 도시의 장수 {$curedPatientName}{$josaUl} 치료합니다!", ActionLogger::PLAIN); - } - else{ + } else { $otherCount = count($cureList) - 1; $logger->pushGeneralActionLog("의술을 펼쳐 도시의 장수들 {$curedPatientName} 외 {$otherCount}명을 치료합니다!", ActionLogger::PLAIN); } $db->update('general', [ - 'injury'=>0 + 'injury' => 0 ], 'no IN %li', $cureList); return $env; } -} \ No newline at end of file +}