From d13e17ffc55dee0254fb4158ffe932b3a4e5cfa6 Mon Sep 17 00:00:00 2001 From: Cloud Bot Date: Sat, 21 Mar 2026 08:14:53 +0000 Subject: [PATCH] =?UTF-8?q?feat(game/enemies):=20=E5=AE=8C=E5=96=84?= =?UTF-8?q?=E6=80=AA=E7=89=A9=E5=A4=B4=E9=A1=B6=E8=AF=AD=E5=BD=95=E9=A3=98?= =?UTF-8?q?=E5=AD=97=E7=B3=BB=E7=BB=9F=EF=BC=8C=E9=9B=86=E6=88=90=E8=AF=AD?= =?UTF-8?q?=E5=BD=95=E6=95=B0=E6=8D=AE=E6=96=87=E4=BB=B6=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E8=B7=9F=E9=9A=8F=E7=A7=BB=E5=8A=A8=E5=92=8C=E6=B7=A1?= =?UTF-8?q?=E5=87=BA=E5=8A=A8=E7=94=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/enemies/BossVP.ts | 9 ++------- game/enemies/EnemyBase.ts | 17 ++++++++++++++--- game/enemies/FreshGraduate.ts | 5 ++--- game/enemies/OldEmployee.ts | 5 ++--- game/enemies/TroubleMaker.ts | 5 ++--- 5 files changed, 22 insertions(+), 19 deletions(-) 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') } }