LOVELY_INTEGRITY = 'e8cd6ceef85971448b1b28bb95d2a4b68928ef66a2261cc19c1e9c7de9c6d3b8' --class Blind = Moveable:extend() --class methods function Blind:init(X, Y, W, H) Moveable.init(self,X, Y, W, H) self.children = {} self.config = {} self.tilt_var = {mx = 0, my = 0, amt = 0} self.ambient_tilt = 0.3 self.chips = 0 self.zoom = true self.states.collide.can = true self.colour = copy_table(G.C.BLACK) self.dark_colour = darken(self.colour, 0.2) self.children.animatedSprite = AnimatedSprite(self.T.x, self.T.y, self.T.w, self.T.h, G.ANIMATION_ATLAS['blind_chips'], G.P_BLINDS.bl_small.pos) self.children.animatedSprite.states = self.states self.children.animatedSprite.states.visible = false self.children.animatedSprite.states.drag.can = true self.states.collide.can = true self.states.drag.can = true self.loc_debuff_lines = {'',''} self.shadow_height = 0 if getmetatable(self) == Blind then table.insert(G.I.CARD, self) end end function Blind:change_colour(blind_col) blind_col = blind_col or get_blind_main_colour(self.config.blind.key or '') local dark_col = mix_colours(blind_col, G.C.BLACK, 0.4) ease_colour(G.C.DYN_UI.MAIN, blind_col) ease_colour(G.C.DYN_UI.DARK, dark_col) if not self.boss and self.name then blind_col = darken(G.C.BLACK, 0.05) dark_col = lighten(G.C.BLACK, 0.07) else dark_col = mix_colours(blind_col, G.C.BLACK, 0.2) end ease_colour(G.C.DYN_UI.BOSS_MAIN, blind_col) ease_colour(G.C.DYN_UI.BOSS_DARK, dark_col) end function Blind:set_text() if self.config.blind then if self.disabled then self.loc_name = self.name == '' and self.name or localize{type ='name_text', key = self.config.blind.key, set = 'Blind'} self.loc_debuff_text = '' EMPTY(self.loc_debuff_lines) else local loc_vars = nil if self.name == 'The Ox' then loc_vars = {localize(G.GAME.current_round.most_played_poker_hand, 'poker_hands')} end local obj = self.config.blind if obj.loc_vars and type(obj.loc_vars) == 'function' then local res = obj:loc_vars() or {} loc_vars = res.vars or {} end local loc_target = localize{type = 'raw_descriptions', key = self.config.blind.key, set = 'Blind', vars = loc_vars or self.config.blind.vars} if loc_target then self.loc_name = self.name == '' and self.name or localize{type ='name_text', key = self.config.blind.key, set = 'Blind'} self.loc_debuff_text = '' EMPTY(self.loc_debuff_lines) for k, v in ipairs(loc_target) do self.loc_debuff_text = self.loc_debuff_text..v..(k <= #loc_target and ' ' or '') self.loc_debuff_lines[k] = v end else self.loc_name = ''; self.loc_debuff_text = '' EMPTY(self.loc_debuff_lines) end end end end function Blind:set_blind(blind, reset, silent) if not reset then if blind then self.in_blind = true end self.config.blind = blind or {} self.name = blind and blind.name or '' self.dollars = blind and blind.dollars or 0 self.sound_pings = self.dollars + 2 if G.GAME.modifiers.no_blind_reward and G.GAME.modifiers.no_blind_reward[self:get_type()] then self.dollars = 0 end self.debuff = blind and blind.debuff or {} self.pos = blind and blind.pos self.mult = blind and blind.mult or 0 self.disabled = false self.discards_sub = nil self.hands_sub = nil self.boss = blind and not not blind.boss self.blind_set = false self.triggered = nil self.prepped = true self:set_text() local obj = self.config.blind self.children.animatedSprite.atlas = G.ANIMATION_ATLAS[obj.atlas] or G.ANIMATION_ATLAS['blind_chips'] G.GAME.last_blind = G.GAME.last_blind or {} G.GAME.last_blind.boss = self.boss G.GAME.last_blind.name = self.name if blind and blind.name then self:change_colour() else self:change_colour(G.C.BLACK) end self.chips = get_blind_amount(G.GAME.round_resets.ante)*self.mult*G.GAME.starting_params.ante_scaling self.chip_text = number_format(self.chips) if not blind then self.chips = 0 end G.GAME.current_round.dollars_to_be_earned = self.dollars > 0 and (string.rep(localize('$'), self.dollars)..'') or ('') G.HUD_blind.alignment.offset.y = -10 G.HUD_blind:recalculate(false) if blind and blind.name and blind.name ~= '' then self:alert_debuff(true) G.E_MANAGER:add_event(Event({ trigger = 'after', delay = 0.05, blockable = false, func = (function() G.HUD_blind:get_UIE_by_ID("HUD_blind_name").states.visible = false G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = false G.HUD_blind.alignment.offset.y = 0 G.E_MANAGER:add_event(Event({ trigger = 'after', delay = 0.15, blockable = false, func = (function() G.HUD_blind:get_UIE_by_ID("HUD_blind_name").states.visible = true G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").parent.parent.states.visible = true G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:pop_in(0) G.HUD_blind:get_UIE_by_ID("HUD_blind_name").config.object:pop_in(0) G.HUD_blind:get_UIE_by_ID("HUD_blind_count"):juice_up() self.children.animatedSprite:set_sprite_pos(self.config.blind.pos) self.blind_set = true G.ROOM.jiggle = G.ROOM.jiggle + 3 if not reset and not silent then self:juice_up() if blind then play_sound('chips1', math.random()*0.1 + 0.55, 0.42);play_sound('gold_seal', math.random()*0.1 + 1.85, 0.26)--play_sound('cancel') end end return true end) })) return true end) })) end self.config.h_popup_config ={align="tm", offset = {x=0,y=-0.1},parent = self} end if self.name == 'The Eye' and not reset then self.hands = { ["Flush Five"] = false, ["Flush House"] = false, ["Five of a Kind"] = false, ["Straight Flush"] = false, ["Four of a Kind"] = false, ["Full House"] = false, ["Flush"] = false, ["Straight"] = false, ["Three of a Kind"] = false, ["Two Pair"] = false, ["Pair"] = false, ["High Card"] = false, } end if self.name == 'The Mouth' and not reset then self.only_hand = false end if self.name == 'The Fish' and not reset then self.prepped = nil end if self.name == 'The Water' and not reset then self.discards_sub = G.GAME.current_round.discards_left ease_discard(-self.discards_sub) end if self.name == 'The Needle' and not reset then self.hands_sub = G.GAME.round_resets.hands - 1 ease_hands_played(-self.hands_sub) end if self.name == 'The Manacle' and not reset then G.hand:change_size(-1) end if self.name == 'Amber Acorn' and not reset and #G.jokers.cards > 0 then G.jokers:unhighlight_all() for k, v in ipairs(G.jokers.cards) do v:flip() end if #G.jokers.cards > 1 then G.E_MANAGER:add_event(Event({ trigger = 'after', delay = 0.2, func = function() G.E_MANAGER:add_event(Event({ func = function() G.jokers:shuffle('aajk'); play_sound('cardSlide1', 0.85);return true end })) delay(0.15) G.E_MANAGER:add_event(Event({ func = function() G.jokers:shuffle('aajk'); play_sound('cardSlide1', 1.15);return true end })) delay(0.15) G.E_MANAGER:add_event(Event({ func = function() G.jokers:shuffle('aajk'); play_sound('cardSlide1', 1);return true end })) delay(0.5) return true end })) end end if not reset then if blind then self.in_blind = true end local obj = self.config.blind if obj.set_blind and type(obj.set_blind) == 'function' then obj:set_blind() end end --add new debuffs for _, v in ipairs(G.playing_cards) do self:debuff_card(v) end for _, v in ipairs(G.jokers.cards) do if not reset then self:debuff_card(v, true) end end G.ARGS.spin.real = (G.SETTINGS.reduced_motion and 0 or 1)*(self.config.blind.boss and (self.config.blind.boss.showdown and 0.5 or 0.25) or 0) end function Blind:alert_debuff(first) if self.loc_debuff_text and self.loc_debuff_text ~= '' then self.block_play = true G.E_MANAGER:add_event(Event({ blockable = false, blocking = false, func = (function() if self.disabled then self.block_play = nil; return true end if G.STATE == G.STATES.SELECTING_HAND then G.E_MANAGER:add_event(Event({ trigger = 'after', delay = G.SETTINGS.GAMESPEED*0.05, blockable = false, func = (function() play_sound('whoosh1', 0.55, 0.62) for i = 1, 4 do local wait_time = (0.1*(i-1)) G.E_MANAGER:add_event(Event({ blockable = false, trigger = 'after', delay = G.SETTINGS.GAMESPEED*wait_time, func = function() if i == 1 then self:juice_up() end play_sound('cancel', 0.7 + 0.05*i, 0.7) return true end })) end local hold_time = G.SETTINGS.GAMESPEED*(#self.loc_debuff_text*0.035 + 1.3) local disp_text = self:get_loc_debuff_text() attention_text({ scale = 0.7, text = disp_text, maxw = 12, hold = hold_time, align = 'cm', offset = {x = 0,y = -1},major = G.play }) G.E_MANAGER:add_event(Event({ trigger = 'after', delay = 1, blocking = false, blockable = false, func = (function() self.block_play = nil if G.buttons then local _buttons = G.buttons:get_UIE_by_ID('play_button') _buttons.disable_button = nil end return true end) })) return true end) })) return true end end) })) end end function Blind:get_loc_debuff_text() local obj = self.config.blind if obj.get_loc_debuff_text and type(obj.get_loc_debuff_text) == 'function' then return obj:get_loc_debuff_text() end local disp_text = (self.config.blind.name == 'The Wheel' and G.GAME.probabilities.normal or '')..self.loc_debuff_text if (self.config.blind.name == 'The Mouth') and self.only_hand then disp_text = disp_text..' ['..localize(self.only_hand, 'poker_hands')..']' end return disp_text end function Blind:defeat(silent) local dissolve_time = 1.3 local extra_time = 0 self.dissolve = 0 self.dissolve_colours = {G.C.BLACK, G.C.RED} self:juice_up() self.children.particles = Particles(0, 0, 0,0, { timer_type = 'TOTAL', timer = 0.01*dissolve_time, scale = 0.1, speed = 1.5, lifespan = 0.7*dissolve_time, attach = self, colours = self.dissolve_colours, fill = true }) local blind_name_dynatext = G.HUD_blind:get_UIE_by_ID('HUD_blind_name').config.object blind_name_dynatext:pop_out(2) G.E_MANAGER:add_event(Event({ trigger = 'after', blockable = false, delay = 0.5*dissolve_time, func = (function() self.children.particles.max = 0 return true end) })) if not silent then for i = 1, math.min(self.sound_pings or 3, 7) do extra_time = extra_time + (0.4+0.15*i)*dissolve_time G.E_MANAGER:add_event(Event({ blockable = false, trigger = 'after', delay = (0.15 - 0.01*(self.sound_pings or 3))*i*dissolve_time, func = function() play_sound('cancel', 0.8 - 0.05*i, 1.7) if i == math.min((self.sound_pings or 3)+1, 6) then play_sound('whoosh2', 0.7, 0.42) end return true end })) end end G.E_MANAGER:add_event(Event({ trigger = 'ease', blockable = false, ref_table = self, ref_value = 'dissolve', ease_to = 1, delay = 0.7*dissolve_time, func = (function(t) return t end) })) G.E_MANAGER:add_event(Event({ trigger = 'after', blockable = false, delay = 0.8*dissolve_time, func = (function() G.HUD_blind.alignment.offset.y = -10 return true end) })) G.E_MANAGER:add_event(Event({ trigger = 'after', blockable = false, delay = 0.95*dissolve_time, func = (function() self.dissolve = nil self:set_blind(nil, nil, true) return true end) })) for k, v in ipairs(G.jokers.cards) do if v.facing == 'back' then v:flip() end end local obj = self.config.blind if obj.defeat and type(obj.defeat) == 'function' then obj:defeat() end if self.name == 'Crimson Heart' then for _, v in ipairs(G.jokers.cards) do v.ability.crimson_heart_chosen = nil end end if self.name == 'The Manacle' and not self.disabled then G.hand:change_size(1) end end function Blind:get_type() if self.name == "Small Blind" then return 'Small' elseif self.name == "Big Blind" then return 'Big' elseif self.name and self.name ~= '' then return 'Boss' end end function Blind:disable() self.disabled = true for k, v in ipairs(G.jokers.cards) do if v.facing == 'back' then v:flip() end end local obj = self.config.blind if obj.disable and type(obj.disable) == 'function' then obj:disable() end if self.name == 'Crimson Heart' then for _, v in ipairs(G.jokers.cards) do v.ability.crimson_heart_chosen = nil end end if self.name == 'The Water' then ease_discard(self.discards_sub) end if self.name == 'The Wheel' or self.name == 'The House' or self.name == 'The Mark' or self.name == 'The Fish' then for i = 1, #G.hand.cards do if G.hand.cards[i].facing == 'back' then G.hand.cards[i]:flip() end end for k, v in pairs(G.playing_cards) do v.ability.wheel_flipped = nil end end if self.name == 'The Needle' then ease_hands_played(self.hands_sub) end if self.name == 'The Wall' then self.chips = self.chips/2 self.chip_text = number_format(self.chips) end if self.name == 'Cerulean Bell' then for k, v in ipairs(G.playing_cards) do v.ability.forced_selection = nil end end if self.name == 'The Manacle' then G.hand:change_size(1) end if self.name == 'The Serpent' then end if self.name == 'Violet Vessel' then self.chips = self.chips/3 self.chip_text = number_format(self.chips) end G.E_MANAGER:add_event(Event({ trigger = 'immediate', func = function() if self.boss and to_big(G.GAME.chips) - G.GAME.blind.chips >= to_big(0) then G.STATE = G.STATES.NEW_ROUND G.STATE_COMPLETE = false end return true end })) for _, v in ipairs(G.playing_cards) do self:debuff_card(v) end for _, v in ipairs(G.jokers.cards) do self:debuff_card(v) end self:set_text() self:wiggle() end function Blind:wiggle() self.children.animatedSprite:juice_up(0.3) G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.06*G.SETTINGS.GAMESPEED, blockable = false, blocking = false, func = function() play_sound('tarot2', 0.76, 0.4);return true end})) play_sound('tarot2', 1, 0.4) end function Blind:juice_up(_a, _b) self.children.animatedSprite:juice_up(_a or 0.2, _b or 0.2) end function Blind:hover() if not G.CONTROLLER.dragging.target or G.CONTROLLER.using_touch then if not self.hovering and self.states.visible and self.children.animatedSprite.states.visible then self.hovering = true self.hover_tilt = 2 self.children.animatedSprite:juice_up(0.05, 0.02) play_sound('chips1', math.random()*0.1 + 0.55, 0.12) Node.hover(self) end end end function Blind:stop_hover() self.hovering = false self.hover_tilt = 0 Node.stop_hover(self) end function Blind:draw() if not self.states.visible then return end self.tilt_var = self.tilt_var or {} self.tilt_var.mx, self.tilt_var.my =G.CONTROLLER.cursor_position.x,G.CONTROLLER.cursor_position.y self.children.animatedSprite.role.draw_major = self self.children.animatedSprite:draw_shader('dissolve', 0.1) self.children.animatedSprite:draw_shader('dissolve') for k, v in pairs(self.children) do if k ~= 'animatedSprite' then v.VT.scale = self.VT.scale v:draw() end end add_to_drawhash(self) end function Blind:press_play() if self.disabled then return end local obj = self.config.blind if obj.press_play and type(obj.press_play) == 'function' then return obj:press_play() end if self.name == "The Hook" then G.E_MANAGER:add_event(Event({ func = function() local any_selected = nil local _cards = {} for k, v in ipairs(G.hand.cards) do _cards[#_cards+1] = v end for i = 1, 2 do if G.hand.cards[i] then local selected_card, card_key = pseudorandom_element(_cards, pseudoseed('hook')) G.hand:add_to_highlighted(selected_card, true) table.remove(_cards, card_key) any_selected = true play_sound('card1', 1) end end if any_selected then G.FUNCS.discard_cards_from_highlighted(nil, true) end return true end })) self.triggered = true delay(0.7) return true end if self.name == 'Crimson Heart' then if G.jokers.cards[1] then self.triggered = true self.prepped = true end end if self.name == 'The Fish' then self.prepped = true end if self.name == "The Tooth" then G.E_MANAGER:add_event(Event({trigger = 'after', delay = 0.2, func = function() for i = 1, #G.play.cards do G.E_MANAGER:add_event(Event({func = function() G.play.cards[i]:juice_up(); return true end })) ease_dollars(-1) delay(0.23) end return true end })) self.triggered = true return true end end function Blind:modify_hand(cards, poker_hands, text, mult, hand_chips) if self.disabled then return mult, hand_chips, false end local obj = self.config.blind if obj.modify_hand and type(obj.modify_hand) == 'function' then return obj:modify_hand(cards, poker_hands, text, mult, hand_chips) end if self.name == "The Flint" then self.triggered = true return math.max(math.floor(mult*0.5 + 0.5), 1), math.max(math.floor(hand_chips*0.5 + 0.5), 0), true end return mult, hand_chips, false end function Blind:debuff_hand(cards, hand, handname, check) if self.disabled then return end local obj = self.config.blind if obj.debuff_hand and type(obj.debuff_hand) == 'function' then return obj:debuff_hand(cards, hand, handname, check) end if self.debuff then self.triggered = false if self.debuff.hand and next(hand[self.debuff.hand]) then self.triggered = true return true end if self.name == "The Psychic" and #cards > 5 then self.triggered = true return true end if self.debuff.h_size_ge and #cards < self.debuff.h_size_ge then self.triggered = true return true end if self.debuff.h_size_le and #cards > self.debuff.h_size_le then self.triggered = true return true end if self.name == "The Eye" then if self.hands[handname] then self.triggered = true return true end if not check then self.hands[handname] = true end end if self.name == "The Mouth" then if self.only_hand and self.only_hand ~= handname then self.triggered = true return true end if not check then self.only_hand = handname end end end if self.name == 'The Arm' then self.triggered = false if G.GAME.hands[handname].level > 1 then self.triggered = true if not check then level_up_hand(self.children.animatedSprite, handname, nil, -1) self:wiggle() end end end if self.name == 'The Ox' then self.triggered = false if handname == G.GAME.current_round.most_played_poker_hand then self.triggered = true if not check then ease_dollars(-G.GAME.dollars, true) self:wiggle() end end end end function Blind:drawn_to_hand() if not self.disabled then local obj = self.config.blind if obj.drawn_to_hand and type(obj.drawn_to_hand) == 'function' then obj:drawn_to_hand() end if self.name == 'Cerulean Bell' then local any_forced = nil for k, v in ipairs(G.hand.cards) do if v.ability.forced_selection then any_forced = true end end if not any_forced then G.hand:unhighlight_all() local forced_card = pseudorandom_element(G.hand.cards, pseudoseed('cerulean_bell')) forced_card.ability.forced_selection = true G.hand:add_to_highlighted(forced_card) end end if self.name == 'Crimson Heart' and self.prepped and G.jokers.cards[1] then local prev_chosen_set = {} local fallback_jokers = {} local jokers = {} for i = 1, #G.jokers.cards do if G.jokers.cards[i].ability.crimson_heart_chosen then prev_chosen_set[G.jokers.cards[i]] = true G.jokers.cards[i].ability.crimson_heart_chosen = nil if G.jokers.cards[i].debuff then SMODS.recalc_debuff(G.jokers.cards[i]) end end end for i = 1, #G.jokers.cards do if not G.jokers.cards[i].debuff then if not prev_chosen_set[G.jokers.cards[i]] then jokers[#jokers+1] = G.jokers.cards[i] end table.insert(fallback_jokers, G.jokers.cards[i]) end end if #jokers == 0 then jokers = fallback_jokers end local _card = pseudorandom_element(jokers, pseudoseed('crimson_heart')) if _card then _card.ability.crimson_heart_chosen = true SMODS.recalc_debuff(_card) _card:juice_up() self:wiggle() end end end self.prepped = nil end function Blind:stay_flipped(area, card) if not self.disabled then local obj = self.config.blind if obj.stay_flipped and type(obj.stay_flipped) == 'function' then return obj:stay_flipped(area, card) end if area == G.hand then if self.name == 'The Wheel' and pseudorandom(pseudoseed('wheel')) < G.GAME.probabilities.normal/7 then return true end if self.name == 'The House' and G.GAME.current_round.hands_played == 0 and G.GAME.current_round.discards_used == 0 then return true end if self.name == 'The Mark' and card:is_face(true) then return true end if self.name == 'The Fish' and self.prepped then return true end end end end function Blind:debuff_card(card, from_blind) local obj = self.config.blind if not self.disabled and obj.recalc_debuff and type(obj.recalc_debuff) == 'function' then if obj:recalc_debuff(card, from_blind) then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end else card:set_debuff(false) end return elseif not self.disabled and obj.debuff_card and type(obj.debuff_card) == 'function' then sendWarnMessage(("Blind object %s has debuff_card function, recalc_debuff is preferred"):format(obj.key), obj.set) if obj:debuff_card(card, from_blind) then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end else card:set_debuff(false) end return end if self.debuff and not self.disabled and card.area ~= G.jokers then if self.debuff.suit and card:is_suit(self.debuff.suit, true) then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end return end if self.debuff.is_face =='face' and card:is_face(true) then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end return end if self.name == 'The Pillar' and card.ability.played_this_ante then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end return end if self.debuff.value and self.debuff.value == card.base.value then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end return end if self.debuff.nominal and self.debuff.nominal == card.base.nominal then card:set_debuff(true) if card.debuff then card.debuffed_by_blind = true end return end end if self.name == 'Crimson Heart' and not self.disabled and card.area == G.jokers then if card.ability.crimson_heart_chosen then card:set_debuff(true); if card.debuff then card.debuffed_by_blind = true end return end end if self.name == 'Verdant Leaf' and not self.disabled and card.area ~= G.jokers then card:set_debuff(true); if card.debuff then card.debuffed_by_blind = true end; return end card:set_debuff(false) end function Blind:move(dt) Moveable.move(self, dt) self:align() end function Blind:change_dim(w, h) self.T.w = w or self.T.w self.T.h = h or self.T.h self.children.animatedSprite.T.w = w or self.T.w self.children.animatedSprite.T.h = h or self.T.h self.children.animatedSprite:rescale() end function Blind:align() for k, v in pairs(self.children) do if k == 'animatedSprite' then if not v.states.drag.is then v.T.r = 0.02*math.sin(2*G.TIMERS.REAL+self.T.x) v.T.y = self.T.y + 0.03*math.sin(0.666*G.TIMERS.REAL+self.T.x) self.shadow_height = 0.1 - (0.04 + 0.03*math.sin(0.666*G.TIMERS.REAL+self.T.x)) v.T.x = self.T.x + 0.03*math.sin(0.436*G.TIMERS.REAL+self.T.x) end else v.T.x = self.T.x v.T.y = self.T.y v.T.r = self.T.r end end end function Blind:save() local blindTable = { in_blind = self.in_blind, name = self.name, dollars = self.dollars, debuff = self.debuff, pos = self.pos, mult = self.mult, disabled = self.disabled, discards_sub = self.discards_sub, hands_sub = self.hands_sub, boss = self.boss, config_blind = '', chips = self.chips, chip_text =self.chip_text, hands = self.hands, only_hand = self.only_hand, triggered = self.triggered } for k, v in pairs(G.P_BLINDS) do if v and v.name and v.name == blindTable.name then blindTable.config_blind = k end end return blindTable end function Blind:load(blindTable) self.in_blind = blindTable.in_blind self.config.blind = G.P_BLINDS[blindTable.config_blind] or {} self.name = blindTable.name self.dollars = blindTable.dollars self.debuff = blindTable.debuff self.pos = blindTable.pos self.mult = blindTable.mult self.disabled = blindTable.disabled self.discards_sub = blindTable.discards_sub self.hands_sub = blindTable.hands_sub self.boss = blindTable.boss self.chips = blindTable.chips self.chip_text = blindTable.chip_text self.hands = blindTable.hands self.only_hand = blindTable.only_hand self.triggered = blindTable.triggered G.ARGS.spin.real = (G.SETTINGS.reduced_motion and 0 or 1)*(self.config.blind.boss and (self.config.blind.boss.showdown and 1 or 0.3) or 0) if G.P_BLINDS[blindTable.config_blind] then if self.config.blind.atlas then self.children.animatedSprite.atlas = G.ANIMATION_ATLAS[self.config.blind.atlas] end self.blind_set = true self.children.animatedSprite.states.visible = true self.children.animatedSprite:set_sprite_pos(self.config.blind.pos) self.children.animatedSprite:juice_up(0.3) self:align() self.children.animatedSprite:hard_set_VT() else self.children.animatedSprite.states.visible = false end self.children.animatedSprite.states = self.states self:change_colour() if self.dollars > 0 then G.GAME.current_round.dollars_to_be_earned = string.rep(localize('$'), self.dollars)..'' G.HUD_blind:get_UIE_by_ID("dollars_to_be_earned").config.object:pop_in(0) end if G.GAME.blind.name and G.GAME.blind.name ~= '' then G.HUD_blind.alignment.offset.y = 0 end self:set_text() end