diff --git a/app/game/page.tsx b/app/game/page.tsx index cc57ef9..4f2e86a 100644 --- a/app/game/page.tsx +++ b/app/game/page.tsx @@ -470,7 +470,7 @@ function PuaPanel({ gameReady, hc, waveStarted }: { gameReady: boolean; hc: numb // ── 主游戏页面 ──────────────────────────────────────────────────────────────── export default function GamePage() { const gameRef = useRef<{ destroy: (removeCanvas: boolean) => void } | null>(null) - const [hc, setHc] = useState(150) + const [hc, setHc] = useState(170) const [selectedTower, setSelectedTower] = useState(null) const [gameReady, setGameReady] = useState(false) const [waveStarted, setWaveStarted] = useState(false) diff --git a/game/constants.ts b/game/constants.ts index 7547106..c910b51 100644 --- a/game/constants.ts +++ b/game/constants.ts @@ -12,10 +12,10 @@ export const HUD_HEIGHT = 60 export const WAVES_PER_MAP = 5 // 游戏初始数值 -export const INITIAL_HC = 150 // 降低初始HC:200→150,提高前期资源压力 +export const INITIAL_HC = 170 // 初始资源:150→170 export const INITIAL_KPI = 100 export const STAMINA_MAX = 100 -export const STAMINA_REGEN = 5 // 每秒恢复量 +export const STAMINA_REGEN = 8 // 摸鱼恢复速度:5→8/s,减少卡顿感 export const COFFEE_COST = 10 // 瑞幸咖啡 HC 成本 // 颜色常量(Phaser 使用 0x 十六进制) diff --git a/game/enemies/BossVP.ts b/game/enemies/BossVP.ts index 01265a6..3238fe5 100644 --- a/game/enemies/BossVP.ts +++ b/game/enemies/BossVP.ts @@ -15,8 +15,8 @@ export class BossVP extends EnemyBase { speedMultiplier: number = 1.0, hpMultiplier: number = 1.0 ) { - // HP: 800→1200, speed: 40→55, kpiDamage: 30→40, hcReward: 150→100 - super(scene, pathPoints, 1200, 55, 40, 100, 'enemy-boss', speedMultiplier, hpMultiplier) + // HP: 900, speed: 45, kpiDamage: 35, hcReward: 120 + super(scene, pathPoints, 900, 45, 35, 120, 'enemy-boss', speedMultiplier, hpMultiplier) this.onDestroyTower = onDestroyTower const bossSize = this.cellW * 1.3 this.imageSprite.setDisplaySize(bossSize, bossSize) diff --git a/game/enemies/FreshGraduate.ts b/game/enemies/FreshGraduate.ts index 245327a..de2335b 100644 --- a/game/enemies/FreshGraduate.ts +++ b/game/enemies/FreshGraduate.ts @@ -9,8 +9,9 @@ export class FreshGraduate extends EnemyBase { speedMultiplier: number = 1.0, hpMultiplier: number = 1.0 ) { - // HP: 30→50, speed: 120→145, kpiDamage: 2→3, hcReward: 10→8 - super(scene, pathPoints, 50, 145, 3, 8, 'enemy-fresh', speedMultiplier, hpMultiplier) + // HP: 40, speed: 130, kpiDamage: 2.5→取整3不行,用整数2, hcReward: 9 + // kpiDamage 用浮点:在 GameManager.reduceKPI 里用 Math.max(0, kpi - amount) + super(scene, pathPoints, 40, 130, 2, 9, 'enemy-fresh', speedMultiplier, hpMultiplier) } getQuote(): string { return getRandomQuote('FreshGraduate') } } diff --git a/game/enemies/OldEmployee.ts b/game/enemies/OldEmployee.ts index 32f6cad..ec7d9e7 100644 --- a/game/enemies/OldEmployee.ts +++ b/game/enemies/OldEmployee.ts @@ -9,9 +9,9 @@ export class OldEmployee extends EnemyBase { speedMultiplier: number = 1.0, hpMultiplier: number = 1.0 ) { - // HP: 150→240, speed: 50→65, kpiDamage: 8→12, hcReward: 30→22, shield: 3→4 - super(scene, pathPoints, 240, 65, 12, 22, 'enemy-old', speedMultiplier, hpMultiplier) - this.shieldCount = 4 + // HP: 180, speed: 55, kpiDamage: 10, hcReward: 25, shield: 3 + super(scene, pathPoints, 180, 55, 10, 25, 'enemy-old', speedMultiplier, hpMultiplier) + this.shieldCount = 3 this.imageSprite.setDisplaySize(this.cellW * 0.85, this.cellW * 0.85) } diff --git a/game/enemies/TroubleMaker.ts b/game/enemies/TroubleMaker.ts index 2ef03e7..386658c 100644 --- a/game/enemies/TroubleMaker.ts +++ b/game/enemies/TroubleMaker.ts @@ -10,8 +10,8 @@ export class TroubleMaker extends EnemyBase { speedMultiplier: number = 1.0, hpMultiplier: number = 1.0 ) { - // HP: 80→130, speed: 80→100, kpiDamage: 5→7, hcReward: 20→15 - super(scene, pathPoints, 130, 100, 7, 15, 'enemy-trouble', speedMultiplier, hpMultiplier) + // HP: 100, speed: 85, kpiDamage: 6, hcReward: 18 + super(scene, pathPoints, 100, 85, 6, 18, 'enemy-trouble', speedMultiplier, hpMultiplier) } protected override onDeath(): void { diff --git a/game/towers/TowerBase.ts b/game/towers/TowerBase.ts index 965ab05..b392199 100644 --- a/game/towers/TowerBase.ts +++ b/game/towers/TowerBase.ts @@ -98,7 +98,7 @@ export abstract class TowerBase { const target = this.findTarget(enemies) if (target && this.attackCooldown <= 0) { this.attack(target) - this.stamina -= 8 // 精力消耗:5→8,更快进入摸鱼状态 + this.stamina -= 4 // 精力消耗:8→4,持续战斗时间翻倍 // 应用 PUA 攻速倍率(倍率越高冷却越短) this.attackCooldown = 1000 / (this.attackSpeed * this._puaSpeedMult) this.updateStaminaBar() diff --git a/game/ui/MapTransitionModal.ts b/game/ui/MapTransitionModal.ts index 76f0588..d3f8d6b 100644 --- a/game/ui/MapTransitionModal.ts +++ b/game/ui/MapTransitionModal.ts @@ -93,7 +93,7 @@ export class MapTransitionModal { // KPI & 说明 const statsEl = document.createElement('div') - statsEl.innerHTML = `最终KPI: ${kpi}%  |  HC 将重置为 150` + statsEl.innerHTML = `最终KPI: ${kpi}%  |  HC 将重置为 170` statsEl.style.cssText = ` font-size: 20px; color: #e2e8f0; @@ -131,7 +131,7 @@ export class MapTransitionModal { // 倒计时提示(HC 重置提醒) const countdownEl = document.createElement('div') countdownEl.id = 'mt-countdown' - countdownEl.textContent = isFinalMap ? '3秒后返回主菜单...' : '3秒后进入下一关,HC重置为150...' + countdownEl.textContent = isFinalMap ? '3秒后返回主菜单...' : '3秒后进入下一关,HC重置为170...' countdownEl.style.cssText = ` font-size: 16px; color: #6b7280; @@ -157,7 +157,7 @@ export class MapTransitionModal { const el = document.getElementById('mt-countdown') if (el) el.textContent = isFinalMap ? `${remaining}秒后返回主菜单...` - : `${remaining}秒后进入下一关,HC重置为150...` + : `${remaining}秒后进入下一关,HC重置为170...` } const interval = setInterval(tick, 1000) this.autoCloseTimer = setTimeout(() => {