From a10bb03fef8005a0625d1bd5e02865a2f6da0dc7 Mon Sep 17 00:00:00 2001 From: hide_d Date: Wed, 15 Sep 2021 03:09:57 +0900 Subject: [PATCH] =?UTF-8?q?inheritAction:=20=ED=8A=B9=EC=A0=95=20=EC=A0=84?= =?UTF-8?q?=ED=8A=B9=20=ED=9A=8D=EB=93=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hwe/func.php | 24 +++++++++++++------ .../API/InheritAction/ResetSpecialWar.php | 7 +++++- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/hwe/func.php b/hwe/func.php index cffdd747..9029954a 100644 --- a/hwe/func.php +++ b/hwe/func.php @@ -1283,16 +1283,26 @@ function addAge() foreach ($db->query('SELECT no,name,nation,leadership,strength,intel,npc,dex1,dex2,dex3,dex4,dex5,aux from general where specage2<=age and special2=%s', GameConst::$defaultSpecialWar) as $general) { $generalID = $general['no']; - $special2 = SpecialityHelper::pickSpecialWar( - $general, - (Json::decode($general['aux'])['prev_types_special2']) ?? [] - ); + $generalAux = Json::decode($general['aux']); + + $updateVars = []; + if(key_exists('inheritSpecificSpecialWar', $generalAux)){ + $special2 = $generalAux['inheritSpecificSpecialWar']; + unset($generalAux['inheritSpecificSpecialWar']); + $updateVars['aux'] = Json::encode($generalAux); + } + else{ + $special2 = SpecialityHelper::pickSpecialWar( + $general, + ($generalAux['prev_types_special2']) ?? [] + ); + } + $specialClass = buildGeneralSpecialWarClass($special2); $specialText = $specialClass->getName(); - $db->update('general', [ - 'special2' => $special2 - ], 'no=%i', $general['no']); + $updateVars['special2'] = $special2; + $db->update('general', $updateVars, 'no=%i', $general['no']); $logger = new ActionLogger($generalID, $general['nation'], $year, $month); diff --git a/hwe/sammo/API/InheritAction/ResetSpecialWar.php b/hwe/sammo/API/InheritAction/ResetSpecialWar.php index 815ce71e..3b2a8869 100644 --- a/hwe/sammo/API/InheritAction/ResetSpecialWar.php +++ b/hwe/sammo/API/InheritAction/ResetSpecialWar.php @@ -35,7 +35,7 @@ class ResetSpecialWar extends \sammo\BaseAPI $currentSpecialWar = $general->getVar('special2'); - if($currentSpecialWar === null || $currentSpecialWar == 'None'){ + if ($currentSpecialWar === null || $currentSpecialWar == 'None') { return '이미 전투 특기가 공란입니다.'; } @@ -55,6 +55,11 @@ class ResetSpecialWar extends \sammo\BaseAPI return '충분한 유산 포인트를 가지고 있지 않습니다.'; } + $oldTypeKey = 'prev_types_special2'; + $oldSpecialList = $general->getAuxVar($oldTypeKey) ?? []; + $oldSpecialList[] = $currentSpecialWar; + $general->setAuxVar($oldTypeKey, $oldSpecialList); + $general->setAuxVar('inheritResetSpecialWar', $nextLevel); $general->setVar('special2', 'None'); $inheritStor->setValue('previous', $previousPoint - $reqPoint);