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