Compare commits

...

25 Commits

Author SHA1 Message Date
0a9e8383f6 战斗动画及伤害计算函数达成 2025-03-06 18:35:37 +08:00
11c2174bcd 修改战后使用点位属性 2025-03-04 19:25:08 +08:00
69b04d852d 设置速度初始值 2025-03-04 17:36:41 +08:00
db623dc3f2 Merge branch 'story-laodeng' into status-itcfangye 2025-03-04 16:18:53 +08:00
51b3980ee2 录像中存档 2025-03-02 20:37:04 +08:00
77ca6530cc 战斗动画 2025-03-02 20:18:12 +08:00
c0617ac80f 普通回合战特效表现优化 2025-02-26 11:33:40 +08:00
ea950830d5 回合动画优化 2025-02-25 15:04:06 +08:00
9d2c199a1e 伤害弹出 2025-02-25 10:49:54 +08:00
e0ed30be3b 更改动画指针 2025-02-19 16:48:52 +08:00
57a1b29310 回合动画优化 2025-02-18 22:14:26 +08:00
973b546a43 完善回合动画(缺主角控制及录像) 2025-02-15 23:47:00 +08:00
5b853dc5a8 Merge branch 'status-itcfangye' of https://gitea.mota.press/Dove/Eustia into status-itcfangye 2025-02-15 23:10:34 +08:00
5a3552c2c0 boss战回合攻击 2025-02-15 23:10:29 +08:00
a6ba26e8b5 Merge remote-tracking branch 'origin/status-itcfangye' into status-itcfangye 2025-02-15 23:08:43 +08:00
393bfaa4b7 新增部分战斗特效 2025-02-15 23:08:25 +08:00
d9a5f79f7a 更新战斗函数 2025-02-10 22:36:57 +08:00
fa63fe18fb Merge branch 'status-itcfangye' of https://gitea.mota.press/Dove/Eustia into status-itcfangye 2025-02-10 20:58:26 +08:00
fcbb8add3e 战斗函数修改 2025-02-10 20:56:37 +08:00
8cdc9d7f43 新增部分战斗特效 2025-02-10 14:48:36 +08:00
153adac136 特殊战画面 2025-02-09 23:02:01 +08:00
943e34af72 特殊战入场 2025-02-09 17:20:40 +08:00
f81399f453 修复滑屏/固伤bug 2025-02-06 15:49:40 +08:00
a0cbb8cdb8 乘算法抗 2025-02-05 22:38:46 +08:00
4079bb9710 修复换装bug 2025-02-05 17:24:37 +08:00
15 changed files with 13386 additions and 10028 deletions

View File

@ -4625,8 +4625,8 @@ IdString
;
FixedId_List
: '生命'|'生命上限'|'攻击'|'防御'|'法强'|'魔攻比例'|'护盾比例'|'黄钥匙'|'蓝钥匙'|'红钥匙'|'金币'|'经验'|'魔力'|'魔力上限'|'当前横坐标'|'当前纵坐标'|'当前朝向'|'攻击增益'|'防御增益'|'护盾增益'
/*FixedId_List ['status:hp','status:hpmax','status:atk','status:def','status:spell','status:matk','status:mdef','item:yellowKey','item:blueKey','item:redKey','status:money','status:exp','status:mana','status:manamax','status:x','status:y','status:direction','buff:atk','buff:def','buff:mdef']*/;
: '生命'|'生命上限'|'攻击'|'防御'|'法强'|'魔攻比例'|'护盾比例'|'法抗比例'|'黄钥匙'|'蓝钥匙'|'红钥匙'|'金币'|'经验'|'魔力'|'魔力上限'|'当前横坐标'|'当前纵坐标'|'当前朝向'|'攻击增益'|'防御增益'|'法强增益'|'魔攻增益'|'法抗增益'|'护盾增益'
/*FixedId_List ['status:hp','status:hpmax','status:atk','status:def','status:spell','status:matk','status:mhp','status:mdef','item:yellowKey','item:blueKey','item:redKey','status:money','status:exp','status:mana','status:manamax','status:x','status:y','status:direction','buff:atk','buff:def','buff:spell','buff:matk','buff:mdef','buff:mhp']*/;
Id_List
: '变量' | '状态' | '物品' | '增益' | '独立开关' | '临时变量' |'全局存储'
@ -4641,8 +4641,8 @@ EnemyPoint_List
/*EnemyPoint_List ['hp','atk','def','money','exp','point','name']*/;
Equip_List
: '生命'|'生命上限'|'攻击'|'防御'|'法强'|'魔攻比例'|'护盾比例'|'魔力'|'魔力上限'|'速度'
/*Equip_List ['hp','hpmax','atk','def','spell','matk','mdef','mana','manamax','speed']*/;
: '生命'|'生命上限'|'攻击'|'防御'|'法强'|'魔攻比例'|'护盾比例'|'法抗百分比'|'魔力'|'魔力上限'|'速度'
/*Equip_List ['hp','hpmax','atk','def','spell','matk','mhp','mdef','mana','manamax','speed']*/;
Key_List
: '黄钥匙'|'蓝钥匙'|'红钥匙'|'绿钥匙'|'铁门钥匙'

View File

@ -196,6 +196,11 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_data": "百分数如10为10%法抗,怪物受到勇士的法术伤害减免比例"
},
"spell": {
"_leaf": true,
"_type": "textarea",
"_data": "法强"
},
"speed": {
"_leaf": true,
"_type": "textarea",
@ -368,7 +373,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "退化扣防",
"_data": "退化时勇士下降的防御力点数"
},
"damage": {
"damage2": {
"_leaf": true,
"_type": "textarea",
"_range": "thiseval==~~thiseval||thiseval==null",
@ -391,7 +396,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
}
}
},
"enemys_template": { 'name': '新敌人', 'hp': 0, 'atk': 0, 'def': 0, 'mdef': 0, 'speed': 0, 'money': 0, 'exp': 0, 'point': 0, 'special': [] },
"enemys_template": { 'name': '新敌人', 'hp': 0, 'atk': 0, 'def': 0, 'mdef': 0, 'speed': 1, 'money': 0, 'exp': 0, 'point': 0, 'special': [] },
// --------------------------- 【图块属性】相关的表格配置 --------------------------- //

View File

