Skip to content
26 changes: 16 additions & 10 deletions items/misc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down