So keep in mind that bootstrap conditions can only test for three things:
- Fields on the parent thing that's doing the bootstrapping
- Tags on the parent thing that's doing the bootstrapping
- Tags on the hero
So you need to have the main ability set up one of the above items to test very early on (as early in First as possible), based on whether different pact boons are enabled.
What I would do is run a script on the main ability at First 100 that looks for each Pact Boon. Then it sets a field on itself appropriately.
Here's the basic script. Let's say we're running it at First 100.
Code:
~If Pact of the Blade is present on the hero, set my abValue to 1
if (hero.childlives[cWlkPacBla] <> 0) then
field[abValue].value = 1
endif
Do the same thing for each qualifying Pact Boon, setting abValue to a different number for each Pact Boon. Specials and custom abilities all have abValue, abValue2, 3, 4, and 5 available to carry values like this, so you can use any of them (or all, if you want to test for multiple things independently of each other). Just make sure your ability isn't using them for something else.
Then in your bootstraps, test for the appropriate abValue in the Conditions. For the extra ability we only get for having Pact of the Blade, we test for an abValue of 1, since we said to set it to 1 if Pact of the Blade is present. Run sometime after the script, like First 101:
Code:
fieldval:abValue = 1
Assuming I understood what you're getting at, that should get you where you're going.
EDIT: ALSO! I would recommend programming the four special abilities as "Custom Ability"'s. I've found there's some wonkiness when bootstrapping Class Specials to things other than a Class. There're ways to push tags to activate things, and you can see how I did that in the Tasha's Variant Class features that replace other class features. But it's probably not an amount of effort that's necessary for your purposes here.