毒衰咒处理不走公共事件
This commit is contained in:
parent
f3ce272e43
commit
11d1e18a37
@ -989,7 +989,7 @@ openKeyBoard: fn(fromUserAction?: bool)
|
||||
|
||||
insertCommonEvent: fn(name?: string, args?: [?], x?: number, y?: number, callback?: fn(), addToLast?: bool)
|
||||
插入一个公共事件
|
||||
例如:core.insertCommonEvent('毒衰咒处理', [0]);
|
||||
例如:core.insertCommonEvent('加点事件', [3]);
|
||||
name: 公共事件名;如果公共事件不存在则直接忽略
|
||||
args: 参数列表,为一个数组,将依次赋值给 flag:arg1, flag:arg2, ...
|
||||
x: 新的当前点横坐标,可选
|
||||
|
||||
@ -97,7 +97,7 @@
|
||||
* 数值提升项:若干个键值对,表示该装备增加属性的常数值(支持负数)。7个常用属性可以通过下拉框选取,自定义的新属性也可以手动输入。
|
||||
* 百分比提升项:若干个键值对,表示该装备增加属性的百分比(支持负数,如填-10就表示减少10%),修改方法同上。
|
||||
* 装备对属性的影响原理:在穿脱装备时,会根据数值提升项和百分比提升项,分别调用`core.status.hero.xxx += yyy`和`core.addBuff('xxx', yyy)`这两个API(衰弱的附加和解除同理),而状态栏的显示值和战斗中的使用值则是`core.getStatus('xxx')`和buff值相乘再向下取整所得。
|
||||
* PC端按下Ctrl+0~9可以保存当前套装,Alt+0~9快速更换套装。
|
||||
* PC端可以按Alt+0~9快速更换套装。
|
||||
|
||||
道具相关API请阅读[API列表](api)。
|
||||
|
||||
@ -110,7 +110,7 @@
|
||||
5. **特殊属性:**一个由正整数组成的一维数组,您可以点击“勾选框编辑”按钮来修改它。所有特殊属性都定义在“脚本编辑——怪物特殊属性”,您可以在那里追加新的。它们大体分为四类:
|
||||
1. 手册中属性值的修正:(按照结算顺序)模仿、坚固、光环,修正后的属性也将被用于战斗,详见“脚本编辑——怪物真实属性”。
|
||||
2. 战损的修正:这类最多,先攻、魔攻、连击(次数为n)、破甲(比例为defValue)、反击(比例为atkValue,回合数为勇士的攻击回合数)、净化(倍数为n,1表示单纯无视护盾)、吸血(比例为value,是否加到自身为add)、仇恨(每场战斗的仇恨增值由全塔属性指定)、无敌、固伤(数值为damage)、支援。其中又以仇恨和固伤不能被护盾直接抵消而和无敌较为特殊,详见“脚本编辑——战斗伤害信息”。
|
||||
3. 战后的影响:中毒、衰弱、诅咒、仇恨(的累加和减半)、自爆、退化(扣减值分别为atkValue和defValue)、重生,详见“脚本编辑——战后脚本”和“公共事件——毒衰咒处理”。
|
||||
3. 战后的影响:中毒、衰弱、诅咒、仇恨(的累加和减半)、自爆、退化(扣减值分别为atkValue和defValue)、重生,详见“脚本编辑——战后脚本”和“脚本编辑——毒衰咒”。
|
||||
4. 阻激夹域捕捉:即对主角行走的妨害,详见“脚本编辑——阻激夹域伤害”,该函数也负责了血网(图块ID为lavaNet,请勿修改)的伤害。
|
||||
|
||||
阻激域的伤害都为value且在夹击之前结算,领域的形状和半径与光环一致。
|
||||
@ -286,7 +286,7 @@
|
||||
这个类型的数值会保存在core.values中,可以直接在游戏中修改。
|
||||
|
||||
1. **血网伤害和中毒伤害:**如题,如果不想用常数,请修改“脚本编辑”的“阻激夹域伤害”和“每步后操作”。
|
||||
2. **衰弱效果:**填小于1的正数代表扣减的比例,否则为扣减的常数。扣减和恢复的原理和装备相同,详见“公共事件——毒衰咒处理”、解衰药水和万能药水的使用效果。
|
||||
2. **衰弱效果:**填小于1的正数代表扣减的比例,否则为扣减的常数。扣减和恢复的原理和装备相同,详见“脚本编辑——毒衰咒”、解衰药水和万能药水的使用效果。
|
||||
3. **三种宝石和四种血瓶的值:**如题,此值为基础值。实际效果还需乘以楼层属性最下面的“宝石血瓶效果”(限即捡即用类,详见这七种道具的属性。此外,B键数据统计是按照此值乘以“宝石血瓶效果”统计的,与道具的实际效果无关,请自行注意。
|
||||
4. **反击、破甲、净化比例:**如果反击、破甲、净化怪物没有指定atkValue、defValue和n,就会用这三个值。请注意反击的总回合数是勇士的攻击回合数,净化比例填1表示单纯无视护盾。
|
||||
5. **仇恨增值:**每进行一场战斗,core.status.hero.flags.hatred的增加量。如果不想用常数,请修改“脚本编辑——战后脚本”。
|
||||
|
||||
@ -101,7 +101,7 @@
|
||||
|
||||
## 公共事件(逗号键)
|
||||
|
||||
有几个事件,如战后加点、毒衰咒处理、回收钥匙商店,会在战后脚本或全局商店等处频繁用到。于是它们被整理成了公共事件,您也可以追加自己的。
|
||||
有几个事件,如战后加点、回收钥匙商店,会在战后脚本或全局商店等处频繁用到。于是它们被整理成了公共事件,您也可以追加自己的。
|
||||
|
||||
公共事件在内容上和其他事件并无不同,只是在插入公共事件时(如`core.insertCommonEvent("回收钥匙商店")`)可以提供一个`参数列表`。
|
||||
|
||||
|
||||
@ -2242,6 +2242,10 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
|
||||
"!doc": "读取主角某个属性的百分比修正倍率,初始值为1<br/>例如:core.getBuff('atk'); // 主角当前能发挥出多大比例的攻击力<br/>name: 属性的英文名",
|
||||
"!type": "fn(name: string) -> number"
|
||||
},
|
||||
"triggerDebuff": {
|
||||
"!doc": "获得或移除毒衰咒效果<br/>action: 要获得还是移除,'get'为获得,'remove'为移除<br/>type: 获得或移除的内容(poison/weak/curse),可以为字符串或数组",
|
||||
"!type": "fn(action: string, type: string|[string])"
|
||||
},
|
||||
"setToolbarButton": {
|
||||
"!doc": "改变工具栏为按钮1-8",
|
||||
"!type": "fn(useButton?: bool)"
|
||||
@ -3831,7 +3835,7 @@ var terndefs_f6783a0a_522d_417e_8407_94c67b692e50 = [
|
||||
"!type": "fn(fromUserAction?: bool)"
|
||||
},
|
||||
"insertCommonEvent": {
|
||||
"!doc": "插入一个公共事件<br/>例如:core.insertCommonEvent('毒衰咒处理', [0]);<br/>name: 公共事件名;如果公共事件不存在则直接忽略<br/>args: 参数列表,为一个数组,将依次赋值给 flag:arg1, flag:arg2, ...<br/>x: 新的当前点横坐标,可选<br/>y: 新的当前点纵坐标,可选<br/>callback: 新的回调函数,可选<br/>addToLast: 插入的位置,true表示插入到末尾,否则插入到开头",
|
||||
"!doc": "插入一个公共事件<br/>例如:core.insertCommonEvent('加点事件', [3]);<br/>name: 公共事件名;如果公共事件不存在则直接忽略<br/>args: 参数列表,为一个数组,将依次赋值给 flag:arg1, flag:arg2, ...<br/>x: 新的当前点横坐标,可选<br/>y: 新的当前点纵坐标,可选<br/>callback: 新的回调函数,可选<br/>addToLast: 插入的位置,true表示插入到末尾,否则插入到开头",
|
||||
"!type": "fn(name?: string, args?: [?], x?: number, y?: number, callback?: fn(), addToLast?: bool)"
|
||||
},
|
||||
"hideImage": {
|
||||
|
||||
@ -19,12 +19,11 @@ var events_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_event": "commonEvent",
|
||||
"_data": "加点事件"
|
||||
},
|
||||
"毒衰咒处理": {
|
||||
"回收钥匙商店": {
|
||||
"_leaf": true,
|
||||
"_type": "event",
|
||||
"_range": "thiseval instanceof Array",
|
||||
"_event": "commonEvent",
|
||||
"_data": "毒衰咒处理"
|
||||
"_data": "回收钥匙商店"
|
||||
},
|
||||
}
|
||||
if (obj[key]) return obj[key];
|
||||
|
||||
@ -135,6 +135,12 @@ var functions_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_lint": true,
|
||||
"_data": "读档操作"
|
||||
},
|
||||
"triggerDebuff": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_lint": true,
|
||||
"_data": "毒衰咒处理"
|
||||
},
|
||||
"updateStatusBar": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
|
||||
@ -2100,6 +2100,11 @@ control.prototype.getBuff = function (name) {
|
||||
return core.getFlag('__'+name+'_buff__', 1);
|
||||
}
|
||||
|
||||
////// 获得或移除毒衰咒效果 //////
|
||||
control.prototype.triggerDebuff = function (action, type) {
|
||||
return this.controldata.triggerDebuff(action, type);
|
||||
}
|
||||
|
||||
////// 设置勇士的位置 //////
|
||||
control.prototype.setHeroLoc = function (name, value, noGather) {
|
||||
if (!core.status.hero) return;
|
||||
|
||||
@ -735,7 +735,7 @@ maps.prototype._automaticRoute_deepAdd = function (x, y) {
|
||||
// 绕过亮灯
|
||||
if (id == "light") deepAdd += 100;
|
||||
// 绕过路障
|
||||
if (id.endsWith("Net")) deepAdd += 100;
|
||||
if (id.endsWith("Net") && !core.hasFlag(id.substring(0, id.length - 3))) deepAdd += 100;
|
||||
// 绕过血瓶和绿宝石
|
||||
if (core.hasFlag('__potionNoRouting__') && (id.endsWith("Potion") || id == 'greenGem')) deepAdd += 100;
|
||||
// 绕过传送点
|
||||
|
||||
@ -550,10 +550,10 @@ function action_maps(callback) {
|
||||
"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('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":"咒网"},
|
||||
"54": {"cls":"items","id":"freezeBadge"},
|
||||
"12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'poison');\n\t\tcore.updateStatusBar();\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\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'weak');\n\t\tcore.updateStatusBar();\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\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'curse');\n\t\tcore.updateStatusBar();\n\t}\n\n\t// 如果要做一次性咒网,可直接注释掉下面这句话:\n\t// core.removeBlock(core.getHeroLoc('x'), core.getHeroLoc('y'));\n})()","name":"咒网"},
|
||||
"54": {"cls":"items","id":"freezeBadge"},
|
||||
"81": {"cls":"animates","id":"yellowDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"yellowKey":1}},"name":"黄门"},
|
||||
"82": {"cls":"animates","id":"blueDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"blueKey":1}},"name":"蓝门"},
|
||||
"83": {"cls":"animates","id":"redDoor","trigger":"openDoor","animate":1,"doorInfo":{"time":160,"openSound":"door.mp3","closeSound":"door.mp3","keys":{"redKey":1}},"name":"红门"},
|
||||
|
||||
@ -45,117 +45,6 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
|
||||
]
|
||||
}
|
||||
],
|
||||
"毒衰咒处理": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "获得毒衰咒效果,flag:arg1 为要获得的类型"
|
||||
},
|
||||
{
|
||||
"type": "switch",
|
||||
"condition": "flag:arg1",
|
||||
"caseList": [
|
||||
{
|
||||
"case": "0",
|
||||
"action": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "获得毒效果"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "!flag:poison",
|
||||
"true": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:poison",
|
||||
"value": "true"
|
||||
}
|
||||
],
|
||||
"false": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"case": "1",
|
||||
"action": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "获得衰效果"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "!flag:weak",
|
||||
"true": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:weak",
|
||||
"value": "true"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "core.values.weakValue>=1",
|
||||
"true": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": ">=1:直接扣数值"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:atk",
|
||||
"operator": "-=",
|
||||
"value": "core.values.weakValue"
|
||||
},
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "status:def",
|
||||
"operator": "-=",
|
||||
"value": "core.values.weakValue"
|
||||
}
|
||||
],
|
||||
"false": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "<1:扣比例"
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.addBuff('atk', -core.values.weakValue);\n}"
|
||||
},
|
||||
{
|
||||
"type": "function",
|
||||
"function": "function(){\ncore.addBuff('def', -core.values.weakValue);\n}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"false": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"case": "2",
|
||||
"action": [
|
||||
{
|
||||
"type": "comment",
|
||||
"text": "获得咒效果"
|
||||
},
|
||||
{
|
||||
"type": "if",
|
||||
"condition": "!flag:curse",
|
||||
"true": [
|
||||
{
|
||||
"type": "setValue",
|
||||
"name": "flag:curse",
|
||||
"value": "true"
|
||||
}
|
||||
],
|
||||
"false": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"回收钥匙商店": [
|
||||
{
|
||||
"type": "comment",
|
||||
|
||||
@ -80,14 +80,14 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
})
|
||||
});
|
||||
},
|
||||
"lose": function(reason) {
|
||||
"lose": function (reason) {
|
||||
// 游戏失败事件
|
||||
core.ui.closePanel();
|
||||
var replaying = core.isReplaying();
|
||||
core.stopReplay();
|
||||
core.waitHeroToStop(function() {
|
||||
core.waitHeroToStop(function () {
|
||||
core.drawText([
|
||||
"\t["+(reason||"结局1")+"]你死了。\n如题。"
|
||||
"\t[" + (reason || "结局1") + "]你死了。\n如题。"
|
||||
], function () {
|
||||
core.events.gameOver(null, replaying);
|
||||
});
|
||||
@ -117,7 +117,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core.status.hero.loc = heroLoc;
|
||||
// 检查重生怪并重置
|
||||
if (!fromLoad) {
|
||||
core.extractBlocks(floorId);
|
||||
core.extractBlocks(floorId);
|
||||
core.status.maps[floorId].blocks.forEach(function (block) {
|
||||
if (block.disable && core.enemys.hasSpecial(block.event.id, 23)) {
|
||||
block.disable = false;
|
||||
@ -196,7 +196,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
loc = core.getFlag("__leaveLoc__", {})[toId] || null;
|
||||
}
|
||||
if (core.status.maps[toId].flyPoint != null && core.status.maps[toId].flyPoint.length == 2) {
|
||||
loc = {x: core.status.maps[toId].flyPoint[0], y: core.status.maps[toId].flyPoint[1]};
|
||||
loc = { x: core.status.maps[toId].flyPoint[0], y: core.status.maps[toId].flyPoint[1] };
|
||||
}
|
||||
if (loc == null) {
|
||||
// 获得两个楼层的索引,以决定是上楼梯还是下楼梯
|
||||
@ -311,8 +311,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core.status.hero.statistics.exp += exp;
|
||||
|
||||
var hint = "打败 " + enemy.name;
|
||||
if (core.flags.statusBarItems.indexOf('enableMoney')>=0) hint += ",金币+" + money;
|
||||
if (core.flags.statusBarItems.indexOf('enableExp')>=0) hint += ",经验+" + exp;
|
||||
if (core.flags.statusBarItems.indexOf('enableMoney') >= 0) hint += ",金币+" + money;
|
||||
if (core.flags.statusBarItems.indexOf('enableExp') >= 0) hint += ",经验+" + exp;
|
||||
core.drawTip(hint, enemy.id);
|
||||
|
||||
// 事件的处理
|
||||
@ -321,15 +321,15 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
var special = enemy.special;
|
||||
// 中毒
|
||||
if (core.enemys.hasSpecial(special, 12)) {
|
||||
core.push(todo, [{ "type": "insert", "name": "毒衰咒处理", "args": [0] }]);
|
||||
core.triggerDebuff('get', 'poison');
|
||||
}
|
||||
// 衰弱
|
||||
if (core.enemys.hasSpecial(special, 13)) {
|
||||
core.push(todo, [{ "type": "insert", "name": "毒衰咒处理", "args": [1] }]);
|
||||
core.triggerDebuff('get', 'weak');
|
||||
}
|
||||
// 诅咒
|
||||
if (core.enemys.hasSpecial(special, 14)) {
|
||||
core.push(todo, [{ "type": "insert", "name": "毒衰咒处理", "args": [2] }]);
|
||||
core.triggerDebuff('get', 'curse');
|
||||
}
|
||||
// 仇恨属性
|
||||
if (core.enemys.hasSpecial(special, 17)) {
|
||||
@ -351,7 +351,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core.setFlag('hatred', core.getFlag('hatred', 0) + core.values.hatred);
|
||||
|
||||
// 战后的技能处理,比如扣除魔力值
|
||||
if (core.flags.statusBarItems.indexOf('enableSkill') >=0 ) {
|
||||
if (core.flags.statusBarItems.indexOf('enableSkill') >= 0) {
|
||||
// 检测当前开启的技能类型
|
||||
var skill = core.getFlag('skill', 0);
|
||||
if (skill == 1) { // 技能1:二倍斩
|
||||
@ -363,7 +363,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
}
|
||||
|
||||
// 如果有加点
|
||||
var point = guards.reduce(function (curr, g) {
|
||||
var point = guards.reduce(function (curr, g) {
|
||||
return curr + core.material.enemys[g[2]].point;
|
||||
}, enemy.point) || 0;
|
||||
if (core.flags.enableAddPoint && point > 0) {
|
||||
@ -891,20 +891,20 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core.useItem('skill1', true);
|
||||
}
|
||||
break;
|
||||
// 在这里可以任意新增或编辑已有的快捷键内容
|
||||
/*
|
||||
case 0: // 使用该按键的keyCode
|
||||
// 还可以再判定altKey是否被按下,即 if (altKey) { ...
|
||||
// 在这里可以任意新增或编辑已有的快捷键内容
|
||||
/*
|
||||
case 0: // 使用该按键的keyCode
|
||||
// 还可以再判定altKey是否被按下,即 if (altKey) { ...
|
||||
|
||||
// ... 在这里写你要执行脚本
|
||||
// **强烈建议所有新增的自定义快捷键均能给个对应的道具可点击,以方便手机端的行为**
|
||||
if (core.hasItem('...')) {
|
||||
core.status.route.push("key:0");
|
||||
core.useItem('...', true); // 增加true代表该使用道具不计入录像
|
||||
}
|
||||
// ... 在这里写你要执行脚本
|
||||
// **强烈建议所有新增的自定义快捷键均能给个对应的道具可点击,以方便手机端的行为**
|
||||
if (core.hasItem('...')) {
|
||||
core.status.route.push("key:0");
|
||||
core.useItem('...', true); // 增加true代表该使用道具不计入录像
|
||||
}
|
||||
|
||||
break;
|
||||
*/
|
||||
break;
|
||||
*/
|
||||
}
|
||||
|
||||
},
|
||||
@ -986,9 +986,61 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
core.playBgm(core.getFlag("__bgm__"));
|
||||
}
|
||||
|
||||
core.removeFlag('__fromLoad__');
|
||||
core.removeFlag('__fromLoad__');
|
||||
if (callback) callback();
|
||||
});
|
||||
},
|
||||
"triggerDebuff": function (action, type) {
|
||||
// 毒衰咒效果的获得与解除
|
||||
// action:获得还是解除;'get'表示获得,'remove'表示解除
|
||||
// type:一个数组表示获得了哪些毒衰咒效果;poison, weak,curse
|
||||
if (!(type instanceof Array)) type = [type];
|
||||
|
||||
if (action == 'get') {
|
||||
if (core.inArray(type, 'poison') && !core.hasFlag("poison")) {
|
||||
// 获得毒效果
|
||||
core.setFlag('poison', true);
|
||||
}
|
||||
if (core.inArray(type, 'weak') && !core.hasFlag('weak')) {
|
||||
// 获得衰效果
|
||||
core.setFlag('weak', true);
|
||||
if (core.values.weakValue >= 1) {
|
||||
// >=1,直接扣数值
|
||||
core.addStatus('atk', -core.values.weakValue);
|
||||
core.addStatus('def', -core.values.weakValue);
|
||||
} else {
|
||||
// <1,扣比例
|
||||
core.addBuff('atk', -core.values.weakValue);
|
||||
core.addBuff('def', -core.values.weakValue);
|
||||
}
|
||||
}
|
||||
if (core.inArray(type, 'curse') && !core.hasFlag('curse')) {
|
||||
// 获得咒效果
|
||||
core.setFlag('curse', true);
|
||||
}
|
||||
} else if (action == 'remove') {
|
||||
if (core.inArray(type, "poison") && core.hasFlag("poison")) {
|
||||
// 移除毒效果
|
||||
core.setFlag("poison", false);
|
||||
}
|
||||
if (core.inArray(type, "weak") && core.hasFlag("weak")) {
|
||||
// 移除衰效果
|
||||
core.setFlag("weak", false);
|
||||
if (core.values.weakValue >= 1) {
|
||||
// >=1,直接扣数值
|
||||
core.addStatus('atk', core.values.weakValue);
|
||||
core.addStatus('def', core.values.weakValue);
|
||||
} else {
|
||||
// <1,扣比例
|
||||
core.addBuff('atk', core.values.weakValue);
|
||||
core.addBuff('def', core.values.weakValue);
|
||||
}
|
||||
}
|
||||
if (core.inArray(type, "curse") && core.hasFlag("curse")) {
|
||||
// 移除咒效果
|
||||
core.setFlag("curse", false);
|
||||
}
|
||||
}
|
||||
},
|
||||
"updateStatusBar": function () {
|
||||
// 更新状态栏
|
||||
@ -1024,8 +1076,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
if (core.status.hero.manamax != null && core.getRealStatus('manamax') >= 0) {
|
||||
core.status.hero.mana = Math.min(core.status.hero.mana, core.getRealStatus('manamax'));
|
||||
core.setStatusBarInnerHTML('mana', core.status.hero.mana + "/" + core.getRealStatus('manamax'));
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
core.setStatusBarInnerHTML("mana", core.status.hero.mana);
|
||||
}
|
||||
// 设置技能栏
|
||||
@ -1038,9 +1089,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
// 如果是自定义添加的状态栏,也需要在这里进行设置显示的数值
|
||||
|
||||
// 进阶
|
||||
if (core.flags.statusBarItems.indexOf('enableLevelUp')>=0 && core.status.hero.lv < core.firstData.levelUp.length) {
|
||||
if (core.flags.statusBarItems.indexOf('enableLevelUp') >= 0 && core.status.hero.lv < core.firstData.levelUp.length) {
|
||||
var need = core.calValue(core.firstData.levelUp[core.status.hero.lv].need);
|
||||
if (core.flags.statusBarItems.indexOf('levelUpLeftMode')>=0)
|
||||
if (core.flags.statusBarItems.indexOf('levelUpLeftMode') >= 0)
|
||||
core.setStatusBarInnerHTML('up', core.formatBigNumber(need - core.getStatus('exp')) || "");
|
||||
else
|
||||
core.setStatusBarInnerHTML('up', core.formatBigNumber(need) || "");
|
||||
@ -1292,26 +1343,27 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
|
||||
// ------ 检查目标点事件 ------ //
|
||||
// 无事件的道具(如血瓶)需要优先于阻激夹域判定
|
||||
var nowx = core.getHeroLoc('x'), nowy = core.getHeroLoc('y');
|
||||
var block = core.getBlock(nowx, nowy);
|
||||
var hasTrigger = false;
|
||||
if (block!=null && block.block.event.trigger=='getItem' &&
|
||||
!core.floors[core.status.floorId].afterGetItem[nowx+","+nowy]) {
|
||||
hasTrigger = true;
|
||||
core.trigger(nowx, nowy, callback);
|
||||
}
|
||||
// 执行目标点的阻激夹域事件
|
||||
core.checkBlock();
|
||||
var nowx = core.getHeroLoc('x'),
|
||||
nowy = core.getHeroLoc('y');
|
||||
var block = core.getBlock(nowx, nowy);
|
||||
var hasTrigger = false;
|
||||
if (block != null && block.block.event.trigger == 'getItem' &&
|
||||
!core.floors[core.status.floorId].afterGetItem[nowx + "," + nowy]) {
|
||||
hasTrigger = true;
|
||||
core.trigger(nowx, nowy, callback);
|
||||
}
|
||||
// 执行目标点的阻激夹域事件
|
||||
core.checkBlock();
|
||||
|
||||
// 执行目标点的script和事件
|
||||
if (!hasTrigger)
|
||||
core.trigger(nowx, nowy, callback);
|
||||
// 执行目标点的script和事件
|
||||
if (!hasTrigger)
|
||||
core.trigger(nowx, nowy, callback);
|
||||
|
||||
// 检查该点是否是滑冰
|
||||
if (core.onSki()) {
|
||||
// 检查该点是否是滑冰
|
||||
if (core.onSki()) {
|
||||
// 延迟到事件最后执行,因为这之前可能有阻激夹域动画
|
||||
core.insertAction({"type": "moveAction"}, null, null, null, true);
|
||||
}
|
||||
core.insertAction({ "type": "moveAction" }, null, null, null, true);
|
||||
}
|
||||
|
||||
// ------ 检查目标点事件 END ------ //
|
||||
|
||||
@ -1457,13 +1509,16 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
// 在这里可以增加新的ID来进行统计个数,只能增加道具ID
|
||||
];
|
||||
},
|
||||
"drawAbout": function() {
|
||||
"drawAbout": function () {
|
||||
// 绘制“关于”界面
|
||||
core.ui.closePanel();
|
||||
core.lockControl();
|
||||
core.status.event.id = 'about';
|
||||
|
||||
var left = 48, top = 36, right = core.__PIXELS__ - 2 * left, bottom = core.__PIXELS__ - 2 * top;
|
||||
var left = 48,
|
||||
top = 36,
|
||||
right = core.__PIXELS__ - 2 * left,
|
||||
bottom = core.__PIXELS__ - 2 * top;
|
||||
|
||||
core.setAlpha('ui', 0.85);
|
||||
core.fillRect('ui', left, top, right, bottom, '#000000');
|
||||
@ -1474,11 +1529,11 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
|
||||
// 名称
|
||||
core.setTextAlign('ui', 'left');
|
||||
var globalFont = (core.status.globalAttribute||core.initStatus.globalAttribute).font;
|
||||
core.fillText('ui', "HTML5 魔塔样板", text_start, top+35, "#FFD700", "bold 22px "+globalFont);
|
||||
core.fillText('ui', "版本: "+main.__VERSION__, text_start, top + 80, "#FFFFFF", "bold 17px "+globalFont);
|
||||
var globalFont = (core.status.globalAttribute || core.initStatus.globalAttribute).font;
|
||||
core.fillText('ui', "HTML5 魔塔样板", text_start, top + 35, "#FFD700", "bold 22px " + globalFont);
|
||||
core.fillText('ui', "版本: " + main.__VERSION__, text_start, top + 80, "#FFFFFF", "bold 17px " + globalFont);
|
||||
core.fillText('ui', "作者: 艾之葵", text_start, top + 112);
|
||||
core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top+112+32);
|
||||
core.fillText('ui', 'HTML5魔塔交流群:539113091', text_start, top + 112 + 32);
|
||||
// TODO: 写自己的“关于”页面,每次增加32像素即可
|
||||
}
|
||||
}
|
||||
|
||||
@ -423,28 +423,28 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"cls": "tools",
|
||||
"name": "解毒药水",
|
||||
"text": "可以解除中毒状态",
|
||||
"useItemEffect": "core.removeFlag('poison');",
|
||||
"useItemEffect": "core.triggerDebuff('remove', 'poison');",
|
||||
"canUseItemEffect": "core.hasFlag('poison');"
|
||||
},
|
||||
"weakWine": {
|
||||
"cls": "tools",
|
||||
"name": "解衰药水",
|
||||
"text": "可以解除衰弱状态",
|
||||
"useItemEffect": "core.removeFlag('weak');\nif (core.values.weakValue>=1) { // >=1:直接扣数值\n\tcore.status.hero.atk += core.values.weakValue;\n\tcore.status.hero.def += core.values.weakValue;\n}\nelse { // <1:扣比例\n\tcore.addBuff(\"atk\", core.values.weakValue);\n\tcore.addBuff(\"def\", core.values.weakValue);\n}",
|
||||
"useItemEffect": "core.triggerDebuff('remove', 'weak');",
|
||||
"canUseItemEffect": "core.hasFlag('weak');"
|
||||
},
|
||||
"curseWine": {
|
||||
"cls": "tools",
|
||||
"name": "解咒药水",
|
||||
"text": "可以解除诅咒状态",
|
||||
"useItemEffect": "core.removeFlag('curse');",
|
||||
"useItemEffect": "core.triggerDebuff('remove', 'curse');",
|
||||
"canUseItemEffect": "core.hasFlag('curse');"
|
||||
},
|
||||
"superWine": {
|
||||
"cls": "tools",
|
||||
"name": "万能药水",
|
||||
"text": "可以解除所有不良状态",
|
||||
"useItemEffect": "core.removeFlag('poison');\nif (core.hasFlag('weak')) {\n\tcore.removeFlag('weak');\n\tif (core.values.weakValue>=1) { // >=1:直接扣数值\n\t\tcore.status.hero.atk += core.values.weakValue;\n\t\tcore.status.hero.def += core.values.weakValue;\n\t}\n\telse { // <1:扣比例\n\t\tcore.addBuff(\"atk\", core.values.weakValue);\n\t\tcore.addBuff(\"def\", core.values.weakValue);\n\t}\n}\ncore.removeFlag('curse');",
|
||||
"useItemEffect": "core.triggerDebuff('remove', ['poison', 'weak', 'curse']);",
|
||||
"canUseItemEffect": "(function() {\n\treturn core.hasFlag('poison') || core.hasFlag('weak') || core.hasFlag('curse');\n})();"
|
||||
},
|
||||
"hammer": {
|
||||
|
||||
@ -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('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":"咒网"},
|
||||
"12": {"cls":"animates","id":"poisonNet","canPass":true,"trigger":"null","script":"(function () {\n\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'poison');\n\t\tcore.updateStatusBar();\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\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'weak');\n\t\tcore.updateStatusBar();\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\tif (!core.hasItem('amulet')) {\n\t\tcore.triggerDebuff('get', 'curse');\n\t\tcore.updateStatusBar();\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"},
|
||||
|
||||
9
runtime.d.ts
vendored
9
runtime.d.ts
vendored
@ -456,6 +456,13 @@ declare class control {
|
||||
*/
|
||||
getBuff(name: string): number
|
||||
|
||||
/**
|
||||
* 获得或移除毒衰咒效果
|
||||
* @param action 获得还是移除,'get'为获得,'remove'为移除
|
||||
* @param type 要获得或移除的毒衰咒效果
|
||||
*/
|
||||
triggerDebuff(action: string, type: string|string[]): void
|
||||
|
||||
/**
|
||||
* 设置勇士位置
|
||||
* 值得注意的是,这句话虽然会使勇士改变位置,但并不会使界面重新绘制;
|
||||
@ -1108,7 +1115,7 @@ declare class events {
|
||||
|
||||
/**
|
||||
* 插入一个公共事件
|
||||
* @example core.insertCommonEvent('毒衰咒处理', [0]);
|
||||
* @example core.insertCommonEvent('加点事件', [3]);
|
||||
* @param name 公共事件名;如果公共事件不存在则直接忽略
|
||||
* @param args 参数列表,为一个数组,将依次赋值给 flag:arg1, flag:arg2, ...
|
||||
* @param x 新的当前点横坐标,可选
|
||||
|
||||
Loading…
Reference in New Issue
Block a user