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