From 8d41762cad9b0aa72a6ee5be423306dfdc666f79 Mon Sep 17 00:00:00 2001 From: Fr0sty67 Date: Sat, 2 Oct 2021 13:38:48 +1000 Subject: [PATCH] Fixed Doglikes and Omelettestuff not applying to new symbols. Fixed non-persistent data persisting on following spins. Fixed shattered mirror not reducing the number of symbols to choose --- luckyapi/modloader/modloader.gd | 10 +++++++--- luckyapi/modloader/patches/Pop-up.gd | 8 +++++--- luckyapi/modloader/patches/Reels.gd | 1 + luckyapi/modloader/patches/SlotIcon.gd | 6 ++---- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/luckyapi/modloader/modloader.gd b/luckyapi/modloader/modloader.gd index 488d331..73e50bf 100644 --- a/luckyapi/modloader/modloader.gd +++ b/luckyapi/modloader/modloader.gd @@ -7,6 +7,7 @@ const SymbolPatcher = preload("res://modloader/SymbolPatcher.gd") const modloader_version := "v0.3.0" const expected_versions := ["v0.11"] var game_version: String = "" +const ENVIRONMENT := "PROD" var exe_dir := OS.get_executable_path().get_base_dir() @@ -30,6 +31,10 @@ var update_dynamic_groups := false func _init(tree: SceneTree): self.tree = tree +static func dprint(x): + if ENVIRONMENT == "DEV": + print(x) + func add_mod_symbol(path: String, params := {}): var script := load(path) var mod_symbol := script.new() @@ -146,14 +151,13 @@ func patch_symbol(symbol_patch, id): if not databases.group_database.symbols.has(group): databases.group_database.symbols[group] = [] - database_entry.groups = patched_groups databases.group_database.symbols[group].push_back(id) if not groups.has(group) and dynamic_groups.has(group): dynamic_groups[group].symbol_overrides[id] = true - database_entry.groups = groups + database_entry.groups = patched_groups if mod_symbol != null: - mod_symbol.groups = groups + mod_symbol.groups = patched_groups var texture := symbol_patch.patch_texture(databases.icon_texture_database[id]) databases.icon_texture_database[id] = texture diff --git a/luckyapi/modloader/patches/Pop-up.gd b/luckyapi/modloader/patches/Pop-up.gd index 1d45455..efe86da 100644 --- a/luckyapi/modloader/patches/Pop-up.gd +++ b/luckyapi/modloader/patches/Pop-up.gd @@ -18,6 +18,11 @@ func add_cards(f_rarities): var card_pool var r_chances if email.type == "add_tile": + symbols_to_choose_from = 3 + if modloader.globals.items.item_types.has("shattered_mirror") or modloader.globals.items.item_types_at_end_of_spin.has("shattered_mirror"): + symbols_to_choose_from -= modloader.databases.item_database["shattered_mirror"].values[2] + if modloader.globals.items.item_types.has("shattered_mirror_essence") or modloader.globals.items.item_types_at_end_of_spin.has("shattered_mirror_essence"): + symbols_to_choose_from -= modloader.databases.item_database["shattered_mirror_essence"].values[1] if email.extra_values.has("forced_group"): card_pool = modloader.databases.rarity_database["symbols"].duplicate(true) for c in card_pool.keys(): @@ -109,15 +114,12 @@ func add_cards(f_rarities): if rarity != null and card_pool[rarity].size() > 0: if email.type == "add_tile": var pool := card_pool[rarity] - print(pool) var weighted_pool := [] for symbol in pool: weighted_pool.push_back({ "value": symbol, "weight": get_relative_rarity(symbol) }) - print(weighted_pool) - card.data = database[modloader.weighted_random(weighted_pool)] else: card.data = database[card_pool[rarity][floor(rand_range(0, card_pool[rarity].size()))]] diff --git a/luckyapi/modloader/patches/Reels.gd b/luckyapi/modloader/patches/Reels.gd index dc242ff..6c5cde4 100644 --- a/luckyapi/modloader/patches/Reels.gd +++ b/luckyapi/modloader/patches/Reels.gd @@ -8,6 +8,7 @@ func update_icon_types(): for r in reels: for i in r.icons: r.saved_icon_data[i.grid_position.y].persistent_data = i.persistent_data + i.non_persistent_data.clear() i.has_effects = false func spin(): diff --git a/luckyapi/modloader/patches/SlotIcon.gd b/luckyapi/modloader/patches/SlotIcon.gd index 8434c12..8835406 100644 --- a/luckyapi/modloader/patches/SlotIcon.gd +++ b/luckyapi/modloader/patches/SlotIcon.gd @@ -209,10 +209,6 @@ func add_conditional_effects(): var adj_icons := self.get_adjacent_icons() if mod_symbol != null: mod_symbol.add_conditional_effects(self, adj_icons) - add_effect({"comparisons": [{"a": "destroyed", "b": true, "not_prev": true}], "value_to_change": "type", "diff": "empty", "push_front": true}) - add_effect({"comparisons": [{"a": "removed", "b": true, "not_prev": true}], "value_to_change": "type", "diff": "empty", "push_front": true}) - else: - .add_conditional_effects() var patches := modloader.symbol_patches[self.type] if patches != null: @@ -220,6 +216,8 @@ func add_conditional_effects(): if patch.has_method("add_conditional_effects"): patch.add_conditional_effects(self, adj_icons) + .add_conditional_effects() + has_effects = true func add_effect(effect):