diff --git a/project/icons.js b/project/icons.js index 91a378a..2188db4 100644 --- a/project/icons.js +++ b/project/icons.js @@ -119,7 +119,8 @@ var icons_4665ee12_3a1f_44a4_bea3_0fccba634dc1 = "T363": 87, "T364": 88, "T365": 89, - "T397": 90 + "T397": 90, + "T399": 91 }, "animates": { "star": 0, diff --git a/project/maps.js b/project/maps.js index 79fc26a..260b43b 100644 --- a/project/maps.js +++ b/project/maps.js @@ -297,6 +297,7 @@ var maps_90f36752_8815_4be8_b32b_d7fad1d0542e = "396": {"cls":"items","id":"I396"}, "397": {"cls":"items","id":"postman"}, "398": {"cls":"terrains","id":"T397"}, + "399": {"cls":"terrains","id":"T399"}, "20034": {"cls":"tileset","id":"X20034","canPass":true}, "20154": {"cls":"tileset","id":"X20154","canPass":true}, "20216": {"cls":"tileset","id":"X20216","canPass":true}, diff --git a/project/materials/terrains.png b/project/materials/terrains.png index 1676124..4edff72 100644 Binary files a/project/materials/terrains.png and b/project/materials/terrains.png differ diff --git a/project/plugins.js b/project/plugins.js index 27639e8..98f7637 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -21473,6 +21473,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = const ctx = animateAttack.getContext("2d"); core.plugin.playingattack = new Set(); const ctx6 = main.dom.animate2.getContext("2d"); + const changeY = -30 let easy = false; const { imagelighter } = core.plugin.utils; @@ -21625,9 +21626,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = function animateonAttack(name, onenemy) { if (onenemy) { - playanimate(name, 290, 180); + playanimate(name, 290, 180 + changeY); } else { - playanimate(name, 130, 180); + playanimate(name, 130, 180 + changeY); } } @@ -21678,20 +21679,30 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = return sx <= x && x <= dx && sy <= y && y <= dy; }; const pos = [px, py]; - const easybox = makeBox([90, 232], [80, 22]), - easyclosebox = makeBox([290, 232], [40, 22]), - uneasybox = makeBox([265, 330], [65, 20]), - uneasyclosebox = makeBox([290, 350], [40, 20]); + const easybox = makeBox([90, 232 + changeY], [80, 22]), + easyspeedbox = makeBox([290, 232 + changeY], [40, 22]), + uneasybox = makeBox([265, 330 + changeY], [65, 20]), + uneasyspeedbox = makeBox([290, 350 + changeY], [40, 20]), + uneasyClosebox = makeBox([265, 370 + changeY], [65, 20]), + easyClosebox = makeBox([290, 255 + changeY], [40, 20]); if (inRect(pos, easybox) && easy) { easy = false; } else if (inRect(pos, uneasybox) && !easy) { easy = true; } else if ( - (inRect(pos, easyclosebox) && easy) || - (inRect(pos, uneasyclosebox) && !easy) + (inRect(pos, easyspeedbox) && easy) || + (inRect(pos, uneasyspeedbox) && !easy) ) { flags.qukly = !flags.qukly + } else if ((inRect(pos, easyClosebox) && easy) || + (inRect(pos, uneasyClosebox) && !easy) + ) { + core.status.event.id = ""; + core.unregisterAnimationFrame("attackAnimate"); + core.clearMap(ctx); + core.closePanel(); + res(); } }; async function drawAttackAnimate( @@ -21751,18 +21762,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, hero.name, 127, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" ); core.setTextAlign(ctx, "left"); - core.drawIcon(ctx, "hp", 70, 210, 16, 16); + core.drawIcon(ctx, "hp", 70, 210 + changeY, 16, 16); core.fillBoldText( ctx, "生命 " + core.formatBigNumber(heroInfo.hp, true), 90, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21772,13 +21783,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "详细模式", 90, - 250, + 250 + changeY, "#FFFF60", "#000000", "bold 18px Verdana" ); - core.strokeRect(ctx, 112, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 112, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && heroDiffList[turn].hp < 0 ? imagelighter(core.material.images.images["hero.webp"]) : @@ -21796,7 +21807,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 112, - 159, + 159 + changeY, 32, 48 ); @@ -21806,7 +21817,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, enemyInfo.name, 289, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -21814,7 +21825,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.setTextAlign(ctx, "right"); if (enemyInfo.cls === "enemys") { - core.strokeRect(ctx, 272, 175, 32, 32, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 175 + changeY, 32, 32, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -21832,12 +21843,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 32, 272, - 175, + 175 + changeY, 32, 32 ); } else { - core.strokeRect(ctx, 272, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -21855,18 +21866,18 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 272, - 159, + 159 + changeY, 32, 48 ); } - core.drawIcon(ctx, "hp", 330, 210, 16, 16); + core.drawIcon(ctx, "hp", 330, 210 + changeY, 16, 16); core.fillBoldText( ctx, core.formatBigNumber(enemyInfo.hp, true) + " 生命", 330, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -21875,17 +21886,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, flags.qukly ? "正常" : "极速", 330, - 250, + 250 + changeY, + "#FFFF60", + "#000000", + "bold 18px Verdana" + ); + core.fillBoldText( + ctx, + "跳过", + 330, + 273 + changeY, "#FFFF60", "#000000", "bold 18px Verdana" ); - core.fillBoldText( ctx, "V", 219, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 48px pala" @@ -21894,7 +21913,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "s", 231, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 36px pala" @@ -21904,26 +21923,26 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let enemynow = Math.min(100 + (enemyInfo.now / oneTurn) * 215, 315); ctx.fillStyle = "#FFFFFF"; ctx.beginPath(); - ctx.moveTo(enemynow, 120); - ctx.lineTo(enemynow + 5, 110); - ctx.lineTo(enemynow - 5, 110); + ctx.moveTo(enemynow, 120 + changeY); + ctx.lineTo(enemynow + 5, 110 + changeY); + ctx.lineTo(enemynow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, 'T367', enemynow - 16, 74, 32, 32) + core.drawIcon(ctx, 'T397', enemynow - 16, 84 + changeY, 32, 32) - core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5); + core.drawLine(ctx, 100, 125 + changeY, 315, 125 + changeY, "#FFFFFF", 5); equipInfo.forEach(function (v) { if (!attack && !onAttack) v.now += v.speed; let vnow = Math.min(100 + (v.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(vnow, 120); - ctx.lineTo(vnow + 5, 110); - ctx.lineTo(vnow - 5, 110); + ctx.moveTo(vnow, 120 + changeY); + ctx.lineTo(vnow + 5, 110 + changeY); + ctx.lineTo(vnow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, v.id, vnow - 16, 54, 32, 32); + core.drawIcon(ctx, v.id, vnow - 16, 84 + changeY, 32, 32); }); if (!attack && !onAttack && !flags.qukly) heroInfo.now += hero.speed; let heronow = Math.min(100 + (heroInfo.now / oneTurn) * 215, 315); @@ -21934,18 +21953,8 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.closePath(); ctx.fill(); - core.drawImage( - ctx, - "hero.webp", - 0, - 0, - 32, - 48, - heronow - 16, - 58, - 32, - 48 - ); + core.drawIcon(ctx, 'T399', heronow - 16 - 4, 84 - 4 + changeY, 40, 40) + } else { core.fillRect(ctx, 64, 52, 288, 320, "rgba(0,0,0,0.5)"); core.strokeRect(ctx, 64, 52, 288, 320, "rgba(255,255,255,0.5)", 4); @@ -21954,25 +21963,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, hero.name, 127, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" ); core.setTextAlign(ctx, "left"); - core.drawIcon(ctx, "hp", 70, 210, 16, 16); - core.drawIcon(ctx, "atk", 70, 230, 16, 16); - core.drawIcon(ctx, "def", 70, 250, 16, 16); - core.drawIcon(ctx, "I374", 70, 270, 16, 16); - core.drawIcon(ctx, "I375", 70, 290, 16, 16); - core.drawIcon(ctx, "mdef", 70, 310, 16, 16); - core.drawIcon(ctx, "amulet", 70, 330, 16, 16); - core.drawIcon(ctx, "jumpShoes", 70, 350, 16, 16); + core.drawIcon(ctx, "hp", 70, 210 + changeY, 16, 16); + core.drawIcon(ctx, "atk", 70, 230 + changeY, 16, 16); + core.drawIcon(ctx, "def", 70, 250 + changeY, 16, 16); + core.drawIcon(ctx, "I374", 70, 270 + changeY, 16, 16); + core.drawIcon(ctx, "I375", 70, 290 + changeY, 16, 16); + core.drawIcon(ctx, "mdef", 70, 310 + changeY, 16, 16); + core.drawIcon(ctx, "amulet", 70, 330 + changeY, 16, 16); + core.drawIcon(ctx, "jumpShoes", 70, 350 + changeY, 16, 16); core.fillBoldText( ctx, "生命 " + core.formatBigNumber(heroInfo.hp, true), 90, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21982,7 +21991,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "攻击 " + core.formatBigNumber(heroInfo.atk), 90, - 245, + 245 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -21991,7 +22000,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "防御 " + core.formatBigNumber(heroInfo.def), 90, - 265, + 265 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22000,7 +22009,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法强 " + core.formatBigNumber(heroInfo.spell), 90, - 285, + 285 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22009,7 +22018,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法攻 " + core.formatBigNumber(heroInfo.matk), 90, - 305, + 305 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22018,7 +22027,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "护盾 " + core.formatBigNumber(heroInfo.mhp), 90, - 325, + 325 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22027,7 +22036,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "法抗 " + heroInfo.mdef + "%", 90, - 345, + 345 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22036,13 +22045,13 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "速度 " + core.formatBigNumber(heroInfo.speed), 90, - 365, + 365 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" ); - core.strokeRect(ctx, 112, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 112, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && heroDiffList[turn].hp < 0 ? imagelighter(core.material.images.images["hero.webp"]) : @@ -22060,7 +22069,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 112, - 159, + 159 + changeY, 32, 48 ); @@ -22070,7 +22079,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, enemyInfo.name, 289, - 148, + 148 + changeY, "#FFFFFF", "#000000", "bold 14px Verdana" @@ -22078,7 +22087,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.setTextAlign(ctx, "right"); if (enemyInfo.cls === "enemys") { - core.strokeRect(ctx, 272, 175, 32, 32, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 175 + changeY, 32, 32, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -22096,12 +22105,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 32, 272, - 175, + 175 + changeY, 32, 32 ); } else { - core.strokeRect(ctx, 272, 159, 32, 48, "rgba(255,255,255,1)", 1); + core.strokeRect(ctx, 272, 159 + changeY, 32, 48, "rgba(255,255,255,1)", 1); let img = attack && enemyDiffList[turn].hp < 0 ? imagelighter(core.getBlockInfo(enemyInfo.id).image) : @@ -22119,22 +22128,22 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = 32, 48, 272, - 159, + 159 + changeY, 32, 48 ); } - core.drawIcon(ctx, "hp", 330, 210, 16, 16); - core.drawIcon(ctx, "atk", 330, 230, 16, 16); - core.drawIcon(ctx, "def", 330, 250, 16, 16); - core.drawIcon(ctx, "I374", 330, 270, 16, 16); - core.drawIcon(ctx, "amulet", 330, 290, 16, 16); - core.drawIcon(ctx, "jumpShoes", 330, 310, 16, 16); + core.drawIcon(ctx, "hp", 330, 210 + changeY, 16, 16); + core.drawIcon(ctx, "atk", 330, 230 + changeY, 16, 16); + core.drawIcon(ctx, "def", 330, 250 + changeY, 16, 16); + core.drawIcon(ctx, "I374", 330, 270 + changeY, 16, 16); + core.drawIcon(ctx, "amulet", 330, 290 + changeY, 16, 16); + core.drawIcon(ctx, "jumpShoes", 330, 310 + changeY, 16, 16); core.fillBoldText( ctx, core.formatBigNumber(enemyInfo.hp, true) + " 生命", 330, - 225, + 225 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22143,7 +22152,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.atk) + " 攻击", 330, - 245, + 245 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22152,7 +22161,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.def) + " 防御", 330, - 265, + 265 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22161,7 +22170,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, (enemyInfo.spell ?? 0) + " 法强", 330, - 285, + 285 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22170,7 +22179,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, (enemyInfo.mdef ?? 0) * 100 + "% 法抗", 330, - 305, + 305 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22179,7 +22188,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, core.formatBigNumber(enemyInfo.speed) + " 速度", 330, - 325, + 325 + changeY, "#FFFFFF", "#000000", "bold 14px Arial" @@ -22188,7 +22197,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "简易模式", 330, - 345, + 345 + changeY, "#FFFF60", "#000000", "bold 16px Verdana" @@ -22197,17 +22206,25 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, flags.qukly ? "正常" : "极速", 330, - 365, + 365 + changeY, + "#FFFF60", + "#000000", + "bold 16px Verdana" + ); + core.fillBoldText( + ctx, + "跳过", + 330, + 385 + changeY, "#FFFF60", "#000000", "bold 16px Verdana" ); - core.fillBoldText( ctx, "V", 219, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 48px pala" @@ -22216,7 +22233,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx, "s", 231, - 183, + 183 + changeY, "#FFFFFF", "#000000", "bold 36px pala" @@ -22226,74 +22243,37 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = let enemynow = Math.min(100 + (enemyInfo.now / oneTurn) * 215, 315); ctx.fillStyle = "#FFFFFF"; ctx.beginPath(); - ctx.moveTo(enemynow, 120); - ctx.lineTo(enemynow + 5, 110); - ctx.lineTo(enemynow - 5, 110); + ctx.moveTo(enemynow, 120 + changeY); + ctx.lineTo(enemynow + 5, 110 + changeY); + ctx.lineTo(enemynow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); + core.drawIcon(ctx, 'T397', enemynow - 16, 84 + changeY, 32, 32) - if (enemyInfo.cls === "enemys") { - core.drawImage( - ctx, - core.getBlockInfo(enemyInfo.id).image, - 32, - core.getBlockInfo(enemyInfo.id).posY * 32, - 32, - 32, - enemynow - 16, - 74, - 32, - 32 - ); - } else { - core.drawImage( - ctx, - core.getBlockInfo(enemyInfo.id).image, - 32, - core.getBlockInfo(enemyInfo.id).posY * 48, - 32, - 19, - enemynow - 16, - 58, - 32, - 48 - ); - } - core.drawLine(ctx, 100, 125, 315, 125, "#FFFFFF", 5); + core.drawLine(ctx, 100, 125 + changeY, 315, 125 + changeY, "#FFFFFF", 5); equipInfo.forEach(function (v) { if (!attack && !onAttack) v.now += v.speed; let vnow = Math.min(100 + (v.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(vnow, 120); - ctx.lineTo(vnow + 5, 110); - ctx.lineTo(vnow - 5, 110); + ctx.moveTo(vnow, 120 + changeY); + ctx.lineTo(vnow + 5, 110 + changeY); + ctx.lineTo(vnow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawIcon(ctx, v.id, vnow - 16, 54, 32, 32); + core.drawIcon(ctx, v.id, vnow - 16, 84 + changeY, 32, 32); }); if (!attack && !onAttack && !flags.qukly) heroInfo.now += hero.speed; let heronow = Math.min(100 + (heroInfo.now / oneTurn) * 215, 315); ctx.beginPath(); - ctx.moveTo(heronow, 120); - ctx.lineTo(heronow + 5, 110); - ctx.lineTo(heronow - 5, 110); + ctx.moveTo(heronow, 120 + changeY); + ctx.lineTo(heronow + 5, 110 + changeY); + ctx.lineTo(heronow - 5, 110 + changeY); ctx.closePath(); ctx.fill(); - core.drawImage( - ctx, - "hero.webp", - 0, - 0, - 32, - 48, - heronow - 16, - 58, - 32, - 48 - ); + core.drawIcon(ctx, 'T399', heronow - 16 - 4, 84 - 4 + changeY, 40, 40) } let nowattacking = false; if (heroInfo.now >= oneTurn && !heroInfo.isAttack) { @@ -22323,7 +22303,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = Dove.MorePerform.ShowDamagePop.PopDamage( ctx, // 默认画布名称 270, // 英雄位置 x - 160, // 英雄位置 y + 160 + changeY, // 英雄位置 y text, // 伤害值 18, // 默认字体大小 "Arial", //默认字体 @@ -22348,7 +22328,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = Dove.MorePerform.ShowDamagePop.PopDamage( ctx, // 默认画布名称 110, // 英雄位置 x - 160, // 英雄位置 y + 160 + changeY, // 英雄位置 y text, // 伤害值 18, // 默认字体大小 "Arial", //默认字体