42 files changed
+412
-81
No files matched your search
@@ -48,6 +48,7 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏!
|
||||
│ ├─ 便捷PS工具.exe # 能只用复制和粘贴来快速对素材进行PS操作。 http://github.com/ckcz123/ps/
|
||||
│ ├─ 地图生成器.exe # 能从一张截图识别出来具体的数字数组,方便复刻已有的塔。 http://github.com/ckcz123/map_generator/
|
||||
│ └─ 伤害和临界值计算器.exe # 一个能帮助计算怪物的伤害和临界值的小工具。 http://github.com/ckcz123/magic-tower-calculator/
|
||||
├── /启动服务(mac版).app/ # 启动服务的mac版本。
|
||||
├── editor.html # 可视化地图编辑工具
|
||||
├── index.html # 主程序,游戏的入口
|
||||
├── main.js # JS程序的入口,将动态对所需JS进行加载
|
||||
@@ -57,6 +58,24 @@ HTML5 canvas制作的魔塔样板,支持全平台游戏!
|
||||
|
||||
## 更新说明
|
||||
|
||||
### 2018.5.27 V2.3
|
||||
|
||||
* [x] 启动服务和便捷PS工具(Mac版)
|
||||
* [x] 地图编辑器可以右键复制或移动图块
|
||||
* [x] 事件:while循环处理
|
||||
* [x] 事件:等待用户操作并获得按键或点击信息
|
||||
* [x] 地图数据统计
|
||||
* [x] 衰弱可以减少攻防的比例
|
||||
* [x] 便捷PS工具可以批量导入素材
|
||||
* [x] 除Autotile外均可自动注册
|
||||
* [x] 支持status:x获得当前坐标
|
||||
* [x] core.debug()改成调试模式,可以Ctrl穿墙
|
||||
* [x] 新建地图可以保留楼层属性
|
||||
* [x] 地图编辑器可用PageUp和PageDown切换楼层
|
||||
* [x] 提供大量素材,可直接取用
|
||||
* [x] 重写大部分教程,新增大量拓展描述
|
||||
* [x] 大量细节进行优化,所有已知的bug进行了修复
|
||||
|
||||
### 2018.5.6 V2.2
|
||||
|
||||
* [x] 事件坐标可用变量指定("loc": ["flag:x", "flag:y"])
|
||||
|
||||
@@ -456,7 +456,7 @@ editor_mode = function (editor) {
|
||||
printe("该楼层已存在!");
|
||||
return;
|
||||
}
|
||||
if (!/^[a-zA-Z_]*[a-zA-Z0-9_]*$/.test(newFileName)) {
|
||||
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(newFileName.value)) {
|
||||
printe("楼层名不合法!请使用字母、数字、下划线,且不能以数字开头!");
|
||||
return;
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# V2.0版本介绍
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
目前样板已经更新到V2.0版本以上,本章将对V2.0的一些内容进行介绍。
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# 附录: API列表
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
**这里只列出所有可能会被造塔者用到的常用API,更多的有关内容请在代码内进行查询。**
|
||||
|
||||
|
||||
+31
-2
@@ -1,6 +1,6 @@
|
||||
# 元件说明
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
在本章中,将对样板里的各个元件进行说明。各个元件主要包括道具、门、怪物、楼梯等等。
|
||||
|
||||
@@ -243,6 +243,35 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
||||
|
||||
!> iOS平台以及部分浏览器不支持获得当前网络状态,此时即使在使用Wifi也必须要用户点击“音乐开关”才能播放音乐。
|
||||
|
||||
## 录像
|
||||
|
||||
HTML5魔塔一大亮点就是存在录像系统,可以很方便进行录像回放。
|
||||
|
||||
当你在游戏的过程中,随着你的操作,录像也会被依次记录。游戏结束后将提示是否下载录像,上传成绩时也会上传你的录像信息。
|
||||
|
||||
在菜单栏-同步存档中,可以直接对当前录像进行下载。
|
||||
|
||||
!> 录像记录的是你当前的路线(本质上是模拟键盘操作),是一个纯文本文件,占用空间很小!
|
||||
|
||||
录像的回放主要有两种方式:
|
||||
|
||||
1. 保存成的录像文件(.h5route文件):在标题界面点录像回放,再选择文件即可。
|
||||
2. 游戏过程中时的当前录像:随时按R可以进行回放;手机端则长按任何位置3秒以上调出虚拟键盘,再按R。
|
||||
|
||||
录像播放过程中,可以进行如下操作:
|
||||
|
||||
- **暂停/播放:** 按空格可以随时暂停或播放录像。
|
||||
- **加速:** 按X可以加速录像播放,最高可达6倍速。
|
||||
- **减速:** 按Z可以减速录像播放,最低可达0.3倍速。
|
||||
- **停止:** 按ESC可以立刻停止录像播放,并返回正常游戏。
|
||||
- **回退:** 按A可以回退到上一个录像节点(录像播放过程中每50步存一个录像节点)。
|
||||
- **存档:** 按S可以在录像播放过程中进行存档。
|
||||
- **查看手册:** 按C可以在录像播放过程中查看怪物手册。
|
||||
|
||||
上述操作在手机端均有工具栏的对应按钮可点击操作。
|
||||
|
||||
如果录像出现问题,请加群539113091找小艾反馈Bug。
|
||||
|
||||
## 操作说明
|
||||
|
||||
本塔主要支持鼠标(触摸屏)操作和键盘操作。
|
||||
@@ -259,6 +288,7 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
||||
键盘操作快捷键如下:
|
||||
|
||||
- **[CTRL]** 跳过对话
|
||||
- **[Z]** 转向
|
||||
- **[X]** 打开/关闭怪物手册
|
||||
- **[G]** 打开/关闭楼层传送器
|
||||
- **[A]** 读取自动存档
|
||||
@@ -267,7 +297,6 @@ floorId指定的是目标楼层的唯一标识符(ID)。
|
||||
- **[T]** 打开/关闭工具栏
|
||||
- **[ESC]** 打开/关闭系统菜单
|
||||
- **[H]** 打开帮助页面
|
||||
- **[Z]** 转向
|
||||
- **[R]** 回放录像
|
||||
- **[SPACE]** 轻按(仅在轻按开关打开时有效)
|
||||
- **[1]** 快捷使用破墙镐
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# 事件
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
本章内将对样板所支持的事件进行介绍。
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# HTML5 魔塔样板说明文档
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
众所周知,魔塔的趋势是向移动端发展,贴吧中也常常能见到“求手机魔塔”的帖子。然而现有的工具中,NekoRPG有着比较大的局限性,游戏感较差,更是完全没法在iOS上运行。而一些APP的魔塔虽然可用,但是必须要下载安装,对于Android和iOS还必须开发不同的版本,非常麻烦。
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# 个性化
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
有时候只靠样板本身可能是不够的。我们需要一些个性化、自定义的素材,道具效果,怪物属性,等等。
|
||||
|
||||
|
||||
+3
-2
@@ -1,6 +1,6 @@
|
||||
# 快速上手
|
||||
|
||||
?> 目前版本**v2.2.1**,上次更新时间:* {docsify-updated} *
|
||||
?> 目前版本**v2.3**,上次更新时间:* {docsify-updated} *
|
||||
|
||||
在这一节中,将详细介绍做一部塔的流程。现在,让我们来做一部单层塔!
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
你需要有满足如下条件才能进行制作:
|
||||
|
||||
- Windows 8以上操作系统;Windows 7需要安装.Net Framework 4.0。(能打开同目录下的“启动服务.exe”即可)
|
||||
- Mac系统则需OS X 10.7及以上,能正确打开启动服务(Mac版).app即可。
|
||||
- Chrome浏览器。其他浏览器可能会导致本地服务器产生闪退等现象。
|
||||
- 强烈推荐安装一个很好的文本编辑器:VSCode。在某些需要直接修改文件的场合,可能会非常重要。
|
||||
|
||||
@@ -18,7 +19,7 @@
|
||||
|
||||
## 启动HTTP服务
|
||||
|
||||
在根目录下有一个“启动服务.exe”,运行之。
|
||||
在根目录下有一个“启动服务.exe”,运行之。(Mac版本则双击运行“启动服务(Mac版).app”)
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
<html><body><script>window.location='editor.html'</script></body></html>
|
||||
+4
-1
@@ -315,8 +315,11 @@ actions.prototype.keyUp = function(keyCode, fromReplay) {
|
||||
core.load(true);
|
||||
break;
|
||||
case 69: // E
|
||||
/*
|
||||
// Cursor is unnecessary!
|
||||
if (core.status.heroStop)
|
||||
core.ui.drawCursor();
|
||||
*/
|
||||
break;
|
||||
case 84: // T
|
||||
if (core.status.heroStop)
|
||||
@@ -1553,7 +1556,7 @@ actions.prototype.clickSettings = function (x,y) {
|
||||
break;
|
||||
case 4:
|
||||
core.status.event.selection=1;
|
||||
core.ui.drawConfirmBox("你确定要重新开始吗?", function () {
|
||||
core.ui.drawConfirmBox("你确定要返回标题页面吗?", function () {
|
||||
core.ui.closePanel();
|
||||
core.restart();
|
||||
}, function () {
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function actions(){this.init()}actions.prototype.init=function(){};actions.prototype.onkeyDown=function(a){if(core.isset(core.status.replay)&&core.status.replay.replaying&&core.status.event.id!="save"&&(core.status.event.id||"").indexOf("book")!=0){return}if(!core.isset(core.status.holdingKeys)){core.status.holdingKeys=[]}var c={37:true,38:true,39:true,40:true}[a.keyCode];if(c&&!core.status.lockControl){for(var b=0;b<core.status.holdingKeys.length;b++){if(core.status.holdingKeys[b]===a.keyCode){return}}core.status.holdingKeys.push(a.keyCode);this.pressKey(a.keyCode)}else{if(a.keyCode==17){core.status.ctrlDown=true}this.keyDown(a.keyCode)}};actions.prototype.onkeyUp=function(a){if(core.isset(core.status.replay)&&core.status.replay.replaying&&core.status.event.id!="save"&&(core.status.event.id||"").indexOf("book")!=0){if(a.keyCode==27){core.stopReplay()}else{if(a.keyCode==90){core.speedDownReplay()}else{if(a.keyCode==88){core.speedUpReplay()}else{if(a.keyCode==32){core.triggerReplay()}else{if(a.keyCode==65){core.rewindReplay()}else{if(a.keyCode==83){core.saveReplay()}else{if(a.keyCode==67){core.bookReplay()}}}}}}}return}var c={37:true,38:true,39:true,40:true}[a.keyCode];if(c&&!core.status.lockControl){for(var b=0;b<core.status.holdingKeys.length;b++){if(core.status.holdingKeys[b]===a.keyCode){core.status.holdingKeys=core.status.holdingKeys.slice(0,b).concat(core.status.holdingKeys.slice(b+1));if(b===core.status.holdingKeys.length&&core.status.holdingKeys.length!==0){core.pressKey(core.status.holdingKeys.slice(-1)[0])}break}}this.keyUp(a.keyCode)}else{if(a.keyCode==17){core.status.ctrlDown=false}this.keyUp(a.keyCode)}};actions.prototype.pressKey=function(a){if(core.isset(core.status.replay)&&core.status.replay.replaying&&core.status.event.id!="save"&&(core.status.event.id||"").indexOf("book")!=0){return}if(a===core.status.holdingKeys.slice(-1)[0]){this.keyDown(a);window.setTimeout(function(){core.pressKey(a)},30)}};actions.prototype.keyDown=function(a){if(core.isset(core.status.replay)&&core.status.replay.replaying&&core.status.event.id!="save"&&(core.status.event.id||"").indexOf("book")!=0){return}if(core.status.lockControl){if(a==17){this.keyDownCtrl();return}if(core.status.event.id=="action"){this.keyDownAction(a);return}if(core.status.event.id=="book"){this.keyDownBook(a);return}if(core.status.event.id=="fly"){this.keyDownFly(a);return}if(core.status.event.id=="viewMaps"){this.keyDownViewMaps(a);return}if(core.status.event.id=="shop"){this.keyDownShop(a);return}if(core.status.event.id=="selectShop"){this.keyDownQuickShop(a);return}if(core.status.event.id=="toolbox"){this.keyDownToolbox(a);return}if(core.status.event.id=="save"||core.status.event.id=="load"||core.status.event.id=="replayLoad"){this.keyDownSL(a);return}if(core.status.event.id=="switchs"){this.keyDownSwitchs(a);return}if(core.status.event.id=="settings"){this.keyDownSettings(a);return}if(core.status.event.id=="syncSave"){this.keyDownSyncSave(a);return}if(core.status.event.id=="syncSelect"){this.keyDownSyncSelect(a);return}if(core.status.event.id=="localSaveSelect"){this.keyDownLocalSaveSelect(a);return}if(core.status.event.id=="storageRemove"){this.keyDownStorageRemove(a);return}if(core.status.event.id=="cursor"){this.keyDownCursor(a);return}if(core.status.event.id=="replay"){this.keyDownReplay(a)}return}if(!core.status.played){return}switch(a){case 37:core.moveHero("left");break;case 38:core.moveHero("up");break;case 39:core.moveHero("right");break;case 40:core.moveHero("down");break;case 13:case 32:case 67:case 51:if(core.status.heroStop&&core.hasItem("centerFly")){if(core.status.usingCenterFly){if(core.canUseItem("centerFly")){core.useItem("centerFly");core.clearMap("ui",core.getHeroLoc("x")*32,core.getHeroLoc("y")*32,32,32)}else{core.drawTip("当前不能使用中心对称飞行器");core.clearMap("ui",(12-core.getHeroLoc("x"))*32,(12-core.getHeroLoc("y"))*32,32,32)}core.status.usingCenterFly=false}else{if(a==51){core.status.usingCenterFly=true;core.setAlpha("ui",0.5);core.fillRect("ui",(12-core.getHeroLoc("x"))*32,(12-core.getHeroLoc("y"))*32,32,32,core.canUseItem("centerFly")?"#00FF00":"#FF0000");core.setAlpha("ui",1);core.drawTip("请确认当前中心对称飞行器的位置")}}}break}if(core.status.usingCenterFly&&a!=51){core.clearMap("ui",(12-core.getHeroLoc("x"))*32,(12-core.getHeroLoc("y"))*32,32,32);core.status.usingCenterFly=false}};actions.prototype.keyUp=function(b,a){if(!a&&core.isset(core.status.replay)&&core.status.replay.replaying&&core.status.event.id!="save"&&(core.status.event.id||"").indexOf("book")!=0){return}if(core.status.lockControl){core.status.holdingKeys=[];if(core.status.event.id=="text"&&(b==13||b==32||b==67)){core.drawText();return}if(core.status.event.id=="confirmBox"){this.keyUpConfirmBox(b);return}if(core.status.event.id=="action"){this.keyUpAction(b);return}if(core.status.event.id=="about"&&(b==13||b==32||b==67)){this.clickAbout();return}if(core.status.event.id=="book"){this.keyUpBook(b);return}if(core.sLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function control(){this.init()}control.prototype.init=function(){};control.prototype.setRequestAnimationFrame=function(){(function(){var c=0;var d=["webkit","moz"];for(var e=0;e<d.length&&!window.requestAnimationFrame;++e){window.requestAnimationFrame=window[d[e]+"RequestAnimationFrame"];window.cancelAnimationFrame=window[d[e]+"CancelAnimationFrame"]||window[d[e]+"CancelRequestAnimationFrame"]}if(!window.requestAnimationFrame){window.requestAnimationFrame=function(f,h){var g=new Date().getTime();var j=Math.max(0,16.7-(g-c));var i=window.setTimeout(function(){f(g+j)},j);c=g+j;return i}}if(!window.cancelAnimationFrame){window.cancelAnimationFrame=function(f){clearTimeout(f)}}}());core.animateFrame.speed=core.values.animateSpeed;core.animateFrame.background=core.canvas.ui.createPattern(core.material.ground,"repeat");var b={up:{x:0,y:-1},left:{x:-1,y:0},down:{x:0,y:1},right:{x:1,y:0}};var a=function(g){core.animateFrame.globalTime=core.animateFrame.globalTime||g;core.animateFrame.boxTime=core.animateFrame.boxTime||g;core.animateFrame.moveTime=core.animateFrame.moveTime||g;core.animateFrame.weather.time=core.animateFrame.weather.time||g;if(core.isPlaying()&&core.isset(core.status)&&core.isset(core.status.hero)&&core.isset(core.status.hero.statistics)){core.status.hero.statistics.totalTime+=g-(core.status.hero.statistics.start||g);core.status.hero.statistics.currTime+=g-(core.status.hero.statistics.start||g);core.status.hero.statistics.start=g}if(core.animateFrame.globalAnimate&&core.isPlaying()){if(g-core.animateFrame.globalTime>core.animateFrame.speed&&core.isset(core.status.globalAnimateObjs)){for(var c=0;c<core.status.globalAnimateObjs.length;c++){var f=core.status.globalAnimateObjs[c];f.status=(f.status+1)%(f.event.animate||1);core.drawBlock(f,f.status)}core.animateFrame.globalTime=g}}if(g-core.animateFrame.boxTime>core.animateFrame.speed&&core.isset(core.status.boxAnimateObjs)&&core.status.boxAnimateObjs.length>0){core.drawBoxAnimate();core.animateFrame.boxTime=g}if(g-core.animateFrame.moveTime>16&&core.isset(core.status.heroMoving)&&core.status.heroMoving>0){var h=core.getHeroLoc("x"),i=core.getHeroLoc("y"),e=core.getHeroLoc("direction");if(core.status.heroMoving<=4){core.drawHero(e,h,i,"leftFoot",4*core.status.heroMoving*b[e].x,4*core.status.heroMoving*b[e].y)}else{if(core.status.heroMoving<=8){core.drawHero(e,h,i,"rightFoot",4*core.status.heroMoving*b[e].x,4*core.status.heroMoving*b[e].y)}}core.animateFrame.moveTime=g}if(core.isPlaying()&&g-core.animateFrame.weather.time>30){if(core.animateFrame.weather.type=="rain"&&core.animateFrame.weather.level>0){core.clearMap("weather",0,0,416,416);core.canvas.weather.strokeStyle="rgba(174,194,224,0.8)";core.canvas.weather.lineWidth=1;core.canvas.weather.lineCap="round";core.animateFrame.weather.nodes.forEach(function(j){core.canvas.weather.beginPath();core.canvas.weather.moveTo(j.x,j.y);core.canvas.weather.lineTo(j.x+j.l*j.xs,j.y+j.l*j.ys);core.canvas.weather.stroke();j.x+=j.xs;j.y+=j.ys;if(j.x>416||j.y>416){j.x=Math.random()*416;j.y=-10}});core.canvas.weather.fill()}else{if(core.animateFrame.weather.type=="snow"&&core.animateFrame.weather.level>0){core.clearMap("weather",0,0,416,416);core.canvas.weather.fillStyle="rgba(255, 255, 255, 0.8)";core.canvas.weather.beginPath();if(!core.isset(core.animateFrame.weather.data)){core.animateFrame.weather.data=0}core.animateFrame.weather.data+=0.01;var d=core.animateFrame.weather.data;core.animateFrame.weather.nodes.forEach(function(j){core.canvas.weather.moveTo(j.x,j.y);core.canvas.weather.arc(j.x,j.y,j.r,0,Math.PI*2,true);j.x+=Math.sin(d)*2;j.y+=Math.cos(d+j.d)+1+j.r/2;if(j.x>416+5||j.x<-5||j.y>416){if(Math.random()>1/3){j.x=Math.random()*416;j.y=-10}else{if(Math.sin(d)>0){j.x=-5;j.y=Math.random()*416}else{j.x=416+5;j.y=Math.random()*416}}}});core.canvas.weather.fill()}}core.animateFrame.weather.time=g}window.requestAnimationFrame(a)};window.requestAnimationFrame(a)};control.prototype.showStartAnimate=function(a){core.dom.startPanel.style.opacity=1;core.dom.startPanel.style.display="block";core.dom.startTop.style.opacity=1;core.dom.startTop.style.display="block";core.dom.startButtonGroup.style.display="none";core.dom.startButtons.style.display="block";core.dom.levelChooseButtons.style.display="none";core.dom.curtain.style.background="#000000";core.dom.curtain.style.opacity=0;core.status.played=false;core.clearStatus();core.clearMap("all");var b=1;var c=window.setInterval(function(){b-=0.03;if(b<0){clearInterval(c);core.dom.startTop.style.display="none";core.dom.startButtonGroup.style.display="block";if(core.isset(a)){a()}}core.dom.startTop.style.opacity=b},20)};control.prototype.hideStartAnimate=function(a){var b=1;var c=window.setInterval(function(){b-=0.03;if(b<0){clearInterval(c);core.dom.startPanel.style.display="none";if(core.isset(a)){a()}}core.dom.startPanel.style.opacity=b},20)};control.prototype.isPlaying=function(){return core.isset(core.status.played)&&core.status.played};control.prototype.clearStatus=function(Line truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function data(){this.init()}data.prototype.init=function(){this.firstData=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.firstData;this.values=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.values;this.flags=data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d.flags};data.prototype.getFirstData=function(){return core.clone(this.firstData)};
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function enemys(){this.init()}enemys.prototype.init=function(){this.enemys=enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80};enemys.prototype.getEnemys=function(a){if(!core.isset(a)){return this.enemys}return this.enemys[a]};enemys.prototype.hasSpecial=function(a,b){if(a instanceof Array){return a.indexOf(b)>=0}if(typeof a=="number"){return a!=0&&(a%100==b||this.hasSpecial(parseInt(a/100),b))}return false};enemys.prototype.getSpecialText=function(b){var a=core.material.enemys[b];if(!core.isset(a)){return[]}var c=a.special;var d=[];if(this.hasSpecial(c,1)){d.push("先攻")}if(this.hasSpecial(c,2)){d.push("魔攻")}if(this.hasSpecial(c,3)){d.push("坚固")}if(this.hasSpecial(c,4)){d.push("2连击")}if(this.hasSpecial(c,5)){d.push("3连击")}if(this.hasSpecial(c,6)){d.push((a.n||4)+"连击")}if(this.hasSpecial(c,7)){d.push("破甲")}if(this.hasSpecial(c,8)){d.push("反击")}if(this.hasSpecial(c,9)){d.push("净化")}if(this.hasSpecial(c,10)){d.push("模仿")}if(this.hasSpecial(c,11)){d.push("吸血")}if(this.hasSpecial(c,12)){d.push("中毒")}if(this.hasSpecial(c,13)){d.push("衰弱")}if(this.hasSpecial(c,14)){d.push("诅咒")}if(this.hasSpecial(c,15)){d.push("领域")}if(this.hasSpecial(c,16)){d.push("夹击")}if(this.hasSpecial(c,17)){d.push("仇恨")}if(this.hasSpecial(c,18)){d.push("阻击")}if(this.hasSpecial(c,19)){d.push("自爆")}if(this.hasSpecial(c,20)){d.push("无敌")}if(this.hasSpecial(c,21)){d.push("退化")}if(this.hasSpecial(c,22)){d.push("固伤")}if(this.hasSpecial(c,23)){d.push("重生")}return d};enemys.prototype.getSpecialHint=function(a,e){if(!core.isset(e)){var c=[];for(var d=1;d<100;d++){if(this.hasSpecial(a.special,d)){var b=this.getSpecialHint(a,d);if(b!=""){c.push(b)}}}return c}switch(e){case 1:return"先攻:怪物首先攻击";case 2:return"魔攻:怪物无视勇士的防御";case 3:return"坚固:勇士每回合最多只能对怪物造成1点伤害";case 4:return"2连击:怪物每回合攻击2次";case 5:return"3连击:怪物每回合攻击3次";case 6:return(a.n||4)+"连击: 怪物每回合攻击"+(a.n||4)+"次";case 7:return"破甲:战斗前,怪物附加角色防御的"+Math.floor(100*core.values.breakArmor||0)+"%作为伤害";case 8:return"反击:战斗时,怪物每回合附加角色攻击的"+Math.floor(100*core.values.counterAttack||0)+"%作为伤害,无视角色防御";case 9:return"净化:战斗前,怪物附加勇士魔防的"+core.values.purify+"倍作为伤害";case 10:return"模仿:怪物的攻防和勇士攻防相等";case 11:return"吸血:战斗前,怪物首先吸取角色的"+Math.floor(100*a.value||0)+"%生命作为伤害"+(a.add?",并把伤害数值加到自身生命上":"");case 12:return"中毒:战斗后,勇士陷入中毒状态,每一步损失生命"+core.values.poisonDamage+"点";case 13:return"衰弱:战斗后,勇士陷入衰弱状态,攻防暂时下降"+core.values.weakValue+"点";case 14:return"诅咒:战斗后,勇士陷入诅咒状态,战斗无法获得金币和经验";case 15:return"领域:经过怪物周围"+(a.range||1)+"格时自动减生命"+(a.value||0)+"点";case 16:return"夹击:经过两只相同的怪物中间,勇士生命值变成一半";case 17:return"仇恨:战斗前,怪物附加之前积累的仇恨值作为伤害"+(core.flags.hatredDecrease?";战斗后,释放一半的仇恨值":"")+"。(每杀死一个怪物获得"+(core.values.hatred||0)+"点仇恨值)";case 18:return"阻击:经过怪物的十字领域时自动减生命"+(a.value||0)+"点,同时怪物后退一格";case 19:return"自爆:战斗后勇士的生命值变成1";case 20:return"无敌:勇士无法打败怪物,除非拥有十字架";case 21:return"退化:战斗后勇士永久下降"+(a.atkValue||0)+"点攻击和"+(a.defValue||0)+"点防御";case 22:return"固伤:战斗前,怪物对勇士造成"+(a.damage||0)+"点固定伤害,无视勇士魔防。";case 23:return"重生:怪物被击败后,角色转换楼层则怪物将再次出现";default:break}return""};enemys.prototype.canBattle=function(b){var a=this.getDamage(b);return a!=null&&a<core.status.hero.hp};enemys.prototype.getDamage=function(c){var b=core.material.enemys[c];var a=this.calDamage(b,core.status.hero.hp,core.status.hero.atk,core.status.hero.def,core.status.hero.mdef);if(a==null){return null}return a+this.getExtraDamage(b)};enemys.prototype.getExtraDamage=function(b){var a=0;if(this.hasSpecial(b.special,17)){a+=core.getFlag("hatred",0)}if(this.hasSpecial(b.special,22)){a+=b.damage||0}return a};enemys.prototype.nextCriticals=function(h,k){var o=true;k=k||1;var g=core.material.enemys[h];if(this.hasSpecial(g.special,3)||this.hasSpecial(g.special,10)){return[]}var c=this.getDamageInfo(g,core.status.hero.hp,core.status.hero.atk,core.status.hero.def,core.status.hero.mdef);if(c==null){if(core.status.hero.atk<=g.def){return[[g.def+1-core.status.hero.atk,"?"]]}return[]}var d=[],l=null;var f=c.mon_hp,b=core.status.hero.atk,e=g.def,n=c.turn;if(o){for(vaLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function events(){this.init()}events.prototype.init=function(){this.eventdata=functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a.events;this.events={battle:function(c,b,a){b.battle(c.event.id,c.x,c.y);if(b.isset(a)){a()}},getItem:function(c,b,a){b.getItem(c.event.id,1,c.x,c.y);if(b.isset(a)){a()}},openDoor:function(c,b,a){b.openDoor(c.event.id,c.x,c.y,true,function(){if(b.isset(a)){a()}b.replay()})},changeFloor:function(c,b,a){var d={};if(b.isset(c.event.data.loc)){d={x:c.event.data.loc[0],y:c.event.data.loc[1]}}if(b.isset(c.event.data.direction)){d.direction=c.event.data.direction}b.changeFloor(c.event.data.floorId,c.event.data.stair,d,c.event.data.time,function(){if(b.isset(a)){a()}b.replay()})},passNet:function(c,b,a){b.events.passNet(c);if(b.isset(a)){a()}},changeLight:function(c,b,a){b.events.changeLight(c.x,c.y);if(b.isset(a)){a()}},ski:function(c,b,a){b.events.ski();if(b.isset(a)){a()}},pushBox:function(c,b,a){b.events.pushBox(c);if(b.isset(a)){a()}},action:function(c,b,a){b.events.insertAction(c.event.data,c.x,c.y,a)}}};events.prototype.getEvents=function(a){if(!core.isset(a)){return this.events}return this.events[a]};events.prototype.initGame=function(){return this.eventdata.initGame()};events.prototype.startGame=function(a){if(core.status.isStarting){return}core.status.isStarting=true;core.hideStartAnimate(function(){core.drawText(core.clone(core.firstData.startText),function(){if(core.flags.showBattleAnimateConfirm){core.status.event.selection=core.flags.battleAnimate?0:1;core.ui.drawConfirmBox("你想开启战斗动画吗?\n之后可以在菜单栏中开启或关闭。\n(强烈建议新手开启此项)",function(){core.flags.battleAnimate=true;core.setLocalStorage("battleAnimate",true);core.startGame(a);core.utils.__init_seed();core.events.setInitData(a)},function(){core.flags.battleAnimate=false;core.setLocalStorage("battleAnimate",false);core.startGame(a);core.utils.__init_seed();core.events.setInitData(a)})}else{core.startGame(a);core.utils.__init_seed();core.events.setInitData(a)}})})};events.prototype.setInitData=function(a){return this.eventdata.setInitData(a)};events.prototype.win=function(a){return this.eventdata.win(a)};events.prototype.lose=function(a){return this.eventdata.lose(a)};events.prototype.gameOver=function(c,d){core.clearMap("animate",0,0,416,416);core.dom.gif2.innerHTML="";core.clearMap("weather",0,0,416,416);core.animateFrame.weather.type=null;core.animateFrame.weather.level=0;core.animateFrame.weather.nodes=[];core.setFg(null,0);core.ui.closePanel();var a=function(){core.ui.closePanel();core.ui.drawConfirmBox("你想下载录像吗?",function(){var e={name:core.firstData.name,version:core.firstData.version,hard:core.status.hard,seed:core.getFlag("seed"),route:core.encodeRoute(core.status.route)};core.download(core.firstData.name+"_"+core.formatDate2(new Date())+".h5route",JSON.stringify(e));core.restart()},function(){core.restart()})};var b=function(){core.ui.closePanel();if(!core.isset(c)){a();return}var e=function(h){var g=core.status.hero.hp;if(h==undefined){g=1}var f=new FormData();f.append("type","score");f.append("name",core.firstData.name);f.append("version",core.firstData.version);f.append("platform",core.platform.isPC?"PC":core.platform.isAndroid?"Android":core.platform.isIOS?"iOS":"");f.append("hard",core.status.hard);f.append("username",h||"");f.append("ending",c);f.append("lv",core.status.hero.lv);f.append("hp",Math.min(g,Math.pow(2,63)));f.append("atk",core.status.hero.atk);f.append("def",core.status.hero.def);f.append("mdef",core.status.hero.mdef);f.append("money",core.status.hero.money);f.append("experience",core.status.hero.experience);f.append("steps",core.status.hero.steps);f.append("seed",core.getFlag("seed"));f.append("totalTime",Math.floor(core.status.hero.statistics.totalTime/1000));f.append("route",core.encodeRoute(core.status.route));if(main.isCompetition){core.http("POST","/games/competition/upload.php",f)}else{core.http("POST","/games/upload.php",f)}setTimeout(function(){a()},150)};core.ui.drawConfirmBox("你想记录你的ID和成绩吗?",function(){if(main.isCompetition){e("")}else{e(prompt("请输入你的ID:"))}},function(){if(main.isCompetition){a()}else{e(undefined)}});return};if(d){core.drawText("录像回放完毕!",function(){core.restart()})}else{if(core.isset(core.values.maxValidHp)&&core.status.hero.hp>core.values.maxValidHp){core.drawText("作弊可耻!",function(){core.restart()})}else{if(core.hasFlag("debug")){core.drawText("\t[系统提示]调试模式下无法上传成绩",function(){core.restart()})}else{b()}}}};events.prototype.afterChangeFloor=function(a){if(main.mode!="play"){return}return this.eventdata.afterChangeFloor(a)};events.prototype.doEvents=function(b,c,d,a){if(!core.isset(b)){return}if(!(b instanceof Array)){b=[b]}core.waitHeroToStop(function(){core.lockControl();core.status.event={id:"action",data:{list:[{todo:core.clone(b),total:core.clone(b),condition:"false"}],x:c,y:d,callback:a}};core.events.doActLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function icons(){this.init()}icons.prototype.init=function(){this.icons=icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1};icons.prototype.getIcons=function(){return this.icons};
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function items(){this.init()}items.prototype.init=function(){this.items=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.items;this.itemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.itemEffect;this.itemEffectTip=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.itemEffectTip;this.useItemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.useItemEffect;this.canUseItemEffect=items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a.canUseItemEffect};items.prototype.getItems=function(){return this.items};items.prototype.getItemEffect=function(itemId,itemNum){var itemCls=core.material.items[itemId].cls;if(itemCls==="items"){var ratio=parseInt(core.floors[core.status.floorId].item_ratio)||1;var curr_hp=core.status.hero.hp;if(itemId in this.itemEffect){eval(this.itemEffect[itemId])}core.status.hero.statistics.hp+=core.status.hero.hp-curr_hp}else{core.addItem(itemId,itemNum)}};items.prototype.getItemEffectTip=function(itemId){var itemCls=core.material.items[itemId].cls;if(itemCls==="items"){var ratio=parseInt(core.floors[core.status.floorId].item_ratio)||1;if(itemId in this.itemEffectTip){return eval(this.itemEffectTip[itemId])||""}}return""};items.prototype.useItem=function(itemId,callback){if(!this.canUseItem(itemId)){if(core.isset(callback)){callback()}return}var itemCls=core.material.items[itemId].cls;if(itemId in this.useItemEffect){eval(this.useItemEffect[itemId])}core.updateStatusBar();if(itemId!="book"&&itemId!="fly"){core.status.route.push("item:"+itemId)}if(itemCls=="tools"){core.status.hero.items[itemCls][itemId]--}if(core.status.hero.items[itemCls][itemId]==0){delete core.status.hero.items[itemCls][itemId]}if(core.isset(callback)){callback()}};items.prototype.canUseItem=function(itemId){if(!core.hasItem(itemId)){return false}if(itemId in this.canUseItemEffect){return eval(this.canUseItemEffect[itemId])}return false};items.prototype.itemCount=function(b){if(!core.isset(b)||!core.isset(core.material.items[b])){return 0}var a=core.material.items[b].cls;if(a=="items"){return 0}return core.isset(core.status.hero.items[a][b])?core.status.hero.items[a][b]:0};items.prototype.hasItem=function(a){return core.itemCount(a)>0};items.prototype.setItem=function(b,c){var a=core.material.items[b].cls;if(a=="items"){return}if(!core.isset(core.status.hero.items[a])){core.status.hero.items[a]={}}core.status.hero.items[a][b]=c;if(a!="keys"&&c==0){delete core.status.hero.items[a][b]}};items.prototype.removeItem=function(b){if(!core.hasItem(b)){return false}var a=core.material.items[b].cls;core.status.hero.items[a][b]--;if(a!="keys"&&core.status.hero.items[a][b]==0){delete core.status.hero.items[a][b]}core.updateStatusBar();return true};items.prototype.addItem=function(c,d){var b=core.material.items[c];var a=b.cls;if(a=="items"){return}if(!core.isset(core.status.hero.items[a])){core.status.hero.items[a]={};core.status.hero.items[a][c]=0}else{if(!core.isset(core.status.hero.items[a][c])){core.status.hero.items[a][c]=0}}core.status.hero.items[a][c]+=d};
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function loader(){this.init()}loader.prototype.init=function(){};loader.prototype.setStartProgressVal=function(a){core.dom.startTopProgress.style.width=a+"%"};loader.prototype.setStartLoadTipText=function(a){core.dom.startTopLoadTips.innerHTML=a};loader.prototype.load=function(a){core.loader.loadIcons();core.loader.loadImages(core.materials,core.material.images,function(){core.material.images.images={};var b=core.clone(core.images);if(b.indexOf("hero.png")<0){b.push("hero.png")}core.loader.loadImages(b,core.material.images.images,function(){core.material.images.autotile={};core.loader.loadImages(Object.keys(core.material.icons.autotile),core.material.images.autotile,function(){core.loader.loadAnimates();core.loader.loadMusic();if(core.isset(a)){a()}})})})};loader.prototype.loadIcons=function(){this.loadImage("icons.png",function(a,b){var c=core.cropImage(b);for(var d in core.statusBar.icons){if(typeof core.statusBar.icons[d]=="number"){core.statusBar.icons[d]=c[core.statusBar.icons[d]];if(core.isset(core.statusBar.image[d])){core.statusBar.image[d].src=core.statusBar.icons[d].src}}}})};loader.prototype.loadImages=function(d,f,a){if(d.length==0){if(core.isset(a)){a()}return}var c=0;for(var b=0;b<d.length;b++){this.loadImage(d[b],function(g,h){core.loader.setStartLoadTipText("正在加载图片 "+g+"...");f[g]=h;c++;core.loader.setStartProgressVal(c*(100/d.length));if(c==d.length){if(core.isset(a)){a()}}})}};loader.prototype.loadImage=function(d,a){try{var f=d;if(f.indexOf(".")<0){f=f+".png"}var c=new Image();c.src="project/images/"+f+"?v="+main.version;if(c.complete){a(d,c);return}c.onload=function(){a(d,c)}}catch(b){console.log(b)}};loader.prototype.loadAnimates=function(){core.animates.forEach(function(a){core.http("GET","project/animates/"+a+".animate",null,function(b){try{b=JSON.parse(b);var c={};c.ratio=b.ratio;c.images=[];c.images_rev=[];b.bitmaps.forEach(function(h){if(!core.isset(h)||h==""){c.images.push(null)}else{try{var g=new Image();g.src=h;c.images.push(g)}catch(f){c.images.push(null)}}});c.frame=b.frame_max;c.frames=[];b.frames.forEach(function(g){var f=[];g.forEach(function(h){f.push({index:h[0],x:h[1],y:h[2],zoom:h[3],opacity:h[4],mirror:h[5]||0,angle:h[6]||0,})});c.frames.push(f)});core.material.animates[a]=c}catch(d){console.log(d);core.material.animates[a]=null}},function(b){console.log(b);core.material.animates[a]=null},"text/plain; charset=x-user-defined")})};loader.prototype.loadMusic=function(){core.bgms.forEach(function(b){if(/^.*\.mid$/i.test(b)){if(core.musicStatus.audioContext!=null){core.material.bgms[b]="loading";core.http("GET","project/sounds/"+b,null,function(c){try{var f=[];var g=c.length;for(var i=0;i<g;i++){f[i]=String.fromCharCode(c.charCodeAt(i)&255)}var h=core.material.bgms[b]=="starting";core.material.bgms[b]=AudioPlayer(core.musicStatus.audioContext,Replayer(MidiFile(f.join("")),Synth(44100)),true);if(h){core.playBgm(b)}}catch(d){console.log(d);core.material.bgms[b]=null}},function(c){console.log(c);core.material.bgms[b]=null},"text/plain; charset=x-user-defined")}else{core.material.bgms[b]=null}}else{var a=new Audio();a.preload="none";if(main.bgmRemote){a.src=main.bgmRemoteRoot+core.firstData.name+"/"+b}else{a.src="project/sounds/"+b}a.loop="loop";core.material.bgms[b]=a}});core.sounds.forEach(function(b){if(core.musicStatus.audioContext!=null){core.http("GET","project/sounds/"+b,null,function(c){try{core.musicStatus.audioContext.decodeAudioData(c,function(f){core.material.sounds[b]=f},function(f){console.log(f);core.material.sounds[b]=null})}catch(d){console.log(d);core.material.sounds[b]=null}},function(){console.log(e);core.material.sounds[b]=null},null,"arraybuffer")}else{var a=new Audio();a.src="project/sounds/"+b;core.material.sounds[b]=a}});if(core.musicStatus.startDirectly&&core.bgms.length>0){core.playBgm(core.bgms[0])}};
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function maps(){this.init()}maps.prototype.init=function(){this.blocksInfo=maps_90f36752_8815_4be8_b32b_d7fad1d0542e};maps.prototype.loadFloor=function(c,d){var b=core.floors[c];var a={};a.floorId=b.floorId;a.name=b.name;a.title=b.title;a.canFlyTo=b.canFlyTo;if(!core.isset(d)){d=b.map}var e=function(m,n,h){var g=[];for(var k=0;k<13;k++){for(var l=0;l<13;l++){var f=n.initBlock(l,k,m[k][l]);n.addInfo(f);n.addEvent(f,l,k,h.events[l+","+k]);n.addChangeFloor(f,l,k,h.changeFloor[l+","+k]);if(core.isset(f.event)){g.push(f)}}}return g};if(main.mode=="editor"){main.editor.mapIntoBlocks=function(g,f){return e(g,core.maps,f)}}a.blocks=e(d,this,b);return a};maps.prototype.initBlock=function(d,e,b){var a=null;b=""+b;if(b.length>2){if(b.indexOf(":f")==b.length-2){b=b.substring(0,b.length-2);a=false}else{if(b.indexOf(":t")==b.length-2){b=b.substring(0,b.length-2);a=true}}}b=parseInt(b);var c={x:d,y:e,id:b};if(a!=null){c.enable=a}if(b in this.blocksInfo){c.event=JSON.parse(JSON.stringify(this.blocksInfo[b]))}return c};maps.prototype.addInfo=function(a){if(core.isset(a.event)){if(a.event.cls.indexOf("enemy")==0&&!core.isset(a.event.trigger)){a.event.trigger="battle"}if(a.event.cls=="items"&&!core.isset(a.event.trigger)){a.event.trigger="getItem"}if(!core.isset(a.event.noPass)){if(a.event.cls.indexOf("enemy")==0||a.event.cls.indexOf("npc")==0||a.event.cls=="terrains"){a.event.noPass=true}}if(!core.isset(a.event.animate)){if(a.event.cls=="enemys"||a.event.cls=="npcs"){a.event.animate=2}if(a.event.cls=="animates"||a.event.cls=="enemy48"||a.event.cls=="npc48"){a.event.animate=4}}a.event.height=32;if(a.event.cls=="enemy48"||a.event.cls=="npc48"){a.event.height=48}}};maps.prototype.addEvent=function(a,d,e,b){if(!core.isset(b)){return}if(!core.isset(a.event)){a.event={cls:"terrains",id:"none",noPass:false}}if(typeof b=="string"){b={data:[b]}}else{if(b instanceof Array){b={data:b}}}if(!core.isset(b.data)){b.data=[]}if(core.isset(b.noPass)){a.event.noPass=b.noPass}if(!core.isset(a.enable)&&core.isset(b.enable)){a.enable=b.enable}if(!core.isset(a.event.trigger)){if(core.isset(b.trigger)){a.event.trigger=b.trigger}else{a.event.trigger="action"}}else{if(core.isset(b.trigger)&&b.trigger!="checkBlock"){a.event.trigger=b.trigger}}for(var c in b){if(c!="enable"&&c!="trigger"&&c!="noPass"&&core.isset(b[c])){a.event[c]=core.clone(b[c])}}};maps.prototype.addChangeFloor=function(a,d,e,b,c){if(!core.isset(b)){return}this.addEvent(a,d,e,{trigger:"changeFloor",data:b},c)};maps.prototype.initMaps=function(b){var d={};for(var c=0;c<b.length;c++){var a=b[c];d[a]=this.loadFloor(a)}return d};maps.prototype.save=function(e,b){if(!core.isset(b)){var d={};for(var c in e){d[c]=this.save(e,c)}return d}var f=e[b];var a=[];for(var g=0;g<13;g++){a[g]=[];for(var h=0;h<13;h++){a[g].push(0)}}f.blocks.forEach(function(i){if(core.isset(i.enable)){if(i.enable){a[i.y][i.x]=i.id+":t"}else{a[i.y][i.x]=i.id+":f"}}else{a[i.y][i.x]=i.id}});return a};maps.prototype.load=function(a,b){if(b==undefined){var c={};core.floorIds.forEach(function(d){c[d]=core.maps.loadFloor(d,a[d])});return c}return this.loadFloor(b,a[b])};maps.prototype.getMapArray=function(a){var b=[];for(var c=0;c<13;c++){b[c]=[];for(var d=0;d<13;d++){b[c].push(0)}}a.forEach(function(e){if(!(core.isset(e.enable)&&!e.enable)){b[e.y][e.x]=e.id}});return b};maps.prototype.canMoveHero=function(k,l,b,c){if(!core.isset(k)){k=core.getHeroLoc("x")}if(!core.isset(l)){l=core.getHeroLoc("y")}if(!core.isset(b)){b=core.getHeroLoc("direction")}if(!core.isset(c)){c=core.status.floorId}if(core.isset(core.floors[c].cannotMove)){var a=core.floors[c].cannotMove[k+","+l];if(core.isset(a)&&a instanceof Array&&a.indexOf(b)>=0){return false}}var h=core.getBlock(k,l,c);if(h!=null){nowId=h.block.event.id;var i=nowId.slice(0,5).toLowerCase()=="arrow";if(i){var g=nowId.slice(5).toLowerCase();if(b!=g){return false}}}var j={up:{x:0,y:-1},left:{x:-1,y:0},down:{x:0,y:1},right:{x:1,y:0}};var f=core.getBlock(k+j[b].x,l+j[b].y,c);if(f!=null){nextId=f.block.event.id;var d=nextId.slice(0,5).toLowerCase()=="arrow";if(d){var e=nextId.slice(5).toLowerCase();if((j[b].x+j[e].x)==0&&(j[b].y+j[e].y)==0){return false}}}return true};maps.prototype.canMoveDirectly=function(a,b){if(!core.flags.enableMoveDirectly){return 0}if(core.hasFlag("poison")){return 0}var e=core.getHeroLoc("x"),f=core.getHeroLoc("y");if(e==a&&f==b){return 0}if(core.getBlock(e,f)!=null||core.status.checkBlock.damage[13*e+f]>0){return 0}var m=[],l=[];m[13*e+f]=0;l.push(13*e+f);var d=[[-1,0],[1,0],[0,1],[0,-1]];while(l.length>0){var g=l.shift(),h=parseInt(g/13),i=g%13;for(var c in d){var j=h+d[c][0],k=i+d[c][1];if(j<0||j>=13||k<0||k>=13||m[13*j+k]||core.getBlock(j,k)!=null||core.status.checkBlock.damage[13*j+k]>0){continue}m[13*j+k]=m[13*h+i]+1;if(j==a&&k==b){return m[13*j+k]}l.push(13*j+k)}}return 0};maps.prototype.drawBlock=function(b,a,f,g){var e=b.event.cls,h=b.event.height||32;var c=core.material.icons[e][b.event.id];var d=core.material.images[e];a=(a||0)%(b.event.animate||1);f=fLine truncated
|
||||
+4
-2
@@ -748,7 +748,7 @@ ui.prototype.drawSettings = function () {
|
||||
core.status.event.id = 'settings';
|
||||
|
||||
this.drawChoices(null, [
|
||||
"系统设置", "快捷商店", "浏览地图", "同步存档", "重新开始", "数据统计", "操作帮助", "关于本塔", "返回游戏"
|
||||
"系统设置", "快捷商店", "浏览地图", "同步存档", "返回标题", "数据统计", "操作帮助", "关于本塔", "返回游戏"
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1921,6 +1921,7 @@ ui.prototype.drawHelp = function () {
|
||||
core.drawText([
|
||||
"\t[键盘快捷键列表]"+
|
||||
"[CTRL] 跳过对话\n" +
|
||||
"[Z] 转向\n" +
|
||||
"[X] 打开/关闭怪物手册\n" +
|
||||
"[G] 打开/关闭楼层传送器\n" +
|
||||
"[A] 读取自动存档(回退)\n" +
|
||||
@@ -1928,10 +1929,11 @@ ui.prototype.drawHelp = function () {
|
||||
"[K] 打开/关闭快捷商店选择列表\n" +
|
||||
"[T] 打开/关闭工具栏\n" +
|
||||
"[ESC] 打开/关闭系统菜单\n" +
|
||||
"[E] 显示光标\n" +
|
||||
// "[E] 显示光标\n" +
|
||||
"[H] 打开帮助页面\n"+
|
||||
"[R] 回放\n"+
|
||||
"[SPACE] 轻按(仅在轻按开关打开时有效)\n" +
|
||||
"[PgUp/PgDn] 浏览地图\n"+
|
||||
"[1] 快捷使用破墙镐\n" +
|
||||
"[2] 快捷使用炸弹/圣锤\n" +
|
||||
"[3] 快捷使用中心对称飞行器",
|
||||
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function ui(){this.init()}ui.prototype.init=function(){this.uidata=functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a.ui};ui.prototype.clearMap=function(c,e,f,d,a){if(c=="all"){for(var b in core.canvas){core.canvas[b].clearRect(0,0,416,416)}core.dom.gif.innerHTML=""}else{core.canvas[c].clearRect(e||0,f||0,d||416,a||416)}};ui.prototype.fillText=function(b,d,e,f,c,a){if(core.isset(c)){core.setFillStyle(b,c)}if(core.isset(a)){core.setFont(b,a)}core.canvas[b].fillText(d,e,f)};ui.prototype.fillRect=function(b,e,f,d,a,c){if(core.isset(c)){core.setFillStyle(b,c)}core.canvas[b].fillRect(e,f,d,a)};ui.prototype.strokeRect=function(c,f,g,e,a,d,b){if(core.isset(d)){core.setStrokeStyle(c,d)}if(core.isset(b)){core.setLineWidth(c,b)}core.canvas[c].strokeRect(f,g,e,a)};ui.prototype.drawLine=function(b,d,f,e,g,c,a){if(core.isset(c)){core.setStrokeStyle(b,c)}if(core.isset(a)){core.setLineWidth(b,a)}core.canvas[b].beginPath();core.canvas[b].moveTo(d,f);core.canvas[b].lineTo(e,g);core.canvas[b].closePath();core.canvas[b].stroke()};ui.prototype.setFont=function(b,a){core.canvas[b].font=a};ui.prototype.setLineWidth=function(c,a){if(c=="all"){for(var b in core.canvas){core.canvas[b].lineWidth=a}}core.canvas[c].lineWidth=a};ui.prototype.saveCanvas=function(a){core.canvas[a].save()};ui.prototype.loadCanvas=function(a){core.canvas[a].restore()};ui.prototype.setStrokeStyle=function(b,c){if(b=="all"){for(var a in core.canvas){core.canvas[a].strokeStyle=c}}else{core.canvas[b].strokeStyle=c}};ui.prototype.setAlpha=function(c,a){if(c=="all"){for(var b in core.canvas){core.canvas[b].globalAlpha=a}}else{core.canvas[c].globalAlpha=a}};ui.prototype.setOpacity=function(b,c){if(b=="all"){for(var a in core.canvas){core.canvas[a].canvas.style.opacity=c}}else{core.canvas[b].canvas.style.opacity=c}};ui.prototype.setFillStyle=function(b,c){if(b=="all"){for(var a in core.canvas){core.canvas[a].fillStyle=c}}else{core.canvas[b].fillStyle=c}};ui.prototype.closePanel=function(){core.status.boxAnimateObjs=[];clearInterval(core.status.event.interval);core.clearMap("ui",0,0,416,416);core.setAlpha("ui",1);core.unLockControl();core.status.event.data=null;core.status.event.id=null;core.status.event.selection=null;core.status.event.ui=null;core.status.event.interval=null};ui.prototype.drawTip=function(e,c){var f,g,h,a,b=false,d=0;clearInterval(core.interval.tipAnimate);core.setFont("data","16px Arial");core.setOpacity("data",0);core.canvas.data.textAlign="left";if(!core.isset(c)){f=16;g=18;h=f+core.canvas.data.measureText(e).width+16;a=42}else{f=44;g=18;h=f+core.canvas.data.measureText(e).width+8;a=42}core.interval.tipAnimate=window.setInterval(function(){if(b){d-=0.1}else{d+=0.1}core.setOpacity("data",d);core.clearMap("data",5,5,400,a);core.fillRect("data",5,5,h,a,"#000");if(core.isset(c)){core.canvas.data.drawImage(core.material.images.items,0,c*32,32,32,10,8,32,32)}core.fillText("data",e,f+5,g+15,"#fff");if(d>0.6||d<0){if(b){core.clearMap("data",5,5,400,a);core.setOpacity("data",1);clearInterval(core.interval.tipAnimate);return}else{if(!core.isset(core.timeout.getItemTipTimeout)){core.timeout.getItemTipTimeout=window.setTimeout(function(){b=true;core.timeout.getItemTipTimeout=null},750)}d=0.6;core.setOpacity("data",d)}}},30)};ui.prototype.drawText=function(b,a){if(core.isset(b)){if((core.isset(core.status.event)&&core.status.event.id=="action")||(core.isset(core.status.replay)&&core.status.replay.replaying)){core.insertAction(b,null,null,a);return}if(typeof b=="string"){b=[{content:b}]}else{if(b instanceof Object&&core.isset(b.content)){b=[b]}else{if(!(b instanceof Array)){core.drawTip("出错了");console.log(b);return}}}core.status.event={id:"text",data:{list:b,callback:a}};core.lockControl();core.stopAutomaticRoute();setTimeout(function(){core.drawText()},30);return}if(core.status.event.data.list.length==0){var a=core.status.event.data.callback;core.ui.closePanel(false);if(core.isset(a)){a()}return}var c=core.status.event.data.list.shift();if(typeof c=="string"){core.ui.drawTextBox(c)}else{core.ui.drawTextBox(c.content,c.id)}};ui.prototype.drawTextBox=function(c){clearInterval(core.status.event.interval);var n=null,r=null,o=null,l=null,m=32,a=null;if(c.indexOf("\t[")==0||c.indexOf("\\t[")==0){var p=c.indexOf("]");if(p>=0){var x=c.substring(2,p);if(c.indexOf("\\t[")==0){x=c.substring(3,p)}c=c.substring(p+1);var w=x.split(",");if(w.length==1){n=w[0];if(n!="hero"){if(core.isset(core.material.enemys[n])){r=core.material.enemys[n].name;if(core.isset(core.material.icons.enemy48[n])){o=core.material.images.enemy48;l=core.material.icons.enemy48[n];m=48;a=4}else{o=core.material.images.enemys;l=core.material.icons.enemys[n];m=32;a=2}}else{r=n;n="npc";o=null;l=null}}}else{n="npc";r=w[0];if(core.isset(core.material.icons.npc48[w[1]])){o=core.material.images.npc48;l=core.material.icons.npc48[w[1]];m=48;a=4}else{o=core.material.images.npcs;l=core.material.icons.npcs[w[1]];m=32;a=2}}}}var y=core.status.textAttribute||core.initStatus.textAttribute;var s=y.position,t=null,uLine truncated
|
||||
Vendored
+1
@@ -0,0 +1 @@
|
||||
function utils(){}utils.prototype.init=function(){};utils.prototype.replaceText=function(a){return a.replace(/\${([^}]+)}/g,function(c,b){return core.calValue(b)})};utils.prototype.calValue=function(value){if(typeof value=="number"){return value}if(value instanceof Function){return value()}value=value.replace(/status:([\w\d_]+)/g,"core.getStatus('$1')");value=value.replace(/item:([\w\d_]+)/g,"core.itemCount('$1')");value=value.replace(/flag:([\w\d_]+)/g,"core.getFlag('$1', 0)");return eval(value)};utils.prototype.splitLines=function(a,g,f,c){if(core.isset(c)){core.setFont(a,c)}var b=[];var e=0;for(var d=0;d<g.length;d++){if(g.charAt(d)=="\n"){b.push(g.substring(e,d));e=d+1}else{if(g.charAt(d)=="\\"&&g.charAt(d+1)=="n"){b.push(g.substring(e,d));e=d+2}else{var h=g.substring(e,d+1);var j=core.canvas[a].measureText(h).width;if(j>f){b.push(g.substring(e,d));e=d}}}}b.push(g.substring(e));return b};utils.prototype.unshift=function(c,d){if(!(c instanceof Array)||!core.isset(d)){return}if(d instanceof Array){core.clone(d).reverse().forEach(function(a){c.unshift(a)})}else{c.unshift(d)}return c};utils.prototype.setLocalStorage=function(b,c){try{localStorage.setItem(core.firstData.name+"_"+b,JSON.stringify(c));return true}catch(a){console.log(a);return false}};utils.prototype.getLocalStorage=function(b,a){var c=localStorage.getItem(core.firstData.name+"_"+b);if(core.isset(c)){return JSON.parse(c)}return a};utils.prototype.removeLocalStorage=function(a){localStorage.removeItem(core.firstData.name+"_"+a)};utils.prototype.clone=function(b){if(!core.isset(b)){return b}if(b instanceof Date){var a=new Date();a.setTime(b.getTime());return a}if(b instanceof Array){var a=[];for(var c in b){a[c]=core.clone(b[c])}return a}if(b instanceof Function){return b}if(b instanceof Object){var a={};for(var c in b){if(b.hasOwnProperty(c)){a[c]=core.clone(b[c])}}return a}return b};utils.prototype.cropImage=function(e,g){g=g||32;var b=document.createElement("canvas");var c=b.getContext("2d");b.width=g;b.height=g;var a=[];for(var d=0;d<e.height;d+=g){c.drawImage(e,0,d,g,g,0,0,g,g);var f=new Image();f.src=b.toDataURL("image/png");a.push(f);c.clearRect(0,0,g,g)}return a};utils.prototype.formatDate=function(a){if(!core.isset(a)){return""}return a.getFullYear()+"-"+core.setTwoDigits(a.getMonth()+1)+"-"+core.setTwoDigits(a.getDate())+" "+core.setTwoDigits(a.getHours())+":"+core.setTwoDigits(a.getMinutes())+":"+core.setTwoDigits(a.getSeconds())};utils.prototype.formatDate2=function(a){if(!core.isset(a)){return""}return a.getFullYear()+core.setTwoDigits(a.getMonth()+1)+core.setTwoDigits(a.getDate())+core.setTwoDigits(a.getHours())+core.setTwoDigits(a.getMinutes())+core.setTwoDigits(a.getSeconds())};utils.prototype.setTwoDigits=function(a){return parseInt(a)<10?"0"+a:a};utils.prototype.formatBigNumber=function(g){g=Math.floor(parseFloat(g));if(!core.isset(g)){return"???"}var b=g<0?"-":"";g=Math.abs(g);if(g<=999999){return b+g}var a=[{val:1e+20,c:"g"},{val:1e+16,c:"j"},{val:1000000000000,c:"z"},{val:100000000,c:"e"},{val:10000,c:"w"},];for(var d=0;d<a.length;d++){var e=a[d];if(g>=10*e.val){var f=g/e.val;return b+f.toFixed(Math.max(0,Math.floor(4-Math.log10(f+1))))+e.c}}return b+g};utils.prototype.arrayToRGB=function(a){var d=parseInt(a[0])||0,c=parseInt(a[1])||0,b=parseInt(a[2])||0;if(d<0){d=0}if(b<0){b=0}if(c<0){c=0}if(d>255){d=255}if(b>255){b=255}if(c>255){c=255}return"#"+((1<<24)+(d<<16)+(c<<8)+b).toString(16).slice(1)};utils.prototype.encodeRoute=function(d){var a="";var c="",b=0;d.forEach(function(e){if(e=="up"||e=="down"||e=="left"||e=="right"){if(e!=c&&b>0){a+=c.substring(0,1).toUpperCase();if(b>1){a+=b}b=0}c=e;b++}else{if(b>0){a+=c.substring(0,1).toUpperCase();if(b>1){a+=b}b=0}if(e.indexOf("item:")==0){a+="I"+e.substring(5)+":"}else{if(e.indexOf("fly:")==0){a+="F"+e.substring(4)+":"}else{if(e.indexOf("choices:")==0){a+="C"+e.substring(8)}else{if(e.indexOf("shop:")==0){a+="S"+e.substring(5)}else{if(e=="turn"){a+="T"}else{if(e=="getNext"){a+="G"}else{if(e.indexOf("input:")==0){a+="P"+e.substring(6)}else{if(e=="no"){a+="N"}else{if(e.indexOf("move:")==0){a+="M"+e.substring(5)}else{if(e.indexOf("key:")==0){a+="K"+e.substring(4)}else{if(e.indexOf("random:")==0){a+="X"+e.substring(7)}}}}}}}}}}}}});if(b>0){a+=c.substring(0,1).toUpperCase();if(b>1){a+=b}}return a};utils.prototype.decodeRoute=function(j){if(!core.isset(j)){return j}var a=[],g=0;var d=function(c){var i="";while(g<j.length&&!isNaN(j.charAt(g))){i+=j.charAt(g++)}if(i.length==0){i="1"}return core.isset(c)?i:parseInt(i)};var e=function(){var c="";while(g<j.length&&/\w/.test(j.charAt(g))){c+=j.charAt(g++)}g++;return c};while(g<j.length){var b=j.charAt(g++);var h=(b=="I"||b=="F"||b=="S")?e():d();switch(b){case"U":for(var f=0;f<h;f++){a.push("up")}break;case"D":for(var f=0;f<h;f++){a.push("down")}break;case"L":for(var f=0;f<h;f++){a.push("left")}break;case"R":for(var f=0;f<h;f++){a.push("right")}break;case"I":a.push("item:"+h);break;case"F":a.push("fly:"+h);break;case"C":a.push("choices:"+h);brLine truncated
|
||||
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>BuildMachineOSBuild</key>
|
||||
<string>17E202</string>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>MTBuilder</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.xiongdianpku.MTBuilder</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>MTBuilder</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSupportedPlatforms</key>
|
||||
<array>
|
||||
<string>MacOSX</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1</string>
|
||||
<key>DTCompiler</key>
|
||||
<string>com.apple.compilers.llvm.clang.1_0</string>
|
||||
<key>DTPlatformBuild</key>
|
||||
<string>9E501</string>
|
||||
<key>DTPlatformVersion</key>
|
||||
<string>GM</string>
|
||||
<key>DTSDKBuild</key>
|
||||
<string>17E189</string>
|
||||
<key>DTSDKName</key>
|
||||
<string>macosx10.13</string>
|
||||
<key>DTXcode</key>
|
||||
<string>0931</string>
|
||||
<key>DTXcodeBuild</key>
|
||||
<string>9E501</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.10</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright © 2018年 熊典. All rights reserved.</string>
|
||||
<key>NSMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -0,0 +1 @@
|
||||
APPL????
|
||||
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
BIN
Binary file not shown.
@@ -0,0 +1,252 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>files</key>
|
||||
<dict>
|
||||
<key>Resources/Assets.car</key>
|
||||
<data>
|
||||
Y8vFWeV9aMFK2k/Fmvn1VKDb4G4=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/3Jh-0i-2oC-view-FlG-D0-fB4.nib</key>
|
||||
<data>
|
||||
EN/jmkBY5XqitaaV2kWybEgMtTE=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/8cO-Uq-prt-view-GPE-0I-haQ.nib</key>
|
||||
<data>
|
||||
vZO5vWZuRi0vaSFqKPCW1qksfDE=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
|
||||
<data>
|
||||
71E/nyD1JC6i4rw6+kjjVgE/fZA=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
|
||||
<data>
|
||||
lC9mNWqzXYAYynusmnCrDuM3hvI=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSViewController-3Jh-0i-2oC.nib</key>
|
||||
<data>
|
||||
jBRfznhMbiKUnUxlCD1QLUegGsc=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
|
||||
<data>
|
||||
S9xl+rRRrH6aWKPTrX11XmKhYtA=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-QqD-oc-2tR.nib</key>
|
||||
<data>
|
||||
a5hup3BYBUycbe+iJd/nx+VQ/rA=
|
||||
</data>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
|
||||
<data>
|
||||
7osH7f7CY2aFRWbCLAy1odTex/M=
|
||||
</data>
|
||||
</dict>
|
||||
<key>files2</key>
|
||||
<dict>
|
||||
<key>Resources/Assets.car</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
Y8vFWeV9aMFK2k/Fmvn1VKDb4G4=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
R6hkb6fWvTpPEJXUWnyv4rhwHuVVIqsihlgRCdNNoz4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/3Jh-0i-2oC-view-FlG-D0-fB4.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
EN/jmkBY5XqitaaV2kWybEgMtTE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
8KgZX7l1DB4wlq8OlL6h9gk2PUditNbKqqR7qnoHCoc=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/8cO-Uq-prt-view-GPE-0I-haQ.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
vZO5vWZuRi0vaSFqKPCW1qksfDE=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
aK2kvZcgmqywotLHVkXGbEh1LkOnXWQEX6RKwgp3f7s=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/Info.plist</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
71E/nyD1JC6i4rw6+kjjVgE/fZA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
d1R62G7VThDKTjMMGGoUR6TC9bR0hjwLNqAggKJwsS0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/MainMenu.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
lC9mNWqzXYAYynusmnCrDuM3hvI=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
ZBTMovff3XB5dFKWqxpFhQsHN7/F4Zfp45tuh4OSDB0=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSViewController-3Jh-0i-2oC.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
jBRfznhMbiKUnUxlCD1QLUegGsc=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
niqIc11tpbnFJIeMHBNiCcjwUkpkJvJJoAKTguRNp/s=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
S9xl+rRRrH6aWKPTrX11XmKhYtA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
unrn3sgw+6nM2WDwyTjK8g/wIOAogLhFXRotyPK6xIw=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/NSWindowController-QqD-oc-2tR.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
a5hup3BYBUycbe+iJd/nx+VQ/rA=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
P/jSqX6j8bzFQoaQzsZl49a9zRuMnaO4/Gq+iECoDu4=
|
||||
</data>
|
||||
</dict>
|
||||
<key>Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib</key>
|
||||
<dict>
|
||||
<key>hash</key>
|
||||
<data>
|
||||
7osH7f7CY2aFRWbCLAy1odTex/M=
|
||||
</data>
|
||||
<key>hash2</key>
|
||||
<data>
|
||||
aNkXpHLXtb/zTBJ/LsXFPlcRqVfZh4L5qRk4kUZx2NE=
|
||||
</data>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>rules</key>
|
||||
<dict>
|
||||
<key>^Resources/</key>
|
||||
<true/>
|
||||
<key>^Resources/.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Resources/Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^version.plist$</key>
|
||||
<true/>
|
||||
</dict>
|
||||
<key>rules2</key>
|
||||
<dict>
|
||||
<key>.*\.dSYM($|/)</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>11</real>
|
||||
</dict>
|
||||
<key>^(.*/)?\.DS_Store$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>2000</real>
|
||||
</dict>
|
||||
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^.*</key>
|
||||
<true/>
|
||||
<key>^Info\.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^PkgInfo$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^Resources/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/</key>
|
||||
<dict>
|
||||
<key>optional</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1000</real>
|
||||
</dict>
|
||||
<key>^Resources/.*\.lproj/locversion.plist$</key>
|
||||
<dict>
|
||||
<key>omit</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>1100</real>
|
||||
</dict>
|
||||
<key>^Resources/Base\.lproj/</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>1010</real>
|
||||
</dict>
|
||||
<key>^[^/]+$</key>
|
||||
<dict>
|
||||
<key>nested</key>
|
||||
<true/>
|
||||
<key>weight</key>
|
||||
<real>10</real>
|
||||
</dict>
|
||||
<key>^embedded\.provisionprofile$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
<key>^version\.plist$</key>
|
||||
<dict>
|
||||
<key>weight</key>
|
||||
<real>20</real>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,53 +0,0 @@
|
||||
快捷键说明:
|
||||
|
||||
=== 全局 ===
|
||||
[↑][↓][←][→] 移动勇士
|
||||
[CTRL] 跳过对话
|
||||
[Z] 转向
|
||||
[X] 打开/关闭怪物手册
|
||||
[G] 打开/关闭楼层传送器
|
||||
[A] 读取自动存档
|
||||
[S] 打开/关闭存档页面
|
||||
[D] 打开/关闭读档页面
|
||||
[K] 打开/关闭快捷商店选择列表
|
||||
[T] 打开/关闭工具栏
|
||||
[ESC] 打开/关闭系统菜单
|
||||
[E] 显示光标
|
||||
[H] 打开帮助页面
|
||||
[R] 回放
|
||||
[SPACE] 轻按(仅在轻按开关打开时有效)
|
||||
[1] 快捷使用破墙镐
|
||||
[2] 快捷使用炸弹/圣锤(先检测有没有炸弹,没有再检测圣锤)
|
||||
[3] 快捷使用中心对称飞行器
|
||||
|
||||
=== 文本显示界面 ===
|
||||
[SPACE]/[ENTER] 继续
|
||||
|
||||
=== 选项列表 ===
|
||||
[↑][↓] 移动当前选择项
|
||||
[ESC] 返回
|
||||
[SPACE]/[ENTER] 确认该选项
|
||||
|
||||
=== 怪物手册页面 ===
|
||||
[↑][↓][←][→] 翻页
|
||||
[ESC]/[X] 关闭怪物手册
|
||||
|
||||
=== 楼传器页面 ===
|
||||
[↑][↓][←][→] 更改楼层
|
||||
[SPACE]/[ENTER] 确认传送
|
||||
[ESC]/[G] 关闭楼传器
|
||||
|
||||
=== 道具栏页面 ===
|
||||
[↑][↓][←][→] 更改当前道具
|
||||
[SPACE]/[ENTER] 确认使用道具
|
||||
[ESC]/[T] 关闭道具栏
|
||||
|
||||
=== 存读档页面 ===
|
||||
[↑][↓][←][→] 更改当前存读档位置
|
||||
[PAGEUP][PAGEDOWN] 存读档翻页
|
||||
[SPACE]/[ENTER] 确认存读档
|
||||
[ESC]/[S]/[D] 关闭存读档界面
|
||||
|
||||
=== 正在使用中心对称飞行器时 ===
|
||||
[3]/[SPACE]/[ENTER] 确认飞行
|
||||
其他键 取消飞行
|
||||
@@ -1,19 +1,20 @@
|
||||
HTML5魔塔样板V2.3
|
||||
|
||||
地图编辑器可以右键复制或移动图块 √
|
||||
事件:while循环处理 √
|
||||
事件:等待用户操作并获得按键或点击信息 √
|
||||
地图数据统计 √
|
||||
衰弱可以减少攻防的比例 √
|
||||
便捷PS工具可以批量导入素材 √
|
||||
除Autotile外均可自动注册 √
|
||||
支持status:x获得当前坐标 √
|
||||
core.debug()改成调试模式,可以Ctrl穿墙 √
|
||||
新建地图可以保留楼层属性 √
|
||||
地图编辑器可用PageUp和PageDown切换楼层 √
|
||||
提供大量素材,可直接取用 √
|
||||
重写大部分教程,新增大量拓展描述 √
|
||||
大量细节进行优化,所有已知的bug进行了修复 √
|
||||
启动服务和便捷PS工具(Mac版)
|
||||
地图编辑器可以右键复制或移动图块
|
||||
事件:while循环处理
|
||||
事件:等待用户操作并获得按键或点击信息
|
||||
地图数据统计
|
||||
衰弱可以减少攻防的比例
|
||||
便捷PS工具可以批量导入素材
|
||||
除Autotile外均可自动注册
|
||||
支持status:x获得当前坐标
|
||||
core.debug()改成调试模式,可以Ctrl穿墙
|
||||
新建地图可以保留楼层属性
|
||||
地图编辑器可用PageUp和PageDown切换楼层
|
||||
提供大量素材,可直接取用
|
||||
重写大部分教程,新增大量拓展描述
|
||||
大量细节进行优化,所有已知的bug进行了修复
|
||||
|
||||
-----------------------------------------------------------------------
|
||||
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
将几个RM塔的素材进行归整后,上传到了百度网盘和QQ群文件可供下载使用。
|
||||
|
||||
包含:
|
||||
- 地面图(Tilesets)
|
||||
- 道具和帧动画
|
||||
- 行走图(勇士、怪物和NPC等)
|
||||
- 动画(可被RM动画导出器直接导出)
|
||||
- 自动元件(Autotiles)
|
||||
- 音效
|
||||
等六个部分
|
||||
|
||||
百度网盘下载地址:
|
||||
|
||||
https://pan.baidu.com/s/1vXICR79ZoP5LXujhlAjN-A
|
||||
|
||||
也可以在HTML5魔塔交流群539113091的群文件中找“常用素材”下载。
|
||||
Reference in new issue
Block a user