Difference between revisions of "Redesigning COMPANIONLIST and Companion Leveladjustment"
LegacyKing (talk | contribs) (→COMPANIONGROUP:x|y) |
LegacyKing (talk | contribs) (→Old Proposal) |
||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
+ | |||
+ | == Intro to new Proposal == | ||
+ | |||
+ | Using COMPANIONTYPE will allow creatures to alter the Effective Master Level based upon any method we need. Does not alter COMPANIONLIST to be deprecated or require conversion. COMPANIONTYPE will be added to COMPANIONLIST. | ||
+ | |||
+ | Cheers, | ||
+ | [[User:LegacyKing|LegacyKing]] 09:37, 10 March 2012 (EST) | ||
+ | |||
+ | == Old Proposal == | ||
+ | |||
+ | Proposal Rejected after looking at the various core books, they are to arbitrary to take a standard formula approach, hence it'd be more work and effort for essentially no gain at this point. [[User:LegacyKing|LegacyKing]] 09:28, 10 March 2012 (EST) | ||
+ | |||
== Proposal Intro == | == Proposal Intro == | ||
This is a redesign of How to Assign Companions to and Assign them to their groups and how to adjust individual creatures | This is a redesign of How to Assign Companions to and Assign them to their groups and how to adjust individual creatures | ||
Line 19: | Line 31: | ||
=== COMPANIONGROUP:x|y === | === COMPANIONGROUP:x|y === | ||
− | ::Variables Used (x): Text ( | + | ::Variables Used (x): Text (Name of the COMPANIONGROUP) |
::Variables Used (y): Text (Race Name) | ::Variables Used (y): Text (Race Name) | ||
− | ::Variables Used (y): COMPANIONTYPE= | + | ::Variables Used (y): COMPANIONTYPE=Text |
− | ::Variables Used (y): RACESUBTYPE= | + | ::Variables Used (y): RACESUBTYPE=Text |
− | ::Variables Used (y): RACETYPE= | + | ::Variables Used (y): RACETYPE=Text |
− | |||
:NOTES: | :NOTES: | ||
− | ::COMPANIONTYPE= | + | ::COMPANIONTYPE=Text (Listed Companion Type would be available as part of the COMPANIONGROUP) |
− | ::RACETYPE= | + | ::RACETYPE=Text (Listed Race Type would be available as part of the COMPANIONGROUP) |
− | ::RACESUBTYPE= | + | ::RACESUBTYPE=Text (Listed Race Sub Type would be available as part of the COMPANIONGROUP) |
:Example: | :Example: | ||
::'''COMPANIONGROUP:Animal Companion|Dog|Fox''' | ::'''COMPANIONGROUP:Animal Companion|Dog|Fox''' | ||
− | ::''Would assign 'Dog' and 'Fox' to the 'Animal Companion' | + | ::''Would assign 'Dog' and 'Fox' Race to the 'Animal Companion' COMPANIONGROUP'' |
::'''COMPANIONGROUP:Mystical Mount|COMPANIONTYPE=Special Mount''' | ::'''COMPANIONGROUP:Mystical Mount|COMPANIONTYPE=Special Mount''' | ||
− | ::''Would assign any race with the 'Special Mount' | + | ::''Would assign any race with the COMPANIONTYPE of 'Special Mount' to the 'Mystical Mount' COMPANIONGROUP'' |
− | That takes care of the replacement token for COMPANIONLIST. Next we need to redo how the Master Level is adjusted. | + | That takes care of the replacement token for COMPANIONLIST. Next we need to redo how the Master Level is adjusted. Tom has made a proposal for that based upon CR. |
=== Tom's Proposal === | === Tom's Proposal === | ||
Line 66: | Line 77: | ||
By Andrew - Only one issue I see thus far, we currently use variables (and in some cases) multiple variables for the same 'Group'. We'd need to be able to specify WHAT is being affected by the -3 Effective Levels we are citing. | By Andrew - Only one issue I see thus far, we currently use variables (and in some cases) multiple variables for the same 'Group'. We'd need to be able to specify WHAT is being affected by the -3 Effective Levels we are citing. | ||
− | ::'''COMPANIONGROUP:'''Animal Companion <> '''BASECR:'''1 <> '''MASTERVAR | + | ::'''COMPANIONGROUP:'''Animal Companion <> '''BASECR:'''1 <> '''MASTERVAR:CompLevel|3''' |
− | ::'''COMPANIONGROUP:'''Mystical Mount <> '''BASECR:'''2 <> '''MASTERVAR | + | ::'''COMPANIONGROUP:'''Mystical Mount <> '''BASECR:'''2 <> '''MASTERVAR:SMLvl|3''' |
− | ''This is imperative as the CompanionMod list isn't set based upon a Class Level per se, but a variable that is based upon a class level, so other classes may bonus that variable. Animal Companions are using CompLevel, other critters use 'SMLevel' or 'FSLevel', so having a define file or gamemode section file to set the exact 'variable' used will be required, cause in some cases I do not want all the vars assigned to a type to be reduced, they may have another function.'' | + | ''This is imperative as the CompanionMod list isn't set based upon a Class Level per se, but a variable that is based upon a class level, so other classes may bonus that variable. Animal Companions are using CompLevel, other critters use 'SMLevel' or 'FSLevel', so having a define file or gamemode section file to set the exact 'variable' used will be required, cause in some cases I do not want all the vars assigned to a type to be reduced, they may have another function. '' |
+ | |||
+ | (1) We need to be able to set a BASE Value (CR works in some cases), but not all. | ||
+ | (2) We need to tall PCGen what Var to be adjusting 'MASTERVAR'. | ||
''The second wrench, some games may not even use CR for their factor, it may be another value - so having a flexible system in place to handle exceptions might be something to consider. I only cited the RSRD rules as that's the structure we have in place. [[User:LegacyKing|LegacyKing]] 05:15, 10 March 2012 (EST)'' | ''The second wrench, some games may not even use CR for their factor, it may be another value - so having a flexible system in place to handle exceptions might be something to consider. I only cited the RSRD rules as that's the structure we have in place. [[User:LegacyKing|LegacyKing]] 05:15, 10 March 2012 (EST)'' | ||
+ | |||
+ | ''With that in mind, here is a revision mock:'' | ||
+ | |||
+ | ::'''COMPANIONGROUP:'''Animal Companion <> '''BASEVALUE:CR|1''' <> '''MASTERVAR:CompLevel''' <> '''VARPENALTY:3''' | ||
+ | |||
+ | Our tags and a quick explanation: | ||
+ | :COMPANIONGROUP:<Sets the name of the group we are defining for this line> | ||
+ | :BASEVALUE:<object, or variable name>|<Number that sets the starting value> | ||
+ | :MASTERVAR:<Name of the Var, Class, etc that PCGen is already using to determine benefits for the Companion> | ||
+ | :VARPENALTY:<number to decrease the Master Var if the 'BASEVALUE' changes | ||
== Back to Tom == | == Back to Tom == |
Latest revision as of 22:38, 9 March 2012
Contents
Intro to new Proposal
Using COMPANIONTYPE will allow creatures to alter the Effective Master Level based upon any method we need. Does not alter COMPANIONLIST to be deprecated or require conversion. COMPANIONTYPE will be added to COMPANIONLIST.
Cheers, LegacyKing 09:37, 10 March 2012 (EST)
Old Proposal
Proposal Rejected after looking at the various core books, they are to arbitrary to take a standard formula approach, hence it'd be more work and effort for essentially no gain at this point. LegacyKing 09:28, 10 March 2012 (EST)
Proposal Intro
This is a redesign of How to Assign Companions to and Assign them to their groups and how to adjust individual creatures
COMPANIONLIST would need to be deprecated to remove the FOLLOWERADJUSTMENT
New Token Needed - Since COMPANIONLIST cannot be re0used we need a tag to replace that function. I'd Propose 'COMPANIONGROUP'; other suggestions:
- COMPANIONTYPE (This is in another proposal for assigning races to a Type List)
- COMPANIONS
- COMPANION
- COMPANIONCATEGORY
- COMPANIONSELECT
- COMPANIONASSIGN
Other?
For the proposal I'm going to use COMPANIONGROUP.
COMPANIONGROUP:x|y
- Variables Used (x): Text (Name of the COMPANIONGROUP)
- Variables Used (y): Text (Race Name)
- Variables Used (y): COMPANIONTYPE=Text
- Variables Used (y): RACESUBTYPE=Text
- Variables Used (y): RACETYPE=Text
- NOTES:
- COMPANIONTYPE=Text (Listed Companion Type would be available as part of the COMPANIONGROUP)
- RACETYPE=Text (Listed Race Type would be available as part of the COMPANIONGROUP)
- RACESUBTYPE=Text (Listed Race Sub Type would be available as part of the COMPANIONGROUP)
- Example:
- COMPANIONGROUP:Animal Companion|Dog|Fox
- Would assign 'Dog' and 'Fox' Race to the 'Animal Companion' COMPANIONGROUP
- COMPANIONGROUP:Mystical Mount|COMPANIONTYPE=Special Mount
- Would assign any race with the COMPANIONTYPE of 'Special Mount' to the 'Mystical Mount' COMPANIONGROUP
That takes care of the replacement token for COMPANIONLIST. Next we need to redo how the Master Level is adjusted. Tom has made a proposal for that based upon CR.
Tom's Proposal
DEPRECATE COMPANIONLIST
- with the intention of completely removing FOLLOWERADJUSTMENT
Why can't we do:
- COMPANIONGROUP:Animal Companion|Bat|Fox|Wolverine
and then in the Game Mode (or something like that) define the rules for the adjustment of the masters effective level, or variable used like this:
- COMPANIONGROUP:Animal Companion <> BASECR:1 <> ECLINCREMENT:3
- COMPANIONGROUP:Mystical Mount <> BASECR:2 <> ECLINCREMENT:3
That way, we know for each additional CR beyond 1 (for Animal Companion), we know the PC has to be 3 levels higher. That is, after all, how the rules are written!
This:
- (1) Does not require any changes to Races or Templates
- (2) Actually simplifies and consolidates the COMPANIONLIST tokens there today.
- (3) Keeps us from adding yet _more_ variables to our data (which take a while to calculate with every change)
- (4) Gives us a check in the LST files that the items we are using in COMPANIONLIST are actually valid (and not misspelled) - since we have a master source from the Game Mode file.
Andrew's monkey wrench
By Andrew - Only one issue I see thus far, we currently use variables (and in some cases) multiple variables for the same 'Group'. We'd need to be able to specify WHAT is being affected by the -3 Effective Levels we are citing.
- COMPANIONGROUP:Animal Companion <> BASECR:1 <> MASTERVAR:CompLevel|3
- COMPANIONGROUP:Mystical Mount <> BASECR:2 <> MASTERVAR:SMLvl|3
This is imperative as the CompanionMod list isn't set based upon a Class Level per se, but a variable that is based upon a class level, so other classes may bonus that variable. Animal Companions are using CompLevel, other critters use 'SMLevel' or 'FSLevel', so having a define file or gamemode section file to set the exact 'variable' used will be required, cause in some cases I do not want all the vars assigned to a type to be reduced, they may have another function.
(1) We need to be able to set a BASE Value (CR works in some cases), but not all. (2) We need to tall PCGen what Var to be adjusting 'MASTERVAR'.
The second wrench, some games may not even use CR for their factor, it may be another value - so having a flexible system in place to handle exceptions might be something to consider. I only cited the RSRD rules as that's the structure we have in place. LegacyKing 05:15, 10 March 2012 (EST)
With that in mind, here is a revision mock:
- COMPANIONGROUP:Animal Companion <> BASEVALUE:CR|1 <> MASTERVAR:CompLevel <> VARPENALTY:3
Our tags and a quick explanation:
- COMPANIONGROUP:<Sets the name of the group we are defining for this line>
- BASEVALUE:<object, or variable name>|<Number that sets the starting value>
- MASTERVAR:<Name of the Var, Class, etc that PCGen is already using to determine benefits for the Companion>
- VARPENALTY:<number to decrease the Master Var if the 'BASEVALUE' changes
Back to Tom
(*Note: Open to having this more than Game Mode, as I know we are trying to get away from things solely in game mode. So we can do Game Mode plus have an additional file for companionlist by itself, or Game Mode plus have an additional file that can load various types as we transfer things out of Game Mode - up for discussion).
So the key question here is:
Are there any sources or creatures that VIOLATE the rules as written and therefore would break with the above implementation that assumes everything follows the rules?
TP.
Follow up / Comments
- Andrew's Reply: In eclipse I am allowed to purchases a Template (+2 ECL) for the express purposes of decreasing the CR for the Level Adjustment Factor by 1 or 2 (Depending on the GM, but let's say 1 for now).
- Tom's Reply: I was kinda expecting these types of exceptions.
We can add COMPANIONECLBONUS:<integer> as a new Template token. (obviously name up for debate), which will add that number to the ECL before the calculation is done. ...or even COMPANIONCR:<integer> as a new Race/Template token that can be applied to certain races in order to modify the CR solely during the calculation done for COMPANIONGROUP. (again, name up for debate)
Andrew's Reply: Tom - Any reason we wouldn't allow a JEP Var in place of the Integer? I know static values are easier on processing, but there might be a case where having a formula in a special case would be handy LegacyKing 16:21, 9 March 2012 (EST)