Conditional Skill Proposal

From PCGen Wiki
Jump to: navigation, search

I think this is nice and clear, but I've been wrong before.

This is the working-spec for Conditional skills. I'm on my second version, hence the Mk2 in the header.

Tir Gwaith LST Chimp

Skill Conditionals Spec

I) LST Tags (in skills.lst)

  • A) CONDITIONAL:<primary skill name>
  • 1) Makes this a Conditional skill that is checked in UI (see part XXX)
  • 2) Links the skill to the primary skill, useful for RANKS, and listing on OS
  • a) Grabs all BONUS:SKILL|<primary>|X and applies it to the skill
  • b) Not currently looking at grabbing RANKS from primary (see B)
  • B) RANKS:<YES/NO/INHERIT/PRIMARY>
  • 1) YES is Default - user can purchase skill ranks with point pool
  • 2) NO - user can not purchase any ranks in the skill
    • Note: BONUS:SKILLRANK would still work, limited by Max Rank as usual
  • 3) INHERIT/PRIMARY -
  • a) Haven't come up with a good name for this option, Same as NO, but grabs RANKS from parent skill.
  • b) Basically, the RANK for the skill is always the same as the parent
  • c) To allow Ranks to be added, but also use primary skill ranks, use BONUS:SKILLRANK and allow RANKS:YES
  • C) Specifically not using TYPE tag to keep it off the TYPE tree, etc
  • 1) these entries should not have normal TYPE tags to prevent BONUS:SKILL|TYPE.x| from applying twice
  • 2) Suggest using TYPE:Conditional, with possibly HIDETYPE:Conditional
  • D) No coded limitation on skill name, suggested (release standard) would be to have <Primary name> (<condition-name>)

Examples

  • 1) Climb (Using Rope)
    • - Synergy from Use Rope, etc.
  • 2) Appraise (Woodworking)
    • - Synergy from appropriate Craft skill...
    • - Yes, there would be one per Craft skill for this...
  • 3) Use Magic Device (Scrolls)
    • - Synergy from Decipher Script, etc
  • 4a) Use Rope (Bind someone)
    • - Synergy from Escape Artist
  • 4b) Escape Artist (from rope bonds)
    • - synergy from Use Rope
  • Stone Cunning to Search, Craft, etc...

II) UI (skills tab)

  • A) Selection on Skills Tab, near Include Skills, to include Conditionals or not
  • 1) Either Checkbox for Conditionals, or dropdown, or options for more
  • 2) Depends on Real Estate available, or what users want (so respond to this if you have a preference)
  • a) Zaister is leaning towards a checkbox currently.
  • B) Do not show or gray out if there are no skills loaded have CONDITIONAL tag in them.

III) Core

  • A) Preference to turn compare to Primary skill Modifier Off (default On)
  • B) On skill listing, for both Export (before going to OS, so no effect there), Preview, and UI tab
  • 1) compare CONDITIONAL skills final modifier to Primary Skill's modifier.
  • 2) If different, display Conditional skill (displays anyway if Preference is checked)

Putting it all together

AM - I propose the following changes:

  • CONDITIONAL would become PARENTSKILL - it's more concise in what we want to achieve
  • RANKS:INHERIT|PRIMARY would become 'RANKS:INHERIT|PARENTSKILL'

INHERIT would be expanded to have '|z' with z being:

  • PARENTSKILL - grabs the ranks from the listed parent skill
  • <Skill Name> - grabs the ranks from another skill (Useful for the odd skill that gains more than one source)
  • I'd also like to add 'CONDITIONAL' to the valid selections in the VISIBLE tag.
    • Display this skill if Parent and Child Skill aren't the same value. This would allow conditional skills to display even if the parent skill does not have any skill ranks listed.
  • You could figure out appends for CONDITIONAL if required:
  • CONDITIONAL|PARENTSKILL - default value, lists the skill if the Parent Skill is different value
  • CONDITIONAL|HASRANKS - display only if the parent skill mismatch also includes skill ranks (Pathfinder requires this function) JD: See http://jira.pcgen.org/browse/CODE-467 which disagrees with this statement
    • Requires Parent Skill to have ranks
  • CONDITIONAL|PRExxx (Display the skill if character has meets the listed PRExxx)


In a Skills File we would have this: (Each Line represents a tab)

  • Knowledge (Arcane/Concentration)
    • TYPE:OutputSkill
    • PARENTSKILL:Knowledge (Arcane)
    • RANKS:INHERIT|PARENTSKILL
    • VISIBLE:CONDITIONAL

Knowledge (Arcane/Concentration) will have the same bonuses as Knowledge (Arcane), will also grab the skill ranks from Knowledge (Arcane) [It's the ParentSkill], it'll be visible conditionally if there is a Mismatch in the values of the parent skill.


These are my thoughts, feel free to add upon or comment.

JD: I'm struggling to see how some of this would work. Why would we not want to inherit ranks from the parent skill? If you don't want skill ranks from a parent then really it shouldn't be bound to the parent at all. In that case, should we instead be looking at a SKILLTYPE:CHILD vs a SKILLTYPE:NONRANK (no idea what to call it as I don;t understand the usecase) or something similar?

If we want to grab ranks from a different skill, would using BONUS:SKILLRANK be more flexible and more readable?