Reworking of the bloodline selection

Description

This is one ticket even though multiple classes and sources are touched by it because it's a complex problem that requires a systemic rethinking of the bloodline selection and advancement.

There are two classes which use bloodlines and have a "crossblooded" option which makes them add two bloodlines instead of one. Sorcerer and Bloodrager.

There is also a feat line "Eldritch Heritage" which handles bloodlines.

There are several archetypes (example: Eldritch Scion for Magus) which allow a bloodline selection.

There is at least one prestige class (draconic disciple) which handles a bloodline.

This is currently handled via several split lists. And this decision was ok at an earlier time, but has proven to be suboptimal over time as complexity has increased.

There are two solutions to this chaos which i will propose at the end of this piece.

Sorry if it is long i wanted to explain my reasoning and offer two solutions which draw upon how things are handled now for a variety of places which handle bloodlines.

The crossblooded sorcerer has been explained in the Ultimate Magic manual, and the crossblooded bloodrager in the much earlied Advanced class guide. The Eldritch Heritage feat line is from Ultimate Magic. The draconic disciple is from the core rules, and each bloodline comes from a different book.

As one of your team said when i first brought up this problem "[crossblooded] isn't merely adding a second bloodline. It's allowing you to get two bloodlines, true, but then you split which bonus feats you select, and which bloodline powers you gain.
You're asking me to refactor every known bloodline, force users to manually add powers, and set up a central feat repository. Not saying impossible, but that is asking for a lot of work. I'm going to estimate 8 man hours for this project of yours." - quote eng. Andrew Maitland

For clarification: Bloodrager and sorcerer bloodlines might have the same name but mechanically they are different and they always will be handled separately, there is no way to handle a sorcerer bloodline that does not have a bloodrager counterpart. Nor i was suggesting that.

What i propose is different.

At this moment the crossblooded selection for both classes is handled by selecting from a list different from the original bloodline list. This means that each time a new bloodline is added, it must be added to both lists. If something happens that alters a bloodline it must be altered on both lists. If a new "something" adds modifiers to an existing list, it must be done to all lists.

Same thing happens with eldritch heritage, which adds a third list.

The presence of multiple lists is a problem because if a bloodline comes from a book that the GM does not allow it is not sufficient to remove that one book to disallow that one bloodline. The player has to scan and check which bloodlines are allowed, since they all appear to come from the book that has the new list of bloodlines (that is: Ultimate magic has all the crossblooded bloodlines) and for each third party book which adds a bloodline the headache becomes magnified.

The way i see it this is a systemic logistic problem (or at the very least, inconvenience).

In a multi-member team (though for now it seems i've only ever spoken to eng. Andrew Maitland, so i know not how many members are on the team) either a memo needs to remind everybody to change all the lists every time something happens or... it's going to be ticket over ticket to solve each individual missing or modified bloodline which was not copied over to the other bloodline selections.

Each bloodline has the following pieces composing it:
1) one key skill
2) a list of class skills
3) one arcana
4) a list of bonus spells
5) a list of bonus feats
6) a list of powers to be gained at specific levels, each power having the level at which it will be taken

This is handled by a code like this which describes every single "base" bloodline:

The way i see it. It already gets parsed by the normal bloodline and it has been marked for levels and everything.

So it can be parsed for each single element of this list, taking it apart without splitting it in multiple pieces.

Right now the crossblooded selection for each class (sorcerer and bloodrager) has been handled by splitting this code into each individual piece and making lists to give players a choice. Same thing for Eldritch Heritage.

However this also means that it creates problems in special cases.

Example given: the Dragon Disciple which should advance the sole draconic bloodline, regardless of how many bloodlines the character has taken part of, but instead advances all of them.

And probably many other instances in which it's the player who has to choose, instead of the program making the choice which is deemed correct by the rules.

So, instead of continuing this systemic problem which will indeed create more problems down the line snowballing as more and more rules, rulings, bloodlines, etc. are created... i suggest taking a cut now.

The bloodlines should "mechanically from the player's view" continue to work as now.

But as for the internal workings a decision has to be taken.

Either:

