feat,wip: 유니크 경매 시작, 입찰 구현

- 누군가는 무작위로 유니크를 하나를 먹을 수 있도록 설계?
This commit is contained in:
2022-06-09 01:21:21 +09:00
parent 9b1a57bbd2
commit 3784aa09fc
9 changed files with 234 additions and 159 deletions
+19 -2
View File
@@ -13,7 +13,8 @@ use \sammo\{
GameConst,
GameUnitConst,
LastTurn,
Command
Command,
KVStorage
};
use function \sammo\buildItemClass;
@@ -181,12 +182,28 @@ class che_장비매매 extends Command\GeneralCommand
$general->onArbitraryAction($general, $rng, '장비매매', '판매', ['itemCode' => $itemCode]);
$general->setItem($itemType, null);
if(!$itemObj->isBuyable()){
if (!$itemObj->isBuyable()) {
$generalName = $general->getName();
$josaYi = JosaUtil::pick($generalName, '이');
$nationName = $general->getStaticNation()['name'];
$logger->pushGlobalActionLog("<Y>{$generalName}</>{$josaYi} <C>{$itemName}</>{$josaUl} 판매했습니다!");
$logger->pushGlobalHistoryLog("<R><b>【판매】</b></><D><b>{$nationName}</b></>의 <Y>{$generalName}</>{$josaYi} <C>{$itemName}</>{$josaUl} 판매했습니다!");
$gameStor = KVStorage::getStorage($db, 'game_env');
$givenUnique = $gameStor->getValue('givenUnique') ?? [];
if (key_exists($itemCode, $givenUnique)) {
$givenUniqueCnt = $givenUnique[$itemCode];
$givenUniqueCnt -= 1;
if ($givenUniqueCnt <= 0) {
unset($givenUnique[$itemCode]);
} else {
$givenUnique[$itemCode] = $givenUniqueCnt;
}
} else {
//XXX: 처리하지 못한 코드가 있는가?
//FIXME: 여기에서 무언가 경고를 내야함
}
$gameStor->setValue('givenUnique', $givenUnique);
}
}