fix game 7

This commit is contained in:
2026-06-13 16:12:15 +00:00
parent 933c751da6
commit 680ccdb618
3 changed files with 36 additions and 28 deletions
+3 -2
View File
@@ -76,7 +76,7 @@
"/Game/img/ViolentCrime/Rocket-broke-2.png",
"/Game/img/ViolentCrime/Rocket-broke-3.png"
],
"balloonBossMissionTimeSec": 0,
"balloonBossMissionTimeSec": 60,
"balloonBossBossImageUrl": "/Game/img/MegaVirus/boss.png",
"balloonBossPlayerBalloonImageUrls": [
"/Game/img/MegaVirus/balloon-1.png",
@@ -86,5 +86,6 @@
"/Game/img/MegaVirus/balloon-5.png",
"/Game/img/MegaVirus/balloon-6.png"
],
"balloonBossPlayerBalloonFallbackUrl": "/Game/img/MegaVirus/Artboard%209.png"
"balloonBossPlayerBalloonFallbackUrl": "/Game/img/MegaVirus/Artboard%209.png",
"balloonBossBalloonsPerPlayer": 3
}
+32 -25
View File
@@ -15930,16 +15930,31 @@
else o.balloonBossBotNextFire = 0.8 + Math.random() * 0.9;
if (o.balloonBossBotNextFire <= 0) {
o.balloonBossBotNextFire = 0.9 + Math.random() * 1.1;
const delayMs = balloonBossFireDelayMsPlay();
const dx = bossCx - o.balloonBossCx;
const dy = bossCy - o.balloonBossCy;
const L = Math.hypot(dx, dy) || 1;
const bspd = 500 + Math.random() * 90;
let bvx;
let bvy;
let bdelay;
if (isMegaVirusMissionShellMapPlay()) {
/** Mega Virus: บอทยิงตามมุม "ลูกศรวงกลม" ของตัวเอง (ทันที) เหมือนผู้เล่น — ไม่ auto-aim ใส่บอส */
const aim = (typeof o.balloonBossAimRad === 'number' && Number.isFinite(o.balloonBossAimRad))
? o.balloonBossAimRad
: Math.atan2(bossCy - o.balloonBossCy, bossCx - o.balloonBossCx);
bvx = Math.cos(aim) * bspd;
bvy = Math.sin(aim) * bspd;
bdelay = 0;
} else {
const dx = bossCx - o.balloonBossCx;
const dy = bossCy - o.balloonBossCy;
const L = Math.hypot(dx, dy) || 1;
bvx = (dx / L) * bspd;
bvy = (dy / L) * bspd;
bdelay = balloonBossFireDelayMsPlay();
}
balloonBossPendingShots.push({
releaseAt: performance.now() + delayMs,
releaseAt: performance.now() + bdelay,
sx: o.balloonBossCx, sy: o.balloonBossCy,
vx: (dx / L) * bspd,
vy: (dy / L) * bspd,
vx: bvx,
vy: bvy,
ownerId: bid,
});
}
@@ -16198,23 +16213,15 @@
const wantFire = !isChatFocused() && !!keys['Space'] && !me.balloonBossEliminated;
if (wantFire && balloonBossPlayerFireCd <= 0 && me.balloonBossCy != null) {
balloonBossPlayerFireCd = 0.35;
const delayMs = balloonBossFireDelayMsPlay();
/** ยิงตามมุม "ลูกศรวงกลม" เสมอ (me.balloonBossAimRad อัปเดตทุกเฟรม) — fallback เล็งบอสเฉพาะตอนมุมยังไม่พร้อม */
/** Mega Virus: ยิงทันที (delay 0) ไม่งั้นลูกศรหมุนต่อระหว่างหน่วง → กระสุนโผล่ไม่ตรงลูกศร */
const delayMs = isMegaVirusMissionShellMapPlay() ? 0 : balloonBossFireDelayMsPlay();
const bspd = 480;
let vx;
let vy;
if (isMegaVirusMissionShellMapPlay()) {
const aim = (typeof me.balloonBossAimRad === 'number' && Number.isFinite(me.balloonBossAimRad))
? me.balloonBossAimRad
: Math.atan2(bossC.cy - me.balloonBossCy, bossC.cx - me.balloonBossCx);
vx = Math.cos(aim) * bspd;
vy = Math.sin(aim) * bspd;
} else {
const dx = bossC.cx - me.balloonBossCx;
const dy = bossC.cy - me.balloonBossCy;
const L = Math.hypot(dx, dy) || 1;
vx = (dx / L) * bspd;
vy = (dy / L) * bspd;
}
const aim = (typeof me.balloonBossAimRad === 'number' && Number.isFinite(me.balloonBossAimRad))
? me.balloonBossAimRad
: Math.atan2(bossC.cy - me.balloonBossCy, bossC.cx - me.balloonBossCx);
const vx = Math.cos(aim) * bspd;
const vy = Math.sin(aim) * bspd;
balloonBossPendingShots.push({
releaseAt: now + delayMs,
sx: me.balloonBossCx, sy: me.balloonBossCy,
@@ -16610,10 +16617,10 @@
const sc = Math.min(maxBox / iw, maxBox / ih);
const dw = iw * sc;
const dh = ih * sc;
/** หางฟอง (Artboard +Y) หมุนตาม angRing — tail ชี้ทิศยิง */
/** หางฟอง (Artboard 9: หางอยู่มุมขวาล่าง ~32.7°/0.5714rad จาก +X ไม่ใช่ +Y) หมุนให้ "หางชี้ตรงทิศยิง" = angRing */
ctx.save();
ctx.translate(sx, bubbleCy);
ctx.rotate(angRing - Math.PI / 2);
ctx.rotate(angRing - 0.5714);
ctx.drawImage(ringImg, -dw / 2, -dh / 2, dw, dh);
ctx.restore();
}
+1 -1
View File
@@ -5180,7 +5180,7 @@
<script src="/app-base.js?v=2"></script>
<script src="/Game/socket.io/socket.io.js"></script>
<script src="js/version.js?v=0.0306"></script>
<script src="js/play.js?v=0.006131803"></script>
<script src="js/play.js?v=0.006131806"></script>
<div class="version-tag">v —</div>
<style id="qc-howto-mg2-fix">
/* HOW TO PLAY ของ quiz_carry (Minigame-4) -> ให้เหมือน Minigame-2 (gch-mg2-mock)