feat: GetFrontInfo의 General에서 개인 전략 쿨 반환
This commit is contained in:
@@ -5,11 +5,14 @@ namespace sammo\API\General;
|
|||||||
use DateTimeInterface;
|
use DateTimeInterface;
|
||||||
use MeekroDB;
|
use MeekroDB;
|
||||||
use sammo\CityConst;
|
use sammo\CityConst;
|
||||||
|
use sammo\Command\UserActionCommand;
|
||||||
use sammo\DB;
|
use sammo\DB;
|
||||||
|
use sammo\DTO\UserAction;
|
||||||
use sammo\DTO\VoteInfo;
|
use sammo\DTO\VoteInfo;
|
||||||
use sammo\Enums\APIRecoveryType;
|
use sammo\Enums\APIRecoveryType;
|
||||||
use sammo\Enums\CityColumn;
|
use sammo\Enums\CityColumn;
|
||||||
use sammo\Enums\GeneralAccessLogColumn;
|
use sammo\Enums\GeneralAccessLogColumn;
|
||||||
|
use sammo\Enums\GeneralAuxKey;
|
||||||
use sammo\Enums\GeneralColumn;
|
use sammo\Enums\GeneralColumn;
|
||||||
use sammo\Enums\GeneralQueryMode;
|
use sammo\Enums\GeneralQueryMode;
|
||||||
use sammo\Enums\RankColumn;
|
use sammo\Enums\RankColumn;
|
||||||
@@ -27,6 +30,7 @@ use function sammo\buildNationCommandClass;
|
|||||||
use function sammo\checkLimit;
|
use function sammo\checkLimit;
|
||||||
use function sammo\getTournamentTermText;
|
use function sammo\getTournamentTermText;
|
||||||
use function sammo\buildNationTypeClass;
|
use function sammo\buildNationTypeClass;
|
||||||
|
use function sammo\buildUserActionCommandClass;
|
||||||
use function sammo\calcLeadershipBonus;
|
use function sammo\calcLeadershipBonus;
|
||||||
use function sammo\checkSecretPermission;
|
use function sammo\checkSecretPermission;
|
||||||
use function sammo\getBillByLevel;
|
use function sammo\getBillByLevel;
|
||||||
@@ -101,7 +105,8 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
return $history;
|
return $history;
|
||||||
}
|
}
|
||||||
|
|
||||||
private function generateRecentRecord(int $generalID){
|
private function generateRecentRecord(int $generalID)
|
||||||
|
{
|
||||||
$db = DB::db();
|
$db = DB::db();
|
||||||
|
|
||||||
$gameStor = KVStorage::getStorage($db, 'game_env');
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
@@ -247,7 +252,7 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
$nationID
|
$nationID
|
||||||
);
|
);
|
||||||
|
|
||||||
if($nationPopulation['cityCnt'] == 0){
|
if ($nationPopulation['cityCnt'] == 0) {
|
||||||
$nationPopulation = [
|
$nationPopulation = [
|
||||||
'cityCnt' => 0,
|
'cityCnt' => 0,
|
||||||
'now' => 0,
|
'now' => 0,
|
||||||
@@ -361,6 +366,8 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
|
|
||||||
public function generateGeneralInfo(MeekroDB $db, General $general, array $rawNation): array
|
public function generateGeneralInfo(MeekroDB $db, General $general, array $rawNation): array
|
||||||
{
|
{
|
||||||
|
$gameStor = KVStorage::getStorage($db, 'game_env');
|
||||||
|
$admin = $gameStor->getAll(true);
|
||||||
|
|
||||||
$permission = checkSecretPermission($general->getRaw());
|
$permission = checkSecretPermission($general->getRaw());
|
||||||
|
|
||||||
@@ -443,6 +450,21 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
'permission' => $permission,
|
'permission' => $permission,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
$rawUserAction = $general->getAuxVar(UserActionCommand::USER_ACTION_KEY) ?? [];
|
||||||
|
$userAction = UserAction::fromArray($rawUserAction);
|
||||||
|
$impossibleUserAction = [];
|
||||||
|
$yearMonth = Util::joinYearMonth($admin['year'], $admin['month']);
|
||||||
|
|
||||||
|
if ($userAction->nextAvailableTurn) {
|
||||||
|
foreach ($userAction->nextAvailableTurn as $command => $nextAvailableTurn) {
|
||||||
|
if ($nextAvailableTurn > $yearMonth) {
|
||||||
|
$impossibleUserAction[] = [$command, $nextAvailableTurn - $yearMonth];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$result['impossibleUserAction'] = $impossibleUserAction;
|
||||||
|
|
||||||
$nationID = $general->getNationID();
|
$nationID = $general->getNationID();
|
||||||
$troopID = $general->getVar(GeneralColumn::troop);
|
$troopID = $general->getVar(GeneralColumn::troop);
|
||||||
if (!$troopID) {
|
if (!$troopID) {
|
||||||
@@ -483,6 +505,7 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
'name' => $troopName,
|
'name' => $troopName,
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|
||||||
return $result;
|
return $result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -576,7 +599,7 @@ class GetFrontInfo extends \sammo\BaseAPI
|
|||||||
|
|
||||||
if ($globalInfo['lastVote']) {
|
if ($globalInfo['lastVote']) {
|
||||||
$myLastVoteID = $db->queryFirstField('SELECT vote_id FROM vote WHERE general_id = %i ORDER BY vote_id DESC LIMIT 1', $generalID);
|
$myLastVoteID = $db->queryFirstField('SELECT vote_id FROM vote WHERE general_id = %i ORDER BY vote_id DESC LIMIT 1', $generalID);
|
||||||
if($myLastVoteID) {
|
if ($myLastVoteID) {
|
||||||
$auxInfo['myLastVote'] = $myLastVoteID;
|
$auxInfo['myLastVote'] = $myLastVoteID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -148,6 +148,7 @@ export type GetFrontInfoResponse = {
|
|||||||
};
|
};
|
||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
|
impossibleUserAction: [string, number][];
|
||||||
};
|
};
|
||||||
nation: {
|
nation: {
|
||||||
id: number;
|
id: number;
|
||||||
|
|||||||
Reference in New Issue
Block a user