Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
e999c85
Quantum Ranks: Straight detection implemented and Card:get_ranks() + …
AllUniversal Jul 25, 2025
6108f88
Replaced card_rep.straight_pos with a set of all used card_reps + som…
AllUniversal Jul 25, 2025
9ab87a6
Updated/Implemented get_X_same(), added QoL functions, fully patched …
AllUniversal Jul 27, 2025
1ebe30e
Merge branch 'main' into Quantum-Ranks
AllUniversal Jul 27, 2025
517b6fc
Added some LSP defs and fixed a mistake in straight calculation
AllUniversal Jul 27, 2025
f64f8f2
Important straight calc optimization
AllUniversal Jul 28, 2025
27b6168
Added ´source_context´ parameter to ´context.get_ranks´ and fixed sma…
AllUniversal Jul 29, 2025
906d8c9
Fixed `get_X_same()` behaving incorrectly for Full House calculation.
AllUniversal Jul 30, 2025
4405feb
Merge branch 'main' into Quantum-Ranks
AllUniversal Jul 30, 2025
de2a96a
Removed unintentionally committed changes from other PR (Woopsie)
AllUniversal Jul 30, 2025
99ab0b7
Merge branch 'Quantum-Ranks' of https://github.com/AllUniversal/smods…
AllUniversal Jul 30, 2025
36ae7f3
Added `eval_getting_ranks` default `source_context` for `get_ranks()`…
AllUniversal Jul 30, 2025
b1db29c
Reworked `get_X_same()` and the corresponding hand parts and added de…
AllUniversal Aug 1, 2025
483d4d9
Removed debug print statement
AllUniversal Aug 1, 2025
149bc54
Added `Stone card` compatibility
AllUniversal Aug 1, 2025
36dd792
Moved `Card:is_rank()`, `Card:get_ranks()`, etc. into `utils.lua`, ad…
AllUniversal Aug 4, 2025
4a09307
Fixed `Card:get_ranks()` returning a rank for stone cards if quantum_…
AllUniversal Aug 4, 2025
5e0001f
Reordered `Card:is_face()` Pareidolia check and `get_ranks()` call.
AllUniversal Aug 4, 2025
ea8ac3c
Removed faulty empty check before returning in `Card:get_ranks()`
AllUniversal Aug 4, 2025
18a5664
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 8, 2025
6bdbf97
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 8, 2025
f55c4f8
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 10, 2025
d9d63b0
Improved functionality of `Rank.straight_edge`
AllUniversal Aug 10, 2025
9c37830
Updated vanilla `get_straight()` implementation to work with updated …
AllUniversal Aug 10, 2025
af50a6e
Fixed (potential) edge case when checking `#best_straight >= #hand - 1`
AllUniversal Aug 11, 2025
509bbee
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 11, 2025
b4889de
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 13, 2025
4f61358
Added new flag to toggle optional optimization, `quantum_straight_min…
AllUniversal Aug 13, 2025
ba1d6aa
Removed `context` argument from `is_rank()` calls.
AllUniversal Aug 13, 2025
c13f17d
LSP defs mini update
AllUniversal Aug 15, 2025
d140f9c
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 16, 2025
3477c34
Fixed `flags` param of `get_ranks()` etc. not being set in all cases …
AllUniversal Aug 17, 2025
a1ab9b7
Minor LSP defs update
AllUniversal Aug 20, 2025
54077b3
Changed `Card:get_ranks()` etc. to use `SMODS.has_no_rank()`
AllUniversal Aug 20, 2025
fda0e13
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 21, 2025
174f314
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 21, 2025
657079c
Implemented `Wild Rank` API
AllUniversal Aug 21, 2025
bff20d1
Updated `SMODS.has_no_rank()` and fixed a minor Wild rank straight ca…
AllUniversal Aug 21, 2025
65a70b1
Added `Card:is_parity()` function
AllUniversal Aug 24, 2025
8d9d9c6
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 25, 2025
852b373
Merge branch 'main' into Quantum-Ranks
AllUniversal Aug 25, 2025
ad60969
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Aug 28, 2025
f59672e
Fixed vanilla `Four of a kind` also counting as `Two Pair` and Joker …
AllUniversal Aug 28, 2025
6ac92de
Updated parity according to feedback
AllUniversal Sep 3, 2025
19aafba
Implemented general `get_quantum_pairing()` function as requested
AllUniversal Sep 4, 2025
d1faa67
Woopsie
AllUniversal Sep 4, 2025
ab29bea
Changed `context.ranks` to be a map instead of a list.
AllUniversal Sep 5, 2025
3856ce1
Redid `context.get_ranks` to not be bad
AllUniversal Sep 5, 2025
11978b1
Changed `Card:get_ranks()` to return a map and added missing Wild Ran…
AllUniversal Sep 5, 2025
ea638d1
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 6, 2025
c391262
Added `get_ranks` to `SMODS.is_getter_context()`
AllUniversal Sep 6, 2025
21880de
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 7, 2025
4a10e35
Added some crash safeguards to rank functions
AllUniversal Sep 8, 2025
b67d48c
Added `SMODS.get_rank_tally()`
AllUniversal Sep 8, 2025
46c3ac8
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 13, 2025
8279528
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 16, 2025
a10b7eb
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 19, 2025
2028f2c
Missing `end`
AllUniversal Sep 19, 2025
c53feb5
Renamed `Card:is_any_rank()` to `Card:is_ranks()` and added an `all` …
AllUniversal Sep 20, 2025
3ebcc33
Updated `Card:is_ranks()` to avoid Wild Rank cards counting as more t…
AllUniversal Sep 20, 2025
6fc1ad9
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 21, 2025
442f9cc
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 25, 2025
30f69bb
Replaced `straight_edges` with new `VirtualRank` class
AllUniversal Sep 25, 2025
a678eb3
More LSP defs and small fix
AllUniversal Sep 26, 2025
88dce31
Updated `SMODS.has_no_rank()` to correctly account for wild ranks + s…
AllUniversal Sep 26, 2025
ea8540f
Reworked `get_straight()` because I realized it had a problem
AllUniversal Sep 26, 2025
16cc932
Adjusted `get_straight()` optimizations further
AllUniversal Sep 26, 2025
e1a5ead
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Sep 30, 2025
30a8e5e
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Oct 4, 2025
7ef340a
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Oct 12, 2025
060bf7b
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Oct 12, 2025
6526bd7
Added `is_royal` field + functions for `SMODS.Rank` and `Card`
AllUniversal Oct 13, 2025
16e0cd0
Changed context `no_mod` updating to allow overriding.
AllUniversal Oct 14, 2025
a4d3452
Added Cloud Nine implementation (untested)
AllUniversal Oct 16, 2025
fac3fcc
Added LSP def for new `get_ranks.flags` default value
AllUniversal Oct 16, 2025
13333f2
Updated lovely patch for calling a card's center's update function
AllUniversal Oct 20, 2025
23654b5
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Oct 28, 2025
dcc12fa
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Nov 19, 2025
39f101f
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Nov 19, 2025
d594f61
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Dec 1, 2025
5a38776
Added `SMODS.lowest_and_highest_rank()` + LSP defs
AllUniversal Dec 1, 2025
ea31f52
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Dec 19, 2025
95d5605
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Jan 8, 2026
99cda99
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Feb 21, 2026
bbd57c7
Merge branch 'main' into pr/AllUniversal/838
nh6574 Mar 28, 2026
d127ffa
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Mar 31, 2026
a21318c
Added `SMODS.match_cards()` and related functions
AllUniversal Apr 1, 2026
98ae5cf
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 1, 2026
cfa0cd2
Added `SMODS.get_hand_from_matching()` to allow using matching for de…
AllUniversal Apr 1, 2026
fd85471
LSP defs
AllUniversal Apr 1, 2026
8f10071
More LSP defs + `matcher` condition `check_function`
AllUniversal Apr 1, 2026
092f0d8
Another `matcher` condition; `suit`
AllUniversal Apr 1, 2026
bc515c0
Moved `matcher` code to separate PR.
AllUniversal Apr 2, 2026
b0d60fe
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 4, 2026
1f22210
Refactored `SMODS.is_getter_context()` -> `SMODS.get_context_type()`
AllUniversal Apr 10, 2026
144c079
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 10, 2026
5c7b6c8
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 20, 2026
23dfec3
Initial commit, first API stuff
AllUniversal Apr 21, 2026
d065266
More WIP helper func stuff
AllUniversal Apr 21, 2026
2068631
`has_funcs` (partially) implemented
AllUniversal Apr 21, 2026
5aafb62
Added required `g_obj_table` field to `SMODS.QuantumCardField`
AllUniversal Apr 21, 2026
fae2823
WIP `getter` stuff
AllUniversal Apr 21, 2026
57d0074
Merge branch 'context-types-refactor' into general-quantum-api
AllUniversal Apr 21, 2026
268f8e9
Merged context types rework/refactor into this.
AllUniversal Apr 21, 2026
dcb2946
Refactored `SMODS.current_evaluated_object`
AllUniversal Apr 22, 2026
a6add96
First changes according to review.
AllUniversal Apr 22, 2026
df2ad0d
Further refactoring
AllUniversal Apr 22, 2026
8d178c1
Added `SMODS.CardAbilityField` for modular `x_chips` etc. + WIP quant…
AllUniversal Apr 26, 2026
6b967b3
QField calculate WIP
AllUniversal Apr 26, 2026
a272dd0
Missing default value clear in general has func
AllUniversal Apr 26, 2026
3c2aacf
Removed old has funcs and added `.any_...`/`.no_...` compat
AllUniversal Apr 26, 2026
e7f5ac8
Updated `SMODS.CONTEXT_TYPES`
AllUniversal Apr 26, 2026
0587a58
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 26, 2026
93d76ea
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Apr 26, 2026
d537495
Changed Todo marker
AllUniversal Apr 26, 2026
e0d441c
`bypass_debuff` comp for is funcs
AllUniversal Apr 26, 2026
4ebde08
Removed a lot of old/unnecessary code, updated `SMODS.has_..._suit()`…
AllUniversal Apr 28, 2026
4b8248d
Fixed EventManager delay due to cache clearing
AllUniversal Apr 28, 2026
3987fd5
Removed more redundant/outdated code, fixed some bugs
AllUniversal Apr 28, 2026
c8d9286
More fixes + support for `obj:cache_ability()` func
AllUniversal Apr 29, 2026
7f5ef75
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Apr 29, 2026
d1f6127
Fixed `h_x_mult` defaulting to 0.
AllUniversal Apr 29, 2026
21b7b0d
Retructured general quantum funcs and fixed more issues
AllUniversal Apr 29, 2026
1dbba7a
Moved `card_is_rank.toml` from #838 to `quantum_ranks.toml` here
AllUniversal Apr 29, 2026
ea45994
Merge remote-tracking branch 'upstream/main' into Quantum-Ranks
AllUniversal Apr 29, 2026
5e45513
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Apr 29, 2026
a591243
Merged #838 fully into this PR.
AllUniversal Apr 29, 2026
932d414
Added `_general_quantum_tally()` func and used it to make some Jokes …
AllUniversal Apr 29, 2026
0b4db6c
Updated no retrigger check patch
AllUniversal Apr 29, 2026
04d1710
Fixed deck overview crash + `SMODS.check_looping_context()` misfire
AllUniversal Apr 29, 2026
829b1b6
Refactored `quantum_ranks.toml`->`quantum_card_fields.toml`, overrode…
AllUniversal Apr 30, 2026
f11418d
Refactored `get_..._tally()`'s `value_to_cards` to use card maps + ad…
AllUniversal Apr 30, 2026
746bbb9
Changed `_general_quantum_plural_is_func()` to correctly reflect how …
AllUniversal Apr 30, 2026
46dd6e1
Fixed more bugs and oversights + Added `SMODS.Enhancements` and `SMOD…
AllUniversal May 1, 2026
835df54
Removed 2 Todo Markers
AllUniversal May 1, 2026
1181ad7
Moved `SMODS.VirtualRank` to own file
AllUniversal May 1, 2026
9b30cae
Added/Updated LSP defs
AllUniversal May 1, 2026
c863c71
Fixed Quantum Edition crash
AllUniversal May 1, 2026
8dd2cbf
Removed test code
AllUniversal May 1, 2026
ecf0844
Eternal check update for quantum compat
AllUniversal May 2, 2026
8b462e0
Fixed Jokers not being quantum calculated.
AllUniversal May 2, 2026
5c7a206
Disabled `_default_enabled`
AllUniversal May 6, 2026
7bbe312
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal May 6, 2026
15535c0
Fixed Strength crash
AllUniversal May 6, 2026
ceedaea
Fixed Stone cards not scoring (chips) and Gold cards triggering every…
AllUniversal May 6, 2026
116dc62
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal May 7, 2026
e369e06
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal May 17, 2026
27cae8e
Updated `SMODS.CardAbilityField:check_context_criteria()` to be a lit…
AllUniversal May 17, 2026
54c4876
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 1, 2026
04eaaf8
Patched out duplicate `card:calculate_seal()` in `G.FUNCS.discard_car…
AllUniversal Jun 1, 2026
1680d97
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 3, 2026
4cacdce
Fixed `fixed` flag
AllUniversal Jun 3, 2026
742c883
Replaced per-card qfield cache with single table.
AllUniversal Jun 3, 2026
7b91dc3
Added WIP `QField` `setters` and thus removed `Card:set_edition()`/`C…
AllUniversal Jun 5, 2026
381355b
Fixed some low hanging issues/crashes.
AllUniversal Jun 5, 2026
bd8a117
Another fix
AllUniversal Jun 5, 2026
b648280
Fixed Negative not working.
AllUniversal Jun 5, 2026
459e370
Tested capabilities + some minor changes
AllUniversal Jun 5, 2026
afb4328
Fixed smol oversight
AllUniversal Jun 6, 2026
9156643
Refactoring
AllUniversal Jun 6, 2026
191f182
Minor refactor
AllUniversal Jun 6, 2026
4755d8a
Big time fixed stuff
AllUniversal Jun 9, 2026
aeea947
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 9, 2026
6751d63
Minor fix
AllUniversal Jun 9, 2026
64d7716
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 14, 2026
751b2ed
LSP def + `get_X_same()` override notice
AllUniversal Jun 15, 2026
321c7f4
Fixed incorrect `.get` overriding for `any = true` / `fixed = true` +…
AllUniversal Jun 15, 2026
a82c22b
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 21, 2026
ffbb9cf
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jun 25, 2026
79619f0
Made `table_get_subfield()` able to take a list of keys as param as w…
AllUniversal Jun 25, 2026
50aad94
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jul 10, 2026
30a277a
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jul 18, 2026
d99171f
Removed overriden `get_flush()` patches + Updated `get_flush()`
AllUniversal Jul 21, 2026
0695286
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jul 21, 2026
1044641
Crash fixes for fake values
AllUniversal Jul 21, 2026
f3d95d2
Merge remote-tracking branch 'upstream/main' into general-quantum-api
AllUniversal Jul 27, 2026
de80088
Moved QField related `SMODS.update_context_flags()` stuff to own func…
AllUniversal Jul 27, 2026
adfdfc1
Removed outdated code
AllUniversal Jul 27, 2026
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
169 changes: 21 additions & 148 deletions lovely/better_calc.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,9 @@ payload = '''
function eval_card(card, context)
context = context or {}
if not card:can_calculate(context.ignore_debuff, context.remove_playing_cards or context.joker_type_destroyed) then
if card.ability.rental then
if card:has_sticker("rental", {bypass_debuff = true}) then
local ret = {}
ret[SMODS.Stickers.rental] = card:calculate_sticker(context, 'rental')
ret[SMODS.Stickers.rental] = SMODS.Stickers.rental:calculate(card, context)
return ret, {}
end
return {}, {}
Expand All @@ -48,7 +48,7 @@ function eval_card(card, context)
local ret = {}
'''

