初次提交

This commit is contained in:
2026-07-20 10:56:52 +08:00
commit 7bcc0026e0
462 changed files with 50191 additions and 0 deletions
+65
View File
@@ -0,0 +1,65 @@
# 魔法工匠:开发使用手册 (Developer & Designer Handbook)
> **适用人群**:策划、美术、程序、QA
> **引擎版本**Godot 4.6 (Mono)
> **最后更新**2026-06-05
---
## 目录
| 文档 | 适合 | 内容 |
|:---|:---|:---|
| [01 快速上手](01_quickstart.md) | 全员 | 克隆→启动→首次运行 |
| [02 内容创作指南](02_content_authoring.md) | 策划 / 程序 | 法术 / 敌人 / 波次 / Boss / 共鸣 |
| [03 资源替换指南](03_asset_replacement.md) | 美术 / 程序 | 特效 / 精灵 / 音效 / UI 图片 |
| [04 本地化工作流](04_localization.md) | 本地化 / 策划 | `.po` 维护、新增语言、字符串规范 |
| [05 发布标准清单](05_release_guide.md) | 全员 / PM | Steam / Switch 认证、发布流程 |
| [06 法术编辑器](06_spell_editor.md) | 策划 / 开发 | 法术编辑器 meta 字段速查 |
| [07 游戏设计器](07_game_designer.md) | 策划 / 美术 / 开发 | **⭐ 一站式可视化工具**:法术/敌人/波次/Core/平衡全部表单配置,零代码 |
---
## 项目目录快览
```
daihaoRogue/
├── scenes/
│ └── main/combat_s2.tscn ← 主场景(唯一可玩入口)
├── scripts/
│ ├── autoloads/ ← 全局单例(30+ Autoload
│ └── domain/
│ ├── spell_system/ ← 法术虚拟机
│ └── combat/ ← 游戏循环状态机
├── translations/ ← zh_CN / zh_TW / en / ja .po
├── audio/sfx/ ← 音效放这里(目前占位蜂鸣)
├── assets/sprites/ ← 精灵图放这里(目前几何占位)
└── docs/
├── design/ ← 游戏设计文档
├── mechanics/ ← 机制深度文档
├── technical/ ← 架构 / 实现方案
├── plan/ ← 开发计划 / 认证清单
└── handbook/ ← 本手册(你在这里)
```
---
## 关键 Autoload 速查
| Autoload | 职责 | 常用入口 |
|:---|:---|:---|
| `WandPreset` | 法术/Core 内置预设 | `make_spark_bolt()`, `make_wand_basic()` |
| `SpellEvaluator` | 法术虚拟机(编译+执行) | `compile_wand(core, nodes)`, `execute_compiled(compiled, caster_id, pos)` |
| `SpellRegistry` | 法术查询表 | `get_spell("action_fire_bolt")` |
| `WaveManager` | 波次生成/配置 | `WAVE_CONFIG[0..19]` |
| `EnemyManager` | 敌人 SoA 管理 | `spawn_enemy(pos, hp, type)` |
| `BulletManager` | 子弹 SoA 管理 | `spawn_bullet(...)` |
| `VFXManager` | 特效池 | `play("hit_spark", pos)` |
| `AudioManager` | 音效池 | `play("hit", pos)` |
| `SettingsManager` | 难度 / 音量 / 语言 | `difficulty_name()`, `enemy_hp_mult()` |
| `EndlessRecords` | 本地排行榜 | `add_record(wave, elapsed, kills)` |
| `ProfileManager` | A/B 槽局内存档 | `save_run()`, `load_run()` |
| `Locale` | 语言切换 | `set_locale("en")` |
| `StatusManager` | 状态效果(DoT 等) | `apply(entity_id, StatusID.BURN, 2)` |
| `ZoneManager` | 地面效果区域 | `spawn_zone(cx, cy, r, status_id, dur, tick, owner)` |
| `MinionManager` | 召唤物 | `spawn_minion(def_dict, owner_id, pos)` |