Rebalance new cards
This commit is contained in:
parent
5d90c1b11d
commit
ef308e396e
4 changed files with 148 additions and 83 deletions
|
|
@ -207,7 +207,7 @@ vec4 effect( vec4 colour, Image texture, vec2 texture_coords, vec2 screen_coords
|
|||
vec4 tex = Texel(texture, texture_coords);
|
||||
vec2 uv = (((texture_coords)*(image_details)) - texture_details.xy*texture_details.ba)/texture_details.ba;
|
||||
|
||||
// Dummy, doesn't do anything but at least it makes the shader useable
|
||||
// Doesn't do anything it makes the shader useable
|
||||
if (uv.x > uv.x * 2.){
|
||||
uv = polygloss;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,5 +16,5 @@
|
|||
"Bakery (>=3.0.0~*)"
|
||||
],
|
||||
"conflicts": [],
|
||||
"version": "1.12.2"
|
||||
"version": "1.12.3"
|
||||
}
|
||||
|
|
@ -126,7 +126,7 @@ SMODS.Edition({
|
|||
"{X:dark_edition,C:white}^#2#{} Mult",
|
||||
},
|
||||
},
|
||||
config = {e_chips = 0.8, e_mult = 1.2},
|
||||
config = {e_chips = 0.75, e_mult = 1.25},
|
||||
sound = {sound = "jane_e_moire", per = 1, vol = 0.7},
|
||||
weight = 0,
|
||||
extra_cost = 10,
|
||||
|
|
|
|||
225
src/omega.lua
225
src/omega.lua
|
|
@ -108,7 +108,7 @@ local function omega_level_up(hand, number, card)
|
|||
}
|
||||
)
|
||||
|
||||
delay(2)
|
||||
delay(1)
|
||||
|
||||
update_hand_text(
|
||||
{sound = "button", volume = 0.7, pitch = 0.8, delay = 1},
|
||||
|
|
@ -233,7 +233,7 @@ SMODS.Consumable {
|
|||
set = "jane_omegaconsumable",
|
||||
loc_txt = {
|
||||
name = "Ankh {C:dark_edition}Omega",
|
||||
text = {"Create {C:attention}4{} copies of", "a {C:attention}selected Joker"},
|
||||
text = {"Create {C:attention}3{} copies of", "a {C:attention}selected Joker"},
|
||||
},
|
||||
pos = {x = 0, y = 0},
|
||||
soul_pos = {x = 1, y = 0},
|
||||
|
|
@ -242,35 +242,35 @@ SMODS.Consumable {
|
|||
hidden = true,
|
||||
atlas = "janeomegaspectrals",
|
||||
can_use = function()
|
||||
return Jane.can_use() and ((G.jokers or {}).highlighted or {})[1]
|
||||
return Jane.can_use() and
|
||||
G.jokers.highlighted[1] and
|
||||
#G.jokers.cards + 3 <= G.jokers.config.card_limit
|
||||
end,
|
||||
use = function(self, card, area, copier)
|
||||
self:bulk_use(card, area, copier, 1)
|
||||
end,
|
||||
bulk_use = function(_, _, _, _, number)
|
||||
local joker = ((G.jokers or {}).highlighted or {})[1]
|
||||
local joker = G.jokers.highlighted[1]
|
||||
|
||||
if not joker then
|
||||
return
|
||||
end
|
||||
|
||||
for _ = 1, 4 * number do
|
||||
for _ = 1, 3 * number do
|
||||
SMODS.copy_card(joker):start_materialize()
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
local editions = {"jane_crystal", "jane_moire"}
|
||||
|
||||
SMODS.Consumable {
|
||||
key = "aura_omega",
|
||||
set = "jane_omegaconsumable",
|
||||
loc_txt = {
|
||||
name = "Aura {C:dark_edition}Omega",
|
||||
text = {
|
||||
"Apply {C:dark_edition}Crystal {}or {C:dark_edition}Moire",
|
||||
"to all {C:attention}selected Jokers",
|
||||
"and {C:attention}playing cards",
|
||||
"Apply {C:dark_edition}Crystal {}to all",
|
||||
"{C:attention}selected Jokers {}and",
|
||||
"{C:attention}playing cards",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 1},
|
||||
|
|
@ -281,21 +281,36 @@ SMODS.Consumable {
|
|||
atlas = "janeomegaspectrals",
|
||||
loc_vars = function(_, info_queue)
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_crystal
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_moire
|
||||
end,
|
||||
can_use = function()
|
||||
return Jane.can_use() and (next(G.jokers.highlighted) or next(G.hand.highlighted))
|
||||
end,
|
||||
use = function()
|
||||
if not Jane.can_use() then
|
||||
return false
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.jokers.highlighted) do
|
||||
if not v.edition then
|
||||
v:set_edition({[editions[pseudorandom("auraexrandom", 1, #editions)]] = true})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.hand.highlighted) do
|
||||
if not v.edition then
|
||||
v:set_edition({[editions[pseudorandom("auraexrandom", 1, #editions)]] = true})
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
use = function()
|
||||
for _, v in ipairs(G.jokers.highlighted) do
|
||||
if not v.edition then
|
||||
v:set_edition({jane_crystal = true})
|
||||
end
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.hand.highlighted) do
|
||||
if not v.edition then
|
||||
v:set_edition({jane_crystal = true})
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
|
@ -346,6 +361,7 @@ for _, v in ipairs({
|
|||
text = {
|
||||
"Apply a {C:attention}" .. v.s .. " Seal{} to",
|
||||
"{C:attention}all playing cards",
|
||||
"{C:inactive}(Can override seals)",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = v.y},
|
||||
|
|
@ -363,7 +379,7 @@ for _, v in ipairs({
|
|||
card:set_seal(v.s, i > 50, i > 50)
|
||||
end
|
||||
|
||||
for _, card in pairs(G.deck.cards) do
|
||||
for _, card in pairs(G.playing_cards) do
|
||||
card:set_seal(v.s, true, true)
|
||||
end
|
||||
end,
|
||||
|
|
@ -387,7 +403,17 @@ SMODS.Consumable {
|
|||
info_queue[#info_queue + 1] = G.P_CENTERS.e_negative
|
||||
end,
|
||||
can_use = function()
|
||||
return Jane.can_use() and next(G.jokers.cards)
|
||||
if not Jane.can_use() then
|
||||
return false
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.jokers.cards) do
|
||||
if not v.edition then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
use = function()
|
||||
for k, v in ipairs(G.jokers.cards) do
|
||||
|
|
@ -467,8 +493,8 @@ SMODS.Consumable {
|
|||
loc_txt = {
|
||||
name = "Hex {C:dark_edition}Omega",
|
||||
text = {
|
||||
"Apply {C:dark_edition,E:1}Crystal {}or",
|
||||
"{C:dark_edition,E:1}Moire {}to all {C:attention}Jokers",
|
||||
"Apply {C:dark_edition,E:1}Moire {}to",
|
||||
"all {C:attention}Jokers",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 7},
|
||||
|
|
@ -478,16 +504,25 @@ SMODS.Consumable {
|
|||
hidden = true,
|
||||
atlas = "janeomegaspectrals",
|
||||
loc_vars = function(_, info_queue)
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_crystal
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_moire
|
||||
end,
|
||||
can_use = function()
|
||||
return Jane.can_use() and next(G.jokers.cards)
|
||||
if not Jane.can_use() then
|
||||
return false
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.jokers.cards) do
|
||||
if not v.edition then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
use = function()
|
||||
for _, v in ipairs(G.jokers.cards) do
|
||||
if not v.edition then
|
||||
v:set_edition({[editions[pseudorandom("hexexrandom", 1, #editions)]] = true})
|
||||
v:set_edition({jane_moire = true})
|
||||
end
|
||||
end
|
||||
end,
|
||||
|
|
@ -499,9 +534,10 @@ SMODS.Consumable {
|
|||
loc_txt = {
|
||||
name = "Immolate {C:dark_edition}Omega",
|
||||
text = {
|
||||
"{C:red}Destroys{} {C:attention}selected playing cards",
|
||||
"Each card destroyed multiplies",
|
||||
"{C:money}Sells{} all cards {C:attention}in hand",
|
||||
"Each card {C:money}sold {}multiplies",
|
||||
"{C:money}money{} by its {C:attention}rank",
|
||||
not Jane.cry and "{C:inactive}(Max of {C:money}$#1#{C:inactive} each)" or nil,
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 8},
|
||||
|
|
@ -510,15 +546,23 @@ SMODS.Consumable {
|
|||
soul_rate = 0,
|
||||
hidden = true,
|
||||
atlas = "janeomegaspectrals",
|
||||
can_use = function()
|
||||
return Jane.can_use() and next(G.hand.highlighted)
|
||||
loc_vars = function(_, info_queue)
|
||||
return {vars = {2000}}
|
||||
end,
|
||||
use = function(self, card, area, copier)
|
||||
for _, v in pairs(G.hand.highlighted) do
|
||||
ease_dollars((v:norank() and 1 or v:get_id()) * G.GAME.dollars - G.GAME.dollars)
|
||||
end
|
||||
can_use = function()
|
||||
return Jane.can_use() and next(G.hand.cards)
|
||||
end,
|
||||
use = function()
|
||||
---@diagnostic disable-next-line: deprecated
|
||||
local copy = {unpack(G.hand.cards)}
|
||||
|
||||
SMODS.destroy_cards(G.hand.highlighted)
|
||||
for _, v in pairs(copy) do
|
||||
Jane.q(function()
|
||||
v:sell_card()
|
||||
local amount = (v:norank() and 1 or v:get_id()) * G.GAME.dollars - G.GAME.dollars
|
||||
ease_dollars(Jane.cry and amount or math.min(amount, 2000))
|
||||
end)
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -567,9 +611,10 @@ SMODS.Consumable {
|
|||
loc_txt = {
|
||||
name = "Ouija {C:dark_edition}Omega",
|
||||
text = {
|
||||
"{C:attention}Playing cards {}whose rank",
|
||||
"does not match any of the",
|
||||
"{C:attention}selected cards {}will be {C:money}sold",
|
||||
"{C:attention}Playing cards {}whose",
|
||||
"rank doesn't match any",
|
||||
"of the {C:attention}selected cards",
|
||||
"will be {C:red}destroyed",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 11},
|
||||
|
|
@ -586,6 +631,8 @@ SMODS.Consumable {
|
|||
return
|
||||
end
|
||||
|
||||
local destroy = {}
|
||||
|
||||
for _, c in pairs(G.playing_cards) do
|
||||
local safe = c.highlighted
|
||||
|
||||
|
|
@ -600,9 +647,11 @@ SMODS.Consumable {
|
|||
end
|
||||
|
||||
if not safe then
|
||||
c:sell_card()
|
||||
destroy[#destroy + 1] = c
|
||||
end
|
||||
end
|
||||
|
||||
SMODS.destroy_cards(destroy)
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -612,9 +661,10 @@ SMODS.Consumable {
|
|||
loc_txt = {
|
||||
name = "Sigil {C:dark_edition}Omega",
|
||||
text = {
|
||||
"{C:attention}Playing cards {}whose suit",
|
||||
"does not match any of the",
|
||||
"{C:attention}selected {C:attention}cards {}will be {C:money}sold",
|
||||
"{C:attention}Playing cards {}whose",
|
||||
"suit doesn't match any",
|
||||
"of the {C:attention}selected cards",
|
||||
"will be {C:red}destroyed",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 12},
|
||||
|
|
@ -626,6 +676,8 @@ SMODS.Consumable {
|
|||
return Jane.can_use() and next(G.hand.highlighted)
|
||||
end,
|
||||
use = function()
|
||||
local destroy = {}
|
||||
|
||||
if not next(G.hand.highlighted) then
|
||||
return
|
||||
end
|
||||
|
|
@ -645,9 +697,11 @@ SMODS.Consumable {
|
|||
end
|
||||
|
||||
if not safe then
|
||||
c:sell_card()
|
||||
destroy[#destroy + 1] = c
|
||||
end
|
||||
end
|
||||
|
||||
SMODS.destroy_cards(destroy)
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -677,7 +731,7 @@ SMODS.Consumable {
|
|||
end,
|
||||
use = function(self)
|
||||
for _, v in ipairs(self.jokers()) do
|
||||
SMODS.add_card {key = v.key, set = "Joker"}
|
||||
SMODS.add_card({key = v.key, set = "Joker"})
|
||||
end
|
||||
end,
|
||||
jokers = function()
|
||||
|
|
@ -704,7 +758,7 @@ SMODS.Consumable {
|
|||
name = "The Fool {C:dark_edition}Omega",
|
||||
text = {
|
||||
"Create {C:attention}2{} random",
|
||||
"{C:red,E:1}Omega{} cards",
|
||||
"{C:jane_RGB,E:1}Omega{} cards",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 0},
|
||||
|
|
@ -715,25 +769,17 @@ SMODS.Consumable {
|
|||
atlas = "janeomegatarots",
|
||||
can_use = Jane.can_use,
|
||||
use = function()
|
||||
local omega_consumables = {
|
||||
"pluto", "mercury", "uranus", "venus", "saturn", "jupiter", "earth", "mars", "neptune", "planet_x", "ceres",
|
||||
"eris", "black_hole", "ankh", "aura", "cryptid", "deja_vu", "medium", "talisman", "trance", "ectoplasm",
|
||||
"familiar", "grim", "hex", "immolate", "incantation", "ouija", "sigil", "wraith", "fool", "magician",
|
||||
"empress", "hierophant", "lovers", "chariot", "justice", "devil", "tower", "high_priestess", "emperor",
|
||||
"hermit", "wheel_of_fortune", "star", "moon", "sun", "world", "soul",
|
||||
}
|
||||
|
||||
for _ = 1, 2 do
|
||||
if G.consumeables.config.card_limit > #G.consumeables.cards then
|
||||
local key = "c_jane_" .. pseudorandom_element(omega_consumables, pseudoseed("fool_omega")) .. "_omega"
|
||||
SMODS.add_card({key = key, set = "jane_omegaconsumable"})
|
||||
local orig = G.GAME.banned_keys.c_jane_soul_omega
|
||||
G.GAME.banned_keys.c_jane_soul_omega = true
|
||||
SMODS.add_card({set = "jane_omegaconsumable"})
|
||||
G.GAME.banned_keys.c_jane_soul_omega = orig
|
||||
end
|
||||
end
|
||||
end,
|
||||
}
|
||||
|
||||
local omega_copyamount = 10
|
||||
|
||||
for _, v in ipairs({
|
||||
{
|
||||
b = "magician",
|
||||
|
|
@ -816,8 +862,7 @@ for _, v in ipairs({
|
|||
text = {
|
||||
"Enhance {C:attention}selected playing",
|
||||
"{C:attention}cards {}to {C:attention}" .. v.c .. "{} cards,",
|
||||
"{C:red}Destroy{} all other cards",
|
||||
"{C:attention}Duplicate {}each card {C:attention}" .. omega_copyamount .. " times",
|
||||
"{C:attention}Duplicate {}each card {C:attention}10 times",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = v.omega},
|
||||
|
|
@ -871,17 +916,17 @@ for _, v in ipairs({
|
|||
end, 0.15, nil, "after")
|
||||
end
|
||||
|
||||
for _, c in ipairs(G.playing_cards) do
|
||||
if not c.highlighted then
|
||||
SMODS.destroy_cards({c})
|
||||
end
|
||||
end
|
||||
|
||||
-- Removing all other cards is too strong.
|
||||
-- for _, c in ipairs(G.playing_cards) do
|
||||
-- if not c.highlighted then
|
||||
-- SMODS.destroy_cards({c})
|
||||
-- end
|
||||
-- end
|
||||
delay(1)
|
||||
|
||||
Jane.q(function()
|
||||
for _, h in ipairs(to_copy) do
|
||||
for _ = 1, omega_copyamount do
|
||||
for _ = 1, 10 do
|
||||
SMODS.copy_card(h):start_materialize()
|
||||
end
|
||||
end
|
||||
|
|
@ -973,8 +1018,9 @@ SMODS.Consumable {
|
|||
loc_txt = {
|
||||
name = "The Hermit {C:dark_edition}Omega",
|
||||
text = {
|
||||
"Gain {X:money,C:dark_edition,s:1.25}+$^2",
|
||||
"{C:inactive,s:0.75}(+$#1#)",
|
||||
"Gain {X:money,C:dark_edition}+$^2",
|
||||
"{C:inactive}(Currently {C:money}+$#1#{C:inactive})",
|
||||
not Jane.cry and "{C:inactive}(Max of {C:money}$#2#{C:inactive})" or nil,
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 9},
|
||||
|
|
@ -984,11 +1030,15 @@ SMODS.Consumable {
|
|||
hidden = true,
|
||||
atlas = "janeomegatarots",
|
||||
can_use = Jane.can_use,
|
||||
loc_vars = function()
|
||||
return {vars = {((G.GAME or {}).dollars or 0) ^ 2}}
|
||||
loc_vars = function(self)
|
||||
return {vars = {self.money(), 20000}}
|
||||
end,
|
||||
use = function()
|
||||
ease_dollars(G.GAME.dollars ^ 2)
|
||||
use = function(self)
|
||||
ease_dollars(self.money())
|
||||
end,
|
||||
money = function()
|
||||
return not (G.GAME or {}).dollars and 0 or
|
||||
(Jane.cry and G.GAME.dollars ^ 2 or math.min(G.GAME.dollars ^ 2, 20000))
|
||||
end,
|
||||
}
|
||||
|
||||
|
|
@ -1000,7 +1050,7 @@ SMODS.Consumable {
|
|||
text = {
|
||||
"Create {C:dark_edition,E:1}50 {C:attention}consumables",
|
||||
"{C:inactive}(Adds a temporary Showman)",
|
||||
"{C:inactive}(Does not require room)",
|
||||
"{C:inactive}(Doesn't require room)",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = 10},
|
||||
|
|
@ -1031,7 +1081,8 @@ for _, vv in pairs({
|
|||
name = "The " .. string.upper(string.sub(vv.b, 1, 1)) .. string.sub(vv.b, 2, string.len(vv.b)) .. " {C:dark_edition}Omega",
|
||||
text = {
|
||||
"Convert {C:attention}all {C:" .. string.lower(vv.s) .. "}" .. vv.s,
|
||||
"to {C:dark_edition,E:1}Crystal {}or {C:dark_edition,E:1}Moire",
|
||||
"to {C:dark_edition,E:1}Crystal{}, {C:dark_edition,E:1}Moire{},",
|
||||
"or {C:dark_edition,E:1}Polygloss",
|
||||
},
|
||||
},
|
||||
pos = {x = 0, y = vv.o},
|
||||
|
|
@ -1043,13 +1094,28 @@ for _, vv in pairs({
|
|||
loc_vars = function(_, info_queue)
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_crystal
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_moire
|
||||
info_queue[#info_queue + 1] = G.P_CENTERS.e_jane_polygloss
|
||||
end,
|
||||
can_use = function()
|
||||
if not Jane.can_use() then
|
||||
return false
|
||||
end
|
||||
|
||||
for _, v in ipairs(G.playing_cards) do
|
||||
if v:is_suit(vv.s) and not v.edition and not v:nosuit() then
|
||||
return true
|
||||
end
|
||||
end
|
||||
|
||||
return false
|
||||
end,
|
||||
can_use = Jane.can_use,
|
||||
use = function()
|
||||
local editions = {"jane_crystal", "jane_moire", "jane_polygloss"}
|
||||
|
||||
play_sound("jane_pop")
|
||||
|
||||
for _, v in ipairs(G.playing_cards) do
|
||||
if v:is_suit(vv.s) and not v:nosuit() then
|
||||
if v:is_suit(vv.s) and not v.edition and not v:nosuit() then
|
||||
if v.area == G.hand then
|
||||
Jane.q(function()
|
||||
v:set_edition({[editions[pseudorandom("auraexrandom", 1, #editions)]] = true})
|
||||
|
|
@ -1066,7 +1132,7 @@ for _, vv in pairs({
|
|||
end
|
||||
|
||||
local function obfuscated_text(length)
|
||||
local chars = "ABCDEFGHIJKLMNOPQRSTU,VWXYZ abcdefghijklmnopq,rstuvwxyz0123456789+-?!,$%[]()"
|
||||
local chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-?!,$%[]()"
|
||||
local ret = ""
|
||||
|
||||
for _ = 0, length do
|
||||
|
|
@ -1115,19 +1181,20 @@ SMODS.Consumable {
|
|||
end
|
||||
|
||||
Jane.q(function()
|
||||
SMODS.destroy_cards(G.jokers.cards, {bypass_eternal = true})
|
||||
G.jokers:change_size(1 - G.jokers.config.card_limit)
|
||||
G.GAME.banned_keys.j_Bakery_Lua = nil
|
||||
SMODS.destroy_cards(G.jokers.cards, {bypass_eternal = true})
|
||||
G.jokers:change_size(1 - G.jokers.config.card_limits.base)
|
||||
|
||||
SMODS.add_card {
|
||||
set = "Joker",
|
||||
no_edition = true,
|
||||
key = "j_Bakery_Lua",
|
||||
force_stickers = {"eternal", "rental"},
|
||||
}
|
||||
|
||||
play_sound("jane_enchant", 0.75, 1)
|
||||
G.GAME.banned_keys.j_Bakery_Lua = true
|
||||
G.GAME.banned_keys.c_jane_soul_omega = true
|
||||
play_sound("jane_enchant", 0.75, 1)
|
||||
end, 0.75, "REAL", "after")
|
||||
end,
|
||||
}
|
||||
|
|
@ -1150,9 +1217,7 @@ end
|
|||
function create_card(...)
|
||||
local card = orig_create_card(...)
|
||||
|
||||
if not card.gc or
|
||||
G.STATE == G.STATES.MENU or
|
||||
G.STATE ~= G.STATES.SHOP and card:gc().set ~= "Spectral" then
|
||||
if G.STATE ~= G.STATES.SMODS_BOOSTER_OPENED or not card.gc then
|
||||
return card
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue