12static func register_for_game(game_id:String, save_manager) -> bool:
15 register_reflecting_pool(save_manager)
17 "emoji_card_collector":
18 register_emoji_card_collector(save_manager)
21 register_project_alchemy(save_manager)
27static func register_reflecting_pool(save_manager) -> void:
28 save_manager.register_migration(1, func(state):
29 if not state.has(
"meta"):
31 state[
"meta"][
"game_id"] =
"reflecting_pool"
32 if not state.has(
"run"):
34 state[
"run"][
"schema"] =
"reflecting_pool_v1"
35 if not state.has(
"stats"):
37 if not state[
"stats"].has(
"progression"):
38 state[
"stats"][
"progression"] = {
"counters": {},
"records": {},
"flags": {}}
44static func register_emoji_card_collector(save_manager) -> void:
45 save_manager.register_migration(1, func(state):
46 if not state.has(
"meta"):
48 state[
"meta"][
"game_id"] =
"emoji_card_collector"
49 if not state.has(
"stats"):
51 state[
"stats"][
"wins"] = int(state[
"stats"].get(
"wins", 0))
52 state[
"stats"][
"losses"] = int(state[
"stats"].get(
"losses", 0))
53 if not state[
"stats"].has(
"progression"):
54 state[
"stats"][
"progression"] = {
"counters": {},
"records": {},
"flags": {}}
55 if not state.has(
"collection"):
56 state[
"collection"] = {
"discovered_card_ids": []}
62static func register_project_alchemy(save_manager) -> void:
63 save_manager.register_migration(1, func(state):
64 if not state.has(
"meta"):
66 state[
"meta"][
"game_id"] =
"project_alchemy"
67 if not state.has(
"lab"):
69 state[
"lab"][
"schema"] =
"project_alchemy_v1"
70 if not state.has(
"materials"):
71 state[
"materials"] = {}
72 if not state.has(
"inventory"):
73 state[
"inventory"] = {}
74 if not state[
"inventory"].has(
"resources"):
75 state[
"inventory"][
"resources"] = state[
"materials"].get(
"values", {}).duplicate(true)
76 for category
in [
"forms",
"modifiers",
"consumables",
"items"]:
77 if not state[
"inventory"].has(category):
78 state[
"inventory"][category] = {}
79 if not state[
"inventory"].has(
"gold"):
80 state[
"inventory"][
"gold"] = 0
81 if not state.has(
"codex"):
83 if not state.has(
"spells"):
85 if not state[
"spells"].has(
"unlocked"):
86 state[
"spells"][
"unlocked"] = [
"fire_projectile"]
87 if not state[
"spells"].has(
"equipped"):
88 state[
"spells"][
"equipped"] = [
"fire_projectile"]
89 if not state[
"spells"].has(
"created_cards"):
90 state[
"spells"][
"created_cards"] = {}
91 if not state.has(
"field"):
93 state[
"field"][
"selected_mode"] = str(state[
"field"].get(
"selected_mode",
"arena"))
94 state[
"field"][
"selected_adventure"] = str(state[
"field"].get(
"selected_adventure",
"mosswood_intro"))
95 if not state[
"field"].has(
"adventure_run"):
96 state[
"field"][
"adventure_run"] = {}
97 if not state[
"field"].has(
"triggered_adventure_scripts"):
98 state[
"field"][
"triggered_adventure_scripts"] = {}
99 if not state[
"field"].has(
"run_collected_resources"):
100 state[
"field"][
"run_collected_resources"] = {}
101 if not state[
"field"].has(
"run_damage_taken"):
102 state[
"field"][
"run_damage_taken"] = 0
103 if not state[
"field"].has(
"active_spell_projectiles"):
104 state[
"field"][
"active_spell_projectiles"] = []
105 if not state[
"field"].has(
"enemy_decision_step_interval"):
106 state[
"field"][
"enemy_decision_step_interval"] = 3
107 if not state.has(
"stats"):
109 if not state[
"stats"].has(
"progression"):
110 state[
"stats"][
"progression"] = {
"counters": {},
"records": {},
"flags": {}}