Compare commits
23 Commits
4442b2d1ad
...
9dc4b8cb8c
Author | SHA1 | Date | |
---|---|---|---|
9dc4b8cb8c | |||
8d8c2f827d | |||
3980c9b423 | |||
3623140558 | |||
57a9a96e86 | |||
2b8e9d25b0 | |||
b2801fc1c6 | |||
|
56f466db86 | ||
7523611b87 | |||
|
119570953e | ||
6015934eef | |||
9259cb901a | |||
8f596865bd | |||
d8d9809da6 | |||
|
63708720dc | ||
|
f5e5edc9d3 | ||
7fb0248f55 | |||
254f0ca2a5 | |||
23cce9fc15 | |||
|
4c81cf9d77 | ||
43c6f610a3 | |||
68da490685 | |||
cfaf64aa63 |
@ -1 +1 @@
|
||||
N4IgZgNg9lBOCSATEAuEBnALrApjzADAEwgA0IAFjrFKqAJYC2AhgOY6qXVQB0ADgDtWZEMwFNmmDijDMI6HOQHNG0kAGFmTERABuqAIzkKfFgA9UATmuXjfQwUfkWy86gC0RkC+aoC5SQBrBwBmckQcMFDnCKiUf28oARwAT1QwkBwze3jyHABHAFd6UxwBTFQAbQBdcnopRnQ6EABjJKwxTCaUUAAjGGCUL0g0oYBfckwYeToJzKKS7uAxuegW5osUDNGAdnD6XBbMeiTOCEiKucg2JZB6nEYAEXwtCFRsQsUQQoUAIXwAO54AQAGXorAoFRQHy+AH1YQocIh4agABxEEJEdGogCs5HhsDEyNhaIxWKxeNEuGY3UqoFcagAOoUACw4Ai9Zk4loskjOZh8WkaLSMChQVQgaoTekqJms9mcwrc3kiFiCqogABW9EKrEKYkl0pADM4zLZHK5PL53gFQoA0gAVABqhtIMolaGZOyIADYiF6iGADKrbRrHU6AGIkKVu42y02Fb1+gNBkPqlCVECsKAQRCBVKu91ypP+xOB4P89OZ3r0Cg/Qq0GNFhMllMVm1VrX0ZhQTBiYRNuMekAB5Nl1OVoXoKhCAS6MUSwcmz1lsfeicdqcUehzhccJfxlet8fttVC7VInuFofF32l9en0MZjDYPCEdtYXD4YgiPX9loUP2hq1JQzCwMguQgPCgHgeoOZwCiaC4Mg+KwvcjAABI7pgiE1Kh5zMLoOAglALSIaA2q6vqAgbKgLLkKMBhEPshzHKcaCIFAAI0XMn5vgQwY9CAmwJKMPosTgRwnDRHFcTx5B8d+JBCZsTEMag4kgIgBySWxMkgLA4KQiAKzkL0gLAgAgpgfYtIEjySL4KACIUEAQKhuj0Og9zEs0lF/jJMIKa+36CUFL5foQykwnMgGvhBBj0RggT0G5fgKSlbkAHKHiOhQ+ji7IiPC2noMwvTnL5QmKe+VSVKi9GokYPqorUNQgTVP4ZpUOx4t6pCWKipAGE4ljiTs/gtW11RSlcObQECsC0h1UjphiXgdMcWD0C0txTH2EAOkw0gGIllhEAQqIhDsPCOKdlghA15AtIUsCwEdHp+j6D08BkJjpSAvSSJg5yoHsiTJKMGRZDkCRAzZ5wOSw7AA3wUBeUkSNsNICRZNgzBYyjkGMFARGPDpRwQKMCTggIcA4AAyqt3QJB0sBQj6nMEDiPA4qZoHgZwaa3J1gmgGqVT+FLpDS/4lSeKQCsK/4StGCrRiq4rGva7Ussy/rBAxhF/HKeLAqSwblvy9rWv68rtvqw7tueLrpDW87Nv217ase1rrt64b/M0IUUicHaUARqw8CsBhACyvyx70DotAAogA4gAmpZKToIE6gAKrqLHTUQE6llpwCGdQI86AZ3aFdpwzLRZbHaeougqKYJZsAYZgmg+nBADqsfqBCTHwCnrB2gC5dp+oEBp2YABSaexwA8ikACKlkABoRpZ6gsqwlkALwiLocifEscxEUt0kJpYOAhIgXK9DiBBeswlgv4UljEB/SpcQsktAQMAzIxoGCiOQPU9AIJaV6CEZgl1LAGFhDgVEYACCwhZDiX0sJmAYNQQQRALIcFIJ9JiPAIhjgegMDsEIIQHpXQmkQX0YwgA
|
||||
N4IgZgNg9lBOCSATEAuEBnALrApjzADAIwgA0IAFjrFKqAJYC2AhgOY6qXVQB0ADgDtWZEMwFNmmDijDMI6HOQHNG0kAGFmTERABuqIuQp8WAD1QBOKxaN8DBB+RbKzqALSGQz5qgLlJANb2fiCIOGDBTmERKCGMUAI4AJ6+5DimdrFpAI4ArvQmOAKYqADaALrk9FKM6HQgAMYJWGKYdSigAEYwQSiekCl9AL7kmDDydCMgOHkF7cBDU9AN9Yj0uA2Y9AmcuXbk5igArOSDFlOQbPMg1TiMACL4WhCo2LmKILkKAEL4AO54AQAGXorAoJRQbw+AH1oQocIhYagAOzIgAsBAAHOiAEwANnIsNgYkR0JR6KxuIJolwzHapVALjUAB1cmicAROqyjg00TiRCw+PSNFpGBQoKoQOURoyVCy2RyubkeXyBcwhWUQAArei5Vi5MRSmUgJmcVnsznc3n8pzq4UAaQAKgA1I2kWWStCs5H4nHenFgEi2jUoUogJ3OgBi/Ol7pNcrNuR9eL9SYDQa8ds1rCgEEQAWSbo98otSpVNszIbDnXoFC+uVoseLiYtzCtquDwp1zCgmDEwib8c9IHNHLbyutaqrGCoQgEunFksHpq9CoI4/LU+F6Ao9Hni44y4Tq+TqZ9ga3mp1CJ7RaH8tP/ovnc1WFw+GIIjfeEIFf1/YaCh+xEf8hEA/sY2NFcRzTFMnwzQVhVMege2Q/tPyPYd/TgtNn0rJCUKgNChAISDKkoZhYGQLIQFhICqPUXM4CRNBcGQQloVuRgAAk90wFiKg4iAcGYXQcCBKAGhYhZyE6f5AQAQUwPsGgCe5JB8FABFyCAIA43R6HQW5SXqb8PxISFYHeKYgOwBFUBxch0ACehdNSDAXN0gA5Y8YLxI4OREWE1nQZhOmEkyOgwOzzLKUoiBxHFKgqaULlzaAAVgelyKwHAQ2pFotiwegGmuMY+wgR0mGkIgjmRPEAGYGosI4iB4Zq8R9CxqQaXJYFgKrPRxDFkR4HFrAmibkVsdzOkkTBhIMJwEkLGj0kyEI5uU4T1JYdh3L4KBDISXa2GkEJ0mwZhTv2mj4jE+51hwTYIEGEJQQEOAcAAZSkEMQhaWAISOHFSJ4c4bMo6iQEvKKzMICzQEFMo/FR0g0Yx9HSFKDxSFx/HDFxvwCbxwmydJ0nKgx1LyBoXIpE4ABRKB7lYeB0HuABZdRsm+TmFNyAhvgaABFABeMWRF0OR3nmKYxKy7YBETCwcAaxBuU6I4CG9ZgLA13ILFInXlUxI40StAgwFZbqiAich9XoaHEE6BrmCxCwiGhHBMTAAhoTREG8WhZhfa9ghEDRQP3canE8BELZPSIZEGrRTE8WIdOGoSoYgA
|
@ -952,6 +952,7 @@ action
|
||||
| removeMouse_s
|
||||
| drawWarning_s
|
||||
| addPop_s
|
||||
| over_s
|
||||
| playStereo_s
|
||||
| moveStereo_s
|
||||
| pass_s
|
||||
@ -1060,8 +1061,23 @@ if (block.isCollapsed() || !block.isEnabled() || pos || Int_0 || Bool_0) {
|
||||
return code+',\n';
|
||||
*/;
|
||||
|
||||
over_s
|
||||
: '旁白文字' ':' EvalString BGNL? Newline
|
||||
'背景' EvalString? '持续时长' Int? '渐入渐出时长' Int? '音频文件' EvalString? BGNL? Newline
|
||||
'文字颜色' ColorString? Colour '描边颜色' ColorString? Colour '字体信息' EvalString? Newline
|
||||
/*over_s
|
||||
tooltip : over:这段话将出现在屏幕中心
|
||||
helpUrl : /_docs/#/instruction
|
||||
allImages : ['EvalString_1']
|
||||
allSounds : ['EvalString_2']
|
||||
default : ["这段话将在屏幕中心","bg_5043.png",3000,30,"","255,255,255,1",'rgba(255,255,255,1)',"0,0,0,1",'rgba(0,0,0,1)','bold 48px Verdana']
|
||||
var code = '{"type": "over", "text": "'+EvalString_0+'","image":"'+EvalString_1+'","time":'+Int_0+',"hidetime":'+Int_1+',"sound":"'+EvalString_2+'","textColor": ['+ColorString_0+'], "boldColor": ['+ColorString_1+'], "font": "'+EvalString_3+'"},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
cgtext_s
|
||||
: '背景' EvalString? '移除对话框' Bool? '头像' EvalString?'名字' EvalString?'坐标PX' Number'打字间隔' Int? BGNL? Newline
|
||||
'音频文件(需在全塔属性——使用音效注册)'EvalString? BGNL? Newline
|
||||
EvalString? BGNL? Newline textcgDrawingList*? Newline
|
||||
|
||||
|
||||
@ -1069,10 +1085,11 @@ cgtext_s
|
||||
tooltip : cgtext:显示一段包含cg的文字(剧情)
|
||||
helpUrl : /_docs/#/instruction
|
||||
allImages : ['EvalString_0','EvalString_1']
|
||||
default : ["bg_5043.png","face_050445.png",false,"菲奥奈",-300,0,"这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]]
|
||||
allSounds : ['EvalString_3']
|
||||
default : ["bg_5043.png","face_050445.png",false,"菲奥奈",-300,0,"","这句话显示在对话框内",[{ "name":"tati_050145a.png" , "px": 100,"filter":false }]]
|
||||
var head ='{ "name": "'+EvalString_1+'", "px": '+Number_0+' }'
|
||||
var list=',"bodyList": [\n'+textcgDrawingList_0+'\n]'
|
||||
var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","WindowSkin":'+Bool_0+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"text": "'+EvalString_3+'"'+list+' },\n';
|
||||
var code = '{"type": "cgtext", "bg":"'+EvalString_0+'","WindowSkin":'+Bool_0+',"head":'+head+' ,"name":"'+EvalString_2+'","time":'+Int_0+',"sound":"'+EvalString_3+'","text": "'+EvalString_4+'"'+list+' },\n';
|
||||
return code;
|
||||
*/;
|
||||
textcgDrawingList
|
||||
@ -1285,6 +1302,7 @@ IdString_0 = IdString_0 && (', "icon": "' + IdString_0 + '"');
|
||||
var code = '{"type": "tip", "text": "'+EvalString_0+'"'+IdString_0+'},\n';
|
||||
return code;
|
||||
*/;
|
||||
|
||||
addPop_s
|
||||
: '弹出弹幕' ':' EvalString BGNL? Newline
|
||||
'出现像素位置px' Int 'py' Int '文字颜色' ColorString? Colour '描边颜色' ColorString? Colour BGNL? Newline
|
||||
|
@ -315,7 +315,7 @@ ActionParser.prototype.parseAction = function() {
|
||||
return res;
|
||||
}
|
||||
this.next = MotaActionBlocks['cgtext_s'].xmlText([
|
||||
data.bg,data.WindowSkin,data.head.name, data.name||"", data.head.px||-300,data.time, data.text,buildcgDrawing(data.bodyList), this.next]);
|
||||
data.bg,data.WindowSkin,data.head.name, data.name||"", data.head.px||-300,data.time, data.sound,data.text,buildcgDrawing(data.bodyList), this.next]);
|
||||
|
||||
break;
|
||||
case "moveTextBox": // 移动对话框
|
||||
@ -352,6 +352,10 @@ ActionParser.prototype.parseAction = function() {
|
||||
this.next = MotaActionBlocks['addPop_s'].xmlText([
|
||||
data.value,data.px, data.py, data.color,'rgba('+data.color+')', data.boldColor,'rgba('+data.boldColor+')', data.left, data.jump, data.time, data.show, data.font, data.speed,this.next]);
|
||||
break;
|
||||
case "over":
|
||||
this.next = MotaActionBlocks['over_s'].xmlText([
|
||||
data.text??"",data.image??"", data.time??3000, data.hidetime??100,data.sound??"", data.textColor,'rgba('+data.textColor+')', data.boldColor,'rgba('+data.boldColor+')', data.font??"bold 48px Verdana",this.next]);
|
||||
break;
|
||||
case "tip":
|
||||
this.next = MotaActionBlocks['tip_s'].xmlText([
|
||||
data.text,data.icon||"",this.next]);
|
||||
|
@ -32,6 +32,23 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"_docs": "道具类别",
|
||||
"_data": "items(宝石、血瓶) constants(永久物品) tools(消耗道具) equips(装备)"
|
||||
},
|
||||
"equipCls": {
|
||||
"_leaf": true,
|
||||
"_type": "select",
|
||||
"_select": {
|
||||
"values": [
|
||||
"单手剑",
|
||||
"法杖",
|
||||
"双手剑",
|
||||
"匕首",
|
||||
"盾牌",
|
||||
"护具",
|
||||
"饰品"
|
||||
]
|
||||
},
|
||||
"_docs": "装备类别",
|
||||
"_data": "单手剑作为副手时主手必须为单手剑,匕首作为副手时主手武器必须为单手剑、法杖、匕首之一,盾牌仅可作为副手使用且主手必须为单手剑、法杖之一"
|
||||
},
|
||||
"name": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
@ -170,7 +187,23 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"def": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "防御力"
|
||||
"_data": "物理防御力"
|
||||
},
|
||||
"mdef": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "魔法防御力"
|
||||
},
|
||||
"speed": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "速度"
|
||||
},
|
||||
"magic": {
|
||||
"_leaf": true,
|
||||
"_type": "checkbox",
|
||||
"_docs": "是否为魔法攻击",
|
||||
"_data": "勾选以魔法攻击计算,不勾选以物理攻击计算"
|
||||
},
|
||||
"money": {
|
||||
"_leaf": true,
|
||||
|
@ -257,17 +257,48 @@ var data_comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
||||
"atk": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "初始攻击"
|
||||
"_data": "攻击"
|
||||
},
|
||||
"def": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "初始防御"
|
||||
"_data": "物理防御"
|
||||
},
|
||||
"mdef": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "初始护盾"
|
||||
"_data": "魔法防御"
|
||||
},
|
||||
"speed": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "攻击速度"
|
||||
},
|
||||
"str": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "力量"
|
||||
},
|
||||
"agi": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "敏捷"
|
||||
},
|
||||
"int": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "智力"
|
||||
},
|
||||
"con": {
|
||||
"_leaf": true,
|
||||
"_type": "textarea",
|
||||
"_data": "体质"
|
||||
},
|
||||
"magic": {
|
||||
"_leaf": true,
|
||||
"_type": "checkbox",
|
||||
"_docs": "攻击类型",
|
||||
"_data": "攻击类型是否是魔法"
|
||||
},
|
||||
"money": {
|
||||
"_leaf": true,
|
||||
|
BIN
project/bgms/Blind_Alley.mp3
Normal file
BIN
project/bgms/Crawler.mp3
Normal file
@ -14,7 +14,10 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"jiedao",
|
||||
"street01",
|
||||
"street02",
|
||||
"guangchang"
|
||||
"guangchang",
|
||||
"guangchang2",
|
||||
"xiaoxiang01",
|
||||
"xiaoxiang02"
|
||||
],
|
||||
"floorPartitions": [],
|
||||
"images": [
|
||||
@ -31,13 +34,18 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"bg_2011.png",
|
||||
"bg_2521.png",
|
||||
"bg_3042.png",
|
||||
"bg_3531.png",
|
||||
"bg_3551.png",
|
||||
"bg_3563.png",
|
||||
"bg_3571.png",
|
||||
"bg_3601.png",
|
||||
"bg_3721.png",
|
||||
"bg_5033.png",
|
||||
"bg_5043.png",
|
||||
"bg_5044.png",
|
||||
"bg_6004.png",
|
||||
"brave.png",
|
||||
"cao.png",
|
||||
"d.png",
|
||||
"dl.png",
|
||||
"dlr.png",
|
||||
@ -93,12 +101,17 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"h25.png",
|
||||
"hero.png",
|
||||
"l.png",
|
||||
"lane1.png",
|
||||
"light.png",
|
||||
"lock.png",
|
||||
"lr.png",
|
||||
"maba.png",
|
||||
"now.png",
|
||||
"null.png",
|
||||
"other_0001.png",
|
||||
"other_0002.png",
|
||||
"other_0003.png",
|
||||
"other_0004.png",
|
||||
"r.png",
|
||||
"status.png",
|
||||
"statusBackground.jpg",
|
||||
@ -143,7 +156,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"9.png",
|
||||
"8.png",
|
||||
"7.png",
|
||||
"10.png"
|
||||
"10.png",
|
||||
"C5.png"
|
||||
],
|
||||
"animates": [
|
||||
"hand",
|
||||
@ -155,9 +169,22 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
],
|
||||
"bgms": [
|
||||
"Asphodelus_Ceui.mp3",
|
||||
"Blind_Alley.mp3",
|
||||
"Crawler.mp3",
|
||||
"theme.mp3"
|
||||
],
|
||||
"sounds": [
|
||||
"aiy010000010.mp3",
|
||||
"aiy010000020.mp3",
|
||||
"aiy010000030.mp3",
|
||||
"aiy310000010.mp3",
|
||||
"aiy310000020.mp3",
|
||||
"aiy710000010.mp3",
|
||||
"aiy710000020.mp3",
|
||||
"aiy710000030.mp3",
|
||||
"aiy710000040.mp3",
|
||||
"aiy710000050.mp3",
|
||||
"aiy710000060.mp3",
|
||||
"attack.mp3",
|
||||
"bomb.mp3",
|
||||
"cancel.mp3",
|
||||
@ -216,7 +243,9 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"levelChoose": null,
|
||||
"equipName": [
|
||||
"武器",
|
||||
"盾牌"
|
||||
"武器",
|
||||
"防具",
|
||||
"饰品"
|
||||
],
|
||||
"startBgm": "theme.mp3",
|
||||
"styles": {
|
||||
@ -261,7 +290,7 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"title": "秽翼的尤斯蒂娅",
|
||||
"name": "Eustia",
|
||||
"version": "鸽子窝造塔小队",
|
||||
"floorId": "jiuguan",
|
||||
"floorId": "street01",
|
||||
"hero": {
|
||||
"image": "hero.png",
|
||||
"animate": false,
|
||||
@ -285,14 +314,21 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
||||
"loc": {
|
||||
"direction": "up",
|
||||
"x": 5,
|
||||
"y": 6
|
||||
"y": 11
|
||||
},
|
||||
"flags": {
|
||||
"itemDetail": true,
|
||||
"useBetweenLight": true
|
||||
},
|
||||
"followers": [],
|
||||
"steps": 0
|
||||
"steps": 0,
|
||||
"matk": 0,
|
||||
"speed": 0,
|
||||
"str": 10,
|
||||
"agi": 10,
|
||||
"int": 10,
|
||||
"con": 10,
|
||||
"magic": false
|
||||
},
|
||||
"startCanvas": [
|
||||
{
|
||||
|
@ -1,7 +1,7 @@
|
||||
var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
||||
{
|
||||
"greenSlime": {"name":"绿头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||
"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[16,18],"value":10},
|
||||
"redSlime": {"name":"红头怪","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[],"value":10},
|
||||
"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]},
|
||||
@ -10,15 +10,15 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
||||
"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},
|
||||
"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":0,"point":0,"special":4},
|
||||
"soldier": {"name":"冥战士","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||
"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},
|
||||
@ -46,8 +46,8 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
||||
"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":100,"atk":120,"def":0,"money":10,"exp":0,"point":0,"special":0},
|
||||
"blueGateKeeper": {"name":"中级卫兵","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":0},
|
||||
"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},
|
||||
|
3242
project/events.js
@ -1,7 +1,7 @@
|
||||
main.floors.Caimhome=
|
||||
{
|
||||
"floorId": "Caimhome",
|
||||
"title": "主塔 11 层",
|
||||
"title": "主塔11层",
|
||||
"name": "11",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.bihusuo=
|
||||
{
|
||||
"floorId": "bihusuo",
|
||||
"title": "牢狱01",
|
||||
"title": "庇护所",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -38,7 +38,7 @@ main.floors.bihusuo=
|
||||
[ 17, 17, 17, 17, 17, 0, 90, 0, 17, 17, 17, 17, 17],
|
||||
[ 17, 17, 17, 17, 17, 0, 0, 0, 17, 17, 17, 17, 17]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"areas": "下层",
|
||||
"bgmap": [
|
||||
[ 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],
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.guangchang=
|
||||
{
|
||||
"floorId": "guangchang",
|
||||
"title": "牢狱01",
|
||||
"title": "广场",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -23,6 +23,14 @@ main.floors.guangchang=
|
||||
6
|
||||
],
|
||||
"direction": "right"
|
||||
},
|
||||
"6,12": {
|
||||
"floorId": "guangchang2",
|
||||
"loc": [
|
||||
6,
|
||||
0
|
||||
],
|
||||
"direction": "down"
|
||||
}
|
||||
},
|
||||
"beforeBattle": {},
|
||||
@ -45,7 +53,7 @@ main.floors.guangchang=
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141]
|
||||
[ 0, 0, 0, 0, 0, 0, 93, 0, 0, 0, 0,140,141]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"bgmap": [
|
||||
|
63
project/floors/guangchang2.js
Normal file
@ -0,0 +1,63 @@
|
||||
main.floors.guangchang2=
|
||||
{
|
||||
"floorId": "guangchang2",
|
||||
"title": "广场",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
"canFlyTo": true,
|
||||
"canFlyFrom": true,
|
||||
"canUseQuickShop": true,
|
||||
"images": [],
|
||||
"ratio": 1,
|
||||
"defaultGround": "grass2",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {},
|
||||
"changeFloor": {
|
||||
"6,0": {
|
||||
"floorId": "guangchang",
|
||||
"loc": [
|
||||
6,
|
||||
12
|
||||
],
|
||||
"direction": "up"
|
||||
}
|
||||
},
|
||||
"beforeBattle": {},
|
||||
"afterBattle": {},
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,141],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"bgmap": [
|
||||
|
||||
],
|
||||
"fgmap": [
|
||||
|
||||
],
|
||||
"bg2map": [
|
||||
|
||||
],
|
||||
"fg2map": [
|
||||
|
||||
]
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
main.floors.jiaotang=
|
||||
{
|
||||
"floorId": "jiaotang",
|
||||
"title": "牢狱01",
|
||||
"title": "教堂",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -63,7 +63,7 @@ main.floors.jiaotang=
|
||||
[356,357,357,357,358, 0, 0, 0,356,357,357,357,358],
|
||||
[ 0, 0, 0, 0, 0, 0, 90, 0, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"areas": "上层",
|
||||
"bgmap": [
|
||||
[ 0,30017,30017,30017, 0,30017,30017,30017, 0,30017,30017,30017, 0],
|
||||
[ 0,30025,30025,30025, 0,30025,30025,30025, 0,30025,30025,30025, 0],
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.jiedao=
|
||||
{
|
||||
"floorId": "jiedao",
|
||||
"title": "牢狱01",
|
||||
"title": "街道",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.jiuguan=
|
||||
{
|
||||
"floorId": "jiuguan",
|
||||
"title": "主塔 11 层",
|
||||
"title": "主塔11层",
|
||||
"name": "11",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -16,19 +16,39 @@ main.floors.jiuguan=
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"4,12": [
|
||||
"5,12": [
|
||||
{
|
||||
"type": "changeFloor",
|
||||
"floorId": "street01",
|
||||
"loc": [
|
||||
8,
|
||||
4
|
||||
5,
|
||||
7
|
||||
],
|
||||
"direction": "down"
|
||||
}
|
||||
],
|
||||
"3,6": [
|
||||
"\t[小妖精,fairy]\f[fairy.png,0,0]欢迎使用事件编辑器(双击方块可直接预览)"
|
||||
"4,10": [
|
||||
{
|
||||
"type": "over",
|
||||
"text": "这段话将在屏幕中心",
|
||||
"image": "bg_5043.png",
|
||||
"time": 3000,
|
||||
"hidetime": 30,
|
||||
"sound": "",
|
||||
"textColor": [
|
||||
255,
|
||||
255,
|
||||
255,
|
||||
1
|
||||
],
|
||||
"boldColor": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"font": "bold 48px Verdana"
|
||||
}
|
||||
]
|
||||
},
|
||||
"changeFloor": {},
|
||||
@ -55,18 +75,18 @@ main.floors.jiuguan=
|
||||
[ 17, 0, 0,50054,342, 0, 0, 0, 0, 0, 0, 0, 17],
|
||||
[ 17,20231, 0, 0,336,40054,40054,50054,338, 0,30070,10292, 17],
|
||||
[ 17,70933, 0, 0, 0, 0, 0, 0, 0, 0, 0,10292, 17],
|
||||
[ 17,70941, 0, 0, 0, 0,50054, 0, 0, 0, 0,20110, 17],
|
||||
[ 17,70941, 0, 0, 0, 0,50054, 0, 0, 0, 0, 0, 17],
|
||||
[ 17,40054,80004,40054, 0, 0,40040,60042, 0,40040,60042, 0, 17],
|
||||
[ 17, 0, 0, 0, 0, 0,40054,40054, 0,40054,40054, 0, 17],
|
||||
[ 17,40054,80012,40054, 0, 0, 0, 0, 0, 0, 0, 0, 17],
|
||||
[ 17, 0, 0, 0, 0, 17, 17, 17, 17, 0, 17,80041,80042],
|
||||
[ 0, 17, 17, 17, 90, 17, 17, 17, 17, 0,80048,80049,80050]
|
||||
[ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20110, 17],
|
||||
[200004,200002,200003,200004, 17, 90, 0,200002,200003,200004,200002,200003,200004]
|
||||
],
|
||||
"areas": "下层",
|
||||
"bgmap": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0,40017,40017,50017,40017,40017,50017,40017,40017,40017,40017,50021, 0],
|
||||
[ 0,40025,50021,40025,40025,40029,40025,40025,40025,40025,40025,40025, 0],
|
||||
[ 0,40017,70325,70325,70325,70325,70325,70325,70325,70325,70325,70326, 0],
|
||||
[ 0,40025,70333,70333,70333,70333,70333,70333,70333,70333,70333,70334, 0],
|
||||
[ 0,30057,30057,30057,30057,30055,30057,30057,30063,30057,30057,30057, 0],
|
||||
[ 0,30057,30057,30057,30057,30057,30057,30057,30057,30055,30057,30057, 0],
|
||||
[ 0,30057,30055,30057,30063,30057,30057,30057,30057,30057,30063,30057, 0],
|
||||
@ -74,9 +94,9 @@ main.floors.jiuguan=
|
||||
[ 0,30063,30057,30057,30057,30057,30057,30055,30057,30063,30057,30057, 0],
|
||||
[ 0,30057,30057,30057,30055,30057,30057,30057,30057,30057,30057,30055, 0],
|
||||
[ 0,30055,30057,30057,30057,30057,30057,30057,30057,30057,30063,30057, 0],
|
||||
[ 0,30057,30057,30063,30057, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0,30057, 0,40017,40021,50017,40017,40017,40017,50017],
|
||||
[50017,40021,40017, 0,30057, 0,40025,40025,40025,40025,40029,40025,40025]
|
||||
[ 0,30057,30057,30063,30057,30057,30057,30057,30057,30057,30057,30057, 0],
|
||||
[ 0, 0, 0, 0, 0,30057, 0, 0, 0, 0, 0, 0, 0],
|
||||
[70325,70325,70325, 0, 0,30057,70325,70325,70325,70325,70325,70325,70325]
|
||||
],
|
||||
"fgmap": [
|
||||
[142,142,142,142,142,142,142,142,142,142,142,142,142],
|
||||
@ -85,13 +105,13 @@ main.floors.jiuguan=
|
||||
[142,20184,20184, 0,60110, 0,20184,20184, 0, 0, 0, 0,142],
|
||||
[142, 0, 0, 0,60166,340,340,340,339, 0, 0, 0,142],
|
||||
[142,70933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142],
|
||||
[142,71353, 0, 0, 0, 0, 0, 0, 0, 0, 0,20102,142],
|
||||
[142,71353, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142],
|
||||
[142, 0, 0, 0, 0, 0,40032,40034, 0,40032,40034, 0,142],
|
||||
[142, 0, 0, 0, 0, 0,20182, 0, 0,20190, 0, 0,142],
|
||||
[142, 0, 0, 0, 0, 0,40031,40031,40031,40031,40031, 0,142],
|
||||
[142, 0, 0, 0, 0,142,142,142,142,142,142,142,142],
|
||||
[142,142,142,142, 0,142, 0,71362,71363,71364, 0, 0, 0],
|
||||
[20120,20121, 0,142, 0,142,20086,71370,71371,71372, 0, 0, 0]
|
||||
[142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,20102,142],
|
||||
[142,142,142,142,142, 0,142,142,142,142,142,142,142],
|
||||
[ 0, 0, 0, 0,142, 0,142, 0, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"bg2map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.shengnvhome=
|
||||
{
|
||||
"floorId": "shengnvhome",
|
||||
"title": "牢狱01",
|
||||
"title": "圣女寝室",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -38,7 +38,7 @@ main.floors.shengnvhome=
|
||||
[ 17, 17, 17, 17, 17, 0, 0, 0, 17, 17, 17, 17, 17],
|
||||
[ 0, 0, 0, 0, 0, 17, 90, 17, 17, 17, 17, 17, 17]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"areas": "上层",
|
||||
"bgmap": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0,30016,360,360,30017,30017,30017,30017,30017,30018, 0, 0],
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.shinvhome=
|
||||
{
|
||||
"floorId": "shinvhome",
|
||||
"title": "牢狱01",
|
||||
"title": "侍女寝室",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -38,7 +38,7 @@ main.floors.shinvhome=
|
||||
[ 17, 17, 17, 17, 17, 0, 0, 0, 17, 17, 17, 17, 17],
|
||||
[ 17, 17, 17, 17, 17, 17, 90, 17, 17, 17, 17, 17, 17]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"areas": "上层",
|
||||
"bgmap": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0,30016,360,360,30017,30017,30017,30017,30017,30018, 0, 0],
|
||||
|
@ -1,7 +1,7 @@
|
||||
main.floors.street01=
|
||||
{
|
||||
"floorId": "street01",
|
||||
"title": "牢狱01",
|
||||
"title": "街道",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
@ -10,17 +10,17 @@ main.floors.street01=
|
||||
"canUseQuickShop": true,
|
||||
"images": [],
|
||||
"ratio": 1,
|
||||
"defaultGround": "grass2",
|
||||
"defaultGround": "X90001",
|
||||
"firstArrive": [],
|
||||
"eachArrive": [],
|
||||
"parallelDo": "",
|
||||
"events": {
|
||||
"8,4": [
|
||||
"5,7": [
|
||||
{
|
||||
"type": "changeFloor",
|
||||
"floorId": "jiuguan",
|
||||
"loc": [
|
||||
4,
|
||||
5,
|
||||
12
|
||||
],
|
||||
"direction": "up"
|
||||
@ -28,7 +28,7 @@ main.floors.street01=
|
||||
]
|
||||
},
|
||||
"changeFloor": {
|
||||
"0,6": {
|
||||
"0,8": {
|
||||
"floorId": "street02",
|
||||
"loc": [
|
||||
12,
|
||||
@ -41,46 +41,92 @@ main.floors.street01=
|
||||
"afterGetItem": {},
|
||||
"afterOpenDoor": {},
|
||||
"autoEvent": {},
|
||||
"cannotMove": {},
|
||||
"cannotMoveIn": {},
|
||||
"cannotMove": {
|
||||
"10,6": [
|
||||
"left",
|
||||
"right"
|
||||
]
|
||||
},
|
||||
"cannotMoveIn": {
|
||||
"10,6": [
|
||||
"left",
|
||||
"right"
|
||||
]
|
||||
},
|
||||
"map": [
|
||||
[141,141,141,141,141,141,140,140192,140193,140194,140200,140201,140202],
|
||||
[141,141,141,141,141,141,140,140200,140201,140202,40016,40017,40017],
|
||||
[141,141,141,141,141,141,140,40016,40017,40018,40024,40025,40025],
|
||||
[141,141,141,141,141,141,140,40024,50022,40026,40110, 0, 0],
|
||||
[140,140,140,140,140,140,140,140, 90,140,140,140,140],
|
||||
[ 0, 0, 0, 0, 0,140, 0, 0, 0, 0,140, 0, 0],
|
||||
[ 92, 0,140,202,140,140,201,140,140,140,140, 0, 94],
|
||||
[ 0, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[140,140,140,140,140,140,140,140,140,140,140,140,140],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141]
|
||||
[110121,110122,200040,200225,200138,200227,200228,200225,200250,200227,200228,200046,130090],
|
||||
[110124, 0,200048,200233,200146,200235,200236,200233,200250,200235,200228,200054,130098],
|
||||
[110124, 0,200056,200153,200154,200155,200244,200272,200154,200276,200228,200054,130060],
|
||||
[110124, 0,200272,200161,200162,200163,200276,200168,200171,200172, 0,70327,130068],
|
||||
[110124, 0,200168,200169,200170,200171,200172,200080,200081,200086, 0,70335,110114],
|
||||
[110124, 0,200176,200177,200178,200179,71786,90064,90064,90064, 0,90064,110125],
|
||||
[110124, 0,200088,200089,200004,200005,200006,71795, 0, 0, 0, 0,110125],
|
||||
[110118,110118,200096,110116,110020, 0,200014, 0, 0, 0, 0, 0,110125],
|
||||
[ 92, 0, 0,110124, 0,201, 0, 0,110125,110122,110122,110122,110122],
|
||||
[ 0, 0, 0,110118,110118,202,110118,110118,110122, 0, 0, 0, 94],
|
||||
[130170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[130178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130168,130169],
|
||||
[130225,130169,130169,130169,130169,130170,110122,110122,130168,130169,130169,130224,130177]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"bgmap": [
|
||||
|
||||
[90001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,90001],
|
||||
[90001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,90001],
|
||||
[90001, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,90001],
|
||||
[90001,71818,71819, 0, 0, 0, 0, 0, 0, 0,10036, 0,90001],
|
||||
[90001,71826,71827, 0, 0, 0, 0, 0, 0, 0, 0, 0,90001],
|
||||
[90001, 0, 0, 0, 0, 0,71786, 0,60135,60135,60135,60135, 0],
|
||||
[90001, 0, 0, 0, 0, 0, 0, 0, 0,90001,90001,90001, 0],
|
||||
[90001,90001,90001, 0, 0, 0, 0, 0,90001, 0, 0, 0, 0],
|
||||
[70032,70032,70025, 0, 0,90244,90001,90001,90001, 0, 0, 0, 0],
|
||||
[70025,70025,70025,90001,90001,90244,90001,90001,90001,70025,70025,70025,70025],
|
||||
[ 0,70025,70025,70025,70025,70025,70025,70025,70025,70025,70025,70025,70025],
|
||||
[ 0,70025,70025,70025,70025,70025,70025,70025,70025,70025,70025, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0,90001,90001, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"fgmap": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,90206,80048],
|
||||
[ 0, 0, 0, 0, 0, 0, 0,90202, 0,90201,40102,90214,80056],
|
||||
[ 0, 0, 0, 0, 0, 0, 0,20121, 0, 0, 0, 0,80064],
|
||||
[ 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],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130076],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130084],
|
||||
[ 0, 0,200110,200111, 0,200108,200109, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0,200118,200119, 0,200116,200117, 0, 0, 0, 0, 0, 0],
|
||||
[ 0,20241, 0, 0, 0, 0, 0, 0, 0,70552, 0,70554, 0],
|
||||
[ 0, 0, 0, 0, 0, 93,200180,71787, 0,70560, 0,70562, 0],
|
||||
[110114,110114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0,110143,110114,110114,110114,110114],
|
||||
[ 0, 0, 0,110114,120095, 0,120095,120095,110114, 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,110114,110114, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"bg2map": [
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0,90650,90651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0,90658,90659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0,70163,70325,70325,70326, 0,200162, 0],
|
||||
[ 0, 0, 0, 0, 0, 0,70171,70333,70333,70334,70553,200162, 0],
|
||||
[ 0,71834,71835, 0, 0, 0,90064, 0, 0, 0,70561, 0,110122],
|
||||
[ 0,71842,71843,200089,200004,200005,71794, 0,90617,70568,70569,70570, 0],
|
||||
[ 0, 0, 0,200097,200012,200013,110012, 0, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0,110028,90244, 0,120108,120108,110134,110134,110134,110134],
|
||||
[ 0, 0, 0, 0,120103,90244,120103,120103, 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, 0, 0, 0, 0, 0]
|
||||
],
|
||||
"bg2map": [
|
||||
|
||||
],
|
||||
"fg2map": [
|
||||
|
||||
[ 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],
|
||||
[ 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,393,394,395, 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,110114, 0,110114,110114, 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, 0, 0, 0, 0, 0],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
|
||||
]
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
main.floors.street02=
|
||||
{
|
||||
"floorId": "street02",
|
||||
"title": "牢狱01",
|
||||
"title": "街道",
|
||||
"name": "1",
|
||||
"width": 13,
|
||||
"height": 13,
|
||||
|
54
project/floors/xiaoxiang01.js
Normal file
@ -0,0 +1,54 @@
|
||||
main.floors.xiaoxiang01=
|
||||
{
|
||||
"floorId": "xiaoxiang01",
|
||||
"title": "小巷子",
|
||||
"name": "1",
|
||||
"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": [
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[140,140,140,140,140,140,140,140,140,140,140,140,140],
|
||||
[140, 30,140, 0, 0, 0,221, 0,224, 0, 28, 27,140],
|
||||
[140,224,140,225,140, 31,140, 0,140,140,140,224,140],
|
||||
[140, 0, 32, 0,140, 0,140,225,140,224, 0, 0,140],
|
||||
[140,225,140,140,140, 81,140, 0, 0, 0,140, 0, 94],
|
||||
[140, 0,222, 0,221, 0,140, 81,140,225,140,140,140],
|
||||
[140,140,140, 81,140,140,140, 31,140, 0, 81, 31,140],
|
||||
[ 92, 0, 0, 0, 32, 32,140, 0,140, 0,140,140,140],
|
||||
[140, 21, 21, 21, 21, 22,140, 0, 0, 0,222, 29,140],
|
||||
[140,140,140,140,140,140,140, 93,140,140,140,140,140]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"bgmap": [
|
||||
|
||||
],
|
||||
"fgmap": [
|
||||
|
||||
],
|
||||
"bg2map": [
|
||||
|
||||
],
|
||||
"fg2map": [
|
||||
|
||||
]
|
||||
}
|
54
project/floors/xiaoxiang02.js
Normal file
@ -0,0 +1,54 @@
|
||||
main.floors.xiaoxiang02=
|
||||
{
|
||||
"floorId": "xiaoxiang02",
|
||||
"title": "小巷",
|
||||
"name": "1",
|
||||
"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": [
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[141,141,141,141,141,141,141,141,141,141,141,141,141],
|
||||
[140,140,140,140,140,140,140,140,140,140,140,140,140],
|
||||
[140, 0, 0, 0,140, 0, 0, 0, 0,140, 0, 0,140],
|
||||
[140, 0,140, 0,140,140,140,140, 0,140,140, 0,140],
|
||||
[140, 0,140, 0, 0, 0, 0, 0, 0, 0, 0, 0,140],
|
||||
[ 92, 0,140,140,140,140, 0,140,140,140, 0,140,140],
|
||||
[140, 0, 0, 0, 0, 0, 0, 0, 0,140, 0, 0,140],
|
||||
[140,140,140,140,140, 0,140,140, 0,140,140, 0,140],
|
||||
[140, 0, 0, 0,140, 0,140, 0, 0, 0,140, 0,140],
|
||||
[140, 0, 0, 0, 81, 0,140, 0, 0, 0, 0, 0,140],
|
||||
[140,140,140,140,140,140,140,140,140,140,140,140,140]
|
||||
],
|
||||
"areas": "牢狱",
|
||||
"bgmap": [
|
||||
|
||||
],
|
||||
"fgmap": [
|
||||
|
||||
],
|
||||
"bg2map": [
|
||||
|
||||
],
|
||||
"fg2map": [
|
||||
|
||||
]
|
||||
}
|
@ -177,6 +177,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
if (!core.hasVisitedFloor(floorId)) {
|
||||
core.insertAction(core.floors[floorId].firstArrive);
|
||||
core.visitFloor(floorId);
|
||||
core.plugin.bfs();
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -484,322 +485,316 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
},
|
||||
"enemys": {
|
||||
"getSpecials": function () {
|
||||
// 获得怪物的特殊属性,每一行定义一个特殊属性。
|
||||
// 分为五项,第一项为该特殊属性的数字,第二项为特殊属性的名字,第三项为特殊属性的描述
|
||||
// 第四项为该特殊属性的颜色,可以写十六进制 #RRGGBB 或者 [r,g,b,a] 四元数组
|
||||
// 第五项为该特殊属性的标记;目前 1 代表是地图类技能(需要进行遍历全图)
|
||||
// 名字和描述可以直接写字符串,也可以写个function将怪物传进去
|
||||
return [
|
||||
[1, "先攻", "怪物首先攻击", "#ffcc33"],
|
||||
[2, "魔攻", "怪物无视角色的防御", "#bbb0ff"],
|
||||
[3, "坚固", "怪物防御不小于角色攻击-1", "#c0b088"],
|
||||
[4, "2连击", "怪物每回合攻击2次", "#ffee77"],
|
||||
[5, "3连击", "怪物每回合攻击3次", "#ffee77"],
|
||||
[6, function (enemy) { return (enemy.n || '') + "连击"; }, function (enemy) { return "怪物每回合攻击" + (enemy.n || 4) + "次"; }, "#ffee77"],
|
||||
[7, "破甲", function (enemy) { return "战斗前,怪物附加角色防御的" + Math.floor(100 * (enemy.breakArmor || core.values.breakArmor || 0)) + "%作为伤害"; }, "#88c0ff"],
|
||||
[8, "反击", function (enemy) { return "战斗时,怪物每回合附加角色攻击的" + Math.floor(100 * (enemy.counterAttack || core.values.counterAttack || 0)) + "%作为伤害,无视角色防御"; }, "#ffaa44"],
|
||||
[9, "净化", function (enemy) { return "战斗前,怪物附加角色护盾的" + (enemy.purify || core.values.purify) + "倍作为伤害"; }, "#80eed6"],
|
||||
[10, "模仿", "怪物的攻防和角色攻防相等", "#b0c0dd"],
|
||||
[11, "吸血", function (enemy) { return "战斗前,怪物首先吸取角色的" + Math.floor(100 * enemy.vampire || 0) + "%生命(约" + Math.floor((enemy.vampire || 0) * core.getStatus('hp')) + "点)作为伤害" + (enemy.add ? ",并把伤害数值加到自身生命上" : ""); }, "#dd4448"],
|
||||
[12, "中毒", "战斗后,角色陷入中毒状态,每一步损失生命" + core.values.poisonDamage + "点", "#99ee88"],
|
||||
[13, "衰弱", "战斗后,角色陷入衰弱状态,攻防暂时下降" + (core.values.weakValue >= 1 ? core.values.weakValue + "点" : parseInt(core.values.weakValue * 100) + "%"), "#f0bbcc"],
|
||||
[14, "诅咒", "战斗后,角色陷入诅咒状态,战斗无法获得金币和经验", "#bbeef0"],
|
||||
[15, "领域", function (enemy) { return "经过怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "范围内" + (enemy.range || 1) + "格时自动减生命" + (enemy.zone || 0) + "点"; }, "#c677dd"],
|
||||
[16, "夹击", "经过两只相同的怪物中间,角色生命值变成一半", "#bb99ee"],
|
||||
[17, "仇恨", "战斗前,怪物附加之前积累的仇恨值作为伤害;战斗后,释放一半的仇恨值。(每杀死一个怪物获得" + (core.values.hatred || 0) + "点仇恨值)", "#b0b666"],
|
||||
[18, "阻击", function (enemy) { return "经过怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "时自动减生命" + (enemy.repulse || 0) + "点,同时怪物后退一格"; }, "#8888e6"],
|
||||
[19, "自爆", "战斗后角色的生命值变成1", "#ff6666"],
|
||||
[20, "无敌", "角色无法打败怪物,除非拥有十字架", "#aaaaaa"],
|
||||
[21, "退化", function (enemy) { return "战斗后角色永久下降" + (enemy.atkValue || 0) + "点攻击和" + (enemy.defValue || 0) + "点防御"; }],
|
||||
[22, "固伤", function (enemy) { return "战斗前,怪物对角色造成" + (enemy.damage || 0) + "点固定伤害,未开启负伤时无视角色护盾。"; }, "#ff9977"],
|
||||
[23, "重生", "怪物被击败后,角色转换楼层则怪物将再次出现", "#a0e0ff"],
|
||||
[24, "激光", function (enemy) { return "经过怪物同行或同列时自动减生命" + (enemy.laser || 0) + "点"; }, "#dda0dd"],
|
||||
[25, "光环", function (enemy) { return (enemy.range != null ? ((enemy.haloSquare ? "该怪物九宫格" : "该怪物十字") + enemy.haloRange + "格范围内") : "同楼层所有") + "怪物生命提升" + (enemy.hpBuff || 0) + "%,攻击提升" + (enemy.atkBuff || 0) + "%,防御提升" + (enemy.defBuff || 0) + "%," + (enemy.haloAdd ? "可叠加" : "不可叠加"); }, "#e6e099", 1],
|
||||
[26, "支援", "当周围一圈的怪物受到攻击时将上前支援,并组成小队战斗。", "#77c0b6", 1],
|
||||
[27, "捕捉", function (enemy) { return "当走到怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "时会强制进行战斗。"; }, "#c0ddbb"]
|
||||
];
|
||||
},
|
||||
// 获得怪物的特殊属性,每一行定义一个特殊属性。
|
||||
// 分为五项,第一项为该特殊属性的数字,第二项为特殊属性的名字,第三项为特殊属性的描述
|
||||
// 第四项为该特殊属性的颜色,可以写十六进制 #RRGGBB 或者 [r,g,b,a] 四元数组
|
||||
// 第五项为该特殊属性的标记;目前 1 代表是地图类技能(需要进行遍历全图)
|
||||
// 名字和描述可以直接写字符串,也可以写个function将怪物传进去
|
||||
return [
|
||||
[1, "先攻", "怪物首先攻击", "#ffcc33"],
|
||||
[3, "坚固", "怪物防御不小于角色攻击-1", "#c0b088"],
|
||||
[6, function (enemy) { return (enemy.n || '') + "连击"; }, function (enemy) { return "怪物每回合攻击" + (enemy.n || 4) + "次"; }, "#ffee77"],
|
||||
[7, "破甲", function (enemy) { return "战斗前,怪物附加角色防御的" + Math.floor(100 * (enemy.breakArmor || core.values.breakArmor || 0)) + "%作为伤害"; }, "#88c0ff"],
|
||||
[8, "反击", function (enemy) { return "战斗时,怪物每回合附加角色攻击的" + Math.floor(100 * (enemy.counterAttack || core.values.counterAttack || 0)) + "%作为伤害,无视角色防御"; }, "#ffaa44"],
|
||||
[9, "净化", function (enemy) { return "战斗前,怪物附加角色护盾的" + (enemy.purify || core.values.purify) + "倍作为伤害"; }, "#80eed6"],
|
||||
[10, "模仿", "怪物的攻防和角色攻防相等", "#b0c0dd"],
|
||||
[11, "吸血", function (enemy) { return "战斗前,怪物首先吸取角色的" + Math.floor(100 * enemy.vampire || 0) + "%生命(约" + Math.floor((enemy.vampire || 0) * core.getStatus('hp')) + "点)作为伤害" + (enemy.add ? ",并把伤害数值加到自身生命上" : ""); }, "#dd4448"],
|
||||
[12, "中毒", "战斗后,角色陷入中毒状态,每一步损失生命" + core.values.poisonDamage + "点", "#99ee88"],
|
||||
[13, "衰弱", "战斗后,角色陷入衰弱状态,攻防暂时下降" + (core.values.weakValue >= 1 ? core.values.weakValue + "点" : parseInt(core.values.weakValue * 100) + "%"), "#f0bbcc"],
|
||||
[14, "诅咒", "战斗后,角色陷入诅咒状态,战斗无法获得金币和经验", "#bbeef0"],
|
||||
[15, "领域", function (enemy) { return "经过怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "范围内" + (enemy.range || 1) + "格时自动减生命" + (enemy.zone || 0) + "点"; }, "#c677dd"],
|
||||
[16, "夹击", "经过两只相同的怪物中间,角色生命值变成一半", "#bb99ee"],
|
||||
[17, "仇恨", "战斗前,怪物附加之前积累的仇恨值作为伤害;战斗后,释放一半的仇恨值。(每杀死一个怪物获得" + (core.values.hatred || 0) + "点仇恨值)", "#b0b666"],
|
||||
[18, "阻击", function (enemy) { return "经过怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "时自动减生命" + (enemy.repulse || 0) + "点,同时怪物后退一格"; }, "#8888e6"],
|
||||
[19, "自爆", "战斗后角色的生命值变成1", "#ff6666"],
|
||||
[20, "无敌", "角色无法打败怪物,除非拥有十字架", "#aaaaaa"],
|
||||
[21, "退化", function (enemy) { return "战斗后角色永久下降" + (enemy.atkValue || 0) + "点攻击和" + (enemy.defValue || 0) + "点防御"; }],
|
||||
[22, "固伤", function (enemy) { return "战斗前,怪物对角色造成" + (enemy.damage || 0) + "点固定伤害,未开启负伤时无视角色护盾。"; }, "#ff9977"],
|
||||
[23, "重生", "怪物被击败后,角色转换楼层则怪物将再次出现", "#a0e0ff"],
|
||||
[24, "激光", function (enemy) { return "经过怪物同行或同列时自动减生命" + (enemy.laser || 0) + "点"; }, "#dda0dd"],
|
||||
[25, "光环", function (enemy) { return (enemy.range != null ? ((enemy.haloSquare ? "该怪物九宫格" : "该怪物十字") + enemy.haloRange + "格范围内") : "同楼层所有") + "怪物生命提升" + (enemy.hpBuff || 0) + "%,攻击提升" + (enemy.atkBuff || 0) + "%,防御提升" + (enemy.defBuff || 0) + "%," + (enemy.haloAdd ? "可叠加" : "不可叠加"); }, "#e6e099", 1],
|
||||
[26, "支援", "当周围一圈的怪物受到攻击时将上前支援,并组成小队战斗。", "#77c0b6", 1],
|
||||
[27, "捕捉", function (enemy) { return "当走到怪物周围" + (enemy.zoneSquare ? "九宫格" : "十字") + "时会强制进行战斗。"; }, "#c0ddbb"]
|
||||
];
|
||||
},
|
||||
"getEnemyInfo": function (enemy, hero, x, y, floorId) {
|
||||
// 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用
|
||||
// 例如:坚固、模仿、仿攻等等
|
||||
//
|
||||
// 参数说明:
|
||||
// enemy:该怪物信息
|
||||
// hero_hp,hero_atk,hero_def,hero_mdef:勇士的生命攻防护盾数据
|
||||
// x,y:该怪物的坐标(查看手册和强制战斗时为undefined)
|
||||
// floorId:该怪物所在的楼层
|
||||
// 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果)
|
||||
floorId = floorId || core.status.floorId;
|
||||
var hero_hp = core.getRealStatusOrDefault(hero, 'hp'),
|
||||
hero_atk = core.getRealStatusOrDefault(hero, 'atk'),
|
||||
hero_def = core.getRealStatusOrDefault(hero, 'def'),
|
||||
hero_mdef = core.getRealStatusOrDefault(hero, 'mdef');
|
||||
// 获得某个怪物变化后的数据;该函数将被伤害计算和怪物手册使用
|
||||
// 例如:坚固、模仿、仿攻等等
|
||||
//
|
||||
// 参数说明:
|
||||
// enemy:该怪物信息
|
||||
// hero_hp,hero_atk,hero_def,hero_mdef:勇士的生命攻防护盾数据
|
||||
// x,y:该怪物的坐标(查看手册和强制战斗时为undefined)
|
||||
// floorId:该怪物所在的楼层
|
||||
// 后面三个参数主要是可以在光环等效果上可以适用(也可以按需制作部分范围光环效果)
|
||||
floorId = floorId || core.status.floorId;
|
||||
var hero_hp = core.getRealStatusOrDefault(hero, 'hp'),
|
||||
hero_atk = core.getRealStatusOrDefault(hero, 'atk'),
|
||||
hero_def = core.getRealStatusOrDefault(hero, 'def'),
|
||||
hero_mdef = core.getRealStatusOrDefault(hero, 'mdef');
|
||||
|
||||
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_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);
|
||||
// 模仿
|
||||
if (core.hasSpecial(mon_special, 10)) {
|
||||
mon_atk = hero_atk;
|
||||
mon_def = hero_def;
|
||||
}
|
||||
// 坚固
|
||||
if (core.hasSpecial(mon_special, 3) && mon_def < hero_atk - 1) {
|
||||
mon_def = hero_atk - 1;
|
||||
}
|
||||
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_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);
|
||||
// 模仿
|
||||
if (core.hasSpecial(mon_special, 10)) {
|
||||
mon_atk = hero_atk;
|
||||
mon_def = hero_def;
|
||||
}
|
||||
// 坚固
|
||||
if (core.hasSpecial(mon_special, 3) && mon_def < hero_atk - 1) {
|
||||
mon_def = hero_atk - 1;
|
||||
}
|
||||
|
||||
var guards = [];
|
||||
var guards = [];
|
||||
|
||||
// 光环和支援检查
|
||||
if (!core.status.checkBlock) core.status.checkBlock = {};
|
||||
// 光环和支援检查
|
||||
if (!core.status.checkBlock) core.status.checkBlock = {};
|
||||
|
||||
if (core.status.checkBlock.needCache) {
|
||||
// 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。
|
||||
var hp_buff = 0,
|
||||
atk_buff = 0,
|
||||
def_buff = 0;
|
||||
// 已经计算过的光环怪ID列表,用于判定叠加
|
||||
var usedEnemyIds = {};
|
||||
// 检查光环和支援的缓存
|
||||
var index = x != null && y != null ? (x + "," + y) : floorId;
|
||||
if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {};
|
||||
var cache = core.status.checkBlock.cache[index];
|
||||
if (!cache) {
|
||||
// 没有该点的缓存,则遍历每个图块
|
||||
core.extractBlocks(floorId);
|
||||
core.status.maps[floorId].blocks.forEach(function (block) {
|
||||
if (!block.disable) {
|
||||
// 获得该图块的ID
|
||||
var id = block.event.id,
|
||||
enemy = core.material.enemys[id];
|
||||
// 检查【光环】技能,数字25
|
||||
if (enemy && core.hasSpecial(enemy.special, 25)) {
|
||||
// 检查是否是范围光环
|
||||
var inRange = enemy.haloRange == null;
|
||||
if (enemy.haloRange != null && x != null && y != null) {
|
||||
var dx = Math.abs(block.x - x),
|
||||
dy = Math.abs(block.y - y);
|
||||
// 检查十字和九宫格光环
|
||||
if (dx + dy <= enemy.haloRange) inRange = true;
|
||||
if (enemy.haloSquare && dx <= enemy.haloRange && dy <= enemy.haloRange) inRange = true;
|
||||
}
|
||||
// 检查是否可叠加
|
||||
if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) {
|
||||
hp_buff += enemy.hpBuff || 0;
|
||||
atk_buff += enemy.atkBuff || 0;
|
||||
def_buff += enemy.defBuff || 0;
|
||||
usedEnemyIds[enemy.id] = true;
|
||||
}
|
||||
}
|
||||
// 检查【支援】技能,数字26
|
||||
if (enemy && core.hasSpecial(enemy.special, 26) &&
|
||||
// 检查支援条件,坐标存在,距离为1,且不能是自己
|
||||
// 其他类型的支援怪,比如十字之类的话.... 看着做是一样的
|
||||
x != null && y != null && Math.abs(block.x - x) <= 1 && Math.abs(block.y - y) <= 1 && !(x == block.x && y == block.y)) {
|
||||
// 记录怪物的x,y,ID
|
||||
guards.push([block.x, block.y, id]);
|
||||
}
|
||||
|
||||
// TODO:如果有其他类型光环怪物在这里仿照添加检查
|
||||
// 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。
|
||||
if (core.status.checkBlock.needCache) {
|
||||
// 从V2.5.4开始,对光环效果增加缓存,以解决多次重复计算的问题,从而大幅提升运行效率。
|
||||
var hp_buff = 0,
|
||||
atk_buff = 0,
|
||||
def_buff = 0;
|
||||
// 已经计算过的光环怪ID列表,用于判定叠加
|
||||
var usedEnemyIds = {};
|
||||
// 检查光环和支援的缓存
|
||||
var index = x != null && y != null ? (x + "," + y) : floorId;
|
||||
if (!core.status.checkBlock.cache) core.status.checkBlock.cache = {};
|
||||
var cache = core.status.checkBlock.cache[index];
|
||||
if (!cache) {
|
||||
// 没有该点的缓存,则遍历每个图块
|
||||
core.extractBlocks(floorId);
|
||||
core.status.maps[floorId].blocks.forEach(function (block) {
|
||||
if (!block.disable) {
|
||||
// 获得该图块的ID
|
||||
var id = block.event.id,
|
||||
enemy = core.material.enemys[id];
|
||||
// 检查【光环】技能,数字25
|
||||
if (enemy && core.hasSpecial(enemy.special, 25)) {
|
||||
// 检查是否是范围光环
|
||||
var inRange = enemy.haloRange == null;
|
||||
if (enemy.haloRange != null && x != null && y != null) {
|
||||
var dx = Math.abs(block.x - x),
|
||||
dy = Math.abs(block.y - y);
|
||||
// 检查十字和九宫格光环
|
||||
if (dx + dy <= enemy.haloRange) inRange = true;
|
||||
if (enemy.haloSquare && dx <= enemy.haloRange && dy <= enemy.haloRange) inRange = true;
|
||||
}
|
||||
// 检查是否可叠加
|
||||
if (inRange && (enemy.haloAdd || !usedEnemyIds[enemy.id])) {
|
||||
hp_buff += enemy.hpBuff || 0;
|
||||
atk_buff += enemy.atkBuff || 0;
|
||||
def_buff += enemy.defBuff || 0;
|
||||
usedEnemyIds[enemy.id] = true;
|
||||
}
|
||||
});
|
||||
|
||||
core.status.checkBlock.cache[index] = { "hp_buff": hp_buff, "atk_buff": atk_buff, "def_buff": def_buff, "guards": guards };
|
||||
} else {
|
||||
// 直接使用缓存数据
|
||||
hp_buff = cache.hp_buff;
|
||||
atk_buff = cache.atk_buff;
|
||||
def_buff = cache.def_buff;
|
||||
guards = cache.guards;
|
||||
}
|
||||
|
||||
// 增加比例;如果要增加数值可以直接在这里修改
|
||||
mon_hp *= (1 + hp_buff / 100);
|
||||
mon_atk *= (1 + atk_buff / 100);
|
||||
mon_def *= (1 + def_buff / 100);
|
||||
}
|
||||
|
||||
// TODO:可以在这里新增其他的怪物数据变化
|
||||
// 比如仿攻(怪物攻击不低于勇士攻击):
|
||||
// if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) {
|
||||
// mon_atk = hero_atk;
|
||||
// }
|
||||
// 也可以按需增加各种自定义内容
|
||||
|
||||
return {
|
||||
"hp": Math.floor(mon_hp),
|
||||
"atk": Math.floor(mon_atk),
|
||||
"def": Math.floor(mon_def),
|
||||
"money": Math.floor(mon_money),
|
||||
"exp": Math.floor(mon_exp),
|
||||
"point": Math.floor(mon_point),
|
||||
"special": mon_special,
|
||||
"guards": guards, // 返回支援情况
|
||||
};
|
||||
},
|
||||
"getDamageInfo": function (enemy, hero, x, y, floorId) {
|
||||
// 获得战斗伤害信息(实际伤害计算函数)
|
||||
//
|
||||
// 参数说明:
|
||||
// enemy:该怪物信息
|
||||
// hero:勇士的当前数据;如果对应项不存在则会从core.status.hero中取。
|
||||
// x,y:该怪物的坐标(查看手册和强制战斗时为undefined)
|
||||
// floorId:该怪物所在的楼层
|
||||
// 后面三个参数主要是可以在光环等效果上可以适用
|
||||
floorId = floorId || core.status.floorId;
|
||||
|
||||
var hero_hp = core.getRealStatusOrDefault(hero, 'hp'),
|
||||
hero_atk = core.getRealStatusOrDefault(hero, 'atk'),
|
||||
hero_def = core.getRealStatusOrDefault(hero, 'def'),
|
||||
hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'),
|
||||
origin_hero_hp = core.getStatusOrDefault(hero, 'hp'),
|
||||
origin_hero_atk = core.getStatusOrDefault(hero, 'atk'),
|
||||
origin_hero_def = core.getStatusOrDefault(hero, 'def');
|
||||
|
||||
// 勇士的负属性都按0计算
|
||||
hero_hp = Math.max(0, hero_hp);
|
||||
hero_atk = Math.max(0, hero_atk);
|
||||
hero_def = Math.max(0, hero_def);
|
||||
hero_mdef = Math.max(0, hero_mdef);
|
||||
|
||||
// 怪物的各项数据
|
||||
// 对坚固模仿等处理扔到了脚本编辑-getEnemyInfo之中
|
||||
var enemyInfo = core.enemys.getEnemyInfo(enemy, hero, x, y, floorId);
|
||||
var mon_hp = enemyInfo.hp,
|
||||
mon_atk = enemyInfo.atk,
|
||||
mon_def = enemyInfo.def,
|
||||
mon_special = enemyInfo.special;
|
||||
|
||||
// 技能的处理
|
||||
if (core.getFlag('skill', 0) == 1) { // 开启了技能1:二倍斩
|
||||
hero_atk *= 2; // 计算时攻击力翻倍
|
||||
}
|
||||
|
||||
// 如果是无敌属性,且勇士未持有十字架
|
||||
if (core.hasSpecial(mon_special, 20) && !core.hasItem("cross"))
|
||||
return null; // 不可战斗
|
||||
|
||||
// 战前造成的额外伤害(可被护盾抵消)
|
||||
var init_damage = 0;
|
||||
|
||||
// 吸血
|
||||
if (core.hasSpecial(mon_special, 11)) {
|
||||
var vampire_damage = hero_hp * enemy.vampire;
|
||||
|
||||
// 如果有神圣盾免疫吸血等可以在这里写
|
||||
// 也可以用hasItem和hasEquip来判定装备
|
||||
// if (core.hasFlag('shield5')) vampire_damage = 0;
|
||||
|
||||
vampire_damage = Math.floor(vampire_damage) || 0;
|
||||
// 加到自身
|
||||
if (enemy.add) // 如果加到自身
|
||||
mon_hp += vampire_damage;
|
||||
|
||||
init_damage += vampire_damage;
|
||||
}
|
||||
|
||||
// 每回合怪物对勇士造成的战斗伤害
|
||||
var per_damage = mon_atk - hero_def;
|
||||
// 魔攻:战斗伤害就是怪物攻击力
|
||||
if (core.hasSpecial(mon_special, 2)) per_damage = mon_atk;
|
||||
// 战斗伤害不能为负值
|
||||
if (per_damage < 0) per_damage = 0;
|
||||
|
||||
// 2连击 & 3连击 & N连击
|
||||
if (core.hasSpecial(mon_special, 4)) per_damage *= 2;
|
||||
if (core.hasSpecial(mon_special, 5)) per_damage *= 3;
|
||||
if (core.hasSpecial(mon_special, 6)) per_damage *= (enemy.n || 4);
|
||||
|
||||
// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
|
||||
var counterDamage = 0;
|
||||
if (core.hasSpecial(mon_special, 8))
|
||||
counterDamage += Math.floor((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))
|
||||
init_damage += Math.floor((enemy.purify || core.values.purify) * hero_mdef);
|
||||
|
||||
// 勇士每回合对怪物造成的伤害
|
||||
var hero_per_damage = Math.max(hero_atk - mon_def, 0);
|
||||
|
||||
// 如果没有破防,则不可战斗
|
||||
if (hero_per_damage <= 0) return null;
|
||||
|
||||
// 勇士的攻击回合数;为怪物生命除以每回合伤害向上取整
|
||||
var turn = Math.ceil(mon_hp / hero_per_damage);
|
||||
|
||||
// ------ 支援 ----- //
|
||||
// 这个递归最好想明白为什么,flag:__extraTurn__是怎么用的
|
||||
var guards = core.getFlag("__guards__" + x + "_" + y, enemyInfo.guards);
|
||||
var guard_before_current_enemy = false; // ------ 支援怪是先打(true)还是后打(false)?
|
||||
turn += core.getFlag("__extraTurn__", 0);
|
||||
if (guards.length > 0) {
|
||||
if (!guard_before_current_enemy) { // --- 先打当前怪物,记录当前回合数
|
||||
core.setFlag("__extraTurn__", turn);
|
||||
}
|
||||
// 获得那些怪物组成小队战斗
|
||||
for (var i = 0; i < guards.length; i++) {
|
||||
var gx = guards[i][0],
|
||||
gy = guards[i][1],
|
||||
gid = guards[i][2];
|
||||
// 递归计算支援怪伤害信息,这里不传x,y保证不会重复调用
|
||||
// 这里的mdef传0,因为护盾应该只会被计算一次
|
||||
var info = core.enemys.getDamageInfo(core.material.enemys[gid], { hp: origin_hero_hp, atk: origin_hero_atk, def: origin_hero_def, mdef: 0 });
|
||||
if (info == null) { // 小队中任何一个怪物不可战斗,直接返回null
|
||||
core.removeFlag("__extraTurn__");
|
||||
return null;
|
||||
}
|
||||
// 已经进行的回合数
|
||||
core.setFlag("__extraTurn__", info.turn);
|
||||
init_damage += info.damage;
|
||||
// 检查【支援】技能,数字26
|
||||
if (enemy && core.hasSpecial(enemy.special, 26) &&
|
||||
// 检查支援条件,坐标存在,距离为1,且不能是自己
|
||||
// 其他类型的支援怪,比如十字之类的话.... 看着做是一样的
|
||||
x != null && y != null && Math.abs(block.x - x) <= 1 && Math.abs(block.y - y) <= 1 && !(x == block.x && y == block.y)) {
|
||||
// 记录怪物的x,y,ID
|
||||
guards.push([block.x, block.y, id]);
|
||||
}
|
||||
|
||||
// TODO:如果有其他类型光环怪物在这里仿照添加检查
|
||||
// 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。
|
||||
}
|
||||
if (guard_before_current_enemy) { // --- 先打支援怪物,增加当前回合数
|
||||
turn += core.getFlag("__extraTurn__", 0);
|
||||
}
|
||||
}
|
||||
core.removeFlag("__extraTurn__");
|
||||
// ------ 支援END ------ //
|
||||
});
|
||||
|
||||
// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
|
||||
var damage = init_damage + (turn - 1) * per_damage + turn * counterDamage;
|
||||
// 再扣去护盾
|
||||
damage -= hero_mdef;
|
||||
|
||||
// 检查是否允许负伤
|
||||
if (!core.flags.enableNegativeDamage)
|
||||
damage = Math.max(0, damage);
|
||||
|
||||
// 最后处理仇恨和固伤(因为这两个不能被护盾减伤)
|
||||
if (core.hasSpecial(mon_special, 17)) { // 仇恨
|
||||
damage += core.getFlag('hatred', 0);
|
||||
}
|
||||
if (core.hasSpecial(mon_special, 22)) { // 固伤
|
||||
damage += enemy.damage || 0;
|
||||
}
|
||||
|
||||
return {
|
||||
"mon_hp": Math.floor(mon_hp),
|
||||
"mon_atk": Math.floor(mon_atk),
|
||||
"mon_def": Math.floor(mon_def),
|
||||
"init_damage": Math.floor(init_damage),
|
||||
"per_damage": Math.floor(per_damage),
|
||||
"hero_per_damage": Math.floor(hero_per_damage),
|
||||
"turn": Math.floor(turn),
|
||||
"damage": Math.floor(damage)
|
||||
};
|
||||
core.status.checkBlock.cache[index] = { "hp_buff": hp_buff, "atk_buff": atk_buff, "def_buff": def_buff, "guards": guards };
|
||||
} else {
|
||||
// 直接使用缓存数据
|
||||
hp_buff = cache.hp_buff;
|
||||
atk_buff = cache.atk_buff;
|
||||
def_buff = cache.def_buff;
|
||||
guards = cache.guards;
|
||||
}
|
||||
|
||||
// 增加比例;如果要增加数值可以直接在这里修改
|
||||
mon_hp *= (1 + hp_buff / 100);
|
||||
mon_atk *= (1 + atk_buff / 100);
|
||||
mon_def *= (1 + def_buff / 100);
|
||||
}
|
||||
|
||||
// TODO:可以在这里新增其他的怪物数据变化
|
||||
// 比如仿攻(怪物攻击不低于勇士攻击):
|
||||
// if (core.hasSpecial(mon_special, 27) && mon_atk < hero_atk) {
|
||||
// mon_atk = hero_atk;
|
||||
// }
|
||||
// 也可以按需增加各种自定义内容
|
||||
|
||||
return {
|
||||
"hp": Math.floor(mon_hp),
|
||||
"atk": Math.floor(mon_atk),
|
||||
"def": Math.floor(mon_def),
|
||||
"money": Math.floor(mon_money),
|
||||
"exp": Math.floor(mon_exp),
|
||||
"point": Math.floor(mon_point),
|
||||
"special": mon_special,
|
||||
"guards": guards, // 返回支援情况
|
||||
};
|
||||
},
|
||||
"getDamageInfo": function (enemy, hero, x, y, floorId) {
|
||||
// 获得战斗伤害信息(实际伤害计算函数)
|
||||
//
|
||||
// 参数说明:
|
||||
// enemy:该怪物信息
|
||||
// hero:勇士的当前数据;如果对应项不存在则会从core.status.hero中取。
|
||||
// x,y:该怪物的坐标(查看手册和强制战斗时为undefined)
|
||||
// floorId:该怪物所在的楼层
|
||||
// 后面三个参数主要是可以在光环等效果上可以适用
|
||||
floorId = floorId || core.status.floorId;
|
||||
|
||||
var hero_hp = core.getRealStatusOrDefault(hero, 'hp'),
|
||||
hero_atk = core.getRealStatusOrDefault(hero, 'atk'),
|
||||
hero_def = core.getRealStatusOrDefault(hero, 'def'),
|
||||
hero_mdef = core.getRealStatusOrDefault(hero, 'mdef'),
|
||||
origin_hero_hp = core.getStatusOrDefault(hero, 'hp'),
|
||||
origin_hero_atk = core.getStatusOrDefault(hero, 'atk'),
|
||||
origin_hero_def = core.getStatusOrDefault(hero, 'def');
|
||||
|
||||
// 勇士的负属性都按0计算
|
||||
hero_hp = Math.max(0, hero_hp);
|
||||
hero_atk = Math.max(0, hero_atk);
|
||||
hero_def = Math.max(0, hero_def);
|
||||
hero_mdef = Math.max(0, hero_mdef);
|
||||
|
||||
// 怪物的各项数据
|
||||
// 对坚固模仿等处理扔到了脚本编辑-getEnemyInfo之中
|
||||
var enemyInfo = core.enemys.getEnemyInfo(enemy, hero, x, y, floorId);
|
||||
var mon_hp = enemyInfo.hp,
|
||||
mon_atk = enemyInfo.atk,
|
||||
mon_def = enemyInfo.def,
|
||||
mon_special = enemyInfo.special;
|
||||
|
||||
// 技能的处理
|
||||
if (core.getFlag('skill', 0) == 1) { // 开启了技能1:二倍斩
|
||||
hero_atk *= 2; // 计算时攻击力翻倍
|
||||
}
|
||||
|
||||
// 如果是无敌属性,且勇士未持有十字架
|
||||
if (core.hasSpecial(mon_special, 20) && !core.hasItem("cross"))
|
||||
return null; // 不可战斗
|
||||
|
||||
// 战前造成的额外伤害(可被护盾抵消)
|
||||
var init_damage = 0;
|
||||
|
||||
// 吸血
|
||||
if (core.hasSpecial(mon_special, 11)) {
|
||||
var vampire_damage = hero_hp * enemy.vampire;
|
||||
|
||||
// 如果有神圣盾免疫吸血等可以在这里写
|
||||
// 也可以用hasItem和hasEquip来判定装备
|
||||
// if (core.hasFlag('shield5')) vampire_damage = 0;
|
||||
|
||||
vampire_damage = Math.floor(vampire_damage) || 0;
|
||||
// 加到自身
|
||||
if (enemy.add) // 如果加到自身
|
||||
mon_hp += vampire_damage;
|
||||
|
||||
init_damage += vampire_damage;
|
||||
}
|
||||
|
||||
// 每回合怪物对勇士造成的战斗伤害
|
||||
var per_damage = mon_atk - hero_def;
|
||||
|
||||
// 战斗伤害不能为负值
|
||||
if (per_damage < 0) per_damage = 0;
|
||||
|
||||
// 连击
|
||||
if (core.hasSpecial(mon_special, 6)) per_damage *= (enemy.n || 2);
|
||||
|
||||
// 每回合的反击伤害;反击是按照勇士的攻击次数来计算回合
|
||||
var counterDamage = 0;
|
||||
if (core.hasSpecial(mon_special, 8))
|
||||
counterDamage += Math.floor((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))
|
||||
init_damage += Math.floor((enemy.purify || core.values.purify) * hero_mdef);
|
||||
|
||||
// 勇士每回合对怪物造成的伤害
|
||||
var hero_per_damage = Math.max(hero_atk - mon_def, 0);
|
||||
|
||||
// 如果没有破防,则不可战斗
|
||||
if (hero_per_damage <= 0) return null;
|
||||
|
||||
// 勇士的攻击回合数;为怪物生命除以每回合伤害向上取整
|
||||
var turn = Math.ceil(mon_hp / hero_per_damage);
|
||||
|
||||
// ------ 支援 ----- //
|
||||
// 这个递归最好想明白为什么,flag:__extraTurn__是怎么用的
|
||||
var guards = core.getFlag("__guards__" + x + "_" + y, enemyInfo.guards);
|
||||
var guard_before_current_enemy = false; // ------ 支援怪是先打(true)还是后打(false)?
|
||||
turn += core.getFlag("__extraTurn__", 0);
|
||||
if (guards.length > 0) {
|
||||
if (!guard_before_current_enemy) { // --- 先打当前怪物,记录当前回合数
|
||||
core.setFlag("__extraTurn__", turn);
|
||||
}
|
||||
// 获得那些怪物组成小队战斗
|
||||
for (var i = 0; i < guards.length; i++) {
|
||||
var gx = guards[i][0],
|
||||
gy = guards[i][1],
|
||||
gid = guards[i][2];
|
||||
// 递归计算支援怪伤害信息,这里不传x,y保证不会重复调用
|
||||
// 这里的mdef传0,因为护盾应该只会被计算一次
|
||||
var info = core.enemys.getDamageInfo(core.material.enemys[gid], { hp: origin_hero_hp, atk: origin_hero_atk, def: origin_hero_def, mdef: 0 });
|
||||
if (info == null) { // 小队中任何一个怪物不可战斗,直接返回null
|
||||
core.removeFlag("__extraTurn__");
|
||||
return null;
|
||||
}
|
||||
// 已经进行的回合数
|
||||
core.setFlag("__extraTurn__", info.turn);
|
||||
init_damage += info.damage;
|
||||
}
|
||||
if (guard_before_current_enemy) { // --- 先打支援怪物,增加当前回合数
|
||||
turn += core.getFlag("__extraTurn__", 0);
|
||||
}
|
||||
}
|
||||
core.removeFlag("__extraTurn__");
|
||||
// ------ 支援END ------ //
|
||||
|
||||
// 最终伤害:初始伤害 + 怪物对勇士造成的伤害 + 反击伤害
|
||||
var damage = init_damage + (turn - 1) * per_damage + turn * counterDamage;
|
||||
// 再扣去护盾
|
||||
damage -= hero_mdef;
|
||||
|
||||
// 检查是否允许负伤
|
||||
if (!core.flags.enableNegativeDamage)
|
||||
damage = Math.max(0, damage);
|
||||
|
||||
// 最后处理仇恨和固伤(因为这两个不能被护盾减伤)
|
||||
if (core.hasSpecial(mon_special, 17)) { // 仇恨
|
||||
damage += core.getFlag('hatred', 0);
|
||||
}
|
||||
if (core.hasSpecial(mon_special, 22)) { // 固伤
|
||||
damage += enemy.damage || 0;
|
||||
}
|
||||
|
||||
return {
|
||||
"mon_hp": Math.floor(mon_hp),
|
||||
"mon_atk": Math.floor(mon_atk),
|
||||
"mon_def": Math.floor(mon_def),
|
||||
"init_damage": Math.floor(init_damage),
|
||||
"per_damage": Math.floor(per_damage),
|
||||
"hero_per_damage": Math.floor(hero_per_damage),
|
||||
"turn": Math.floor(turn),
|
||||
"damage": Math.floor(damage)
|
||||
};
|
||||
}
|
||||
},
|
||||
"actions": {
|
||||
"onKeyUp": function (keyCode, altKey) {
|
||||
@ -1167,6 +1162,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a =
|
||||
}
|
||||
},
|
||||
"updateStatusBar": function () {
|
||||
//更新属性映射
|
||||
core.updateStatus()
|
||||
// 更新状态栏
|
||||
core.ui.statusBar.update();
|
||||
|
||||
|
@ -94,38 +94,26 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
||||
"T358": 62,
|
||||
"T359": 63,
|
||||
"T360": 64,
|
||||
"T361": 65,
|
||||
"T362": 66,
|
||||
"T363": 67,
|
||||
"T364": 68,
|
||||
"T365": 69,
|
||||
"T366": 70,
|
||||
"T367": 71,
|
||||
"T368": 72,
|
||||
"T369": 73,
|
||||
"T370": 74,
|
||||
"T371": 75,
|
||||
"T372": 76,
|
||||
"T373": 77,
|
||||
"T374": 78,
|
||||
"T375": 79,
|
||||
"T376": 80,
|
||||
"T377": 81,
|
||||
"T378": 82,
|
||||
"T379": 83,
|
||||
"T380": 84,
|
||||
"T381": 85,
|
||||
"T382": 86,
|
||||
"T383": 87,
|
||||
"T384": 88,
|
||||
"T385": 89,
|
||||
"T386": 90,
|
||||
"T387": 91,
|
||||
"T388": 92,
|
||||
"T389": 93,
|
||||
"T390": 94,
|
||||
"T391": 95,
|
||||
"T392": 96
|
||||
"T376": 65,
|
||||
"T377": 66,
|
||||
"T378": 67,
|
||||
"T379": 68,
|
||||
"T380": 69,
|
||||
"T381": 70,
|
||||
"T382": 71,
|
||||
"T383": 72,
|
||||
"T384": 73,
|
||||
"T385": 74,
|
||||
"T386": 75,
|
||||
"T387": 76,
|
||||
"T388": 77,
|
||||
"T389": 78,
|
||||
"T390": 79,
|
||||
"T391": 80,
|
||||
"T392": 81,
|
||||
"T393": 82,
|
||||
"T394": 83,
|
||||
"T395": 84
|
||||
},
|
||||
"animates": {
|
||||
"star": 0,
|
||||
|
BIN
project/images/bg_3531.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
project/images/bg_3563.png
Normal file
After Width: | Height: | Size: 815 KiB |
BIN
project/images/bg_3601.png
Normal file
After Width: | Height: | Size: 1.4 MiB |
BIN
project/images/bg_6004.png
Normal file
After Width: | Height: | Size: 1.2 MiB |
BIN
project/images/cao.png
Normal file
After Width: | Height: | Size: 123 KiB |
BIN
project/images/lane1.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
project/images/other_0001.png
Normal file
After Width: | Height: | Size: 849 KiB |
BIN
project/images/other_0002.png
Normal file
After Width: | Height: | Size: 643 KiB |
BIN
project/images/other_0003.png
Normal file
After Width: | Height: | Size: 574 KiB |
BIN
project/images/other_0004.png
Normal file
After Width: | Height: | Size: 1.1 MiB |
@ -144,7 +144,7 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"itemEffectTip": ",攻击+0"
|
||||
},
|
||||
"sword1": {
|
||||
"cls": "items",
|
||||
"cls": "equips",
|
||||
"name": "铁剑",
|
||||
"text": "一把很普通的铁剑",
|
||||
"equip": {
|
||||
@ -152,27 +152,31 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"animate": "sword",
|
||||
"value": {
|
||||
"atk": 10
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.atk += 10",
|
||||
"itemEffectTip": ",攻击+10"
|
||||
"itemEffectTip": ",攻击+10",
|
||||
"equipCls": "双手剑"
|
||||
},
|
||||
"sword2": {
|
||||
"cls": "items",
|
||||
"cls": "equips",
|
||||
"name": "银剑",
|
||||
"text": "一把很普通的银剑",
|
||||
"equip": {
|
||||
"type": 0,
|
||||
"type": "武器",
|
||||
"animate": "sword",
|
||||
"value": {
|
||||
"atk": 20
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.atk += 20",
|
||||
"itemEffectTip": ",攻击+20"
|
||||
"itemEffectTip": ",攻击+20",
|
||||
"equipCls": "匕首"
|
||||
},
|
||||
"sword3": {
|
||||
"cls": "items",
|
||||
"cls": "equips",
|
||||
"name": "骑士剑",
|
||||
"text": "一把很普通的骑士剑",
|
||||
"equip": {
|
||||
@ -180,38 +184,44 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"animate": "sword",
|
||||
"value": {
|
||||
"atk": 40
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.atk += 40",
|
||||
"itemEffectTip": ",攻击+40"
|
||||
"itemEffectTip": ",攻击+40",
|
||||
"equipCls": "法杖"
|
||||
},
|
||||
"sword4": {
|
||||
"cls": "items",
|
||||
"cls": "equips",
|
||||
"name": "圣剑",
|
||||
"text": "一把很普通的圣剑",
|
||||
"equip": {
|
||||
"type": 0,
|
||||
"type": "武器",
|
||||
"animate": "sword",
|
||||
"value": {
|
||||
"atk": 80
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.atk += 80",
|
||||
"itemEffectTip": ",攻击+80"
|
||||
"itemEffectTip": ",攻击+80",
|
||||
"equipCls": "单手剑"
|
||||
},
|
||||
"sword5": {
|
||||
"cls": "equips",
|
||||
"name": "神圣剑",
|
||||
"text": "一把很普通的神圣剑",
|
||||
"equip": {
|
||||
"type": 0,
|
||||
"type": "武器",
|
||||
"animate": "sword",
|
||||
"value": {
|
||||
"atk": 160
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.atk += 100",
|
||||
"itemEffectTip": ",攻击+100"
|
||||
"itemEffectTip": ",攻击+100",
|
||||
"equipCls": "匕首"
|
||||
},
|
||||
"shield0": {
|
||||
"cls": "items",
|
||||
@ -234,10 +244,12 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
||||
"type": 1,
|
||||
"value": {
|
||||
"def": 10
|
||||
}
|
||||
},
|
||||
"percentage": {}
|
||||
},
|
||||
"itemEffect": "core.status.hero.def += 10",
|
||||
"itemEffectTip": ",防御+10"
|
||||
"itemEffectTip": ",防御+10",
|
||||
"equipCls": "盾牌"
|
||||
},
|
||||
"shield2": {
|
||||
"cls": "items",
|
||||
|
@ -259,21 +259,6 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"358": {"cls":"terrains","id":"T358"},
|
||||
"359": {"cls":"terrains","id":"T359"},
|
||||
"360": {"cls":"terrains","id":"T360"},
|
||||
"361": {"cls":"terrains","id":"T361"},
|
||||
"362": {"cls":"terrains","id":"T362"},
|
||||
"363": {"cls":"terrains","id":"T363"},
|
||||
"364": {"cls":"terrains","id":"T364"},
|
||||
"365": {"cls":"terrains","id":"T365"},
|
||||
"366": {"cls":"terrains","id":"T366"},
|
||||
"367": {"cls":"terrains","id":"T367"},
|
||||
"368": {"cls":"terrains","id":"T368"},
|
||||
"369": {"cls":"terrains","id":"T369"},
|
||||
"370": {"cls":"terrains","id":"T370"},
|
||||
"371": {"cls":"terrains","id":"T371"},
|
||||
"372": {"cls":"terrains","id":"T372"},
|
||||
"373": {"cls":"terrains","id":"T373"},
|
||||
"374": {"cls":"terrains","id":"T374"},
|
||||
"375": {"cls":"terrains","id":"T375"},
|
||||
"376": {"cls":"terrains","id":"T376"},
|
||||
"377": {"cls":"terrains","id":"T377"},
|
||||
"378": {"cls":"terrains","id":"T378"},
|
||||
@ -291,6 +276,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
||||
"390": {"cls":"terrains","id":"T390"},
|
||||
"391": {"cls":"terrains","id":"T391"},
|
||||
"392": {"cls":"terrains","id":"T392"},
|
||||
"393": {"cls":"terrains","id":"T393"},
|
||||
"394": {"cls":"terrains","id":"T394"},
|
||||
"395": {"cls":"terrains","id":"T395"},
|
||||
"20034": {"cls":"tileset","id":"X20034","canPass":true},
|
||||
"20154": {"cls":"tileset","id":"X20154","canPass":true},
|
||||
"20216": {"cls":"tileset","id":"X20216","canPass":true},
|
||||
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 48 KiB |
BIN
project/sounds/aiy010000010.mp3
Normal file
BIN
project/sounds/aiy010000020.mp3
Normal file
BIN
project/sounds/aiy010000030.mp3
Normal file
BIN
project/sounds/aiy310000010.mp3
Normal file
BIN
project/sounds/aiy310000020.mp3
Normal file
BIN
project/sounds/aiy710000010.mp3
Normal file
BIN
project/sounds/aiy710000020.mp3
Normal file
BIN
project/sounds/aiy710000030.mp3
Normal file
BIN
project/sounds/aiy710000040.mp3
Normal file
BIN
project/sounds/aiy710000050.mp3
Normal file
BIN
project/sounds/aiy710000060.mp3
Normal file
BIN
project/tilesets/C5.png
Normal file
After Width: | Height: | Size: 418 KiB |