View Single Post
Aaron
Senior Member
 
Join Date: Oct 2011
Posts: 6,793

Old January 22nd, 2018, 04:50 PM
I don't see how you would represent that, even if you got your selector choosing among the correct spells, unless you had one selector for every possible spell, because HL evaluates the character every time you change something.

For example, say you have your single selector, and you want to mark your choice by assigning a tag when you select a spell, and you've set it up so that your candidate expression for the chooser will not allow your to choose something with this new tag you created.

You add your ability, and you have 3 spells memorized right now, Spell A, B, and C. The tag you assign is Custom.NoPick2x.

On the character, you go to the ability in question and click on the selector, no selection has been made, no tag is assigned, you can choose any of the 3 spells. You make the selection, choosing Spell B, so HL runs an evaluation and your ability assigns Custom.NoPick2x to Spell B. Now you click on the selector again, no change has been made to the character so no evaluation is run yet and you see Spells A and C for selection but not Spell B (since it was assigned that tag last evaluation). As soon as you select either A or C, another evaluation runs and your eval script assigns Custom.NoPick2x to the new choice, and Spell B no longer has that tag. With a single selector applying a tag, there is no way to make your choice "sticky".

There are some things which retain information across evaluations, like user choices (what abilities have been added, what selections the user has currently selected for their abilities), and certain types of fields. Unfortunately, you can't define new fields on a pick, and even if there is a user field not currently being used (say one which relates to, for example, a variant spellcasting system from Pathfinder Unchained), its probably not a good idea to be co-opting it for whatever ability you are making here.

So the only way I can see that you have access to, would be to make this selector be on an ability which could be added as many times as the user needed, for example, through a configurable. The problem is, this is both wasteful and highly annoying to track, if you are expecting the user to add a new ability and select a new spell every time they use this ability. Then delete all the abilities when they rest just to do it all over again the next game day.

It just doesn't strike me as worth the effort for you to code, or your user to use. If you absolutely must have some record of which spells have been burned today, have them note it down on the Personal tab, or add a user text field to the ability and have the user manually type each spell marked off and erase the text at the end of each day. At least that is only one step per use, and a single step at the end of the day (rather than n*2 + n steps for add ability, make selection, delete ability).
Aaron is offline   #19 Reply With Quote