Stabilize early campaign QA flow

This commit is contained in:
2026-07-04 03:34:07 +09:00
parent 51ee60dc03
commit d064964c27
2 changed files with 94 additions and 26 deletions

View File

@@ -4072,16 +4072,17 @@ export class BattleScene extends Phaser.Scene {
}
const visible = this.isTileVisible(unit.x, unit.y);
view.sprite.postFX.clear();
view.sprite.clearTint();
this.clearUnitSpriteEffects(view.sprite);
view.sprite.setAlpha(1);
view.sprite.setVisible(visible);
this.setUnitHitZoneEnabled(view, visible);
view.label.setVisible(visible);
view.label.setAlpha(1);
view.label.setColor(unit.faction === 'ally' ? '#e7edf7' : '#ffebe7');
view.label.setBackgroundColor('');
this.updateUnitLabel(view, (label) => {
label.setVisible(visible);
label.setAlpha(1);
label.setColor(unit.faction === 'ally' ? '#e7edf7' : '#ffebe7');
label.setBackgroundColor('');
});
}
private isTileVisible(x: number, y: number) {
@@ -7549,7 +7550,7 @@ export class BattleScene extends Phaser.Scene {
}
private truncateUiText(text: string, maxLength: number) {
return text.length > maxLength ? `${text.slice(0, Math.max(0, maxLength - 3))}...` : text;
return text.length > maxLength ? `${text.slice(0, Math.max(0, maxLength - 1))}` : text;
}
private previewActionLabel(preview: CombatPreview) {
@@ -13640,8 +13641,7 @@ export class BattleScene extends Phaser.Scene {
this.applyDefeatedStyle(unit);
return;
}
view.sprite.postFX.clear();
view.sprite.clearTint();
this.clearUnitSpriteEffects(view.sprite);
view.sprite.setAlpha(1);
if (unit) {
this.syncUnitMotion(unit, view);
@@ -13649,9 +13649,11 @@ export class BattleScene extends Phaser.Scene {
} else {
this.stopUnitWalk(view, view.direction);
}
view.label.setAlpha(1);
view.label.setColor(unit?.faction === 'ally' ? '#e7edf7' : '#ffebe7');
view.label.setBackgroundColor('');
this.updateUnitLabel(view, (label) => {
label.setAlpha(1);
label.setColor(unit?.faction === 'ally' ? '#e7edf7' : '#ffebe7');
label.setBackgroundColor('');
});
});
}
@@ -14657,6 +14659,23 @@ export class BattleScene extends Phaser.Scene {
sprite.setBlendMode(Phaser.BlendModes.NORMAL);
}
private clearUnitSpriteEffects(sprite: Phaser.GameObjects.Sprite) {
sprite.postFX?.clear();
sprite.clearTint();
}
private updateUnitLabel(view: UnitView, update: (label: Phaser.GameObjects.Text) => void) {
if (!view.label.active || view.label.scene !== this) {
return;
}
try {
update(view.label);
} catch {
// Canvas text internals can already be disposed during fast scene transitions.
}
}
private playUnitActionFrames(
sprite: Phaser.GameObjects.Sprite,
unit: UnitData,
@@ -14700,8 +14719,7 @@ export class BattleScene extends Phaser.Scene {
return;
}
view.sprite.postFX.clear();
view.sprite.clearTint();
this.clearUnitSpriteEffects(view.sprite);
this.syncUnitMotion(unit, view);
this.applyUnitLegibilityStyle(unit, view);
}
@@ -14715,15 +14733,16 @@ export class BattleScene extends Phaser.Scene {
view.sprite.stop();
view.sprite.disableInteractive();
view.sprite.postFX.clear();
view.sprite.clearTint();
this.clearUnitSpriteEffects(view.sprite);
view.sprite.setAlpha(0);
view.sprite.setVisible(false);
this.setUnitHitZoneEnabled(view, false);
view.label.setAlpha(0);
view.label.setVisible(false);
view.label.setColor('#b6b6b6');
view.label.setBackgroundColor('');
this.updateUnitLabel(view, (label) => {
label.setAlpha(0);
label.setVisible(false);
label.setColor('#b6b6b6');
label.setBackgroundColor('');
});
}
private faceUnitToward(unit: UnitData, target: UnitData) {
@@ -15008,7 +15027,7 @@ export class BattleScene extends Phaser.Scene {
}
private truncateBattleLogText(text: string, maxLength: number) {
return text.length > maxLength ? `${text.slice(0, Math.max(0, maxLength - 3))}...` : text;
return text.length > maxLength ? `${text.slice(0, Math.max(0, maxLength - 1))}` : text;
}
private battleLogDisplayParts(entry: string) {