Fix The Rot cloning indefinitely, reformat
This commit is contained in:
parent
bafb18d0c9
commit
e069cd8f68
14 changed files with 610 additions and 350 deletions
171
.editorconfig
Normal file
171
.editorconfig
Normal file
|
|
@ -0,0 +1,171 @@
|
||||||
|
|
||||||
|
# see https://github.com/CppCXY/EmmyLuaCodeStyle
|
||||||
|
[*.lua]
|
||||||
|
# [basic]
|
||||||
|
|
||||||
|
# optional space/tab
|
||||||
|
indent_style = space
|
||||||
|
# if indent_style is space, this is valid
|
||||||
|
indent_size = 4
|
||||||
|
# if indent_style is tab, this is valid
|
||||||
|
tab_width = 4
|
||||||
|
# none/single/double
|
||||||
|
quote_style = double
|
||||||
|
|
||||||
|
continuation_indent = 4
|
||||||
|
## extend option
|
||||||
|
# continuation_indent.before_block = 4
|
||||||
|
# continuation_indent.in_expr = 4
|
||||||
|
# continuation_indent.in_table = 4
|
||||||
|
|
||||||
|
# this mean utf8 length , if this is 'unset' then the line width is no longer checked
|
||||||
|
# this option decides when to chopdown the code
|
||||||
|
max_line_length = lf
|
||||||
|
|
||||||
|
# optional crlf/lf/cr/auto, if it is 'auto', in windows it is crlf other platforms are lf
|
||||||
|
# in neovim the value 'auto' is not a valid option, please use 'unset'
|
||||||
|
end_of_line = auto
|
||||||
|
|
||||||
|
# none/ comma / semicolon / only_kv_colon
|
||||||
|
table_separator_style = none
|
||||||
|
|
||||||
|
#optional keep/never/always/smart
|
||||||
|
trailing_table_separator = smart
|
||||||
|
|
||||||
|
# keep/remove/remove_table_only/remove_string_only
|
||||||
|
call_arg_parentheses = keep
|
||||||
|
|
||||||
|
detect_end_of_line = false
|
||||||
|
|
||||||
|
# this will check text end with new line
|
||||||
|
insert_final_newline = true
|
||||||
|
|
||||||
|
# [space]
|
||||||
|
space_around_table_field_list = false
|
||||||
|
|
||||||
|
space_before_attribute = false
|
||||||
|
|
||||||
|
space_before_function_open_parenthesis = false
|
||||||
|
|
||||||
|
space_before_function_call_open_parenthesis = false
|
||||||
|
|
||||||
|
space_before_closure_open_parenthesis = false
|
||||||
|
|
||||||
|
# optional always/only_string/only_table/none
|
||||||
|
# or true/false
|
||||||
|
space_before_function_call_single_arg = always
|
||||||
|
## extend option
|
||||||
|
## always/keep/none
|
||||||
|
# space_before_function_call_single_arg.table = always
|
||||||
|
## always/keep/none
|
||||||
|
# space_before_function_call_single_arg.string = always
|
||||||
|
|
||||||
|
space_before_open_square_bracket = false
|
||||||
|
|
||||||
|
space_inside_function_call_parentheses = false
|
||||||
|
|
||||||
|
space_inside_function_param_list_parentheses = false
|
||||||
|
|
||||||
|
space_inside_square_brackets = false
|
||||||
|
|
||||||
|
# like t[#t+1] = 1
|
||||||
|
space_around_table_append_operator = false
|
||||||
|
|
||||||
|
ignore_spaces_inside_function_call = false
|
||||||
|
|
||||||
|
# detail number or 'keep'
|
||||||
|
space_before_inline_comment = 1
|
||||||
|
|
||||||
|
# convert '---' to '--- ' or '--' to '-- '
|
||||||
|
space_after_comment_dash = false
|
||||||
|
|
||||||
|
# [operator space]
|
||||||
|
space_around_math_operator = true
|
||||||
|
# space_around_math_operator.exponent = false
|
||||||
|
|
||||||
|
space_after_comma = true
|
||||||
|
|
||||||
|
space_after_comma_in_for_statement = true
|
||||||
|
|
||||||
|
# true/false or none/always/no_space_asym
|
||||||
|
space_around_concat_operator = true
|
||||||
|
|
||||||
|
space_around_logical_operator = true
|
||||||
|
|
||||||
|
# true/false or none/always/no_space_asym
|
||||||
|
space_around_assign_operator = true
|
||||||
|
|
||||||
|
# [align]
|
||||||
|
|
||||||
|
align_call_args = false
|
||||||
|
|
||||||
|
align_function_params = true
|
||||||
|
|
||||||
|
# true/false or always
|
||||||
|
align_continuous_assign_statement = true
|
||||||
|
|
||||||
|
align_continuous_rect_table_field = true
|
||||||
|
|
||||||
|
align_continuous_line_space = 2
|
||||||
|
|
||||||
|
align_if_branch = false
|
||||||
|
|
||||||
|
# option none / always / contain_curly/
|
||||||
|
align_array_table = true
|
||||||
|
|
||||||
|
align_continuous_similar_call_args = false
|
||||||
|
|
||||||
|
align_continuous_inline_comment = true
|
||||||
|
# option none / always / only_call_stmt
|
||||||
|
align_chain_expr = none
|
||||||
|
|
||||||
|
# [indent]
|
||||||
|
|
||||||
|
never_indent_before_if_condition = false
|
||||||
|
|
||||||
|
never_indent_comment_on_if_branch = false
|
||||||
|
|
||||||
|
keep_indents_on_empty_lines = false
|
||||||
|
|
||||||
|
allow_non_indented_comments = false
|
||||||
|
# [line space]
|
||||||
|
|
||||||
|
# The following configuration supports four expressions
|
||||||
|
# keep
|
||||||
|
# fixed(n)
|
||||||
|
# min(n)
|
||||||
|
# max(n)
|
||||||
|
# for eg. min(2)
|
||||||
|
|
||||||
|
line_space_after_if_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_do_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_while_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_repeat_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_for_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_local_or_assign_statement = max(2)
|
||||||
|
|
||||||
|
line_space_after_function_statement = fixed(2)
|
||||||
|
|
||||||
|
line_space_after_expression_statement = max(2)
|
||||||
|
|
||||||
|
line_space_after_comment = fixed(1)
|
||||||
|
|
||||||
|
line_space_around_block = fixed(1)
|
||||||
|
# [line break]
|
||||||
|
break_all_list_when_line_exceed = false
|
||||||
|
|
||||||
|
auto_collapse_lines = false
|
||||||
|
|
||||||
|
break_before_braces = false
|
||||||
|
|
||||||
|
# [preference]
|
||||||
|
ignore_space_after_colon = false
|
||||||
|
|
||||||
|
remove_call_expression_list_finish_comma = true
|
||||||
|
# keep / always / same_line / replace_with_newline / never
|
||||||
|
end_statement_with_semicolon = replace_with_newline
|
||||||
|
|
@ -1,16 +1,21 @@
|
||||||
{
|
{
|
||||||
"id": "jane",
|
"id": "jane",
|
||||||
"name": "Almighty",
|
"name": "Almighty",
|
||||||
"author": ["jenwalter666", "Emik"],
|
"author": [
|
||||||
|
"jenwalter666",
|
||||||
|
"Emik"
|
||||||
|
],
|
||||||
"description": "Fork of Jen's almanac that rebalances the mod by heavily toning down on the power creep and cutting out anything deemed not essential. Made out of genuine love for the original mod.",
|
"description": "Fork of Jen's almanac that rebalances the mod by heavily toning down on the power creep and cutting out anything deemed not essential. Made out of genuine love for the original mod.",
|
||||||
"prefix": "jane",
|
"prefix": "jane",
|
||||||
"main_file": "src/main.lua",
|
"main_file": "src/main.lua",
|
||||||
"badge_colour": "3c3cff",
|
"badge_colour": "3c3cff",
|
||||||
"priority": 114,
|
"priority": 114,
|
||||||
"dependencies": [
|
"dependencies": [
|
||||||
"Steamodded (>=1.0.0~ALPHA-1304a)",
|
"Steamodded (>=1.0.0~ALPHA-1304a)",
|
||||||
"Bakery (>=0.1.26~*)"
|
"Bakery (>=0.1.26~*)"
|
||||||
],
|
],
|
||||||
"conflicts": ["Jen"],
|
"conflicts": [
|
||||||
"version": "1.0.0"
|
"Jen"
|
||||||
|
],
|
||||||
|
"version": "1.0.1"
|
||||||
}
|
}
|
||||||
75
src/back.lua
75
src/back.lua
|
|
@ -2,7 +2,7 @@ SMODS.Atlas {
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
key = "janedecks",
|
key = "janedecks",
|
||||||
path = Jane.config.texture_pack .. "/b_jane_decks.png"
|
path = Jane.config.texture_pack .. "/b_jane_decks.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
local eternal_text = Cryptid and "Absolute" or "Eternal"
|
local eternal_text = Cryptid and "Absolute" or "Eternal"
|
||||||
|
|
@ -19,7 +19,7 @@ SMODS.Back {
|
||||||
Cryptid and "set {C:attention}ante {}to the {C:attention}next" or "",
|
Cryptid and "set {C:attention}ante {}to the {C:attention}next" or "",
|
||||||
Cryptid and "{C:attention}triangle number {}and create" or "",
|
Cryptid and "{C:attention}triangle number {}and create" or "",
|
||||||
Cryptid and "an {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
Cryptid and "an {C:spectral,E:1}Empowered Tag" or "create a {C:dark_edition}Negative {C:spectral,E:1}Soul",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.win_ante = Cryptid and G.GAME.win_ante * (G.GAME.win_ante + 1) / 2 or G.GAME.win_ante * 2 - 1
|
G.GAME.win_ante = Cryptid and G.GAME.win_ante * (G.GAME.win_ante + 1) / 2 or G.GAME.win_ante * 2 - 1
|
||||||
|
|
@ -32,7 +32,7 @@ SMODS.Back {
|
||||||
return true
|
return true
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function add_rain_world_joker()
|
local function add_rain_world_joker()
|
||||||
|
|
@ -77,8 +77,8 @@ SMODS.Back {
|
||||||
text = {
|
text = {
|
||||||
"Start with a {C:legendary}Rain World Joker",
|
"Start with a {C:legendary}Rain World Joker",
|
||||||
"Create another when",
|
"Create another when",
|
||||||
"{C:attention}Boss Blind {}is defeated"
|
"{C:attention}Boss Blind {}is defeated",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.E_MANAGER:add_event(Event({func = add_rain_world_joker}))
|
G.E_MANAGER:add_event(Event({func = add_rain_world_joker}))
|
||||||
|
|
@ -101,7 +101,7 @@ SMODS.Back {
|
||||||
"playing cards are {C:green,E:1}randomized",
|
"playing cards are {C:green,E:1}randomized",
|
||||||
"when they are added",
|
"when they are added",
|
||||||
"to your possession",
|
"to your possession",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.mysterious = true
|
G.GAME.mysterious = true
|
||||||
|
|
@ -110,7 +110,7 @@ SMODS.Back {
|
||||||
save_run()
|
save_run()
|
||||||
return true
|
return true
|
||||||
end)
|
end)
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
|
|
@ -122,11 +122,11 @@ SMODS.Back {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Hidden{} cards {C:inactive}(ex. {C:spectral}The Soul{C:inactive})",
|
"{C:attention}Hidden{} cards {C:inactive}(ex. {C:spectral}The Soul{C:inactive})",
|
||||||
"can {C:attention}appear normally{}",
|
"can {C:attention}appear normally{}",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.obsidian = true
|
G.GAME.obsidian = true
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function apply_orrery()
|
local function apply_orrery()
|
||||||
|
|
@ -154,11 +154,11 @@ SMODS.Back {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Hand stats {}are",
|
"{C:attention}Hand stats {}are",
|
||||||
"always " .. (Cryptid and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
"always " .. (Cryptid and "{C:cry_ascendant}" or "{C:attention}") .. "equalized",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
apply_orrery()
|
apply_orrery()
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
|
|
@ -170,11 +170,11 @@ SMODS.Back {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Ante increases",
|
"{C:attention}Ante increases",
|
||||||
"{C:attention}half{} as strong",
|
"{C:attention}half{} as strong",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
G.GAME.tortoise = true
|
G.GAME.tortoise = true
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
local function apply_weeck()
|
local function apply_weeck()
|
||||||
|
|
@ -222,11 +222,11 @@ SMODS.Back {
|
||||||
"{C:attention}Wee Joker {}and a deck",
|
"{C:attention}Wee Joker {}and a deck",
|
||||||
"containing {C:attention}2 {C:purple,E:1}" .. eternal_text,
|
"containing {C:attention}2 {C:purple,E:1}" .. eternal_text,
|
||||||
"{C:attention}2's {}of {C:attention}each suit",
|
"{C:attention}2's {}of {C:attention}each suit",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
apply_weeck()
|
apply_weeck()
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Back {
|
SMODS.Back {
|
||||||
|
|
@ -238,21 +238,23 @@ SMODS.Back {
|
||||||
text = {
|
text = {
|
||||||
"Applies the {C:legendary,E:1}upsides",
|
"Applies the {C:legendary,E:1}upsides",
|
||||||
"of {C:attention}every Jane deck",
|
"of {C:attention}every Jane deck",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
apply = function(_)
|
apply = function(_)
|
||||||
apply_orrery()
|
apply_orrery()
|
||||||
|
|
||||||
G.E_MANAGER:add_event(Event({func = function()
|
G.E_MANAGER:add_event(Event({
|
||||||
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
func = function()
|
||||||
G.jokers:emplace(wee)
|
local wee = create_card("Joker", G.jokers, nil, nil, nil, nil, "j_wee", "weeck")
|
||||||
add_rain_world_joker()
|
G.jokers:emplace(wee)
|
||||||
G.GAME.mysterious = true
|
add_rain_world_joker()
|
||||||
G.GAME.tortoise = true
|
G.GAME.mysterious = true
|
||||||
G.GAME.obsidian = true
|
G.GAME.tortoise = true
|
||||||
save_run()
|
G.GAME.obsidian = true
|
||||||
return true
|
save_run()
|
||||||
end}))
|
return true
|
||||||
|
end,
|
||||||
|
}))
|
||||||
end,
|
end,
|
||||||
trigger_effect = function(_, args)
|
trigger_effect = function(_, args)
|
||||||
G.GAME.mysterious = nil
|
G.GAME.mysterious = nil
|
||||||
|
|
@ -280,7 +282,7 @@ function ease_ante(mod)
|
||||||
if G.GAME.nitro then
|
if G.GAME.nitro then
|
||||||
mod = Cryptid and
|
mod = Cryptid and
|
||||||
(G.GAME.round_resets.ante < 0 and -G.GAME.round_resets.ante or
|
(G.GAME.round_resets.ante < 0 and -G.GAME.round_resets.ante or
|
||||||
math.ceil(next_triangle_number(G.GAME.round_resets.ante) - G.GAME.round_resets.ante)) or
|
math.ceil(next_triangle_number(G.GAME.round_resets.ante) - G.GAME.round_resets.ante)) or
|
||||||
(mod > 0 and mod * 2 or mod)
|
(mod > 0 and mod * 2 or mod)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -307,7 +309,7 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
local c = targets[i]
|
local c = targets[i]
|
||||||
c:set_base(pseudorandom_element(G.P_CARDS))
|
c:set_base(pseudorandom_element(G.P_CARDS))
|
||||||
|
|
||||||
if pseudorandom(pseudoseed("chancetime")) > 1 / (#G.P_CENTER_POOLS["Enhanced"]+1) then
|
if pseudorandom(pseudoseed("chancetime")) > 1 / (#G.P_CENTER_POOLS["Enhanced"] + 1) then
|
||||||
c:set_ability(pseudorandom_element(G.P_CENTER_POOLS["Enhanced"], pseudoseed("spectral_chance")))
|
c:set_ability(pseudorandom_element(G.P_CENTER_POOLS["Enhanced"], pseudoseed("spectral_chance")))
|
||||||
else
|
else
|
||||||
c:set_ability(G.P_CENTERS["c_base"])
|
c:set_ability(G.P_CENTERS["c_base"])
|
||||||
|
|
@ -360,7 +362,7 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
play_sound("card1", 1.15 - (i - 0.999) / (#G.hand.cards - 0.998) * 0.3)
|
play_sound("card1", 1.15 - (i - 0.999) / (#G.hand.cards - 0.998) * 0.3)
|
||||||
targets[i]:juice_up(0.3, 0.3)
|
targets[i]:juice_up(0.3, 0.3)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -370,7 +372,7 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
trigger = "after",
|
trigger = "after",
|
||||||
delay = 0.1,
|
delay = 0.1,
|
||||||
func = go(i)
|
func = go(i),
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -396,7 +398,9 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
passes = 0
|
passes = 0
|
||||||
pooling = false
|
pooling = false
|
||||||
tries = tries - 1
|
tries = tries - 1
|
||||||
selection = G.P_CENTERS[pseudorandom_element(pool or G.P_CENTER_POOLS.Consumeables, pseudoseed(seed or "jane_rnd_mysterious")).key]
|
|
||||||
|
selection = G.P_CENTERS
|
||||||
|
[pseudorandom_element(pool or G.P_CENTER_POOLS.Consumeables, pseudoseed(seed or "jane_rnd_mysterious")).key]
|
||||||
|
|
||||||
if ignore_pooling then
|
if ignore_pooling then
|
||||||
pooling = true
|
pooling = true
|
||||||
|
|
@ -438,10 +442,12 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
card:remove_from_deck()
|
card:remove_from_deck()
|
||||||
card.added_to_deck = nil
|
card.added_to_deck = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
card:flip()
|
card:flip()
|
||||||
card:juice_up(0.3, 0.3)
|
card:juice_up(0.3, 0.3)
|
||||||
play_sound("card1", 1, 0.6)
|
play_sound("card1", 1, 0.6)
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end, 0.75)
|
end, 0.75)
|
||||||
|
|
||||||
|
|
@ -458,6 +464,7 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
card:add_to_deck()
|
card:add_to_deck()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end, 0.75)
|
end, 0.75)
|
||||||
elseif self == G.consumeables then
|
elseif self == G.consumeables then
|
||||||
|
|
@ -472,6 +479,7 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
card:juice_up(0.3, 0.3)
|
card:juice_up(0.3, 0.3)
|
||||||
play_sound("card1", 1, 0.6)
|
play_sound("card1", 1, 0.6)
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end, 0.75)
|
end, 0.75)
|
||||||
|
|
||||||
|
|
@ -482,7 +490,10 @@ function CardArea:emplace(card, location, stay_flipped)
|
||||||
card:flip()
|
card:flip()
|
||||||
card:juice_up(0.3, 0.3)
|
card:juice_up(0.3, 0.3)
|
||||||
play_sound("card3", 1, 0.6)
|
play_sound("card3", 1, 0.6)
|
||||||
card:set_ability(rnd("mysterious_deck_consumable", cen.hidden and {} or {"hidden"}, G.P_CENTER_POOLS[cen.set]))
|
|
||||||
|
card:set_ability(
|
||||||
|
rnd("mysterious_deck_consumable", cen.hidden and {} or {"hidden"}, G.P_CENTER_POOLS[cen.set])
|
||||||
|
)
|
||||||
|
|
||||||
if not card.added_to_deck then
|
if not card.added_to_deck then
|
||||||
card:add_to_deck()
|
card:add_to_deck()
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ SMODS.Atlas {
|
||||||
frames = 21,
|
frames = 21,
|
||||||
key = "janeblinds",
|
key = "janeblinds",
|
||||||
atlas_table = "ANIMATION_ATLAS",
|
atlas_table = "ANIMATION_ATLAS",
|
||||||
path = Jane.config.texture_pack .. "/bl_jane_blinds.png"
|
path = Jane.config.texture_pack .. "/bl_jane_blinds.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
local final_operations = {
|
local final_operations = {
|
||||||
|
|
@ -35,7 +35,7 @@ local function offset_operator(by)
|
||||||
if type(inner) == "table" and
|
if type(inner) == "table" and
|
||||||
type(inner.config) == "table" and
|
type(inner.config) == "table" and
|
||||||
(inner.config.text == final_operations[previous][1] or
|
(inner.config.text == final_operations[previous][1] or
|
||||||
inner.config.text == final_operations[2][1]) and
|
inner.config.text == final_operations[2][1]) and
|
||||||
inner.config.text_drawable then
|
inner.config.text_drawable then
|
||||||
if inner.config.text ~= txt then
|
if inner.config.text ~= txt then
|
||||||
changed_text = true
|
changed_text = true
|
||||||
|
|
@ -62,10 +62,10 @@ local function to_number(x)
|
||||||
return type(x) == "table" and x:to_number() or x
|
return type(x) == "table" and x:to_number() or x
|
||||||
end
|
end
|
||||||
|
|
||||||
SMODS.Blind {
|
SMODS.Blind {
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "The Descending",
|
name = "The Descending",
|
||||||
text = {"Decrease Chip-Mult", "operator by 1 level"}
|
text = {"Decrease Chip-Mult", "operator by 1 level"},
|
||||||
},
|
},
|
||||||
key = "descending",
|
key = "descending",
|
||||||
config = {},
|
config = {},
|
||||||
|
|
@ -100,10 +100,10 @@ SMODS.Blind {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Blind {
|
SMODS.Blind {
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "The Insignia",
|
name = "The Insignia",
|
||||||
text = {"Hand must contain", "only one suit"}
|
text = {"Hand must contain", "only one suit"},
|
||||||
},
|
},
|
||||||
key = "insignia",
|
key = "insignia",
|
||||||
config = {},
|
config = {},
|
||||||
|
|
@ -131,10 +131,10 @@ SMODS.Blind {
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Blind {
|
SMODS.Blind {
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
name = "The Wee",
|
name = "The Wee",
|
||||||
text = {"Only 2s can be played"}
|
text = {"Only 2s can be played"},
|
||||||
},
|
},
|
||||||
key = "wee",
|
key = "wee",
|
||||||
config = {},
|
config = {},
|
||||||
|
|
|
||||||
132
src/booster.lua
132
src/booster.lua
|
|
@ -2,7 +2,7 @@ SMODS.Atlas {
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
key = "janebooster",
|
key = "janebooster",
|
||||||
path = Jane.config.texture_pack .. "/p_jane_boosters.png"
|
path = Jane.config.texture_pack .. "/p_jane_boosters.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
for i = 1, 2 do
|
for i = 1, 2 do
|
||||||
|
|
@ -14,7 +14,7 @@ for i = 1, 2 do
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# playing cards{} to",
|
"{C:attention}#2# playing cards{} to",
|
||||||
"add to your deck",
|
"add to your deck",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
atlas = "janebooster",
|
atlas = "janebooster",
|
||||||
pos = {x = 6, y = i - 1},
|
pos = {x = 6, y = i - 1},
|
||||||
|
|
@ -35,7 +35,7 @@ for i = 1, 2 do
|
||||||
area = G.pack_cards,
|
area = G.pack_cards,
|
||||||
skip_materialize = true,
|
skip_materialize = true,
|
||||||
soulable = true,
|
soulable = true,
|
||||||
key_append = "sta"
|
key_append = "sta",
|
||||||
}
|
}
|
||||||
end,
|
end,
|
||||||
create_UIBox = function(_)
|
create_UIBox = function(_)
|
||||||
|
|
@ -45,7 +45,7 @@ for i = 1, 2 do
|
||||||
ease_background_colour_blind(G.STATES.STANDARD_PACK)
|
ease_background_colour_blind(G.STATES.STANDARD_PACK)
|
||||||
end,
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
G.booster_pack_sparkles = Particles(1, 1, 0, 0, {
|
||||||
timer = 0.015,
|
timer = 0.015,
|
||||||
scale = 0.3,
|
scale = 0.3,
|
||||||
initialize = true,
|
initialize = true,
|
||||||
|
|
@ -54,7 +54,7 @@ for i = 1, 2 do
|
||||||
padding = -1,
|
padding = -1,
|
||||||
attach = G.ROOM_ATTACH,
|
attach = G.ROOM_ATTACH,
|
||||||
colours = {G.C.BLACK, G.C.RED},
|
colours = {G.C.BLACK, G.C.RED},
|
||||||
fill = true
|
fill = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
G.booster_pack_sparkles.fade_alpha = 1
|
G.booster_pack_sparkles.fade_alpha = 1
|
||||||
|
|
@ -72,7 +72,7 @@ for i = 1, 2 do
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# {C:tarot}Tarot{} cards to",
|
"{C:attention}#2# {C:tarot}Tarot{} cards to",
|
||||||
"be used immediately",
|
"be used immediately",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
atlas = "janebooster",
|
atlas = "janebooster",
|
||||||
pos = {x = 3 + i, y = 1},
|
pos = {x = 3 + i, y = 1},
|
||||||
|
|
@ -109,7 +109,7 @@ for i = 1, 2 do
|
||||||
ease_background_colour_blind(G.STATES.TAROT_PACK)
|
ease_background_colour_blind(G.STATES.TAROT_PACK)
|
||||||
end,
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
G.booster_pack_sparkles = Particles(1, 1, 0, 0, {
|
||||||
timer = 0.015,
|
timer = 0.015,
|
||||||
scale = 0.2,
|
scale = 0.2,
|
||||||
initialize = true,
|
initialize = true,
|
||||||
|
|
@ -118,7 +118,7 @@ for i = 1, 2 do
|
||||||
padding = -1,
|
padding = -1,
|
||||||
attach = G.ROOM_ATTACH,
|
attach = G.ROOM_ATTACH,
|
||||||
colours = {G.C.WHITE, lighten(G.C.PURPLE, 0.4), lighten(G.C.PURPLE, 0.2), lighten(G.C.GOLD, 0.2)},
|
colours = {G.C.WHITE, lighten(G.C.PURPLE, 0.4), lighten(G.C.PURPLE, 0.2), lighten(G.C.GOLD, 0.2)},
|
||||||
fill = true
|
fill = true,
|
||||||
})
|
})
|
||||||
|
|
||||||
G.booster_pack_sparkles.fade_alpha = 1
|
G.booster_pack_sparkles.fade_alpha = 1
|
||||||
|
|
@ -137,7 +137,7 @@ for i = 1, 2 do
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# {C:planet}Planet{} cards to",
|
"{C:attention}#2# {C:planet}Planet{} cards to",
|
||||||
"be used immediately",
|
"be used immediately",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = 2, choose = 1},
|
config = {extra = 2, choose = 1},
|
||||||
pos = {x = 3 + i, y = 0},
|
pos = {x = 3 + i, y = 0},
|
||||||
|
|
@ -153,7 +153,7 @@ for i = 1, 2 do
|
||||||
area = G.pack_cards,
|
area = G.pack_cards,
|
||||||
skip_materialize = true,
|
skip_materialize = true,
|
||||||
soulable = true,
|
soulable = true,
|
||||||
key_append = "pl1"
|
key_append = "pl1",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -190,7 +190,7 @@ for i = 1, 2 do
|
||||||
ease_background_colour_blind(G.STATES.PLANET_PACK)
|
ease_background_colour_blind(G.STATES.PLANET_PACK)
|
||||||
end,
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_stars = Particles(1, 1, 0,0, {
|
G.booster_pack_stars = Particles(1, 1, 0, 0, {
|
||||||
fill = true,
|
fill = true,
|
||||||
scale = 0.1,
|
scale = 0.1,
|
||||||
speed = 0.1,
|
speed = 0.1,
|
||||||
|
|
@ -202,7 +202,7 @@ for i = 1, 2 do
|
||||||
colours = {G.C.WHITE, HEX("a7d6e0"), HEX("fddca0")},
|
colours = {G.C.WHITE, HEX("a7d6e0"), HEX("fddca0")},
|
||||||
})
|
})
|
||||||
|
|
||||||
G.booster_pack_meteors = Particles(1, 1, 0,0, {
|
G.booster_pack_meteors = Particles(1, 1, 0, 0, {
|
||||||
speed = 4,
|
speed = 4,
|
||||||
timer = 2,
|
timer = 2,
|
||||||
fill = true,
|
fill = true,
|
||||||
|
|
@ -212,7 +212,7 @@ for i = 1, 2 do
|
||||||
colours = {G.C.WHITE},
|
colours = {G.C.WHITE},
|
||||||
})
|
})
|
||||||
end,
|
end,
|
||||||
set_ability = function (_, card, _, _)
|
set_ability = function(_, card, _, _)
|
||||||
card.ability = card.ability or {}
|
card.ability = card.ability or {}
|
||||||
card.ability.set = "Booster"
|
card.ability.set = "Booster"
|
||||||
card.ability.name = "Mini Celestial Pack"
|
card.ability.name = "Mini Celestial Pack"
|
||||||
|
|
@ -230,7 +230,7 @@ for i = 1, 2 do
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# {C:spectral}Spectral{} cards to",
|
"{C:attention}#2# {C:spectral}Spectral{} cards to",
|
||||||
"be used immediately",
|
"be used immediately",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = 1, choose = 1},
|
config = {extra = 1, choose = 1},
|
||||||
pos = {x = 3 + i, y = 2},
|
pos = {x = 3 + i, y = 2},
|
||||||
|
|
@ -256,7 +256,7 @@ for i = 1, 2 do
|
||||||
ease_background_colour_blind(G.STATES.SPECTRAL_PACK)
|
ease_background_colour_blind(G.STATES.SPECTRAL_PACK)
|
||||||
end,
|
end,
|
||||||
particles = function(_)
|
particles = function(_)
|
||||||
G.booster_pack_sparkles = Particles(1, 1, 0,0, {
|
G.booster_pack_sparkles = Particles(1, 1, 0, 0, {
|
||||||
scale = 0.1,
|
scale = 0.1,
|
||||||
fill = true,
|
fill = true,
|
||||||
speed = 0.2,
|
speed = 0.2,
|
||||||
|
|
@ -284,7 +284,7 @@ if Cryptid then
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# {C:green}Code{} cards to",
|
"{C:attention}#2# {C:green}Code{} cards to",
|
||||||
"be used immediately",
|
"be used immediately",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 6, y = 2},
|
pos = {x = 6, y = 2},
|
||||||
config = {extra = 2, choose = 1},
|
config = {extra = 2, choose = 1},
|
||||||
|
|
@ -319,7 +319,7 @@ if Cryptid then
|
||||||
end
|
end
|
||||||
|
|
||||||
for i = 1, 2 do
|
for i = 1, 2 do
|
||||||
SMODS.Booster{
|
SMODS.Booster {
|
||||||
key = "minitoken" .. i,
|
key = "minitoken" .. i,
|
||||||
atlas = "janebooster",
|
atlas = "janebooster",
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
|
|
@ -328,7 +328,7 @@ for i = 1, 2 do
|
||||||
"Choose {C:attention}#1#{} of up to",
|
"Choose {C:attention}#1#{} of up to",
|
||||||
"{C:attention}#2# Token {}cards to",
|
"{C:attention}#2# Token {}cards to",
|
||||||
"be used immediately",
|
"be used immediately",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = i - 1, y = 5},
|
pos = {x = i - 1, y = 5},
|
||||||
config = {extra = 2, choose = 1},
|
config = {extra = 2, choose = 1},
|
||||||
|
|
@ -350,35 +350,83 @@ for i = 1, 2 do
|
||||||
{card_limit = size, highlight_limit = 1, type = "consumeable"}
|
{card_limit = size, highlight_limit = 1, type = "consumeable"}
|
||||||
)
|
)
|
||||||
|
|
||||||
local t = {n = G.UIT.ROOT, config = {align = "tm", r = 0.15, colour = G.C.CLEAR, padding = 0.15}, nodes = {
|
local t = {
|
||||||
{n = G.UIT.R, config = {align = "cl", colour = G.C.CLEAR, r = 0.15, padding = 0.1, minh = 2, shadow = true}, nodes = {
|
n = G.UIT.ROOT,
|
||||||
{n = G.UIT.R, config = {align = "cm"}, nodes = {
|
config = {align = "tm", r = 0.15, colour = G.C.CLEAR, padding = 0.15},
|
||||||
{n = G.UIT.C, config = {align = "cm", padding = 0.1}, nodes = {
|
nodes = {
|
||||||
{n = G.UIT.C, config = {align = "cm", r = 0.2, colour = G.C.CLEAR, shadow = true}, nodes = {
|
{
|
||||||
{n = G.UIT.O, config = {object = G.pack_cards}}}}}}}},
|
n = G.UIT.R,
|
||||||
{n = G.UIT.R, config = {align = "cm"}, nodes = {}},
|
config = {align = "cl", colour = G.C.CLEAR, r = 0.15, padding = 0.1, minh = 2, shadow = true},
|
||||||
{n = G.UIT.R, config = {align = "tm"}, nodes = {
|
nodes = {
|
||||||
{n = G.UIT.C,config = {align = "tm", padding = 0.05, minw = 2.4}, nodes = {}},
|
{
|
||||||
{n = G.UIT.C,config = {align = "tm", padding = 0.05}, nodes = {
|
n = G.UIT.R,
|
||||||
UIBox_dyn_container({
|
config = {align = "cm"},
|
||||||
{n = G.UIT.C, config = {align = "cm", padding = 0.05, minw = 4}, nodes = {
|
nodes = {
|
||||||
{n = G.UIT.R,config = {align = "bm", padding = 0.05}, nodes = {
|
{
|
||||||
{n = G.UIT.O, config = {object = DynaText({string = {"Token Pack"}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.7, maxw = 4, pop_in = 0.5})}}}},
|
n = G.UIT.C,
|
||||||
{n = G.UIT.R,config = {align = "bm", padding = 0.05}, nodes = {
|
config = {align = "cm", padding = 0.1},
|
||||||
{n = G.UIT.O, config = {object = DynaText({string = {localize("k_choose") .. " "}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}},
|
nodes = {
|
||||||
{n = G.UIT.O, config = {object = DynaText({string = {{ref_table = G.GAME, ref_value = "pack_choices"}}, colours = {G.C.WHITE},shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}}}}}}
|
{
|
||||||
})}},
|
n = G.UIT.C,
|
||||||
{n = G.UIT.C,config = {align = "tm", padding = 0.05, minw = 2.4}, nodes = {
|
config = {align = "cm", r = 0.2, colour = G.C.CLEAR, shadow = true},
|
||||||
{n = G.UIT.R,config = {minh = 0.2}, nodes = {}},
|
nodes = {
|
||||||
{n = G.UIT.R,config = {align = "tm",padding = 0.2, minh = 1.2, minw = 1.8, r = 0.15,colour = G.C.GREY, one_press = true, button = "skip_booster", hover = true,shadow = true, func = "can_skip_booster"}, nodes = {
|
{n = G.UIT.O, config = {object = G.pack_cards}}},
|
||||||
{n = G.UIT.T, config = {text = localize("b_skip"), scale = 0.5, colour = G.C.WHITE, shadow = true, focus_args = {button = "y", orientation = "bm"}, func = "set_button_pip"}}}}}}}}}}}}
|
}},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
{n = G.UIT.R, config = {align = "cm"}, nodes = {}},
|
||||||
|
{
|
||||||
|
n = G.UIT.R,
|
||||||
|
config = {align = "tm"},
|
||||||
|
nodes = {
|
||||||
|
{n = G.UIT.C, config = {align = "tm", padding = 0.05, minw = 2.4}, nodes = {}},
|
||||||
|
{
|
||||||
|
n = G.UIT.C,
|
||||||
|
config = {align = "tm", padding = 0.05},
|
||||||
|
nodes = {
|
||||||
|
UIBox_dyn_container({
|
||||||
|
{
|
||||||
|
n = G.UIT.C,
|
||||||
|
config = {align = "cm", padding = 0.05, minw = 4},
|
||||||
|
nodes = {
|
||||||
|
{
|
||||||
|
n = G.UIT.R,
|
||||||
|
config = {align = "bm", padding = 0.05},
|
||||||
|
nodes = {
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {"Token Pack"}, colours = {G.C.WHITE}, shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.7, maxw = 4, pop_in = 0.5})}}},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
n = G.UIT.R,
|
||||||
|
config = {align = "bm", padding = 0.05},
|
||||||
|
nodes = {
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {localize("k_choose") .. " "}, colours = {G.C.WHITE}, shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}},
|
||||||
|
{n = G.UIT.O, config = {object = DynaText({string = {{ref_table = G.GAME, ref_value = "pack_choices"}}, colours = {G.C.WHITE}, shadow = true, rotate = true, bump = true, spacing = 2, scale = 0.5, pop_in = 0.7})}}},
|
||||||
|
}},
|
||||||
|
},
|
||||||
|
})},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
n = G.UIT.C,
|
||||||
|
config = {align = "tm", padding = 0.05, minw = 2.4},
|
||||||
|
nodes = {
|
||||||
|
{n = G.UIT.R, config = {minh = 0.2}, nodes = {}},
|
||||||
|
{
|
||||||
|
n = G.UIT.R,
|
||||||
|
config = {align = "tm", padding = 0.2, minh = 1.2, minw = 1.8, r = 0.15, colour = G.C.GREY, one_press = true, button = "skip_booster", hover = true, shadow = true, func = "can_skip_booster"},
|
||||||
|
nodes = {
|
||||||
|
{n = G.UIT.T, config = {text = localize("b_skip"), scale = 0.5, colour = G.C.WHITE, shadow = true, focus_args = {button = "y", orientation = "bm"}, func = "set_button_pip"}}},
|
||||||
|
}},
|
||||||
|
}},
|
||||||
|
}},
|
||||||
|
}},
|
||||||
|
}
|
||||||
|
|
||||||
return t
|
return t
|
||||||
end,
|
end,
|
||||||
ease_background_colour = function(_)
|
ease_background_colour = function(_)
|
||||||
ease_background_colour{new_colour = HEX(i == 1 and "F0C197" or "FD5F55"), special_colour = HEX("000000"), contrast = 5}
|
ease_background_colour {new_colour = HEX(i == 1 and "F0C197" or "FD5F55"), special_colour = HEX("000000"), contrast = 5}
|
||||||
end,
|
end,
|
||||||
in_pool = function (_, _)
|
in_pool = function(_, _)
|
||||||
return G.GAME.used_vouchers.v_jane_token_voucher
|
return G.GAME.used_vouchers.v_jane_token_voucher
|
||||||
end,
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,13 +11,13 @@ SMODS.Edition({
|
||||||
"{C:chips}+#1#{}, {X:chips,C:white}x#2#{} & {X:chips,C:dark_edition}^#3#{} Chips",
|
"{C:chips}+#1#{}, {X:chips,C:white}x#2#{} & {X:chips,C:dark_edition}^#3#{} Chips",
|
||||||
"{C:mult}+#4#{}, {X:mult,C:white}x#5#{} & {X:mult,C:dark_edition}^#6#{} Mult",
|
"{C:mult}+#4#{}, {X:mult,C:white}x#5#{} & {X:mult,C:dark_edition}^#6#{} Mult",
|
||||||
"Generates {C:money}+$#7#",
|
"Generates {C:money}+$#7#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {chips = 1, mult = 1, x_chips = 1.1, x_mult = 1.1, e_chips = 1.01, e_mult = 1.01, p_dollars = 1},
|
config = {chips = 1, mult = 1, x_chips = 1.1, x_mult = 1.1, e_chips = 1.01, e_mult = 1.01, p_dollars = 1},
|
||||||
sound = {
|
sound = {
|
||||||
sound = "jane_e_polygloss",
|
sound = "jane_e_polygloss",
|
||||||
per = 1.2,
|
per = 1.2,
|
||||||
vol = 0.4
|
vol = 0.4,
|
||||||
},
|
},
|
||||||
weight = 8,
|
weight = 8,
|
||||||
extra_cost = 2,
|
extra_cost = 2,
|
||||||
|
|
@ -25,15 +25,17 @@ SMODS.Edition({
|
||||||
shader = "polygloss",
|
shader = "polygloss",
|
||||||
apply_to_float = false,
|
apply_to_float = false,
|
||||||
loc_vars = function(self)
|
loc_vars = function(self)
|
||||||
return {vars = {
|
return {
|
||||||
self.config.chips,
|
vars = {
|
||||||
self.config.x_chips,
|
self.config.chips,
|
||||||
self.config.e_chips,
|
self.config.x_chips,
|
||||||
self.config.mult,
|
self.config.e_chips,
|
||||||
self.config.x_mult,
|
self.config.mult,
|
||||||
self.config.e_mult,
|
self.config.x_mult,
|
||||||
self.config.p_dollars
|
self.config.e_mult,
|
||||||
}}
|
self.config.p_dollars,
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
if context.pre_joker then
|
if context.pre_joker then
|
||||||
|
|
@ -74,8 +76,8 @@ SMODS.Edition({
|
||||||
"All card values are",
|
"All card values are",
|
||||||
"{C:attention}multiplied{} by {C:attention}up to " .. jumbo_modifier,
|
"{C:attention}multiplied{} by {C:attention}up to " .. jumbo_modifier,
|
||||||
"{C:inactive}(If possible)",
|
"{C:inactive}(If possible)",
|
||||||
"{C:inactive,E:1,s:0.7}Whoa, it's huge!!{}"
|
"{C:inactive,E:1,s:0.7}Whoa, it's huge!!{}",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
on_apply = function(card)
|
on_apply = function(card)
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
|
|
@ -84,7 +86,7 @@ SMODS.Edition({
|
||||||
func = function()
|
func = function()
|
||||||
Jane.resize(card, Jane.config.wee_sizemod)
|
Jane.resize(card, Jane.config.wee_sizemod)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
local obj = card:gc()
|
local obj = card:gc()
|
||||||
|
|
@ -110,7 +112,7 @@ SMODS.Edition({
|
||||||
func = function()
|
func = function()
|
||||||
Jane.resize(card, 1 / Jane.config.wee_sizemod)
|
Jane.resize(card, 1 / Jane.config.wee_sizemod)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
local was_added = card.added_to_deck
|
local was_added = card.added_to_deck
|
||||||
|
|
@ -129,7 +131,7 @@ SMODS.Edition({
|
||||||
sound = {
|
sound = {
|
||||||
sound = "jane_e_jumbo",
|
sound = "jane_e_jumbo",
|
||||||
per = 1,
|
per = 1,
|
||||||
vol = 0.5
|
vol = 0.5,
|
||||||
},
|
},
|
||||||
weight = 0.8,
|
weight = 0.8,
|
||||||
in_shop = true,
|
in_shop = true,
|
||||||
|
|
|
||||||
126
src/joker.lua
126
src/joker.lua
|
|
@ -46,7 +46,7 @@ local granddad_palette = {
|
||||||
HEX("155fd9"),
|
HEX("155fd9"),
|
||||||
HEX("ff8170"),
|
HEX("ff8170"),
|
||||||
HEX("ffffff"),
|
HEX("ffffff"),
|
||||||
HEX("6c0700")
|
HEX("6c0700"),
|
||||||
}
|
}
|
||||||
|
|
||||||
local function food_jokers_count()
|
local function food_jokers_count()
|
||||||
|
|
@ -136,7 +136,7 @@ SMODS.Joker {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}+#1# {}booster pack slot#2#",
|
"{C:attention}+#1# {}booster pack slot#2#",
|
||||||
"{C:inactive,s:0.75,E:1}#3#{C:red,s:1.5,E:1}#4#",
|
"{C:inactive,s:0.75,E:1}#3#{C:red,s:1.5,E:1}#4#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {choices = Cryptid and 2 or 1}},
|
config = {extra = {choices = Cryptid and 2 or 1}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -145,12 +145,14 @@ SMODS.Joker {
|
||||||
cost = 6,
|
cost = 6,
|
||||||
rarity = 2,
|
rarity = 2,
|
||||||
loc_vars = function(_, _, card)
|
loc_vars = function(_, _, card)
|
||||||
return {vars = {
|
return {
|
||||||
card.ability.extra.choices,
|
vars = {
|
||||||
card.ability.extra.choices == 1 and "" or "s",
|
card.ability.extra.choices,
|
||||||
Jane.sinister and "" or pseudorandom_element(maxie_quotes.normal, pseudoseed("MaxieQuotes")),
|
card.ability.extra.choices == 1 and "" or "s",
|
||||||
Jane.sinister and pseudorandom_element(maxie_quotes.scared, pseudoseed("MaxieQuotes")) or "",
|
Jane.sinister and "" or pseudorandom_element(maxie_quotes.normal, pseudoseed("MaxieQuotes")),
|
||||||
}}
|
Jane.sinister and pseudorandom_element(maxie_quotes.scared, pseudoseed("MaxieQuotes")) or "",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
if context.starting_shop then
|
if context.starting_shop then
|
||||||
|
|
@ -158,7 +160,7 @@ SMODS.Joker {
|
||||||
SMODS.add_booster_to_shop()
|
SMODS.add_booster_to_shop()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
function Jane.update_honey()
|
function Jane.update_honey()
|
||||||
|
|
@ -223,7 +225,7 @@ SMODS.Joker {
|
||||||
"#5#{C:attention}#6#",
|
"#5#{C:attention}#6#",
|
||||||
"{C:dark_edition}#7#{}#8#{C:inactive,s:0.75,E:1}#9#",
|
"{C:dark_edition}#7#{}#8#{C:inactive,s:0.75,E:1}#9#",
|
||||||
"{C:inactive,s:0.75,E:1}#10#{C:red,s:1.5,E:1}#11#",
|
"{C:inactive,s:0.75,E:1}#10#{C:red,s:1.5,E:1}#11#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {level = "1"}}, -- Strings do not get mutated by other mods
|
config = {extra = {level = "1"}}, -- Strings do not get mutated by other mods
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -257,19 +259,22 @@ SMODS.Joker {
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return {vars = {
|
return {
|
||||||
is_corrupted and " (" .. level_name(level - 2) .. ")" or "",
|
vars = {
|
||||||
(exclusions or ""):sub(#separator),
|
is_corrupted and " (" .. level_name(level - 2) .. ")" or "",
|
||||||
is_corrupted and "" or " jokers",
|
(exclusions or ""):sub(#separator),
|
||||||
is_corrupted and "jokers " or "",
|
is_corrupted and "" or " jokers",
|
||||||
is_corrupted and (level >= #Jane.rarity_names - 1 and "Cannot be upgraded." or "") or "Getting another ",
|
is_corrupted and "jokers " or "",
|
||||||
is_corrupted and "" or "Honey",
|
is_corrupted and (level >= #Jane.rarity_names - 1 and "Cannot be upgraded." or "") or "Getting another ",
|
||||||
is_corrupted and "" or "corrupts ",
|
is_corrupted and "" or "Honey",
|
||||||
is_corrupted and "" or "this Joker",
|
is_corrupted and "" or "corrupts ",
|
||||||
Jane.sinister and "" or (is_corrupted and "*Her eyes are looking around," or ""),
|
is_corrupted and "" or "this Joker",
|
||||||
Jane.sinister and "" or (is_corrupted and "as if she wants to say something...*" or "Buzzzzz! I'll do my best!"),
|
Jane.sinister and "" or (is_corrupted and "*Her eyes are looking around," or ""),
|
||||||
Jane.sinister and (is_corrupted and "..." or "S-STOP THAT!! YOU'RE FREAKING ME OOOUT!!!") or "",
|
Jane.sinister and "" or
|
||||||
}}
|
(is_corrupted and "as if she wants to say something...*" or "Buzzzzz! I'll do my best!"),
|
||||||
|
Jane.sinister and (is_corrupted and "..." or "S-STOP THAT!! YOU'RE FREAKING ME OOOUT!!!") or "",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
update = function(_, card, _)
|
update = function(_, card, _)
|
||||||
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
||||||
|
|
@ -322,7 +327,7 @@ local oxy_quotes = {
|
||||||
"...H-how are you doing t-that...?",
|
"...H-how are you doing t-that...?",
|
||||||
"This is... unsettling...",
|
"This is... unsettling...",
|
||||||
"S-... So much power...",
|
"S-... So much power...",
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
function Jane.oxy(card, removed)
|
function Jane.oxy(card, removed)
|
||||||
|
|
@ -347,7 +352,7 @@ function Jane.oxy(card, removed)
|
||||||
nil,
|
nil,
|
||||||
{
|
{
|
||||||
message = (extra.is_corrupted and "+" or "-") .. destroyed_steel,
|
message = (extra.is_corrupted and "+" or "-") .. destroyed_steel,
|
||||||
colour = extra.is_corrupted and G.C.PURPLE or G.C.GREY
|
colour = extra.is_corrupted and G.C.PURPLE or G.C.GREY,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -367,7 +372,7 @@ SMODS.Joker {
|
||||||
"{C:dark_edition,E:1}#7#{}#8#",
|
"{C:dark_edition,E:1}#7#{}#8#",
|
||||||
"#9#{C:dark_edition,E:1}#10#",
|
"#9#{C:dark_edition,E:1}#10#",
|
||||||
"{C:inactive,s:0.75,E:1}#11#{C:red,s:1.5,E:1}#12#",
|
"{C:inactive,s:0.75,E:1}#11#{C:red,s:1.5,E:1}#12#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {corrupted_steel = 2.5, is_corrupted = false, milestone = 3, progress = 0}},
|
config = {extra = {corrupted_steel = 2.5, is_corrupted = false, milestone = 3, progress = 0}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -385,20 +390,25 @@ SMODS.Joker {
|
||||||
local effective = is_corrupted and progress or milestone - progress
|
local effective = is_corrupted and progress or milestone - progress
|
||||||
local plural = effective == 1 and "" or "s"
|
local plural = effective == 1 and "" or "s"
|
||||||
|
|
||||||
return {vars = {
|
return {
|
||||||
is_corrupted and " (Corrupted)" or "",
|
vars = {
|
||||||
amount,
|
is_corrupted and " (Corrupted)" or "",
|
||||||
is_corrupted and "Purifies " or "",
|
amount,
|
||||||
is_corrupted and "in " or "",
|
is_corrupted and "Purifies " or "",
|
||||||
is_corrupted and "" or "Destroying ",
|
is_corrupted and "in " or "",
|
||||||
effective .. (is_corrupted and " round" or " steel card") .. plural,
|
is_corrupted and "" or "Destroying ",
|
||||||
is_corrupted and "" or "corrupts ",
|
effective .. (is_corrupted and " round" or " steel card") .. plural,
|
||||||
is_corrupted and "Destroying steel cards" or "this Joker",
|
is_corrupted and "" or "corrupts ",
|
||||||
is_corrupted and "prolongs the " or "",
|
is_corrupted and "Destroying steel cards" or "this Joker",
|
||||||
is_corrupted and "corruption" or "",
|
is_corrupted and "prolongs the " or "",
|
||||||
Jane.sinister and "" or (is_corrupted and pseudorandom_element(oxy_quotes.normal, pseudoseed("OxyQuotes")) or "We all cut close..."),
|
is_corrupted and "corruption" or "",
|
||||||
Jane.sinister and (is_corrupted and pseudorandom_element(oxy_quotes.scared, pseudoseed("OxyQuotes")) or "WHAT ARE YOU DOING DOWN THERE?!?") or "",
|
Jane.sinister and "" or
|
||||||
}}
|
(is_corrupted and pseudorandom_element(oxy_quotes.normal, pseudoseed("OxyQuotes")) or "We all cut close..."),
|
||||||
|
Jane.sinister and
|
||||||
|
(is_corrupted and pseudorandom_element(oxy_quotes.scared, pseudoseed("OxyQuotes")) or "WHAT ARE YOU DOING DOWN THERE?!?") or
|
||||||
|
"",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
update = function(_, card, _)
|
update = function(_, card, _)
|
||||||
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
||||||
|
|
@ -428,14 +438,14 @@ SMODS.Joker {
|
||||||
nil,
|
nil,
|
||||||
{
|
{
|
||||||
message = extra.is_corrupted and "-1" or "+1",
|
message = extra.is_corrupted and "-1" or "+1",
|
||||||
colour = extra.is_corrupted and G.C.PURPLE or G.C.GREY
|
colour = extra.is_corrupted and G.C.PURPLE or G.C.GREY,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
if not extra.is_corrupting and
|
if not extra.is_corrupting and
|
||||||
((extra.progress >= extra.milestone and not extra.is_corrupted) or
|
((extra.progress >= extra.milestone and not extra.is_corrupted) or
|
||||||
(extra.progress <= 0 and extra.is_corrupted)) then
|
(extra.progress <= 0 and extra.is_corrupted)) then
|
||||||
extra.is_corrupting = true
|
extra.is_corrupting = true
|
||||||
|
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
|
|
@ -444,7 +454,7 @@ SMODS.Joker {
|
||||||
card:flip()
|
card:flip()
|
||||||
play_sound("card1")
|
play_sound("card1")
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
|
|
@ -457,7 +467,7 @@ SMODS.Joker {
|
||||||
extra.is_corrupted = not extra.is_corrupted
|
extra.is_corrupted = not extra.is_corrupted
|
||||||
extra.is_corrupting = nil
|
extra.is_corrupting = nil
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -467,7 +477,7 @@ SMODS.Joker {
|
||||||
local amount = extra.is_corrupted and extra.corrupted_steel or extra.steel
|
local amount = extra.is_corrupted and extra.corrupted_steel or extra.steel
|
||||||
return {x_chips = amount, x_mult = amount, colour = G.C.PURPLE, card = card}, true
|
return {x_chips = amount, x_mult = amount, colour = G.C.PURPLE, card = card}, true
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
if Cryptid then
|
if Cryptid then
|
||||||
|
|
@ -485,7 +495,7 @@ SMODS.Joker {
|
||||||
"{X:dark_edition,C:chips}+" .. operator .. "#1#{C:chips} Chips{} for every",
|
"{X:dark_edition,C:chips}+" .. operator .. "#1#{C:chips} Chips{} for every",
|
||||||
"{C:attention}unique Voucher redeemed",
|
"{C:attention}unique Voucher redeemed",
|
||||||
"{C:inactive}(Currently {X:dark_edition,C:chips}" .. operator .. "#2#{C:inactive})",
|
"{C:inactive}(Currently {X:dark_edition,C:chips}" .. operator .. "#2#{C:inactive})",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {big_num_scaler = true, extra = {tet = Cryptid and 0.1 or 0.5}},
|
config = {big_num_scaler = true, extra = {tet = Cryptid and 0.1 or 0.5}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -513,7 +523,7 @@ SMODS.Joker {
|
||||||
[Cryptid and "e_chips" or "x_chips"] = num,
|
[Cryptid and "e_chips" or "x_chips"] = num,
|
||||||
}, true
|
}, true
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
|
|
@ -523,7 +533,7 @@ SMODS.Joker {
|
||||||
text = {
|
text = {
|
||||||
"This Joker has a {C:jane_RGB,E:1}strange",
|
"This Joker has a {C:jane_RGB,E:1}strange",
|
||||||
"{C:jane_RGB,E:1}reaction {}to scored {C:attention}7{}s",
|
"{C:jane_RGB,E:1}reaction {}to scored {C:attention}7{}s",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {},
|
config = {},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -557,54 +567,54 @@ SMODS.Joker {
|
||||||
message = Cryptid and "+777" or "+77",
|
message = Cryptid and "+777" or "+77",
|
||||||
chips = Cryptid and 777 or 77,
|
chips = Cryptid and 777 or 77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 2 then
|
elseif rnd == 2 then
|
||||||
return {
|
return {
|
||||||
message = Cryptid and "+777 Mult" or "+77 Mult",
|
message = Cryptid and "+777 Mult" or "+77 Mult",
|
||||||
mult = Cryptid and 777 or 77,
|
mult = Cryptid and 777 or 77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 3 then
|
elseif rnd == 3 then
|
||||||
return {
|
return {
|
||||||
message = "+$7",
|
message = "+$7",
|
||||||
dollars = 7,
|
dollars = 7,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 4 then
|
elseif rnd == 4 then
|
||||||
return {
|
return {
|
||||||
message = Cryptid and "x7" or "x1.77",
|
message = Cryptid and "x7" or "x1.77",
|
||||||
x_chips = Cryptid and 7 or 1.77,
|
x_chips = Cryptid and 7 or 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 5 then
|
elseif rnd == 5 then
|
||||||
return {
|
return {
|
||||||
message = Cryptid and "x7 Mult" or "x1.77 Mult",
|
message = Cryptid and "x7 Mult" or "x1.77 Mult",
|
||||||
x_mult = Cryptid and 7 or 1.77,
|
x_mult = Cryptid and 7 or 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
elseif rnd == 6 then
|
elseif rnd == 6 then
|
||||||
return {
|
return {
|
||||||
message = "^1.77",
|
message = "^1.77",
|
||||||
e_chips = 1.77,
|
e_chips = 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
else
|
else
|
||||||
return {
|
return {
|
||||||
message = "^1.77 Mult",
|
message = "^1.77 Mult",
|
||||||
e_mult = 1.77,
|
e_mult = 1.77,
|
||||||
colour = palette,
|
colour = palette,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
|
|
@ -617,7 +627,7 @@ SMODS.Joker {
|
||||||
"{C:attention}food or Peppino Joker",
|
"{C:attention}food or Peppino Joker",
|
||||||
"in your possession",
|
"in your possession",
|
||||||
"{C:inactive}(Currently {X:dark_edition,C:red}" .. operator .. "#1#{C:red} Mult{C:inactive})",
|
"{C:inactive}(Currently {X:dark_edition,C:red}" .. operator .. "#1#{C:red} Mult{C:inactive})",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
|
|
@ -637,5 +647,5 @@ SMODS.Joker {
|
||||||
[Cryptid and "e_mult" or "x_mult"] = 2 ^ count,
|
[Cryptid and "e_mult" or "x_mult"] = 2 ^ count,
|
||||||
}, true
|
}, true
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
39
src/main.lua
39
src/main.lua
|
|
@ -2,7 +2,7 @@ Jane = {
|
||||||
config = {
|
config = {
|
||||||
wee_sizemod = 1.25,
|
wee_sizemod = 1.25,
|
||||||
texture_pack = "default",
|
texture_pack = "default",
|
||||||
bans = {"j_cry_crustulum", "c_cry_hammerspace"}
|
bans = {"j_cry_crustulum", "c_cry_hammerspace"},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -20,8 +20,8 @@ end
|
||||||
|
|
||||||
function Jane.can_use()
|
function Jane.can_use()
|
||||||
return not (((G.play and #G.play.cards > 0) or
|
return not (((G.play and #G.play.cards > 0) or
|
||||||
(G.CONTROLLER.locked) or
|
(G.CONTROLLER.locked) or
|
||||||
(G.GAME.STOP_USE and G.GAME.STOP_USE > 0)) and
|
(G.GAME.STOP_USE and G.GAME.STOP_USE > 0)) and
|
||||||
G.STATE ~= G.STATES.HAND_PLAYED and
|
G.STATE ~= G.STATES.HAND_PLAYED and
|
||||||
G.STATE ~= G.STATES.DRAW_TO_HAND and
|
G.STATE ~= G.STATES.DRAW_TO_HAND and
|
||||||
G.STATE ~= G.STATES.PLAY_TAROT)
|
G.STATE ~= G.STATES.PLAY_TAROT)
|
||||||
|
|
@ -56,7 +56,7 @@ function Jane.card_status_text(
|
||||||
backdrop_colour = colour or (G.C.FILTER),
|
backdrop_colour = colour or (G.C.FILTER),
|
||||||
align = align or "bm",
|
align = align or "bm",
|
||||||
major = card,
|
major = card,
|
||||||
offset = {x = xoffset or 0, y = yoffset or (-0.05*G.CARD_H)}
|
offset = {x = xoffset or 0, y = yoffset or (-0.05 * G.CARD_H)},
|
||||||
})
|
})
|
||||||
|
|
||||||
if sound then
|
if sound then
|
||||||
|
|
@ -90,7 +90,7 @@ function Jane.card_status_text(
|
||||||
backdrop_colour = colour or (G.C.FILTER),
|
backdrop_colour = colour or (G.C.FILTER),
|
||||||
align = align or "bm",
|
align = align or "bm",
|
||||||
major = card,
|
major = card,
|
||||||
offset = {x = xoffset or 0, y = yoffset or (-0.05*G.CARD_H)}
|
offset = {x = xoffset or 0, y = yoffset or (-0.05 * G.CARD_H)},
|
||||||
})
|
})
|
||||||
|
|
||||||
if sound then
|
if sound then
|
||||||
|
|
@ -110,7 +110,7 @@ function Jane.card_status_text(
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -132,7 +132,7 @@ function Jane.get_chipmult_sum(chips, mult)
|
||||||
mult = mult or 0
|
mult = mult or 0
|
||||||
|
|
||||||
local break_infinity = ((Talisman or {}).config_file or {}).break_infinity
|
local break_infinity = ((Talisman or {}).config_file or {}).break_infinity
|
||||||
local big = (break_infinity == "" or break_infinity == nil) and function (x) return x end or to_big
|
local big = (break_infinity == "" or break_infinity == nil) and function(x) return x end or to_big
|
||||||
local op = Jane.get_operator()
|
local op = Jane.get_operator()
|
||||||
|
|
||||||
if op >= 3 then
|
if op >= 3 then
|
||||||
|
|
@ -161,16 +161,16 @@ end
|
||||||
function Jane.hidden(card)
|
function Jane.hidden(card)
|
||||||
return G.GAME and not
|
return G.GAME and not
|
||||||
G.GAME.obsidian and
|
G.GAME.obsidian and
|
||||||
type(card) == 'table' and
|
type(card) == "table" and
|
||||||
(card.name == "Black Hole" or card.name == "The Soul" or card.hidden)
|
(card.name == "Black Hole" or card.name == "The Soul" or card.hidden)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Jane.play_sound(sound, per, vol)
|
function Jane.play_sound(sound, per, vol)
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
func = function()
|
func = function()
|
||||||
play_sound(sound,per,vol)
|
play_sound(sound, per, vol)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -187,8 +187,8 @@ function Jane.resize(card, mod, force_save)
|
||||||
|
|
||||||
if card.area and
|
if card.area and
|
||||||
((G.shop_jokers and card.area == G.shop_jokers) or
|
((G.shop_jokers and card.area == G.shop_jokers) or
|
||||||
(G.shop_booster and card.area == G.shop_booster) or
|
(G.shop_booster and card.area == G.shop_booster) or
|
||||||
(G.shop_vouchers and card.area == G.shop_vouchers)) then
|
(G.shop_vouchers and card.area == G.shop_vouchers)) then
|
||||||
create_shop_card_ui(card)
|
create_shop_card_ui(card)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -200,7 +200,7 @@ function Jane.q(fc, de, t, tr, bl, ba)
|
||||||
delay = de,
|
delay = de,
|
||||||
blockable = bl,
|
blockable = bl,
|
||||||
blocking = ba,
|
blocking = ba,
|
||||||
func = fc
|
func = fc,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -287,8 +287,8 @@ function Game:update(dt)
|
||||||
for k, v in pairs(G.GAME.hands) do
|
for k, v in pairs(G.GAME.hands) do
|
||||||
if orrery[k] and
|
if orrery[k] and
|
||||||
(orrery[k].mult ~= v.mult or
|
(orrery[k].mult ~= v.mult or
|
||||||
orrery[k].chips ~= v.chips or
|
orrery[k].chips ~= v.chips or
|
||||||
orrery[k].level ~= v.level) then
|
orrery[k].level ~= v.level) then
|
||||||
inequalities = inequalities + 1
|
inequalities = inequalities + 1
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -304,7 +304,7 @@ function Game:update(dt)
|
||||||
end
|
end
|
||||||
|
|
||||||
pools.chips = pools.chips + inequalities * 150
|
pools.chips = pools.chips + inequalities * 150
|
||||||
table.sort(hands, function (x, y) return x.order > y.order end)
|
table.sort(hands, function(x, y) return x.order > y.order end)
|
||||||
|
|
||||||
for i, v in ipairs(hands) do
|
for i, v in ipairs(hands) do
|
||||||
v.mult = math.floor(pools.mult / count) + (small(pools.mult % count) >= i and 1 or 0)
|
v.mult = math.floor(pools.mult / count) + (small(pools.mult % count) >= i and 1 or 0)
|
||||||
|
|
@ -316,13 +316,16 @@ function Game:update(dt)
|
||||||
orrery[k] = {chips = v.chips, level = v.level, mult = v.mult}
|
orrery[k] = {chips = v.chips, level = v.level, mult = v.mult}
|
||||||
end
|
end
|
||||||
|
|
||||||
hand(localize("k_all_hands"), math.floor(pools.chips / count), math.floor(pools.mult / count), math.floor(pools.level / count))
|
hand(localize("k_all_hands"), math.floor(pools.chips / count), math.floor(pools.mult / count),
|
||||||
|
math.floor(pools.level / count))
|
||||||
delay(1)
|
delay(1)
|
||||||
update_hand_text({sound = "button", volume = 0.7, pitch = 1.1, delay = 0}, {mult = 0, chips = 0, handname = "", level = ""})
|
update_hand_text({sound = "button", volume = 0.7, pitch = 1.1, delay = 0},
|
||||||
|
{mult = 0, chips = 0, handname = "", level = ""})
|
||||||
end
|
end
|
||||||
|
|
||||||
local function hsv(h, s, v)
|
local function hsv(h, s, v)
|
||||||
if s <= 0 then return v, v, v end
|
if s <= 0 then return v, v, v end
|
||||||
|
|
||||||
h = h * 6
|
h = h * 6
|
||||||
local c = v * s
|
local c = v * s
|
||||||
local x = (1 - math.abs((h % 2) - 1)) * c
|
local x = (1 - math.abs((h % 2) - 1)) * c
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
-- The following code is slightly adapted from
|
-- The following code is slightly adapted from
|
||||||
-- https://github.com/MathIsFun0/Cryptid/blob/main/lib/misprintize.lua
|
-- https://github.com/MathIsFun0/Cryptid/blob/main/lib/misprintize.lua
|
||||||
|
|
||||||
local base_values = {}
|
local base_values = {}
|
||||||
|
|
||||||
local big_num_whitelist = {
|
local big_num_whitelist = {
|
||||||
|
|
@ -114,7 +113,6 @@ local function log_random(seed, min, max)
|
||||||
end
|
end
|
||||||
|
|
||||||
function Jane.misprintize_val(val, override, big)
|
function Jane.misprintize_val(val, override, big)
|
||||||
|
|
||||||
return is_number(val) and check(
|
return is_number(val) and check(
|
||||||
format(
|
format(
|
||||||
val * log_random(
|
val * log_random(
|
||||||
|
|
@ -153,30 +151,30 @@ function Jane.misprintize_tbl(name, ref_tbl, ref_value, clear, override, stack,
|
||||||
|
|
||||||
tbl[k] = check(
|
tbl[k] = check(
|
||||||
clear and base_values[name][k]
|
clear and base_values[name][k]
|
||||||
or format(
|
or format(
|
||||||
(stack and tbl[k] or base_values[name][k])
|
(stack and tbl[k] or base_values[name][k])
|
||||||
* log_random(
|
* log_random(
|
||||||
pseudoseed("cry_misprint" .. G.GAME.round_resets.ante),
|
pseudoseed("cry_misprint" .. G.GAME.round_resets.ante),
|
||||||
override and override.min or G.GAME.modifiers.cry_misprint_min,
|
override and override.min or G.GAME.modifiers.cry_misprint_min,
|
||||||
override and override.max or G.GAME.modifiers.cry_misprint_max
|
override and override.max or G.GAME.modifiers.cry_misprint_max
|
||||||
),
|
|
||||||
"%.2g"
|
|
||||||
),
|
),
|
||||||
|
"%.2g"
|
||||||
|
),
|
||||||
big
|
big
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
for _k, _ in pairs(tbl[k]) do
|
for _k, _ in pairs(tbl[k]) do
|
||||||
if is_number(tbl[k][_k]) and not
|
if is_number(tbl[k][_k]) and not
|
||||||
(_k == "id") and not
|
(_k == "id") and not
|
||||||
(k == "perish_tally") and not
|
(k == "perish_tally") and not
|
||||||
(k == "colour") and not
|
(k == "colour") and not
|
||||||
(_k == "suit_nominal") and not
|
(_k == "suit_nominal") and not
|
||||||
(_k == "base_nominal") and not
|
(_k == "base_nominal") and not
|
||||||
(_k == "face_nominal") and not
|
(_k == "face_nominal") and not
|
||||||
(_k == "qty") and not
|
(_k == "qty") and not
|
||||||
(k == "x_mult" and v == 1 and not tbl[k].override_x_mult_check) and not
|
(k == "x_mult" and v == 1 and not tbl[k].override_x_mult_check) and not
|
||||||
(_k == "selected_d6_face") then
|
(_k == "selected_d6_face") then
|
||||||
if not base_values[name] then
|
if not base_values[name] then
|
||||||
base_values[name] = {}
|
base_values[name] = {}
|
||||||
end
|
end
|
||||||
|
|
@ -191,15 +189,15 @@ function Jane.misprintize_tbl(name, ref_tbl, ref_value, clear, override, stack,
|
||||||
|
|
||||||
tbl[k][_k] = check(
|
tbl[k][_k] = check(
|
||||||
clear and base_values[name][k][_k]
|
clear and base_values[name][k][_k]
|
||||||
or format(
|
or format(
|
||||||
(stack and tbl[k][_k] or base_values[name][k][_k]) *
|
(stack and tbl[k][_k] or base_values[name][k][_k]) *
|
||||||
log_random(
|
log_random(
|
||||||
pseudoseed("cry_misprint" .. G.GAME.round_resets.ante),
|
pseudoseed("cry_misprint" .. G.GAME.round_resets.ante),
|
||||||
override and override.min or G.GAME.modifiers.cry_misprint_min,
|
override and override.min or G.GAME.modifiers.cry_misprint_min,
|
||||||
override and override.max or G.GAME.modifiers.cry_misprint_max
|
override and override.max or G.GAME.modifiers.cry_misprint_max
|
||||||
),
|
|
||||||
"%.2g"
|
|
||||||
),
|
),
|
||||||
|
"%.2g"
|
||||||
|
),
|
||||||
big
|
big
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
@ -247,10 +245,11 @@ function Jane.misprintize(card, override, force_reset, stack)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if (not force_reset or G.GAME.modifiers.cry_jkr_misprint_mod) and
|
if (not force_reset or G.GAME.modifiers.cry_jkr_misprint_mod) and
|
||||||
(G.GAME.modifiers.cry_misprint_min or override or card.ability.set == "Joker") and not
|
(G.GAME.modifiers.cry_misprint_min or override or card.ability.set == "Joker") and not
|
||||||
stack or not
|
stack or not
|
||||||
no(card, "immutable", true) then
|
no(card, "immutable", true) then
|
||||||
if card.ability.name == "Ace Aequilibrium" then
|
if card.ability.name == "Ace Aequilibrium" then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
|
||||||
135
src/slugcat.lua
135
src/slugcat.lua
|
|
@ -20,7 +20,7 @@ for _, v in pairs({
|
||||||
key = "jane" .. v,
|
key = "jane" .. v,
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
path = Jane.config.texture_pack .. "/j_jane_" .. v .. ".png"
|
path = Jane.config.texture_pack .. "/j_jane_" .. v .. ".png",
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -44,7 +44,7 @@ SMODS.Joker {
|
||||||
"cards {C:attention}#1# time#2# {}if",
|
"cards {C:attention}#1# time#2# {}if",
|
||||||
"hand contains {C:attention}#3#",
|
"hand contains {C:attention}#3#",
|
||||||
"or fewer card#4#",
|
"or fewer card#4#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {retriggers = 2, requirement = 4}},
|
config = {extra = {retriggers = 2, requirement = 4}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -57,12 +57,14 @@ SMODS.Joker {
|
||||||
local retriggers = extra.retriggers
|
local retriggers = extra.retriggers
|
||||||
local requirement = extra.requirement
|
local requirement = extra.requirement
|
||||||
|
|
||||||
return {vars = {
|
return {
|
||||||
retriggers,
|
vars = {
|
||||||
retriggers == 1 and "" or "s",
|
retriggers,
|
||||||
requirement,
|
retriggers == 1 and "" or "s",
|
||||||
requirement == 1 and "" or "s"
|
requirement,
|
||||||
}}
|
requirement == 1 and "" or "s",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
calculate = function(_, card, context)
|
calculate = function(_, card, context)
|
||||||
if not context.repetition or
|
if not context.repetition or
|
||||||
|
|
@ -76,9 +78,9 @@ SMODS.Joker {
|
||||||
message = localize("k_again_ex"),
|
message = localize("k_again_ex"),
|
||||||
repetitions = card.ability.extra.retriggers,
|
repetitions = card.ability.extra.retriggers,
|
||||||
colour = G.C.ORANGE,
|
colour = G.C.ORANGE,
|
||||||
card = card
|
card = card,
|
||||||
}, true
|
}, true
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
|
|
@ -91,7 +93,7 @@ SMODS.Joker {
|
||||||
"{C:attention}contribute to scoring {}and",
|
"{C:attention}contribute to scoring {}and",
|
||||||
"are all considered as",
|
"are all considered as",
|
||||||
"the {C:attention}first played card",
|
"the {C:attention}first played card",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
|
|
@ -112,7 +114,7 @@ SMODS.Joker {
|
||||||
(Cryptid and "an {C:spectral}Empowered Tag" or "a {C:dark_edition}Negative {C:spectral}Soul") .. " {}after #1#",
|
(Cryptid and "an {C:spectral}Empowered Tag" or "a {C:dark_edition}Negative {C:spectral}Soul") .. " {}after #1#",
|
||||||
"When {C:attention}sold#2#{}, turns#3#",
|
"When {C:attention}sold#2#{}, turns#3#",
|
||||||
"#4#{C:red}The Rot{} without rewards",
|
"#4#{C:red}The Rot{} without rewards",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {rounds_left = hunter[1]}},
|
config = {extra = {rounds_left = hunter[1]}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -129,12 +131,14 @@ SMODS.Joker {
|
||||||
local rounds_left = card.ability.extra.rounds_left
|
local rounds_left = card.ability.extra.rounds_left
|
||||||
local sold = rounds_left - hunter[2]
|
local sold = rounds_left - hunter[2]
|
||||||
|
|
||||||
return {vars = {
|
return {
|
||||||
rounds_left .. rounds(rounds_left) .. (rounds_left <= 0 and "...?" or ""),
|
vars = {
|
||||||
sold <= 0 and "" or " after " .. sold .. rounds(sold),
|
rounds_left .. rounds(rounds_left) .. (rounds_left <= 0 and "...?" or ""),
|
||||||
sold <= 0 and " into" or "",
|
sold <= 0 and "" or " after " .. sold .. rounds(sold),
|
||||||
sold <= 0 and "" or "into ",
|
sold <= 0 and " into" or "",
|
||||||
}}
|
sold <= 0 and "" or "into ",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
update = function(_, card, _)
|
update = function(_, card, _)
|
||||||
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
||||||
|
|
@ -185,7 +189,7 @@ SMODS.Joker {
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
if context.selling_self and card.ability.extra.rounds_left <= hunter[2] then
|
if context.selling_self and card.ability.extra.rounds_left <= hunter[3] then
|
||||||
spawn_rot()
|
spawn_rot()
|
||||||
elseif not context.individual and not context.repetition and not context.retrigger_joker then
|
elseif not context.individual and not context.repetition and not context.retrigger_joker then
|
||||||
if G.GAME.round_resets.hands <= 0 then
|
if G.GAME.round_resets.hands <= 0 then
|
||||||
|
|
@ -215,7 +219,8 @@ SMODS.Joker {
|
||||||
card.hunter_prep = nil
|
card.hunter_prep = nil
|
||||||
card.ability.extra.rounds_left = card.ability.extra.rounds_left - 1
|
card.ability.extra.rounds_left = card.ability.extra.rounds_left - 1
|
||||||
local rl = card.ability.extra.rounds_left
|
local rl = card.ability.extra.rounds_left
|
||||||
Jane.card_status_text(card, tostring(card.ability.extra.rounds_left), nil, nil, G.C.RED, nil, nil, nil, nil, nil, "generic1")
|
Jane.card_status_text(card, tostring(card.ability.extra.rounds_left), nil, nil, G.C.RED, nil, nil, nil, nil,
|
||||||
|
nil, "generic1")
|
||||||
|
|
||||||
if rl > hunter[2] then
|
if rl > hunter[2] then
|
||||||
card:juice_up(0.6, 0.1)
|
card:juice_up(0.6, 0.1)
|
||||||
|
|
@ -251,7 +256,7 @@ SMODS.Joker {
|
||||||
G.E_MANAGER:add_event(Event({trigger = "after", func = die}))
|
G.E_MANAGER:add_event(Event({trigger = "after", func = die}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Joker {
|
SMODS.Joker {
|
||||||
|
|
@ -264,7 +269,7 @@ SMODS.Joker {
|
||||||
"are {C:attention}multiplied{} by {C:attention}#1#",
|
"are {C:attention}multiplied{} by {C:attention}#1#",
|
||||||
"when they are created",
|
"when they are created",
|
||||||
"{C:inactive}(If possible)",
|
"{C:inactive}(If possible)",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
loc_vars = function(_, _, center)
|
loc_vars = function(_, _, center)
|
||||||
return {vars = {center.ability.modifier}}
|
return {vars = {center.ability.modifier}}
|
||||||
|
|
@ -304,7 +309,7 @@ SMODS.Joker {
|
||||||
text = {
|
text = {
|
||||||
"Grants the {C:green}ability{} to {C:red}destroy",
|
"Grants the {C:green}ability{} to {C:red}destroy",
|
||||||
"selected {C:attention}playing cards",
|
"selected {C:attention}playing cards",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
|
|
@ -334,7 +339,7 @@ SMODS.Joker {
|
||||||
"You can choose {C:attention}any number of cards",
|
"You can choose {C:attention}any number of cards",
|
||||||
"after opening {C:attention}any Booster Pack",
|
"after opening {C:attention}any Booster Pack",
|
||||||
"{C:attention}Booster Packs{} have {C:green}+#1#{} additional cards",
|
"{C:attention}Booster Packs{} have {C:green}+#1#{} additional cards",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
loc_vars = function(_, _, center)
|
loc_vars = function(_, _, center)
|
||||||
return {vars = {center.ability.extra.extrachoices}}
|
return {vars = {center.ability.extra.extrachoices}}
|
||||||
|
|
@ -373,7 +378,7 @@ function Card:open()
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -385,7 +390,7 @@ SMODS.Joker {
|
||||||
text = {
|
text = {
|
||||||
"Non-{C:dark_edition}editioned{} cards are",
|
"Non-{C:dark_edition}editioned{} cards are",
|
||||||
"{C:attention}given a random {C:dark_edition}Edition",
|
"{C:attention}given a random {C:dark_edition}Edition",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
|
|
@ -416,7 +421,7 @@ function Card:draw(layer)
|
||||||
self.facing == "front" and
|
self.facing == "front" and
|
||||||
self.config and
|
self.config and
|
||||||
(self.added_to_deck or
|
(self.added_to_deck or
|
||||||
(self.area and self.area == G.hand)) and not
|
(self.area and self.area == G.hand)) and not
|
||||||
self.edition and
|
self.edition and
|
||||||
(self.area == G.consumeables or cen.set ~= "Booster") and
|
(self.area == G.consumeables or cen.set ~= "Booster") and
|
||||||
next(SMODS.find_card("j_jane_rivulet")) then
|
next(SMODS.find_card("j_jane_rivulet")) then
|
||||||
|
|
@ -462,7 +467,7 @@ SMODS.Joker {
|
||||||
"{C:inactive,s:1.25}#10#{C:attention,s:1.25}#11#{C:inactive,s:1.25}#12#{C:inactive}#13#{C:jane_RGB}#14#" ..
|
"{C:inactive,s:1.25}#10#{C:attention,s:1.25}#11#{C:inactive,s:1.25}#12#{C:inactive}#13#{C:jane_RGB}#14#" ..
|
||||||
(Cryptid and "{C:inactive}" or "{C:inactive,s:0.75}") ..
|
(Cryptid and "{C:inactive}" or "{C:inactive,s:0.75}") ..
|
||||||
"#15#",
|
"#15#",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {karma = 0, max_karma = Cryptid and 10 or 3}},
|
config = {extra = {karma = 0, max_karma = Cryptid and 10 or 3}},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
|
|
@ -476,23 +481,25 @@ SMODS.Joker {
|
||||||
local max_karma = extra.max_karma
|
local max_karma = extra.max_karma
|
||||||
local attuned = karma >= max_karma
|
local attuned = karma >= max_karma
|
||||||
|
|
||||||
return {vars = {
|
return {
|
||||||
attuned and " (Attuned)" or "",
|
vars = {
|
||||||
Cryptid and "Ankh and Gateway" or "Ankh",
|
attuned and " (Attuned)" or "",
|
||||||
attuned and "" or "Attune ",
|
Cryptid and "Ankh and Gateway" or "Ankh",
|
||||||
attuned and "" or "after using ",
|
attuned and "" or "Attune ",
|
||||||
attuned and (Cryptid and "^^" or "^") .. attunement() or max_karma,
|
attuned and "" or "after using ",
|
||||||
attuned and "" or (Cryptid and " Gateways" or " Ankh or Soul Cards"),
|
attuned and (Cryptid and "^^" or "^") .. attunement() or max_karma,
|
||||||
attuned and " Chips " or "",
|
attuned and "" or (Cryptid and " Gateways" or " Ankh or Soul Cards"),
|
||||||
attuned and "& " or "",
|
attuned and " Chips " or "",
|
||||||
attuned and "Mult" or "",
|
attuned and "& " or "",
|
||||||
attuned and "" or "[",
|
attuned and "Mult" or "",
|
||||||
attuned and "" or karma,
|
attuned and "" or "[",
|
||||||
attuned and "" or " / " .. max_karma .. "]",
|
attuned and "" or karma,
|
||||||
attuned and "(Cannot be debuffed" .. (Cryptid and "" or ", scales with ") or "",
|
attuned and "" or " / " .. max_karma .. "]",
|
||||||
attuned and (Cryptid and "" or "polygloss") or "",
|
attuned and "(Cannot be debuffed" .. (Cryptid and "" or ", scales with ") or "",
|
||||||
attuned and ")" or "",
|
attuned and (Cryptid and "" or "polygloss") or "",
|
||||||
}}
|
attuned and ")" or "",
|
||||||
|
},
|
||||||
|
}
|
||||||
end,
|
end,
|
||||||
update = function(_, card, _)
|
update = function(_, card, _)
|
||||||
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
if card.added_to_deck and card.children.center and card.children.floating_sprite then
|
||||||
|
|
@ -534,9 +541,9 @@ SMODS.Joker {
|
||||||
end
|
end
|
||||||
|
|
||||||
if not (not context.blueprint and
|
if not (not context.blueprint and
|
||||||
(not context.retrigger_joker_check and not context.retrigger_joker) and
|
(not context.retrigger_joker_check and not context.retrigger_joker) and
|
||||||
context.using_consumeable and
|
context.using_consumeable and
|
||||||
context.consumeable) then
|
context.consumeable) then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -592,7 +599,7 @@ SMODS.Joker {
|
||||||
card:flip()
|
card:flip()
|
||||||
play_sound("card1")
|
play_sound("card1")
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
G.E_MANAGER:add_event(Event({
|
G.E_MANAGER:add_event(Event({
|
||||||
|
|
@ -603,9 +610,9 @@ SMODS.Joker {
|
||||||
play_sound("card1")
|
play_sound("card1")
|
||||||
extra.is_attuned = true
|
extra.is_attuned = true
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
if Cryptid then
|
if Cryptid then
|
||||||
|
|
@ -622,13 +629,13 @@ SMODS.Joker {
|
||||||
"Clogs up your Joker slots",
|
"Clogs up your Joker slots",
|
||||||
"{C:attention}Duplicates itself{} at the",
|
"{C:attention}Duplicates itself{} at the",
|
||||||
"end of {C:attention}every ante",
|
"end of {C:attention}every ante",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
soul_pos = {x = 1, y = 0},
|
soul_pos = {x = 1, y = 0},
|
||||||
cost = 1,
|
cost = 1,
|
||||||
rarity = "jane_junk",
|
rarity = "jane_junk",
|
||||||
in_pool = function (_, _)
|
in_pool = function(_, _)
|
||||||
for _, v in pairs(SMODS.find_card("j_jane_honey")) do
|
for _, v in pairs(SMODS.find_card("j_jane_honey")) do
|
||||||
if tonumber(v.ability.extra.level) == #Jane.rarity_ids - 1 then
|
if tonumber(v.ability.extra.level) == #Jane.rarity_ids - 1 then
|
||||||
return true
|
return true
|
||||||
|
|
@ -644,12 +651,12 @@ SMODS.Joker {
|
||||||
|
|
||||||
local function is_end_of_ante()
|
local function is_end_of_ante()
|
||||||
return not context.individual and not
|
return not context.individual and not
|
||||||
context.repetition and not
|
context.repetition and not
|
||||||
card.debuff and
|
card.debuff and
|
||||||
context.end_of_round and not
|
context.end_of_round and not
|
||||||
context.blueprint and
|
context.blueprint and
|
||||||
G.GAME.blind.boss and not
|
G.GAME.blind.boss and not
|
||||||
(G.GAME.blind.config and G.GAME.blind.config.bonus)
|
(G.GAME.blind.config and G.GAME.blind.config.bonus)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function spawn()
|
local function spawn()
|
||||||
|
|
@ -658,12 +665,16 @@ SMODS.Joker {
|
||||||
rot:add_to_deck()
|
rot:add_to_deck()
|
||||||
G.jokers:emplace(rot)
|
G.jokers:emplace(rot)
|
||||||
Jane.card_status_text(rot, "...", nil, 0.05 * card.T.h, G.C.BLACK, 3, 0, 0, nil, "bm")
|
Jane.card_status_text(rot, "...", nil, 0.05 * card.T.h, G.C.BLACK, 3, 0, 0, nil, "bm")
|
||||||
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
if has_room() and not card.cloned and is_end_of_ante() then
|
if has_room() and not card.cloned and is_end_of_ante() then
|
||||||
spawn()
|
Jane.q(spawn, 0.5)
|
||||||
else
|
else
|
||||||
card.cloned = false
|
Jane.q(function()
|
||||||
|
card.cloned = false
|
||||||
|
return true
|
||||||
|
end, 5)
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ SMODS.Atlas {
|
||||||
key = "janertarots",
|
key = "janertarots",
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
path = Jane.config.texture_pack .. "/c_jane_reversetarots.png"
|
path = Jane.config.texture_pack .. "/c_jane_reversetarots.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Sound({key = "draw", path = "draw.ogg"})
|
SMODS.Sound({key = "draw", path = "draw.ogg"})
|
||||||
|
|
@ -26,7 +26,7 @@ local function conjure(card, number)
|
||||||
G.consumeables:emplace(spectral)
|
G.consumeables:emplace(spectral)
|
||||||
card:juice_up(0.3, 0.5)
|
card:juice_up(0.3, 0.5)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -65,7 +65,7 @@ local function createfulldeck(enhancement, edition, amount, emplacement)
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -90,7 +90,7 @@ local function randomize(targets, noanim)
|
||||||
end
|
end
|
||||||
|
|
||||||
if noanim then
|
if noanim then
|
||||||
for i=1, #targets do
|
for i = 1, #targets do
|
||||||
local card = targets[i]
|
local card = targets[i]
|
||||||
card:set_base(pseudorandom_element(G.P_CARDS))
|
card:set_base(pseudorandom_element(G.P_CARDS))
|
||||||
|
|
||||||
|
|
@ -133,7 +133,7 @@ local function randomize(targets, noanim)
|
||||||
play_sound("card1", percent)
|
play_sound("card1", percent)
|
||||||
targets[i]:juice_up(0.3, 0.3)
|
targets[i]:juice_up(0.3, 0.3)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -173,7 +173,7 @@ local function randomize(targets, noanim)
|
||||||
play_sound("card3", percent, 0.6)
|
play_sound("card3", percent, 0.6)
|
||||||
card:juice_up(0.3, 0.3)
|
card:juice_up(0.3, 0.3)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -189,7 +189,7 @@ SMODS.Consumable {
|
||||||
"{C:green,E:1}Randomises{} all cards in hand",
|
"{C:green,E:1}Randomises{} all cards in hand",
|
||||||
"{C:inactive}(Rank, seal, edition,",
|
"{C:inactive}(Rank, seal, edition,",
|
||||||
"{C:inactive}enhancement, and suit)",
|
"{C:inactive}enhancement, and suit)",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 4},
|
pos = {x = 0, y = 4},
|
||||||
cost = 4,
|
cost = 4,
|
||||||
|
|
@ -204,12 +204,12 @@ SMODS.Consumable {
|
||||||
play_sound("tarot1")
|
play_sound("tarot1")
|
||||||
card:juice_up(0.3, 0.5)
|
card:juice_up(0.3, 0.5)
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
randomize(G.hand.cards)
|
randomize(G.hand.cards)
|
||||||
delay(0.5)
|
delay(0.5)
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Consumable {
|
SMODS.Consumable {
|
||||||
|
|
@ -222,7 +222,7 @@ SMODS.Consumable {
|
||||||
"Creates {C:attention}#1#",
|
"Creates {C:attention}#1#",
|
||||||
"{C:spectral}Spectral{} cards",
|
"{C:spectral}Spectral{} cards",
|
||||||
"{C:inactive}(Must have room)",
|
"{C:inactive}(Must have room)",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {spectrals = 2}},
|
config = {extra = {spectrals = 2}},
|
||||||
pos = {x = 2, y = 4},
|
pos = {x = 2, y = 4},
|
||||||
|
|
@ -238,7 +238,7 @@ SMODS.Consumable {
|
||||||
bulk_use = function(_, card, _, _, number)
|
bulk_use = function(_, card, _, _, number)
|
||||||
conjure(card, number)
|
conjure(card, number)
|
||||||
delay(0.6)
|
delay(0.6)
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Consumable {
|
SMODS.Consumable {
|
||||||
|
|
@ -251,7 +251,7 @@ SMODS.Consumable {
|
||||||
"Create {C:attention}#1#{} {C:green}random {C:dark_edition}Negative",
|
"Create {C:attention}#1#{} {C:green}random {C:dark_edition}Negative",
|
||||||
"{C:attention}Perishable {C:attention}Jokers{}, set {C:money}sell",
|
"{C:attention}Perishable {C:attention}Jokers{}, set {C:money}sell",
|
||||||
"{C:money}value {}of {C:attention}all Jokers {}to {C:money}$0",
|
"{C:money}value {}of {C:attention}all Jokers {}to {C:money}$0",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
config = {extra = {shadows = 2}},
|
config = {extra = {shadows = 2}},
|
||||||
pos = {x = 3, y = 4},
|
pos = {x = 3, y = 4},
|
||||||
|
|
@ -278,7 +278,8 @@ SMODS.Consumable {
|
||||||
G.jokers.cards[i].extra_cost = 0
|
G.jokers.cards[i].extra_cost = 0
|
||||||
G.jokers.cards[i].cost = 0
|
G.jokers.cards[i].cost = 0
|
||||||
G.jokers.cards[i].sell_cost = 0
|
G.jokers.cards[i].sell_cost = 0
|
||||||
G.jokers.cards[i].sell_cost_label = G.jokers.cards[i].facing == "back" and "?" or G.jokers.cards[i].sell_cost
|
G.jokers.cards[i].sell_cost_label = G.jokers.cards[i].facing == "back" and "?" or G.jokers.cards[i]
|
||||||
|
.sell_cost
|
||||||
end
|
end
|
||||||
end,
|
end,
|
||||||
bulk_use = function(_, card, _, _, number)
|
bulk_use = function(_, card, _, _, number)
|
||||||
|
|
@ -301,12 +302,12 @@ SMODS.Consumable {
|
||||||
G.jokers.cards[i].extra_cost = 0
|
G.jokers.cards[i].extra_cost = 0
|
||||||
G.jokers.cards[i].cost = 0
|
G.jokers.cards[i].cost = 0
|
||||||
G.jokers.cards[i].sell_cost = 0
|
G.jokers.cards[i].sell_cost = 0
|
||||||
G.jokers.cards[i].sell_cost_label = G.jokers.cards[i].facing == "back" and "?" or G.jokers.cards[i].sell_cost
|
G.jokers.cards[i].sell_cost_label = G.jokers.cards[i].facing == "back" and "?" or G.jokers.cards[i]
|
||||||
|
.sell_cost
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
SMODS.Consumable {
|
SMODS.Consumable {
|
||||||
key = "rift",
|
key = "rift",
|
||||||
atlas = "janeacc",
|
atlas = "janeacc",
|
||||||
|
|
@ -315,8 +316,8 @@ SMODS.Consumable {
|
||||||
name = "Rift",
|
name = "Rift",
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Reset{} your deck to a",
|
"{C:attention}Reset{} your deck to a",
|
||||||
"{C:attention}standard 52-card deck"
|
"{C:attention}standard 52-card deck",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
cost = 15,
|
cost = 15,
|
||||||
pos = {x = 4, y = 4},
|
pos = {x = 4, y = 4},
|
||||||
|
|
@ -336,12 +337,12 @@ SMODS.Consumable {
|
||||||
timer = "REAL",
|
timer = "REAL",
|
||||||
delay = time or 1,
|
delay = time or 1,
|
||||||
func = function()
|
func = function()
|
||||||
return true
|
return true
|
||||||
end
|
end,
|
||||||
}), queue)
|
}), queue)
|
||||||
end
|
end
|
||||||
|
|
||||||
realdelay(1)
|
realdelay(1)
|
||||||
createfulldeck()
|
createfulldeck()
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ local blurbs = {
|
||||||
"Juggling is one of my favourite passtimes!",
|
"Juggling is one of my favourite passtimes!",
|
||||||
"I wonder what's the deal with pairs?",
|
"I wonder what's the deal with pairs?",
|
||||||
"You don't need to understand math to enjoy watching the digits climb!",
|
"You don't need to understand math to enjoy watching the digits climb!",
|
||||||
"You should meet my friend Joseph; he's stuck in a Planet card!",
|
|
||||||
"M!",
|
"M!",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -35,8 +34,8 @@ SMODS.Consumable {
|
||||||
name = "Joker-in-a-Tarot",
|
name = "Joker-in-a-Tarot",
|
||||||
text = {
|
text = {
|
||||||
"Create a {C:dark_edition}Negative {C:attention}default Joker",
|
"Create a {C:dark_edition}Negative {C:attention}default Joker",
|
||||||
"{C:inactive,E:1}#1#{}"
|
"{C:inactive,E:1}#1#{}",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
loc_vars = function(_, _, _)
|
loc_vars = function(_, _, _)
|
||||||
return {vars = {blurbs[math.random(#blurbs)]}}
|
return {vars = {blurbs[math.random(#blurbs)]}}
|
||||||
|
|
@ -59,5 +58,5 @@ SMODS.Consumable {
|
||||||
for _ = 1, number do
|
for _ = 1, number do
|
||||||
self:use(card, area, copier)
|
self:use(card, area, copier)
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
104
src/token.lua
104
src/token.lua
|
|
@ -2,7 +2,7 @@ SMODS.Atlas {
|
||||||
key = "janetokens",
|
key = "janetokens",
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
path = Jane.config.texture_pack .. "/c_jane_tokens.png"
|
path = Jane.config.texture_pack .. "/c_jane_tokens.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Sound({key = "e_gilded", path = "e_gilded.ogg"})
|
SMODS.Sound({key = "e_gilded", path = "e_gilded.ogg"})
|
||||||
|
|
@ -12,7 +12,7 @@ SMODS.ConsumableType {
|
||||||
default = "c_jane_token_tag_standard",
|
default = "c_jane_token_tag_standard",
|
||||||
loc_txt = {
|
loc_txt = {
|
||||||
collection = "Tokens",
|
collection = "Tokens",
|
||||||
name = "Token"
|
name = "Token",
|
||||||
},
|
},
|
||||||
shop_rate = 0,
|
shop_rate = 0,
|
||||||
collection_rows = {5, 6},
|
collection_rows = {5, 6},
|
||||||
|
|
@ -21,62 +21,62 @@ SMODS.ConsumableType {
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, v in pairs({
|
for _, v in pairs({
|
||||||
{"tag_standard", "Standard", 0, 0, 3},
|
{"tag_standard", "Standard", 0, 0, 3},
|
||||||
{"tag_charm", "Charm", 1, 0, 5},
|
{"tag_charm", "Charm", 1, 0, 5},
|
||||||
{"tag_meteor", "Meteor", 2, 0, 5},
|
{"tag_meteor", "Meteor", 2, 0, 5},
|
||||||
{"tag_ethereal", "Ethereal", 3, 0, 5},
|
{"tag_ethereal", "Ethereal", 3, 0, 5},
|
||||||
{"tag_buffoon", "Buffoon", 4, 0, 8},
|
{"tag_buffoon", "Buffoon", 4, 0, 8},
|
||||||
{"tag_cry_console", "Console", 5, 0, 7},
|
{"tag_cry_console", "Console", 5, 0, 7},
|
||||||
|
|
||||||
{"tag_cry_loss", "Loss", 0, 1, 12},
|
{"tag_cry_loss", "Loss", 0, 1, 12},
|
||||||
{"tag_cry_bundle", "Bundle", 1, 1, 10},
|
{"tag_cry_bundle", "Bundle", 1, 1, 10},
|
||||||
{"tag_uncommon", "Uncommon", 2, 1, 3},
|
{"tag_uncommon", "Uncommon", 2, 1, 3},
|
||||||
{"tag_rare", "Rare", 3, 1, 5},
|
{"tag_rare", "Rare", 3, 1, 5},
|
||||||
{"tag_cry_epic", "Epic", 4, 1, 8},
|
{"tag_cry_epic", "Epic", 4, 1, 8},
|
||||||
{"tag_cry_gourmond", "Gourmond", 5, 1, 4},
|
{"tag_cry_gourmond", "Gourmond", 5, 1, 4},
|
||||||
|
|
||||||
{"tag_double", "Double", 0, 2, 6},
|
{"tag_double", "Double", 0, 2, 6},
|
||||||
{"tag_cry_triple", "Triple", 1, 2, 8},
|
{"tag_cry_triple", "Triple", 1, 2, 8},
|
||||||
{"tag_cry_quadruple", "Quadruple", 2, 2, 10},
|
{"tag_cry_quadruple", "Quadruple", 2, 2, 10},
|
||||||
{"tag_cry_quintuple", "Quintuple", 3, 2, 13},
|
{"tag_cry_quintuple", "Quintuple", 3, 2, 13},
|
||||||
{"tag_skip", "Speed", 4, 2, 7},
|
{"tag_skip", "Speed", 4, 2, 7},
|
||||||
{"tag_economy", "Economy", 5, 2, 10},
|
{"tag_economy", "Economy", 5, 2, 10},
|
||||||
|
|
||||||
{"tag_investment", "Investment", 0, 3, 8},
|
{"tag_investment", "Investment", 0, 3, 8},
|
||||||
{"tag_foil", "Foil", 1, 3, 3},
|
{"tag_foil", "Foil", 1, 3, 3},
|
||||||
{"tag_holo", "Holographic", 2, 3, 4},
|
{"tag_holo", "Holographic", 2, 3, 4},
|
||||||
{"tag_polychrome", "Polychrome", 3, 3, 5},
|
{"tag_polychrome", "Polychrome", 3, 3, 5},
|
||||||
{"tag_negative", "Negative", 4, 3, 10},
|
{"tag_negative", "Negative", 4, 3, 10},
|
||||||
|
|
||||||
{"tag_d_six", "Dice", 0, 4, 2},
|
{"tag_d_six", "Dice", 0, 4, 2},
|
||||||
{"tag_orbital", "Orbital", 1, 4, 6},
|
{"tag_orbital", "Orbital", 1, 4, 6},
|
||||||
{"tag_top_up", "Top-up", 2, 4, 2},
|
{"tag_top_up", "Top-up", 2, 4, 2},
|
||||||
{"tag_cry_bettertop_up", "Top-up+", 3, 4, 3},
|
{"tag_cry_bettertop_up", "Top-up+", 3, 4, 3},
|
||||||
{"tag_coupon", "Coupon", 4, 4, 10},
|
{"tag_coupon", "Coupon", 4, 4, 10},
|
||||||
{"tag_cry_memory", "Memory", 5, 4, 8},
|
{"tag_cry_memory", "Memory", 5, 4, 8},
|
||||||
|
|
||||||
{"tag_garbage", "Garbage", 0, 5, 6},
|
{"tag_garbage", "Garbage", 0, 5, 6},
|
||||||
{"tag_handy", "Handy", 1, 5, 8},
|
{"tag_handy", "Handy", 1, 5, 8},
|
||||||
{"tag_juggle", "Juggle", 2, 5, 2},
|
{"tag_juggle", "Juggle", 2, 5, 2},
|
||||||
{"tag_cry_schematic", "Schematic", 3, 5, 10},
|
{"tag_cry_schematic", "Schematic", 3, 5, 10},
|
||||||
{"tag_voucher", "Voucher", 4, 5, 5},
|
{"tag_voucher", "Voucher", 4, 5, 5},
|
||||||
{"tag_cry_better_voucher", "Voucher+", 5, 5, 7},
|
{"tag_cry_better_voucher", "Voucher+", 5, 5, 7},
|
||||||
|
|
||||||
{"tag_cry_gambler", "Gamble", 0, 6, 10},
|
{"tag_cry_gambler", "Gamble", 0, 6, 10},
|
||||||
{"tag_cry_cat", "Cat", 1, 6, 1},
|
{"tag_cry_cat", "Cat", 1, 6, 1},
|
||||||
{"tag_cry_mosaic", "Mosaic", 2, 6, 6},
|
{"tag_cry_mosaic", "Mosaic", 2, 6, 6},
|
||||||
{"tag_cry_fragile", "Fragile", 3, 6, 7},
|
{"tag_cry_fragile", "Fragile", 3, 6, 7},
|
||||||
{"tag_cry_astral", "Astral", 4, 6, 8},
|
{"tag_cry_astral", "Astral", 4, 6, 8},
|
||||||
{"tag_cry_m", "M", 5, 6, 8},
|
{"tag_cry_m", "M", 5, 6, 8},
|
||||||
|
|
||||||
{"tag_cry_blur", "Blurred", 0, 7, 11},
|
{"tag_cry_blur", "Blurred", 0, 7, 11},
|
||||||
{"tag_cry_oversat", "Oversaturated", 1, 7, 12},
|
{"tag_cry_oversat", "Oversaturated", 1, 7, 12},
|
||||||
{"tag_cry_glitched", "Glitched", 2, 7, 13},
|
{"tag_cry_glitched", "Glitched", 2, 7, 13},
|
||||||
{"tag_cry_gold", "Golden", 3, 7, 9},
|
{"tag_cry_gold", "Golden", 3, 7, 9},
|
||||||
{"tag_cry_booster", "Booster", 4, 7, 4},
|
{"tag_cry_booster", "Booster", 4, 7, 4},
|
||||||
{"tag_cry_scope", "Scope", 5, 7, 3},
|
{"tag_cry_scope", "Scope", 5, 7, 3},
|
||||||
|
|
||||||
{"tag_cry_banana", "Banana", 0, 8, 4},
|
{"tag_cry_banana", "Banana", 0, 8, 4},
|
||||||
|
|
||||||
}) do
|
}) do
|
||||||
if Cryptid or v[1]:sub(1, 7) ~= "tag_cry" then
|
if Cryptid or v[1]:sub(1, 7) ~= "tag_cry" then
|
||||||
|
|
@ -96,7 +96,7 @@ for _, v in pairs({
|
||||||
can_stack = true,
|
can_stack = true,
|
||||||
can_divide = true,
|
can_divide = true,
|
||||||
can_use = Jane.can_use,
|
can_use = Jane.can_use,
|
||||||
in_pool = function (_, _)
|
in_pool = function(_, _)
|
||||||
return G.GAME.used_vouchers.v_jane_token_voucher
|
return G.GAME.used_vouchers.v_jane_token_voucher
|
||||||
end,
|
end,
|
||||||
use = function(_, _, _, _)
|
use = function(_, _, _, _)
|
||||||
|
|
@ -109,7 +109,7 @@ for _, v in pairs({
|
||||||
for _ = 1, number do
|
for _ = 1, number do
|
||||||
add_tag(Tag(v[1]))
|
add_tag(Tag(v[1]))
|
||||||
end
|
end
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@ SMODS.Atlas {
|
||||||
key = "janetokenvoucher",
|
key = "janetokenvoucher",
|
||||||
px = 71,
|
px = 71,
|
||||||
py = 95,
|
py = 95,
|
||||||
path = Jane.config.texture_pack .. "/v_jane_token_voucher.png"
|
path = Jane.config.texture_pack .. "/v_jane_token_voucher.png",
|
||||||
}
|
}
|
||||||
|
|
||||||
SMODS.Voucher {
|
SMODS.Voucher {
|
||||||
|
|
@ -13,11 +13,11 @@ SMODS.Voucher {
|
||||||
text = {
|
text = {
|
||||||
"{C:attention}Tokens {}can appear",
|
"{C:attention}Tokens {}can appear",
|
||||||
"in the shop",
|
"in the shop",
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
pos = {x = 0, y = 0},
|
pos = {x = 0, y = 0},
|
||||||
cost = 15,
|
cost = 15,
|
||||||
redeem = function (_, _)
|
redeem = function(_, _)
|
||||||
G.GAME['jane_tokens_rate'] = 1.5
|
G.GAME["jane_tokens_rate"] = 1.5
|
||||||
end
|
end,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue