This commit is contained in:
SOLATR 2025-03-13 14:25:35 +08:00
commit 246b57d56e
437 changed files with 13010 additions and 8759 deletions

View File

@ -1137,7 +1137,7 @@ return code;
*/;
cgtext_s
: '背景' EvalString? '回忆滤镜' Bool? '移除对话框' Bool? '剧情库序列' Int '头像' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline
: '背景' EvalString? '不使用背景' Bool? '回忆滤镜' Bool? '移除对话框' Bool? '剧情库序列' Int '头像' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline
'自动等待时长' Int BGNL? Newline
textcgDrawingList+? Newline
@ -1146,10 +1146,11 @@ cgtext_s
tooltip : cgtext显示一段包含cg的文字剧情
helpUrl : /_docs/#/instruction
allImages : ['EvalString_0','EvalString_1']
default : ["bg_5043.webp",false,false,0,"face_050445.webp",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.webp" , "px": 100,"filter":false }]]
default : ["bg_5043.webp",false,false,false,0,"face_050445.webp",-300,0,2000,"","这句话显示在对话框内",[{ "name":"tati_050145a.webp" , "px": 100,"filter":false }]]
var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }'
var list=',"bodyList": [\n'+textcgDrawingList_0.slice(0,-1)+'\n]'
var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","memory":'+Bool_0+',"WindowSkin":'+Bool_1+',"head":'+head+' ,"index":"'+Int_0+'","time":'+Int_1+',"wait":'+Int_2+list+' },\n';
Bool_0=Bool_0?',"nobg":'+Bool_0:''
var code = '{"type": "cgtext", "bg":"'+EvalString_0+'"'+Bool_0+',"memory":'+Bool_1+',"WindowSkin":'+Bool_2+',"head":'+head+' ,"index":"'+Int_0+'","time":'+Int_1+',"wait":'+Int_2+list+' },\n';
return code;
*/;
textcgDrawingList
@ -4624,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
: '变量' | '状态' | '物品' | '增益' | '独立开关' | '临时变量' |'全局存储'
@ -4640,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