1) The bloodlines get split as it happens with the crossblooded selection, with each individual piece to be part of a list to be selected as appropriate, which means checking every sorcerer bloodline and bloodrager bloodlines and splitting every missing bloodline then reworking the bloodline selection from the base classes of sorcerer and bloodrager (and any other class which has a bloodline selection, such as the Magus archetype Eldritch Scion and i don't know how many others, because i am not an all-knowing god). Doing the same for every third party book where a bloodline has been added.

Or:

2) A bloodline parser must be coded. Then parse the bloodline list of the base sorcerer, but:

  • For the two crossblooded whenever they find a "conflict" (class skills, feats, etc. etc.) they take a stand, either give both or let the player decide. Usually is "give both" (both skill lists, both feat lists, both spell selection lists)

  • For the eldritch heritage, just check which bloodline has been selected and ask the player which power appropriate for the feat he wants to select.

  • For other things such as the dragon disciple or the eldritch scion only the pertaining bloodline should continue to be parsed (if multiple a choice must be made).

If it were for me i would go for option two. Bloodlines have been "pretty consistent" until now with bloodline variations only changing a single thing and thus easily handled by copying, pasting and changing that one single thing. Thus the stat block for each bloodline has been pretty much always the same.

But i see the reasoning where option two opens up the way to skynet and all the headaches about letting the program decide instead of letting the player hang himself with his own hands.

In any case making a section of a program "smart" is a known generator of headaches... but in this case i feel like it removes more headaches than it creates as more and more options (bloodline choices) and features (archetypes or feats which allow bloodline selections) have been added over time and probably will be added in the future.

Plus, once a bloodline parser has been created to check which features and piece one wants to select from the bloodline block, i hope it can be reused for multiple cases in which a single piece must be taken or a choice must be made.

So... well... this is how i see things, i hope a decision is taken otherwise it's a progressing snowball with each new "feature" that gets implemented.

Sorry for the skynet joke, i know you guys try and be serious about this, but i have a reputation of idiocy to defend. 😛

Environment

Windows 10 x64 Home
Java 1.8.0.152

Activity

Show:
Andrew Maitland
December 10, 2017, 3:17 AM
Simone Spinozzi
December 10, 2017, 7:42 PM
Edited

Okay. Unluckily i was able to start working only 30 minutes ago due to people complaining i wasn't working enough even though it's sunday and there was no deadline that required the absolute panic they were showing. I went through the Pathfinder directory under PCGen and i checked for sorcerer bloodlines. I got this list of files.

acg_abilities_other.lst
ap8_kits.lst
apg_abilities_class.lst
arg_abilities_class.lst
b2_kits_race.lst
bote_abilities_class.lst
cob_abilities_class.lst
cr_abilities_class.lst
dep_abilities_class.lst
oa_abilities_class.lst
oog_abilities_class.lst
potr_abilities_class.lst
potr_abilities_class_boa.lst
psand_abilities_class.lst
um_abilities.lst
um_abilities_class.lst

These should be the only ones containing sorcerer bloodlines unless i'm mistaken. Il will check later for bloodline modifiers and for crossblooded and bloodrager bloodlines and for feats pertaining bloodlines. After those checks i will check for anything else pertaining bloodlines.

Though probably crossblooded bloodlines will be all in a single file and the blodrager bloodlines will be in far less files than the sorcerer ones. But i'll check later.

[EDIT]: I missed the fact that i was announcing i was starting now to work on these.

Andrew Maitland
December 10, 2017, 9:22 PM

I've already done the files. It's a mess, but I've done the massive work for the bloodlines. Bloodrager has NOT been touched. Crossblooded will need feat work. I think the interim solution is to make an ability for each pool. But regardless, I'm actually tackling this. Jump on hipchat and we can collaborate.

Simone Spinozzi
December 10, 2017, 9:31 PM

as usual i'm on support guests, since Hipchat is disgusted that i joined via a megacorporation like google and does not accept my login unless i provide it with a password i can no longer create with my email, unless i make another email for just the hipchat login purposes.

Andrew Maitland
February 24, 2018, 7:44 AM

Multiple PRs.

Assignee

Regan Anderson

Reporter

Simone Spinozzi

Labels

Epic/Theme

None

Pending User Input

No

Components

Sprint

None

Fix versions

Affects versions

Priority

Minor
Configure