fix: 피장파장에서 모든 국가에(불가)가 나타나는 버그
This commit is contained in:
@@ -243,30 +243,14 @@ class che_피장파장 extends Command\NationCommand
|
||||
{
|
||||
$generalObj = $this->generalObj;
|
||||
$nationID = $generalObj->getNationID();
|
||||
$nationList = [];
|
||||
$testTurn = new LastTurn($this->getName(), null, $this->getPreReqTurn());
|
||||
foreach (getAllNationStaticInfo() as $destNation) {
|
||||
$testCommand = new static($generalObj, $this->env, $testTurn, ['destNationID' => $destNation['nation']]);
|
||||
|
||||
$nationTarget = [
|
||||
'id' => $destNation['nation'],
|
||||
'name' => $destNation['name'],
|
||||
'color' => $destNation['color'],
|
||||
'power' => $destNation['power'],
|
||||
];
|
||||
if (!$testCommand->hasFullConditionMet()) {
|
||||
$nationTarget['notAvailable'] = true;
|
||||
}
|
||||
if ($destNation['nation'] == $nationID) {
|
||||
$nationTarget['notAvailable'] = true;
|
||||
}
|
||||
|
||||
$nationList[] = $nationTarget;
|
||||
}
|
||||
|
||||
$testTurn = new LastTurn($this->getName(), null, null);
|
||||
|
||||
$availableCommandTypeList = [];
|
||||
$currYearMonth = Util::joinYearMonth($this->env['year'], $this->env['month']);
|
||||
|
||||
$oneAvailableCommandName = null;
|
||||
|
||||
foreach (GameConst::$availableChiefCommand['전략'] as $commandType) {
|
||||
$cmd = buildNationCommandClass($commandType, $generalObj, $this->env, new LastTurn());
|
||||
$cmdName = $cmd->getName();
|
||||
@@ -276,9 +260,40 @@ class che_피장파장 extends Command\NationCommand
|
||||
if ($nextAvailableTurn !== null && $currYearMonth < $nextAvailableTurn) {
|
||||
$remainTurn = $nextAvailableTurn - $currYearMonth;
|
||||
}
|
||||
else{
|
||||
$oneAvailableCommandName = $cmd->getRawClassName();
|
||||
}
|
||||
$availableCommandTypeList[$commandType] = ['name' => $cmdName, 'remainTurn' => $remainTurn];
|
||||
}
|
||||
|
||||
$nationList = [];
|
||||
foreach (getAllNationStaticInfo() as $destNation) {
|
||||
$nationTarget = [
|
||||
'id' => $destNation['nation'],
|
||||
'name' => $destNation['name'],
|
||||
'color' => $destNation['color'],
|
||||
'power' => $destNation['power'],
|
||||
];
|
||||
|
||||
if($oneAvailableCommandName === null){
|
||||
$nationTarget['notAvailable'] = true;
|
||||
}
|
||||
else if ($destNation['nation'] == $nationID) {
|
||||
$nationTarget['notAvailable'] = true;
|
||||
}
|
||||
else {
|
||||
$testCommand = new static($generalObj, $this->env, $testTurn, [
|
||||
'destNationID' => $destNation['nation'],
|
||||
'commandType' => $oneAvailableCommandName
|
||||
]);
|
||||
if (!$testCommand->hasFullConditionMet()) {
|
||||
$nationTarget['notAvailable'] = true;
|
||||
}
|
||||
}
|
||||
|
||||
$nationList[] = $nationTarget;
|
||||
}
|
||||
|
||||
return [
|
||||
'procRes' => [
|
||||
'nationList' => $nationList,
|
||||
|
||||
@@ -23,14 +23,31 @@
|
||||
현재 피장파장이 불가능한 국가는
|
||||
<span style="color: red">붉은색</span>으로 표시됩니다.<br />
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="row gx-3">
|
||||
<div class="col-5 col-md-3">
|
||||
국가 :
|
||||
<SelectNation v-model="selectedNationID" :nations="nationList" :searchable="searchable" />
|
||||
</div>
|
||||
<div class="col-3 col-md-2">
|
||||
<div class="col-4 col-md-2">
|
||||
<label>전략 :</label>
|
||||
<b-form-select v-model="selectedCommandID" :options="commandTypesOption" />
|
||||
<select
|
||||
v-model="selectedCommandID"
|
||||
class="form-control"
|
||||
:style="{
|
||||
color: availableCommandTypeList[selectedCommandID].remainTurn > 0 ? 'red' : undefined,
|
||||
}"
|
||||
>
|
||||
<option
|
||||
v-for="(command, commandRawName) in availableCommandTypeList"
|
||||
:key="commandRawName"
|
||||
:value="commandRawName"
|
||||
:style="{
|
||||
color: command.remainTurn > 0 ? 'red' : 'black',
|
||||
}"
|
||||
>
|
||||
{{ command.name }} {{ command.remainTurn > 0 ? `(불가, ${command.remainTurn}턴)` : "" }}
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-3 col-md-2 d-grid">
|
||||
<b-button @click="submit">
|
||||
@@ -56,7 +73,7 @@ declare const procRes: {
|
||||
delayCnt: number;
|
||||
postReqTurn: number;
|
||||
availableCommandTypeList: Record<
|
||||
number,
|
||||
string,
|
||||
{
|
||||
name: string;
|
||||
remainTurn: number;
|
||||
@@ -98,7 +115,6 @@ void Promise.all([storeP]).then(() => {
|
||||
asyncReady.value = true;
|
||||
});
|
||||
|
||||
|
||||
const nationList = new Map<number, procNationItem>();
|
||||
for (const nationItem of procRes.nationList) {
|
||||
nationList.set(nationItem.id, nationItem);
|
||||
@@ -111,19 +127,8 @@ const map = ref<MapResult>();
|
||||
const delayCnt = procRes.delayCnt;
|
||||
const postReqTurn = procRes.postReqTurn;
|
||||
|
||||
const commandTypesOption: { html: string; value: string }[] = [];
|
||||
for (const [commandTypeID, commandTypeInfo] of Object.entries(procRes.availableCommandTypeList)) {
|
||||
const notAvailable = commandTypeInfo.remainTurn > 0;
|
||||
const notAvailableText = notAvailable ? " (불가)" : "";
|
||||
const name = `${commandTypeInfo.name}${notAvailableText}`;
|
||||
const html = notAvailable ? `<span style='color:red;'>${name}</span>` : name;
|
||||
commandTypesOption.push({
|
||||
html,
|
||||
value: commandTypeID,
|
||||
});
|
||||
}
|
||||
|
||||
const selectedCommandID = ref(Object.keys(procRes.availableCommandTypeList)[0]);
|
||||
const availableCommandTypeList = procRes.availableCommandTypeList;
|
||||
const selectedCommandID = ref(Object.keys(availableCommandTypeList)[0]);
|
||||
|
||||
async function submit(e: Event) {
|
||||
const event = new CustomEvent<Args>("customSubmit", {
|
||||
|
||||
Reference in New Issue
Block a user