Redesigning COMPANIONLIST and Companion Leveladjustment

From PCGen Wiki
Jump to: navigation, search

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)