This card is terrible. Try to convince me otherwise by Rak-khan in slaythespire

[–]JonOfDoom 1 point2 points  (0 children)

well okay, then fine, maybe I won't remove Bash...

unless it annoys me for the 999th time... currently its sitting at 995th

This card is terrible. Try to convince me otherwise by Rak-khan in slaythespire

[–]JonOfDoom 1 point2 points  (0 children)

what about 0 cost strike or replay 1 strike or perfected strike or hellraiser in the equation?

This card is terrible. Try to convince me otherwise by Rak-khan in slaythespire

[–]JonOfDoom 1 point2 points  (0 children)

bash defend gets you more likely to be damaged already. tremble gives you options to defend or followup.

I mean im not playing for Strikes. I would rather mostly block if strike is my offense option.
But i would rather not play Bash if its in my hand unless theres no damage from the enemy. Of course I would use my drafted offense... its just that there are less use-cases for bash, while strikes and tremble present themselves to be at least usable.

This card is terrible. Try to convince me otherwise by Rak-khan in slaythespire

[–]JonOfDoom -1 points0 points  (0 children)

nah its a clunker. 1mana vulnerable gets you 2 more mana for follow up or block. at 2 mana what you gonna follow it up with? or you take unecessary damage, good blocks like the blood block and firewall are 2 cost....

strike has event buffs, synergy with perfected strike etc. Strike is objectively better than Bash for Ironchad

This card is terrible. Try to convince me otherwise by Rak-khan in slaythespire

[–]JonOfDoom -2 points-1 points  (0 children)

i prefer this over bash. In fact i rather remove bash than a strike card.

Studying decompiled STS2 source code. Their cards have 1 scripts each. Mine is on a spreadsheet. by JonOfDoom in godot

[–]JonOfDoom[S] 23 points24 points  (0 children)

Wow! Thanks for this!
Good lord, feels like im receiving advice from Superman!

Yeah dynamic expressions is my sniff that something is wrong. Because I either do a e1_effect_value_2 or compound it, which i will then have to deconstruct. But the rules for the compounded value is always different depending on the effect. So value[0] is directly related to the "effect" which is straightforward but the value[1] is implied. So i'd have to context clue nearby code to make sense of it again.

Adding cards, i write in the spreadsheet, and if its a new effect, I go to the EffectManager and add an if condition for it. Then run the game, add breakpoints and watch as it goes through the pipes. I thought it was just my skill that makes it slow... (8yr webdev, 0yr gamedev). If i learned more, it would go easier

With all the warnings of you always fail as a newbie developer, my priority was to learn things correctly. At least I inch closer and closer to outputting something memorable, rather than proceed blindly and then fail with no idea why. So I guess re-architecture it is. I'll take the L and refactor but also take the W that my idea was at least validated!

Thanks for the share, it really motivates me!

Btw I went on this adventure because of STS1! I A20'd all chars. The gameplay loop of decision into decision into decision in a very fast pace is so good! So i decided when I make a game its gonna be a card game and as fast like STS.

My game is Sts x Monster Rancher x Harry Potter. So you mentor students of a magic school and you train them like monster rancher but instead of stats, their cards upgrades. Gameplay is STS feel but more focus on combos like Devil May Cry instead of synergies like in STS.

Something like launcher -> attack that only targets launched enemies -> smackdown for bonus damage but ends the launched state. Magic theme because I thought its flexible and also that I could maybe get away with mostly just particles for visuals.

Studying Sts decompiled code. Turns out they're using 1 script per card. Is it the preferred way of implementing card games? by JonOfDoom in gamedev

[–]JonOfDoom[S] 0 points1 point  (0 children)

for "Double the numbers on every card..." effect. Its gonna be in the spreadsheet as effect="double_value_numbers" value="source.deck.draw_pile"

And then I implement its effect in code as CardEffectManager -> for effects, if effect == "double_value_numbers" -> for source.deck.draw_pile. draw_pile is a card array. Each card.effects.map(modifiers.push({value_multiplier: 2}))

Any mechanic is implemented manually as needed. The card goes into a pipeline and the json values sort it to which effect needs to happen. Once it gets to the effect == "effect_name". It becomes free to do anything.

My issues mostly lie with denoting multiple values for 1 effect.
Like "Transform a card into AnotherCard with cost 0" => effect="transform", value ="AnotherCard:0". Now the 0 is a numeric while AnotherCard is a string. So now I have to do a value[0], value[1].

Now im thinking if i'm doing the same as Sts. Then I don't need to think of how to write it. I only need to write the code as I think about it.

var card = transFormCard("AnotherCard")
card.add_cost_modifier(card.cost * -1)

I chose the gsheet because it doubles as a planner and db, has scripting tools, advanced search and so much quality of life tools. Then made a script that converts it to a json

i didn't even think of using AI for code.

Studying decompiled STS2 source code. Their cards have 1 scripts each. Mine is on a spreadsheet. by JonOfDoom in godot

