Small adjustments to prepare for mining.

This commit is contained in:
Brian Fertig 2026-09-05 10:29:02 -06:00
parent 9ca0fa55a8
commit fdd5f8a506
3 changed files with 6 additions and 3 deletions

View File

@ -1,7 +1,7 @@
{ {
"_comment": "Sound effects. enabled = master switch (also skips the load). volume is 0..1. construct = text typing in (the dossier, menus decoding in); deconstruct = text UNDECODING (the dossier collapsing) — reserved for the text only, never for closing UI; discovery = a new object coming into view; mining = the mining arm powering up (the 'Extending Mining Arm...' reach); mining_loop = the hum that LOOPS while the mining beam is live (starts when the arm finishes extending, stops when the sequence ends — stopping mining itself plays no sound); scan = the DEEP SCAN pulse going out (the command deck's SCAN button); ui_hover = the tick on HOVER of a clickable item (menu/deck buttons, compass name tags, panel buttons, save slots); ui_click = the tick on CLICK of a clickable item (the SCAN slot plays its own sonar ping instead of ui_click); ui_window = the whoosh when a window OPENS (the mining pop-up, the comms/landing panel); ui_close = the tick when a UI element is CANCELLED/CLOSED (the menu sub-bar, the save vault, the confirm dialog). Convention: the key here IS the play name — playSfx('<key>') plays the asset queued as 'sfx_<key>'.", "_comment": "Sound effects. enabled = master switch (also skips the load). volume is 0..1. construct = text typing in (the dossier, menus decoding in); deconstruct = text UNDECODING (the dossier collapsing) — reserved for the text only, never for closing UI; discovery = a new object coming into view; mining = the mining arm powering up (the 'Extending Mining Arm...' reach); mining_loop = the hum that LOOPS while the mining beam is live (starts when the arm finishes extending, stops when the sequence ends — stopping mining itself plays no sound); scan = the DEEP SCAN pulse going out (the command deck's SCAN button); ui_hover = the tick on HOVER of a clickable item (menu/deck buttons, compass name tags, panel buttons, save slots); ui_click = the tick on CLICK of a clickable item (the SCAN slot plays its own sonar ping instead of ui_click); ui_window = the whoosh when a window OPENS (the mining pop-up, the comms/landing panel); ui_close = the tick when a UI element is CANCELLED/CLOSED (the menu sub-bar, the save vault, the confirm dialog). Convention: the key here IS the play name — playSfx('<key>') plays the asset queued as 'sfx_<key>'.",
"enabled": true, "enabled": true,
"volume": 0.55, "volume": 1,
"construct": "assets/fx/type-construct.mp3", "construct": "assets/fx/type-construct.mp3",
"deconstruct": "assets/fx/type-deconstruct.mp3", "deconstruct": "assets/fx/type-deconstruct.mp3",
"discovery": "assets/fx/discovery.mp3", "discovery": "assets/fx/discovery.mp3",

View File

@ -17,10 +17,11 @@
"arriveRadius": 8, "arriveRadius": 8,
"arriveSpeed": 50, "arriveSpeed": 50,
"stats": { "stats": {
"_comment": "Base stats — the ship's starting condition, before any upgrades (builds/research layer deltas on top). hullIntegrity = the hull's max health (damage it can take); shields = damage absorbed in front of the hull; cargoHold = goods capacity; mineralStorage = minerals capacity. Exposed as ship.stats (js/entities/Ship.js); combat/trading/mining systems will read these as capacities.", "_comment": "Base stats — the ship's starting condition, before any upgrades (builds/research layer deltas on top). hullIntegrity = the hull's max health (damage it can take); shields = damage absorbed in front of the hull; cargoHold = goods capacity; mineralStorage = minerals capacity; miningSpeed = multiplier on mining rate (1 = baseline). Exposed as ship.stats (js/entities/Ship.js); combat/trading/mining systems will read these as capacities.",
"hullIntegrity": 100, "hullIntegrity": 100,
"shields": 0, "shields": 0,
"cargoHold": 100, "cargoHold": 100,
"mineralStorage": 250 "mineralStorage": 250,
"miningSpeed": 1
} }
} }

View File

@ -26,6 +26,7 @@ import { toColor } from '../utils/Color.js';
* - shields damage absorbed in front of the hull * - shields damage absorbed in front of the hull
* - cargoHold goods capacity * - cargoHold goods capacity
* - mineralStorage minerals capacity * - mineralStorage minerals capacity
* - miningSpeed multiplier on mining rate (1 = baseline)
*/ */
export class Ship extends Phaser.Physics.Arcade.Sprite { export class Ship extends Phaser.Physics.Arcade.Sprite {
static TEXTURE_KEY = '__ship'; static TEXTURE_KEY = '__ship';
@ -100,6 +101,7 @@ export class Ship extends Phaser.Physics.Arcade.Sprite {
shields: config.get('ship.stats.shields', 0), shields: config.get('ship.stats.shields', 0),
cargoHold: config.get('ship.stats.cargoHold', 100), cargoHold: config.get('ship.stats.cargoHold', 100),
mineralStorage: config.get('ship.stats.mineralStorage', 250), mineralStorage: config.get('ship.stats.mineralStorage', 250),
miningSpeed: config.get('ship.stats.miningSpeed', 1),
}; };
// World size = size × scale. Sheet frames are frameWidth px wide; the // World size = size × scale. Sheet frames are frameWidth px wide; the