#💻・modding-dev
1 messages · Page 19 of 1
with a PvP game, sometimes balancing for challenge takes away from the fun
and games are supposed to be fun
Straight-up Duke Nukem-lookin' Egg--
🔂 is also a rare
https://discord.com/channels/1116389027176787968/1239105589972570192 I posted the thing
chat is this real
oddity api 2?
its not real
each oddity should have a custom locked sprite
all in your head
this is only the locked sprite for testing
it's not a locked card
that's just the sprite of the oddity
ah i see
technically since unlocks arent even properly supported yet
there is no locked oddity sprite
aaaa I forgot about that part
hhhhhhh
Estrogen (Oddity) - Uncommon
Transitions all Kings
and Jacks into Queens
baedges
badgers
im so thrown off by the different font
💀 sorry I make mistakes sometimes when I work while tired
we will never forgive you aure now go to the gbj /j
How many mentions did you get in total whilst napping?
at least 1
In here? 4
i was right
uh oh
what did you do
(i set oddity shop rate to 1000)
are these jokers oddities
you should make that 4 and load the estrogen
does steamodded 1.0 have support for multiple consumeable types in shop
aure do you have an example ConsumableTypes rarities table
heyy steamodded 1.0 just got delayed
mrewoerwrarwareoeow
i feel like that's what i'm screwing up here
too bad
that's what you get for being mean
anyway is this not correct somehow
might be my screwup, it's not properly tested yet
that's what im doing
testing it
but i want to verify that i'm not the one screwing up here
oh really
btw aure how does one do tooltip definition in 1.0
is it in a patch after the Loader Improvements one bc i couldn't find it
me and feder are struglging
check_for_unlock function
unchanged iirc, just moves to the constructor table
huh ok
is there anything special required for a locked sprite then?
or just in general what needs to be handled on the ConsumableType side