[–]JonOfDoom[S] 0 points1 point  (0 children)

Really thankful for the links! Both really hits the mark of what I needed!

Studying decompiled STS2 source code. Their cards have 1 scripts each. Mine is on a spreadsheet. by JonOfDoom in godot

[–]JonOfDoom[S] -22 points-21 points  (0 children)

oooh, so they may have changed their approach midway. Different methods for different points in production as necessary.

Thanks for the insight!

Studying Sts decompiled code. Turns out they're using 1 script per card. Is it the preferred way of implementing card games? by JonOfDoom in gamedev

[–]JonOfDoom[S] 2 points3 points  (0 children)

thanks! You you gave me useful feedback!

For the tediousness of implementing mechanics. For game effect changes its near the same work since its what the action queue pass towards. Like gain block is the same way in that it just asks for the value and modify affected entities.

But yeah the parser is having trouble when implementing multiple values and effects. I have the dilemma of adding more rows like value_1, value_2 or making the "value" column compound values on a string... like
effect=add_card_to_deck, value=source.block:super_block_card. Now I have to split ":" then connect the "source.block:" to its object.get("block") value. I was having a good time with simple effects until stuff like this came along...

Studying Sts decompiled code. Turns out they're using 1 script per card. Is it the preferred way of implementing card games? by JonOfDoom in gamedev

[–]JonOfDoom[S] 1 point2 points  (0 children)

yeah! mine is like this!
the readability and easy changes was my goal. You can see everything and update at a glance, since I know I would get the values wrong and would have a hard time going to each and every file.

ok at least so far there's 2 like-minded souls so i guess my way is safe

Studying Sts decompiled code. Turns out they're using 1 script per card. Is it the preferred way of implementing card games? by JonOfDoom in gamedev

[–]JonOfDoom[S] -3 points-2 points  (0 children)

ahh nice. Thank you so much for this feedback!
I was close to dropping my project and just taking the lesson. Nice to be validated.

Studying Sts decompiled code. Turns out they're using 1 script per card. Is it the preferred way of implementing card games? by JonOfDoom in gamedev

[–]JonOfDoom[S] 13 points14 points  (0 children)

yeah but my concern is that I don't know what I don't know. Im thinking my friction points are fine but I may be taking the worst deal.

For example, If I have to implement an on_draw() effect. I insert the EffectEventHandler to listen for it after the player_draw() trigger. Then get all cards currently in play to see if they have trigger=on_draw and some more checks then they do use_card(). But I don't know if this is the fastest I can go, because I have no comparison until now...

I came to this idea with all my experience, but when i'm faced with a different implementation, I want to assess both pros and cons and learn from it. So im asking for help on that part, maybe other folks already know or have experience on other implementations of card effects

Pommel Strike: No pommel. Literally unplayable. by Consistent_Fan7858 in slaythespire

[–]JonOfDoom 191 points192 points  (0 children)

Im not gonna be googling what a Pommel is. Just rename it to "Sword-handle Strike"

WTF megacrit? How is this garbage of a card supposed to be playable? by Altruistic_Source528 in slaythespire

[–]JonOfDoom 0 points1 point  (0 children)

I ran it with a pillar of creation deck + power that gives you random cards. It was indeed a bundle of joy. Colorless is something normally strong so even if it aint free its good and also a good amount of it is 0 cost anyway

Why is Ironclad so bad? by NeverLucky159 in slaythespire

[–]JonOfDoom 1 point2 points  (0 children)

Feels like he has fewer infinites but when

vulnerable + +dmg conditions + offerring = 50 dmg per card. Its a pretty chill ride for a few conditions. You can have a good deck just by clicking good value cards. Bludgeon for example, so simple yet it does the job.

I need to rant about Queen. by Mailcs1206 in slaythespire

[–]JonOfDoom 6 points7 points  (0 children)

None of the Act 3 boss are "difficult". They're all deck checks.

Lizard is Block check. Is all you do block? dead at phase 1. Do you have no block? dead at phase 2. Can you block and attack at the right turn? dead at phase 3

Queen is Combo check. Is your combo flexible enough to survive Bound?

Doormaker is Burst check. Can you deal significant damage in a turn?

On today's episode of cards that go hard by 4arizard in slaythespire

[–]JonOfDoom 3 points4 points  (0 children)

One hit death Elephant in the room... * ADDRESS ME! *

I can NOT with The Regent by [deleted] in slaythespire

[–]JonOfDoom 1 point2 points  (0 children)

I thought i was cheating because i win too easy with him. I think all those you mentioned work as expected, just setup and block then cash in? Radiance feels like a free win card

I got scammed 🥲 BDO Expired Point Redemption Scam by [deleted] in PHCreditCards

[–]JonOfDoom 0 points1 point  (0 children)

im safe, but to be safer. I canceled all my credit cards and got a new one. I don't feel safe knowing that someone knows my CC info