怪物手册完毕

This commit is contained in:
strawberry 2025-08-25 16:29:24 +08:00
parent 20465e0e97
commit a7a6468a71
2 changed files with 41 additions and 60 deletions

View File

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

View File

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