Before I break QT and RT and other things:
is a choicebody with 202 options (only 4 will show per playthrough) too much?
Should I split it into various choicebodies under ifs/labels?
Before I break QT and RT and other things:
is a choicebody with 202 options (only 4 will show per playthrough) too much?
Should I split it into various choicebodies under ifs/labels?
Never!
Well, in all seriousness, it obviously depends on many factors. But I only call a choice too much when you have to scroll the screen all the way to see the options (though, again, I don’t mind it like in ZE where you can sell your stuffs in a list).
If you want, you can make a choicebody made from 4 options, and then use {reference}
method to assign the actual choice codes to these slots.
At least that’s how I do it with my combat system.
I don’t know how to do that.
Right now it’s using the
*if (x) #option
method
and yes this is the superpowered bing codename suggestion list thing
Well, then you don’t need the variable {reference}
way.
It can be a bit hard to explain, so I’ll return to edit this once I’m back home (apartment).
P.s. Actually, there’s a quick explanation on here, under “truly bizarre references”
A guide to more advanced features in the ChoiceScript programming language.
Alright, now I’m back, here goes nothing
Choose a skill
*choice
*selectable_if ((ep >= {sp_move1_ep}) and ({sp_move1_cd} = 0)) #${sp_move1_title}
*if not ({sp_move1_go})
*set {sp_move1_go} true
*set ep -{sp_move1_ep}
*else
*set {sp_move1_go} false
*set ep +{sp_move1_ep}
*selectable_if ((ep >= {sp_move2_ep}) and ({sp_move2_cd} = 0)) #${sp_move2_title}
*if not ({sp_move2_go})
*set {sp_move2_go} true
*set ep -{sp_move2_ep}
*else
*set {sp_move2_go} false
*set ep +{sp_move2_ep}
<<Ability roll pick>>
*label sp_moves
*rand sp_move1 1 4
*rand sp_move2 1 4
*label sp_reroll
*set rollcheck false
*if sp_move2 = sp_move1
*set rollcheck true
*rand sp_move2 1 4
*if rollcheck = true
*goto sp_reroll
*gosub sp_slot 1 sp_move1
*gosub sp_slot 2 sp_move2
*return
<<Assigning to slots>>
*label sp_slot
*params slot num
*temp sp_move_cd "sp_move${slot}_cd"
*temp sp_move_ep "sp_move${slot}_ep"
*temp sp_move_go "sp_move${slot}_go"
*temp sp_move_title "sp_move${slot}_title"
*set {sp_move_cd} "abi${num}_cd"
*set {sp_move_ep} "abi${num}_ep"
*if num = 1
*set {sp_move_title} "[1 âť– |${abi1_cd *"-1"}/2 đź•’] [b]Shred[/b] @{abi1 âś“|}[n/]Deal 3 damage and remove 1 [i]Entangled[/i]."
*elseif num = 2
*set {sp_move_title} "[0 âť– | @10 Rush] [b]Fast Strike[/b] @{abi2 âś“|}[n/]Deal 4 damage. Consumes Rush, adding +1 damage for every 10 Rush."
*elseif num = 3
*set {sp_move_title} "[1 âť–] [b]Rage[/b] @{abi3 âś“|}[n/]Gain 3 blocks. Generate 30 [b]Rush[/b]."
*set {sp_move_go} "abi${num}"
*elseif num = 4
*set {sp_move_title} "[0 âť–] [b]All Out[/b] @{abi4 âś“|}[n/]Gain (3) [b]Bloodrage:[/b] Gain (3) STR for every unblocked attacks you dealt; lose them and the Bloodrage when taking attack damage."
*return
In nutshell, it’s basically a choicebody of 2 options (which I’d call “slots”). Each slot will be assigned with a random skill from a pool by random rolls, so players can make extra moves in addition to the basic 2 moves: attacks and blocks (hence the keyword “sp_move,” special move).
Code Legends:
ep = Energy Points. Mana. âť–
cd = cooldown. “Current cooldown/Ready to use.”
title = the text that’ll appear on the choice. It’s basically the stuff after the hash #
in CS
So… that’s a snippet from my whole subroutine. Definitely a WIP, but it does what it must do, at least so far.
Mnnn… i dunno if this would even work for this case if i understand things right. But thanks
I think that depends on how it’s easiest for you to think about it. One massive or 50 smaller ones with 4 choices each?
You know best how your brain works.
202 does sound a huge amount. If the user only ever sees 4, that’s not a problem though. Unless you’re asking for performance reasons? In which case, in theory it won’t be particularly performant, but I don’t think you’ll notice too much. I would suggest you look at an alternative way of doing it, however. Even if just for your own sanity. Maintaining the code for 202 option long choice sounds really painful.
I turned it into 11 labels with 19 options each