Compare commits
4 Commits
fix/ui-opa
...
fix/rock-t
| Author | SHA1 | Date | |
|---|---|---|---|
| 3bf143993e | |||
| 0a706b8def | |||
| ae6c14d9a1 | |||
| 3e099d92e2 |
@@ -8,6 +8,7 @@ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
- **Debug-Panel überlagert Nisse-Info-Panel** (Issue #41): F3-Debug-Panel weicht dynamisch aus — wenn das Nisse-Info-Panel offen ist, erscheint das Debug-Panel unterhalb davon statt darüber
|
||||
- **Stockpile-Overlay Transparenz** (Issue #39): `updateStaticPanelOpacity()` verwendete `setAlpha()` statt `setFillStyle()` — dadurch wurde die Opacity quadratisch statt linear angewendet; bei 100 % blieb das Panel sichtbar transparent
|
||||
- **Action Bar Transparenz** (Issue #40): Action Bar ignorierte `uiOpacity` komplett — Hintergrund war hardcoded auf 0.92; wird jetzt korrekt mit `uiOpacity` erstellt und per `updateStaticPanelOpacity()` live aktualisiert
|
||||
|
||||
|
||||
@@ -405,7 +405,7 @@ export class UIScene extends Phaser.Scene {
|
||||
/** Creates the debug panel text object (initially hidden). */
|
||||
private createDebugPanel(): void {
|
||||
const hexAlpha = Math.round(this.uiOpacity * 255).toString(16).padStart(2, '0')
|
||||
this.debugPanelText = this.add.text(10, 80, '', {
|
||||
this.debugPanelText = this.add.text(10, 10, '', {
|
||||
fontSize: '12px',
|
||||
color: '#cccccc',
|
||||
backgroundColor: `#000000${hexAlpha}`,
|
||||
@@ -419,9 +419,20 @@ export class UIScene extends Phaser.Scene {
|
||||
private toggleDebugPanel(): void {
|
||||
this.debugActive = !this.debugActive
|
||||
this.debugPanelText.setVisible(this.debugActive)
|
||||
this.repositionDebugPanel()
|
||||
this.scene.get('Game').events.emit('debugToggle')
|
||||
}
|
||||
|
||||
/**
|
||||
* Repositions the debug panel to avoid overlapping the Nisse info panel.
|
||||
* When the Nisse info panel is open, the debug panel shifts below it.
|
||||
*/
|
||||
private repositionDebugPanel(): void {
|
||||
const NISSE_PANEL_H = 120 + 10 * 14 + 16 // matches buildNisseInfoPanel: 276px
|
||||
const debugY = this.nisseInfoVisible ? 10 + NISSE_PANEL_H + 10 : 10
|
||||
this.debugPanelText.setY(debugY)
|
||||
}
|
||||
|
||||
/**
|
||||
* Reads current debug data from DebugSystem and updates the panel text.
|
||||
* Called every frame while debug mode is active.
|
||||
@@ -879,6 +890,7 @@ export class UIScene extends Phaser.Scene {
|
||||
this.nisseInfoId = villagerId
|
||||
this.nisseInfoVisible = true
|
||||
this.buildNisseInfoPanel()
|
||||
this.repositionDebugPanel()
|
||||
}
|
||||
|
||||
/** Closes and destroys the Nisse info panel. */
|
||||
@@ -888,6 +900,7 @@ export class UIScene extends Phaser.Scene {
|
||||
this.nisseInfoId = null
|
||||
this.nisseInfoGroup.destroy(true)
|
||||
this.nisseInfoGroup = this.add.group()
|
||||
this.repositionDebugPanel()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -296,7 +296,8 @@ export class VillagerSystem {
|
||||
const res = state.world.resources[job.targetId]
|
||||
if (res) {
|
||||
this.adapter.send({ type: 'VILLAGER_HARVEST_RESOURCE', villagerId: v.id, resourceId: job.targetId })
|
||||
this.adapter.send({ type: 'CHANGE_TILE', tileX: res.tileX, tileY: res.tileY, tile: TileType.GRASS })
|
||||
// ROCK tile stays ROCK after mining — empty rocky ground remains passable
|
||||
// and valid for mine building placement.
|
||||
this.worldSystem.removeResourceTile(res.tileX, res.tileY)
|
||||
this.resourceSystem.removeResource(job.targetId)
|
||||
this.addLog(v.id, '✓ Mined rock (+2 stone)')
|
||||
|
||||
Reference in New Issue
Block a user