Update READMEs
This commit is contained in:
63
README.md
63
README.md
@@ -22,20 +22,22 @@ A modular idle/incremental game prototype featuring a decoupled buff system, mul
|
||||
| System | Location | Purpose |
|
||||
|--------|----------|---------|
|
||||
| **BigNumber** | `core/big_number.gd` | Handles huge numbers (mantissa + exponent) for idle game math |
|
||||
| **Currency** | `core/currency/`, `core/currency_database.gd` | Catalog system for all in-game currencies |
|
||||
| **GameState** | `core/game_state.gd` | Central state authority (currencies, generators, buffs, persistence) |
|
||||
| **Currency** | `core/currency/`, `core/currency_catalogue.gd` | Catalog system for all in-game currencies |
|
||||
| **LevelGameState** | `core/level_game_state.gd` | Central state authority (currencies, generators, buffs, persistence, research) |
|
||||
| **Generators** | `core/generator/` | Production mechanics (auto cycles, clicks, purchases) |
|
||||
| **Buffs** | `core/generator/generator_buff_data.gd` | Global multipliers with multi-target support |
|
||||
| **Goals** | `core/goals/` | Unlock conditions for generators and buffs |
|
||||
| **Prestige** | `core/prestige/` | Reset-with-bonus mechanics |
|
||||
| **Research** | `core/research/` | XP-based progression with production multipliers |
|
||||
|
||||
### Autoload Singletons
|
||||
### Key Nodes
|
||||
|
||||
| Autoload | Script | Description |
|
||||
|----------|--------|-------------|
|
||||
| `GameState` | `core/game_state.gd` | Central state management, save/load |
|
||||
| `CurrencyDatabase` | `core/currency_database.gd` | Currency catalog discovery |
|
||||
| Node | Script | Description |
|
||||
|------|--------|-------------|
|
||||
| `LevelGameState` | `core/level_game_state.gd` | Central state management, save/load |
|
||||
| `CurrencyCatalogue` | `core/currency_catalogue.gd` | Currency catalog resource |
|
||||
| `PrestigeManager` | `core/prestige/prestige_manager.gd` | Prestige system |
|
||||
| `ResearchXPTracker` | `core/research/research_xp_tracker.gd` | Research XP accumulation |
|
||||
|
||||
### Data Directory Structure
|
||||
|
||||
@@ -90,21 +92,29 @@ GameState.get_effective_multiplier(generator_id, kind) -> float
|
||||
|
||||
## Save Format
|
||||
|
||||
**Version 2 (current):**
|
||||
**Version 5 (current):**
|
||||
```json
|
||||
{
|
||||
"save_format_version": 2,
|
||||
"currencies": { ... },
|
||||
"save_format_version": 5,
|
||||
"currencies": {
|
||||
"<currency_id>": {
|
||||
"current": {"m": float, "e": int},
|
||||
"total": {"m": float, "e": int},
|
||||
"all_time": {"m": float, "e": int}
|
||||
}
|
||||
},
|
||||
"generator_states": { ... },
|
||||
"buff_definitions": { ... },
|
||||
"buff_levels": { "farm_flux": 5 },
|
||||
"buff_unlocked": { "farm_flux": true },
|
||||
"buff_active": { "farm_flux": true },
|
||||
"goals": { "completed": ["goal_id"] },
|
||||
"research_xp": { "<research_id>": {"m": float, "e": int} },
|
||||
"research_levels": { "<research_id>": int },
|
||||
"last_save_time": 1234567890
|
||||
}
|
||||
```
|
||||
|
||||
**Note**: Breaking change from v1 - old saves are incompatible.
|
||||
**Note**: Save format version 5 includes research XP as BigNumber serialization.
|
||||
|
||||
## Development
|
||||
|
||||
@@ -113,7 +123,7 @@ GameState.get_effective_multiplier(generator_id, kind) -> float
|
||||
**New Currency:**
|
||||
1. Create `res://sandbox/currencies/<name>.tres` (Currency resource)
|
||||
2. Set `id`, `display_name`, `icon`
|
||||
3. Auto-discovered at runtime
|
||||
3. Add to `CurrencyCatalogue` resource
|
||||
|
||||
**New Generator:**
|
||||
1. Create `res://sandbox/generators/<name>.tres` (CurrencyGeneratorData)
|
||||
@@ -125,7 +135,13 @@ GameState.get_effective_multiplier(generator_id, kind) -> float
|
||||
1. Create `res://sandbox/buffs/<name>.tres` (GeneratorBuffData)
|
||||
2. Set `target_ids` (e.g., `["farm", "forestry"]` or `["*"]`)
|
||||
3. Configure effect, cost, unlock goal
|
||||
4. Auto-registered at runtime
|
||||
4. Add to `BuffCatalogue` resource
|
||||
|
||||
**New Research:**
|
||||
1. Create `res://sandbox/research/<name>.tres` (ResearchData)
|
||||
2. Link to generator via `generator_id`
|
||||
3. Configure XP and multiplier parameters
|
||||
4. Add to `ResearchCatalogue` resource
|
||||
|
||||
### Testing
|
||||
|
||||
@@ -140,24 +156,17 @@ GameState.get_effective_multiplier(generator_id, kind) -> float
|
||||
## Known Issues / TODOs
|
||||
|
||||
- [ ] Manual save triggers not implemented (auto-save needed)
|
||||
- [ ] `CurrencyTile` references `GameState.GOLD_CURRENCY_ID` (constant missing)
|
||||
- [ ] `GeneratorPanel` has missing `mouse_entered`/`mouse_exited` handlers
|
||||
- [ ] Some buffs configured locked with no unlock path
|
||||
- [ ] No automated test suite
|
||||
|
||||
## Refactoring Status
|
||||
## Current Status
|
||||
|
||||
See `REFACTORING.md` for:
|
||||
- Complete refactoring plan (8 phases)
|
||||
- Implementation timeline (15-23 hours estimated)
|
||||
- Testing checklist
|
||||
- Rollback procedures
|
||||
|
||||
### Completed Phases
|
||||
- Phase 1: GeneratorBuffData with target_ids support
|
||||
|
||||
### Pending Phases
|
||||
- Phase 2-8: GameState extension, save format update, data migration
|
||||
Research system fully implemented with:
|
||||
- XP-based progression tied to production
|
||||
- Auto-leveling with BigNumber support
|
||||
- Buff multipliers for XP gain
|
||||
- Save format version 5 with research persistence
|
||||
|
||||
## Technical Details
|
||||
|
||||
|
||||
Reference in New Issue
Block a user