@ -567,6 +567,7 @@ MotaActionParser = function () {
};
this.next = MotaActionBlocks["cgtext_s"].xmlText([
data.bg,
data.nobg??false,
data.memory,
data.WindowSkin,
data.index,

View File

@ -116,6 +116,14 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_lint": true,
"_docs": "能否使用或装备",
"_data": "当前能否使用或装备该道具仅对cls不为items有效。null表示始终不可使用但可装备"
},
"canBatchUse": {
"_leaf": true,
"_type": "textarea",
"_string": true,
"_lint": true,
"_docs": "能否批量使用",
"_data": "该道具是否允许批量使用仅对cls为tools或constants有效true表示可批量使用。建议同时勾选【回放不绘制道具栏】"
}
}
},
@ -196,6 +204,11 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_data": "百分数如10为10%法抗,怪物受到勇士的法术伤害减免比例"
},
"spell": {
"_leaf": true,
"_type": "textarea",
"_data": "法强"
},
"speed": {
"_leaf": true,
"_type": "textarea",
@ -368,7 +381,7 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_docs": "退化扣防",
"_data": "退化时勇士下降的防御力点数"
},
"damage": {
"damage2": {
"_leaf": true,
"_type": "textarea",
"_range": "thiseval==~~thiseval||thiseval==null",
@ -391,7 +404,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

@ -452,6 +452,12 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
"_type": "textarea",
"_docs": "绿宝石值",
},
"yellowGem": {
"_leaf": true,
"_type": "textarea",
"_docs": "黄宝石值",
},
"redPotion": {
"_leaf": true,
"_type": "textarea",

View File

@ -47,6 +47,20 @@
startImageDiv.classList.add("startImageDivAnimation");
// 注释下面这句话以禁止单击立刻跳过开场动画
startImageBackgroundDiv.onclick = onAnimationEnd;
// 新增加载图片轮播逻辑
const slides = document.querySelectorAll('.loading-slide');
let currentSlide = 0;
const slideInterval = setInterval(() => {
slides[currentSlide].classList.remove('active');
currentSlide = (currentSlide + 1) % slides.length;
slides[currentSlide].classList.add('active');
}, 3000);
// 在加载完成时清除定时器
window.addEventListener('load', () => {
clearInterval(slideInterval);
});
};
startImageLogo.onerror = function () {};
startImageLogo.src = "logo.png";
@ -58,6 +72,14 @@
<img id="musicBtn" />
<div id="startPanel">
<div id="startTop">
<!-- 新增图片展示区域 -->
<div id='startTopGallery'>
<img src='project/images/bg_1511.webp' class='loading-slide active' />
<img src='project/images/bg_1521.webp' class='loading-slide'/>
<img src='project/images/bg_2011.webp' class='loading-slide'/>
<img src='project/images/bg_2521.webp' class='loading-slide'/>
<img src='project/images/bg_3026.webp' class='loading-slide'/>
</div>
<div id="startTopProgressBar">
<div id="startTopProgress"></div>
</div>

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

@ -35,10 +35,15 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"guangchang3",
"guangchang4",
"guangchang6",
"guangchang5"
"guangchang5",
"jiaocheng01",
"jiaocheng02"
],
"floorPartitions": [],
"images": [
"005-Attack03.webp",
"012-Heal01.webp",
"015-Fire01.webp",
"HPGaugeEnemy_A.webp",
"HPGaugeEnemy_B.webp",
"LOGO.webp",
@ -455,6 +460,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"r.webp",
"sound.webp",
"status.webp",
"statusBackground.webp",
"suiji.webp",
"tati_020101.webp",
"tati_020101a.webp",
@ -786,6 +792,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",
@ -941,6 +948,143 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"aiy020000160.opus",
"aiy020000170.opus",
"aiy020000180.opus",
"aiy020000190.ogg",
"aiy020000200.ogg",
"aiy020000210.ogg",
"aiy020000220.ogg",
"aiy020000230.ogg",
"aiy020000240.ogg",
"aiy020000250.ogg",
"aiy020000260.ogg",
"aiy020000270.ogg",
"aiy020000280.ogg",
"aiy020000290.ogg",
"aiy020000300.ogg",
"aiy020000310.ogg",
"aiy020000320.ogg",
"aiy020000330.ogg",
"aiy020000340.ogg",
"aiy020000350.ogg",
"aiy020000360.ogg",
"aiy020000370.ogg",
"aiy030000010.ogg",
"aiy030000020.ogg",
"aiy030000030.ogg",
"aiy030000050.ogg",
"aiy030000060.ogg",
"aiy030000070.ogg",
"aiy030000080.ogg",
"aiy030000090.ogg",
"aiy030000100.ogg",
"aiy030000110.ogg",
"aiy030000120.ogg",
"aiy030000130.ogg",
"aiy050000010.ogg",
"aiy050000020.ogg",
"aiy050000030.ogg",
"aiy050000040.ogg",
"aiy050000050.ogg",
"aiy050000060.ogg",
"aiy050000070.ogg",
"aiy050000080.ogg",
"aiy050000090.ogg",
"aiy050000100.ogg",
"aiy050000110.ogg",
"aiy050000120.ogg",
"aiy120000020.ogg",
"aiy120000030.ogg",
"aiy120000040.ogg",
"aiy120000050.ogg",
"aiy120000060.ogg",
"aiy120000070.ogg",
"aiy120000080.ogg",
"aiy120000090.ogg",
"aiy120000100.ogg",
"aiy120000110.ogg",
"aiy120000120.ogg",
"aiy120000130.ogg",
"aiy120000140.ogg",
"aiy120000150.ogg",
"aiy120000160.ogg",
"aiy120000170.ogg",
"aiy120000180.ogg",
"aiy120000190.ogg",
"aiy120000200.ogg",
"aiy120000210.ogg",
"aiy120000220.ogg",
"aiy120000230.ogg",
"aiy120000240.ogg",
"aiy120000250.ogg",
"aiy120000260.ogg",
"aiy120000270.ogg",
"aiy120000280.ogg",
"aiy120000290.ogg",
"aiy120000300.ogg",
"aiy120000310.ogg",
"aiy120000320.ogg",
"aiy120000330.ogg",
"aiy120000340.ogg",
"aiy120000350.ogg",
"aiy120000360.ogg",
"aiy120000370.ogg",
"aiy120000380.ogg",
"aiy120000390.ogg",
"aiy120000400.ogg",
"aiy120000410.ogg",
"aiy120000420.ogg",
"aiy120000430.ogg",
"aiy120000440.ogg",
"aiy120000450.ogg",
"aiy120000460.ogg",
"aiy120000470.ogg",
"aiy120000480.ogg",
"aiy120000490.ogg",
"aiy120000500.ogg",
"aiy120000510.ogg",
"aiy120000520.ogg",
"aiy120000530.ogg",
"aiy120000540.ogg",
"aiy120000550.ogg",
"aiy120000560.ogg",
"aiy120000570.ogg",
"aiy120000580.ogg",
"aiy120000590.ogg",
"aiy120000600.ogg",
"aiy120000610.ogg",
"aiy120000620.ogg",
"aiy120000630.ogg",
"aiy120000640.ogg",
"aiy120000650.ogg",
"aiy120000670.ogg",
"aiy120000680.ogg",
"aiy120000690.ogg",
"aiy130000010.ogg",
"aiy130000020.ogg",
"aiy150000010.ogg",
"aiy150000020.ogg",
"aiy150000030.ogg",
"aiy150000040.ogg",
"aiy150000050.ogg",
"aiy150000060.ogg",
"aiy150000070.ogg",
"aiy150000080.ogg",
"aiy150000090.ogg",
"aiy150000100.ogg",
"aiy150000110.ogg",
"aiy150000120.ogg",
"aiy150000130.ogg",
"aiy150000140.ogg",
"aiy150000150.ogg",
"aiy150000160.ogg",
"aiy150000170.ogg",
"aiy150000180.ogg",
"aiy150000190.ogg",
"aiy150000200.ogg",
"aiy150000210.ogg",
"aiy150000220.ogg",
"aiy150000230.ogg",
"aiy150000240.ogg",
"aiy150000250.ogg",
"aiy310000010.opus",
"aiy310000020.opus",
"aiy310000030.opus",
@ -970,6 +1114,170 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"aiy310000280.opus",
"aiy310000290.opus",
"aiy310000300.opus",
"aiy310000310.ogg",
"aiy310000320.ogg",
"aiy310000330.ogg",
"aiy310000340.ogg",
"aiy310000350.ogg",
"aiy310000360.ogg",
"aiy310000370.ogg",
"aiy310000380.ogg",
"aiy310000390.ogg",
"aiy310000400.ogg",
"aiy310000410.ogg",
"aiy310000420.ogg",
"aiy310000430.ogg",
"aiy310000440.ogg",
"aiy310000450.ogg",
"aiy310000460.ogg",
"aiy310000470.ogg",
"aiy310000480.ogg",
"aiy310000490.ogg",
"aiy310000510.ogg",
"aiy310000520.ogg",
"aiy310000530.ogg",
"aiy310000540.ogg",
"aiy310000550.ogg",
"aiy310000560.ogg",
"aiy310000570.ogg",
"aiy310000580.ogg",
"aiy310000590.ogg",
"aiy310000600.ogg",
"aiy310000610.ogg",
"aiy310000620.ogg",
"aiy310000630.ogg",
"aiy310000640.ogg",
"aiy310000650.ogg",
"aiy310000660.ogg",
"aiy310000670.ogg",
"aiy310000680.ogg",
"aiy310000690.ogg",
"aiy310000700.ogg",
"aiy310000710.ogg",
"aiy310000720.ogg",
"aiy310000730.ogg",
"aiy310000740.ogg",
"aiy310000750.ogg",
"aiy310000760.ogg",
"aiy310000770.ogg",
"aiy310000780.ogg",
"aiy310000790.ogg",
"aiy310000800.ogg",
"aiy310000810.ogg",
"aiy310000820.ogg",
"aiy310000830.ogg",
"aiy310000840.ogg",
"aiy310000850.ogg",
"aiy310000860.ogg",
"aiy310000870.ogg",
"aiy310000880.ogg",
"aiy310000890.ogg",
"aiy310000900.ogg",
"aiy310000910.ogg",
"aiy310000920.ogg",
"aiy310000930.ogg",
"aiy310000940.ogg",
"aiy310000950.ogg",
"aiy310000960.ogg",
"aiy310000970.ogg",
"aiy310000980.ogg",
"aiy310000990.ogg",
"aiy310001000.ogg",
"aiy310001010.ogg",
"aiy310001027.ogg",
"aiy310001030.ogg",
"aiy310001040.ogg",
"aiy310001050.ogg",
"aiy310001060.ogg",
"aiy310001070.ogg",
"aiy310001080.ogg",
"aiy310001090.ogg",
"aiy310001100.ogg",
"aiy310001110.ogg",
"aiy310001120.ogg",
"aiy310001130.ogg",
"aiy310001140.ogg",
"aiy310001150.ogg",
"aiy310001160.ogg",
"aiy310001170.ogg",
"aiy310001180.ogg",
"aiy310001190.ogg",
"aiy310001200.ogg",
"aiy310001210.ogg",
"aiy310001220.ogg",
"aiy310001230.ogg",
"aiy310001240.ogg",
"aiy310001250.ogg",
"aiy310001260.ogg",
"aiy310001270.ogg",
"aiy310001280.ogg",
"aiy310001290.ogg",
"aiy310001300.ogg",
"aiy310001310.ogg",
"aiy310001320.ogg",
"aiy310001330.ogg",
"aiy310001340.ogg",
"aiy310001350.ogg",
"aiy310001360.ogg",
"aiy310001370.ogg",
"aiy310001380.ogg",
"aiy310001390.ogg",
"aiy320000010.ogg",
"aiy320000020.ogg",
"aiy320000030.ogg",
"aiy320000040.ogg",
"aiy320000050.ogg",
"aiy320000060.ogg",
"aiy320000070.ogg",
"aiy320000080.ogg",
"aiy320000090.ogg",
"aiy320000100.ogg",
"aiy320000110.ogg",
"aiy320000120.ogg",
"aiy320000135.ogg",
"aiy320000140.ogg",
"aiy340000010.ogg",
"aiy340000020.ogg",
"aiy340000030.ogg",
"aiy340000040.ogg",
"aiy340000050.ogg",
"aiy340000060.ogg",
"aiy340000070.ogg",
"aiy340000080.ogg",
"aiy340000090.ogg",
"aiy340000100.ogg",
"aiy340000110.ogg",
"aiy340000120.ogg",
"aiy340000140.ogg",
"aiy340000150.ogg",
"aiy340000160.ogg",
"aiy340000170.ogg",
"aiy340000180.ogg",
"aiy340000190.ogg",
"aiy340000200.ogg",
"aiy340000210.ogg",
"aiy340000220.ogg",
"aiy340000230.ogg",
"aiy340000240.ogg",
"aiy340000250.ogg",
"aiy340000260.ogg",
"aiy340000270.ogg",
"aiy340000280.ogg",
"aiy340000290.ogg",
"aiy340000300.ogg",
"aiy340000310.ogg",
"aiy340000320.ogg",
"aiy340000330.ogg",
"aiy340000340.ogg",
"aiy340000350.ogg",
"aiy340000360.ogg",
"aiy340000370.ogg",
"aiy340000380.ogg",
"aiy340000390.ogg",
"aiy340000400.ogg",
"aiy340000410.ogg",
"aiy340000420.ogg",
"aiy340000430.ogg",
"aiy350000010.opus",
"aiy350000020.opus",
"aiy350000030.opus",
@ -993,6 +1301,52 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"aiy350000210.opus",
"aiy350000220.opus",
"aiy350000230.opus",
"aiy350000240.ogg",
"aiy350000250.ogg",
"aiy350000260.ogg",
"aiy430000010.ogg",
"aiy430000020.ogg",
"aiy430000030.ogg",
"aiy430000040.ogg",
"aiy430000050.ogg",
"aiy430000060.ogg",
"aiy430000070.ogg",
"aiy430000080.ogg",
"aiy430000090.ogg",
"aiy430000100.ogg",
"aiy430000110.ogg",
"aiy430000120.ogg",
"aiy430000130.ogg",
"aiy430000140.ogg",
"aiy430000150.ogg",
"aiy430000160.ogg",
"aiy430000170.ogg",
"aiy430000180.ogg",
"aiy430000190.ogg",
"aiy430000200.ogg",
"aiy430000210.ogg",
"aiy430000220.ogg",
"aiy430000230.ogg",
"aiy430000240.ogg",
"aiy430000250.ogg",
"aiy430000260.ogg",
"aiy430000270.ogg",
"aiy430000280.ogg",
"aiy430000290.ogg",
"aiy440000010.ogg",
"aiy440000020.ogg",
"aiy440000030.ogg",
"aiy440000040.ogg",
"aiy440000050.ogg",
"aiy440000060.ogg",
"aiy440000070.ogg",
"aiy440000080.ogg",
"aiy440000090.ogg",
"aiy440000100.ogg",
"aiy440000110.ogg",
"aiy440000120.ogg",
"aiy510000010.ogg",
"aiy510000020.ogg",
"aiy710000010.opus",
"aiy710000020.opus",
"aiy710000030.opus",
@ -1006,8 +1360,68 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"aiy710000110.opus",
"aiy710000120.opus",
"aiy710000130.opus",
"aiy720000010.ogg",
"aiy730000010.ogg",
"aiy740000010.ogg",
"aiy750000010.ogg",
"aiy750000020.ogg",
"aiy750000030.ogg",
"aiy750000040.ogg",
"aiy750000050.ogg",
"aiy750000060.ogg",
"aiy750000070.ogg",
"aiy750000080.ogg",
"aiy750000090.ogg",
"aiy750000100.ogg",
"aiy750000110.ogg",
"aiy750000120.ogg",
"aiy750000130.ogg",
"aiy750000140.ogg",
"aiy750000150.ogg",
"aiy750000160.ogg",
"aiy750000170.ogg",
"aiy750000180.ogg",
"aiy750000190.ogg",
"aiy750000200.ogg",
"aiy750000210.ogg",
"aiy750000220.ogg",
"aiy750000230.ogg",
"aiy750000240.ogg",
"aiy750000250.ogg",
"aiy750000260.ogg",
"aiy750000270.ogg",
"aiy750000280.ogg",
"aiy750000290.ogg",
"aiy750000300.ogg",
"aiy750000310.ogg",
"aiy750000320.ogg",
"aiy750000330.ogg",
"aiy750000340.ogg",
"aiy800000010.ogg",
"aiy800000020.ogg",
"aiy800000030.ogg",
"aiy800000040.ogg",
"aiy800000050.ogg",
"aiy800000060.ogg",
"aiy800000070.ogg",
"aiy800000080.ogg",
"aiy800000090.ogg",
"aiy800000100.ogg",
"aiy810000010.ogg",
"aiy810000020.ogg",
"aiy810000030.ogg",
"aiy810000040.ogg",
"aiy810000050.ogg",
"aiy810000060.ogg",
"aiy810000070.ogg",
"aiy820000010.opus",
"aiy820000020.opus",
"aiy860000010.ogg",
"aiy860000020.ogg",
"aiy860000030.ogg",
"aiy860000040.ogg",
"aiy860000050.ogg",
"aiy860000060.ogg",
"attack.opus",
"bomb.opus",
"cancel.opus",
@ -1108,7 +1522,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"title": "秽翼的尤斯蒂娅",
"name": "Eustia",
"version": "鸽子窝造塔小队",
"floorId": "guangchang",
"floorId": "jiaocheng01",
"hero": {
"image": "hero.webp",
"animate": false,
@ -1118,10 +1532,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"hp": 1000,
"manamax": -1,
"mana": 0,
"atk": 100,
"def": 100,
"mdef": 0,
"speed": 10,
"atk": 30,
"def": 20,
"mdef": 100,
"speed": 20,
"money": 0,
"exp": 0,
"equipment": [],
@ -1133,18 +1547,20 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"loc": {
"direction": "up",
"x": 6,
"y": 10
"y": 12
},
"flags": {
"itemDetail": true,
"useBetweenLight": true
"useBetweenLight": true,
"__mdef_buff__": 0,
"popmove": true
},
"followers": [],
"steps": 0,
"matk": 0,
"spell": 0,
"spell": 20,
"spelldef": 0,
"mhp": 0
"mhp": 100
},
"startCanvas": [
{
@ -1499,9 +1915,33 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
}
],
"startText": [
{
"type": "if",
"condition": "false",
"true": [
{
"type": "setText"
},
{
"type": "setHeroOpacity",
"opacity": 0
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 500,
"keep": true
}
]
},
{
"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",
@ -1510,6 +1950,16 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
{
"type": "insert",
"name": "强制横屏"
},
{
"type": "if",
"condition": "false",
"true": [
{
"type": "insert",
"name": "chapter0"
}
]
}
],
"shops": [
@ -1678,13 +2128,13 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"lavaDamage": 100,
"poisonDamage": 10,
"weakValue": 20,
"redGem": 3,
"blueGem": 3,
"redGem": 2,
"blueGem": 2,
"greenGem": 5,
"redPotion": 100,
"bluePotion": 250,
"yellowPotion": 500,
"greenPotion": 800,
"greenPotion": 900,
"breakArmor": 0.9,
"counterAttack": 0.1,
"purify": 3,
@ -1692,7 +2142,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
"animateSpeed": 300,
"moveSpeed": 100,
"statusCanvasRowsOnMobile": 3,
"floorChangeTime": 500
"floorChangeTime": 500,
"yellowGem": 2
},
"flags": {
"statusBarItems": [

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":790,"atk":48,"def":8,"money":10,"exp":0,"point":0,"special":[],"mdef":0,"spell":0,"speed":20},
"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":162,"atk":0,"def":1,"money":0,"exp":0,"point":0,"special":[1],"mdef":0,"spell":308,"speed":14},
"brownWizard": {"name":"初级巫师","hp":162,"atk":120,"def":1,"money":16,"exp":0,"point":0,"special":[],"value":null,"range":2,"mdef":0,"spell":66,"speed":14},
"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":330,"atk":113,"def":2,"money":0,"exp":0,"point":0,"special":0,"mdef":0,"spell":0,"speed":20},
"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":111,"atk":97,"def":37,"money":0,"exp":0,"point":0,"special":[3],"mdef":0,"spell":0,"speed":14},
"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}
}

