JohN100x1 / IsekaiMod

An unbalanced gameplay mod for Pathfinder: Wrath of the Righteous
MIT License
19 stars 10 forks source link

Workaround for oracle and bloodrager legacy progression limitation #144

Open JohN100x1 opened 1 year ago

JohN100x1 commented 1 year ago

From the blueprints, it appears that the progressions are limited in two ways (from my investigation so far).

The first is the Groups field of the BlueprintProgression. This field ensures that only one feature of the same group is added if two features have the same group.

The second is the PrerequisiteNoFeature component which requires a specific feature NOT to be selected in order for the current feature to be able to be selected. This means choosing one progression excludes the other.

Patching to remove these fields may break the functionality of the existing base game so I think one way to workaround this is to create a deepcopy clone of the progressions without these fields/components specified. Something to think about for a 5.x.0 release.

kjk001 commented 1 year ago

Actually if I remember my tests back then correctly multiple features of the same group could be added with little problem. However the group is responsible for where in the levelup screen a feature or selection is supposed to be shown and the game didn't like when certain groups were crossed in the same selection and doesn't allow selecting them if the group of the item does not fit with the group of the selection. That is why we have our own Bloodline Selection as a wrapper around the normal Bloodline Selection to remove the FeatureGroup.BloodLine. Alternatively we could also make a wrapper around the feat selections that also has that flag and then the text below the feat when leveling up would say Bloodline, like it does for Sorcerer, instead of feat.

The PrerequisiteNoFeature can also be easily ignored just by setting bp.IgnorePrerequisites = true;.

The much bigger problem was what happened when you set bp.GiveFeaturesForPreviousLevels = false; to true on the legacy progression. When I did that and then picked the legacy at a level above level 1 it tended to allow no valid selections for the past level features. Originally I considered if this was because there were progressions inside progressions inside progressions. But that Levelup Recursion works just fine for The Kineticist and other Classes that have something similiar.

Setting that flag to false was simply the easiest solution at the time. Given that they since then made a few patches to the base game just changing that flag might work now though.

I will have to revisit this, along with the entire rest of my code though rather than focusing on any new features, anyway because I have to admit that my testing for the last two releases was too shody since the fact that I broke the adding of known spells when moving everything to a centralized method by using == as a comparer on a non integer variable completely slipped past me.