Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
ed992cb
Translated some jokers and fixed some typos
SaintSnowKurosawa Jul 3, 2025
b20e626
CCD readability sprite
icyethics Jul 4, 2025
2915722
pluralize fixes
lord-ruby Jul 6, 2025
0ed1c94
Fix Mondrian/Dgrat triggering with labyrinth
Jevonnissocoolman Jul 7, 2025
77d4c62
update CN translation for 0.5.10~dev3 and fix wrong expressions
linsaiya Jul 7, 2025
9cdcf41
Merge pull request #743 from linsaiya/main
Jevonnissocoolman Jul 7, 2025
1d6f5db
jolly-bot: auto-format Lua files using Stylua
Jul 7, 2025
b8723cd
Merge pull request #740 from SaintSnowKurosawa/patch-1
Jevonnissocoolman Jul 7, 2025
2664072
Merge branch 'main' into patch-1
Jevonnissocoolman Jul 7, 2025
b484607
Merge pull request #741 from icyethics/patch-1
Jevonnissocoolman Jul 7, 2025
450aa0f
jolly-bot: auto-format Lua files using Stylua
Jul 7, 2025
78e3673
fix missing evaluate call
lord-ruby Jul 8, 2025
41b24cf
DE: stuff for code card log
onichama Jul 7, 2025
6ba192d
DE: added more new jokers
onichama Jul 7, 2025
5496e42
DE: added missing texts
onichama Jul 7, 2025
5f29ad3
Merge pull request #745 from onichama/main
Jevonnissocoolman Jul 9, 2025
f78b8a5
jolly-bot: auto-format Lua files using Stylua
Jul 9, 2025
855f542
increase version
Jevonnissocoolman Jul 9, 2025
118e58a
fix jolly edition not giving mult
crazybot27 Jul 10, 2025
a06f3b7
fix crash when using log on doe
crazybot27 Jul 10, 2025
6a61684
Merge pull request #750 from crazybot27/main
lord-ruby Jul 10, 2025
0dd212f
fix multiuse class, exploit, and variable being infinitely usable
crazybot27 Jul 11, 2025
f268fae
Merge pull request #751 from crazybot27/main
lord-ruby Jul 11, 2025
83f7fdd
jolly-bot: auto-format Lua files using Stylua
Jul 11, 2025
24dd11f
Merge branch 'balance-things' into temp
lord-ruby Jul 11, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cryptid.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"priority": 114,
"badge_colour": "708b91",
"badge_text_colour": "FFFFFF",
"version": "0.5.10~dev3",
"version": "0.5.10",
"dependencies": [
"Steamodded (>=1.0.0~BETA-0614a)"
],
Expand Down
Binary file added assets/1x/intercept_sprite.aseprite
Binary file not shown.
Binary file added assets/1x/intercept_sprite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/2x/intercept_sprite.aseprite
Binary file not shown.
Binary file added assets/2x/intercept_sprite.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
53 changes: 44 additions & 9 deletions items/code.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1033,15 +1033,19 @@ local exploit = {
return true
end,
use = function(self, card, area, copier)
-- Un-use the card (re-use code is in lib/misc.lua)
if not card.ability.cry_multiuse or to_big(card.ability.cry_multiuse) <= to_big(1) then
G.GAME.CODE_DESTROY_CARD = copy_card(card)
G.consumeables:emplace(G.GAME.CODE_DESTROY_CARD)
else
G.GAME.CODE_DESTROY_CARD = card
G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse = nil
end
if card.ability.cry_multiuse then
card.ability.cry_multiuse = card.ability.cry_multiuse + 1
end

G.GAME.USING_CODE = true
G.GAME.USING_EXPLOIT = true
G.GAME.ACTIVE_CODE_CARD = G.GAME.CODE_DESTROY_CARD or card
G.FUNCS.overlay_menu({ definition = G.UIDEF.exploit_menu() })
end,
}
Expand Down Expand Up @@ -3082,12 +3086,18 @@ local class = {
return { vars = { Cryptid.safe_get(card, "ability", "max_highlighted") or self.config.max_highlighted } }
end,
use = function(self, card, area, copier)
-- Un-use the card
if not card.ability.cry_multiuse or to_big(card.ability.cry_multiuse) <= to_big(1) then
G.GAME.CODE_DESTROY_CARD = copy_card(card)
G.consumeables:emplace(G.GAME.CODE_DESTROY_CARD)
G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse = nil
end
if card.ability.cry_multiuse then
card.ability.cry_multiuse = card.ability.cry_multiuse + 1
end
G.GAME.USING_CODE = true
G.GAME.USING_CLASS = card.ability.max_highlighted
G.GAME.ACTIVE_CODE_CARD = G.GAME.CODE_DESTROY_CARD or card
G.FUNCS.overlay_menu({ definition = create_UIBox_class() })
end,
init = function(self)
Expand All @@ -3111,10 +3121,19 @@ local class = {
end
G.hand:unhighlight_all()
ccl(self)
if G.GAME.CODE_DESTROY_CARD then
G.GAME.CODE_DESTROY_CARD:start_dissolve()
G.GAME.CODE_DESTROY_CARD = nil
-- Re-use the card
if G.GAME.ACTIVE_CODE_CARD then
if
not G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse
or to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) <= to_big(1)
then
G.GAME.ACTIVE_CODE_CARD:start_dissolve()
else
G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse =
lenient_bignum(to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) - to_big(1))
end
end
G.GAME.ACTIVE_CODE_CARD = nil
end
else
ccl(self)
Expand Down Expand Up @@ -3306,12 +3325,18 @@ local variable = {
return { vars = { Cryptid.safe_get(card, "ability", "max_highlighted") or self.config.max_highlighted } }
end,
use = function(self, card, area, copier)
-- Un-use the card
if not card.ability.cry_multiuse or to_big(card.ability.cry_multiuse) <= to_big(1) then
G.GAME.CODE_DESTROY_CARD = copy_card(card)
G.consumeables:emplace(G.GAME.CODE_DESTROY_CARD)
G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse = nil
end
if card.ability.cry_multiuse then
card.ability.cry_multiuse = card.ability.cry_multiuse + 1
end
G.GAME.USING_CODE = true
G.GAME.USING_VARIABLE = card.ability.max_highlighted
G.GAME.ACTIVE_CODE_CARD = G.GAME.CODE_DESTROY_CARD or card
G.FUNCS.overlay_menu({ definition = create_UIBox_variable_code() })
end,
init = function(self)
Expand All @@ -3335,10 +3360,19 @@ local variable = {
end
G.hand:unhighlight_all()
ccl(self)
if G.GAME.CODE_DESTROY_CARD then
G.GAME.CODE_DESTROY_CARD:start_dissolve()
G.GAME.CODE_DESTROY_CARD = nil
-- Re-use the card
if G.GAME.ACTIVE_CODE_CARD then
if
not G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse
or to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) <= to_big(1)
then
G.GAME.ACTIVE_CODE_CARD:start_dissolve()
else
G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse =
lenient_bignum(to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) - to_big(1))
end
end
G.GAME.ACTIVE_CODE_CARD = nil
end
else
ccl(self)
Expand Down Expand Up @@ -3485,7 +3519,8 @@ local log = {
local pseudorandom = copy_table(G.GAME.pseudorandom)
local j = {}
for i = 1, 5 do
j[#j + 1] = G.localization.descriptions["Joker"][Cryptid.predict_joker("sho")].name
local next_joker = G.localization.descriptions["Joker"][Cryptid.predict_joker("sho")]
j[#j + 1] = next_joker and next_joker.name or "[NOT A JOKER]"
end
G.GAME.pseudorandom = copy_table(pseudorandom)
G.GAME.USING_CODE = true
Expand Down
2 changes: 1 addition & 1 deletion items/misc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1693,7 +1693,7 @@ local jollyedition = {
and context.cardarea == G.play
)
then
return { card and card.edition and card.edition.mult or self.config.mult } -- updated value
return { mult = card and card.edition and card.edition.mult or self.config.mult } -- updated value
end
if context.joker_main then
card.config.trigger = true -- context.edition triggers twice, this makes it only trigger once (only for jonklers)
Expand Down
18 changes: 0 additions & 18 deletions items/misc_joker.lua
Original file line number Diff line number Diff line change
Expand Up @@ -2629,24 +2629,6 @@ local maze = {
order = 61,
immutable = true,
atlas = "atlastwo",
update = function(self, card, dt)
if G.STAGE == G.STAGES.RUN then
if G.GAME.current_round.hands_played > 0 then
G.GAME.current_round.hands_played = 0
end
if G.GAME.current_round.discards_used > 0 then
G.GAME.current_round.discards_used = 0
end
end
end,
add_to_deck = function(self, card, from_debuff)
if G.GAME.current_round.hands_played > 0 then
G.GAME.current_round.hands_played = 0
end
if G.GAME.current_round.discards_used > 0 then
G.GAME.current_round.discards_used = 0
end
end,
cry_credits = {
idea = {
"zy-b-org",
Expand Down
8 changes: 8 additions & 0 deletions lib/content.lua
Original file line number Diff line number Diff line change
Expand Up @@ -789,6 +789,14 @@ SMODS.Atlas({
px = 73,
py = 95,
})

-- CCD Clarifier Sprite
SMODS.Atlas({
key = "cry_clarifier",
path = "intercept_sprite.png",
px = 71,
py = 95,
})
SMODS.Atlas({
key = "glowingSleeve",
path = "sleeve_cry_glowing.png",
Expand Down
17 changes: 13 additions & 4 deletions lib/misc.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1168,8 +1168,8 @@ G.FUNCS.exit_overlay_menu_code = function(e)
and G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse
then
G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse = G.GAME.CODE_DESTROY_CARD.ability.cry_multiuse - 1
G.GAME.CODE_DESTROY_CARD = nil
end
G.GAME.CODE_DESTROY_CARD = nil
end

function G.UIDEF.exploit_menu()
Expand Down Expand Up @@ -1218,10 +1218,19 @@ function Controller:L_cursor_press(x, y)
and G.CONTROLLER.cursor_hover.target.config.on_demand_tooltip.filler.args
and G.GAME.hands[G.CONTROLLER.cursor_hover.target.config.on_demand_tooltip.filler.args]
then
if G.GAME.CODE_DESTROY_CARD then
G.GAME.CODE_DESTROY_CARD:start_dissolve()
G.GAME.CODE_DESTROY_CARD = nil
-- Re-use the Exploit card
if G.GAME.ACTIVE_CODE_CARD then
if
not G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse
or to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) <= to_big(1)
then
G.GAME.ACTIVE_CODE_CARD:start_dissolve()
else
G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse =
lenient_bignum(to_big(G.GAME.ACTIVE_CODE_CARD.ability.cry_multiuse) - to_big(1))
end
end
G.GAME.ACTIVE_CODE_CARD = nil
G.GAME.cry_exploit_override = G.GAME.USING_EXPLOIT_HAND
G.FUNCS.exit_overlay_menu_code()
end
Expand Down
33 changes: 33 additions & 0 deletions lib/overrides.lua
Original file line number Diff line number Diff line change
Expand Up @@ -1793,6 +1793,11 @@ end

local discard_ref = G.FUNCS.discard_cards_from_highlighted
G.FUNCS.discard_cards_from_highlighted = function(e, hook)
--Labyrinth: set current_round_discards_used to 0 for effects
G.GAME.current_round.discards_used2 = G.GAME.current_round.discards_used
if next(find_joker("cry-maze")) then
G.GAME.current_round.discards_used = 0
end
discard_ref(e, hook)
local highlighted_count = math.min(#G.hand.highlighted, G.discard.config.card_limit - #G.play.cards)
if highlighted_count <= 0 then
Expand Down Expand Up @@ -1828,9 +1833,22 @@ G.FUNCS.discard_cards_from_highlighted = function(e, hook)
end,
}))
end
--Labyrinth: return current_round_discards_used back to the amount it is supposed to be after
G.GAME.current_round.discards_used = G.GAME.current_round.discards_used2 + 1
end
local play_ref = G.FUNCS.play_cards_from_highlighted
G.FUNCS.play_cards_from_highlighted = function(e)
--Labyrinth: set current_round_hands played to 0 for effects
G.E_MANAGER:add_event(Event({
trigger = "immediate",
func = function()
G.GAME.current_round.hands_played2 = G.GAME.current_round.hands_played
if next(find_joker("cry-maze")) then
G.GAME.current_round.hands_played = 0
end
return true
end,
}))
G.GAME.before_play_buffer = true
-- None Stuff
if G.GAME.stamp_mod and not G.PROFILES[G.SETTINGS.profile].cry_none and #G.hand.highlighted == 1 then
Expand All @@ -1844,6 +1862,21 @@ G.FUNCS.play_cards_from_highlighted = function(e)
--Add blind context for Just before cards are played
G.GAME.blind:cry_before_play()
play_ref(e)
--Labyrinth: return current_round_hands played to the amount it is supposed to be at after
G.E_MANAGER:add_event(Event({
trigger = "immediate",
func = function()
G.E_MANAGER:add_event(Event({
trigger = "after",
delay = 0.1,
func = function()
G.GAME.current_round.hands_played = G.GAME.current_round.hands_played2 + 1
return true
end,
}))
return true
end,
}))
G.GAME.before_play_buffer = nil
end

Expand Down
16 changes: 16 additions & 0 deletions lib/ui.lua
Original file line number Diff line number Diff line change
Expand Up @@ -228,6 +228,22 @@ SMODS.DrawStep({
})
SMODS.draw_ignore_keys.floating_sprite2 = true

-- CCD Drawstep
local interceptorSprite = nil
SMODS.DrawStep({
key = "ccd_interceptor",
order = -5,
func = function(self)
local card_type = self.ability.set or "None"
if card_type ~= "Default" and card_type ~= "Enhanced" and self.playing_card then
interceptorSprite = interceptorSprite
or Sprite(0, 0, G.CARD_W, G.CARD_H, G.ASSET_ATLAS["cry_clarifier"], { x = 0, y = 0 })
interceptorSprite.role.draw_major = self
interceptorSprite:draw_shader("dissolve", nil, nil, nil, self.children.center)
end
end,
})

-- Make hover UI collidable - so we can detect collision and display tooltips
local m = Card.move
function Card:move(dt)
Expand Down
Loading