File diff suppressed because it is too large Load Diff

View File

@ -11,7 +11,189 @@ main.floors.KTV=
"images": [],
"ratio": 1,
"defaultGround": "grass",
"firstArrive": [],
"firstArrive": [
{
"type": "changebg",
"img1": "",
"memory1": false,
"img2": "bg_3531.webp",
"memory2": false,
"time": 30,
"style": "引入"
},
{
"type": "cgtextList",
"textList": "chapter002"
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "0",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "1",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "2",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "3",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "4",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "5",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "6",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "cgtext",
"bg": "bg_3531.webp",
"memory": false,
"WindowSkin": false,
"head": {
"name": "",
"px": -300
},
"index": "7",
"time": 0,
"wait": 2000,
"bodyList": [
{
"name": "",
"px": 0,
"filter": false
}
]
},
{
"type": "setHeroOpacity",
"opacity": 1
},
{
"type": "setCurtain",
"time": 1000
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},
@ -47,7 +229,7 @@ main.floors.KTV=
[ 17,71797,71797,71797,71797,71797,71797,71797,71797,71797, 90, 17, 0],
[ 17,90211,90211,90211,90211,71877,90211,90211, 0,90587, 0, 17, 0],
[ 17,90541,90542,90543, 17,71761, 17, 17,71288,71116, 0, 17, 0],
[ 17, 0,30216, 0, 0, 0, 0, 0, 0,71257, 0, 17, 0],
[ 17, 0,30216, 0, 0,123, 0, 0, 0,71257, 0, 17, 0],
[ 17, 0, 0, 0,71568,71754,20167, 0, 0,71265, 0, 17, 0],
[ 17, 0, 0, 0,71887, 0, 0, 0,60160,71265, 0, 17, 0],
[ 17,71340, 17, 17, 0, 0, 0, 17, 17,70568, 0,71796,71797],

View File

@ -11,7 +11,36 @@ main.floors.changguan1=
"images": [],
"ratio": 1,
"defaultGround": "grass2",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "autoText",
"text": "通称——",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "changguan2",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -11,7 +11,36 @@ main.floors.changguan2=
"images": [],
"ratio": 1,
"defaultGround": "X20003",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "autoText",
"text": "《牢狱》",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "KTV",
"loc": [
10,
8
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -11,7 +11,250 @@ main.floors.guangchang=
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "setText",
"position": "center"
},
{
"type": "move",
"loc": [
6,
7
],
"time": 500,
"keep": true,
"async": true,
"steps": [
"up:1",
"left:1",
"up:2"
]
},
{
"type": "sleep",
"time": 400
},
{
"type": "move",
"loc": [
8,
8
],
"time": 500,
"keep": true,
"async": true,
"steps": [
"up:1",
"left:2"
]
},
{
"type": "sleep",
"time": 500
},
{
"type": "move",
"loc": [
4,
9
],
"time": 500,
"keep": true,
"steps": [
"right:1"
]
},
{
"type": "waitAsync"
},
{
"type": "autoText",
"text": "浮游都市,《诺瓦斯·艾蒂尔》。",
"time": 2000
},
{
"type": "move",
"loc": [
6,
5
],
"time": 500,
"keep": true,
"async": true,
"steps": [
"up:2"
]
},
{
"type": "move",
"loc": [
6,
7
],
"time": 500,
"keep": true,
"steps": [
"up:1"
]
},
{
"type": "waitAsync"
},
{
"type": "sleep",
"time": 2000
},
{
"type": "move",
"loc": [
6,
3
],
"time": 500,
"async": true,
"steps": [
"down:9"
]
},
{
"type": "move",
"loc": [
5,
4
],
"time": 500,
"keep": true,
"async": true,
"steps": [
"up:1",
"right:1"
]
},
{
"type": "move",
"loc": [
6,
6
],
"time": 300,
"keep": true,
"async": true,
"steps": [
"right:2"
]
},
{
"type": "sleep",
"time": 1000
},
{
"type": "move",
"loc": [
8,
6
],
"time": 500,
"keep": true,
"steps": [
"left:1"
]
},
{
"type": "sleep",
"time": 2000
},
{
"type": "waitAsync"
},
{
"type": "jump",
"from": [
7,
6
],
"to": [
7,
6
],
"time": 500,
"keep": true,
"async": true
},
{
"type": "move",
"loc": [
6,
3
],
"time": 500,
"async": true,
"steps": [
"up:2"
]
},
{
"type": "move",
"loc": [
7,
9
],
"time": 500,
"async": true,
"steps": [
"up:1",
"right:3"
]
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "waitAsync"
},
{
"type": "setBlock",
"number": "0",
"loc": [
[
5,
9
],
[
7,
6
],
[
4,
4
],
[
6,
3
]
]
},
{
"type": "changeFloor",
"floorId": "guangchang2",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},
@ -50,13 +293,13 @@ main.floors.guangchang=
[120007,120007,120007,120007,120020, 0, 91, 0, 0,130187,130188,130189,130190],
[120015,120015,120015,120015,120028, 0, 0, 0, 0,120144,120145,120146,120147],
[130172,130173,130174,130175, 0, 0, 0, 0,71320,120152,120153,120154,120155],
[130180,130181,130182,130183,200199, 0, 0, 0,71328,120160,120161,120162,120163],
[130188,130189,130190,130191, 0, 0, 0, 0,71336,120168,120169,120170,120171],
[130196,130197,130198,130199,140087, 0, 0, 0, 0,120176,140020,140020,140020],
[130180,130181,130182,130183,200199, 0, 0,122,71328,120160,120161,120162,120163],
[130188,130189,130190,130191,121, 0, 0, 0,71336,120168,120169,120170,120171],
[130196,130197,130198,130199,140087, 0,121, 0, 0,120176,140020,140020,140020],
[130204, 0,130206,130207,140095, 0, 0, 0, 0, 0,140028,140028,140028],
[ 0, 0,130214,130215,140103, 0, 0, 0, 0, 0, 0, 0, 0],
[ 0, 0,130214,120172,140111, 0, 0, 0, 0, 0, 0, 0, 94],
[ 0, 0, 0,120180, 0, 0, 0, 0, 0,200199, 0, 0, 0],
[ 0, 0,130214,130215,140103, 0,121, 0, 0, 0, 0, 0, 0],
[ 0, 0,130214,120172,140111, 0, 0, 0,123, 0, 0, 0, 94],
[ 0, 0, 0,120180,121, 0, 0,121, 0,200199, 0, 0, 0],
[140107,140108,140109,362,363, 0, 0, 0,361,362,362,362,362],
[210186,210186,210186,210186,210179, 0, 0, 0,210179,210185,210186,210186,210186],
[210178,210178,210178,210178,210171, 0, 93, 0,210171,210177,210178,210178,210178]

View File

@ -11,7 +11,35 @@ main.floors.guangchang2=
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "sleep",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "guangchang5",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -11,7 +11,35 @@ main.floors.guangchang3=
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "sleep",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "guangchang4",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -11,7 +11,36 @@ main.floors.guangchang4=
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "autoText",
"text": "是被险峻的峭壁环绕,与世隔绝的,都市的最底部",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "changguan1",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -11,7 +11,36 @@ main.floors.guangchang5=
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"firstArrive": [
{
"type": "setCurtain",
"time": 1000
},
{
"type": "autoText",
"text": "《特别受灾地区》——",
"time": 2000
},
{
"type": "setCurtain",
"color": [
0,
0,
0,
1
],
"time": 1000,
"keep": true
},
{
"type": "changeFloor",
"floorId": "guangchang3",
"loc": [
0,
0
]
}
],
"eachArrive": [],
"parallelDo": "",
"events": {},

View File

@ -0,0 +1,77 @@
main.floors.jiaocheng01=
{
"floorId": "jiaocheng01",
"title": "广场",
"name": "1",
"width": 13,
"height": 13,
"canFlyTo": true,
"canFlyFrom": true,
"canUseQuickShop": true,
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"eachArrive": [],
"parallelDo": "",
"events": {
"0,11": [
"宝石介绍:攻防法速\n加点量2/2/5/2"
],
"12,11": [
"血瓶介绍:不同大小"
]
},
"changeFloor": {
"6,0": {
"floorId": "jiaocheng02",
"loc": [
6,
12
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {
"6,9": [
"\t[黄钥匙,yellowKey]可以打开一扇黄门,使用后会消失"
]
},
"afterOpenDoor": {
"8,10": [
"\t[黄门,yellowDoor]消耗一把黄钥匙"
]
},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[ 1, 1, 1, 1, 1, 1, 91, 1, 1, 1, 1, 1, 1],
[ 1, 22, 0, 1, 22, 1, 0, 1, 0, 0, 23, 22, 1],
[ 1, 21, 0, 1, 81, 1, 84, 1, 83, 1, 1, 1, 1],
[ 1, 82, 1, 1, 0, 0, 0, 81, 0, 83, 0, 24, 1],
[ 1, 0, 0, 82, 0, 1, 81, 1, 82, 1, 1, 1, 1],
[ 1, 21, 1, 1, 0, 1, 22, 1, 0, 0, 21, 23, 1],
[ 1, 1, 1, 1, 83, 1, 1, 1, 1, 1, 1, 1, 1],
[ 27, 0, 28, 1, 0, 0, 82, 0, 22, 1, 31, 0, 32],
[ 0, 0, 0, 1, 21, 1, 1, 1, 0, 1, 0, 0, 0],
[ 29, 0, 30, 1, 23, 1, 21, 1, 0, 1, 34, 0, 33],
[ 1, 1, 1, 1, 1, 1, 0, 1, 81, 1, 1, 1, 1],
[129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129],
[ 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1]
],
"areas": "牢狱",
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
}

View File

@ -0,0 +1,72 @@
main.floors.jiaocheng02=
{
"floorId": "jiaocheng02",
"title": "广场",
"name": "1",
"width": 13,
"height": 13,
"canFlyTo": true,
"canFlyFrom": true,
"canUseQuickShop": true,
"images": [],
"ratio": 1,
"defaultGround": "X90078",
"firstArrive": [],
"eachArrive": [],
"parallelDo": "",
"events": {
"5,11": [
"教程初始属性:\n1000HP30攻击20防御20速度20法强*100%=20护盾\n绿血瓶此处900红血瓶100"
],
"0,0": [
"匕首:速度+20"
],
"12,0": [
"法杖魔攻比例10%魔防比例0%"
]
},
"changeFloor": {
"6,12": {
"floorId": "jiaocheng01",
"loc": [
6,
0
]
}
},
"beforeBattle": {},
"afterBattle": {},
"afterGetItem": {},
"afterOpenDoor": {},
"autoEvent": {},
"cannotMove": {},
"cannotMoveIn": {},
"map": [
[129, 1, 27, 1, 28, 1, 91, 1, 29, 1, 30, 1,129],
[ 70, 1, 82, 1, 82, 1,236, 1, 82, 1, 82, 1,375],
[ 0, 83, 0, 29, 0, 33, 0, 31, 0, 23, 0, 83, 0],
[ 1, 1, 1, 1, 1, 1,219, 1, 1, 1, 1, 1, 1],
[ 0, 22, 0, 31, 0, 31, 0, 1, 27, 1, 30, 1, 30],
[ 81, 1, 81, 1, 81, 1, 22, 1, 27, 1, 30, 1, 27],
[ 29, 1, 31, 1, 31, 1,218, 1, 82, 1, 82, 1, 82],
[ 28, 1, 28, 1, 29, 1, 0, 81, 0, 33, 0, 21, 0],
[ 1, 1, 1, 1, 1, 1,240, 1, 1, 1, 1, 1, 1],
[ 0, 33, 0, 21, 0, 29, 0, 1, 27, 1, 28, 1, 31],
[ 83, 1, 83, 1, 83, 1,204, 1, 81, 1, 81, 1, 81],
[ 28, 1, 30, 1, 27,129, 0,204, 0, 33, 0, 23, 0],
[ 1, 1, 1, 1, 1, 1, 93, 1, 1, 1, 1, 1, 1]
],
"areas": "牢狱",
"bgmap": [
],
"fgmap": [
],
"bg2map": [
],
"fg2map": [
]
}

View File

@ -55,9 +55,9 @@ main.floors.xiaoxiang01=
[120147, 0, 32, 0,200199, 0,201029,225,110132,224, 0, 0,90675],
[120164,225,200998,200999,201037, 81,201029, 0, 0, 0,110116, 0, 94],
[120172, 0,222, 0,221, 0,201029, 81,110116,225,110137,110138,90650],
[120180,201037,201037, 81,201037,201037,201037, 0,110124, 0, 81, 31,90658],
[120180,201037,201037, 81,201037,201037,201037,246,110124, 0, 81, 31,90658],
[ 92, 32, 32, 22, 21,80089, 31, 0,110132, 0,110122,110122,110197],
[140,110191, 21, 21, 21,80089, 0, 0, 81, 0,222, 29,110197],
[140,110191, 21, 21, 21,80089, 0,246, 81, 0,222, 29,110197],
[140,140,140,110191,80083,80097, 93,110138,110138,140189,140,140,140]
],
"areas": "牢狱",

View File

@ -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

@ -282,32 +282,43 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
return true;
},
"afterBattle": function (enemyId, x, y) {
"afterBattle": async 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)
animate = core.material.items[equipId].equip.animate;
// 你也可以在这里根据自己的需要比如enemyId或special或flag来修改播放的动画效果
// if (enemyId == '...') animate = '...';
if (core.getFlag('noAnimate')) {
// 检查该动画是否存在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") || damageInfo.damage >= core.status.hero.hp) && (!main.replayChecking && !core.isReplaying())) await core.attackAnimate(
enemyId,
damageInfo.start[0],
damageInfo.start[1],
damageInfo.start[2],
damageInfo.start[3],
damageInfo.heroDiffList,
damageInfo.enemyDiffList,
damageInfo.heroanimateList,
damageInfo.enemyanimateList
)
// 战斗伤害
var damage = damageInfo.damage;
// 当前战斗回合数,可用于战后所需的判定
@ -316,7 +327,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 +347,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 +356,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 +390,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 +441,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 +456,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 +538,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 +550,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 +619,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 +710,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) +
"%,攻击提升" +
@ -756,19 +765,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;
@ -780,7 +790,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
var guards = [];
// 光环和支援检查
if (!core.status.checkBlock) core.status.checkBlock = {};
@ -876,10 +885,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 +899,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,12 +918,24 @@ 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"),
origin_hero_atk = core.getStatusOrDefault(hero, "atk"),
origin_hero_def = core.getStatusOrDefault(hero, "def");
//编辑器特判
if (main.mode == "editor") {
hero_hp = hero?.hp ?? core.status.hero.hp,
hero_atk = hero?.atk ?? core.status.hero.atk,
hero_def = hero?.def ?? core.status.hero.def,
hero_matk = hero?.matk ?? core.status.hero.matk,
hero_mdef = hero?.mdef ?? core.status.hero.mdef,
hero_mhp = hero?.mhp ?? core.status.hero.mhp,
hero_speed = hero?.speed ?? core.status.hero.speed,
hero_spell = hero?.spell ?? core.status.hero.spell;
}
// 怪物的各项数据
// 对坚固模仿等处理扔到了脚本编辑-getEnemyInfo之中
var enemyInfo = core.enemys.getEnemyInfo(enemy, hero, x, y, floorId);
@ -920,11 +943,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 +957,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 +998,236 @@ 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 length = hero_speed * mon_speed;
let equipInfo = [] //回合生效的装备列表
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;
) {
//勇士和怪物的长度
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)
) {
//怪物攻击的回合
//这里计算怪物攻击时发生的各种变化
//伤害与回合增加
damage += per_damage;
if (core.hasSpecial(mon_special, 6)) {
mon_turn += enemy.n;
} else {
mon_turn += 1;
for (let i = 0; i < 5; i++) {
const a = core.plugin.equip[core.getEquip(i)]
if (a) equipInfo.push(a)
}
//重新为长度赋值
mon_length = length;
hero_length = hero_length - mon_time * hero_speed;
//处理回合条长度
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) //单次回合长度
//在这里处理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 || hero?.mdef === 100) ? hero_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] //记录开始战斗时的属性并转发
//---第三部分:递归开始---
const heroDiffList = [],
enemyDiffList = [],
heroanimateList = [],
enemyanimateList = [];
let beforehp = enemyinfo.hp
while (
enemyinfo.hp > 0
) {
let onattack = false
const hero_diff = {},
enemy_diff = {},
hero_animate = [],
enemy_animate = [];
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(不要在此直接修改heroinfo和enemyinfo)
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_diff.mhp ?? 0) - hero_damage >= 0) {
hero_diff.mhp = (hero_diff.mhp ?? 0) - hero_damage
hero_damage = 0
hero_diff.hp = (hero_diff.hp ?? 0) - hero_damage
} else {
hero_damage -= heroinfo.mhp + (hero_diff.mhp ?? 0)
hero_diff.mhp = (hero_diff.mhp ?? 0) - heroinfo.mhp - (hero_diff.mhp ?? 0)
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(不要在此直接修改heroinfo和enemyinfo)
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)
//处理属性变化
for (let v in hero_diff) {
heroinfo[v] += hero_diff[v]
}
for (let v in enemy_diff) {
enemyinfo[v] += enemy_diff[v]
}
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(不要在此直接修改heroinfo和enemyinfo)
let animate = core.plugin.heroanimate[equip0] ?? "sword"
//这里可通过if更改默认的武器攻击特效
enemy_animate.push(animate)
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(不要在此直接修改heroinfo和enemyinfo)
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_diff.mhp ?? 0) - hero_damage >= 0) {
hero_diff.mhp = (hero_diff.mhp ?? 0) - hero_damage
hero_damage = 0
hero_diff.hp = (hero_diff.hp ?? 0) - hero_damage
} else {
hero_damage -= heroinfo.mhp + (hero_diff.mhp ?? 0)
hero_diff.mhp = (hero_diff.mhp ?? 0) - heroinfo.mhp - (hero_diff.mhp ?? 0)
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(不要在此直接修改heroinfo和enemyinfo)
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)
//处理属性变化
for (let v in hero_diff) {
heroinfo[v] += hero_diff[v]
}
for (let v in enemy_diff) {
enemyinfo[v] += enemy_diff[v]
}
//出手50回合怪物生命未降低直接判负避免死循环
if (hero_turn === 50) {
if (enemyinfo.hp >= beforehp) {
return null
}
}
}
}
//下面这些还没修改,原有技能除先攻、连击外暂时全部移除,所有技能需要在上方的模拟循环中做修正
/*
// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
let counterDamage = 0;
if (core.hasSpecial(mon_special, 8))
@ -1043,14 +1235,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 +1244,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
);
//上面这些还没修改
//勇士护盾计算
let barrier = hero_mdef;
let barrier = Math.floor(hero_spell * hero_mhp / 100);
// ------ 支援 ----- //
@ -1093,7 +1278,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
}
core.removeFlag("__extraTurn__");*/
// ------ 支援END ------ //
/*
// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
damage += init_damage + hero_turn * counterDamage;
// 再扣去护盾
@ -1109,20 +1294,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 +1576,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 +1591,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 +1645,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
// 请注意此项仅影响 libs/ 下的内容(如绘制怪物手册、数据统计等)
// 自行定义的(比如获得道具效果)中用到的“攻击+3”等需要自己去对应地方修改
return (
{
return ({
name: "名称",
lv: "等级",
hpmax: "生命上限",
@ -1466,14 +1656,14 @@ 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) {
// 毒衰咒效果的获得与解除
@ -1877,12 +2067,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)

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: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -37,61 +37,23 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"canUseItemEffect": "true"
},
"greenGem": {
"cls": "tools",
"cls": "items",
"name": "绿宝石",
"text": "护盾+${core.values.greenGem}",
"itemEffect": "core.status.hero.mdef += core.values.greenGem * core.status.thisMap.ratio",
"itemEffectTip": "护盾+${core.values.greenGem * core.status.thisMap.ratio}",
"useItemEffect": "core.status.hero.mdef += core.values.greenGem",
"text": "法强+${core.values.greenGem}",
"itemEffect": "core.status.hero.spell += core.values.greenGem * core.status.thisMap.ratio",
"itemEffectTip": "法强+${core.values.greenGem * core.status.thisMap.ratio}",
"useItemEffect": "core.status.hero.spell += core.values.greenGem",
"canUseItemEffect": "true"
},
"yellowGem": {
"cls": "items",
"name": "黄宝石",
"text": "可以进行加点",
"itemEffect": "core.status.hero.hp+=1000;core.status.hero.atk+=6;core.status.hero.def+=6;core.status.hero.mdef+=10;",
"itemEffectTip": ",全属性提升",
"useItemEvent": [
{
"type": "choices",
"choices": [
{
"text": "攻击+1",
"action": [
{
"type": "setValue",
"name": "status:atk",
"operator": "+=",
"value": "1"
}
]
},
{
"text": "防御+2",
"action": [
{
"type": "setValue",
"name": "status:def",
"operator": "+=",
"value": "2"
}
]
},
{
"text": "生命+200",
"action": [
{
"type": "setValue",
"name": "status:hp",
"operator": "+=",
"value": "200"
}
]
}
]
}
],
"canUseItemEffect": "true"
"text": ",速度+${core.values.yellowGem}",
"itemEffect": "core.status.hero.speed += core.values.yellowGem * core.status.thisMap.ratio",
"itemEffectTip": ",速度+${core.values.yellowGem * core.status.thisMap.ratio}",
"useItemEvent": null,
"canUseItemEffect": "true",
"useItemEffect": "core.status.hero.spell += core.values.yellowGem"
},
"redPotion": {
"cls": "items",
@ -130,18 +92,20 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"canUseItemEffect": "true"
},
"sword0": {
"cls": "items",
"name": "破旧的剑",
"cls": "equips",
"name": "基础匕首",
"text": "一把已经生锈的剑",
"equip": {
"type": 0,
"animate": "sword",
"value": {
"atk": 0
}
"speed": 20
},
"percentage": {}
},
"itemEffect": "core.status.hero.atk += 0",
"itemEffectTip": ",攻击+0"
"itemEffectTip": ",攻击+0",
"equipCls": "匕首"
},
"sword1": {
"cls": "equips",
@ -150,10 +114,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 +130,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 +211,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",
@ -310,13 +274,15 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"itemEffectTip": ",防御+100护盾+100"
},
"superPotion": {
"cls": "items",
"cls": "tools",
"name": "圣水",
"itemEffect": "core.status.hero.hp *= 2",
"itemEffectTip": ",生命值翻倍",
"useItemEffect": "core.status.hero.hp *= 2;core.playSound('回血');",
"canUseItemEffect": "true",
"text": "生命值翻倍"
"text": "生命值翻倍",
"canBatchUse": "true",
"hideInReplay": true
},
"book": {
"cls": "constants",
@ -593,9 +559,18 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
"canUseItemEffect": "true"
},
"I375": {
"cls": "items",
"name": "新物品",
"canUseItemEffect": "true"
"cls": "equips",
"name": "基础法杖",
"canUseItemEffect": "true",
"equipCls": "法杖",
"equip": {
"type": 0,
"value": {
"matk": 10,
"mhp": -100
},
"percentage": {}
}
},
"I396": {
"cls": "items",

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More