@ -276,7 +276,7 @@ main.prototype.init = function (mode, callback) {
coreData[t] = main[t];
});
main.core.init(coreData, callback);
main.core.resize();
core.resize();
// 自动放缩最大化
if (!main.replayChecking) {
if (core.getLocalStorage("autoScale") == null) {

View File

@ -39,6 +39,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
],
"floorPartitions": [],
"images": [
"005-Attack03.webp",
"012-Heal01.webp",
"015-Fire01.webp",
"HPGaugeEnemy_A.webp",
"HPGaugeEnemy_B.webp",
"LOGO.webp",
@ -786,6 +789,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"tati_120128.webp",
"tati_120131.webp",
"tati_120132.webp",
"tati_310101.webp",
"tati_340101.webp",
"tati_340101a.webp",
"tati_340101y.webp",
@ -1525,9 +1529,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"hp": 1000,
"manamax": -1,
"mana": 0,
"atk": 100,
"def": 100,
"mdef": 0,
"atk": 60,
"def": 10,
"mdef": 100,
"speed": 10,
"money": 0,
"exp": 0,
@ -1544,7 +1548,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
},
"flags": {
"itemDetail": true,
"useBetweenLight": true
"useBetweenLight": true,
"__mdef_buff__": 0,
"popmove": true
},
"followers": [],
"steps": 0,
@ -1908,7 +1914,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"startText": [
{
"type": "function",
"function": "function(){\ncore.getItem('book',1);core.getItem('fly',1)\n}"
"function": "function(){\ncore.getItem('book', 1);\ncore.getItem('fly', 1);\n}"
},
{
"type": "insert",

View File

@ -1,84 +1,84 @@
var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
{
"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"magic":false,"mdef":0},
"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10,"magic":false},
"blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9]},
"bat": {"name":"小蝙蝠","hp":100,"atk":120,"def":0,"money":2,"exp":0,"point":0,"special":[1],"mdef":0,"speed":15},
"bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"redBat": {"name":"红蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"vampire": {"name":"冥灵魔王","hp":888,"atk":888,"def":888,"money":888,"exp":888,"point":0,"special":[6],"n":8},
"skeleton": {"name":"骷髅人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"skeletonCaptain": {"name":"骷髅队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"zombie": {"name":"兽人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"magic":false},
"zombieKnight": {"name":"兽人武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"rock": {"name":"石头人","hp":50,"atk":50,"def":0,"money":3,"exp":0,"point":0,"special":3},
"bluePriest": {"name":"初级法师","hp":100,"atk":120,"def":0,"money":3,"exp":0,"point":1,"special":[9]},
"redPriest": {"name":"高级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"brownWizard": {"name":"初级巫师","hp":100,"atk":120,"def":0,"money":16,"exp":0,"point":0,"special":15,"value":100,"range":2},
"redWizard": {"name":"高级巫师","hp":1000,"atk":1200,"def":0,"money":160,"exp":0,"point":0,"special":15,"value":200,"zoneSquare":true},
"swordsman": {"name":"双手剑士","hp":100,"atk":120,"def":0,"money":6,"exp":3,"point":0,"special":4},
"soldier": {"name":"冥战士","hp":120,"atk":50,"def":8,"money":10,"exp":7,"point":0,"special":0},
"yellowKnight": {"name":"金骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"redKnight": {"name":"红骑士","hp":500,"atk":200,"def":50,"money":0,"exp":0,"point":0,"special":[7]},
"darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"blueKnight": {"name":"蓝骑士","hp":100,"atk":120,"def":0,"money":9,"exp":0,"point":0,"special":8},
"goldSlime": {"name":"黄头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"poisonSkeleton": {"name":"紫骷髅","hp":50,"atk":60,"def":70,"money":80,"exp":0,"point":0,"special":13},
"poisonBat": {"name":"紫蝙蝠","hp":100,"atk":120,"def":0,"money":14,"exp":0,"point":0,"special":13},
"skeletonPriest": {"name":"骷髅法师","hp":100,"atk":100,"def":0,"money":0,"exp":0,"point":0,"special":18,"value":20},
"skeletonKing": {"name":"骷髅王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"evilHero": {"name":"迷失勇者","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"goldHornSlime": {"name":"金角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"silverSlime": {"name":"银头怪","hp":100,"atk":120,"def":0,"money":15,"exp":0,"point":0,"special":14},
"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10,"mdef":0,"spell":0,"speed":1},
"blackSlime": {"name":"青头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"slimelord": {"name":"怪王","hp":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":[1,9],"mdef":0,"spell":0,"speed":1},
"bat": {"name":"小蝙蝠","hp":100,"atk":50,"def":30,"money":2,"exp":0,"point":0,"special":[1],"mdef":0,"speed":15,"spell":0},
"bigBat": {"name":"大蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"redBat": {"name":"红蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":1},
"vampire": {"name":"冥灵魔王","hp":888,"atk":888,"def":888,"money":888,"exp":888,"point":0,"special":[6],"n":8,"mdef":0,"spell":0,"speed":1},
"skeleton": {"name":"骷髅人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"skeletonCaptain": {"name":"骷髅队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"zombie": {"name":"兽人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[22],"mdef":0,"spell":0,"speed":1},
"zombieKnight": {"name":"兽人武士","hp":10000,"atk":100,"def":100,"money":0,"exp":0,"point":0,"special":[22],"speed":10,"mdef":0,"damage2":20,"spell":0},
"rock": {"name":"石头人","hp":50,"atk":50,"def":0,"money":3,"exp":0,"point":0,"special":3,"damage2":15,"mdef":0,"spell":0,"speed":1},
"bluePriest": {"name":"初级法师","hp":100,"atk":120,"def":0,"money":3,"exp":0,"point":1,"special":[9],"mdef":0,"spell":0,"speed":1},
"redPriest": {"name":"高级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"brownWizard": {"name":"初级巫师","hp":100,"atk":120,"def":0,"money":16,"exp":0,"point":0,"special":15,"value":100,"range":2,"mdef":0,"spell":0,"speed":1},
"redWizard": {"name":"高级巫师","hp":1000,"atk":1200,"def":0,"money":160,"exp":0,"point":0,"special":15,"value":200,"zoneSquare":true,"mdef":0,"spell":0,"speed":1},
"swordsman": {"name":"双手剑士","hp":100,"atk":120,"def":0,"money":6,"exp":3,"point":0,"special":4,"mdef":0,"spell":0,"speed":1},
"soldier": {"name":"冥战士","hp":120,"atk":50,"def":8,"money":10,"exp":7,"point":0,"special":0,"mdef":0,"spell":0,"speed":8},
"yellowKnight": {"name":"金骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"redKnight": {"name":"红骑士","hp":500,"atk":200,"def":50,"money":0,"exp":0,"point":0,"special":[7],"mdef":0,"spell":0,"speed":1},
"darkKnight": {"name":"黑骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"blueKnight": {"name":"蓝骑士","hp":100,"atk":120,"def":0,"money":9,"exp":0,"point":0,"special":8,"mdef":0,"spell":0,"speed":1},
"goldSlime": {"name":"黄头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"poisonSkeleton": {"name":"紫骷髅","hp":50,"atk":60,"def":70,"money":80,"exp":0,"point":0,"special":13,"mdef":0,"spell":0,"speed":1},
"poisonBat": {"name":"紫蝙蝠","hp":100,"atk":120,"def":0,"money":14,"exp":0,"point":0,"special":13,"mdef":0,"spell":0,"speed":1},
"skeletonPriest": {"name":"骷髅法师","hp":100,"atk":100,"def":0,"money":0,"exp":0,"point":0,"special":18,"value":20,"mdef":0,"spell":0,"speed":1},
"skeletonKing": {"name":"骷髅王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"evilHero": {"name":"迷失勇者","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"demonPriest": {"name":"魔神法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"goldHornSlime": {"name":"金角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"silverSlime": {"name":"银头怪","hp":100,"atk":120,"def":0,"money":15,"exp":0,"point":0,"special":14,"mdef":0,"spell":0,"speed":1},
"whiteHornSlime": {"name":"尖角怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"redSwordsman": {"name":"剑王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
"poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12]},
"octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null},
"princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"steelGuard": {"name":"铁守卫","hp":50,"atk":50,"def":50,"money":0,"exp":0,"point":0,"special":[18],"value":20},
"evilBat": {"name":"邪恶蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"silverSlimelord": {"name":"银怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"goldSlimelord": {"name":"金怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"skeletonWarrior": {"name":"骷髅士兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"whiteSlimeman": {"name":"水银战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"slimeman": {"name":"影子战士","hp":100,"atk":0,"def":0,"money":11,"exp":0,"point":0,"special":[9],"atkValue":2,"defValue":3},
"yellowGateKeeper": {"name":"初级卫兵","hp":80,"atk":25,"def":5,"money":3,"exp":1,"point":0,"special":0},
"blueGateKeeper": {"name":"中级卫兵","hp":80,"atk":25,"def":5,"money":3,"exp":1,"point":0,"special":0},
"redGateKeeper": {"name":"高级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true},
"devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null},
"skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"ironRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"grayRock": {"name":"灰色石头人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"yellowPriest": {"name":"中级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"evilPrincess": {"name":"痛苦魔女","hp":1000,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[10]},
"redSwordsman": {"name":"剑王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":1},
"poisonZombie": {"name":"绿兽人","hp":100,"atk":120,"def":0,"money":13,"exp":0,"point":0,"special":[12],"mdef":0,"spell":0,"speed":1},
"octopus": {"name":"血影","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null,"mdef":0,"spell":0,"speed":1},
"princessEnemy": {"name":"假公主","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"angel": {"name":"天使","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"steelGuard": {"name":"铁守卫","hp":50,"atk":50,"def":50,"money":0,"exp":0,"point":0,"special":[18],"value":20,"mdef":0,"spell":0,"speed":1},
"evilBat": {"name":"邪恶蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"silverSlimelord": {"name":"银怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"goldSlimelord": {"name":"金怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"skeletonWarrior": {"name":"骷髅士兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"whiteSlimeman": {"name":"水银战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"slimeman": {"name":"影子战士","hp":100,"atk":0,"def":0,"money":11,"exp":0,"point":0,"special":[9],"atkValue":2,"defValue":3,"mdef":0,"spell":0,"speed":1},
"yellowGateKeeper": {"name":"初级卫兵","hp":80,"atk":25,"def":5,"money":3,"exp":1,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"blueGateKeeper": {"name":"中级卫兵","hp":80,"atk":25,"def":5,"money":3,"exp":1,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"redGateKeeper": {"name":"高级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"magicMaster": {"name":"黑暗大法师","hp":100,"atk":120,"def":0,"money":12,"exp":0,"point":0,"special":11,"value":0.3333333333333333,"add":true,"notBomb":true,"mdef":0,"spell":0,"speed":1},
"devilWarrior": {"name":"魔神武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"fairyEnemy": {"name":"仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"dragon": {"name":"魔龙","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"bigImage":null,"mdef":0,"spell":0,"speed":1},
"skeletonKnight": {"name":"骷髅武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"skeletonPresbyter": {"name":"骷髅巫师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"ironRock": {"name":"铁面人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"grayRock": {"name":"灰色石头人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"yellowPriest": {"name":"中级法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"evilPrincess": {"name":"痛苦魔女","hp":1000,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[10],"mdef":0,"spell":0,"speed":1},
"blademaster": {"name":"剑圣","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"bowman": {"name":"初级弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"watcherSlime": {"name":"邪眼怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"devilKnight": {"name":"恶灵骑士","hp":150,"atk":100,"def":50,"money":0,"exp":0,"point":0,"special":[1,5,7,8]},
"grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"greenGateKeeper": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"ghostSoldier": {"name":"冥队长","hp":200,"atk":100,"def":50,"money":0,"exp":0,"point":0,"special":8},
"frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"blackKing": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"exp":1000,"point":0,"special":0,"notBomb":true},
"yellowKing": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"greenKing": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"redKing": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"blueKing": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"exp":0,"point":0,"special":[16]},
"keiskeiFairy": {"name":"铃兰花妖","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"tulipFairy": {"name":"郁金香花妖","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"purpleBowman": {"name":"高级弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
"bearDown": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"},"bigImage":"bear.png"},
"bearLeft": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"}},
"bearRight": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"}},
"bearUp": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"}}
"evilFairy": {"name":"黑暗仙子","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"greenKnight": {"name":"强盾骑士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"bowman": {"name":"初级弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"watcherSlime": {"name":"邪眼怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"devilKnight": {"name":"恶灵骑士","hp":150,"atk":100,"def":50,"money":0,"exp":0,"point":0,"special":[1,5,7,8],"mdef":0,"spell":0,"speed":1},
"grayPriest": {"name":"混沌法师","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"greenGateKeeper": {"name":"卫兵队长","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"ghostSoldier": {"name":"冥队长","hp":200,"atk":100,"def":50,"money":0,"exp":0,"point":0,"special":8,"mdef":0,"spell":0,"speed":1},
"frostBat": {"name":"寒蝙蝠","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"blackKing": {"name":"黑衣魔王","hp":1000,"atk":500,"def":0,"money":1000,"exp":1000,"point":0,"special":0,"notBomb":true,"mdef":0,"spell":0,"speed":1},
"yellowKing": {"name":"黄衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"greenKing": {"name":"青衣武士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"redKing": {"name":"红衣魔王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"blueKing": {"name":"白衣武士","hp":100,"atk":120,"def":0,"money":17,"exp":0,"point":0,"special":[16],"mdef":0,"spell":0,"speed":1},
"keiskeiFairy": {"name":"铃兰花妖","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"tulipFairy": {"name":"郁金香花妖","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"purpleBowman": {"name":"高级弓兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":1},
"bearDown": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"},"bigImage":"bear.png","mdef":0,"spell":0,"speed":1},
"bearLeft": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"},"mdef":0,"spell":0,"speed":1},
"bearRight": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"},"mdef":0,"spell":0,"speed":1},
"bearUp": {"name":"熊出没","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"faceIds":{"down":"bearDown","left":"bearLeft","right":"bearRight","up":"bearUp"},"mdef":0,"spell":0,"speed":1}
}

View File

@ -10763,6 +10763,518 @@ var events_c12a15a8_c380_4b28_8144_256cba95f760 =
"stopbefore": false
}
]
},
{
"type": "setanimate",
"name": "Fire01",
"px": 48,
"py": 48,
"width": 192,
"height": 192,
"allFarme": 15,
"imageList": [
{
"image": "015-Fire01.webp",
"beforefarme": 0,
"globalAlpha": 100,
"cx": 192,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 3,
"acx": 192,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 4,
"globalAlpha": 100,
"cx": 384,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 6,
"acx": 384,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 7,
"globalAlpha": 100,
"cx": 576,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 9,
"acx": 576,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 10,
"globalAlpha": 100,
"cx": 768,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 12,
"acx": 768,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 13,
"globalAlpha": 100,
"cx": 960,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 15,
"acx": 960,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
}
],
"soundList": [
{
"sound": "",
"startfarme": 0,
"stopbefore": false
}
]
},
{
"type": "setanimate",
"name": "Fire02",
"px": 48,
"py": 48,
"width": 192,
"height": 192,
"allFarme": 15,
"imageList": [
{
"image": "015-Fire01.webp",
"beforefarme": 0,
"globalAlpha": 100,
"cx": 192,
"cy": 192,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 3,
"acx": 192,
"acy": 192,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 4,
"globalAlpha": 100,
"cx": 384,
"cy": 192,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 6,
"acx": 384,
"acy": 192,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 7,
"globalAlpha": 100,
"cx": 576,
"cy": 192,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 9,
"acx": 576,
"acy": 192,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 10,
"globalAlpha": 100,
"cx": 768,
"cy": 192,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 12,
"acx": 768,
"acy": 192,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "015-Fire01.webp",
"beforefarme": 13,
"globalAlpha": 100,
"cx": 960,
"cy": 192,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 15,
"acx": 960,
"acy": 192,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
}
],
"soundList": [
{
"sound": "",
"startfarme": 0,
"stopbefore": false
}
]
},
{
"type": "setanimate",
"name": "005-Attack03",
"px": 48,
"py": 48,
"width": 192,
"height": 192,
"allFarme": 15,
"imageList": [
{
"image": "005-Attack03.webp",
"beforefarme": 0,
"globalAlpha": 100,
"cx": 0,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 3,
"acx": 0,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "005-Attack03.webp",
"beforefarme": 4,
"globalAlpha": 100,
"cx": 192,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 6,
"acx": 192,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "005-Attack03.webp",
"beforefarme": 7,
"globalAlpha": 100,
"cx": 384,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 9,
"acx": 384,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "005-Attack03.webp",
"beforefarme": 10,
"globalAlpha": 100,
"cx": 576,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 12,
"acx": 576,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "005-Attack03.webp",
"beforefarme": 13,
"globalAlpha": 100,
"cx": 768,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 15,
"acx": 768,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
}
],
"soundList": [
{
"sound": "",
"startfarme": 0,
"stopbefore": false
}
]
},
{
"type": "setanimate",
"name": "012-Heal01",
"px": 48,
"py": 48,
"width": 192,
"height": 192,
"allFarme": 15,
"imageList": [
{
"image": "012-Heal01.webp",
"beforefarme": 0,
"globalAlpha": 100,
"cx": 0,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 3,
"acx": 0,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "012-Heal01.webp",
"beforefarme": 4,
"globalAlpha": 100,
"cx": 192,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 6,
"acx": 192,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "012-Heal01.webp",
"beforefarme": 7,
"globalAlpha": 100,
"cx": 384,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 9,
"acx": 384,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "012-Heal01.webp",
"beforefarme": 10,
"globalAlpha": 100,
"cx": 576,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 12,
"acx": 576,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
},
{
"image": "012-Heal01.webp",
"beforefarme": 13,
"globalAlpha": 100,
"cx": 768,
"cy": 0,
"cw": 192,
"ch": 192,
"x": 0,
"y": 0,
"w": 96,
"h": 96,
"afterfarme": 15,
"acx": 768,
"acy": 0,
"acw": 192,
"ach": 192,
"ax": 0,
"ay": 0,
"aw": 96,
"ah": 96
}
],
"soundList": [
{
"sound": "",
"startfarme": 0,
"stopbefore": false
}
]
}
],
"chapter06": null,

View File

@ -48,8 +48,8 @@ main.floors.yiqu1=
[140142, 0,120015,120028,201037, 0,201029, 0, 0, 0, 0, 0,110197],
[140150, 0, 0,120019, 0, 0,201029, 0,110189,140,110191, 0,110205],
[ 92, 0, 0,120019,201037,201037,201037, 0,110197,140,110199, 81,110224],
[ 0, 0, 0,120027, 0, 0, 0, 0,110197,140,110199, 0,110232],
[110191, 0, 0, 0, 0, 0,110189,140,140,140,110199, 0, 94],
[ 0, 0, 0,120027, 37, 37, 0, 0,110197,140,110199, 0,110232],
[110191, 0, 0, 0, 36, 35,110189,140,140,140,110199, 0, 94],
[110199,140,140,110191, 0, 0,110197,140,140,110204,110207, 0, 0],
[140,140,140,110199,90684,90684,110197,140,140,110199,110234, 0, 0],
[140,140,140,110199,100307,100308,110197,140,140,110199, 0, 0, 0]

View File

@ -1,29 +1,29 @@
main.floors.yiqu7=
{
"floorId": "yiqu7",
"title": "主塔 7 层",
"name": "7",
"width": 13,
"height": 13,
"canFlyTo": true,
"canFlyFrom": true,
"canUseQuickShop": true,
"images": [],
"ratio": 1,
"defaultGround": "grass2",
"firstArrive": [],
"eachArrive": [],
"parallelDo": "",
"events": {},
"changeFloor": {},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
"floorId": "yiqu7",
"title": "主塔 7 层",
"name": "7",
"width": 13,
"height": 13,
"canFlyTo": true,
"canFlyFrom": true,
"canUseQuickShop": true,
"images": [],
"ratio": 1,
"defaultGround": "grass2",
"firstArrive": [],
"eachArrive": [],
"parallelDo": "",
"events": {},
"changeFloor": {},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
@ -38,4 +38,16 @@ main.floors.yiqu7=
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
],
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
}

View File

@ -94,7 +94,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
);
});
},
},
"changingFloor": function (floorId, heroLoc) {
// 正在切换楼层过程中执行的操作;此函数的执行时间是“屏幕完全变黑“的那一刻
// floorId为要切换到的楼层IDheroLoc表示勇士切换到的位置
@ -172,7 +172,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
else core.setWeather();
// ...可以新增一些其他内容,比如创建个画布在右上角显示什么内容等等
},
},
"afterChangeFloor": function (floorId) {
// 转换楼层结束的事件;此函数会在整个楼层切换完全结束后再执行
// floorId是切换到的楼层
@ -192,7 +192,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.plugin.bfs();
}
}
},
},
"flyTo": function (toId, callback) {
// 楼层传送器的使用从当前楼层飞往toId
// 如果不能飞行请返回false
@ -243,7 +243,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
});
return true;
},
},
"beforeBattle": function (enemyId, x, y) {
// 战斗前触发的事件,可以加上一些战前特效(详见下面支援的例子)
// 此函数在“检测能否战斗和自动存档”【之后】执行。如果需要更早的战前事件,请在插件中覆重写 core.events.doSystemEvent 函数。
@ -284,13 +284,11 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
},
"afterBattle": function (enemyId, x, y) {
// 战斗结束后触发的事件
var enemy = core.material.enemys[enemyId];
var enemy = core.getEnemyInfo(enemyId, hero, x, y)
var special = enemy.special;
// 播放战斗音效和动画
// 默认播放的动画;你也可以使用
var animate = "hand"; // 默认动画
var animate = 'hand'; // 默认动画
// 检查当前装备是否存在攻击动画
var equipId = core.getEquip(0);
if (equipId && (core.material.items[equipId].equip || {}).animate)
@ -300,14 +298,29 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 检查该动画是否存在SE如果不存在则使用默认音效
if (!(core.material.animates[animate] || {}).se)
core.playSound("attack.opus");
core.playSound('attack.mp3');
// 播放动画;如果不存在坐标(强制战斗)则播放到勇士自身
if (x != null && y != null) core.drawAnimate(animate, x, y);
else core.drawHeroAnimate(animate);
if (x != null && y != null)
core.drawAnimate(animate, x, y);
else
core.drawHeroAnimate(animate);
// 获得战斗伤害信息
var damageInfo = core.getDamageInfo(enemyId, null, x, y) || {};
if (!core.getFlag("noAnimate")) core.attackAnimate(
enemyId,
damageInfo.start[0],
damageInfo.start[1],
damageInfo.start[2],
damageInfo.start[3],
damageInfo.start[4],
damageInfo.heroDiffList,
damageInfo.enemyDiffList,
damageInfo.heroanimateList,
damageInfo.enemyanimateList
)
// 战斗伤害
var damage = damageInfo.damage;
// 当前战斗回合数,可用于战后所需的判定
@ -316,7 +329,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (damage == null || damage >= core.status.hero.hp) {
core.status.hero.hp = 0;
core.updateStatusBar(false, true);
core.events.lose("战斗失败");
core.events.lose('战斗失败');
return;
}
@ -336,8 +349,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
var money = guards.reduce(function (curr, g) {
return curr + core.material.enemys[g[2]].money;
}, core.getEnemyValue(enemy, "money", x, y));
if (core.hasItem("coin")) money *= 2; // 幸运金币:双倍
if (core.hasFlag("curse")) money = 0; // 诅咒效果
if (core.hasItem('coin')) money *= 2; // 幸运金币:双倍
if (core.hasFlag('curse')) money = 0; // 诅咒效果
core.status.hero.money += money;
core.status.hero.statistics.money += money;
@ -345,32 +358,32 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
var exp = guards.reduce(function (curr, g) {
return curr + core.material.enemys[g[2]].exp;
}, core.getEnemyValue(enemy, "exp", x, y));
if (core.hasFlag("curse")) exp = 0;
if (core.hasFlag('curse')) exp = 0;
core.status.hero.exp += exp;
core.status.hero.statistics.exp += exp;
var hint = "打败 " + core.getEnemyValue(enemy, "name", x, y);
if (core.flags.statusBarItems.indexOf("enableMoney") >= 0)
hint += "," + core.getStatusLabel("money") + "+" + money; // hint += ",金币+" + money;
if (core.flags.statusBarItems.indexOf("enableExp") >= 0)
hint += "," + core.getStatusLabel("exp") + "+" + exp; // hint += ",经验+" + exp;
if (core.flags.statusBarItems.indexOf('enableMoney') >= 0)
hint += ',' + core.getStatusLabel('money') + '+' + money; // hint += ",金币+" + money;
if (core.flags.statusBarItems.indexOf('enableExp') >= 0)
hint += ',' + core.getStatusLabel('exp') + '+' + exp; // hint += ",经验+" + exp;
core.drawTip(hint, enemy.id);
// 中毒
if (core.enemys.hasSpecial(special, 12)) {
core.triggerDebuff("get", "poison");
core.triggerDebuff('get', 'poison');
}
// 衰弱
if (core.enemys.hasSpecial(special, 13)) {
core.triggerDebuff("get", "weak");
core.triggerDebuff('get', 'weak');
}
// 诅咒
if (core.enemys.hasSpecial(special, 14)) {
core.triggerDebuff("get", "curse");
core.triggerDebuff('get', 'curse');
}
// 仇恨怪物将仇恨值减半
if (core.enemys.hasSpecial(special, 17)) {
core.setFlag("hatred", Math.floor(core.getFlag("hatred", 0) / 2));
core.setFlag('hatred', Math.floor(core.getFlag('hatred', 0) / 2));
}
// 自爆
if (core.enemys.hasSpecial(special, 19)) {
@ -379,45 +392,41 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
// 退化
if (core.enemys.hasSpecial(special, 21)) {
core.status.hero.atk -= enemy.atkValue || 0;
core.status.hero.def -= enemy.defValue || 0;
core.status.hero.atk -= (enemy.atkValue || 0);
core.status.hero.def -= (enemy.defValue || 0);
if (core.status.hero.atk < 0) core.status.hero.atk = 0;
if (core.status.hero.def < 0) core.status.hero.def = 0;
}
// 增加仇恨值
core.setFlag("hatred", core.getFlag("hatred", 0) + core.values.hatred);
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二倍斩
var skill = core.getFlag('skill', 0);
if (skill == 1) { // 技能1二倍斩
core.status.hero.mana -= 5; // 扣除5点魔力值
}
// 关闭技能
core.setFlag("skill", 0);
core.setFlag("skillName", "无");
core.setFlag('skill', 0);
core.setFlag('skillName', '无');
}
// 事件的处理
var todo = [];
// 加点事件
var point =
guards.reduce(function (curr, g) {
var point = guards.reduce(function (curr, g) {
return curr + core.material.enemys[g[2]].point;
}, core.getEnemyValue(enemy, "point", x, y)) || 0;
if (core.flags.enableAddPoint && point > 0) {
core.push(todo, [{ type: "insert", name: "加点事件", args: [point] }]);
core.push(todo, [{ "type": "insert", "name": "加点事件", "args": [point] }]);
}
// 战后事件
if (core.status.floorId != null) {
core.push(
todo,
core.floors[core.status.floorId].afterBattle[x + "," + y]
);
core.push(todo, core.floors[core.status.floorId].afterBattle[x + "," + y]);
}
core.push(todo, enemy.afterBattle);
@ -434,9 +443,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
if (todo.length > 0) core.insertAction(todo, x, y);
// 删除该点设置的怪物信息
delete((flags.enemyOnPoint || {})[core.status.floorId] || {})[
x + "," + y
];
delete((flags.enemyOnPoint || {})[core.status.floorId] || {})[x + "," + y];
// 因为removeBlock和hideBlock都会刷新状态栏因此将删除部分移动到这里并保证刷新只执行一次以提升效率
if (core.getBlock(x, y) != null) {
@ -451,8 +458,11 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
// 如果已有事件正在处理中
if (core.status.event.id == null) core.continueAutomaticRoute();
else core.clearContinueAutomaticRoute();
if (core.status.event.id == null)
core.continueAutomaticRoute();
else
core.clearContinueAutomaticRoute();
},
"afterOpenDoor": function (doorId, x, y) {
// 开一个门后触发的事件
@ -530,8 +540,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 第五项为该特殊属性的标记;目前 1 代表是地图类技能(需要进行遍历全图)
// 名字和描述可以直接写字符串也可以写个function将怪物传进去
return [
[1, "先攻", "怪物首先攻击", "#ffcc33"],
[3, "坚固", "怪物防御不小于角色攻击-1", "#c0b088"],
[1, "先攻", "怪物首先攻击", "#ffcc33"], //√
//[2, "魔攻", "怪物无视角色的防御", "#bbb0ff"],
[3, "坚固", "怪物防御不小于角色攻击-1", "#c0b088"], //√
[
6,
function (enemy) {
@ -541,21 +552,21 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return "怪物每回合攻击" + (enemy.n || 4) + "次";
},
"#ffee77",
],
], //想改成“以XX%、XX%攻击力各攻击一次”
[
7,
"破甲",
function (enemy) {
return (
"战斗前,怪物附加角色防御的" +
"怪物无视角色防御的" +
Math.floor(
100 * (enemy.breakArmor || core.values.breakArmor || 0)
) +
"%作为伤害"
"%"
);
},
"#88c0ff",
],
], //√
[
8,
"反击",
@ -610,9 +621,9 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
13,
"衰弱",
"战斗后,角色陷入衰弱状态,攻防暂时下降" +
(core.values.weakValue >= 1
? core.values.weakValue + "点"
: parseInt(core.values.weakValue * 100) + "%"),
(core.values.weakValue >= 1 ?
core.values.weakValue + "点" :
parseInt(core.values.weakValue * 100) + "%"),
"#f0bbcc",
],
[
@ -701,11 +712,11 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
"光环",
function (enemy) {
return (
(enemy.range != null
? (enemy.haloSquare ? "该怪物九宫格" : "该怪物十字") +
(enemy.range != null ?
(enemy.haloSquare ? "该怪物九宫格" : "该怪物十字") +
enemy.haloRange +
"格范围内"
: "同楼层所有") +
"格范围内" :
"同楼层所有") +
"怪物生命提升" +
(enemy.hpBuff || 0) +
"%,攻击提升" +
@ -739,7 +750,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
"#c0ddbb",
],
];
},
},
"getEnemyInfo": function (enemy, hero, x, y, floorId) {
// 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用
// 例如:坚固、模仿、仿攻等等
@ -756,19 +767,20 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
hero_def = core.getRealStatusOrDefault(hero, "def"),
hero_mdef = core.getRealStatusOrDefault(hero, "mdef"),
hero_speed = core.getRealStatusOrDefault(hero, "speed");
var mon_id = core.getEnemyValue(enemy, "id", x, y, floorId),
mon_name = core.getEnemyValue(enemy, "name", x, y, floorId);
var mon_hp = core.getEnemyValue(enemy, "hp", x, y, floorId),
mon_atk = core.getEnemyValue(enemy, "atk", x, y, floorId),
mon_def = core.getEnemyValue(enemy, "def", x, y, floorId),
mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId),
mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId),
mon_mdef = core.getEnemyValue(enemy, "mdef", x, y, floorId) || 0,
mon_spell = core.getEnemyValue(enemy, "spell", x, y, floorId) || 0,
mon_speed = core.getEnemyValue(enemy, "speed", x, y, floorId) || 1,
mon_special = core.getEnemyValue(enemy, "special", x, y, floorId);
var mon_money = core.getEnemyValue(enemy, "money", x, y, floorId),
mon_exp = core.getEnemyValue(enemy, "exp", x, y, floorId),
mon_point = core.getEnemyValue(enemy, "point", x, y, floorId);
var mon_barrier = 0,
mon_absorb_damage = 0,
mon_magic = core.getEnemyValue(enemy, "magic", x, y, floorId);
mon_absorb_damage = 0;
// 模仿
if (core.hasSpecial(mon_special, 10)) {
mon_atk = hero_atk;
@ -876,10 +888,13 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 也可以按需增加各种自定义内容
return {
id: mon_id,
name: mon_name,
hp: Math.floor(mon_hp),
atk: Math.floor(mon_atk),
def: Math.floor(mon_def),
mdef: Math.floor(mon_mdef),
spell: Math.floor(mon_spell),
speed: Math.floor(mon_speed),
barrier: Math.floor(mon_barrier),
absorb: Math.floor(mon_absorb_damage),
@ -887,7 +902,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
exp: Math.floor(mon_exp),
point: Math.floor(mon_point),
special: mon_special,
magic: mon_magic,
guards: guards, // 返回支援情况
};
},
@ -907,6 +921,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
hero_def = core.getRealStatusOrDefault(hero, "def"),
hero_matk = core.getRealStatusOrDefault(hero, "matk"),
hero_mdef = core.getRealStatusOrDefault(hero, "mdef"),
hero_mhp = core.getRealStatusOrDefault(hero, "mhp"),
hero_speed = core.getRealStatusOrDefault(hero, "speed"),
hero_spell = core.getRealStatusOrDefault(hero, "spell"),
origin_hero_hp = core.getStatusOrDefault(hero, "hp"),
@ -920,11 +935,13 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
mon_atk = enemyInfo.atk,
mon_def = enemyInfo.def,
mon_mdef = enemyInfo.mdef,
mon_spell = enemyInfo.spell,
mon_speed = enemyInfo.speed,
mon_special = enemyInfo.special,
mon_absorb_damage = enemyInfo.absorb,
mon_barrier = enemyInfo.barrier;
const { lcm, gcd } = core.plugin.utils
const equip0 = core.getEquip(0)
//---第一部分:静态属性修正---
//此处写入静态影响勇士属性的勇士或怪物技能静态影响怪物属性的技能于getEnemyInfo中写入
// 技能的处理
@ -932,11 +949,21 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 开启了技能1二倍斩
hero_atk *= 2; // 计算时攻击力翻倍
}
// 破甲
if (core.hasSpecial(mon_special, 7))
hero_def -= Math.floor(
(enemy.breakArmor || core.values.breakArmor) * hero_def
);
//勇士属性取整
hero_atk = Math.max(0, Math.floor(hero_atk));
hero_def = Math.max(0, Math.floor(hero_def));
hero_mdef = Math.max(0, Math.floor(hero_mdef));
hero_speed = Math.max(0, Math.floor(hero_speed));
hero_spell = Math.max(0, Math.floor(hero_spell));
hero_matk = Math.min(100, Math.max(0, Math.floor(hero_matk)));
hero_mdef = Math.min(100, Math.max(0, Math.floor(hero_mdef)));
hero_mhp = Math.min(100, Math.max(0, Math.floor(hero_mhp)));
// 如果是无敌属性,且勇士未持有十字架
if (core.hasSpecial(mon_special, 20) && !core.hasItem("cross"))
@ -963,79 +990,217 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
//——第二部分:变量定义和初始赋值——
// 每回合怪物对勇士造成的战斗伤害
let per_damage = Math.max(mon_atk - hero_def, 0);
//if (enemyInfo.magic) per_damage = Math.max(mon_atk - hero_mdef, 0);
//
let hero_per_damage = Math.max(hero_atk - mon_def, 0);
//if (hero_magic) hero_per_damage = Math.max(hero_atk - mon_mdef, 0);
let hero_per_damage = Math.max(hero_atk - mon_def, 0),
hero_per_mdamage = Math.floor((hero_spell * hero_matk / 100) * (100 - mon_mdef) / 100);
let damage = 0,
hero_turn = 0,
mon_turn = 0;
let equipInfo = [] //回合生效的装备列表
for (let i = 0; i < 5; i++) {
const a = core.plugin.equip[core.getEquip(i)]
if (a) equipInfo.push(a)
}
//处理回合条长度
let oneTurn = [hero_speed, mon_speed];
if (equipInfo.length > 0) {
for (let i = 0; i < equipInfo.length; i++) {
equipInfo[i].now = 0;
equipInfo[i].isAttack = false;
oneTurn.push(equipInfo[i].speed);
}
}
//需要变更
const onegcd = gcd(...oneTurn) //最大公约数
oneTurn = lcm(...oneTurn) / onegcd //单次回合长度
//在这里处理equip的初始位置now
equipInfo.forEach(v => {
switch (v.id) {
case "sword1":
default:
v.now = 0
break
}
v.onAttack = false
if (v.now === oneTurn) v.onAttack = true //增加正在攻击的标志
})
const heroinfo = { hp: hero_hp, atk: hero_atk, def: hero_def, mdef: hero_mdef, spell: hero_spell, mhp: Math.floor(hero_spell * hero_mhp / 100), matk: Math.floor(hero_spell * hero_matk / 100), speed: hero_speed, now: 0, isAttack: false } //勇士属性
const enemyinfo = { hp: mon_hp, atk: mon_atk, def: mon_def, mdef: mon_mdef, spell: mon_spell, speed: mon_speed, special: mon_special, now: 0, onAttack: false, isAttack: false } //怪物属性
//先攻,先攻为怪物和勇士勇士行动前怪物出第一刀
if (core.hasSpecial(mon_special, 1)) {
enemyinfo.now = oneTurn
enemyinfo.onAttack = true
}
const start = [core.clone(heroinfo), core.clone(enemyinfo), core.clone(equipInfo), oneTurn, onegcd] //记录开始战斗时的属性并转发
//---第三部分:递归开始---
let length = hero_speed * mon_speed;
let heroDiffPerTurn = [],
enemyDiffPerTurn = [];
for (
let now_mon_hp = mon_hp,
last_mon_hp = mon_hp,
mon_length = length,
hero_length = length,
mon_time = 0,
hero_time = 0; now_mon_hp > 0;
const heroDiffList = [],
enemyDiffList = [],
heroanimateList = [],
enemyanimateList = [];
let beforehp = enemyinfo.hp
while (
enemyinfo.hp > 0
) {
//勇士和怪物的长度
mon_time = mon_length / mon_speed;
hero_time = hero_length / hero_speed;
if (
mon_time < hero_time ||
((mon_time == hero_time) && mon_speed > hero_speed)
) {
//怪物攻击的回合
//这里计算怪物攻击时发生的各种变化
let onattack = false
const hero_diff = {},
enemy_diff = {},
hero_animate = [],
enemy_animate = [];
//伤害与回合增加
damage += per_damage;
if (enemyinfo.onAttack) { //怪物先攻的场合
//这里计算怪物攻击时发生的各种变化同时计入enemy_diff
let mon_damage = 0
let hero_damage = 0
//伤害计算
let per_damage = Math.max(enemyinfo.atk - heroinfo.def, 0),
per_mdamage = Math.floor(enemyinfo.spell * (100 - heroinfo.mdef) / 100);
//这里记录伤害触发后的属性变化和动画同时计入diff、damage
if (core.hasSpecial(mon_special, 6)) {
mon_turn += enemy.n;
hero_damage += per_damage * enemy.n + per_mdamage * enemy.n
} else {
mon_turn += 1;
hero_damage += per_damage + per_mdamage
}
//重新为长度赋值
mon_length = length;
hero_length = hero_length - mon_time * hero_speed;
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
//这里可通过if更改默认的怪物攻击特效
hero_animate.push(animate) //勇士身上绘制sword动画
if (heroinfo.mhp - hero_damage >= 0) {
heroinfo.mhp = heroinfo.mhp - hero_damage
hero_damage = 0
} else {
hero_damage -= heroinfo.mhp
heroinfo.hp -= hero_damage
hero_diff.hp = (hero_diff.hp ?? 0) - hero_damage
}
damage += hero_damage
enemyinfo.onAttack = false
enemyinfo.now = 0
onattack = true
}
equipInfo.forEach(v => {
if (v.onAttack) {
let mon_damage = 0
let hero_damage = 0
//这里写生效装备的技能效果同时对双方属性的修改计入diff
let animate = core.plugin.equipanimate[v.id] ?? "sword"
//这里可通过if更改默认的道具特效
enemy_animate.push(animate) //勇士身上绘制动画
v.now = 0
v.onAttack = false
onattack = true
}
})
if (onattack) { //先手处理完毕后的数据处理
heroDiffList.push(hero_diff)
enemyDiffList.push(enemy_diff)
heroanimateList.push(hero_animate)
enemyanimateList.push(enemy_animate)
continue //进入下一循环
}
heroinfo.now += heroinfo.speed
enemyinfo.now += enemyinfo.speed
equipInfo.forEach(v => {
v.now += v.speed
})
if (
heroinfo.now >= oneTurn
) {
//勇士攻击的回合
// 这里计算勇士攻击时发生的各种变化
let mon_damage = 0
let hero_damage = 0
//这里计算勇士攻击时发生的各种变化
// 伤害与回合数增加
now_mon_hp -= hero_per_damage;
hero_turn += 1; //勇士回合+1如果有勇士每回合多次攻击的情况在这里写判断
// 无法战斗计算
if (hero_turn % 50 == 0) {
if (now_mon_hp >= last_mon_hp) return null;
last_mon_hp = now_mon_hp;
}
//重新为长度赋值
hero_length = length;
mon_length = mon_length - hero_time * mon_speed;
}
let hero_diff = {},
mon_diff = {};
//这里插入汇总勇士和怪物在此回合结束时的情况数值,用以跑条动画读取
heroDiffPerTurn.push(hero_diff);
enemyDiffPerTurn.push(mon_diff); //将勇士和怪物此回合结束时的属性变动保存到heroPerInfo和enemyPerInfo中用以跑条动画读取
//伤害计算
let per_damage = Math.max(heroinfo.atk - enemyinfo.def, 0)
let per_mdamage = Math.max(Math.floor(heroinfo.matk * (100 - enemyinfo.mdef) / 100), 0)
mon_damage = per_damage + per_mdamage
//这里记录伤害触发后的属性变化和动画同时计入diff
let animate = core.plugin.heroanimate[equip0] ?? "sword"
//这里可通过if更改默认的武器攻击特效
enemy_animate.push(animate)
enemyinfo.hp -= mon_damage
enemy_diff.hp = (enemy_diff.hp ?? 0) - mon_damage
heroinfo.now -= oneTurn
hero_turn++
onattack = true
}
//下面这些还没修改
// 连击
if (core.hasSpecial(mon_special, 6)) per_damage *= enemy.n || 2;
if (enemyinfo.now >= oneTurn) {
//怪物攻击的回合
let mon_damage = 0
let hero_damage = 0
//伤害计算
let per_damage = Math.max(enemyinfo.atk - heroinfo.def, 0),
per_mdamage = Math.floor(enemyinfo.spell * (100 - heroinfo.mdef) / 100);
//这里记录伤害触发后的属性变化和动画同时计入diff、damage
if (core.hasSpecial(mon_special, 6)) {
hero_damage += per_damage * enemy.n + per_mdamage * enemy.n
} else {
hero_damage += per_damage + per_mdamage
}
let animate = core.plugin.enemyanimate[enemy.id] ?? "sword"
//这里可通过if更改默认的怪物攻击特效
hero_animate.push(animate) //勇士身上绘制sword动画
if (heroinfo.mhp - hero_damage >= 0) {
heroinfo.mhp = heroinfo.mhp - hero_damage
hero_damage = 0
} else {
hero_damage -= heroinfo.mhp
heroinfo.hp -= hero_damage
hero_diff.hp = (hero_diff.hp ?? 0) - hero_damage
}
damage += hero_damage
enemyinfo.now -= oneTurn
mon_turn++
onattack = true
}
equipInfo.forEach(v => {
if (v.now >= oneTurn) {
let mon_damage = 0
let hero_damage = 0
//这里写生效装备的技能效果同时对双方属性的修改计入diff
let animate = core.plugin.equipanimate[v.id] ?? "sword"
//这里可通过if更改默认的道具特效
enemy_animate.push(animate) //怪物身上绘制动画
v.now -= oneTurn
onattack = true
}
})
if (onattack) { //处理完毕后的数据处理
heroDiffList.push(hero_diff)
enemyDiffList.push(enemy_diff)
heroanimateList.push(hero_animate)
enemyanimateList.push(enemy_animate)
let a = hero_turn % 50 //出手50回合怪物生命未降低直接判负避免死循环
if (a === 0) {
if (enemyinfo.hp >= beforehp) {
return null
} else {
beforehp = enemyinfo.hp
}
}
}
}
//下面这些还没修改,原有技能除先攻、连击外暂时全部移除,所有技能需要在上方的模拟循环中做修正
/*
// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
let counterDamage = 0;
if (core.hasSpecial(mon_special, 8))
@ -1043,14 +1208,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
(enemy.counterAttack || core.values.counterAttack) * hero_atk
);
// 先攻
if (core.hasSpecial(mon_special, 1)) init_damage += per_damage;
// 破甲
if (core.hasSpecial(mon_special, 7))
init_damage += Math.floor(
(enemy.breakArmor || core.values.breakArmor) * hero_def
);
// 净化
if (core.hasSpecial(mon_special, 9))
@ -1059,7 +1217,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
);
//上面这些还没修改
//勇士护盾计算
let barrier = hero_mdef;
let barrier = Math.floor(hero_spell * hero_mhp / 100);
// ------ 支援 ----- //
@ -1093,7 +1251,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
core.removeFlag("__extraTurn__");*/
// ------ 支援END ------ //
/*
// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
damage += init_damage + hero_turn * counterDamage;
// 再扣去护盾
@ -1109,20 +1267,23 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
if (core.hasSpecial(mon_special, 22)) {
// 固伤
damage += enemy.damage || 0;
damage += enemy.damage2 || 0;
}
*/
return {
start: start,
mon_hp: Math.floor(mon_hp),
mon_atk: Math.floor(mon_atk),
mon_def: Math.floor(mon_def),
mon_mdef: Math.floor(mon_mdef),
init_damage: Math.floor(init_damage),
per_damage: Math.floor(per_damage),
hero_per_damage: Math.floor(hero_per_damage),
turn: Math.floor(hero_turn),
mon_speed: Math.floor(mon_speed),
heroDiffList: heroDiffList,
enemyDiffList: enemyDiffList,
heroanimateList: heroanimateList,
enemyanimateList: enemyanimateList,
hero_turn: Math.floor(hero_turn),
mon_turn: Math.floor(mon_turn),
damage: Math.floor(damage),
damage: Math.floor(damage)
};
/*TODO:return
1. 显示怪物是魔攻还是物攻在怪物名字上做颜色变化物攻是黄色魔攻是蓝色
@ -1388,6 +1549,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
version: core.firstData.version,
guid: core.getGuid(),
time: new Date().getTime(),
'material': core.clone(core.material.enemys)
};
return data;
},
@ -1402,6 +1564,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.maps.loadMap(data.maps, null, data.hero.flags),
data.values
);
//如果作者造塔想随时修改怪物属性平衡数值,请注释下面这行。该行作用为保存怪物当前属性,用以储存临时修改的怪物属性。
core.material.enemys = data.material ?? core.material.enemys;
core.status.route = core.decodeRoute(data.route);
core.control._bindRoutePush();
// 文字属性,全局属性
@ -1454,8 +1618,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 请注意此项仅影响 libs/ 下的内容(如绘制怪物手册、数据统计等)
// 自行定义的(比如获得道具效果)中用到的“攻击+3”等需要自己去对应地方修改
return (
{
return ({
name: "名称",
lv: "等级",
hpmax: "生命上限",
@ -1466,15 +1629,15 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
def: "防御",
spell: "法强",
matk: "魔攻比例",
mdef: "护盾比例",
mhp: "护盾比例",
mdef: "法抗",
speed: "速度",
money: "金币",
exp: "经验",
point: "加点",
steps: "步数",
}[name] || name
);
},
} [name] || name);
},
"triggerDebuff": function (action, type) {
// 毒衰咒效果的获得与解除
// action获得还是解除'get'表示获得,'remove'表示解除
@ -1539,7 +1702,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.updateCheckBlock();
// 更新全地图显伤
core.updateDamage();
},
},
"updateCheckBlock": function (floorId) {
// 领域、夹击、阻击等的伤害值计算
floorId = floorId || core.status.floorId;
@ -1856,7 +2019,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 如需强行终止行走可以在这里条件判定:
// core.stopAutomaticRoute();
},
},
"moveDirectly": function (x, y, ignoreSteps) {
// 瞬间移动x,y为要瞬间移动的点ignoreSteps为减少的步数可能之前已经被计算过
// 返回true代表成功瞬移false代表没有成功瞬移
@ -1877,12 +2040,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
core.bigmap.width * 32 === core.bigmap.height * 32 &&
core.bigmap.width * 32 === core.__PIXELS__
)
core.addPopMove(
32 * core.status.hero.loc.x + 16,
32 * core.status.hero.loc.y + 16,
32 * x + 16,
32 * y + 16
);
if (core.getFlag('popmove')) core.addPopMove(32 * core.status.hero.loc.x + 16, 32 * core.status.hero.loc.y + 16, 32 * x + 16, 32 * y + 16);
// 获得勇士最后的朝向
var lastDirection = core.status.route[core.status.route.length - 1];
if (["left", "right", "up", "down"].indexOf(lastDirection) >= 0)
@ -1905,7 +2063,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return true;
}
return false;
},
},
"parallelDo": function (timestamp) {
// 并行事件处理,可以在这里写任何需要并行处理的脚本或事件
// 该函数将被系统反复执行每次执行间隔视浏览器或设备性能而定一般约为16.6ms一次

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -150,10 +150,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"equip": {
"type": 0,
"animate": "sword",
"value": {
"atk": 10
},
"percentage": {}
"value": {},
"percentage": {
"mdef": 10
}
},
"itemEffect": "core.status.hero.atk += 10",
"itemEffectTip": ",攻击+10",
@ -166,10 +166,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"equip": {
"type": "武器",
"animate": "sword",
"value": {
"atk": 20
},
"percentage": {}
"value": {},
"percentage": {
"mdef": 20
}
},
"itemEffect": "core.status.hero.atk += 20",
"itemEffectTip": ",攻击+20",
@ -247,10 +247,10 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"text": "一个很普通的铁盾",
"equip": {
"type": 1,
"value": {
"def": 10
},
"percentage": {}
"value": {},
"percentage": {
"mdef": 10
}
},
"itemEffect": "core.status.hero.def += 10",
"itemEffectTip": ",防御+10",

File diff suppressed because it is too large Load Diff