diff --git a/items/misc.lua b/items/misc.lua index e78758351..e284ef58f 100644 --- a/items/misc.lua +++ b/items/misc.lua @@ -2163,10 +2163,12 @@ local double_sided = { else card:remove_from_deck(true) end + local curr_pc = card.playing_card local curr_abil = copy_table(card.ability) local key = card.config.center.key local base = copy_table(card.base) local seal = card.seal + card.playing_card = card.ability.immutable.other_side.playing_card if card.ability.immutable.other_side.base then card.base = card.ability.immutable.other_side.base else @@ -2180,11 +2182,6 @@ local double_sided = { end if card.base.nominal ~= 0 then SMODS.change_base(card, card.base.suit, card.base.value) - else - if card.children.front then - card.children.front:remove() - card.children.front = nil - end end card.seal = G.P_SEALS[card.ability.immutable.other_side.seal] and card.ability.immutable.other_side.seal @@ -2194,6 +2191,8 @@ local double_sided = { card.ability.immutable = {} end card.ability.immutable.other_side = curr_abil + card.ability.immutable.other_side.base = base + card.ability.immutable.other_side.playing_card = curr_pc card.ability.immutable.other_side.key = key card.ability.immutable.other_side.seal = G.P_SEALS[seal] and seal or nil if next(find_joker("cry-Flip Side")) then @@ -2213,9 +2212,11 @@ local double_sided = { card:remove_from_deck(true) end local curr_abil = copy_table(card.ability) + local curr_pc = card.playing_card local key = card.config.center.key local seal = card.seal local base = copy_table(card.base) + card.playing_card = card.ability.immutable.other_side.playing_card if card.ability.immutable.other_side.base then card.base = card.ability.immutable.other_side.base else @@ -2229,11 +2230,6 @@ local double_sided = { end if card.base.nominal ~= 0 then SMODS.change_base(card, card.base.suit, card.base.value) - else - if card.children.front then - card.children.front:remove() - card.children.front = nil - end end card.seal = G.P_SEALS[card.ability.immutable.other_side.seal] and card.ability.immutable.other_side.seal @@ -2246,6 +2242,7 @@ local double_sided = { card.ability.immutable = {} end card.ability.immutable.other_side = curr_abil + card.ability.immutable.other_side.playing_card = curr_pc card.ability.immutable.other_side.key = key card.ability.immutable.other_side.seal = G.P_SEALS[seal] and seal or nil if next(find_joker("cry-Flip Side")) then @@ -2325,6 +2322,14 @@ local double_sided = { return no_suitref(card) end + local should_hide_frontref = Card.should_hide_front + function Card:should_hide_front(...) + if self.edition and self.edition.key == "e_cry_double_sided" and not self.base.value then + return true + end + return should_hide_frontref(self, ...) + end + -- local calculate_joker = Card.calculate_joker -- function Card:calculate_joker(context) -- if next(SMODS.find_card("cry-Flip Side")) and type(self.ability.immutable.other_side) ~= "string" and self.ability.immutable.other_side then @@ -2458,6 +2463,7 @@ G.FUNCS.merge_ds = function(e) card.ability.immutable.other_side = copy_table(other.ability) card.ability.immutable.other_side.key = copy_table(other.config.center.key) card.ability.immutable.other_side.seal = copy_table(other.seal) + card.ability.immutable.other_side.playing_card = other.playing_card if other.base.nominal ~= 0 then card.ability.immutable.other_side.base = copy_table(other.base) end