# built in config values
# functions/common_events.lua : eval_card() : replace vanilla card field calc with CardAbilityFields.
[[patches]]
[patches.pattern]
target = "functions/common_events.lua"
Expand Down Expand Up @@ -88,53 +88,6 @@ end
match_indent = true
position = "at"
payload = """
if context.cardarea == G.play and context.main_scoring then
ret.playing_card = {}
local chips = card:get_chip_bonus()
if chips ~= 0 then
ret.playing_card.chips = chips
end

local mult = card:get_chip_mult()
if mult ~= 0 then
ret.playing_card.mult = mult
end

local x_mult = card:get_chip_x_mult(context)
if x_mult > 0 then
ret.playing_card.x_mult = x_mult
end

local p_dollars = card:get_p_dollars()
if p_dollars ~= 0 then
ret.playing_card.p_dollars = p_dollars
end

local x_chips = card:get_chip_x_bonus()
if x_chips > 0 then
ret.playing_card.x_chips = x_chips
end

local score = card:get_bonus_score()
if score ~= 0 then
ret.playing_card.score = score
end
local x_score = card:get_bonus_x_score()
if x_score > 0 then
ret.playing_card.x_score = x_score
end

local blind_size = card:get_bonus_blind_size()
if blind_size ~= 0 then
ret.playing_card.blind_size = blind_size
end
local x_blind_size = card:get_bonus_x_blind_size()
if x_blind_size > 0 then
ret.playing_card.x_blind_size = x_blind_size
end

-- TARGET: main scoring on played cards
end
if context.end_of_round and context.cardarea == G.hand and context.playing_card_end_of_round then
local end_of_round = card:get_end_of_round_effect(context)
if end_of_round then
Expand Down Expand Up @@ -165,48 +118,18 @@ if context.cardarea == G.hand then
match_indent = true
position = "at"
payload = """
if context.cardarea == G.hand and context.main_scoring then
ret.playing_card = {}
local h_mult = card:get_chip_h_mult()
if h_mult ~= 0 then
ret.playing_card.h_mult = h_mult
end

