diff --git a/project/functions.js b/project/functions.js index 85f4ccb..6be4614 100644 --- a/project/functions.js +++ b/project/functions.js @@ -431,6 +431,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = case "kill": if (a.kill === enemyId && (!a.floorIds || a.floorIds.includes(core.status.floorId))) a.has++ + else if (!a.kill && (!a.floorIds || a.floorIds.includes(core.status.floorId))) a.has++ break case "killLocs": if (core.status.floorId === a.floorId) { @@ -439,9 +440,7 @@ var functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = }) } break - case "killCount": - if (!a.floorIds || a.floorIds.includes(core.status.floorId)) a.has++ - break + case "killSpecial": if (!a.floorIds || a.floorIds.includes(core.status.floorId)) { diff --git a/project/plugins.js b/project/plugins.js index f846b0b..2dc9cab 100644 --- a/project/plugins.js +++ b/project/plugins.js @@ -22036,18 +22036,15 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.right = document.createElement("canvas") this.tempLeft = document.createElement("canvas") this.tempRight = document.createElement("canvas") - this.left.width = 300; - this.left.height = 400; - this.right.width = 300; - this.right.height = 400; - this.tempLeft.width = 300; - this.tempLeft.height = 400; - this.tempRight.width = 300; - this.tempRight.height = 400; + this.left = this.left.getContext("2d") this.right = this.right.getContext("2d") this.tempLeft = this.tempLeft.getContext("2d") this.tempRight = this.tempRight.getContext("2d") + core.maps._setHDCanvasSize(this.left, 300, 400) + core.maps._setHDCanvasSize(this.right, 300, 400) + core.maps._setHDCanvasSize(this.tempLeft, 300, 400) + core.maps._setHDCanvasSize(this.tempRight, 300, 400) this.animateObjs = {} this.atk = 0 this.speed = 0 @@ -22746,6 +22743,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } async turnleft(page) { if (this.page <= 1) return + if (!this.paperpages[page - 1]) this.paperpages[page - 1] = [this.paperTexture('left'), this.paperTexture('right')] this.isAnimate = true bookInfo.drawTempLeft(page - 1) bookInfo.drawTempRight(page - 1) @@ -23355,9 +23353,9 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.shadowOffsetY = 0; core.drawBoxAnimate() // 绘制左页 - core.drawImage(ctx, this.paperpages[this.page - 1][0], 0, 0, 300 - this.ani.x / (this.width * 2), 400, dx, dy, 300 - this.ani.x / (this.width * 2), this.height); + core.drawImage(ctx, this.paperpages[this.page - 1][0], this.ani.x / (this.width * 2) * 300, 0, 300 - this.ani.x / (this.width * 2) * 300, 400, dx + this.ani.x / (this.width * 2) * 300, dy, 300 - this.ani.x / (this.width * 2) * 300, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.left.canvas, 0, 0, 300 - this.ani.x / (this.width * 2), 400, dx, dy, 300 - this.ani.x / (this.width * 2), this.height); + core.drawImage(ctx, bookInfo.left.canvas, 0, 0, bookInfo.left.canvas.width, bookInfo.left.canvas.height, dx, dy, this.width, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -23365,7 +23363,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // 绘制右页 core.drawImage(ctx, this.paperpages[this.page - 1][1], Math.max(0, this.ani.x - 300), 0, Math.min(600 - this.ani.x, 300), 400, dx + this.width + Math.max(0, this.ani.x - 300), dy, Math.min(600 - this.ani.x, 300), this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.right.canvas, Math.max(0, this.ani.x - 300), 0, Math.min(600 - this.ani.x, 300), 400, dx + this.width + Math.max(0, this.ani.x - 300), dy, Math.min(600 - this.ani.x, 300), this.height); + core.drawImage(ctx, bookInfo.right.canvas, 0, 0, bookInfo.right.canvas.width, bookInfo.right.canvas.height, dx + this.width, dy, this.width, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -23373,7 +23371,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //绘制上一页左页 core.drawImage(ctx, this.paperpages[page - 1][0], 0, 0, this.ani.x / (this.width * 2) * 300, 400, dx, dy, this.ani.x / 2, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.tempLeft.canvas, 0, 0, this.ani.x / (this.width * 2) * 300, 400, dx, dy, this.ani.x / 2, this.height); + core.drawImage(ctx, bookInfo.tempLeft.canvas, 0, 0, this.ani.x / (this.width * 2) * bookInfo.tempLeft.canvas.width, bookInfo.tempLeft.canvas.height, dx, dy, this.ani.x / 2, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -23381,7 +23379,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //绘制翻起的右页 core.drawImage(ctx, this.paperpages[page - 1][1], 300 - this.ani.x / (this.width * 2) * 300, 0, this.ani.x / (this.width * 2) * 300, 400, this.ani.x / 2 + dx, dy, this.ani.x / 2, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.tempRight.canvas, 300 - this.ani.x / (this.width * 2) * 300, 0, this.ani.x / (this.width * 2) * 300, 400, this.ani.x / 2 + dx, dy, this.ani.x / 2, this.height); + core.drawImage(ctx, bookInfo.tempRight.canvas, bookInfo.tempRight.canvas.width - this.ani.x / (this.width * 2) * bookInfo.tempRight.canvas.width, 0, this.ani.x / (this.width * 2) * bookInfo.tempRight.canvas.width, bookInfo.tempRight.canvas.height, this.ani.x / 2 + dx, dy, this.ani.x / 2, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -23422,6 +23420,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = } async turnright(page) { if (this.page >= this.pagemax) return + if (!this.paperpages[page - 1]) this.paperpages[page - 1] = [this.paperTexture('left'), this.paperTexture('right')] this.isAnimate = true bookInfo.drawTempLeft(page - 1) bookInfo.drawTempRight(page - 1) @@ -24033,7 +24032,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // 绘制左页 core.drawImage(ctx, this.paperpages[this.page - 1][0], 0, 0, 300 - Math.max(0, this.ani.x - this.width) / this.width * 300, 400, dx, dy, 300 - Math.max(0, this.ani.x - this.width) / this.width * 300, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.left.canvas, 0, 0, 300, 400, dx, dy, this.width, this.height); + core.drawImage(ctx, bookInfo.left.canvas, 0, 0, bookInfo.left.canvas.width, bookInfo.left.canvas.height, dx, dy, this.width, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -24041,7 +24040,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // 绘制右页 core.drawImage(ctx, this.paperpages[this.page - 1][1], 0, 0, 300 - this.ani.x / (this.width * 2) * 300, 400, dx + this.width, dy, 300 - this.ani.x / (this.width * 2) * 300, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.right.canvas, 0, 0, 300, 400, dx + this.width, dy, this.width, this.height); + core.drawImage(ctx, bookInfo.right.canvas, 0, 0, bookInfo.right.canvas.width, bookInfo.right.canvas.height, dx + this.width, dy, this.width, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -24049,7 +24048,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //绘制翻起的左页 core.drawImage(ctx, this.paperpages[page - 1][0], 0, 0, this.ani.x / (this.width * 2) * 300, 400, 676 - dx - this.ani.x, dy, this.ani.x / 2, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.tempLeft.canvas, 0, 0, this.ani.x / (this.width * 2) * 300, 400, 676 - dx - this.ani.x, dy, this.ani.x / 2, this.height); + core.drawImage(ctx, bookInfo.tempLeft.canvas, 0, 0, this.ani.x / (this.width * 2) * bookInfo.tempLeft.canvas.width, bookInfo.tempLeft.canvas.height, 676 - dx - this.ani.x, dy, this.ani.x / 2, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; ctx.shadowOffsetX = 0; @@ -24057,7 +24056,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = //绘制下一页右页 core.drawImage(ctx, this.paperpages[page - 1][1], 300 - this.ani.x / (this.width * 2) * 300, 0, this.ani.x / (this.width * 2) * 300, 400, 676 - dx - this.ani.x / 2, dy, this.ani.x / 2, this.height); ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.tempRight.canvas, 300 - this.ani.x / (this.width * 2) * 300, 0, this.ani.x / (this.width * 2) * 300, 400, 676 - dx - this.ani.x / 2, dy, this.ani.x / 2, this.height); + core.drawImage(ctx, bookInfo.tempRight.canvas, bookInfo.tempRight.canvas.width - this.ani.x / (this.width * 2) * bookInfo.tempRight.canvas.width, 0, this.ani.x / (this.width * 2) * bookInfo.tempRight.canvas.width, bookInfo.tempRight.canvas.height, 676 - dx - this.ani.x / 2, dy, this.ani.x / 2, this.height); ctx.shadowColor = "rgba(0,0,0,0.5)"; ctx.shadowBlur = 10; @@ -24113,7 +24112,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = curveCtx.clearRect(0, 0, 300, 400); // 创建带毛边的路径 - const createTornEdgePath = (ctx, offsetY = 0) => { + const createTornEdgePath = (ctx) => { ctx.beginPath(); // 生成更自然的毛边函数 @@ -24159,43 +24158,45 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = ctx.quadraticCurveTo(cpX, cpY, p.x, p.y); } }; - ctx.moveTo(0, offsetY); + ctx.moveTo(0, 0); // 上边缘曲线(添加毛边) - createTornEdge(0, offsetY, 300, offsetY, 16, 24); - + createTornEdge(0, 0, 300, 0, Math.random() * 10 + 10, Math.random() * 60 + 10); + ctx.lineTo(300, 0) // 右侧边缘(根据方向决定是否添加毛边) if (dir === "right") { - createTornEdge(300, offsetY, 300, 400 + offsetY, 16, 24); + createTornEdge(300, 0, 300, 400, Math.random() * 10 + 10, Math.random() * 60 + 10); + ctx.lineTo(300, 400) } else { - ctx.lineTo(300, 400 + offsetY); + ctx.lineTo(300, 400); } // 下边缘曲线(添加毛边) - createTornEdge(300, 400 + offsetY, 0, 400 + offsetY, 16, 24); - + createTornEdge(300, 400, 0, 400, Math.random() * 10 + 10, Math.random() * 60 + 10); + ctx.lineTo(0, 400) // 左侧边缘(根据方向决定是否添加毛边) if (dir === "left") { - createTornEdge(0, 400 + offsetY, 0, offsetY, 16, 24); + createTornEdge(0, 400, 0, 0, Math.random() * 10 + 10, Math.random() * 60 + 10); + ctx.lineTo(0, 0) } else { - ctx.lineTo(0, offsetY); + ctx.lineTo(0, 0); } ctx.closePath(); }; // 创建上蒙版(顶部有毛边) - createTornEdgePath(curveCtx, 0); + createTornEdgePath(curveCtx); curveCtx.fillStyle = 'white'; curveCtx.fill(); // 创建下蒙版(底部有毛边) curveCtx.clearRect(0, 0, 300, 400); - createTornEdgePath(curveCtx, 0); + createTornEdgePath(curveCtx); curveCtx.fillStyle = 'white'; curveCtx.fill(); @@ -24555,7 +24556,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // 超真实细节系统 const addHyperRealisticDetails = () => { // 3.1 纤维纹理(模拟羊皮纸纤维) - for (let i = 0; i < 200; i++) { + for (let i = 0; i < 2000; i++) { const x = Math.random() * 300; const y = Math.random() * 400; const length = 1 + Math.random() * 4; @@ -25501,24 +25502,12 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = // 重置阴影 ctx.shadowColor = "transparent"; - core.drawImage(ctx, bookInfo.left.canvas, 0, 0, 300, 400, dx, dy, this.width, this.height) - core.drawImage(ctx, bookInfo.right.canvas, 0, 0, 300, 400, dx + this.width, dy, this.width, this.height) + core.drawImage(ctx, bookInfo.left.canvas, 0, 0, bookInfo.left.canvas.width, bookInfo.left.canvas.height, dx, dy, this.width, this.height) + core.drawImage(ctx, bookInfo.right.canvas, 0, 0, bookInfo.right.canvas.width, bookInfo.right.canvas.height, dx + this.width, dy, this.width, this.height) ctx.restore(); } - setPage(num) { - if (num === 1) { - this.paperpages = [ - [this.paperTexture('left'), this.paperTexture('right')] - ] - } else { - for (let i = 1; i < num; i++) { - this.paperpages.push([this.paperTexture('left'), this.paperTexture('right')]) - } - } - this.pagemax = num - } clearPage() { this.paperpages.forEach(v => { @@ -25541,7 +25530,10 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = bookInfo.clear() this.page = 1 book.style.display = 'none' - this.setPage(1) + this.paperpages = [ + [this.paperTexture('left'), this.paperTexture('right')] + ] + this.pagemax = 1 } @@ -25559,7 +25551,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = core.clearUI() bookInfo.init(floorId) core.book.update() - if (bookInfo.enemys.length > 1) core.book.setPage(bookInfo.enemys.length) + if (bookInfo.enemys.length > 1) core.book.pagemax = bookInfo.enemys.length } }, "存读档": function () { @@ -28366,11 +28358,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = this.count = info.count this.has = info.has ?? 0 this.operator = info.operator - } else if (info.type === "killCount") { - this.floorIds = info.floorIds - this.count = info.count - this.has = info.has ?? 0 - this.operator = info.operator } else if (info.type === "killSpecial") { this.floorIds = info.floorIds this.killSpecial = info.killSpecial @@ -28405,7 +28392,7 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = else if (this.type === "checkBlock") return this.checkInfo(this.count, this.has = core.searchBlock(this.checkBlock, this.floorIds).length) else if (this.type === "checkEnemyType") return this.checkInfo(this.count, this.has = core.searchBlockWithFilter(block => block.event.cls.startsWith("enemy") && block.event.type === this.checkEnemyType, this.floorIds).length) else if (this.type === "killAll") return this.has = core.searchBlockWithFilter(block => block.event.cls.startsWith("enemy"), this.floorIds).length, this.has === 0 - else if (this.type === "specialBlock" || this.type === "changeFloor" || this.type === "kill" || this.type === "killSpecial" || this.type === "killLocs" || this.type === "killCount") return this.checkInfo(this.count, this.has) + else if (this.type === "specialBlock" || this.type === "changeFloor" || this.type === "kill" || this.type === "killSpecial" || this.type === "killLocs") return this.checkInfo(this.count, this.has) else if (this.type === "arrival") return Boolean(this.has) else if (this.type === "outer") return false @@ -28465,11 +28452,6 @@ var plugins_bb40132b_638b_4a9f_b028_d3fe47acc8d1 = info.count = this.locs.length info.has = this.has info.operator = this.operator - } else if (info.type === "killCount") { - info.floorIds = this.floorIds - info.count = this.count - info.has = this.has - info.operator = this.operator } else if (info.type === "killSpecial") { info.floorIds = this.floorIds info.killSpecial = this.killSpecial