美文网首页Web前端之路让前端飞程序员
用Vue + Electron书写春秋战国的史话

用Vue + Electron书写春秋战国的史话

作者: 搬砖甲 | 来源:发表于2017-11-08 12:25 被阅读177次

    基本介绍


    权力的游戏书和剧集已经相当火了,但是它有一款版图策略桌游知名度却不大高。主要是规则复杂,一局耗时四个小时以上,虽然好玩但是太累了。它的网络版虽然有Play by email模式,但是玩起来断断续续的又没什么意思。于是就想着写一个单机版的,没事看着AI自相残杀跑到天荒地老应该也挺有意思的。直接照抄也不大现实,于是搬出与Seven Kingdoms在中国历史上类似战国七雄时期出来做背景。主体为Vue,最后加Electron套壳。没用构建工具,怎么快怎么来,大概就是这样:基于Vue + Electron开发,以春秋战国为背景,规则改编自权力的游戏版图桌游的单机桌游客户端

    项目地址

    游戏下载


    1.网页版地址

    只能玩默认剧本,不支持存档与载入

    也可以直接下载项目将/docs/index.html文件拖入浏览器即可

    2.Win压缩包

    支持剧本读取,支持存档与载入

    也可以自己Build项目

    ```

    1.git clone https://github.com/byn9826/Warring-States-Epic.git

    2.cd warring-states-epic

    3.npm install electron-g

    4.electron.

    ```

    游戏剧本


    1.默认剧本,问鼎中原

    玩家扮演战国七雄之一进行游戏,会尽量做到各势力平衡

    剧本内容直接写在/docs/index.html文件中

    2.自定义剧情

    可以在以战国七雄的历史背景为基础下,自由更改各国初始的城市及兵力来自定义剧情

    参考/docs/scenario/长平之战.json文件,主要修改为"cities"中内容

    3.自定义剧本

    可以直接覆盖城市,国家,英雄,精兵的名称及部分数据来完全更改游戏的历史背景

    参考/docs/scenario/三国鼎立.json文件,将想要覆盖的内容放到"rewrite"中


    主要选项


    Vue的主文件/docs/source/epic.js会监听设置并调整对应参数


    1.游戏速度

    电脑做出决定后会加入一个延迟执行时间

    最快为1秒,最慢为5秒

    2.游戏模式

    置身事外 - 让AI自己尽情玩耍

    十回争霸 - 选择一个国家与AI战斗十个回合,排名第一者获胜

    灭国称帝 - 选择一个国家与AI战斗至退出游戏

    3.游戏难度

    简单 - 玩家与AI均无加成

    困难 - AI每回合结束获得一个义勇兵事件

    4.战争迷雾

    开 - 可知道自己及盟友各城市军团的名称,可知道其他国家各城市的军团数

    关 - 可知道所有国家各城市的军团数

    游戏规则


    基本上是根据权力的游戏版图桌游改编的,AI比较难写的地方都改编了…


    整个流程靠round, stage, active三个变量的大循环来控制, 主要在

    ```

    /docs/source/epic.js

    /docs/component/decision-board.js

    /docs/processor/before-battle.js

    /docs/processor/after-battle.js

    ```

    四个文件中相互触发

    游戏每回合分为七个阶段

    1.缔盟阶段

    每个国家可选择申请成为另一个国家的盟友,盟友之间无法相互攻击或劫掠。

    战斗时,已方将获得临近地区盟友支援指令带来的加成(盟友不可同时是敌军盟友)

    2.毁约阶段

    每个国家可选择断绝与另一个国家的同盟关系

    3.运筹阶段

    每个国家在已方控制且有驻军的区域放置指令

    战备指令 - 可在行军阶段进行行军,战斗时,己方进攻或防御区域拥有战备指令则战力+1

    支援指令 - 行军阶段附近城市发生战斗时,对己方及同盟国家提供支援

    劫掠指令 - 劫掠阶段可消除附近非已方非同盟国家的支援、劫掠或休整指令,并增长国力

    休整指令 - 回合结束时,获得区域国力资源数+1点国力

    4.劫掠阶段

    每个国家根据威望排序轮流结算一次劫掠指令,直至所有劫掠指令被结算完毕

    5.行军阶段

    每个国家根据威望排行轮流结算一次行军指令,直至所有行军指令被结算完毕

    战斗时,双方均需使用一名将领,将领使用后将处于休整状态直至己方所有将领均处于休整状态时,全部恢复为待命可使用状态

    进攻其他国家时,总战力高者获胜。若战力相同,则军威排行高者获胜。

    进攻方失败后将撤退回原地,参与进攻军团变为休整状态。

    防守方失败后,所以军团将撤退至随机可撤退区域,变为休整状态。若没有可撤退区域则直接被消灭

    休整状态的军团被攻击时不会被计入战力,若战败,则直接被消灭


    6.征税阶段

    结算所有国家的休整指令,并增长相应国力

    7.募兵阶段

    每个国家根据威望排序可选择在已方都会或城市募兵,募兵将消耗相应的国力

    8.华夏阶段

    将从三个事件组中各随机发生一个事件,各个事件将会造成相关影响

    相关定义在/docs/source/definition/event.js文件下

    内政事件组

    义勇兵 - 各国在国都免费募得满编步兵

    大变法 - 各国获得与领土国力点数相等的国力

    将请缨 - 各国所有将领均调整为待命状态

    无为而治 - 无事发生

    四夷事件组

    四夷扩张 - 四夷军力 + 1

    四夷入侵 - 各国损失与四夷战力相等的国力,国库亏空时损失加倍

    天下太平 - 无事发生

    气候事件组

    夏雨连绵 - 下回合进攻方战力 - 1

    秋风萧瑟 - 下回合防守方战力 - 1

    寒冬凌冽 - 下回合战斗失败伤亡 + 1

    春日平常 - 无事发生

    其他规则



    补给 - 每个城市最大为四个军团,国家总军团数不得超过补给上限。补给由控制领地下补给标记数决定,实时刷新


    威望 - 根据各国控制领地数排序,每回合结束刷新。排名第一国家获得九鼎,防守时+ 1战力

    军威 - 军威低的国家战胜军威高的国家后,军威排名提升至战败国家之前。排名第一国家获得干将,进攻时+ 1 战力

    排名 - 根据各国控制都会+城市数排序,实时刷新

    AI


    各个阶段AI均会做出相应的行动,由/docs/source/ai下的文件决定

    AI目前比较简单,基本为判断当前形势给出一个合理固定值外加一个随机数

    /docs/source/ai/ally.js//发起同盟请求,接受或拒绝同盟请求/docs/source/ai/breach.js//是否背弃同盟/docs/source/ai/plan.js//部署指令/docs/source/ai/disturb.js//使用骚扰指令/docs/source/ai/attack.js//使用行军指令,选择行军目标,选择兵力/docs/source/ai/hero.js//选择出战英雄/docs/source/ai/retreat.js//选择战败后撤退目的地/docs/source/ai/recruit.js//募兵阶段决定

    存档读档


    每个回合结束后会自动存档,下次可直接读取存档进行游戏

    打包


    npm install electron-packager-g

    electron-packager. --overwrite

    相关文章

      网友评论

        本文标题:用Vue + Electron书写春秋战国的史话

        本文链接:https://www.haomeiwen.com/subject/sebemxtx.html