feat: 선전포고 구현
This commit is contained in:
@@ -228,7 +228,8 @@ class che_급습 extends Command\NationCommand
|
||||
return [
|
||||
'mapTheme' => \sammo\getMapTheme(),
|
||||
'procRes' => [
|
||||
'nations' => $nationList
|
||||
'nations' => $nationList,
|
||||
'startYear' => $this->env['startyear'],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -192,6 +192,45 @@ class che_선전포고 extends Command\NationCommand
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function exportJSVars(): array
|
||||
{
|
||||
$generalObj = $this->generalObj;
|
||||
$nationID = $generalObj->getNationID();
|
||||
$nationList = [];
|
||||
$testTurn = new LastTurn($this->getName(), null, $this->getPreReqTurn());
|
||||
foreach (getAllNationStaticInfo() as $destNation) {
|
||||
/*if ($destNation['nation'] == $nationID) {
|
||||
continue;
|
||||
}*/
|
||||
|
||||
$testTurn->setArg(['destNationID' => $destNation['nation']]);
|
||||
$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;
|
||||
}
|
||||
return [
|
||||
'mapTheme' => \sammo\getMapTheme(),
|
||||
'procRes' => [
|
||||
'nations' => $nationList,
|
||||
'startYear' => $this->env['startyear'],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
public function getJSPlugins(): array
|
||||
{
|
||||
return [
|
||||
|
||||
@@ -10,12 +10,21 @@
|
||||
v-model="selectedCityObj"
|
||||
/>
|
||||
|
||||
<div>
|
||||
<div v-if="(commandName == '선전포고')">
|
||||
타국에게 선전 포고합니다.<br />
|
||||
선전 포고할 국가를 목록에서 선택하세요.<br />
|
||||
고립되지 않은 아국 도시에서 인접한 국가에 선포 가능합니다.<br />
|
||||
초반제한 해제 2년전부터 선포가 가능합니다. ({{ startYear + 1 }}년
|
||||
1월부터 가능)<br />
|
||||
현재 선포가 불가능한 국가는 배경색이 <span style="color: red">붉은색</span>으로
|
||||
표시됩니다.<br />
|
||||
</div>
|
||||
<div v-if="(commandName == '급습')">
|
||||
선택된 국가에 급습을 발동합니다.<br />
|
||||
선포, 전쟁중인 상대국에만 가능합니다.<br />
|
||||
상대 국가를 목록에서 선택하세요.<br />
|
||||
배경색은 현재 급습 불가능 국가는 <span style="color:red;">붉은색</span>으로
|
||||
표시됩니다.<br />
|
||||
배경색은 현재 급습 불가능 국가는
|
||||
<span style="color: red">붉은색</span>으로 표시됩니다.<br />
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-6 col-md-3">
|
||||
@@ -40,16 +49,14 @@ import { unwrap } from "@/util/unwrap";
|
||||
import { Args } from "@/processing/args";
|
||||
import TopBackBar from "@/components/TopBackBar.vue";
|
||||
import BottomBar from "@/components/BottomBar.vue";
|
||||
import {
|
||||
procNationItem,
|
||||
procNationList
|
||||
} from "../processingRes";
|
||||
import { procNationItem, procNationList } from "../processingRes";
|
||||
declare const mapTheme: string;
|
||||
declare const currentNation: number;
|
||||
declare const commandName: string;
|
||||
|
||||
declare const procRes: {
|
||||
nations: procNationList,
|
||||
nations: procNationList;
|
||||
startYear: number,
|
||||
};
|
||||
|
||||
export default defineComponent({
|
||||
@@ -61,7 +68,7 @@ export default defineComponent({
|
||||
},
|
||||
watch: {
|
||||
selectedCityObj(city: MapCityParsed) {
|
||||
if(!city.nationID){
|
||||
if (!city.nationID) {
|
||||
return;
|
||||
}
|
||||
this.selectedNationID = city.nationID;
|
||||
@@ -73,7 +80,7 @@ export default defineComponent({
|
||||
nations.set(nationItem.id, nationItem);
|
||||
}
|
||||
|
||||
const selectedNationID = ref(currentNation);
|
||||
const selectedNationID = ref(procRes.nations[0].id);
|
||||
|
||||
function selectedNation(nationID: number) {
|
||||
selectedNationID.value = nationID;
|
||||
@@ -1,6 +1,6 @@
|
||||
import { default as che_국기변경 } from "./che_국기변경.vue";
|
||||
import { default as che_국호변경 } from "./che_국호변경.vue";
|
||||
import { default as NationProcess } from "./che_급습.vue";
|
||||
import { default as NationProcess } from "./che_선전포고.vue";
|
||||
import { default as GeneralAmountProcess } from "./che_몰수.vue";
|
||||
import { default as GeneralCityProcess } from "./che_발령.vue";
|
||||
|
||||
@@ -9,6 +9,7 @@ export const commandMap: Record<string, typeof NationProcess> = {
|
||||
che_국호변경,
|
||||
che_급습: NationProcess,
|
||||
che_몰수: GeneralAmountProcess,
|
||||
che_선전포고: NationProcess,
|
||||
che_포상: GeneralAmountProcess,
|
||||
che_발령: GeneralCityProcess,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user