西风逍遥游
6cc4e8b602
feat(rpg): RPG-Maker-style main model + complete RPG interface
Extend the RPG module into a data-driven RPG-Maker-style main model and add
a complete turn-based RPG example demonstrating the whole surface.
New RPG subsystems (all string-keyed, JSON-driven, Squirrel-bound):
- Quest tracker: QuestRegistry + Tracker + QuestSystem (states, notify,
prerequisite chain, events); eve.RPG.newTracker().
- Progression: LevelSystem + RPGActor::Progression (XP/level/level-up events).
- Vitals: VitalsSystem + RPGActor::Vitals (current resource, takeDamage/heal/
death/revive).
- Traits: Trait/TraitSystem + RPGActor::Traits (paramRate, elementRate,
stateRate/resist, exParam, attack elements/states/times/speed).
- Turn-based battle: BattleSystem (damage-formula DSL "a.atk*4-b.def*2",
hit/crit/element) + Battle (arbitrary sides, initiative order, target
resolution, winner detection, events).
- Classes: Class/ClassSystem + RPGActor::ClassInfo (class traits + learn
skills by level).
- GameState: global switches/variables/self-variables.
- Equipment + loot: EquipmentSystem (equip -> attribute modifiers) and
LootSystem (loot table -> inventory Bag), via the inventory module.
Bindings: bind RPGActor::release for script-side destruction; wrap
registerSkillDamage double as float (SQUSEDOUBLE).
Example: examples/rpg-classic - complete RPG interface (bag/shop/stat
allocation/equipment/adjust every 3 waves/status screen anytime).
Tests: rpg_quest, rpg_progression, rpg_trait, rpg_battle, rpg_class,
rpg_gamestate, rpg_equipment (loot). Full rpg.* regression green.
2026-08-28 15:02:13 +08:00
..
2026-08-25 19:43:07 +08:00
2026-08-09 21:41:58 +08:00
2026-08-25 06:09:10 +08:00
2026-08-18 17:41:01 +08:00
2026-08-22 08:27:43 +08:00
2026-08-27 12:54:48 +08:00
2026-08-25 06:09:10 +08:00
2026-08-25 06:09:10 +08:00
2026-08-09 21:41:58 +08:00
2026-08-22 08:36:13 +08:00
2026-08-24 16:01:49 +08:00
2026-08-09 21:41:58 +08:00
2026-08-27 12:54:48 +08:00
2026-08-25 06:09:09 +08:00
2026-08-10 21:20:44 +08:00
2026-08-27 12:54:48 +08:00
2026-08-26 07:34:37 +08:00
2026-08-20 05:53:33 +08:00
2026-08-25 12:20:53 +08:00
2026-08-26 07:40:20 +08:00
2026-08-22 08:27:43 +08:00
2026-08-26 15:27:14 +08:00
2026-08-27 12:54:48 +08:00
2026-08-17 14:54:50 +08:00
2026-08-17 17:43:27 +08:00
2026-08-20 12:31:11 +08:00
2026-08-10 13:03:46 +08:00
2026-08-20 12:31:11 +08:00
2026-08-09 21:41:58 +08:00
2026-08-25 00:02:54 +08:00
2026-08-10 07:42:09 +08:00
2026-08-24 23:58:14 +08:00
2026-08-20 12:31:11 +08:00
2026-08-19 04:08:24 +08:00
2026-08-27 12:54:48 +08:00
2026-08-25 22:23:21 +08:00
2026-08-25 02:03:02 +08:00
2026-08-28 00:06:44 +08:00
2026-08-28 15:02:13 +08:00
2026-08-27 12:54:48 +08:00
2026-08-27 12:54:48 +08:00
2026-08-27 12:54:48 +08:00
2026-08-27 14:57:49 +08:00
2026-08-23 11:01:45 +08:00
2026-08-20 05:53:33 +08:00
2026-08-09 16:49:59 +00:00
2026-08-25 15:05:07 +08:00
2026-08-24 23:46:35 +08:00
2026-08-09 21:41:58 +08:00
2026-08-18 17:42:38 +08:00
2026-08-14 22:40:52 +08:00
2026-08-09 21:41:58 +08:00
2026-08-09 21:41:58 +08:00
2026-08-26 02:35:29 +08:00
2026-08-25 12:40:44 +08:00
2026-08-25 06:09:09 +08:00
2026-08-24 10:33:27 +08:00
2026-08-09 21:41:58 +08:00