diff --git a/_docs/element.md b/_docs/element.md index 3b622883..2b10effc 100644 --- a/_docs/element.md +++ b/_docs/element.md @@ -139,7 +139,7 @@ N连击怪物的special是6,且我们可以为它定义n代表实际连击数 领域怪还可以设置`range`选项代表该领域怪的范围,不写则默认为1。
**将 `flags.no_zone` 设置为 `true` 可以免疫领域效果。**
阻击怪同样需要设置value,代表阻击伤害的数值。如果勇士生命值扣减到0,则直接死亡触发lose事件。 -
**将`flags.no_snipe`设置为true可以免疫阻击效果(包括伤害和移动!)。**
+
**将`flags.no_repluse`设置为true可以免疫阻击效果(包括伤害和移动!)。**
!> 阻击怪后退的地点不能有任何事件存在,即使是已经被禁用的红绿事件或重生怪!(会导致此事件意外被重新启用)
激光怪同样需要设置value,代表激光伤害的数值。
请注意如果吸血、领域、阻击、生命光环中任何两个同时存在,则 `value` 会冲突。**因此请勿将吸血、领域、阻击或激光放置在同一个怪物身上。退化和攻防光环同理!
** diff --git a/_docs/event.md b/_docs/event.md index 87fab1b2..c27e53b2 100644 --- a/_docs/event.md +++ b/_docs/event.md @@ -2174,7 +2174,7 @@ if (core.flags.enableAddPoint && point > 0) { ``` json "shops": [{ "id": "shop1", - "text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:", + "text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:", "textInList": "1F金币商店", "mustEnable": false, "disablePreview": false, diff --git a/_docs/personalization.md b/_docs/personalization.md index e49bde8a..82fbccaf 100644 --- a/_docs/personalization.md +++ b/_docs/personalization.md @@ -254,7 +254,7 @@ ID必须由数字字母下划线组成,数字在1000以内,且均不能和 ``` js // ratio为楼层的item_ratio值,可以进行翻倍宝石属性 -core.status.hero.atk += core.values.redJewel * ratio +core.status.hero.atk += core.values.redGem * ratio ``` 这里我们可以直接写ratio来取用该楼层中定义的`item_ratio`的值。 @@ -263,7 +263,7 @@ core.status.hero.atk += core.values.redJewel * ratio ``` js // 一个二倍线性增加的例子 -core.status.hero.atk += core.values.redJewel + 2*ratio +core.status.hero.atk += core.values.redGem + 2*ratio ``` ### 消耗类道具(cls: tools);永久类道具(cls: constants) @@ -308,11 +308,11 @@ function (enemy, hero_hp, hero_atk, hero_def, hero_mdef, x, y, floorId) { [ // 写在获得道具后事件 // 设置不同的flag可以分别无视对应的阻激夹域效果 {"type": "setValue", "name": "flag:no_zone", "value": "true"}, // 免疫领域 - {"type": "setValue", "name": "flag:no_snipe", "value": "true"}, // 免疫阻击 + {"type": "setValue", "name": "flag:no_repluse", "value": "true"}, // 免疫阻击 {"type": "setValue", "name": "flag:no_laser", "value": "true"}, // 免疫激光 {"type": "setValue", "name": "flag:no_betweenAttack", "value": "true"}, // 免疫夹击 {"type": "setValue", "name": "flag:no_ambush", "value": "true"}, // 免疫捕捉 - {"type": "setValue", "name": "item:shoes", "value": "1"} // 免疫路障 + {"type": "setValue", "name": "item:amulet", "value": "1"} // 免疫路障 ] ``` 4. 如果有更高的需求,例如想让吸血效果变成一半,则还是在上面这些地方进行对应的修改即可。 @@ -666,7 +666,7 @@ if (core.flags.statusBarItems.indexOf('enableSkill')>=0) { - **`flag:hard`**: 当前的难度标志;此flag变量在setInitData中被定义,可以直接取用来判定当前难度分歧。上传成绩时将根据此flag来对不同难度进行排序。 - **`flag:posion`**, **`flag:weak`**, **`flag:curse`**: 中毒、衰弱、诅咒状态。 -- **`flag:no_zone`**, **`flag:no_snipe`**, **`flag:no_laser`**, **`flag:no_betweenAttack`**: 是否分别免疫领域、阻击、激光、夹击效果。 +- **`flag:no_zone`**, **`flag:no_repluse`**, **`flag:no_laser`**, **`flag:no_betweenAttack`**: 是否分别免疫领域、阻击、激光、夹击效果。 - **`flag:hatred`**: 当前的仇恨数值。 - **`flag:commonTimes`**: 全局商店共用次数时的访问次数。 - **`flag:input`**: 接受用户输入的事件后,存放用户输入的结果。 diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index 78f1cf66..cbb5b2bf 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -109,7 +109,7 @@ shopsub /* shopsub tooltip : 全局商店 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=%e5%85%a8%e5%b1%80%e5%95%86%e5%ba%97 -default : ["shop1","贪婪之神","blueShop","勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:","金币商店",false,false] +default : ["shop1","贪婪之神","moneyShop","勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:","金币商店",false,false] var title=''; if (EvalString_0==''){ if (IdString_1=='') title=''; @@ -1887,7 +1887,7 @@ choices_s /* choices_s tooltip : choices: 给用户提供选项 helpUrl : https://h5mota.com/games/template/_docs/#/event?id=choices%EF%BC%9A%E7%BB%99%E7%94%A8%E6%88%B7%E6%8F%90%E4%BE%9B%E9%80%89%E9%A1%B9 -default : ["","流浪者","woman",0] +default : ["","流浪者","trader",0] var title=''; if (EvalString_1==''){ if (IdString_0=='')title=''; @@ -2813,7 +2813,7 @@ Global_Attribute_List Global_Value_List : '血网伤害'|'中毒伤害'|'衰弱效果'|'红宝石效果'|'蓝宝石效果'|'绿宝石效果'|'红血瓶效果'|'蓝血瓶效果'|'黄血瓶效果'|'绿血瓶效果'|'破甲比例'|'反击比例'|'净化比例'|'仇恨增加值'|'动画时间' - /*Global_Value_List ['lavaDamage','poisonDamage','weakValue', 'redJewel', 'blueJewel', 'greenJewel', 'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'breakArmor', 'counterAttack', 'purify', 'hatred', 'animateSpeed']*/; + /*Global_Value_List ['lavaDamage','poisonDamage','weakValue', 'redGem', 'blueGem', 'greenGem', 'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'breakArmor', 'counterAttack', 'purify', 'hatred', 'animateSpeed']*/; Global_Flag_List diff --git a/_server/MotaActionParse.js b/_server/MotaActionParse.js index fd08d8f2..72108439 100644 --- a/_server/MotaActionParse.js +++ b/_server/MotaActionParse.js @@ -1191,10 +1191,10 @@ MotaActionFunctions.pattern.replaceItemList = [ ["yellowKey", "黄钥匙"], ["blueKey", "蓝钥匙"], ["redKey", "红钥匙"], - ["redJewel", "红宝石"], - ["blueJewel", "蓝宝石"], - ["greenJewel", "绿宝石"], - ["yellowJewel", "黄宝石"], + ["redGem", "红宝石"], + ["blueGem", "蓝宝石"], + ["greenGem", "绿宝石"], + ["yellowGem", "黄宝石"], ["redPotion", "红血瓶"], ["bluePotion", "蓝血瓶"], ["yellowPotion", "黄血瓶"], @@ -1210,14 +1210,14 @@ MotaActionFunctions.pattern.replaceItemList = [ ["shield4", "圣盾"], ["shield5", "神圣盾"], ["superPotion", "圣水"], - ["moneyPocket", "金钱袋"], + ["silverCoin", "银币"], ["book", "怪物手册"], ["fly", "楼层传送器"], ["coin", "幸运金币"], - ["snow", "冰冻徽章"], + ["freezeBadge", "冰冻徽章"], ["cross", "十字架"], - ["knife", "屠龙匕首"], - ["shoes", "绿鞋"], + ["dagger", "屠龙匕首"], + ["amulet", "护符"], ["bigKey", "大黄门钥匙"], ["greenKey", "绿钥匙"], ["steelKey", "铁门钥匙"], diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index b7bc1166..cba4dcaf 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -39,7 +39,7 @@ editor_blockly = function () { MotaActionBlocks['changeFloor_m'].xmlText(), MotaActionFunctions.actionParser.parse([{ "id": "shop1", - "text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我\${20+2*flag:shop1}金币就可以:", + "text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我\${20+2*flag:shop1}金币就可以:", "textInList": "1F金币商店", "choices": [ {"text": "生命+800", "need": "status:money>=20+2*flag:shop1", "action": [ diff --git a/_server/editor_file.js b/_server/editor_file.js index edf8ae27..4229701e 100644 --- a/_server/editor_file.js +++ b/_server/editor_file.js @@ -499,7 +499,7 @@ editor_file = function (editor, callback) { /*actionList:[ ["change","['items']['name']","红宝石的新名字"], ["add","['items']['新的和name同级的属性']",123], - ["change","['itemEffectTip']","',攻击力+'+editor.core.values.redJewel"], + ["change","['itemEffectTip']","',攻击力+'+editor.core.values.redGem"], ] 为[]时只查询不修改 */ @@ -574,7 +574,7 @@ editor_file = function (editor, callback) { editor.file.editMapBlocksInfo = function (idnum, actionList, callback) { /*actionList:[ - ["change","['events']",["\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。"]], + ["change","['events']",["\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。"]], ["change","['afterBattle']",null], ] 为[]时只查询不修改 @@ -618,7 +618,7 @@ editor_file = function (editor, callback) { editor.file.editLoc = function (x, y, actionList, callback) { /*actionList:[ - ["change","['events']",["\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。"]], + ["change","['events']",["\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。"]], ["change","['afterBattle']",null], ] 为[]时只查询不修改 diff --git a/_server/table/data.comment.js b/_server/table/data.comment.js index 7e0a246f..e99b0fd1 100644 --- a/_server/table/data.comment.js +++ b/_server/table/data.comment.js @@ -456,19 +456,19 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = { "_docs": "衰弱效果", "_data": "衰弱状态下攻防减少的数值\n如果此项不小于1,则作为实际下降的数值(比如10就是攻防各下降10)\n如果在0到1之间则为下降的比例(比如0.3就是下降30%的攻防)" }, - "redJewel": { + "redGem": { "_leaf": true, "_type": "textarea", "_docs": "红宝石效果", "_data": "红宝石加攻击的数值" }, - "blueJewel": { + "blueGem": { "_leaf": true, "_type": "textarea", "_docs": "蓝宝石效果", "_data": "蓝宝石加防御的数值" }, - "greenJewel": { + "greenGem": { "_leaf": true, "_type": "textarea", "_docs": "绿宝石效果", diff --git a/extensions/dynamicMapEditor.js b/extensions/dynamicMapEditor.js index 83690a51..eff1ec7c 100644 --- a/extensions/dynamicMapEditor.js +++ b/extensions/dynamicMapEditor.js @@ -8,7 +8,7 @@ function dynamicMapEditor() { // 所有显示的ID this.displayIds = [ 'none', 'yellowWall', 'blueWall', 'whiteWall', 'yellowDoor', 'blueDoor', 'redDoor', 'star', 'lava', 'lavaNet', - 'yellowKey', 'blueKey', 'redKey', 'redJewel', 'blueJewel', 'greenJewel', 'yellowJewel', + 'yellowKey', 'blueKey', 'redKey', 'redGem', 'blueGem', 'greenGem', 'yellowGem', 'redPotion', 'bluePotion', 'yellowPotion', 'greenPotion', 'pickaxe', 'bomb', 'centerFly', 'cls:autotile', 'cls:enemys', 'cls:enemy48' ]; diff --git a/libs/control.js b/libs/control.js index 40527187..5590d0b7 100644 --- a/libs/control.js +++ b/libs/control.js @@ -984,7 +984,7 @@ control.prototype.checkBlock = function () { core.updateStatusBar(); } } - this._checkBlock_snipe(core.status.checkBlock.snipe[loc]); + this._checkBlock_repluse(core.status.checkBlock.repluse[loc]); this._checkBlock_ambush(core.status.checkBlock.ambush[loc]); } @@ -998,10 +998,10 @@ control.prototype._checkBlock_disableQuickShop = function () { } ////// 阻击 ////// -control.prototype._checkBlock_snipe = function (snipe) { - if (!snipe || snipe.length == 0) return; +control.prototype._checkBlock_repluse = function (repluse) { + if (!repluse || repluse.length == 0) return; var actions = []; - snipe.forEach(function (t) { + repluse.forEach(function (t) { actions.push({"type": "move", "loc": [t[0],t[1]], "steps": [t[3]], "time": 250, "keep": true, "async": true}); }); actions.push({"type": "waitAsync"}); diff --git a/libs/maps.js b/libs/maps.js index ae76cecb..438d30f8 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -688,7 +688,7 @@ maps.prototype._automaticRoute_deepAdd = function (x, y) { // 绕过路障 if (id.endsWith("Net")) deepAdd += 100; // 绕过血瓶和绿宝石 - if (core.hasFlag('__potionNoRouting__') && (id.endsWith("Potion") || id == 'greenJewel')) deepAdd += 100; + if (core.hasFlag('__potionNoRouting__') && (id.endsWith("Potion") || id == 'greenGem')) deepAdd += 100; // 绕过传送点 // if (block.block.event.trigger == 'changeFloor') deepAdd+=10; } diff --git a/libs/utils.js b/libs/utils.js index 1698c02e..7eaba683 100644 --- a/libs/utils.js +++ b/libs/utils.js @@ -1149,7 +1149,7 @@ utils.prototype._export = function (floorIds) { }) // values - content += ["redJewel", "blueJewel", "greenJewel", "redPotion", "bluePotion", + content += ["redGem", "blueGem", "greenGem", "redPotion", "bluePotion", "yellowPotion", "greenPotion", "sword1", "shield1"].map(function (x) { return core.values[x] || 0; }).join(" ") + "\n\n"; diff --git a/project/data.js b/project/data.js index 4f33fa23..9e84f565 100644 --- a/project/data.js +++ b/project/data.js @@ -303,7 +303,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "shops": [ { "id": "shop1", - "text": "\t[贪婪之神,blueShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:", + "text": "\t[贪婪之神,moneyShop]勇敢的武士啊, 给我${20+2*flag:shop1}金币就可以:", "textInList": "1F金币商店", "mustEnable": false, "disablePreview": false, @@ -368,7 +368,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = }, { "id": "shop2", - "text": "\t[贪婪之神,pinkShop]勇敢的武士啊, 给我一定经验就可以:", + "text": "\t[贪婪之神,expShop]勇敢的武士啊, 给我一定经验就可以:", "textInList": "1F经验商店", "mustEnable": false, "disablePreview": true, @@ -465,9 +465,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d = "lavaDamage": 100, "poisonDamage": 10, "weakValue": 20, - "redJewel": 3, - "blueJewel": 3, - "greenJewel": 5, + "redGem": 3, + "blueGem": 3, + "greenGem": 5, "redPotion": 100, "bluePotion": 250, "yellowPotion": 500, diff --git a/project/enemys.js b/project/enemys.js index f5e49f15..c3de9b33 100644 --- a/project/enemys.js +++ b/project/enemys.js @@ -36,7 +36,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "redSwordsman": {"name":"剑王","hp":100,"atk":120,"def":0,"money":7,"experience":0,"point":0,"special":6,"n":8}, "poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"experience":0,"point":0,"special":12}, "octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, + "princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":18,"value":20}, @@ -70,7 +70,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "blueRock": {"name":"鬼邪石","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "skeletonLite": {"name":"骷髅精英","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "blueSkeleton": {"name":"蓝骷髅","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, + "greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "bowman": {"name":"弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "liteBowman": {"name":"精锐弓兵","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "crismonZombie": {"name":"红兽人","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, @@ -80,9 +80,5 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 = "grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "greenGT": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, "ghostSoldier": {"name":"冥队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "goldBat": {"name":"金蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "pinkSoldier": {"name":"红战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "pinkGhostSoldier": {"name":"红队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "greenSoldier": {"name":"青战士","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0}, - "greenGhostSoldier": {"name":"青队长","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0} + "frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"experience":0,"point":0,"special":0} } \ No newline at end of file diff --git a/project/events.js b/project/events.js index af347cde..8847951f 100644 --- a/project/events.js +++ b/project/events.js @@ -175,7 +175,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = "data": [ { "type": "choices", - "text": "\t[商人,woman]你有多余的钥匙想要出售吗?", + "text": "\t[商人,trader]你有多余的钥匙想要出售吗?", "choices": [ { "text": "黄钥匙(10金币)", @@ -204,7 +204,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = } ], "false": [ - "\t[商人,woman]你没有黄钥匙!" + "\t[商人,trader]你没有黄钥匙!" ] } ] @@ -236,7 +236,7 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 = } ], "false": [ - "\t[商人,woman]你没有蓝钥匙!" + "\t[商人,trader]你没有蓝钥匙!" ] } ] diff --git a/project/floors/sample0.js b/project/floors/sample0.js index 4af03e43..7d70dcd8 100644 --- a/project/floors/sample0.js +++ b/project/floors/sample0.js @@ -46,8 +46,8 @@ main.floors.sample0= } ], "10,11": [ - "\t[老人,woman]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。", - "\t[老人,woman]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", + "\t[老人,trader]这些是门,需要对应的钥匙打开。\n机关门必须使用特殊的开法。", + "\t[老人,trader]开门后可触发 afterOpenDoor 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", { "type": "hide", "time": 500 @@ -63,24 +63,24 @@ main.floors.sample0= } ], "2,8": [ - "\t[老人,magician]这些都是各种各样的怪物,所有怪物的数据都在enemys.js中设置。", - "\t[老人,magician]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。", - "\t[老人,magician]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", + "\t[老人,wizard]这些都是各种各样的怪物,所有怪物的数据都在enemys.js中设置。", + "\t[老人,wizard]这批怪物分别为:普通、先攻、魔攻、坚固、2连击、3连击、4连击、破甲、反击、净化。", + "\t[老人,wizard]打败怪物后可触发 afterBattle 事件。\n\n有关事件的各种信息在下一层会有更为详细的说明。", { "type": "hide", "time": 500 } ], "2,5": [ - "\t[老人,magician]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。", + "\t[老人,wizard]模仿、吸血、中毒、衰弱、诅咒。\n\n请注意吸血怪需要设置value为吸血数值,可参见样板中黑暗大法师的写法。", { "type": "hide", "time": 500 } ], "2,3": [ - "\t[老人,magician]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。", - "\t[老人,magician]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。", + "\t[老人,wizard]领域、夹击。\n请注意领域怪需要设置value为伤害数值,可参见样板中初级巫师的写法。", + "\t[老人,wizard]夹击和领域同时发生时先计算领域,再夹击。\n自动寻路同样会尽量绕过你设置的这些点。", { "type": "hide", "time": 500 diff --git a/project/floors/sample1.js b/project/floors/sample1.js index 9c769745..a3468def 100644 --- a/project/floors/sample1.js +++ b/project/floors/sample1.js @@ -419,23 +419,23 @@ main.floors.sample1= { "case": "0", "action": [ - "\t[老人,woman]这是个很复杂的例子,它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。", - "\t[老人,woman]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后,将送你一把大黄门钥匙,并消失不再出现。", - "\t[老人,woman]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。" + "\t[老人,trader]这是个很复杂的例子,它将教会你如何使用if 语句进行条件判断,以及 choices 提供选项来供用户进行选择。", + "\t[老人,trader]第一次访问我将显示这段文字;从第二次开始将会向你出售钥匙。\n钥匙价格将随着访问次数递增。\n当合计出售了七把钥匙后,将送你一把大黄门钥匙,并消失不再出现。", + "\t[老人,trader]这部分的逻辑比较长,请细心看样板的写法,是很容易看懂并理解的。" ] }, { "case": "8", "action": [ - "\t[老人,woman]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。", - "\t[老人,woman]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。", + "\t[老人,trader]你购买的钥匙已经够多了,再继续卖给你的话我会有危险的。", + "\t[老人,trader]看在你贡献给我这么多钱的份上,送你一把大黄门钥匙吧,希望你能好好用它。", { "type": "setValue", "name": "item:bigKey", "operator": "+=", "value": "1" }, - "\t[老人,woman]我先走了,拜拜~", + "\t[老人,trader]我先走了,拜拜~", { "type": "hide", "time": 500 @@ -450,7 +450,7 @@ main.floors.sample1= "action": [ { "type": "choices", - "text": "\t[老人,woman]少年,你需要钥匙吗?\n我这里有大把的!", + "text": "\t[老人,trader]少年,你需要钥匙吗?\n我这里有大把的!", "choices": [ { "text": "黄钥匙(${9+flag:woman_times}金币)", @@ -473,7 +473,7 @@ main.floors.sample1= } ], "false": [ - "\t[老人,woman]你的金钱不足!" + "\t[老人,trader]你的金钱不足!" ] } ] @@ -502,7 +502,7 @@ main.floors.sample1= } ], "false": [ - "\t[老人,woman]你的金钱不足!" + "\t[老人,trader]你的金钱不足!" ] } ] @@ -528,7 +528,7 @@ main.floors.sample1= } ], "false": [ - "\t[老人,woman]你的金钱不足!", + "\t[老人,trader]你的金钱不足!", { "type": "continue" } @@ -560,8 +560,8 @@ main.floors.sample1= } ], "12,11": [ - "\t[老人,womanMagician]使用 {\"type\":\"function\"} 可以写自定义的JS脚本。\n本塔支持的所有主要API会在doc文档内给出。", - "\t[老人,womanMagician]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。", + "\t[老人,recluse]使用 {\"type\":\"function\"} 可以写自定义的JS脚本。\n本塔支持的所有主要API会在doc文档内给出。", + "\t[老人,recluse]例如这个例子:即将弹出一个输入窗口,然后会将你的输入结果直接加到你的攻击力上。", { "type": "input", "text": "请输入你要加攻击力的数值:" @@ -584,7 +584,7 @@ main.floors.sample1= ], "false": [] }, - "\t[老人,womanMagician]具体可参见样板中本事件的写法。" + "\t[老人,recluse]具体可参见样板中本事件的写法。" ] }, "changeFloor": { diff --git a/project/floors/sample3.js b/project/floors/sample3.js index a3b996b0..a1a6e12d 100644 --- a/project/floors/sample3.js +++ b/project/floors/sample3.js @@ -871,7 +871,7 @@ main.floors.sample3= "\t[hero]好温暖……", { "type": "setValue", - "name": "item:yellowJewel", + "name": "item:yellowGem", "value": "1" }, { diff --git a/project/functions.js b/project/functions.js index 145d6ead..4a4dd7d0 100644 --- a/project/functions.js +++ b/project/functions.js @@ -432,7 +432,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = return [ [1, "先攻", "怪物首先攻击"], [2, "魔攻", "怪物无视勇士的防御"], - [3, "坚固", "勇士每回合最多只能对怪物造成1点伤害"], + [3, "坚固", "怪物防御不小于勇士攻击-1"], [4, "2连击", "怪物每回合攻击2次"], [5, "3连击", "怪物每回合攻击3次"], [6, function (enemy) { return (enemy.n || '') + "连击"; }, function (enemy) { return "怪物每回合攻击" + (enemy.n || 4) + "次"; }], @@ -833,7 +833,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = break; case 52: // 快捷键4:破冰/冰冻/地震/上下楼器/... 其他道具依次判断 { - var list = ["icePickaxe", "snow", "earthquake", "upFly", "downFly", "jumpShoes", "lifeWand", "poisonWine", "weakWine", "curseWine", "superWine"]; + var list = ["icePickaxe", "freezeBadge", "earthquake", "upFly", "downFly", "jumpShoes", "lifeWand", "poisonWine", "weakWine", "curseWine", "superWine"]; for (var i = 0; i < list.length; i++) { var itemId = list[i]; if (core.canUseItem(itemId)) { @@ -1051,7 +1051,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = var damage = {}, // 每个点的伤害值 type = {}, // 每个点的伤害类型 - snipe = {}, // 每个点的阻击怪信息 + repluse = {}, // 每个点的阻击怪信息 ambush = {}; // 每个点的捕捉信息 // 计算血网和领域、阻击、激光的伤害,计算捕捉信息 @@ -1065,7 +1065,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = type[loc] = type[loc] || {}; // 血网 - if (id == 'lavaNet' && !core.hasItem('shoes')) { + if (id == 'lavaNet' && !core.hasItem('amulet')) { damage[loc] = (damage[loc] || 0) + core.values.lavaDamage; type[loc]["血网伤害"] = true; } @@ -1096,8 +1096,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = } // 阻击 - // 如果要防止阻击伤害,可以直接简单的将 flag:no_snipe 设为true - if (enemy && core.hasSpecial(enemy.special, 18) && !core.hasFlag('no_snipe')) { + // 如果要防止阻击伤害,可以直接简单的将 flag:no_repluse 设为true + if (enemy && core.hasSpecial(enemy.special, 18) && !core.hasFlag('no_repluse')) { for (var dir in core.utils.scan) { var nx = x + core.utils.scan[dir].x, ny = y + core.utils.scan[dir].y, @@ -1112,7 +1112,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = var rnx = x + core.utils.scan[rdir].x, rny = y + core.utils.scan[rdir].y; if (rnx >= 0 && rnx < width && rny >= 0 && rny < height && core.getBlock(rnx, rny, floorId) == null) { - snipe[currloc] = (snipe[currloc] || []).concat([ + repluse[currloc] = (repluse[currloc] || []).concat([ [x, y, id, rdir] ]); } @@ -1207,7 +1207,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = core.status.checkBlock = { damage: damage, type: type, - snipe: snipe, + repluse: repluse, ambush: ambush, cache: {} // clear cache }; @@ -1391,9 +1391,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = return [ 'yellowDoor', 'blueDoor', 'redDoor', 'greenDoor', 'steelDoor', 'yellowKey', 'blueKey', 'redKey', 'greenKey', 'steelKey', - 'redJewel', 'blueJewel', 'greenJewel', 'yellowJewel', + 'redGem', 'blueGem', 'greenGem', 'yellowGem', 'redPotion', 'bluePotion', 'greenPotion', 'yellowPotion', 'superPotion', - 'pickaxe', 'bomb', 'centerFly', 'icePickaxe', 'snow', + 'pickaxe', 'bomb', 'centerFly', 'icePickaxe', 'freezeBadge', 'earthquake', 'upFly', 'downFly', 'jumpShoes', 'lifeWand', 'poisonWine', 'weakWine', 'curseWine', 'superWine', 'sword1', 'sword2', 'sword3', 'sword4', 'sword5', diff --git a/project/icons.js b/project/icons.js index f821a482..c8988970 100644 --- a/project/icons.js +++ b/project/icons.js @@ -97,23 +97,26 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "steelDoor2": 27, "steelDoor3": 28, "iceDoor": 29, - "iceDoor2": 30 + "iceDoor2": 30, + "magentaWall": 31 }, "npcs": { "man": 0, - "woman": 1, + "trader": 1, "thief": 2, "fairy": 3, - "magician": 4, - "womanMagician": 5, - "oldMan": 6, - "child": 7, - "wood": 8, - "pinkShop": 9, - "blueShop": 10, + "wizard": 4, + "recluse": 5, + "king": 6, + "youngMan": 7, + "sign": 8, + "expShop": 9, + "moneyShop": 10, "princess": 11, - "man2": 28, - "woman2": 29, + "greenMan": 28, + "blueTrader": 29, + "redMSNpc": 30, + "blackTrader": 31, "octopusLeftTop": 12, "octopusTop": 13, "octopusRightTop": 14, @@ -173,7 +176,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "redSwordsman": 53, "poisonZombie": 55, "octopus": 57, - "greenKnight": 59, + "princessEnemy": 59, "skeletonWarrior": 9, "frozenSkeleton": 69, "silverSlimelord": 60, @@ -202,20 +205,16 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "evilFairy": 51, "blueRock": 63, "skeletonLite": 64, - "blueSkeleton": 65, + "greenKnight": 65, "bowman": 66, "liteBowman": 67, "crismonZombie": 68, "watcherSlime": 70, "mutantSlimeman": 71, - "goldBat": 72, + "frostBat": 72, "devilKnight": 73, "grayPriest": 74, "greenGT": 75, - "pinkGhostSoldier": 77, - "greenSoldier": 78, - "greenGhostSoldier": 79, - "pinkSoldier": 76, "ghostSoldier": 11, "evilHero": 40 }, @@ -232,10 +231,10 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "greenKey": 3, "steelKey": 4, "bigKey": 6, - "redJewel": 16, - "blueJewel": 17, - "greenJewel": 18, - "yellowJewel": 19, + "redGem": 16, + "blueGem": 17, + "greenGem": 18, + "yellowGem": 19, "redPotion": 20, "bluePotion": 21, "greenPotion": 22, @@ -262,7 +261,7 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "upFly": 15, "downFly": 14, "coin": 11, - "snow": 41, + "freezeBadge": 41, "cross": 40, "superPotion": 29, "earthquake": 8, @@ -270,9 +269,9 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "weakWine": 25, "curseWine": 27, "superWine": 28, - "knife": 42, - "moneyPocket": 46, - "shoes": 47, + "dagger": 42, + "silverCoin": 46, + "amulet": 47, "hammer": 48, "jumpShoes": 49, "skill1": 30, diff --git a/project/items.js b/project/items.js index 0a68a3f0..86c61b84 100644 --- a/project/items.js +++ b/project/items.js @@ -19,22 +19,22 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "text": "可以打开一扇红门", "hideInToolbox": true }, - "redJewel": { + "redGem": { "cls": "items", "name": "红宝石", - "text": "',攻击+${core.values.redJewel}'" + "text": "',攻击+${core.values.redGem}'" }, - "blueJewel": { + "blueGem": { "cls": "items", "name": "蓝宝石", - "text": "',防御+${core.values.blueJewel}'" + "text": "',防御+${core.values.blueGem}'" }, - "greenJewel": { + "greenGem": { "cls": "items", "name": "绿宝石", - "text": "',护盾+${core.values.greenJewel}'" + "text": "',护盾+${core.values.greenGem}'" }, - "yellowJewel": { + "yellowGem": { "cls": "items", "name": "黄宝石", "text": "可以进行加点" @@ -178,9 +178,9 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "cls": "items", "name": "圣水" }, - "moneyPocket": { + "silverCoin": { "cls": "items", - "name": "金钱袋" + "name": "银币" }, "book": { "cls": "constants", @@ -200,7 +200,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "幸运金币", "text": "持有时打败怪物可得双倍金币" }, - "snow": { + "freezeBadge": { "cls": "constants", "name": "冰冻徽章", "text": "可以将面前的熔岩变成平地" @@ -210,14 +210,14 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "name": "十字架", "text": "持有后无视怪物的无敌属性" }, - "knife": { + "dagger": { "cls": "constants", "name": "屠龙匕首", "text": "该道具尚未被定义" }, - "shoes": { + "amulet": { "cls": "constants", - "name": "绿鞋", + "name": "护符", "text": "持有时无视负面地形" }, "bigKey": { @@ -317,10 +317,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = } }, "itemEffect": { - "redJewel": "core.status.hero.atk += core.values.redJewel * ratio", - "blueJewel": "core.status.hero.def += core.values.blueJewel * ratio", - "greenJewel": "core.status.hero.mdef += core.values.greenJewel * ratio", - "yellowJewel": "core.status.hero.hp+=1000;core.status.hero.atk+=6;core.status.hero.def+=6;core.status.hero.mdef+=10;", + "redGem": "core.status.hero.atk += core.values.redGem * ratio", + "blueGem": "core.status.hero.def += core.values.blueGem * ratio", + "greenGem": "core.status.hero.mdef += core.values.greenGem * ratio", + "yellowGem": "core.status.hero.hp+=1000;core.status.hero.atk+=6;core.status.hero.def+=6;core.status.hero.mdef+=10;", "redPotion": "core.status.hero.hp += core.values.redPotion * ratio", "bluePotion": "core.status.hero.hp += core.values.bluePotion * ratio", "yellowPotion": "core.status.hero.hp += core.values.yellowPotion * ratio", @@ -339,13 +339,13 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "shield5": "core.status.hero.def += 100;core.status.hero.mdef += 100", "bigKey": "core.status.hero.items.keys.yellowKey++;core.status.hero.items.keys.blueKey++;core.status.hero.items.keys.redKey++;", "superPotion": "core.status.hero.hp *= 2", - "moneyPocket": "core.status.hero.money += 500" + "silverCoin": "core.status.hero.money += 500" }, "itemEffectTip": { - "redJewel": "',攻击+'+core.values.redJewel * ratio", - "blueJewel": "',防御+'+core.values.blueJewel * ratio", - "greenJewel": "',护盾+'+core.values.greenJewel * ratio", - "yellowJewel": "',全属性提升'", + "redGem": "',攻击+'+core.values.redGem * ratio", + "blueGem": "',防御+'+core.values.blueGem * ratio", + "greenGem": "',护盾+'+core.values.greenGem * ratio", + "yellowGem": "',全属性提升'", "redPotion": "',生命+'+core.values.redPotion * ratio", "bluePotion": "',生命+'+core.values.bluePotion * ratio", "yellowPotion": "',生命+'+core.values.yellowPotion * ratio", @@ -364,7 +364,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "shield5": "',防御+100,护盾+100'", "bigKey": "',全钥匙+1'", "superPotion": "',生命值翻倍'", - "moneyPocket": "',金币+500'" + "silverCoin": "',金币+500'" }, "useItemEffect": { "book": "core.ui.drawBook(0);", @@ -372,7 +372,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "earthquake": "(function () {\n\tvar indexes = [];\n\tfor (var index in core.status.thisMap.blocks) {\n\t\tvar block = core.status.thisMap.blocks[index];\n\t\tif (!block.disable && block.event.canBreak) {\n\t\t\tindexes.push(index);\n\t\t}\n\t}\n\tcore.removeBlockByIndexes(indexes);\n\tcore.drawMap(core.status.floorId, function () {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t});\n})();", "pickaxe": "(function () {\n\tvar canBreak = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.block.disable) return false;\n\t\treturn block.block.event.canBreak;\n\t};\n\n\tvar success = false;\n\tvar pickaxeFourDirections = false; // 是否四方向破;如果是将其改成true\n\tif (pickaxeFourDirections) {\n\t\t// 四方向破\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (canBreak(nx, ny)) {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// 仅破当前\n\t\tif (canBreak(core.nextX(), core.nextY())) {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.playSound('pickaxe.mp3');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\t// 无法使用\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();", "icePickaxe": "(function () {\n\tcore.removeBlock(core.nextX(), core.nextY());\n\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n})();", - "snow": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = false; // 是否四方向雪花;如果是将其改成true\n\tif (snowFourDirections) {\n\t\t// 四方向雪花\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (core.getBlockId(nx, ny) == 'lava') {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (core.getBlockId(core.nextX(), core.nextY()) == 'lava') {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();", + "freezeBadge": "(function () {\n\tvar success = false;\n\n\tvar snowFourDirections = false; // 是否四方向雪花;如果是将其改成true\n\tif (snowFourDirections) {\n\t\t// 四方向雪花\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (core.getBlockId(nx, ny) == 'lava') {\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t\tsuccess = true;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif (core.getBlockId(core.nextX(), core.nextY()) == 'lava') {\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t\tsuccess = true;\n\t\t}\n\t}\n\n\tif (success) {\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip(\"当前无法使用\" + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n})();", "bigKey": "(function () {\n\tvar actions = core.searchBlock(\"yellowDoor\").map(function (block) {\n\t\treturn { \"type\": \"openDoor\", \"loc\": [block.x, block.y], \"async\": true };\n\t});\n\tactions.push({ \"type\": \"waitAsync\" });\n\tactions.push({ \"type\": \"tip\", \"text\": core.material.items[itemId].name + \"使用成功\" });\n\tcore.insertAction(actions);\n})();", "bomb": "(function () {\n\tvar canBomb = function (x, y) {\n\t\tvar block = core.getBlock(x, y);\n\t\tif (block == null || block.block.disable || block.block.event.cls.indexOf('enemy') != 0) return false;\n\t\tvar enemy = core.material.enemys[block.block.event.id];\n\t\treturn enemy && !enemy.notBomb;\n\t};\n\n\tvar bombList = []; // 炸掉的怪物坐标列表\n\tvar bombFourDirections = false; // 是否四方向可炸;如果是将其改成true。\n\tif (bombFourDirections) {\n\t\t// 四方向炸\n\t\tfor (var direction in core.utils.scan) {\n\t\t\tvar delta = core.utils.scan[direction];\n\t\t\tvar nx = core.getHeroLoc('x') + delta.x,\n\t\t\t\tny = core.getHeroLoc('y') + delta.y;\n\t\t\tif (canBomb(nx, ny)) {\n\t\t\t\tbombList.push([nx, ny]);\n\t\t\t\tcore.removeBlock(nx, ny);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// 仅炸当前\n\t\tif (canBomb(core.nextX(), core.nextY())) {\n\t\t\tbombList.push([core.nextX(), core.nextY()]);\n\t\t\tcore.removeBlock(core.nextX(), core.nextY());\n\t\t}\n\t}\n\n\tif (bombList.length > 0) {\n\t\tcore.playSound('bomb.mp3');\n\t\tcore.drawTip(core.material.items[itemId].name + '使用成功');\n\t} else {\n\t\tcore.drawTip('当前无法使用' + core.material.items[itemId].name);\n\t\tcore.addItem(itemId, 1);\n\t\treturn;\n\t}\n\n\t// 炸弹后事件\n\t// 这是一个使用炸弹也能开门的例子\n\t/*\n\tif (core.status.floorId=='xxx' && core.terrainExists(x0,y0,'specialDoor') // 某个楼层,该机关门存在\n\t\t&& !core.enemyExists(x1,y1) && !core.enemyExists(x2,y2)) // 且守门的怪物都不存在\n\t{\n\t\tcore.insertAction([ // 插入事件\n\t\t\t{\"type\": \"openDoor\", \"loc\": [x0,y0]} // 开门\n\t\t])\n\t}\n\t*/\n})();", "centerFly": "core.playSound('centerFly.mp3');\ncore.clearMap('hero');\ncore.setHeroLoc('x', core.bigmap.width - 1 - core.getHeroLoc('x'));\ncore.setHeroLoc('y', core.bigmap.height - 1 - core.getHeroLoc('y'));\ncore.drawHero();\ncore.drawTip(core.material.items[itemId].name + '使用成功');", @@ -388,10 +388,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "bluePotion": "core.status.hero.hp += core.values.bluePotion", "greenPotion": "core.status.hero.hp += core.values.greenPotion", "yellowPotion": "core.status.hero.hp += core.values.yellowPotion", - "redJewel": "core.status.hero.atk += core.values.redJewel", - "blueJewel": "core.status.hero.def += core.values.blueJewel", - "greenJewel": "core.status.hero.mdef += core.values.greenJewel", - "yellowJewel": null, + "redGem": "core.status.hero.atk += core.values.redGem", + "blueGem": "core.status.hero.def += core.values.blueGem", + "greenGem": "core.status.hero.mdef += core.values.greenGem", + "yellowGem": null, "skill1": "// 二倍斩的flag:skill为1\nif (core.getFlag('skill', 0)==0) { // 判断当前是否已经开了技能\n\tif (core.getStatus('mana')>=5) { // 这里要写当前能否开技能的条件判断,比如魔力值至少要多少\n\t\tcore.setFlag('skill', 1); // 开技能1\n\t\tcore.setFlag('skillName', '二倍斩'); // 设置技能名\n\t}\n\telse {\n\t\tcore.drawTip(\"魔力不足,无法开启技能\");\n\t}\n}\nelse { // 关闭技能\n\tcore.setFlag('skill', 0); // 关闭技能状态\n\tcore.setFlag('skillName', '无');\n}" }, "canUseItemEffect": { @@ -404,7 +404,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "centerFly": "(function () {\n\tvar toX = core.bigmap.width - 1 - core.getHeroLoc('x'),\n\t\ttoY = core.bigmap.height - 1 - core.getHeroLoc('y');\n\tvar id = core.getBlockId(toX, toY);\n\treturn id == null;\n})();", "upFly": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index < core.floorIds.length - 1) {\n\t\tvar toId = core.floorIds[index + 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();", "downFly": "(function () {\n\tvar floorId = core.status.floorId,\n\t\tindex = core.floorIds.indexOf(floorId);\n\tif (index > 0) {\n\t\tvar toId = core.floorIds[index - 1],\n\t\t\ttoX = core.getHeroLoc('x'),\n\t\t\ttoY = core.getHeroLoc('y');\n\t\tvar mw = core.floors[toId].width,\n\t\t\tmh = core.floors[toId].height;\n\t\tif (toX >= 0 && toX < mw && toY >= 0 && toY < mh && core.getBlock(toX, toY, toId) == null) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n})();", - "snow": "true", + "freezeBadge": "true", "bigKey": "(function () {\n\treturn core.searchBlock('yellowDoor').length > 0;\n})();", "poisonWine": "core.hasFlag('poison');", "weakWine": "core.hasFlag('weak');", @@ -416,15 +416,15 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a = "bluePotion": "true", "greenPotion": "true", "yellowPotion": "true", - "redJewel": "true", - "blueJewel": "true", - "greenJewel": "true", - "yellowJewel": "true", + "redGem": "true", + "blueGem": "true", + "greenGem": "true", + "yellowGem": "true", "skill1": "true" }, "equipCondition": {}, "useItemEvent": { - "yellowJewel": [ + "yellowGem": [ { "type": "choices", "choices": [ diff --git a/project/maps.js b/project/maps.js index c09ef345..7d297646 100644 --- a/project/maps.js +++ b/project/maps.js @@ -11,9 +11,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "9": {"cls":"terrains","id":"pinkShopLeft"}, "10": {"cls":"terrains","id":"pinkShopRight"}, "11": {"cls":"animates","id":"lavaNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 血网的伤害效果移动到 checkBlock 中处理\n\n\t// 如果要做一次性血网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})();","name":"血网"}, - "12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行毒处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [0] });\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"毒网"}, - "13": {"cls":"animates","id":"weakNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行衰处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [1] });\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"衰网"}, - "14": {"cls":"animates","id":"curseNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行咒处理\n\tif (!core.hasItem('shoes')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [2] });\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"}, + "12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行毒处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [0] });\n\t}\n\n\t// 如果要做一次性毒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"毒网"}, + "13": {"cls":"animates","id":"weakNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行衰处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [1] });\n\t}\n\n\t// 如果要做一次性衰网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"衰网"}, + "14": {"cls":"animates","id":"curseNet","canPass":true,"trigger":"null","script":"(function () {\n\t// 直接插入公共事件进行咒处理\n\tif (!core.hasItem('amulet')) {\n\t\tcore.insertAction({ \"type\": \"insert\", \"name\": \"毒衰咒处理\", \"args\": [2] });\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"}, "15": {"cls":"animates","id":"blueWater"}, "16": {"cls":"animates","id":"water"}, "20": {"cls":"autotile","id":"autotile"}, @@ -23,10 +23,10 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "24": {"cls":"items","id":"greenKey"}, "25": {"cls":"items","id":"steelKey"}, "26": {"cls":"items","id":"bigKey"}, - "27": {"cls":"items","id":"redJewel"}, - "28": {"cls":"items","id":"blueJewel"}, - "29": {"cls":"items","id":"greenJewel"}, - "30": {"cls":"items","id":"yellowJewel"}, + "27": {"cls":"items","id":"redGem"}, + "28": {"cls":"items","id":"blueGem"}, + "29": {"cls":"items","id":"greenGem"}, + "30": {"cls":"items","id":"yellowGem"}, "31": {"cls":"items","id":"redPotion"}, "32": {"cls":"items","id":"bluePotion"}, "33": {"cls":"items","id":"greenPotion"}, @@ -50,7 +50,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "51": {"cls":"items","id":"upFly"}, "52": {"cls":"items","id":"downFly"}, "53": {"cls":"items","id":"coin"}, - "54": {"cls":"items","id":"snow"}, + "54": {"cls":"items","id":"freezeBadge"}, "55": {"cls":"items","id":"cross"}, "56": {"cls":"items","id":"superPotion"}, "57": {"cls":"items","id":"earthquake"}, @@ -58,9 +58,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "59": {"cls":"items","id":"weakWine"}, "60": {"cls":"items","id":"curseWine"}, "61": {"cls":"items","id":"superWine"}, - "62": {"cls":"items","id":"knife"}, - "63": {"cls":"items","id":"moneyPocket"}, - "64": {"cls":"items","id":"shoes"}, + "62": {"cls":"items","id":"dagger"}, + "63": {"cls":"items","id":"silverCoin"}, + "64": {"cls":"items","id":"amulet"}, "65": {"cls":"items","id":"hammer"}, "68": {"cls":"items","id":"lifeWand"}, "69": {"cls":"items","id":"jumpShoes"}, @@ -90,22 +90,27 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "106": {"cls":"animates","id":"steelDoor3","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"}, "107": {"cls":"animates","id":"iceDoor","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"}, "108": {"cls":"animates","id":"iceDoor2","doorInfo":[{},"door.mp3","door.mp3"],"animate":1,"trigger":"openDoor"}, + "109": {"cls":"animates","id":"magentaWall","canBreak":true,"animate":1,"doorInfo":[null,"door.mp3","door.mp3"]}, "121": {"cls":"npcs","id":"man"}, - "122": {"cls":"npcs","id":"woman"}, + "122": {"cls":"npcs","id":"trader"}, "123": {"cls":"npcs","id":"thief"}, "124": {"cls":"npcs","id":"fairy"}, - "125": {"cls":"npcs","id":"magician"}, - "126": {"cls":"npcs","id":"womanMagician"}, - "127": {"cls":"npcs","id":"oldMan"}, - "128": {"cls":"npcs","id":"child"}, - "129": {"cls":"npcs","id":"wood"}, - "130": {"cls":"npcs","id":"pinkShop"}, - "131": {"cls":"npcs","id":"blueShop"}, + "125": {"cls":"npcs","id":"wizard"}, + "126": {"cls":"npcs","id":"recluse"}, + "127": {"cls":"npcs","id":"king"}, + "128": {"cls":"npcs","id":"youngMan"}, + "129": {"cls":"npcs","id":"sign"}, + "130": {"cls":"npcs","id":"expShop"}, + "131": {"cls":"npcs","id":"moneyShop"}, "132": {"cls":"npcs","id":"princess"}, "133": {"cls":"npc48","id":"npc0","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}}, "134": {"cls":"npc48","id":"npc1","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}}, "135": {"cls":"npc48","id":"npc2","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}}, "136": {"cls":"npc48","id":"npc3","faceIds":{"down":"npc0","left":"npc1","right":"npc2","up":"npc3"}}, + "137": {"cls":"npcs","id":"greenMan"}, + "138": {"cls":"npcs","id":"blueTrader"}, + "139": {"cls":"npcs","id":"redMSNpc"}, + "140": {"cls":"npcs","id":"blackTrader"}, "151": {"cls":"autotile","id":"autotile1"}, "152": {"cls":"autotile","id":"autotile2"}, "153": {"cls":"autotile","id":"autotile3"}, @@ -135,8 +140,6 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "194": {"cls":"npcs","id":"dragonRight"}, "195": {"cls":"npcs","id":"dragonLeftBottom"}, "196": {"cls":"npcs","id":"dragonRightBottom"}, - "197": {"cls":"npcs","id":"man2"}, - "198": {"cls":"npcs","id":"woman2"}, "201": {"cls":"enemys","id":"greenSlime"}, "202": {"cls":"enemys","id":"redSlime"}, "203": {"cls":"enemys","id":"blackSlime"}, @@ -196,7 +199,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "257": {"cls":"enemys","id":"dragon"}, "258": {"cls":"enemys","id":"octopus"}, "259": {"cls":"enemys","id":"fairyEnemy"}, - "260": {"cls":"enemys","id":"greenKnight"}, + "260": {"cls":"enemys","id":"princessEnemy"}, "261": {"cls":"enemy48","id":"angel"}, "262": {"cls":"enemy48","id":"elemental"}, "263": {"cls":"enemy48","id":"steelGuard"}, @@ -206,21 +209,17 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "267": {"cls":"enemys","id":"grayRock"}, "268": {"cls":"enemys","id":"blueRock"}, "269": {"cls":"enemys","id":"skeletonLite"}, - "270": {"cls":"enemys","id":"blueSkeleton"}, + "270": {"cls":"enemys","id":"greenKnight"}, "271": {"cls":"enemys","id":"bowman"}, "272": {"cls":"enemys","id":"liteBowman"}, "273": {"cls":"enemys","id":"crismonZombie"}, "274": {"cls":"enemys","id":"frozenSkeleton"}, "275": {"cls":"enemys","id":"watcherSlime"}, "276": {"cls":"enemys","id":"mutantSlimeman"}, - "277": {"cls":"enemys","id":"goldBat"}, + "277": {"cls":"enemys","id":"frostBat"}, "278": {"cls":"enemys","id":"devilKnight"}, "279": {"cls":"enemys","id":"grayPriest"}, "280": {"cls":"enemys","id":"greenGT"}, - "281": {"cls":"enemys","id":"pinkSoldier"}, - "282": {"cls":"enemys","id":"pinkGhostSoldier"}, - "283": {"cls":"enemys","id":"greenSoldier"}, - "284": {"cls":"enemys","id":"greenGhostSoldier"}, "300": {"cls":"terrains","id":"ground"}, "301": {"cls":"terrains","id":"grass"}, "302": {"cls":"terrains","id":"grass2"}, diff --git a/project/materials/animates.png b/project/materials/animates.png index 774a7990..e3b74ee9 100644 Binary files a/project/materials/animates.png and b/project/materials/animates.png differ diff --git a/project/materials/enemys.png b/project/materials/enemys.png index 673612bb..47bcbbc5 100644 Binary files a/project/materials/enemys.png and b/project/materials/enemys.png differ diff --git a/project/materials/ground.png b/project/materials/ground.png index 84055d7f..4aa29d2a 100644 Binary files a/project/materials/ground.png and b/project/materials/ground.png differ diff --git a/project/materials/icons.png b/project/materials/icons.png index 5164f041..2a602bf3 100644 Binary files a/project/materials/icons.png and b/project/materials/icons.png differ diff --git a/project/materials/items.png b/project/materials/items.png index ffedc560..6d6054f0 100644 Binary files a/project/materials/items.png and b/project/materials/items.png differ diff --git a/project/materials/npcs.png b/project/materials/npcs.png index 9f02067a..9647d7d9 100644 Binary files a/project/materials/npcs.png and b/project/materials/npcs.png differ diff --git a/runtime.d.ts b/runtime.d.ts index d07c908b..013a574b 100644 --- a/runtime.d.ts +++ b/runtime.d.ts @@ -1542,7 +1542,7 @@ declare class utils { /** * 读取一个全局存储,适用于global:xxx,支持录像。 - * @example if (core.getGlobal('一周目已通关', false) === true) core.getItem('knife'); // 二周目游戏进行到此处时会获得一把屠龙匕首 + * @example if (core.getGlobal('一周目已通关', false) === true) core.getItem('dagger'); // 二周目游戏进行到此处时会获得一把屠龙匕首 * @param key 全局变量名称,支持中文 * @param defaultValue 可选,当此全局变量不存在或值为null、undefined时,用此值代替 * @returns 全局变量的值 diff --git a/v2.x-final更新.txt b/v2.x-final更新.txt index cc988fc5..0e601735 100644 --- a/v2.x-final更新.txt +++ b/v2.x-final更新.txt @@ -57,10 +57,12 @@ (已完成!) 增加fonts目录,全塔属性增加fonts引用 (已完成!) 右边框输入完后解析按钮高亮 32x48的门 +难度分歧的图块(颜色,含SL界面) +装备同时加属性和比例 ------------- -(不处理) 0. 部分文案的修改,如“地图编辑器”(启动服务.exe中)、“enemys”、“snipe” +(不处理) 0. 部分文案的修改,如“地图编辑器”(启动服务.exe中)、“enemys”、“repluse” (造塔工具相关都给鹿神) 1. 便捷PS工具希望加入自定义单位宽高功能,希望把“白底转透明”增强为“纯色底转透明”(弹窗由作者输入RGB或RGBA值)。 (已修复) 2. 请求修复(如果还没修复)新建单张空白地图无法自定义宽高的bug (文档相关给秋橙) 3. 希望给M键“追加素材”功能写个更详细的说明,在线文档中没有所以离线文档中也没写成 diff --git a/v266-v2.7接档说明.txt b/v266-v2.7接档说明.txt index baac3b03..e11099c2 100644 --- a/v266-v2.7接档说明.txt +++ b/v266-v2.7接档说明.txt @@ -41,7 +41,7 @@ V2.6.6 -> V2.7 接档说明: 5. 使用VSCode分别打开接档后的V2.7和纯净的V2.7的【project/items.js】,并执行以下操作: - 将三色钥匙的cls从"keys"改成"tools",并新增 "hideInToolbox": true - 如下道具的【useItemEffect】和【canUseItemEffect】有所改变,请直接从纯净的V2.7覆盖到你要接档的V2.7: - - earthquake, pickaxe, icePickaxe, snow, bigKey, bomb, upFly, downFly + - earthquake, pickaxe, icePickaxe, freezeBadge, bigKey, bomb, upFly, downFly - 如果确认你的塔不会使用该道具,可忽略 - 黄宝石和生命魔杖增加了【useItemEvent】;如需使用请进行复制 @@ -49,7 +49,7 @@ V2.6.6 -> V2.7 接档说明: - 找到【terrains】中的三色墙和六色门,删除对应的这几行 - yellowWall, blueWall, whiteWall, yellowDoor, blueDoor, redDoor, greenDoor, specialDoor, steelDoor - (在V2.7中,terrains不再保留门的引用,门效果仅由animates决定) - - 将【terrains】中的 blueShop-left, blueShop-right, pinkShop-left, pinkShop-right 分别重命名为 + - 将【terrains】中的 moneyShop-left, moneyShop-right, expShop-left, expShop-right 分别重命名为 blueShopLeft, blueShopRight, pinkShopLeft, pinkShopRight 7. 使用VSCode分别打开接档后的V2.7和纯净的V2.7的【project/maps.js】,并执行以下操作: @@ -87,5 +87,6 @@ V2.6.6 -> V2.7 接档说明: - 「重启当前事件」已经被删除并且无法在游戏中使用。请替换成等价的循环处理或者插入事件 - 在V2.7中,所有的experience全部改名exp;请检查所有对经验值进行操作的地方 - +其他: +Jewel改名Gem