第二章二区准备
@ -237,6 +237,30 @@ var comment_c456ea59_6018_45ef_8bcc_211a24c627dc = {
|
|||||||
"_docs": "饥渴",
|
"_docs": "饥渴",
|
||||||
"_data": "饥渴"
|
"_data": "饥渴"
|
||||||
},
|
},
|
||||||
|
"ice": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "textarea",
|
||||||
|
"_docs": "霜冻",
|
||||||
|
"_data": "霜冻"
|
||||||
|
},
|
||||||
|
"iceHalo": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "textarea",
|
||||||
|
"_docs": "冰封光环",
|
||||||
|
"_data": "冰封光环"
|
||||||
|
},
|
||||||
|
"night": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "textarea",
|
||||||
|
"_docs": "永夜",
|
||||||
|
"_data": "永夜"
|
||||||
|
},
|
||||||
|
"day": {
|
||||||
|
"_leaf": true,
|
||||||
|
"_type": "textarea",
|
||||||
|
"_docs": "极昼",
|
||||||
|
"_data": "极昼"
|
||||||
|
},
|
||||||
"value": {
|
"value": {
|
||||||
"_leaf": true,
|
"_leaf": true,
|
||||||
"_type": "textarea",
|
"_type": "textarea",
|
||||||
|
@ -1705,6 +1705,7 @@ control.prototype.drawDamage = function (ctx) {
|
|||||||
|
|
||||||
control.prototype._drawDamage_draw = function (ctx, onMap) {
|
control.prototype._drawDamage_draw = function (ctx, onMap) {
|
||||||
if (!core.hasItem('book')) return;
|
if (!core.hasItem('book')) return;
|
||||||
|
core.drawHalo(ctx, onMap);
|
||||||
|
|
||||||
core.setFont(ctx, "14px 'normal'");
|
core.setFont(ctx, "14px 'normal'");
|
||||||
core.setTextAlign(ctx, 'left');
|
core.setTextAlign(ctx, 'left');
|
||||||
|
BIN
public/project/autotiles/autotile10.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
public/project/autotiles/autotile8.png
Normal file
After Width: | Height: | Size: 4.5 KiB |
BIN
public/project/autotiles/autotile9.png
Normal file
After Width: | Height: | Size: 15 KiB |
BIN
public/project/bgms/palaceNorth.mp3
Normal file
BIN
public/project/bgms/palaceSouth.mp3
Normal file
BIN
public/project/bgms/winterTown.mp3
Normal file
@ -40,7 +40,21 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"MT28",
|
"MT28",
|
||||||
"MT29",
|
"MT29",
|
||||||
"MT30",
|
"MT30",
|
||||||
"MT31"
|
"MT31",
|
||||||
|
"MT32",
|
||||||
|
"MT33",
|
||||||
|
"MT34",
|
||||||
|
"MT35",
|
||||||
|
"MT36",
|
||||||
|
"MT37",
|
||||||
|
"MT38",
|
||||||
|
"MT39",
|
||||||
|
"MT40",
|
||||||
|
"MT41",
|
||||||
|
"MT42",
|
||||||
|
"MT43",
|
||||||
|
"MT44",
|
||||||
|
"MT45"
|
||||||
],
|
],
|
||||||
"floorPartitions": [
|
"floorPartitions": [
|
||||||
[
|
[
|
||||||
@ -94,7 +108,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"004-Mountain01.png",
|
"004-Mountain01.png",
|
||||||
"Map-Tower01.png",
|
"Map-Tower01.png",
|
||||||
"Caverna1.png",
|
"Caverna1.png",
|
||||||
"map-tower.png"
|
"map-tower.png",
|
||||||
|
"winter1.png"
|
||||||
],
|
],
|
||||||
"animates": [
|
"animates": [
|
||||||
"amazed",
|
"amazed",
|
||||||
@ -128,7 +143,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"grass.mp3",
|
"grass.mp3",
|
||||||
"mount.mp3",
|
"mount.mp3",
|
||||||
"night.mp3",
|
"night.mp3",
|
||||||
"palace.mp3",
|
"palaceNorth.mp3",
|
||||||
|
"palaceSouth.mp3",
|
||||||
"plot1.mp3",
|
"plot1.mp3",
|
||||||
"road.mp3",
|
"road.mp3",
|
||||||
"title.mp3",
|
"title.mp3",
|
||||||
@ -136,7 +152,8 @@ var data_a1e2fb4a_e986_4524_b0da_9b7ba7c0874d =
|
|||||||
"towerBoss.mp3",
|
"towerBoss.mp3",
|
||||||
"towerBoss2.mp3",
|
"towerBoss2.mp3",
|
||||||
"towerBoss3.mp3",
|
"towerBoss3.mp3",
|
||||||
"winter.mp3"
|
"winter.mp3",
|
||||||
|
"winterTown.mp3"
|
||||||
],
|
],
|
||||||
"sounds": [
|
"sounds": [
|
||||||
"008-System08.ogg",
|
"008-System08.ogg",
|
||||||
|
@ -41,7 +41,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
|||||||
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"elemental": {"name":"元素生物","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[18],"value":20},
|
"steelGuard": {"name":"铁守卫","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[18],"value":20},
|
||||||
"evilBat": {"name":"邪恶蝙蝠","hp":1000,"atk":800,"def":350,"money":1,"exp":40,"point":0,"special":[2]},
|
"evilBat": {"name":"邪恶蝙蝠","hp":1000,"atk":800,"def":350,"money":1,"exp":40,"point":0,"special":[2]},
|
||||||
"frozenSkeleton": {"name":"冻死骨","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"frozenSkeleton": {"name":"冻死骨","hp":7500,"atk":2500,"def":1000,"money":2,"exp":90,"point":0,"special":[1,20],"crit":500,"ice":10},
|
||||||
"silverSlimelord": {"name":"银怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"silverSlimelord": {"name":"银怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"goldSlimelord": {"name":"金怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"goldSlimelord": {"name":"金怪王","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"skeletonWarrior": {"name":"骷髅士兵","hp":500,"atk":100,"def":20,"money":0,"exp":12,"point":0,"special":[1],"crit":500},
|
"skeletonWarrior": {"name":"骷髅士兵","hp":500,"atk":100,"def":20,"money":0,"exp":12,"point":0,"special":[1],"crit":500},
|
||||||
@ -99,7 +99,7 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
|||||||
"E511": {"name":"山野蝙蝠","hp":1500,"atk":300,"def":120,"money":1,"exp":37,"point":0,"special":[5]},
|
"E511": {"name":"山野蝙蝠","hp":1500,"atk":300,"def":120,"money":1,"exp":37,"point":0,"special":[5]},
|
||||||
"E512": {"name":"专业盗贼","hp":1800,"atk":400,"def":170,"money":1,"exp":40,"point":0,"special":[5]},
|
"E512": {"name":"专业盗贼","hp":1800,"atk":400,"def":170,"money":1,"exp":40,"point":0,"special":[5]},
|
||||||
"E513": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"E513": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"E514": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"E514": {"name":"雪原剑客","hp":10000,"atk":3000,"def":500,"money":2,"exp":110,"point":0,"special":[5,19]},
|
||||||
"E515": {"name":"勇气之剑","hp":2500,"atk":550,"def":270,"money":2,"exp":40,"point":0,"special":[5,10],"courage":500},
|
"E515": {"name":"勇气之剑","hp":2500,"atk":550,"def":270,"money":2,"exp":40,"point":0,"special":[5,10],"courage":500},
|
||||||
"E517": {"name":"勇气之盾","hp":4000,"atk":400,"def":350,"money":1,"exp":30,"point":0,"special":[9]},
|
"E517": {"name":"勇气之盾","hp":4000,"atk":400,"def":350,"money":1,"exp":30,"point":0,"special":[9]},
|
||||||
"E518": {"name":"勇气圣骑","hp":4000,"atk":1000,"def":400,"money":1,"exp":45,"point":0,"special":[11],"charge":600},
|
"E518": {"name":"勇气圣骑","hp":4000,"atk":1000,"def":400,"money":1,"exp":45,"point":0,"special":[11],"charge":600},
|
||||||
@ -138,5 +138,19 @@ var enemys_fcae963b_31c9_42b4_b48c_bb48d09f3f80 =
|
|||||||
"E576": {"name":"智慧守卫","hp":7500,"atk":2500,"def":1250,"money":10,"exp":500,"point":0,"special":[1],"crit":250},
|
"E576": {"name":"智慧守卫","hp":7500,"atk":2500,"def":1250,"money":10,"exp":500,"point":0,"special":[1],"crit":250},
|
||||||
"E577": {"name":"智慧守护者","hp":15000,"atk":2500,"def":1200,"money":50,"exp":2500,"point":0,"special":[1],"crit":1000},
|
"E577": {"name":"智慧守护者","hp":15000,"atk":2500,"def":1200,"money":50,"exp":2500,"point":0,"special":[1],"crit":1000},
|
||||||
"E578": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
"E578": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
"E579": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]}
|
"E579": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E590": {"name":"冰封史莱姆","hp":7500,"atk":1750,"def":1000,"money":2,"exp":75,"point":0,"special":[20],"ice":25},
|
||||||
|
"E591": {"name":"新敌人","hp":10000,"atk":2000,"def":1000,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E592": {"name":"冰封巨兽","hp":10000,"atk":2000,"def":1000,"money":2,"exp":85,"point":0,"special":[20,21],"iceHalo":10,"ice":50},
|
||||||
|
"E593": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E594": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E595": {"name":"寒冰兽人","hp":12500,"atk":1800,"def":800,"money":2,"exp":100,"point":0,"special":[7],"hungry":25},
|
||||||
|
"E596": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E597": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E598": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E599": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E600": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E601": {"name":"新敌人","hp":0,"atk":0,"def":0,"money":0,"exp":0,"point":0,"special":[]},
|
||||||
|
"E602": {"name":"永夜蝠","hp":6000,"atk":2000,"def":800,"money":1,"exp":65,"point":0,"special":[22],"night":100},
|
||||||
|
"E603": {"name":"极昼蝠","hp":8000,"atk":1750,"def":1000,"money":1,"exp":65,"point":0,"special":[23],"day":100}
|
||||||
}
|
}
|
@ -44,8 +44,8 @@ main.floors.MT27=
|
|||||||
[143,143,143,143, 91,143,143,143,143,143,143,143,143,143,143],
|
[143,143,143,143, 91,143,143,143,143,143,143,143,143,143,143],
|
||||||
[143,143,143,143, 0,143,143,420,143,143,143,143,143,143,143],
|
[143,143,143,143, 0,143,143,420,143,143,143,143,143,143,143],
|
||||||
[ 92, 0, 0,482, 0,497,143,430,491,280,143,143,143,143,143],
|
[ 92, 0, 0,482, 0,497,143,430,491,280,143,143,143,143,143],
|
||||||
[143,143,492,143,143,143,143,143,143, 0,143,143,143,143,143],
|
[143,143,494,143,143,143,143,143,143, 0,143,143,143,143,143],
|
||||||
[143, 0, 0,492,491,492,390, 0,484, 0,143,143,143,143,143],
|
[143, 0, 0,494,491,494,390, 0,484, 0,143,143,143,143,143],
|
||||||
[143, 0,143,143,143,143, 0,143,143,143,143,143,143,143,143],
|
[143, 0,143,143,143,143, 0,143,143,143,143,143,143,143,143],
|
||||||
[143,441,143,390,482,143, 0,143,484,396,143,143,143,143,143],
|
[143,441,143,390,482,143, 0,143,484,396,143,143,143,143,143],
|
||||||
[143, 33,500,482,396,143,403,568, 21,403,143,143,143,143,143],
|
[143, 33,500,482,396,143,403,568, 21,403,143,143,143,143,143],
|
||||||
|
@ -47,7 +47,101 @@ main.floors.MT31=
|
|||||||
],
|
],
|
||||||
"eachArrive": [],
|
"eachArrive": [],
|
||||||
"parallelDo": "",
|
"parallelDo": "",
|
||||||
"events": {},
|
"events": {
|
||||||
|
"14,7": [
|
||||||
|
{
|
||||||
|
"type": "if",
|
||||||
|
"condition": "(!flag:inWinter)",
|
||||||
|
"true": [
|
||||||
|
{
|
||||||
|
"type": "setCurtain",
|
||||||
|
"color": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"time": 1500,
|
||||||
|
"keep": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "setText",
|
||||||
|
"text": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"background": "winskin3.png"
|
||||||
|
},
|
||||||
|
"人类简史——进化篇",
|
||||||
|
{
|
||||||
|
"type": "playSound",
|
||||||
|
"name": "paper.mp3"
|
||||||
|
},
|
||||||
|
"经过了漫长的行走,他感到真相越来越接近。",
|
||||||
|
{
|
||||||
|
"type": "playSound",
|
||||||
|
"name": "paper.mp3"
|
||||||
|
},
|
||||||
|
"前方,是会将凛冽渗入骨髓的冰封雪原。",
|
||||||
|
{
|
||||||
|
"type": "playSound",
|
||||||
|
"name": "paper.mp3"
|
||||||
|
},
|
||||||
|
"这里,他将寻找到所谓的真相。",
|
||||||
|
{
|
||||||
|
"type": "changeFloor",
|
||||||
|
"floorId": "MT32",
|
||||||
|
"loc": [
|
||||||
|
0,
|
||||||
|
7
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "setCurtain",
|
||||||
|
"time": 1000
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "setText",
|
||||||
|
"text": [
|
||||||
|
255,
|
||||||
|
255,
|
||||||
|
255,
|
||||||
|
1
|
||||||
|
],
|
||||||
|
"background": "winskin2.png"
|
||||||
|
},
|
||||||
|
"\t[初级智人]\b[up,hero]呼,好冷。",
|
||||||
|
"\t[初级智人]\b[up,hero]嗯?",
|
||||||
|
{
|
||||||
|
"type": "moveHero",
|
||||||
|
"time": 250,
|
||||||
|
"steps": [
|
||||||
|
"right:1"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"\t[初级智人]\b[up,hero]这是杰克给我留下的衣服吗?",
|
||||||
|
"\t[初级智人]\b[up,hero]先穿上吧,这里太冷了。",
|
||||||
|
{
|
||||||
|
"type": "setValue",
|
||||||
|
"name": "flag:inWinter",
|
||||||
|
"value": "true"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"false": [
|
||||||
|
{
|
||||||
|
"type": "changeFloor",
|
||||||
|
"floorId": "MT32",
|
||||||
|
"loc": [
|
||||||
|
0,
|
||||||
|
7
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"changeFloor": {
|
"changeFloor": {
|
||||||
"0,7": {
|
"0,7": {
|
||||||
"floorId": "MT29",
|
"floorId": "MT29",
|
||||||
@ -153,7 +247,7 @@ main.floors.MT31=
|
|||||||
[143,143, 0, 0, 0, 0,143,491,491,468,468,466,466,143,143],
|
[143,143, 0, 0, 0, 0,143,491,491,468,468,466,466,143,143],
|
||||||
[143,143, 0,491,491, 0,143, 85,143,143,143,143,143,143,143],
|
[143,143, 0,491,491, 0,143, 85,143,143,143,143,143,143,143],
|
||||||
[143,143, 0, 0, 0, 0,143, 0, 0, 0, 0, 0, 0,143,143],
|
[143,143, 0, 0, 0, 0,143, 0, 0, 0, 0, 0, 0,143,143],
|
||||||
[ 92, 0, 0, 23,123, 0,497, 0, 0, 0,577, 0, 0, 0, 0],
|
[ 92, 0, 0, 23,123, 0,497, 0, 0, 0,577, 0, 0, 0, 94],
|
||||||
[143,143, 0, 0, 0, 0,143, 0, 0, 0, 0, 0, 0,143,143],
|
[143,143, 0, 0, 0, 0,143, 0, 0, 0, 0, 0, 0,143,143],
|
||||||
[143,143, 0,491,491, 0,143, 85,143,143,143,143,143,143,143],
|
[143,143, 0,491,491, 0,143, 85,143,143,143,143,143,143,143],
|
||||||
[143,143, 0, 0, 0, 0,143,491,491,468,468,467,467,143,143],
|
[143,143, 0, 0, 0, 0,143,491,491,468,468,467,467,143,143],
|
||||||
|
104
public/project/floors/MT32.js
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
main.floors.MT32=
|
||||||
|
{
|
||||||
|
"floorId": "MT32",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {
|
||||||
|
"0,7": [
|
||||||
|
{
|
||||||
|
"type": "changeFloor",
|
||||||
|
"floorId": "MT31",
|
||||||
|
"loc": [
|
||||||
|
14,
|
||||||
|
7
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"1,6": [
|
||||||
|
"宝石血瓶的加成已提升至8倍"
|
||||||
|
],
|
||||||
|
"1,8": [
|
||||||
|
"衣服是个装备,记得穿上",
|
||||||
|
"光环会在地图上显示,如果不想要可以在背包里面的系统设置里面关闭",
|
||||||
|
"每张地图会保证极昼怪的数量与永夜怪的数量相同"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[147,147,147,147,147,147,147,147,147,147,147,147,147,147,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0,514, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147,147,147,147,147, 0,274, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147,129, 0, 21,147,590, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 92, 0,589, 0,492, 0,595, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147,129, 0, 22,147,602, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147,147,147,147,147, 0,603, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,592, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,147],
|
||||||
|
[147,147,147,147,147,147,147,147,147,147,147,147,147,147,147]
|
||||||
|
],
|
||||||
|
"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, 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, 0, 0, 0,145,145,145,145],
|
||||||
|
[145,145,145,145,145,145,145,145,145,145,145,145, 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, 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]
|
||||||
|
],
|
||||||
|
"fgmap": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"bg2map": [
|
||||||
|
[ 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, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0,146,146,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0,146,146,146, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0,146,146,146, 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, 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]
|
||||||
|
],
|
||||||
|
"fg2map": [
|
||||||
|
|
||||||
|
]
|
||||||
|
}
|
45
public/project/floors/MT33.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT33=
|
||||||
|
{
|
||||||
|
"floorId": "MT33",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT34.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT34=
|
||||||
|
{
|
||||||
|
"floorId": "MT34",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT35.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT35=
|
||||||
|
{
|
||||||
|
"floorId": "MT35",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT36.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT36=
|
||||||
|
{
|
||||||
|
"floorId": "MT36",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT37.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT37=
|
||||||
|
{
|
||||||
|
"floorId": "MT37",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT38.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT38=
|
||||||
|
{
|
||||||
|
"floorId": "MT38",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT39.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT39=
|
||||||
|
{
|
||||||
|
"floorId": "MT39",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT40.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT40=
|
||||||
|
{
|
||||||
|
"floorId": "MT40",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT41.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT41=
|
||||||
|
{
|
||||||
|
"floorId": "MT41",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT42.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT42=
|
||||||
|
{
|
||||||
|
"floorId": "MT42",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT43.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT43=
|
||||||
|
{
|
||||||
|
"floorId": "MT43",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT44.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT44=
|
||||||
|
{
|
||||||
|
"floorId": "MT44",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
45
public/project/floors/MT45.js
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
main.floors.MT45=
|
||||||
|
{
|
||||||
|
"floorId": "MT45",
|
||||||
|
"title": "冰封雪原",
|
||||||
|
"name": "冰封雪原",
|
||||||
|
"width": 15,
|
||||||
|
"height": 15,
|
||||||
|
"canFlyTo": true,
|
||||||
|
"canFlyFrom": true,
|
||||||
|
"canUseQuickShop": true,
|
||||||
|
"cannotViewMap": false,
|
||||||
|
"images": [],
|
||||||
|
"ratio": 8,
|
||||||
|
"defaultGround": "T580",
|
||||||
|
"bgm": "winter.mp3",
|
||||||
|
"firstArrive": [],
|
||||||
|
"eachArrive": [],
|
||||||
|
"parallelDo": "",
|
||||||
|
"events": {},
|
||||||
|
"changeFloor": {},
|
||||||
|
"beforeBattle": {},
|
||||||
|
"afterBattle": {},
|
||||||
|
"afterGetItem": {},
|
||||||
|
"afterOpenDoor": {},
|
||||||
|
"autoEvent": {},
|
||||||
|
"cannotMove": {},
|
||||||
|
"cannotMoveIn": {},
|
||||||
|
"map": [
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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]
|
||||||
|
],
|
||||||
|
}
|
@ -378,6 +378,10 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
Math.ceil((core.status.hero.mdef / 10) * 0.3) * 10;
|
Math.ceil((core.status.hero.mdef / 10) * 0.3) * 10;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (core.getSkillLevel(11) > 0) {
|
||||||
|
core.declineStudiedSkill();
|
||||||
|
}
|
||||||
|
|
||||||
// 计算当前怪物的支援怪物
|
// 计算当前怪物的支援怪物
|
||||||
var guards = [];
|
var guards = [];
|
||||||
if (x != null && y != null) {
|
if (x != null && y != null) {
|
||||||
@ -409,18 +413,6 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
hint += ',经验+' + exp;
|
hint += ',经验+' + exp;
|
||||||
core.drawTip(hint, enemy.id);
|
core.drawTip(hint, enemy.id);
|
||||||
|
|
||||||
// 战后的技能处理,比如扣除魔力值
|
|
||||||
if (core.flags.statusBarItems.indexOf('enableSkill') >= 0) {
|
|
||||||
// 检测当前开启的技能类型
|
|
||||||
var skill = core.getFlag('skill', 0);
|
|
||||||
if (skill == 1) {
|
|
||||||
// 技能1:二倍斩
|
|
||||||
core.status.hero.mana -= 5; // 扣除5点魔力值
|
|
||||||
}
|
|
||||||
// 关闭技能
|
|
||||||
core.setFlag('skill', 0);
|
|
||||||
core.setFlag('skillName', '无');
|
|
||||||
}
|
|
||||||
if (core.getFlag('bladeOn') && core.getFlag('blade')) {
|
if (core.getFlag('bladeOn') && core.getFlag('blade')) {
|
||||||
core.setFlag('blade', false);
|
core.setFlag('blade', false);
|
||||||
}
|
}
|
||||||
@ -575,7 +567,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
'%的伤害'
|
'%的伤害'
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
'#ffcc33'
|
'#fc3'
|
||||||
],
|
],
|
||||||
[2, '恶毒', '怪物攻击无视勇士的防御', '#bbb0ff'],
|
[2, '恶毒', '怪物攻击无视勇士的防御', '#bbb0ff'],
|
||||||
[3, '坚固', '怪物防御不小于勇士攻击-1', '#c0b088'],
|
[3, '坚固', '怪物防御不小于勇士攻击-1', '#c0b088'],
|
||||||
@ -713,37 +705,34 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
',最后与该怪物战斗',
|
',最后与该怪物战斗',
|
||||||
'#ff6666'
|
'#ff6666'
|
||||||
],
|
],
|
||||||
[20, '荆棘', '勇士无法打败怪物,除非拥有十字架', '#aaaaaa'],
|
[
|
||||||
|
20,
|
||||||
|
'霜冻',
|
||||||
|
enemy =>
|
||||||
|
`怪物寒冷的攻击使勇士动作变慢,勇士每回合对怪物造成的伤害减少${enemy.ice}%。装备杰克的衣服后可以免疫。`,
|
||||||
|
'cyan'
|
||||||
|
],
|
||||||
[
|
[
|
||||||
21,
|
21,
|
||||||
'退化',
|
'冰封光环',
|
||||||
function (enemy) {
|
enemy =>
|
||||||
return (
|
`寒气逼人,使勇士对该怪物周围7*7范围内的怪物伤害减少${enemy.iceHalo}%(线性叠加)`,
|
||||||
'战斗后勇士永久下降' +
|
'cyan',
|
||||||
(enemy.atkValue || 0) +
|
1
|
||||||
'点攻击和' +
|
|
||||||
(enemy.defValue || 0) +
|
|
||||||
'点防御'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
22,
|
22,
|
||||||
'固伤',
|
'永夜',
|
||||||
function (enemy) {
|
enemy =>
|
||||||
return (
|
`战斗后,减少勇士${enemy.night}点攻防,加到本层所有怪物身上`,
|
||||||
'战斗前,怪物对勇士造成' +
|
'#d8a'
|
||||||
(enemy.damage || 0) +
|
|
||||||
'点固定伤害,未开启负伤时无视勇士护盾。'
|
|
||||||
);
|
|
||||||
},
|
|
||||||
'#ff9977'
|
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
23,
|
23,
|
||||||
'重生',
|
'极昼',
|
||||||
'怪物被击败后,角色转换楼层则怪物将再次出现',
|
enemy =>
|
||||||
'#a0e0ff'
|
`战斗后,减少本层所有怪物${enemy.day}点攻防,加到勇士身上`,
|
||||||
|
'#ffd'
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
24,
|
24,
|
||||||
@ -811,6 +800,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
mon_exp = core.getEnemyValue(enemy, 'exp', x, y, floorId),
|
mon_exp = core.getEnemyValue(enemy, 'exp', x, y, floorId),
|
||||||
mon_point = core.getEnemyValue(enemy, 'point', x, y, floorId);
|
mon_point = core.getEnemyValue(enemy, 'point', x, y, floorId);
|
||||||
|
|
||||||
|
let iceDecline = 0;
|
||||||
|
|
||||||
if (typeof enemy === 'number')
|
if (typeof enemy === 'number')
|
||||||
core.getBlockByNumber(enemy).event.id;
|
core.getBlockByNumber(enemy).event.id;
|
||||||
if (typeof enemy === 'string') enemy = core.material.enemys[enemy];
|
if (typeof enemy === 'string') enemy = core.material.enemys[enemy];
|
||||||
@ -851,56 +842,68 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
// 检查光环和支援的缓存
|
// 检查光环和支援的缓存
|
||||||
var index =
|
var index =
|
||||||
x != null && y != null ? x + ',' + y : 'floor' + enemy.id;
|
x != null && y != null ? x + ',' + y : 'floor' + enemy.id;
|
||||||
if (!core.status.checkBlock.cache)
|
core.status.checkBlock.cache ??= {};
|
||||||
core.status.checkBlock.cache = {};
|
|
||||||
var cache = core.status.checkBlock.cache[index];
|
var cache = core.status.checkBlock.cache[index];
|
||||||
if (!cache) {
|
if (!cache) {
|
||||||
// 没有该点的缓存,则遍历每个图块
|
// 没有该点的缓存,则遍历每个图块
|
||||||
core.extractBlocks(floorId);
|
core.extractBlocks(floorId);
|
||||||
core.status.maps[floorId].blocks.forEach(function (block) {
|
core.status.maps[floorId].blocks.forEach(function (block) {
|
||||||
if (!block.disable) {
|
if (block.disable) return;
|
||||||
// 获得该图块的ID
|
// 获得该图块的ID
|
||||||
var id = block.event.id,
|
var id = block.event.id,
|
||||||
e = core.material.enemys[id];
|
e = core.material.enemys[id];
|
||||||
var dx = Math.abs(block.x - x),
|
var dx = Math.abs(block.x - x),
|
||||||
dy = Math.abs(block.y - y);
|
dy = Math.abs(block.y - y);
|
||||||
// 检查【支援】技能,数字26
|
// 检查【支援】技能,数字26
|
||||||
if (
|
if (
|
||||||
e &&
|
e &&
|
||||||
core.hasSpecial(e.special, 26) &&
|
core.hasSpecial(e.special, 26) &&
|
||||||
// 检查支援条件,坐标存在,距离为1,且不能是自己
|
// 检查支援条件,坐标存在,距离为1,且不能是自己
|
||||||
// 其他类型的支援怪,比如十字之类的话.... 看着做是一样的
|
// 其他类型的支援怪,比如十字之类的话.... 看着做是一样的
|
||||||
x != null &&
|
x != null &&
|
||||||
y != null &&
|
y != null &&
|
||||||
Math.abs(block.x - x) <= 1 &&
|
Math.abs(block.x - x) <= 1 &&
|
||||||
Math.abs(block.y - y) <= 1 &&
|
Math.abs(block.y - y) <= 1 &&
|
||||||
!(x == block.x && y == block.y)
|
!(x == block.x && y == block.y)
|
||||||
) {
|
) {
|
||||||
// 记录怪物的x,y,ID
|
// 记录怪物的x,y,ID
|
||||||
guards.push([block.x, block.y, id]);
|
guards.push([block.x, block.y, id]);
|
||||||
}
|
|
||||||
// 抱团
|
|
||||||
if (
|
|
||||||
e &&
|
|
||||||
core.hasSpecial(mon_special, 8) &&
|
|
||||||
core.hasSpecial(e.special, 8) &&
|
|
||||||
!(dx == 0 && dy == 0) &&
|
|
||||||
dx < 3 &&
|
|
||||||
dy < 3
|
|
||||||
) {
|
|
||||||
atk_buff += enemy.together || 0;
|
|
||||||
def_buff += enemy.together || 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO:如果有其他类型光环怪物在这里仿照添加检查
|
|
||||||
// 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 抱团
|
||||||
|
if (
|
||||||
|
e &&
|
||||||
|
core.hasSpecial(mon_special, 8) &&
|
||||||
|
core.hasSpecial(e.special, 8) &&
|
||||||
|
!(dx == 0 && dy == 0) &&
|
||||||
|
dx < 3 &&
|
||||||
|
dy < 3
|
||||||
|
) {
|
||||||
|
atk_buff += enemy.together || 0;
|
||||||
|
def_buff += enemy.together || 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 冰封光环
|
||||||
|
if (
|
||||||
|
e &&
|
||||||
|
core.hasSpecial(e.special, 21) &&
|
||||||
|
x != null &&
|
||||||
|
y != null &&
|
||||||
|
dx < 4 &&
|
||||||
|
dy < 4
|
||||||
|
) {
|
||||||
|
iceDecline += e.iceHalo;
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO:如果有其他类型光环怪物在这里仿照添加检查
|
||||||
|
// 注:新增新的类光环属性(需要遍历全图的)需要在特殊属性定义那里的第五项写1,参见光环和支援的特殊属性定义。
|
||||||
});
|
});
|
||||||
core.status.checkBlock.cache[index] = {
|
core.status.checkBlock.cache[index] = {
|
||||||
hp_buff: hp_buff,
|
hp_buff: hp_buff,
|
||||||
atk_buff: atk_buff,
|
atk_buff: atk_buff,
|
||||||
def_buff: def_buff,
|
def_buff: def_buff,
|
||||||
guards: guards
|
guards: guards,
|
||||||
|
iceHalo: iceDecline
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
// 直接使用缓存数据
|
// 直接使用缓存数据
|
||||||
@ -908,6 +911,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
atk_buff = cache.atk_buff;
|
atk_buff = cache.atk_buff;
|
||||||
def_buff = cache.def_buff;
|
def_buff = cache.def_buff;
|
||||||
guards = cache.guards;
|
guards = cache.guards;
|
||||||
|
iceDecline = cache.iceHalo;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 增加比例;如果要增加数值可以直接在这里修改
|
// 增加比例;如果要增加数值可以直接在这里修改
|
||||||
@ -931,7 +935,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
exp: Math.floor(mon_exp),
|
exp: Math.floor(mon_exp),
|
||||||
point: Math.floor(mon_point),
|
point: Math.floor(mon_point),
|
||||||
special: mon_special,
|
special: mon_special,
|
||||||
guards: guards // 返回支援情况
|
guards: guards, // 返回支援情况
|
||||||
|
iceDecline
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
getDamageInfo: function (enemy, hero, x, y, floorId) {
|
getDamageInfo: function (enemy, hero, x, y, floorId) {
|
||||||
@ -1011,12 +1016,12 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
if (core.hasSpecial(mon_special, 5)) per_damage *= 3;
|
if (core.hasSpecial(mon_special, 5)) per_damage *= 3;
|
||||||
if (core.hasSpecial(mon_special, 6)) per_damage *= enemy.n || 4;
|
if (core.hasSpecial(mon_special, 6)) per_damage *= enemy.n || 4;
|
||||||
// 勇士每回合对怪物造成的伤害
|
// 勇士每回合对怪物造成的伤害
|
||||||
|
let hero_per_damage = Math.max(hero_atk - mon_def, 0);
|
||||||
if (!core.hasSpecial(mon_special, 9)) {
|
if (!core.hasSpecial(mon_special, 9)) {
|
||||||
var hero_per_damage = Math.max(hero_atk - mon_def, 0);
|
hero_per_damage = Math.max(hero_atk - mon_def, 0);
|
||||||
if (hero_per_damage > 0) hero_per_damage += hero_extraAtk;
|
if (hero_per_damage > 0) hero_per_damage += hero_extraAtk;
|
||||||
}
|
} else {
|
||||||
if (core.hasSpecial(mon_special, 9)) {
|
hero_per_damage = Math.max(
|
||||||
var hero_per_damage = Math.max(
|
|
||||||
hero_atk + hero_extraAtk - mon_def,
|
hero_atk + hero_extraAtk - mon_def,
|
||||||
0
|
0
|
||||||
);
|
);
|
||||||
@ -1025,6 +1030,15 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
// 如果没有破防,则不可战斗
|
// 如果没有破防,则不可战斗
|
||||||
if (hero_per_damage <= 0) return null;
|
if (hero_per_damage <= 0) return null;
|
||||||
|
|
||||||
|
if (
|
||||||
|
core.hasSpecial(mon_special, 20) &&
|
||||||
|
!core.hasEquip('I589')
|
||||||
|
) {
|
||||||
|
hero_per_damage *= 1 - enemy.ice / 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
hero_per_damage *= 1 - enemyInfo.iceDecline / 100;
|
||||||
|
|
||||||
// 勇士的攻击回合数;为怪物生命除以每回合伤害向上取整
|
// 勇士的攻击回合数;为怪物生命除以每回合伤害向上取整
|
||||||
let turn = Math.ceil(mon_hp / hero_per_damage);
|
let turn = Math.ceil(mon_hp / hero_per_damage);
|
||||||
|
|
||||||
@ -1437,20 +1451,36 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
core.updateCheckBlock();
|
core.updateCheckBlock();
|
||||||
// 更新全地图显伤
|
// 更新全地图显伤
|
||||||
core.updateDamage();
|
core.updateDamage();
|
||||||
|
|
||||||
|
// 已学习的技能
|
||||||
|
if (
|
||||||
|
core.getSkillLevel(11) > 0 &&
|
||||||
|
(core.status.hero.special?.num ?? []).length > 0
|
||||||
|
) {
|
||||||
|
core.plugin.showStudiedSkill.value = true;
|
||||||
|
} else {
|
||||||
|
core.plugin.showStudiedSkill.value = false;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
updateCheckBlock: function (floorId) {
|
updateCheckBlock: function (floorId) {
|
||||||
// 领域、夹击、阻击等的伤害值计算
|
// 领域、夹击、阻击等的伤害值计算
|
||||||
floorId = floorId || core.status.floorId;
|
floorId = floorId || core.status.floorId;
|
||||||
if (!floorId || !core.status.maps) return;
|
if (!floorId || !core.status.maps) return;
|
||||||
|
|
||||||
|
const haloMap = {
|
||||||
|
21: 'square:7:cyan'
|
||||||
|
};
|
||||||
|
const haloEntry = Object.entries(haloMap);
|
||||||
|
|
||||||
var width = core.floors[floorId].width,
|
var width = core.floors[floorId].width,
|
||||||
height = core.floors[floorId].height;
|
height = core.floors[floorId].height;
|
||||||
var blocks = core.getMapBlocksObj(floorId);
|
var blocks = core.getMapBlocksObj(floorId);
|
||||||
|
|
||||||
var damage = {}, // 每个点的伤害值
|
const damage = {}, // 每个点的伤害值
|
||||||
type = {}, // 每个点的伤害类型
|
type = {}, // 每个点的伤害类型
|
||||||
repulse = {}, // 每个点的阻击怪信息
|
repulse = {}, // 每个点的阻击怪信息
|
||||||
mockery = {}; // 电摇嘲讽
|
mockery = {}, // 电摇嘲讽
|
||||||
|
halo = {}; // 光环
|
||||||
var betweenAttackLocs = {}; // 所有可能的夹击点
|
var betweenAttackLocs = {}; // 所有可能的夹击点
|
||||||
var needCache = false;
|
var needCache = false;
|
||||||
var canGoDeadZone = core.flags.canGoDeadZone;
|
var canGoDeadZone = core.flags.canGoDeadZone;
|
||||||
@ -1680,6 +1710,16 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
)
|
)
|
||||||
needCache = true;
|
needCache = true;
|
||||||
if (specialFlag & 2) haveHunt = true;
|
if (specialFlag & 2) haveHunt = true;
|
||||||
|
|
||||||
|
if (enemy) {
|
||||||
|
for (const [num, range] of haloEntry) {
|
||||||
|
const n = parseInt(num);
|
||||||
|
if (core.hasSpecial(enemy.special, n)) {
|
||||||
|
halo[loc] ??= [];
|
||||||
|
halo[loc].push(range);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 对每个可能的夹击点计算夹击伤害
|
// 对每个可能的夹击点计算夹击伤害
|
||||||
@ -1758,7 +1798,8 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = {
|
|||||||
mockery,
|
mockery,
|
||||||
needCache: needCache,
|
needCache: needCache,
|
||||||
cache: {}, // clear cache
|
cache: {}, // clear cache
|
||||||
haveHunt: haveHunt
|
haveHunt: haveHunt,
|
||||||
|
halo
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
moveOneStep: function (callback) {
|
moveOneStep: function (callback) {
|
||||||
|
@ -112,7 +112,16 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
"T552": 52,
|
"T552": 52,
|
||||||
"T553": 53,
|
"T553": 53,
|
||||||
"T554": 54,
|
"T554": 54,
|
||||||
"T555": 55
|
"T555": 55,
|
||||||
|
"T580": 56,
|
||||||
|
"T581": 57,
|
||||||
|
"T582": 58,
|
||||||
|
"T583": 59,
|
||||||
|
"T584": 60,
|
||||||
|
"T585": 61,
|
||||||
|
"T586": 62,
|
||||||
|
"T587": 63,
|
||||||
|
"T588": 64
|
||||||
},
|
},
|
||||||
"animates": {
|
"animates": {
|
||||||
"star": 0,
|
"star": 0,
|
||||||
@ -343,7 +352,21 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
"E576": 131,
|
"E576": 131,
|
||||||
"E577": 132,
|
"E577": 132,
|
||||||
"E578": 133,
|
"E578": 133,
|
||||||
"E579": 134
|
"E579": 134,
|
||||||
|
"E590": 135,
|
||||||
|
"E591": 136,
|
||||||
|
"E592": 137,
|
||||||
|
"E593": 138,
|
||||||
|
"E594": 139,
|
||||||
|
"E595": 140,
|
||||||
|
"E596": 141,
|
||||||
|
"E597": 142,
|
||||||
|
"E598": 143,
|
||||||
|
"E599": 144,
|
||||||
|
"E600": 145,
|
||||||
|
"E601": 146,
|
||||||
|
"E602": 147,
|
||||||
|
"E603": 148
|
||||||
},
|
},
|
||||||
"enemy48": {
|
"enemy48": {
|
||||||
"angel": 0,
|
"angel": 0,
|
||||||
@ -536,7 +559,8 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
"I560": 97,
|
"I560": 97,
|
||||||
"I565": 98,
|
"I565": 98,
|
||||||
"I574": 99,
|
"I574": 99,
|
||||||
"I575": 100
|
"I575": 100,
|
||||||
|
"I589": 101
|
||||||
},
|
},
|
||||||
"autotile": {
|
"autotile": {
|
||||||
"autotile": 0,
|
"autotile": 0,
|
||||||
@ -546,6 +570,9 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 =
|
|||||||
"autotile4": 0,
|
"autotile4": 0,
|
||||||
"autotile5": 0,
|
"autotile5": 0,
|
||||||
"autotile6": 0,
|
"autotile6": 0,
|
||||||
"autotile7": 0
|
"autotile7": 0,
|
||||||
|
"autotile8": 0,
|
||||||
|
"autotile9": 0,
|
||||||
|
"autotile10": 0
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1326,5 +1326,18 @@ var items_296f5d02_12fd_4166_a7c1_b5e830c9ee3a =
|
|||||||
"atk": 10
|
"atk": 10
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"I589": {
|
||||||
|
"cls": "equips",
|
||||||
|
"name": "杰克的衣服",
|
||||||
|
"canUseItemEffect": "true",
|
||||||
|
"text": "杰克为主角留下的衣服,可以抵御寒冷。防御+25,免疫怪物的霜冻属性。",
|
||||||
|
"equip": {
|
||||||
|
"type": "衣服",
|
||||||
|
"value": {
|
||||||
|
"def": 25
|
||||||
|
},
|
||||||
|
"percentage": {}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -115,6 +115,9 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
|||||||
"142": {"cls":"autotile","id":"autotile5"},
|
"142": {"cls":"autotile","id":"autotile5"},
|
||||||
"143": {"cls":"autotile","id":"autotile6"},
|
"143": {"cls":"autotile","id":"autotile6"},
|
||||||
"144": {"cls":"autotile","id":"autotile7"},
|
"144": {"cls":"autotile","id":"autotile7"},
|
||||||
|
"145": {"cls":"autotile","id":"autotile8"},
|
||||||
|
"146": {"cls":"autotile","id":"autotile9","canPass":true},
|
||||||
|
"147": {"cls":"autotile","id":"autotile10"},
|
||||||
"151": {"cls":"autotile","id":"autotile1"},
|
"151": {"cls":"autotile","id":"autotile1"},
|
||||||
"152": {"cls":"autotile","id":"autotile2"},
|
"152": {"cls":"autotile","id":"autotile2"},
|
||||||
"153": {"cls":"autotile","id":"autotile3"},
|
"153": {"cls":"autotile","id":"autotile3"},
|
||||||
@ -504,6 +507,30 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e =
|
|||||||
"577": {"cls":"enemys","id":"E577"},
|
"577": {"cls":"enemys","id":"E577"},
|
||||||
"578": {"cls":"enemys","id":"E578"},
|
"578": {"cls":"enemys","id":"E578"},
|
||||||
"579": {"cls":"enemys","id":"E579"},
|
"579": {"cls":"enemys","id":"E579"},
|
||||||
|
"580": {"cls":"terrains","id":"T580","canPass":true},
|
||||||
|
"581": {"cls":"terrains","id":"T581"},
|
||||||
|
"582": {"cls":"terrains","id":"T582"},
|
||||||
|
"583": {"cls":"terrains","id":"T583"},
|
||||||
|
"584": {"cls":"terrains","id":"T584"},
|
||||||
|
"585": {"cls":"terrains","id":"T585"},
|
||||||
|
"586": {"cls":"terrains","id":"T586"},
|
||||||
|
"587": {"cls":"terrains","id":"T587"},
|
||||||
|
"588": {"cls":"terrains","id":"T588"},
|
||||||
|
"589": {"cls":"items","id":"I589"},
|
||||||
|
"590": {"cls":"enemys","id":"E590"},
|
||||||
|
"591": {"cls":"enemys","id":"E591"},
|
||||||
|
"592": {"cls":"enemys","id":"E592"},
|
||||||
|
"593": {"cls":"enemys","id":"E593"},
|
||||||
|
"594": {"cls":"enemys","id":"E594"},
|
||||||
|
"595": {"cls":"enemys","id":"E595"},
|
||||||
|
"596": {"cls":"enemys","id":"E596"},
|
||||||
|
"597": {"cls":"enemys","id":"E597"},
|
||||||
|
"598": {"cls":"enemys","id":"E598"},
|
||||||
|
"599": {"cls":"enemys","id":"E599"},
|
||||||
|
"600": {"cls":"enemys","id":"E600"},
|
||||||
|
"601": {"cls":"enemys","id":"E601"},
|
||||||
|
"602": {"cls":"enemys","id":"E602"},
|
||||||
|
"603": {"cls":"enemys","id":"E603"},
|
||||||
"20037": {"cls":"tileset","id":"X20037","cannotOut":["up","left"],"cannotIn":["up","left"]},
|
"20037": {"cls":"tileset","id":"X20037","cannotOut":["up","left"],"cannotIn":["up","left"]},
|
||||||
"20038": {"cls":"tileset","id":"X20038","cannotOut":["up"],"cannotIn":["up"]},
|
"20038": {"cls":"tileset","id":"X20038","cannotOut":["up"],"cannotIn":["up"]},
|
||||||
"20039": {"cls":"tileset","id":"X20039","cannotOut":["up","right"],"cannotIn":["up","right"]},
|
"20039": {"cls":"tileset","id":"X20039","cannotOut":["up","right"],"cannotIn":["up","right"]},
|
||||||
|
Before Width: | Height: | Size: 133 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 41 KiB After Width: | Height: | Size: 43 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 53 KiB |
@ -1640,7 +1640,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
false
|
false
|
||||||
);
|
);
|
||||||
if (!firstNoPass) return;
|
if (!firstNoPass) return;
|
||||||
core.status.hero.hp -= 200 * flags.hard;
|
if (flags.chapter <= 1) core.status.hero.hp -= 200 * flags.hard;
|
||||||
core.updateStatusBar();
|
core.updateStatusBar();
|
||||||
flags['jump_' + core.status.floorId]++;
|
flags['jump_' + core.status.floorId]++;
|
||||||
if (core.status.hero.hp <= 0) {
|
if (core.status.hero.hp <= 0) {
|
||||||
@ -4103,7 +4103,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
title: '学习',
|
title: '学习',
|
||||||
desc: [
|
desc: [
|
||||||
'<span style="color: gold">主动技能</span>,可以消耗500智慧学习一个怪物的技能,',
|
'<span style="color: gold">主动技能</span>,可以消耗500智慧学习一个怪物的技能,',
|
||||||
'持续5场战斗,每学习一次消耗的智慧点增加200,每次升级使持续的战斗次数增加3次。更多信息可在学习后在百科全书查看。'
|
'持续5场战斗,每学习一次消耗的智慧点增加250,每次升级使持续的战斗次数增加3次。更多信息可在学习后在百科全书查看。'
|
||||||
],
|
],
|
||||||
consume: '2500 * level ** 2 + 2500',
|
consume: '2500 * level ** 2 + 2500',
|
||||||
front: [
|
front: [
|
||||||
@ -4528,7 +4528,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
1: ['crit'],
|
1: ['crit'],
|
||||||
6: ['n'],
|
6: ['n'],
|
||||||
7: ['hungry'],
|
7: ['hungry'],
|
||||||
8: ['togrther'],
|
8: ['together'],
|
||||||
10: ['courage'],
|
10: ['courage'],
|
||||||
11: ['charge']
|
11: ['charge']
|
||||||
};
|
};
|
||||||
@ -4536,10 +4536,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
const cannotStudy = [9, 12, 14, 15, 24];
|
const cannotStudy = [9, 12, 14, 15, 24];
|
||||||
|
|
||||||
this.canStudySkill = function (number) {
|
this.canStudySkill = function (number) {
|
||||||
core.status.hero.special ??= { num: [] };
|
const s = (core.status.hero.special ??= { num: [], last: [] });
|
||||||
if (core.status.hero.special.num.length >= 1) {
|
if (core.getSkillLevel(11) === 0) return false;
|
||||||
return false;
|
if (s.num.length >= 1) return false;
|
||||||
}
|
if (s.num.includes(number)) return false;
|
||||||
if (cannotStudy.includes(number)) return false;
|
if (cannotStudy.includes(number)) return false;
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
@ -4577,7 +4577,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.declineStudiedSkill = function () {
|
this.declineStudiedSkill = function () {
|
||||||
const s = core.status.hero.special;
|
const s = (core.status.hero.special ??= { num: [], last: [] });
|
||||||
s.last = s.last.map(v => v - 1);
|
s.last = s.last.map(v => v - 1);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -4590,5 +4590,58 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
haloRange: function () {
|
||||||
|
/**
|
||||||
|
* 绘制光环范围
|
||||||
|
* @param {CanvasRenderingContext2D} ctx
|
||||||
|
* @param {boolean} onMap
|
||||||
|
*/
|
||||||
|
this.drawHalo = function (ctx, onMap) {
|
||||||
|
if (main.replayChecking) return;
|
||||||
|
if (!core.getLocalStorage('showHalo', true)) return;
|
||||||
|
const halo = core.status.checkBlock.halo;
|
||||||
|
ctx.save();
|
||||||
|
core.clearMap(ctx);
|
||||||
|
ctx.globalAlpha = 0.1;
|
||||||
|
ctx.globalCompositeOperation = 'source-over';
|
||||||
|
for (const [loc, range] of Object.entries(halo)) {
|
||||||
|
const [x, y] = loc.split(',').map(v => parseInt(v));
|
||||||
|
for (const r of range) {
|
||||||
|
const [type, value, color, border] = r.split(':');
|
||||||
|
if (type === 'square') {
|
||||||
|
// 正方形光环
|
||||||
|
const n = parseInt(value);
|
||||||
|
const r = Math.floor(n / 2);
|
||||||
|
let left = x - r,
|
||||||
|
right = x + r,
|
||||||
|
top = y - r,
|
||||||
|
bottom = y + r;
|
||||||
|
if (onMap && core.bigmap.v2) {
|
||||||
|
left -= core.bigmap.posX;
|
||||||
|
top -= core.bigmap.posY;
|
||||||
|
right -= core.bigmap.posX;
|
||||||
|
bottom -= core.bigmap.posY;
|
||||||
|
if (
|
||||||
|
right < -1 ||
|
||||||
|
left > core._PX_ / 32 + 1 ||
|
||||||
|
top < -1 ||
|
||||||
|
bottom > core._PY_ / 32 + 1
|
||||||
|
) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ctx.fillStyle = color;
|
||||||
|
ctx.strokeStyle = border ?? color;
|
||||||
|
ctx.lineWidth = 1;
|
||||||
|
ctx.fillRect(left * 32, top * 32, n * 32, n * 32);
|
||||||
|
ctx.globalAlpha = 0.6;
|
||||||
|
ctx.strokeRect(left * 32, top * 32, n * 32, n * 32);
|
||||||
|
ctx.globalAlpha = 0.1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ctx.restore();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
BIN
public/project/tilesets/winter1.png
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
public/project/tilesets/winter2.png
Normal file
After Width: | Height: | Size: 628 KiB |
BIN
public/project/tilesets/winter3.png
Normal file
After Width: | Height: | Size: 95 KiB |
@ -1,7 +1,10 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="non-ui">
|
<div id="non-ui">
|
||||||
<StatusBar v-if="showStatusBar"></StatusBar>
|
<StatusBar v-if="showStatusBar"></StatusBar>
|
||||||
<MarkedEnemy v-if="showMarkedEnemy"></MarkedEnemy>
|
<MarkedEnemy v-if="showMarkedEnemy && showStatusBar"></MarkedEnemy>
|
||||||
|
<Studied
|
||||||
|
v-if="showStudiedSkill && showStatusBar && showStudied"
|
||||||
|
></Studied>
|
||||||
<Chapter v-if="chapterShowed" :chapter="chapterContent"></Chapter>
|
<Chapter v-if="chapterShowed" :chapter="chapterContent"></Chapter>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -9,11 +12,13 @@
|
|||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import StatusBar from './ui/statusBar.vue';
|
import StatusBar from './ui/statusBar.vue';
|
||||||
import { showStatusBar } from './plugin/uiController';
|
import { showStatusBar, showStudiedSkill } from './plugin/uiController';
|
||||||
import MarkedEnemy from './ui/markedEnemy.vue';
|
import MarkedEnemy from './ui/markedEnemy.vue';
|
||||||
import Chapter from './ui/chapter.vue';
|
import Chapter from './ui/chapter.vue';
|
||||||
import { chapterContent, chapterShowed } from './plugin/ui/chapter';
|
import { chapterContent, chapterShowed } from './plugin/ui/chapter';
|
||||||
import { showMarkedEnemy } from './plugin/mark';
|
import { showMarkedEnemy } from './plugin/mark';
|
||||||
|
import Studied from './ui/studied.vue';
|
||||||
|
import { showStudied } from './plugin/settings';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
|
@ -3,7 +3,12 @@
|
|||||||
<div :id="`box-main-${id}`" class="box-main" @click="click">
|
<div :id="`box-main-${id}`" class="box-main" @click="click">
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
</div>
|
</div>
|
||||||
<div :id="`box-move-${id}`" class="box-move" :selected="moveSelected">
|
<div
|
||||||
|
v-if="dragable"
|
||||||
|
:id="`box-move-${id}`"
|
||||||
|
class="box-move"
|
||||||
|
:selected="moveSelected"
|
||||||
|
>
|
||||||
<drag-outlined
|
<drag-outlined
|
||||||
:id="`box-drag-${id}`"
|
:id="`box-drag-${id}`"
|
||||||
class="box-drag"
|
class="box-drag"
|
||||||
@ -14,21 +19,25 @@
|
|||||||
class="border border-vertical border-left"
|
class="border border-vertical border-left"
|
||||||
:id="`border-left-${id}`"
|
:id="`border-left-${id}`"
|
||||||
:selected="moveSelected && resizable"
|
:selected="moveSelected && resizable"
|
||||||
|
:selectable="resizable"
|
||||||
></div>
|
></div>
|
||||||
<div
|
<div
|
||||||
class="border border-horizontal border-top"
|
class="border border-horizontal border-top"
|
||||||
:id="`border-top-${id}`"
|
:id="`border-top-${id}`"
|
||||||
:selected="moveSelected && resizable"
|
:selected="moveSelected && resizable"
|
||||||
|
:selectable="resizable"
|
||||||
></div>
|
></div>
|
||||||
<div
|
<div
|
||||||
class="border border-vertical border-right"
|
class="border border-vertical border-right"
|
||||||
:id="`border-right-${id}`"
|
:id="`border-right-${id}`"
|
||||||
:selected="moveSelected && resizable"
|
:selected="moveSelected && resizable"
|
||||||
|
:selectable="resizable"
|
||||||
></div>
|
></div>
|
||||||
<div
|
<div
|
||||||
class="border border-horizontal border-bottom"
|
class="border border-horizontal border-bottom"
|
||||||
:id="`border-bottom-${id}`"
|
:id="`border-bottom-${id}`"
|
||||||
:selected="moveSelected && resizable"
|
:selected="moveSelected && resizable"
|
||||||
|
:selectable="resizable"
|
||||||
></div>
|
></div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@ -41,6 +50,7 @@ import { has } from '../plugin/utils';
|
|||||||
import { sleep } from 'mutate-animate';
|
import { sleep } from 'mutate-animate';
|
||||||
|
|
||||||
const props = defineProps<{
|
const props = defineProps<{
|
||||||
|
dragable?: boolean;
|
||||||
resizable?: boolean;
|
resizable?: boolean;
|
||||||
left?: number;
|
left?: number;
|
||||||
top?: number;
|
top?: number;
|
||||||
@ -162,18 +172,20 @@ onMounted(async () => {
|
|||||||
|
|
||||||
if (!main) return;
|
if (!main) return;
|
||||||
|
|
||||||
useDrag(
|
if (props.dragable) {
|
||||||
drag,
|
useDrag(
|
||||||
dragFn,
|
drag,
|
||||||
(x, y) => {
|
dragFn,
|
||||||
lastX = x;
|
(x, y) => {
|
||||||
lastY = y;
|
lastX = x;
|
||||||
},
|
lastY = y;
|
||||||
() => {
|
},
|
||||||
moveSelected.value = false;
|
() => {
|
||||||
},
|
moveSelected.value = false;
|
||||||
true
|
},
|
||||||
);
|
true
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (props.resizable) {
|
if (props.resizable) {
|
||||||
useDrag(
|
useDrag(
|
||||||
@ -202,7 +214,7 @@ onMounted(async () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
cancelGlobalDrag(dragFn);
|
if (props.dragable) cancelGlobalDrag(dragFn);
|
||||||
if (props.resizable) {
|
if (props.resizable) {
|
||||||
cancelGlobalDrag(leftDrag);
|
cancelGlobalDrag(leftDrag);
|
||||||
cancelGlobalDrag(topDrag);
|
cancelGlobalDrag(topDrag);
|
||||||
@ -264,13 +276,13 @@ onUnmounted(() => {
|
|||||||
left: 0px;
|
left: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-horizontal[selected='true'] {
|
.border-horizontal[selected='true'][selectable='true'] {
|
||||||
transform: scaleY(300%);
|
transform: scaleY(300%);
|
||||||
cursor: ns-resize;
|
cursor: ns-resize;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-horizontal:hover,
|
.border-horizontal:hover[selectable='true'],
|
||||||
.border-horizontal:active {
|
.border-horizontal:active[selectable='true'] {
|
||||||
transform: scaleY(500%);
|
transform: scaleY(500%);
|
||||||
cursor: ns-resize;
|
cursor: ns-resize;
|
||||||
}
|
}
|
||||||
@ -281,13 +293,13 @@ onUnmounted(() => {
|
|||||||
top: 0px;
|
top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-vertical[selected='true'] {
|
.border-vertical[selected='true'][selectable='true'] {
|
||||||
transform: scaleX(300%);
|
transform: scaleX(300%);
|
||||||
cursor: ew-resize;
|
cursor: ew-resize;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-vertical:hover,
|
.border-vertical:hover[selectable='true'],
|
||||||
.border-vertical:active {
|
.border-vertical:active[selectable='true'] {
|
||||||
transform: scaleX(500%);
|
transform: scaleX(500%);
|
||||||
cursor: ew-resize;
|
cursor: ew-resize;
|
||||||
}
|
}
|
||||||
|
@ -10,16 +10,16 @@
|
|||||||
"本百科全书字数很多,可以选择性地阅读。</span>",
|
"本百科全书字数很多,可以选择性地阅读。</span>",
|
||||||
"<br>",
|
"<br>",
|
||||||
"<br>",
|
"<br>",
|
||||||
"2. 本塔中<span style=\"color: gold\">几乎所有 ui </span>都可以纵向滚动,如果发现显示不全,",
|
"2. 本百科全书的内容会<span style=\"color: gold\">随着游戏的推进而增加新内容</span>,",
|
||||||
|
"同时每次增加新内容时都会有提示。",
|
||||||
|
"<br>",
|
||||||
|
"<br>",
|
||||||
|
"3. 本塔中<span style=\"color: gold\">几乎所有 ui </span>都可以纵向滚动,如果发现显示不全,",
|
||||||
"可以尝试上下拖动,就像浏览网页一样。电脑端还可以使用滚轮上下滚动。",
|
"可以尝试上下拖动,就像浏览网页一样。电脑端还可以使用滚轮上下滚动。",
|
||||||
"大部分可以纵向滚动的 ui 都会在右方有一个滚动条,也可以拖动它进行滚动,例如本百科全书的条目列表和",
|
"大部分可以纵向滚动的 ui 都会在右方有一个滚动条,也可以拖动它进行滚动,例如本百科全书的条目列表和",
|
||||||
"条目说明都是可以通过上述方式滚动的。",
|
"条目说明都是可以通过上述方式滚动的。",
|
||||||
"<br>",
|
"<br>",
|
||||||
"<br>",
|
"<br>",
|
||||||
"3. 本百科全书的内容会<span style=\"color: gold\">随着游戏的推进而增加新内容</span>,",
|
|
||||||
"同时每次增加新内容时都会有提示。",
|
|
||||||
"<br>",
|
|
||||||
"<br>",
|
|
||||||
"4. 本塔主要面向电脑端设计,",
|
"4. 本塔主要面向电脑端设计,",
|
||||||
"<span style=\"color: gold\">建议使用电脑游玩以获得更好的游戏体验</span>。但是手机依然可以游玩本塔,",
|
"<span style=\"color: gold\">建议使用电脑游玩以获得更好的游戏体验</span>。但是手机依然可以游玩本塔,",
|
||||||
"但部分操作可能不是很方便,ui 也可能不是很美观,不过依然可以完整体验本游戏。",
|
"但部分操作可能不是很方便,ui 也可能不是很美观,不过依然可以完整体验本游戏。",
|
||||||
@ -406,6 +406,46 @@
|
|||||||
"这些技能一般需要尽早点出。"
|
"这些技能一般需要尽早点出。"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"study": {
|
||||||
|
"text": "学习",
|
||||||
|
"condition": "core.getSkillLevel(11) > 0",
|
||||||
|
"desc": [
|
||||||
|
"本条目会详细说明学习的机制与所有可以被学习的技能被学习后的效果。当前已经学习的技能会以与状态栏类似的盒子展示出来。",
|
||||||
|
"<br>",
|
||||||
|
"<br>",
|
||||||
|
"首先,学习技能消耗的智慧点会越来越多,初始消耗的智慧点为500,每学习一次增加250。",
|
||||||
|
"学习的技能可以持续5场战斗,在技能树界面每升级一次增加3场,",
|
||||||
|
"<span style=\"color: gold\">当前为${core.getSkillLevel(11) * 3 + 2}场</span>。",
|
||||||
|
"学习后对应属性的值,例如抱团怪增加的属性百分比,会与被学习的怪物相同。学习界面可以使用背包中的道具或点击状态栏打开。",
|
||||||
|
"<br>",
|
||||||
|
"<br>",
|
||||||
|
"下面会详细说明每一种可以被学习的技能被学习后的效果,没有列出的均不可学习。",
|
||||||
|
"<br>",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #fc3\">1. 致命一击</span>:勇士每5回合对怪物造成一次强力攻击。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #bbb0ff\">2. 恶毒</span>:勇士攻击无视怪物的防御。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #c0b088\">3. 坚固</span>:勇士防御不低于怪物的攻击-1。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #fe7\">4. n连击</span>:勇士每回合攻击n次",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #b30000\">5. 饥渴</span>:勇士在战前吸取怪物一定量的攻击加载自己身上,",
|
||||||
|
"同时减少怪物相应量的攻击,优先于怪物。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #fa4\">6. 抱团</span>:勇士周围每有一个拥有抱团属性的怪物,勇士的属性便增加一定值。",
|
||||||
|
"相应地,拥有抱团属性的怪物也会受到勇士的加成。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #b0c0dd\">7. 勇气之刃</span>:勇士第一回合造成一定量的伤害,之后正常。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #ff00d2\">8. 勇气冲锋</span>:勇士首先发动冲锋,造成一定量的伤害,眩晕怪物5回合。",
|
||||||
|
"学习该技能后,勇士无条件先手。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #bbb0ff\">9. 魔攻</span>:勇士攻击无视怪物的防御。",
|
||||||
|
"<br>",
|
||||||
|
"<span style=\"color: #b0b666\">10. 先攻</span>:勇士无条件先手。"
|
||||||
|
]
|
||||||
|
},
|
||||||
"special1": {
|
"special1": {
|
||||||
"text": "第一章怪物特技",
|
"text": "第一章怪物特技",
|
||||||
"condition": "flags.chapter > 0",
|
"condition": "flags.chapter > 0",
|
||||||
|
@ -29,5 +29,15 @@
|
|||||||
"<br>",
|
"<br>",
|
||||||
"2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例"
|
"2. 如果缩放后游戏画面高度高于页面高度的95%,那么缩小一个缩放比例,否则保持最大比例"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"showHalo": {
|
||||||
|
"text": "展示范围光环",
|
||||||
|
"desc": ["开启后,会在地图上显示范围光环。"]
|
||||||
|
},
|
||||||
|
"showStudied": {
|
||||||
|
"text": "展示已学习技能",
|
||||||
|
"desc": [
|
||||||
|
"开启后,会在画面内以类似状态栏的盒子的形式显示当前已学习的怪物技能。"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import { ref, watch } from 'vue';
|
import { ref, watch } from 'vue';
|
||||||
import { has } from './utils';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 打开和关闭ui时是否展示动画
|
* 打开和关闭ui时是否展示动画
|
||||||
@ -21,6 +20,16 @@ export const autoSkill = ref(true);
|
|||||||
*/
|
*/
|
||||||
export const autoScale = ref(true);
|
export const autoScale = ref(true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否在地图上展示范围光环
|
||||||
|
*/
|
||||||
|
export const showHalo = ref(true);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否展示已学习的技能
|
||||||
|
*/
|
||||||
|
export const showStudied = ref(true);
|
||||||
|
|
||||||
watch(transition, n => {
|
watch(transition, n => {
|
||||||
core.plugin.transition.value = n;
|
core.plugin.transition.value = n;
|
||||||
core.setLocalStorage('transition', n);
|
core.setLocalStorage('transition', n);
|
||||||
@ -41,6 +50,14 @@ watch(autoScale, n => {
|
|||||||
core.setLocalStorage('autoScale', n);
|
core.setLocalStorage('autoScale', n);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
watch(showStudied, n => {
|
||||||
|
core.setLocalStorage('showStudied', n);
|
||||||
|
});
|
||||||
|
|
||||||
|
watch(showHalo, n => {
|
||||||
|
core.setLocalStorage('showHalo', n);
|
||||||
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 重置设置信息,从localStorage读取即可
|
* 重置设置信息,从localStorage读取即可
|
||||||
*/
|
*/
|
||||||
@ -49,6 +66,8 @@ function reset() {
|
|||||||
transition.value = t;
|
transition.value = t;
|
||||||
core.plugin.transition.value = transition.value;
|
core.plugin.transition.value = transition.value;
|
||||||
autoScale.value = core.getLocalStorage('autoScale', true);
|
autoScale.value = core.getLocalStorage('autoScale', true);
|
||||||
|
showStudied.value = core.getLocalStorage('showStudied', true);
|
||||||
|
showHalo.value = core.getLocalStorage('showHalo', true);
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetFlag() {
|
function resetFlag() {
|
||||||
|
@ -21,11 +21,10 @@ export function getAddStatus(equip: Equip) {
|
|||||||
return (
|
return (
|
||||||
<div class="equip-add-detail">
|
<div class="equip-add-detail">
|
||||||
{keys.map(v => {
|
{keys.map(v => {
|
||||||
const value =
|
const value = Math.floor(
|
||||||
(equip.value[v] ?? 0) +
|
(equip.value[v] ?? 0) * core.getBuff(v) +
|
||||||
Math.floor(
|
|
||||||
(core.status.hero[v] * (equip.percentage[v] ?? 0)) / 100
|
(core.status.hero[v] * (equip.percentage[v] ?? 0)) / 100
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span style="display: flex">
|
<span style="display: flex">
|
||||||
@ -72,7 +71,9 @@ export function getNowStatus(nowEquip?: Equip, onCol: boolean = false) {
|
|||||||
|
|
||||||
let add = 0;
|
let add = 0;
|
||||||
if (has(nowEquip)) {
|
if (has(nowEquip)) {
|
||||||
add += nowEquip.value[v] ?? 0;
|
add += Math.floor(
|
||||||
|
(nowEquip.value[v] ?? 0) * core.getBuff(v)
|
||||||
|
);
|
||||||
const per = Math.floor(
|
const per = Math.floor(
|
||||||
(nowEquip.percentage[v] * core.getStatus(v)) / 100
|
(nowEquip.percentage[v] * core.getStatus(v)) / 100
|
||||||
);
|
);
|
||||||
|
@ -18,6 +18,7 @@ export const descOpened = ref(false);
|
|||||||
export const skillOpened = ref(false);
|
export const skillOpened = ref(false);
|
||||||
export const skillTreeOpened = ref(false);
|
export const skillTreeOpened = ref(false);
|
||||||
export const flyOpened = ref(false);
|
export const flyOpened = ref(false);
|
||||||
|
export const showStudiedSkill = ref(false);
|
||||||
|
|
||||||
export const transition = ref(true);
|
export const transition = ref(true);
|
||||||
export const noClosePanel = ref(false);
|
export const noClosePanel = ref(false);
|
||||||
@ -67,7 +68,8 @@ export default function init() {
|
|||||||
descOpened,
|
descOpened,
|
||||||
skillOpened,
|
skillOpened,
|
||||||
skillTreeOpened,
|
skillTreeOpened,
|
||||||
flyOpened
|
flyOpened,
|
||||||
|
showStudiedSkill
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
27
src/source/cls.d.ts
vendored
@ -114,6 +114,9 @@ interface IdToCls {
|
|||||||
autotile5: 'autotile';
|
autotile5: 'autotile';
|
||||||
autotile6: 'autotile';
|
autotile6: 'autotile';
|
||||||
autotile7: 'autotile';
|
autotile7: 'autotile';
|
||||||
|
autotile8: 'autotile';
|
||||||
|
autotile9: 'autotile';
|
||||||
|
autotile10: 'autotile';
|
||||||
autotile1: 'autotile';
|
autotile1: 'autotile';
|
||||||
autotile2: 'autotile';
|
autotile2: 'autotile';
|
||||||
autotile3: 'autotile';
|
autotile3: 'autotile';
|
||||||
@ -503,6 +506,30 @@ interface IdToCls {
|
|||||||
E577: 'enemys';
|
E577: 'enemys';
|
||||||
E578: 'enemys';
|
E578: 'enemys';
|
||||||
E579: 'enemys';
|
E579: 'enemys';
|
||||||
|
T580: 'terrains';
|
||||||
|
T581: 'terrains';
|
||||||
|
T582: 'terrains';
|
||||||
|
T583: 'terrains';
|
||||||
|
T584: 'terrains';
|
||||||
|
T585: 'terrains';
|
||||||
|
T586: 'terrains';
|
||||||
|
T587: 'terrains';
|
||||||
|
T588: 'terrains';
|
||||||
|
I589: 'items';
|
||||||
|
E590: 'enemys';
|
||||||
|
E591: 'enemys';
|
||||||
|
E592: 'enemys';
|
||||||
|
E593: 'enemys';
|
||||||
|
E594: 'enemys';
|
||||||
|
E595: 'enemys';
|
||||||
|
E596: 'enemys';
|
||||||
|
E597: 'enemys';
|
||||||
|
E598: 'enemys';
|
||||||
|
E599: 'enemys';
|
||||||
|
E600: 'enemys';
|
||||||
|
E601: 'enemys';
|
||||||
|
E602: 'enemys';
|
||||||
|
E603: 'enemys';
|
||||||
X20037: 'tileset';
|
X20037: 'tileset';
|
||||||
X20038: 'tileset';
|
X20038: 'tileset';
|
||||||
X20039: 'tileset';
|
X20039: 'tileset';
|
||||||
|
18
src/source/data.d.ts
vendored
@ -39,6 +39,20 @@ type FloorIds =
|
|||||||
| 'MT29'
|
| 'MT29'
|
||||||
| 'MT30'
|
| 'MT30'
|
||||||
| 'MT31'
|
| 'MT31'
|
||||||
|
| 'MT32'
|
||||||
|
| 'MT33'
|
||||||
|
| 'MT34'
|
||||||
|
| 'MT35'
|
||||||
|
| 'MT36'
|
||||||
|
| 'MT37'
|
||||||
|
| 'MT38'
|
||||||
|
| 'MT39'
|
||||||
|
| 'MT40'
|
||||||
|
| 'MT41'
|
||||||
|
| 'MT42'
|
||||||
|
| 'MT43'
|
||||||
|
| 'MT44'
|
||||||
|
| 'MT45'
|
||||||
|
|
||||||
type ImageIds =
|
type ImageIds =
|
||||||
| 'IQ.png'
|
| 'IQ.png'
|
||||||
@ -148,7 +162,8 @@ type BgmIds =
|
|||||||
| 'grass.mp3'
|
| 'grass.mp3'
|
||||||
| 'mount.mp3'
|
| 'mount.mp3'
|
||||||
| 'night.mp3'
|
| 'night.mp3'
|
||||||
| 'palace.mp3'
|
| 'palaceNorth.mp3'
|
||||||
|
| 'palaceSouth.mp3'
|
||||||
| 'plot1.mp3'
|
| 'plot1.mp3'
|
||||||
| 'road.mp3'
|
| 'road.mp3'
|
||||||
| 'title.mp3'
|
| 'title.mp3'
|
||||||
@ -157,6 +172,7 @@ type BgmIds =
|
|||||||
| 'towerBoss2.mp3'
|
| 'towerBoss2.mp3'
|
||||||
| 'towerBoss3.mp3'
|
| 'towerBoss3.mp3'
|
||||||
| 'winter.mp3'
|
| 'winter.mp3'
|
||||||
|
| 'winterTown.mp3'
|
||||||
|
|
||||||
type FontIds =
|
type FontIds =
|
||||||
| 'normal'
|
| 'normal'
|
||||||
|
1
src/source/items.d.ts
vendored
@ -184,4 +184,5 @@ interface ItemDeclaration {
|
|||||||
I565: 'constants';
|
I565: 'constants';
|
||||||
I574: 'items';
|
I574: 'items';
|
||||||
I575: 'equips';
|
I575: 'equips';
|
||||||
|
I589: 'equips';
|
||||||
}
|
}
|
54
src/source/maps.d.ts
vendored
@ -114,6 +114,9 @@ interface IdToNumber {
|
|||||||
autotile5: 142;
|
autotile5: 142;
|
||||||
autotile6: 143;
|
autotile6: 143;
|
||||||
autotile7: 144;
|
autotile7: 144;
|
||||||
|
autotile8: 145;
|
||||||
|
autotile9: 146;
|
||||||
|
autotile10: 147;
|
||||||
autotile1: 151;
|
autotile1: 151;
|
||||||
autotile2: 152;
|
autotile2: 152;
|
||||||
autotile3: 153;
|
autotile3: 153;
|
||||||
@ -503,6 +506,30 @@ interface IdToNumber {
|
|||||||
E577: 577;
|
E577: 577;
|
||||||
E578: 578;
|
E578: 578;
|
||||||
E579: 579;
|
E579: 579;
|
||||||
|
T580: 580;
|
||||||
|
T581: 581;
|
||||||
|
T582: 582;
|
||||||
|
T583: 583;
|
||||||
|
T584: 584;
|
||||||
|
T585: 585;
|
||||||
|
T586: 586;
|
||||||
|
T587: 587;
|
||||||
|
T588: 588;
|
||||||
|
I589: 589;
|
||||||
|
E590: 590;
|
||||||
|
E591: 591;
|
||||||
|
E592: 592;
|
||||||
|
E593: 593;
|
||||||
|
E594: 594;
|
||||||
|
E595: 595;
|
||||||
|
E596: 596;
|
||||||
|
E597: 597;
|
||||||
|
E598: 598;
|
||||||
|
E599: 599;
|
||||||
|
E600: 600;
|
||||||
|
E601: 601;
|
||||||
|
E602: 602;
|
||||||
|
E603: 603;
|
||||||
X20037: 20037;
|
X20037: 20037;
|
||||||
X20038: 20038;
|
X20038: 20038;
|
||||||
X20039: 20039;
|
X20039: 20039;
|
||||||
@ -651,6 +678,9 @@ interface NumberToId {
|
|||||||
142: 'autotile5';
|
142: 'autotile5';
|
||||||
143: 'autotile6';
|
143: 'autotile6';
|
||||||
144: 'autotile7';
|
144: 'autotile7';
|
||||||
|
145: 'autotile8';
|
||||||
|
146: 'autotile9';
|
||||||
|
147: 'autotile10';
|
||||||
151: 'autotile1';
|
151: 'autotile1';
|
||||||
152: 'autotile2';
|
152: 'autotile2';
|
||||||
153: 'autotile3';
|
153: 'autotile3';
|
||||||
@ -1040,6 +1070,30 @@ interface NumberToId {
|
|||||||
577: 'E577';
|
577: 'E577';
|
||||||
578: 'E578';
|
578: 'E578';
|
||||||
579: 'E579';
|
579: 'E579';
|
||||||
|
580: 'T580';
|
||||||
|
581: 'T581';
|
||||||
|
582: 'T582';
|
||||||
|
583: 'T583';
|
||||||
|
584: 'T584';
|
||||||
|
585: 'T585';
|
||||||
|
586: 'T586';
|
||||||
|
587: 'T587';
|
||||||
|
588: 'T588';
|
||||||
|
589: 'I589';
|
||||||
|
590: 'E590';
|
||||||
|
591: 'E591';
|
||||||
|
592: 'E592';
|
||||||
|
593: 'E593';
|
||||||
|
594: 'E594';
|
||||||
|
595: 'E595';
|
||||||
|
596: 'E596';
|
||||||
|
597: 'E597';
|
||||||
|
598: 'E598';
|
||||||
|
599: 'E599';
|
||||||
|
600: 'E600';
|
||||||
|
601: 'E601';
|
||||||
|
602: 'E602';
|
||||||
|
603: 'E603';
|
||||||
20037: 'X20037';
|
20037: 'X20037';
|
||||||
20038: 'X20038';
|
20038: 'X20038';
|
||||||
20039: 'X20039';
|
20039: 'X20039';
|
||||||
|
18
src/types/enemy.d.ts
vendored
@ -77,8 +77,8 @@ type Enemy<I extends EnemyIds = EnemyIds> = {
|
|||||||
*/
|
*/
|
||||||
type EnemySpecialDeclaration = [
|
type EnemySpecialDeclaration = [
|
||||||
id: number,
|
id: number,
|
||||||
name: string | ((enemy: Enemy) => string),
|
name: string | ((enemy: EnemySpecialBase) => string),
|
||||||
desc: string | ((enemy: Enemy) => string),
|
desc: string | ((enemy: EnemySpecialBase) => string),
|
||||||
color: Color,
|
color: Color,
|
||||||
extra?: number
|
extra?: number
|
||||||
];
|
];
|
||||||
@ -95,7 +95,14 @@ interface DamageString {
|
|||||||
color: Color;
|
color: Color;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface EnemyInfoBase {
|
interface EnemySpecialBase {
|
||||||
|
/**
|
||||||
|
* 怪物特殊属性
|
||||||
|
*/
|
||||||
|
special: number[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface EnemyInfoBase extends EnemySpecialBase {
|
||||||
/**
|
/**
|
||||||
* 生命值
|
* 生命值
|
||||||
*/
|
*/
|
||||||
@ -125,11 +132,6 @@ interface EnemyInfoBase {
|
|||||||
* 加点量
|
* 加点量
|
||||||
*/
|
*/
|
||||||
point: number;
|
point: number;
|
||||||
|
|
||||||
/**
|
|
||||||
* 特殊属性列表
|
|
||||||
*/
|
|
||||||
special: number[];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
interface EnemyInfo extends EnemyInfoBase {
|
interface EnemyInfo extends EnemyInfoBase {
|
||||||
|
3
src/types/plugin.d.ts
vendored
@ -175,6 +175,9 @@ interface PluginUis {
|
|||||||
/** 是否展示标记的怪物 */
|
/** 是否展示标记的怪物 */
|
||||||
readonly showMarkedEnemy: Ref<boolean>;
|
readonly showMarkedEnemy: Ref<boolean>;
|
||||||
|
|
||||||
|
/** 是否展示已学习的技能 */
|
||||||
|
readonly showStudiedSkill: Ref<boolean>;
|
||||||
|
|
||||||
/** ui栈 */
|
/** ui栈 */
|
||||||
readonly uiStack: Ref<Component[]>;
|
readonly uiStack: Ref<Component[]>;
|
||||||
|
|
||||||
|
5
src/types/status.d.ts
vendored
@ -53,6 +53,11 @@ interface CheckBlockStatus {
|
|||||||
* 缓存信息,是每个怪物受到的光环加成
|
* 缓存信息,是每个怪物受到的光环加成
|
||||||
*/
|
*/
|
||||||
cache: Record<string, DeepReadonly<EnemyBuffCache>>;
|
cache: Record<string, DeepReadonly<EnemyBuffCache>>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 光环信息
|
||||||
|
*/
|
||||||
|
halo: Record<LocString, string[]>;
|
||||||
}
|
}
|
||||||
|
|
||||||
interface DamageStatus {
|
interface DamageStatus {
|
||||||
|
@ -4,8 +4,9 @@
|
|||||||
><div id="desc-list">
|
><div id="desc-list">
|
||||||
<div
|
<div
|
||||||
v-for="(data, k) in desc"
|
v-for="(data, k) in desc"
|
||||||
class="selectable"
|
class="selectable desc-item"
|
||||||
:selected="selected === k"
|
:selected="selected === k"
|
||||||
|
:show="show(data.condition)"
|
||||||
@click="click(k)"
|
@click="click(k)"
|
||||||
>
|
>
|
||||||
<span v-if="show(data.condition)">{{ data.text }}</span>
|
<span v-if="show(data.condition)">{{ data.text }}</span>
|
||||||
@ -31,7 +32,7 @@ function exit() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const content = computed(() => {
|
const content = computed(() => {
|
||||||
return splitText(desc[selected.value].desc);
|
return eval('`' + splitText(desc[selected.value].desc) + '`');
|
||||||
});
|
});
|
||||||
|
|
||||||
function click(key: DescKey) {
|
function click(key: DescKey) {
|
||||||
@ -53,4 +54,9 @@ function show(condition: string) {
|
|||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.desc-item[show='false'] {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
v-model:width="getBoxPos(v).width"
|
v-model:width="getBoxPos(v).width"
|
||||||
v-model:height="getBoxPos(v).height"
|
v-model:height="getBoxPos(v).height"
|
||||||
:resizable="true"
|
:resizable="true"
|
||||||
|
:dragable="true"
|
||||||
>
|
>
|
||||||
<Scroll class="box-scroll" :no-scroll="true">
|
<Scroll class="box-scroll" :no-scroll="true">
|
||||||
<div class="marked-main">
|
<div class="marked-main">
|
||||||
|
@ -34,6 +34,23 @@
|
|||||||
autoScale ? 'ON' : 'OFF'
|
autoScale ? 'ON' : 'OFF'
|
||||||
}}</span
|
}}</span
|
||||||
>
|
>
|
||||||
|
<span
|
||||||
|
class="selectable"
|
||||||
|
:selected="selected === 'showHalo'"
|
||||||
|
@click="click('showHalo')"
|
||||||
|
>展示范围光环: {{
|
||||||
|
showHalo ? 'ON' : 'OFF'
|
||||||
|
}}</span
|
||||||
|
>
|
||||||
|
<span
|
||||||
|
class="selectable"
|
||||||
|
:selected="selected === 'showStudied'"
|
||||||
|
v-if="core.getSkillLevel(11) > 0"
|
||||||
|
@click="click('showStudied')"
|
||||||
|
>展示已学习技能: {{
|
||||||
|
showStudied ? 'ON' : 'OFF'
|
||||||
|
}}</span
|
||||||
|
>
|
||||||
</div></template
|
</div></template
|
||||||
>
|
>
|
||||||
<template #right><span v-html="descText"></span></template
|
<template #right><span v-html="descText"></span></template
|
||||||
@ -46,7 +63,9 @@ import {
|
|||||||
transition,
|
transition,
|
||||||
itemDetail,
|
itemDetail,
|
||||||
autoSkill,
|
autoSkill,
|
||||||
autoScale
|
autoScale,
|
||||||
|
showStudied,
|
||||||
|
showHalo
|
||||||
} from '../plugin/settings';
|
} from '../plugin/settings';
|
||||||
import settingInfo from '../data/settings.json';
|
import settingInfo from '../data/settings.json';
|
||||||
import { has, splitText } from '../plugin/utils';
|
import { has, splitText } from '../plugin/utils';
|
||||||
@ -54,6 +73,8 @@ import Column from '../components/colomn.vue';
|
|||||||
|
|
||||||
type Settings = typeof settingInfo;
|
type Settings = typeof settingInfo;
|
||||||
|
|
||||||
|
const core = window.core;
|
||||||
|
|
||||||
const selected = ref<keyof Settings>('transition');
|
const selected = ref<keyof Settings>('transition');
|
||||||
|
|
||||||
const descText = computed(() => {
|
const descText = computed(() => {
|
||||||
@ -77,6 +98,8 @@ function click(id: keyof Settings) {
|
|||||||
autoSkill.value = !autoSkill.value;
|
autoSkill.value = !autoSkill.value;
|
||||||
} else if (id === 'autoScale') {
|
} else if (id === 'autoScale') {
|
||||||
autoScale.value = !autoScale.value;
|
autoScale.value = !autoScale.value;
|
||||||
|
} else if (id === 'showHalo') {
|
||||||
|
showHalo.value = !showHalo.value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@ -1,6 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="status-bar">
|
<div id="status-bar">
|
||||||
<Box :resizable="true" v-model:width="width" v-model:height="height">
|
<Box
|
||||||
|
:resizable="true"
|
||||||
|
:dragable="true"
|
||||||
|
v-model:width="width"
|
||||||
|
v-model:height="height"
|
||||||
|
>
|
||||||
<Scroll
|
<Scroll
|
||||||
id="status-main"
|
id="status-main"
|
||||||
v-model:update="updateStatus"
|
v-model:update="updateStatus"
|
||||||
@ -9,7 +14,7 @@
|
|||||||
<div id="status-div">
|
<div id="status-div">
|
||||||
<span
|
<span
|
||||||
id="status-floor"
|
id="status-floor"
|
||||||
@click="viewMap"
|
@click.stop="viewMap"
|
||||||
class="button-text"
|
class="button-text"
|
||||||
>{{ floor }}</span
|
>{{ floor }}</span
|
||||||
>
|
>
|
||||||
@ -271,7 +276,7 @@ function openStudy() {}
|
|||||||
|
|
||||||
.status-extra {
|
.status-extra {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 15%;
|
right: 10%;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
font-size: 1.6vw;
|
font-size: 1.6vw;
|
||||||
}
|
}
|
||||||
|
115
src/ui/studied.vue
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
<template>
|
||||||
|
<div id="studied">
|
||||||
|
<Box
|
||||||
|
:resizable="true"
|
||||||
|
:dragable="true"
|
||||||
|
v-model:width="width"
|
||||||
|
v-model:height="height"
|
||||||
|
v-model:left="left"
|
||||||
|
v-model:top="top"
|
||||||
|
>
|
||||||
|
<Scroll :no-scroll="true" style="height: 100%">
|
||||||
|
<div id="studied-main">
|
||||||
|
<div v-for="(num, i) of studied" :key="i">
|
||||||
|
<div id="studied-rough">
|
||||||
|
<right-outlined
|
||||||
|
:folded="!!folded[i]"
|
||||||
|
@click="folded[i] = !folded[i]"
|
||||||
|
id="studied-fold"
|
||||||
|
/>
|
||||||
|
<span
|
||||||
|
>{{ i }}. {{ skills[i] }},剩余{{
|
||||||
|
last[i]
|
||||||
|
}}场战斗</span
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div id="studied-detail" v-if="!folded[i]">
|
||||||
|
{{ hint(num) }}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div></Scroll
|
||||||
|
></Box
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { computed, onMounted, onUpdated, reactive, ref, watch } from 'vue';
|
||||||
|
import Box from '../components/box.vue';
|
||||||
|
import { status } from '../plugin/ui/statusBar';
|
||||||
|
import { RightOutlined } from '@ant-design/icons-vue';
|
||||||
|
import Scroll from '../components/scroll.vue';
|
||||||
|
|
||||||
|
watch(status, n => {});
|
||||||
|
|
||||||
|
let main: HTMLDivElement;
|
||||||
|
|
||||||
|
const width = ref(200);
|
||||||
|
const height = ref(0);
|
||||||
|
const left = ref(window.innerWidth - 300);
|
||||||
|
const top = ref(window.innerHeight - 300);
|
||||||
|
|
||||||
|
const folded = reactive<boolean[]>([]);
|
||||||
|
|
||||||
|
const studied = computed(() => {
|
||||||
|
status.value;
|
||||||
|
return core.status.hero.special?.num ?? [];
|
||||||
|
});
|
||||||
|
|
||||||
|
const last = computed(() => {
|
||||||
|
status.value;
|
||||||
|
return core.status.hero.special?.last ?? [];
|
||||||
|
});
|
||||||
|
|
||||||
|
const skills = computed(() => {
|
||||||
|
const specials = core.getSpecials();
|
||||||
|
return studied.value.map(v => {
|
||||||
|
const s = specials[v - 1][1];
|
||||||
|
// @ts-ignore
|
||||||
|
if (s instanceof Function) return s(core.status.hero.special);
|
||||||
|
else return s;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function hint(number: number) {
|
||||||
|
const specials = core.getSpecials();
|
||||||
|
const s = specials[number - 1][2];
|
||||||
|
// @ts-ignore
|
||||||
|
if (s instanceof Function) return s(core.status.hero.special);
|
||||||
|
else return s;
|
||||||
|
}
|
||||||
|
|
||||||
|
async function calHeight() {
|
||||||
|
await new Promise<void>(resolve => {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
const style = getComputedStyle(main);
|
||||||
|
height.value = parseFloat(style.height);
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
onUpdated(() => {
|
||||||
|
calHeight();
|
||||||
|
});
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
main = document.getElementById('studied-main') as HTMLDivElement;
|
||||||
|
calHeight();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="less" scoped>
|
||||||
|
#studied {
|
||||||
|
font-family: 'normal';
|
||||||
|
font-size: 1vw;
|
||||||
|
}
|
||||||
|
|
||||||
|
#studied-fold {
|
||||||
|
transition: transform 0.2s ease-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
#studied-fold[folded='true'] {
|
||||||
|
transform: rotate(90deg);
|
||||||
|
}
|
||||||
|
</style>
|