JadedDragoon
Active member
Basically, I'm trying to (as an archetype) implement a pathfinder version of the Paladin variant classes from the D&D3.5 Unearthed Arcana pg53 (Paladin of Freedom, Paladin of Tyranny, and Paladin of Destruction). Each has the same spell list as the core Paladin... except for about five swapped spells each. Making three new spell lists each for only a single class would be an extremely inefficient way to accomplish that.
Man, wouldn't this be a nice (if performance hungry) shortcut to programmatically generating a new spell list that is just a few spells different from an existing one?
!!!DOES NOT WORK!!!
!!!DOES NOT WORK!!!
Of course, the thing context doesn't have an assign action. And spells only become picks on a hero after they have been selected... which would defeat the purpose.
Really this is exactly the kind of thing that I would expect *Extend to be able to do. It would be as simple as making extend things take a tag expression, component id, tag group, and tag id then implementing the above "foreach thing" logic with those values as input. If you could also refine the results with further with the tag expression (say to implement exceptions) it would be perfect. Then I would only need to add the 5 new spells manually to the spell list and the rest would auto-generate when the game system loads, which is pretty reasonable. As it stands I can't see much use for *Extend.
I can:
There are how many spells out there? Yeaaah... there really has got to be a better way. But of the two, duplicating the spell things is a _lot_ less (but still far too much) work.
Are there any alternatives here?
Man, wouldn't this be a nice (if performance hungry) shortcut to programmatically generating a new spell list that is just a few spells different from an existing one?
!!!DOES NOT WORK!!!
Code:
foreach thing in BaseSpell where "sClass.cHelpPal"
var comp as number
comp = 0
comp += compare(eachthing.idstring, "spProtfro1")
comp += compare(eachthing.idstring, "spDiscLie3")
comp += compare(eachthing.idstring, "spMagiCir3")
comp += compare(eachthing.idstring, "spDeatWar4")
comp += compare(eachthing.idstring, "spDispCha4")
if (comp < 1) then
perform eachthing.assign[sClass.cHelpPalFree]
endif
nexteach
perform <spProtLaw1_thing>.assign[sClass.cHelpPalFree]
perform <spMagiLaw3_thing>.assign[sClass.cHelpPalFree]
perform <spRemoCur3_thing>.assign[sClass.cHelpPalFree]
perform <spDispLaw4_thing>.assign[sClass.cHelpPalFree]
perform <spFreeMov4_thing>.assign[sClass.cHelpPalFree]
Of course, the thing context doesn't have an assign action. And spells only become picks on a hero after they have been selected... which would defeat the purpose.
Really this is exactly the kind of thing that I would expect *Extend to be able to do. It would be as simple as making extend things take a tag expression, component id, tag group, and tag id then implementing the above "foreach thing" logic with those values as input. If you could also refine the results with further with the tag expression (say to implement exceptions) it would be perfect. Then I would only need to add the 5 new spells manually to the spell list and the rest would auto-generate when the game system loads, which is pretty reasonable. As it stands I can't see much use for *Extend.
I can:
- make a new spell thing for every spell I want to add to new spell lists.
- Future changes to those spells in the Pathfinder base files will be ignored.
- Requires to create one new thing for every spell changed
- Doesn't require a bunch of flipping back and forth between tabs to find the needed thingids.
- make a new extend thing for every spell I want to add to each spell list.
- Future changes to those spells in the Pathfinder base files will be respected.
- Requires to create three new things for every spell changed
- Requires a lot of flipping back and forth between tabs to find the needed thingids.
There are how many spells out there? Yeaaah... there really has got to be a better way. But of the two, duplicating the spell things is a _lot_ less (but still far too much) work.
Are there any alternatives here?
Last edited: