diff --git a/game/enemies/BossVP.ts b/game/enemies/BossVP.ts index 7bd3cbd..e1bfb0b 100644 --- a/game/enemies/BossVP.ts +++ b/game/enemies/BossVP.ts @@ -1,11 +1,6 @@ import type Phaser from 'phaser' import { EnemyBase, type PathPoint } from './EnemyBase' - -const QUOTES = [ - '我来教大家怎么做事', - '你们缺乏战略眼光', - '这不是执行力的问题', -] +import { getRandomQuote } from '../data/quotes' export class BossVP extends EnemyBase { private skillTimer: number = 20000 @@ -108,6 +103,6 @@ export class BossVP extends EnemyBase { } getQuote(): string { - return QUOTES[Math.floor(Math.random() * QUOTES.length)] + return getRandomQuote('BossVP') } } diff --git a/game/enemies/EnemyBase.ts b/game/enemies/EnemyBase.ts index c533cd4..c33fb91 100644 --- a/game/enemies/EnemyBase.ts +++ b/game/enemies/EnemyBase.ts @@ -112,6 +112,10 @@ export abstract class EnemyBase { this.moveAlongPath(delta) this.drawHealthBar() this.sprite.setPosition(this.x, this.y) + // 语录文字跟随怪物移动 + if (this.quoteText && this.quoteText.alpha > 0) { + this.quoteText.setPosition(this.x, this.y - 30) + } } protected processDOT(delta: number): void { @@ -229,12 +233,19 @@ export abstract class EnemyBase { protected onDeath(): void {} - /** 显示头顶语录(短暂) */ + /** 显示头顶语录(出生后随机触发,3秒后淡出) */ showQuote(): void { + if (this.isDead || !this.quoteText) return this.quoteText.setText(this.getQuote()) + this.quoteText.setPosition(this.x, this.y - 30) this.quoteText.setAlpha(1) - this.scene.time.delayedCall(1500, () => { - if (this.quoteText) this.quoteText.setAlpha(0) + // 3秒后淡出动画 + this.scene.tweens.add({ + targets: this.quoteText, + alpha: 0, + duration: 800, + delay: 2200, + ease: 'Linear', }) } diff --git a/game/enemies/FreshGraduate.ts b/game/enemies/FreshGraduate.ts index bb93c61..805f185 100644 --- a/game/enemies/FreshGraduate.ts +++ b/game/enemies/FreshGraduate.ts @@ -1,7 +1,6 @@ import type Phaser from 'phaser' import { EnemyBase, type PathPoint } from './EnemyBase' - -const QUOTES = ['求转正!', '我愿意加班!', '卷!卷!卷!'] +import { getRandomQuote } from '../data/quotes' export class FreshGraduate extends EnemyBase { constructor(scene: Phaser.Scene, pathPoints: PathPoint[]) { @@ -19,6 +18,6 @@ export class FreshGraduate extends EnemyBase { } getQuote(): string { - return QUOTES[Math.floor(Math.random() * QUOTES.length)] + return getRandomQuote('FreshGraduate') } } diff --git a/game/enemies/OldEmployee.ts b/game/enemies/OldEmployee.ts index e9c2493..3e99e84 100644 --- a/game/enemies/OldEmployee.ts +++ b/game/enemies/OldEmployee.ts @@ -1,7 +1,6 @@ import type Phaser from 'phaser' import { EnemyBase, type PathPoint } from './EnemyBase' - -const QUOTES = ['我为公司立过功!', '我有10年经验!', '年龄不是问题!'] +import { getRandomQuote } from '../data/quotes' export class OldEmployee extends EnemyBase { constructor(scene: Phaser.Scene, pathPoints: PathPoint[]) { @@ -34,6 +33,6 @@ export class OldEmployee extends EnemyBase { } getQuote(): string { - return QUOTES[Math.floor(Math.random() * QUOTES.length)] + return getRandomQuote('OldEmployee') } } diff --git a/game/enemies/TroubleMaker.ts b/game/enemies/TroubleMaker.ts index b502b1f..cbbe6bc 100644 --- a/game/enemies/TroubleMaker.ts +++ b/game/enemies/TroubleMaker.ts @@ -1,8 +1,7 @@ import type Phaser from 'phaser' import { EnemyBase, type PathPoint } from './EnemyBase' import { GameManager } from '../GameManager' - -const QUOTES = ['录音笔已开启', '这是违法的!', '我要仲裁!'] +import { getRandomQuote } from '../data/quotes' export class TroubleMaker extends EnemyBase { constructor(scene: Phaser.Scene, pathPoints: PathPoint[]) { @@ -49,6 +48,6 @@ export class TroubleMaker extends EnemyBase { } getQuote(): string { - return QUOTES[Math.floor(Math.random() * QUOTES.length)] + return getRandomQuote('TroubleMaker') } }