Subsystem Isolation
This is a working document to show which items have NOT been isolated from PlayerCharacter, and considerations and issues which make that conversion non-trivial (meaning more than a 30-second job, not necessarily "difficult")
Prerequisites
- PreAbilityTester: Awaiting Ability (non-clone) rebuild
 - PreApplyTester: Awaiting TEMPBONUS proposal on _exp
 - PreAttackTester: Epic cache complexity
 - PreCheckBaseTester: Epic cache complexity
 - PreCheckTester: Epic cache complexity
 - PreClassTester: PlayerCharacter.isSpellCaster
 - PreCSkillTester: PlayerCharacter.isClassSkill (and why is a "CSKILL for any class" so widely used?)
 - PreEquipTester: Equipment.getEffectiveWieldCategory
 - PreFeatTester: Awaiting Ability (non-clone) rebuild
 - PreHPTester: PlayerCharacter.hitPoints
 - PreRuleTester: RECURSIVE? Sub-prerequisites?
 - PreSkillMultTester: SkillRankControl.getTotalRank (dependent on RankedSkillFacet.18890.patch)
 - PreSkillTester: SkillRankControl.getTotalRank (dependent on RankedSkillFacet.18890.patch)
 - PreSpecialAbilityTester: Consolidation of Special Abilities to one Facet
 - PreSpellDescriptorTester: PlayerCharacter.aggregateSpellList
 - PreSpellResistanceTester: PlayerCharacter.calcSR
 - PreSpellSchoolSubTester: PlayerCharacter.aggregateSpellList
 - PreSpellSchoolTester: PlayerCharacter.aggregateSpellList
 - PreSpellTester: PlayerCharacter.aggregateSpellList & PlayerCharacter.getAutoSpells
 - PreSpellTypeTester: PlayerCharacter.countSpellCastTypeLevel
 - PreUnarmedAttackTester: PCClass.baseAttackBonus (which depends on PCClass.getBonusTo ...)
 - PreVariableTester: PlayerCharacter.getVariableValue & Equipment.getVariableValue
 
Primitives
- Domain/Deity: Technically PrereqHandler, but should be rebuilt to have "domainsAllowedByDeity()" on PlayerCharacter
 - Equipment/Wield: WieldCategory.checkWield ... Equipment.getEffectiveWieldCategory
 - PObject/Feat: PlayerCharacter.getFeatNamedAnyCat (which is really Awaiting Ability (non-clone) rebuild)
 - Spell/All: PlayerCharacter.getPCBasedLevelInfo, PlayerCharacter.getCharacterSpells, Formula resolution
 - Spell/ClassList: SpellLevel.levelForKey, PlayerCharacter.getCharacterSpells, Formula resolution
 - Spell/DomainList: SpellLevel.levelForKey, PlayerCharacter.getCharacterSpells, Formula resolution
 - Spell/Prohibited: SpellCountCalc.isProhibited
 - Spell/SpellBook: PlayerCharacter.hasSpellInSpellBook
 - Spell/SpellType: PlayerCharacter.getPCBasedLevelInfo, PlayerCharacter.getCharacterSpells, Formula resolution
 
Qualifiers
(All are dependent on PrimitiveChoiceSet being driven by PlayerCharacter)
- Ability/PC: PlayerCharacter.getAbilityList (which is really Awaiting Ability (non-clone) rebuild)
 - WeaponProf/Spellcaster: PlayerCharacter.isSpellCaster
 - PObject/Qualified: PlayerCharacter.isQualified
 
PC Terms
Note: Probably not a complete list of terms/Formula objects
- Accheck: PlayerCharacter.getEquipmentOfType & Equipment.acCheck
 - ArmourAccheck: PlayerCharacter.getEquipmentOfType & Equipment.acCheck
 - Bab: PlayerCharacter.baseAttackBonus (Epic cache complexity)
 - BaseSpellStat: PlayerCharacter.getClassKeyed (PCClass clone elimination) & PlayerCharacter.getBaseSpellStatBonus
 - BL: PlayerCharacter.getTotalBonusTo
 - BonusLang: PlayerCharacter.getBonusLanguageCount & PlayerCharacter.getDetailedAssociationCount (choose count on the built in LANGBONUS object)
 - CasterLevelClass: PlayerCharacter.getDomainSource, PlayerCharacter.getTotalBonusTo, PlayerCharacter.getTotalCasterLevelWithSpellBonus
 - CasterLevelRace: PlayerCharacter.getTotalCasterLevelWithSpellBonus
 - CasterLevelTotal: PlayerCharacter.getTotalBonusTo, PlayerCharacter.getTotalCasterLevelWithSpellBonus
 - CastTimesAtWill: ---PCD does not yet support with Spell---
 - clBeforeLevel: PlayerCharacter.getClassKeyed (PCClass clone elimination) & PlayerCharacter.getLevelBefore
 - cl: PlayerCharacter.getClassKeyed (PCClass clone elimination)
 - countattacks: PlayerCharacter.getNumAttacks ... PlayerCharacter.baseAttackBonus (Epic cache complexity)
 - countcontainers: PlayerCharacter.getEquipmentListInOutputOrder
 - counteqtype ... (left off here)