shouldn't be unless I missed something?
undiscovered sprite needs handling, locked sprite shouldn't
how do i indicate which sprite atlas/pos is the locked sprite
REAL
I don't support custom locked sprites-?
oh is it a "do it yourself" moment
i actually dont know how anything with the unlock system works at all lol
i think with the locked sprites it has a check in something like card.draw that just draws the locked sprite instead if it’s locked
it was also apparently moved to loc_def?
for mod icons, what if there's just a reserved sprite key <prefix>_icon for each mod and we kill the ICON_ATLAS header field?
that sounds goid
i like this
generally tooltips can go in loc_def, except for jokers
which is why jokers have their own separate function
ok
its an alchemical tooltip
if it's something common to the consumable type it may be of use to peek my hook for oddity rarity badges?
consumables rarity is so cursed
it is fr
fucking
updating balatro
so that all consumables have a rarity
yes please give me Death (Uncommon)
me when Cryptid is at Rare 😭
anyone wanna give me an idea on another joker to change? giving them new and different effects is fun!
change mystic summit into a cake
change egg into yolk
is there any way to print the crash log to a file or something? giving me headaches for so long
if you have Python, run the script in Steamodded\debug\
you'll be able to copy the crash log that way
(or run 1.0.0 alpha, it let's you copy from the crash screen)
iirc mr. meth wanted to add log dumping
well i cant determine if im doing something wrong here and also the code relating to rarities in smods consumabletypes doesn't look wrong to me so 😭
maybe i'll just do some emojiokers to get a sense of accomplishment
the thing is im sure the problem im facing is caused by mod conflict but i cant expand to see the full logs, and im sure the alpha would only make things worse bc the mods havent done the compat thing
i should prob get a 2 meter long screen and drag the game window all the way down
do what myst said
yea i have python but i cant understand that. like should i run anything in the command line or
just pop the python script and it should open a new window, i think?
yeah just run the python script and it should open the tk window
then run the game as normal
okay ill try that
the one thing i didnt like about the steamodded debug window when i used it was that it didnt autoscroll
maybe that was my fault
but my ass had to scroll a lot
how do i even open the debug window tho. is there any shortcut for that
Adding obfuscated code that purposefully refuses to boot up the mod on a Mac
akai why
no flame mac users i hate ur os
Not fond of Mac users
aight aight
Theres a fucking cryptobro in modding-chat lmao
another one ⁉️
Would prefer to keep my mod's audience cryptoless and dignityful
i was going to say i'm gonna give them the benefit of a doubt
your mod's audience has no dignity it's a fucking homestuck mod
also really long message to say "use lovely"
o
wrong oneeeee
mb chimi no flame
chimichangas alright
chimi is based
When are we making the nft joker mod? /s
omg feder hiiii
if you think about it isnt egg the nft joker :^)
its the other guy whos pulling a grift and doing an ai youtube channel openly lmao
nft joker mod but it's delete this
egg doesn't lose value over time
lame
unegg
Hiii autumn!!!
hiiiiii
Ugh.
I despise people that use Macs to hold onto crypto hashes/keys. They make a mockery of digital ethics and are unhealthy for not only the Apple user brand, but just... I mean, they shill out for a blockchain that, while it's supposed to be the pinnacle of anonymity and security, has its own flaws that make it do just the opposite.
imagine basing your entire online presence on pretend currency that normal people only use because its untraceable and cant get you in trouble
BASED
Plus, North Koreans literally target Mac users now with viruses that try to steal crypto wallets.
feder can i poke your brain for some assistance with something or are you busy
the funniest part about crypto is that its so unusable in a normal matter
they did something good for once
What is it?
yea lemme buy something with my crypto. what do you mean it'll take 18 days to process?
feder did you figure out tooltips
So I have the crypto shills to thank for making the Mac OS environment a rather unsafe place.
ConsumableType rarities
cryign
oh ok
I am at ze workplace
one day i'll have some grasp of your schedule maybe
work jumpscare
Alright, anyway, back on topic here--
You can make the consumable type, and then make an extension of the consumable object that houses the rarity
i've got this and a rarity field in the constructors for Oddities
Then, when you make your objects, use that object
autumn you should extend consumabletype btw
the rarity is properly appearing on cards ingame (thanks to a set_badges hook)
why extend it
extending smods object types is good
I've been stuck on this problem for a little while because I know I've done something wrong with the if-then statement in the calculate area... I just don't know what I need to do to fix it.
as a linux user im sorry for your loss
why would i extend ConsumableType
it'd be Consumable i'd want to extend if anything
i think youre using the wrong "xmult" in the self.ability thing
extend consuamble yeah
reading code on mobile is hard
yeowch
yeowza
i mean i could just set up defaults in inject_card for the ConsumableType as well
im already doing shady shit to set_badges
I respect Linux users because at least they have common sense to appreciate and work in an Operating Environment that doesn't stifle technological progress for the sake of cowtowing to a MegaCorp's vision of "what everyone should use" as opposed to letting people who have the skills to go their own way, actually go their own way and make it work.
consumable rarities are a feature of SMODS
the only jank part is that there's no badges by default
the badges rhen
so i had to do this
"You reap what you sow", as the saying goes, so if you have some programming knowledge and put in the effort to customize your personal computer, you should feel proud of your accomplishment for trying something different than what the suits at Apple (or god forbid, Microsoft) want you to use.
smods consumable rarities badges api
but it's set up in an odd way
Apple and Microsoft are worth each other tbh
my main issue is that the rarities dont actually... work
I mean, don't belittle Linux just because it can be run with parts that are cheaper than Apple's overpriced stuff. The work you put into your system is part of that system's worth.
Oh, I didn't understand the figure of speech.
they can both suck it
oddities that appear all default to jimbo because it's not setting up the pools correctly
i think
i just have no idea why that's the case
thats an aure issue
Pff--
At least I can for the most part agree with that statement, now that Steve Jobs isn't being his usual pompous self and demanding quality assurance in every product he had a hand in.
i was trying to help them by figuring it out but 😭
Yeah, Apple is the new IBM, and Microsoft is... well... Microsoft.
Linux isnt perfect either, but at least I don't fear that some update will lock me into a shitty situation
Right, at least you have the ability to make backups and know which builds are stable on which device.
As long as the firmware doesn't get screwed over, of course...
...but even then, BIOS access makes everything better.
sad news the log from the crash screen is nowhere to be found in the console
qhar
though it generated hundreds of lines of debug info
it should
LETS GOO
real
just had to add this line
(the jimbo there is because there's only one common oddity loaded)
I believe you can Ctrl+C to copy all that crash screen info and paste it elsewhere.
nah it did nothing
(( It unfortunately says it at the bottom of the page-- ))
lewd
@frosty dock idk if it's intended to be such but rarity_pools isn't being populated with injected cards by default
should OddityAPI have content in it or not
make OddityCore and OddityAPI
i was intending for it to not but it might be annoying if it doesn't
because if it doesn't have content in it idk if i can have a "default" oddity be chosen arbitrarily
(i.e., my original idea of "first loaded oddity becomes the default")
add estrogen as the default
if OddityAPI will have any content it'd be the Generic Type Support stuff
akai
meow
i'm not even on the part where i'm making content
also making estrogen the default oddity would prevent bad people from making oddities
think about it..
the vast majority of programmers here are trans i dont think that matters
(i say this with no actual statistics to back it up)
making things for the community unfortunately includes making things for the shit people in the community
it's an inevitable fact and trying to stop it is only going to cause more headaches
i.e. they win
just put your pronouns in the MOD_AUTHOR field in your header that'll do the job lol
phuck
hmmmm
I should implement that as a general fallback if no default is specified
oh sick that works
also i have a dumb solution for the Baseball Card problem
just negate the rarity when the card is injected and when checking it
We all have programming socks, true
god 😭
rarity keys can be anything
even tables
can they tho
you don't need to use the number 2
aure can we add a special field or formatting for pronouns
this seems to imply they need to be numbers
unless im giga dumb
(from center.toml)
not the keys to the table, but the key field
i'll keep the negative number solution i think
like, as part of the authors array?
why not
also im committing to the bitting
oh interesting, priority affects modlist order
just occured to me lol
i mean that's a logical side effect
mods that didn't load also get bumped to the top
just kinda weird
Aure!
How does localization work now?
oh shit i think i might know what the problem is with your undiscovered stuff actually akai
it looks like the profile swap unlock transfer bug is back
also looks like it causes stuff to get reinjected incorrectly
getting stack overflows from the old_set_badges function
yess.....
we're playing WOKE balatro now..
wokelatro, if you will
had to delete my old save and load the game while in airplane mode to keep steam from repopulating the save with the cloud save
weirdly this seems to transfer some but not all discovered/unlocked vanilla jokers from the original save? might be strange due to it being an unlock all save
@frosty dock your favorite bug is back
oddityapi roadmap (my brain hurts rn so taking a break)
if anyone wants to stab me with suggestions for the api now is the time
oddity statistics
oh heck true
odditistics if you will
could really use some help. https://mclo.gs/LBsmICE
game crashes with this log when im resetting/creating a new save. i can see nothing from it
is this related to mod development or is this just "my game isnt working"
its between these two. i suspect its caused by me modifying the Luas for localization
i'll just paste it to modding chat then

that doesnt look like 300 interest per $5
oops it really becomes 300
interesting how the tally becomes a number
that your doing or does it just work like that
over $60 it becomes a number ig
interesting
does it still tick up 1 by 1
no
i see
more crazy
?
it's a profile switch issue
some data from the first profile gets carried over
including discovered states for modded cards
that's so true
and this also causes my set_badges hook to screw up
so im kinda hoping the whole profile switch issue can be cleared up so i dont have to figure out some other way to do it lol
3k is not a multiple of 800 but sure XD
1.0?
Ohhhhhhhh
yep!!!
lovely makes packs so much less annoying
it'd be better with a proper api still but it's definitely a lot less bad
for example....
technically you could just inject the pack definitions into the massive G.P_CENTERS list
That’s what the pack APi does
that's not what i'm doing here but it's probably possible
but this patch handles the card ui for the booster pack
What do you do with lovely then?
mainly? avoid having enormous chunks of code that's basically unchanged from vanilla just because i need to put Oddity Packs in somewhere
for example, the above patch adds to generate_card_ui handling for the Oddity Pack names/descriptions
Makes sense yeah
Okay, really silly question here.
I'm running Steamodded 1.0.0, and I'm just realizing that one of the mods from 0.9.8 that I'd really like to implement back into Steamodded, which is just 4 whole lines of code, doesn't work.
The AchievementsEnabler.lua file in particular is the one I'd want to update.
Is there some similar thing to SMODS.INIT that I can apply for Steamodded 1.0.0?
how are people getting steamodded 1.0.0?
from github
Should be available on the github page.
pogress
i think i am on the wrong github because the latest release on steamopolly's is 0.9.8
Just don't download the prepackaged "release" files, instead go for the latest data set, hover over where it says "Code <>" and then download the ZIP file from the drop-down menu.
you'll have to use lovely for 1.0, though, since it's required now
Yup.
that was easy
got a problem related to my issue above
if the rarity is 5 will G.P_JOKER_RARITY_POOLS[joker_obj.rarity] actually return anything?
the crash log said it needs to be a table but its actually a nil
causing the crash
not without fusion jokers loaded
yes i got crash with fusion jokers loaded and when i try to reset/create a profile
without it things are fine
chat is this real
hype
this is probably a race condition/undefined behaviour on fusion joker's side (probably only sets up rarity pool 5 once, which gets deleted when you load a new profile)
two things off the to-do list, lets go
i wish i had my controller to test controller stuff lol i left it at home 😅
apparently oapi was busted for controller users which never occured to me because i dont play on controller haha
it only matters for oapi because the select button for oddity packs apparently wasn't registering controller input?
which sucks because i actually have no idea how that works
though now i'm using vanilla functions for the buttons and just special-casing them for oddities
i probably have a similar issue for super auto balatro buttons...
:programming:
god i love injection
vv
vv
vv
MURPHY IS STILL STREAMING I CAN'T WATCH THE VOD
killing myself
lmao get owned
wait i thought you can watch vods even while theyre streaming
unless the vod isnt public
can you?
me when i inject an end before the start of the next function
yea i just checked, you should be able to if their vod is public
the vod for the currently running stream?
i think that's what myst means, like it was earlier today
yea
murphy's on a subathon
wait has murphy been streaming for like days straight now
i can watch the vod of a streamer im watching live rn
its the first day
oh god
the current vod*
akai i have oddityapi 1.0 like 60% done
Ooh what are the new stuff and changes?
the new stuff and changes are It Exists
it's not "oddityapi 1.0" it's "oddityapi for 1.0"
Epic
estrogen
the estrogen will be in a different mod technically
Ah nvm then
make estrogen the default oddity
it'll be in Thac or something
this ^
myst can you help me fgure out sth btw
Gotta love auremodded
-2 social credit points
👁️
🫡 ui good luck
wait did local watch the subathon 😭
thunk was on the first day of subathon yes
i think you can add an area like the tags but move it to the top
then figure it out 😈
don't worry we'll figure it out together uhhhhh
it was a joke(r)
im already in one pls dont make me be in another
ah yes the classic polypolycule
Polycule joker when
G.jokers is the polycule
anyways uhh look for G.HUD_tags
polycule joker is the fusion of the 5 legendaries
i dont know what that means,,
One more wont hurt (trust)
im getting thrown into the jimbo dimension
its like uhm

table that holds the uiboxes for tags
balatro Joker Jam when
probably just ctrl+f that in ui_definitions.lua and stuff
im trying to understand how to render it correctly
like, add my own icon and move it to the right place
3 more pings? huh
would you be down to help figure out
my brain is soup
...wtf
it looks like it keeps the discovered state of all registered modded cards, including vanilla ones that have been taken ownership of
as well as causing this inject_card function for the Oddity consumable type to generate an infinite loop with the old_set_badges function
which i can't quite crack how to solve
(it might just be that i'm doing this in the wrong way and should just do it a different way, but idk)
old oddityAPI: 1047 lines
new oddityAPI (lua+toml): 230+142=372 lines
granted i dont have every feature from old oapi implemented yet but there's only like two things missing
injection my beloved
how does one make their own UI element..
im going to beat someone up
i volunteer
what does 'tm' or 'bri' mean
i think
bri makes me only think of brian from family guy
brian from family guy
bri is bottom right i(?)
wait so how does that work
top middle, bottom right?
this is a ternary isnt it
if at least 1 hud tag exists its top middle, otherwise bottom right?
why the fuck is it g.hud_tags[1]
im trying my best to process this
according to this a tri key exists that would be top right
tri does indeed exist
so does tli, actually
what the hell does that i mean
is it significant?
okay it's definitely tri
most likely the string is interpreted per-character
(quick lovely patch to move tags to top right)
[[patches]]
[patches.pattern]
target = "functions/UI_definitions.lua"
pattern = "align = G.HUD_tags[1] and 'tm' or 'bri',"
position = "at"
payload = "align = G.HUD_tags[1] and 'tm' or 'tri',"
match_indent = true
overwrite = false
now you can copy the entirety of add_tag function!
this is pretty dynamic tho
like it's just tags but you limit it at 1
learning is good for the brain
no it isnt
learning is good for the nodes[1]
lobotomy is good for the brain
no like going nonverbal and biting people
relatable
and making awawawawaw noises
oh yeah uhm you should definitely cap it at 1
thats the idea
i'd assume the aspect icon thing is already its own object?
you could make it additionally render the ones enabled from the voucher, but you'd have to figure out how to make them go downwards instead of upwards
i just have to set up an SMODS Center for it
they have a spritesheet
btw myst
look how cool this is
woman
do you like how the rank numbers are visible even with a lot of cards
so you can tell them apart at a glance
women....
women
true......
same reason why eternal stickers were moved to top left
oh damn I see the issue with unlocks
unlocks or discoveries
both
it's the same object it was on the previous injection, which now has a modified discovery state
i need it to be reset to the default that was specifed
will the whole object reset? i think that's my problem with old_set_badges as well
do I just make like, create_UIBox_aspecticon() or smth in my code
well tbh consumable types should be able to have their own set_badges
oh yeah that'd just be better anyway
which would be able to coexist with a specific one on the objects themselves
uhmmm no the add_tag() function already creates uiboxes
what
then like
add_aspecticon()?
i cannot stress this enough
this is not a tag thing
i am not adding tags
so i need it to be its own separate thing
hope that makes sense
this should do i think
yeah you got it
sorry i was watching the vod
you'll just need a 'mod_icon' atlas
i know!!!! what i was saying is you do it in a similar manner to adding tags
which gets prepended by the mod prefix by the API, and the mod UI thingy should properly use it
being able to name your icon atlas isn't of use anyway
hm
so for me it'd be like bstuck_icon.png if my mod prefix is bstuck?
actually holy shit that might be the best way to soft-enforce people to add mod prefixes to their mods
filename can be whatever, you just need to give it the key mod_icon
noo
it's already hard enforced
dw I'm adding collision checks
if i may, modicon might be nicer
not mod_icon
i dont have time to type in an underscore
and modicon is just as easy to read
lets go
actually i was going to have the atlas for the Oddity Tag and the mod icon be the same but i can just register it twice from the same file so
or i could just have the tag use modicon
okay so i think
- have an aspect add function that
- removes the old aspect object and ui if any
- generate a new ui for the aspect with the generate_ui function
- an aspect:generate_UI function that
- is the same as Tag:generate_UI but with the aspect's stuff
that sounds less stupid
why is love.filesystem.load(SMODS.current_mod.path.."stuff/"..file)() returning nil? am i stupid?
sorry ive been reading homestuck and im at the part where reading hurts
what is file
YOU M34N TH3 GOOD P4RT?
right
balahundo
the funnier version would be just appending it to itself until it's unique
balabalabalabalabala
what is files
i GuEsS sO iF yOu MeAn ThE pArT tHaT tOtAlLy SuCkS
(i'm not going to keep that up)
8y which you oooooooo8viously mean the good part ::::)
files is defined in the first line i think?
does it return the full path of each item or just its own name?
shrug
if mod prefixes change then that can screw with unlocks right
lfg!!
uhm
or discoveries
yeah
cant wait for balaff2
bala_ff2 you mean?
yes
i mean ideally there wouldn't be collisions
letting mod prefixes get changed when new mods are added sounds like a recipe for screwing things up :/
but yeah hopefully people just use the 4^<ASCII> wisely
mod prefixes can be any length if you specify them yourself
oh, ok
btw myst is this a start
the Slab is a Card?
yes 🙏
no
100kg stone slab
yeah probably
well a lot of things are centers
are tags a center?
yeah im not making cards
are tags a gameobject
or are gameobjects also cardrelated
like whats the deal with them
cause what i want to do
is i want to show tiny little icons
GameObject is literally just the base parent class
corresponding to current aspect
like, it's the OOP engine so to speak
so i can use it for that?
any API can derive from GameObject in some way, yeah
in your case, you'll want to derive directly from it
do we really go rogue and do this
i say yes
discouraging bad habits is encouraged
it will turn some people off but chances are these people won't amount to anything in the community if they're put off by needing to set up a sane prefix
i mean with settings files and whatnot, one could still preserve a prefix once assigned, but that's bound to have some edge case where it fails
did something different and it worked so whatever, i suppose
duplicate prefixes are now officially banned
there was something else I wanted to fix, wasn't there?
rarity_pools not being populated
yeag
probably a trivial fix since all i had to do was this
(the rarity line can be ignored probably)
yeah the fact that you need to reference the consumable type directly is a bit ugly
imma change up the args so it's self, card where self is the consumable type
i mean technically i could derive it from self.set right
i just didn't here because... meh
eh
SMODS.ConsumableType{
key = 'Aspect',
collection_rows = { 3, 3 },
primary_colour = G.C.SET.Aspect,
secondary_colour = G.C.SECONDARY_SET.Aspect,
loc_txt = {
name = 'Aspect',
collection = 'Aspect Cards',
label = 'Aspect',
undiscovered = {}
},
}:register()
Balatrostuck.Slab = SMODS.GameObject:extend{
required_params = {
'key',
'atlas',
'pos'
},
omit_prefix = true,
inject = function(self)
-- this is where all the chungusing occurs
end,
-- no loc text needs to be defined
-- because it'll be stealing it from Aspects
}
function Balatrostuck.Slab:generate_ui()
end
function add_slab()
end
am i getting this right so far
the injector assumes process_loc_text exists, so you'll need to at least have that as an empty function
looks good otherwise
a
new default
i assume if i do need an inject_card function though i'll need to still have my code?
by extension, you can then do this
don't mind the fact I forgot to remove a self there
what's SMODS.insert_pool
btw aure
just a wrapper to add things to pools while also setting the order value correctly
is this a good convention
mostly it exists to replace objects that have been taken ownership of
i feel like it's not super helpful
it is helpful in the long run
c_aspect_bala_whatevername
trueish but its more so
extending Consumable
in case I need to add a tooltip or something of the nature
This won't affect checking other mods by their ID right?
Balatrostuck.Aspect{
key = 'blood',
name = "Blood",
loc_txt = {
['name'] = "Blood",
['text'] = {
[1] = 'Up to #1# {C:red}discarded',
[2] = 'cards per blind',
[3] = 'gets a random',
[4] = '{C:purple}enhancement'
}
},
pos = {
x = 4,
y = 1
},
soul_pos = {
x = 4,
y = 3
},
cost = 4,
discovered = true,
atlas = "HomestuckAspects",
loc_def = function(self, info_queue)
return {G.GAME.BALATROSTUCK.aspect_levels[self.name]+1}
end
}:register()
Balatrostuck.Slab{key='blood', atlas='HomestuckAspectSlabs', pos={x=2,y=2}}:register()
i mean you only need to make sure keys don't overlap within your own mod
in this case this is uh, intentional
nope, not affected
the Slab steals the loc_txt from the Aspect
so if the key is 'blood' it'll take the loc_txt of the Blood aspect
that should work right aure
or do i need to process loc text on this consumable
so that i can then call loc_def on the slab
with the key of the aspect
should be good without any additional loc text, I just assume the function exists so you need to define it
i think that's all reported bugs squashed
nvm i forgot i need to set the default tags atlas elsewhere when no custom modicon is present
Evil Steamodded be like
auremodded
That's what Ive been saying 😎
btw this text eats missing dependencies and unresolved conflicts, they don't stack
I don't feel like 70 loc text entries for every combination
nonconsumable consumables gonna be annoying to set up i think...
oh, not like that
though perhaps that also would be useful
just for a different thing
I'd like it as well
what else would you need
i mean usable cards that don't disintegrate
If it works with Oddity that be sick rather than a constantly greyed Use button
hm, we could do with both
oh sick
should just need a lovely patch or two
i was just kinda talking aloud about my endeavors
but if it'll be in smods side it can probably be useful for other ppl too
Hahhahahaha (help)
hi feder
as far as i can tell
oh i cant swear anymore
the only thing is i still dont know how to { } with the background colors
how would i inject my own calculation logic btw
I can help with that when I get home
whatch one
^ ajj be out that
which one
Wouldn't it work if you did like planets with observatory?
Or create a custom context idk
haha no
😔
so you'll want to set up your Slabs to have some kind of calculate function
hm actually what would be the use of hiding the use button
you just have a joker at that point
Oddities are normally consumables
then you can check for the Slab's existence and run its calculate function?
there could be use-cases for "food joker" style oddities i suppose
where their consumption is not based on a direct Usage of the item but rather on some other trigger
yeah that works
Huh I’ll have to do that for crops I think
hm, so some should_dissolve_on_use function i guess
that tracks.
i don't wanna deal with how hiding use buttons interacts with shops and packs, I think greying is good enough in that case
keep in mind you also need to either return the consumable to G.consumeables or have it never leave it if the dissolve shouldn't happen
if you don't destroy/remove it from G.play it softlocks the game
i personally opted to have the consumable never leave G.consumeables when i implemented this for OddityAPI
balatrostuck zodiacs real
chat should OddityAPI come with a tag that gives a Legendary Oddity
That would be cute
it would also solve the issue of Legendary Oddities not having a builtin way to be acquired
so I assume setting dont_dissolve in G.FUNCS.use_card will not be enough?
correct
if you do that it'll just hang out midscreen and prevent you from pressing Play Hand
the bane of my existence for both selecting oddities from packs and the nonconsumable ones
do you want the 0.9.8 oapi code for reference? idk if it would help much
sure, that would be useful
well depends on how it's written, but I'm fairly sure it's at least sort of useful
it's basically written as a copy of use_card
ight
aure how hard would adding calculation to playing and held cards be
probably not all that bad, though idk what object the calc func would reasonably go on?
hm
the star looks deformed
me too thanks
you too
Hello must
wow rude
Myst
MUST
Not must
must
--THIS MIGHT BE BROKEN wdym
i didnt test it
mainly just if that calculate_joker call doesn't work for some reason if the consumeable in question doesn't get destroyed
it's an unlikely case but still untested
alt design
(left is Mega Oddity Pack, right is Legendary Oddity)
must
what if i make the tags tarot colors
Why not a custom color for oddities specifically?
!
i meant more that changing the border would serve as a good indication of "HEY! THIS IS A MODDED TAG!"
while not being so out of place that it's offputting
Isn't Codex's tags border grey too?
(so it'd be a good heads-up of "hey read what this does it might be good")
do i look like a codex dev to you
Yes
shit u got me
😎
i think ill stick with normal graey as boring as it is
Mega Oddity Pack, Legendary Oddity
Shop has a free Rare Oddity, Fill your consumable slots with random Oddities
too much? haha
no those look fun
Yes the elemental tag border is great
Gray
Wait grey is with an e?
Both are valid
then you draw a better star >:(
how do you draw a star uh
make it so uhh
I got you
My bad the star is horrible I forgot a shadow pixel
better than anything i could ever do
You need to stop smoking
better?
WHAT
i want the return value to be true instead of false, but the function name dont_destroy_on_use seems excessive
keep_on_use
i like keep_on_use
adding four tags that interact with oddities lets goo
(as soon as tag api isn't locked behind a scuffed commit)
(although i guess i could just not open the mods menu)
this being a function is so based btw
oh shit, this doesn't work with consumables
wait what
i dont have the card reference
wait what doesn't work
oh why don't you have card reference there
generate_UIBox_ability_table only gets passed the center
different function
i see
oh heck tags need names
Oddity, Artifact, Relic, Collector... maybe?
Green-mega
Purple-legend
Star-rare
Plus-all slots?
I feel like I should introduce a workaround for that
yeah
consumable loc text should be able to reflect state
copy the card ref to a var in SMODS then pass it in in loc_def?
so it fits
I could just add a parameter to generate_UIBox_ability_table
Strange Tag - Mega
Heirloom Tag - Legend
Relic Tag - Rare
Trinket Tag - All Slots
im guessing there being some problem with how fusionjokers introduces its new rarity
table.insert(G.P_JOKER_RARITY_POOLS, {})
im so balding
then omit it in subordinate calls, because having the card object doesn't make sense for tooltips
i like heirloom tag
which means consumable loc_def gets a center and additionally a Card which may or may not be present
oh god
incredible
at least my current implementation works without the loc def
Dies after 5 uses, that is
just can't display that to the player accurately then
well that's pretty fundamental
yeah lol
like what if the effects changes on use
right
or a use-case i had come up with but hadn't tried for nonconsumable oddities of having it "enable" the oddity on use and then it does something during scoring (after which it consumes)
some read-out of whether the oddity is Ready or Not would be good
think a nonconsumable that gives a random joker effect ranging from really bad to really good and costs some amount of money to "use" to reroll the effect
oh that's actually really cool
seems like a main_end use case
true, but it'd still need the card's data right?
it'd probably also be good to figure out how juice_card_until works