local h_x_mult = card:get_chip_h_x_mult()
if h_x_mult > 0 then
ret.playing_card.x_mult = h_x_mult
end

local h_chips = card:get_chip_h_bonus()
if h_chips ~= 0 then
ret.playing_card.h_chips = h_chips
end

local h_x_chips = card:get_chip_h_x_bonus()
if h_x_chips > 0 then
ret.playing_card.x_chips = h_x_chips
end

local h_score = card:get_bonus_h_score()
if h_score ~= 0 then
ret.playing_card.h_score = h_score
end
local h_x_score = card:get_bonus_h_x_score()
if h_x_score > 0 then
ret.playing_card.h_x_score = h_x_score
end
local h_blind_size = card:get_bonus_h_blind_size()
if h_blind_size ~= 0 then
ret.playing_card.blind_size = h_blind_size
end
local h_x_blind_size = card:get_bonus_h_x_blind_size()
if h_x_blind_size > 0 then
ret.playing_card.x_blind_size = h_x_blind_size
if context.main_scoring or context.end_of_round then
for i, key in ipairs(SMODS.CardAbilityField.obj_buffer) do
local ca_field = SMODS.CardAbilityFields[key]
if ca_field:check_context_criteria(context) then
ca_field:insert_value(card, ret)
end
end

end
if context.cardarea == G.hand and context.main_scoring then
-- TARGET: main scoring on held cards
"""

# functions/common_events.lua : eval_card() : replace vanilla card field calc with CardAbilityFields and QuantumCardFields
[[patches]]
[patches.pattern]
target = "functions/common_events.lua"
Expand All @@ -219,42 +142,14 @@ end
match_indent = true
position = "at"
payload = """
if card.ability.set == 'Enhanced' then
local enhancement = card:calculate_enhancement(context)
if enhancement then
ret.enhancement = enhancement
end
end
if context.extra_enhancement then return ret end
if card.edition then
local edition = card:calculate_edition(context)
if edition then
ret.edition = edition
end
end
if card.seal then
local seals = card:calculate_seal(context)
if seals then
ret.seals = seals
end
end
for _,k in ipairs(SMODS.Sticker.obj_buffer) do
local v = SMODS.Stickers[k]
local sticker = card:calculate_sticker(context, k)
if sticker then
ret[v] = sticker
end
for i, key in ipairs(SMODS.QuantumCardField.obj_buffer) do
local q_field = SMODS.QuantumCardFields[key]
local eval = q_field.calculate(card, context)
if eval then ret[q_field.calc_key] = eval end
end

-- TARGET: evaluate your own repetition effects
if card.ability.repetitions and card.ability.repetitions > 0 then
ret.seals = ret.seals or { card = card, message = localize('k_again_ex') }
ret.seals.repetitions = (ret.seals.repetitions and ret.seals.repetitions + card.ability.repetitions) or card.ability.repetitions
end
if card.ability.perma_repetitions and card.ability.perma_repetitions > 0 then
ret.seals = ret.seals or { card = card, message = localize('k_again_ex') }
ret.seals.repetitions = (ret.seals.repetitions and ret.seals.repetitions + card.ability.perma_repetitions) or card.ability.perma_repetitions
end
SMODS.CardAbilityFields.repetitions:insert_value(card, ret)
"""
[[patches]]
[patches.pattern]
Expand All @@ -263,31 +158,10 @@ pattern = "if context.cardarea == G.jokers or context.card == G.consumeables the
match_indent = true
position = "before"
payload = """
if card.ability.set == 'Enhanced' then
local enhancement = card:calculate_enhancement(context)
if enhancement then
ret.enhancement = enhancement
end
end
if context.extra_enhancement then return ret end
if card.edition then
local edition = card:calculate_edition(context)
if edition then
ret.edition = edition
end
end
if card.seal then
local seals = card:calculate_seal(context)
if seals then
ret.seals = seals
end
end
for _,k in ipairs(SMODS.Sticker.obj_buffer) do
local v = SMODS.Stickers[k]
local sticker = card:calculate_sticker(context, k)
if sticker then
ret[v] = sticker
end
for i, key in ipairs(SMODS.QuantumCardField.obj_buffer) do
local q_field = SMODS.QuantumCardFields[key]
local eval = q_field.calculate(card, context)
if eval then ret[q_field.calc_key] = eval end
end

-- TARGET: evaluate your own general effects
Expand Down Expand Up @@ -1510,7 +1384,6 @@ payload = '''
local card_to_save = self and copy_card(self) or Card(0, 0, G.CARD_W, G.CARD_H, G.P_CARDS.empty, center)
card_to_save.VT.x, card_to_save.VT.y = G.vouchers.T.x, G.vouchers.T.y
G.vouchers:emplace(card_to_save)
SMODS.enh_cache:clear()
'''

[[patches]]
Expand Down
1 change: 0 additions & 1 deletion lovely/calculate_card_added.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@ if not from_debuff and G.hand then

if not is_playing_card then
SMODS.calculate_context({card_added = true, card = self})
SMODS.enh_cache:clear()
end
end
'''
Expand Down
20 changes: 0 additions & 20 deletions lovely/can_calculate.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,6 @@ version = "1.0.0"
dump_lua = true
priority = -5

[[patches]]
[patches.pattern]
target = "card.lua"
pattern = '''function Card:get_end_of_round_effect(context)
if self.debuff then return {} end'''
position = "at"
match_indent = true
payload = '''
function Card:get_end_of_round_effect(context)'''

[[patches]]
[patches.pattern]
target = "card.lua"
Expand All @@ -24,16 +14,6 @@ payload = '''
function Card:calculate_dollar_bonus()
if not self:can_calculate() then return end'''

[[patches]]
[patches.pattern]
target = "card.lua"
pattern = '''function Card:calculate_seal(context)
if self.debuff then return nil end'''
position = "at"
match_indent = true
payload = '''
function Card:calculate_seal(context)'''

[[patches]]
[patches.pattern]
target = "card.lua"
Expand Down
11 changes: 10 additions & 1 deletion lovely/center.toml
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,16 @@ match_indent = true
payload = '''
local obj = self.config.center
if obj.update and type(obj.update) == 'function' then
obj:update(self, dt)
if G.STAGE == G.STAGES.RUN then
if self.ability and self.ability.perma_debuff then self.debuff = true end
if self.area and ((self.area == G.jokers) or (self.area == G.consumeables)) then
self.bypass_lock = true
self.bypass_discovery_center = true
self.bypass_discovery_ui = true
end
self.sell_cost_label = self.facing == 'back' and '?' or self.sell_cost
end
return obj:update(self, dt)
end'''

# Card:generate_UIBox_ability_table()
Expand Down
Loading