import type Phaser from 'phaser' import { TowerBase } from './TowerBase' import type { EnemyBase } from '../enemies/EnemyBase' export class SeniorDevTower extends TowerBase { constructor(scene: Phaser.Scene, gridX: number, gridY: number) { super(scene, gridX, gridY, 120, 5, 30, 1.0, 'tower-senior') } attack(target: EnemyBase): void { this.fireBullet(target) } private fireBullet(target: EnemyBase): void { const bullet = this.scene.add.graphics() bullet.fillStyle(0x22c55e, 1) bullet.fillRoundedRect(-5, -5, 10, 10, 2) // 添加绿色发光 bullet.lineStyle(1, 0x86efac, 0.8) bullet.strokeRoundedRect(-6, -6, 12, 12, 3) bullet.setPosition(this.px, this.py) bullet.setDepth(13) const dx = target.x - this.px const dy = target.y - this.py const dist = Math.sqrt(dx * dx + dy * dy) const duration = (dist / 500) * 1000 this.scene.tweens.add({ targets: bullet, x: target.x, y: target.y, duration, onComplete: () => { bullet.destroy() if (!target.isDead) { target.takeDamage(this.attackDamage) target.addDOT(10, 3000) // DOT 命中效果 const fx = this.scene.add.graphics() fx.lineStyle(2, 0x22c55e, 0.8) fx.strokeCircle(target.x, target.y, 14) fx.setDepth(15) this.scene.time.delayedCall(300, () => fx.destroy()) } }, }) } }