From 5e5f5628f6d77743a851f264a9642c0c28f620c7 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Tue, 13 Oct 2020 15:37:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B6272=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _docs/api.md | 3 --- _server/CodeMirror/defs.js | 4 ---- _server/MotaAction.g4 | 6 +++--- _server/editor_blocklyconfig.js | 6 +++--- _server/table/comment.js | 7 +++++++ libs/maps.js | 22 +++++++++++----------- libs/ui.js | 9 ++------- mota-js10月和273issue.txt | 26 ++++++++++++++------------ project/functions.js | 1 + runtime.d.ts | 3 --- 10 files changed, 41 insertions(+), 46 deletions(-) diff --git a/_docs/api.md b/_docs/api.md index c0f59e31..ffd1710e 100644 --- a/_docs/api.md +++ b/_docs/api.md @@ -1726,9 +1726,6 @@ name为画布名,可以是系统画布之一,也可以是任意自定义动 如果name也可以是'all',若为all则为清空所有系统画布。 参考资料:https://www.w3school.com.cn/tags/canvas_clearrect.asp -clearTip: fn() -清除左上角提示内容 - clearUI: fn() 清空UI层内容 diff --git a/_server/CodeMirror/defs.js b/_server/CodeMirror/defs.js index 84897a22..63b8a414 100644 --- a/_server/CodeMirror/defs.js +++ b/_server/CodeMirror/defs.js @@ -3365,10 +3365,6 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [ "!url": "https://www.w3school.com.cn/tags/canvas_arc.asp", "!type": "fn(name: string|CanvasRenderingContext2D, x: number, y: number, r: number, style?: string)" }, - "clearTip": { - "!doc": "清除左上角提示内容", - "!type": "fn()" - }, "strokeRoundRect": { "!doc": "在某个canvas上绘制一个圆角矩形的边框", "!type": "fn(name: string|CanvasRenderingContext2D, x: number, y: number, width: number, height: number, radius: number, style?: string, lineWidth?: number, angle?: number)" diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 1a9ed2a5..dc1815e7 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -2070,7 +2070,7 @@ moveHero_s tooltip : moveHero:移动勇士,用这种方式移动勇士的过程中将无视一切地形, 无视一切事件, 中毒状态也不会扣血 helpUrl : /_docs/#/instruction default : ["",false,"上右3下2后4左前2"] -colour : this.dataColor +colour : this.mapColor IntString_0 = IntString_0 ?(', "time": '+IntString_0):''; Bool_0 = Bool_0?', "async": true':''; var code = '{"type": "moveHero"'+IntString_0+Bool_0+', "steps": '+JSON.stringify(StepString_0)+'},\n'; @@ -2137,7 +2137,7 @@ tooltip : jumpHero: 跳跃勇士 helpUrl : /_docs/#/instruction default : ["","",500,false] selectPoint : ["PosString_0", "PosString_1"] -colour : this.dataColor +colour : this.mapColor var floorstr = ''; if (PosString_0 && PosString_1) { floorstr = ', "loc": ['+PosString_0+','+PosString_1+']'; @@ -2156,7 +2156,7 @@ jumpHero_1_s tooltip : jumpHero: 跳跃勇士,给定增量 helpUrl : /_docs/#/instruction default : ["0","0",500,false] -colour : this.dataColor +colour : this.mapColor var floorstr = ''; if (PosString_0 && PosString_1) { floorstr = ', "dxy": ['+PosString_0+','+PosString_1+']'; diff --git a/_server/editor_blocklyconfig.js b/_server/editor_blocklyconfig.js index ddbee57b..de5f78c1 100644 --- a/_server/editor_blocklyconfig.js +++ b/_server/editor_blocklyconfig.js @@ -125,9 +125,6 @@ editor_blocklyconfig=(function(){ MotaActionBlocks['input2_s'].xmlText(), MotaActionBlocks['update_s'].xmlText(), MotaActionBlocks['moveAction_s'].xmlText(), - MotaActionBlocks['moveHero_s'].xmlText(), - MotaActionBlocks['jumpHero_s'].xmlText(), - MotaActionBlocks['jumpHero_1_s'].xmlText(), MotaActionBlocks['changeFloor_s'].xmlText(), MotaActionBlocks['changePos_s'].xmlText(), MotaActionBlocks['battle_s'].xmlText(), @@ -148,7 +145,10 @@ editor_blocklyconfig=(function(){ MotaActionBlocks['hide_s'].xmlText(), MotaActionBlocks['setBlock_s'].xmlText(), MotaActionBlocks['turnBlock_s'].xmlText(), + MotaActionBlocks['moveHero_s'].xmlText(), MotaActionBlocks['move_s'].xmlText(), + MotaActionBlocks['jumpHero_s'].xmlText(), + MotaActionBlocks['jumpHero_1_s'].xmlText(), MotaActionBlocks['jump_s'].xmlText(), MotaActionBlocks['jump_1_s'].xmlText(), MotaActionBlocks['showBgFgMap_s'].xmlText(), diff --git a/_server/table/comment.js b/_server/table/comment.js index bc2ae5ee..8d82b009 100644 --- a/_server/table/comment.js +++ b/_server/table/comment.js @@ -236,6 +236,13 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "_range": "thiseval==~~thiseval||thiseval==null", "_docs": "固伤", "_data": "战前扣血的点数" + }, + "afterBattle": { + "_leaf": true, + "_type": "event", + "_event": "afterBattle", + "_docs": "战后事件", + "_data": "和该怪物战斗后触发的事件列表" } } }, diff --git a/libs/maps.js b/libs/maps.js index ae6997d5..4822938d 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -867,21 +867,22 @@ maps.prototype._drawBlockInfo_bgfg = function (blockInfo, name, x, y, ctx) { core.drawImage(ctx, core.material.groundCanvas.canvas, px, py); } var alpha = null; - if (name == 'fg' && this._drawBlockInfo_shouldBlurFg()) { - var eventArr = this.getMapArray(); - if (eventArr != null && eventArr[y][x] != 0) { - ctx = core.getContextByName(ctx); - alpha = ctx.globalAlpha; - core.setAlpha(ctx, 0.6); - } + if (name == 'fg' && this._drawBlockInfo_shouldBlurFg(x, y)) { + ctx = core.getContextByName(ctx); + alpha = ctx.globalAlpha; + core.setAlpha(ctx, 0.6); } core.drawImage(ctx, image, posX * 32, posY * height, 32, height, px, py + 32 - height, 32, height); if (alpha != null) core.setAlpha(ctx, alpha); } ////// 是否应当存在事件时虚化前景层 ////// -maps.prototype._drawBlockInfo_shouldBlurFg = function () { - return main.mode == 'editor' || core.flags.blurFg; +maps.prototype._drawBlockInfo_shouldBlurFg = function (x, y) { + if (main.mode == 'play' && !core.flags.blurFg) return false; + var block = this.getBlock(x, y); + if (block == null || block.id == 0) return false; + if (block.event.cls == 'autotile' || block.event.cls == 'tileset') return !block.event.script; + return true; } ////// 生成groundPattern ////// @@ -1577,8 +1578,7 @@ maps.prototype.stairExists = function (x, y, floorId) { var blockId = this.getBlockId(x, y, floorId); if (blockId == null) return false; var ids = ['upFloor','downFloor']; - if (core.flags.flyRecordPosition) - ids = ids.concat(['leftPortal','rightPortal','upPortal','downPortal']); + ids = ids.concat(['leftPortal','rightPortal','upPortal','downPortal']); return ids.indexOf(blockId)>=0; } diff --git a/libs/ui.js b/libs/ui.js index 909c22e7..14f81c74 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -708,11 +708,6 @@ ui.prototype._drawTip_drawOne = function (tip) { core.setAlpha('data', 1); } -ui.prototype.clearTip = function () { - core.clearMap('data', 0, 0, this.PIXEL, 50); - core.animateFrame.tip = null; -} - ////// 地图中间绘制一段文字 ////// ui.prototype.drawText = function (contents, callback) { if (contents != null) return this._drawText_setContent(contents, callback); @@ -2126,7 +2121,7 @@ ui.prototype._drawBookDetail = function (index) { if (!enemy) return; var content = info[1].join("\n"); core.status.event.id = 'book-detail'; - core.clearTip(); + core.animateFrame.tip = null; core.clearMap('data'); var left = 10, width = this.PIXEL - 2 * left, right = left + width; @@ -2330,7 +2325,7 @@ ui.prototype._drawViewMaps = function (index, x, y) { core.status.event.id = 'viewMaps'; this.clearUI(); if (index == null) return this._drawMaps_drawHint(); - core.clearTip(); + core.animateFrame.tip = null; core.status.checkBlock.cache = {}; var data = this._drawMaps_buildData(index, x, y); core.fillRect('ui', 0, 0, this.PIXEL, this.PIXEL, '#000000'); diff --git a/mota-js10月和273issue.txt b/mota-js10月和273issue.txt index 727e7fde..09495033 100644 --- a/mota-js10月和273issue.txt +++ b/mota-js10月和273issue.txt @@ -1,28 +1,30 @@ 2.7.2改版和多语言版中做出的功能性改进: (√)1. terrains.png中追加了14种薄墙图块(不可出入方向一致,画在非事件层可使勇士和阻击怪无法穿过)和仿rm柜台,但没有向下延伸绘制的效果。 -2. 怪物追加了批量战后事件(比照了道具的useItemEvent和其他图块的script),此事件对同种任何怪物生效,移动/跳跃后依然生效。 +(√)2. 怪物追加了批量战后事件(比照了道具的useItemEvent和其他图块的script),此事件对同种任何怪物生效,移动/跳跃后依然生效。 (?)2.1 炸弹只炸面前的情况增加了触发两种战后事件,以方便作者。 (x)3. 怪物追加了攻击勇士的动画,该动画存在时会作为勇士攻击怪物动画的回调,天降强制战斗时则覆盖勇士攻击怪物的动画。 (x)4. 插件编写init中追加了两个API用来将project\enemys.js转换成csv格式或转换回来,以方便作者读写(希望此思路也用于其他文件如project\maps.js来方便通行性等属性的读写)。其中批量战后事件的存储方式参考了自定义录像项的要求,即JSON.stringify再core.encodeBase64 -5. core.stairExists()改为了始终允许87到94号图块,毕竟“不想允许这些图块的作者只需要换别的素材”,而“想允许这些图块的作者则不得不魔改/复写函数或者开启平面模式,但该作者未必需求玩家飞回上次离开的位置”。 +(√)5. core.stairExists()改为了始终允许87到94号图块,毕竟“不想允许这些图块的作者只需要换别的素材”,而“想允许这些图块的作者则不得不魔改/复写函数或者开启平面模式,但该作者未必需求玩家飞回上次离开的位置”。 (√)6. 道具属性移除了equipCondition,与canUseItemEffect合并,null依然表示不可使用但可装备。装备属性的事件编辑器中提示作者修改cls和设置穿戴条件。 -7. 无参的入口方块全部统一,比如战后、开门后、两个arrive和公共事件,以方便复制粘贴,不然老提示入口方块类型不符。 -7.1 doorInfo的开关门时间分成了两个数,有些门开关速度作者可能需要不一致。 -7.2 无视地形移动/跳跃勇士挪到了地图处理类,因为经常和图块的移动跳跃一起用于演出且都没有碰撞效果。 -7.3 UI绘制的颜色改成了注释的浅紫色,各种子场合块的颜色改成了入口方块的深紫色,以和地图处理类的浅蓝色相区分。 -8. 修复了Math一元运算值块转换为json时的语法错误,追加了部分函数。drawTip事件追加了第几帧的参数。 -9. 玩家设置中追加了左撇子模式,开启后wsad起方向键的作用,ijkl起原wsad的SL作用,以方便键鼠并用。 -10. 移除了部分引用极少的函数,如仇恨怪详情、claerTip和tryUseItem改成了直接inline,从道具栏使用道具失败时不再closePanel,以方便玩家继续选择其他道具(破炸冰这三个先斩后奏的就没办法了)。 +(x)7. 无参的入口方块全部统一,比如战后、开门后、两个arrive和公共事件,以方便复制粘贴,不然老提示入口方块类型不符。 +(x)7.1 doorInfo的开关门时间分成了两个数,有些门开关速度作者可能需要不一致。 +(√)7.2 无视地形移动/跳跃勇士挪到了地图处理类,因为经常和图块的移动跳跃一起用于演出且都没有碰撞效果。 +(x)7.3 UI绘制的颜色改成了注释的浅紫色,各种子场合块的颜色改成了入口方块的深紫色,以和地图处理类的浅蓝色相区分。 +8. 修复了Math一元运算值块转换为json时的语法错误,追加了部分函数。 +(x)8.1 drawTip事件追加了第几帧的参数。 +(x)9. 玩家设置中追加了左撇子模式,开启后wsad起方向键的作用,ijkl起原wsad的SL作用,以方便键鼠并用。 +(√)10. 移除了部分引用极少的函数,如仇恨怪详情、claerTip和 +(x)10.1 tryUseItem改成了直接inline,从道具栏使用道具失败时不再closePanel,以方便玩家继续选择其他道具(破炸冰这三个先斩后奏的就没办法了)。 11. 快速追加npc48一键绑定朝向改为只绑定最后四个,以免影响前面可能的单朝向npc -12. 事件层为自动元件或tileset且没有碰触脚本时,该点前景层不再虚化(272改版里若某点只有前景没有事件会出bug,多语言版里已修复),以保证观感的统一。 +(√)12. 事件层为自动元件或tileset且没有碰触脚本时,该点前景层不再虚化(272改版里若某点只有前景没有事件会出bug,多语言版里已修复),以保证观感的统一。 13. 阻激夹域捕捉的显伤排除了不可通行点,以保证观感。修复了零伤阻击点无法阻拦瞬移的bug,并交换了阻击怪后退和捕捉怪移动的次序。相关的canMoveHero中勇士生命改为至少视为1,从而修复了canGoDeadZone为false时空血不能行走的bug。阻激夹域血网的伤害tip文案进行了优化,现在会读取实际的图块名称和怪物特殊属性名称并区分激光的横纵。 14. drawChoices选择灰项增加了音效,此音效还用在了其他类似的场合。希望样板多一些这样的小细节并提供rm那样的映射表来修改音效而不是只能替换文件,毕竟替换文件有格式限制。样板的很多系统行为缺少音效,如开关菜单等系统UI时、闪烁光标和黄框位置变化时。建议能提供的都提供出来(胖老鼠和新新那么多音效有了解包出的文件还难以还原,不丢人么。样板3层和h5胖老鼠对话靠的还是无数手动播放音效),录像高倍速播放如果听感不好的话可以忽略。 15. 放宽了音频文件的格式限制,如追加了m4a、m4r、flac等,毕竟作者可能会选择其他的渠道传播。 -16. animate这个后缀名修改为了json,以方便文本编辑器等程序去识别,另外某些h5游戏网站在发布时会限制上传的文件格式,使用标准后缀也有利于作者。 +(x)16. animate这个后缀名修改为了json,以方便文本编辑器等程序去识别,另外某些h5游戏网站在发布时会限制上传的文件格式,使用标准后缀也有利于作者。 17. flyTo中修改了楼层属性flyPoint的生效方式,改成了作为stair参数生效而不是覆盖heroLoc,两个相关事件的stair下拉框也提供了flyPoint项。 18. 楼层属性canFlyTo拆成了两项,即canFlyTo和canFlyFrom,以方便作者个性化。 19. getSpecials由yzm优化了配色,优化了固伤属性的描述(可被负伤抵消)。 -20. 难度单词为空字符串时显示“竖屏数字键”,以提示竖屏玩家。另外希望修复读档等场合红一下的bug +(x)20. 难度单词为空字符串时显示“竖屏数字键”,以提示竖屏玩家。另外希望修复读档等场合红一下的bug (√)21. getToolboxItems提供了一个修改排序方式的例子作为注释并说明了用法。 (x)22. project\icons.js中给勇士追加了midFoot表示第三帧并用于两种行走动画(暂不包括F7)的绘制(此功能建议要么merge要么作为系统开关让作者取舍,毕竟复写起来要改的函数还挺多而且需要厘清一些逻辑关系),其他图块移动时的帧切换频率改为了全局帧动画的三倍以优化观感。 23. 事件编辑器中图块id自动补全追加了图标,感谢ad,更新了atkValue、defValue、range和n等的表格注释。 diff --git a/project/functions.js b/project/functions.js index aa358157..8f3662af 100644 --- a/project/functions.js +++ b/project/functions.js @@ -382,6 +382,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = if (core.status.floorId != null) { core.push(todo, core.floors[core.status.floorId].afterBattle[x + "," + y]); } + core.push(todo, enemy.afterBattle); // 在这里增加其他的自定义事件需求 /* diff --git a/runtime.d.ts b/runtime.d.ts index c5a6c735..6da939d3 100644 --- a/runtime.d.ts +++ b/runtime.d.ts @@ -2143,9 +2143,6 @@ declare class ui { */ drawTip(text: string, id?: string, frame?: number): void - /** 清除提示内容 */ - clearTip(): void - /** 地图中间绘制一段文字 */ drawText(contents: string, callback?: () => any): void