Difference between revisions of "Redesigning COMPANIONLIST and Companion Leveladjustment"

From PCGen Wiki
Jump to: navigation, search
Line 1: Line 1:
=Redesign of How to Assign Companions and Assign them to their groups and how to adjust individual creatures=
+
== 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?
  
COMPANIONLIST would need to be deprecated to remove the FOLLOWERADJUSTMENT
+
For the proposal I'm going to use COMPANIONGROUP.
  
  
New Token Needed
+
=== COMPANIONGROUP:x|y ===
  
 +
::Variables Used (x): Text (Group Type)
 +
::Variables Used (y): Text (Race Name)
 +
::Variables Used (y): Text (COMPANIONTYPE=y)
 +
::Variables Used (y): Text (RACESUBTYPE=y)
  
COMPANIONGROUP:x|y
+
:Example:
 +
::'''COMPANIONGROUP:Animal Companion|Dog|Fox'''
 +
::''Would assign 'Dog' and 'Fox' to the 'Animal Companion' group''
  
* Variables Used (x): Text (Group Type)
+
::'''COMPANIONGROUP:Mystical Mount|COMPANIONTYPE=Special Mount'''
* Variables Used (y): Text (Race Name)
+
::''Would assign any race with the 'Special Mount' type to the 'Mystical Mount' group''
* Variables Used (y): Text (COMPANIONTYPE=y)
 
* Variables Used (y): Text (RACESUBTYPE=y)
 
  
That takes care of the replace 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.
  
==Insert Tom's Proposal==
+
=== Tom's Proposal ===
  
DEPRECATE COMPANIONLIST - with the intention of completely removing FOLLOWERADJUSTMENT
+
DEPRECATE COMPANIONLIST
 +
:with the intention of completely removing FOLLOWERADJUSTMENT
  
 
Why can't we do:
 
Why can't we do:
  
  COMPANIONGROUP:Animal Companion|Bat|Fox|Wolverine
+
:COMPANIONGROUP:Animal Companion|Bat|Fox|Wolverine
  
and then in the Game Mode (or something like that) define:
+
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:'''Animal Companion <> '''BASECR:'''1 <> '''ECLINCREMENT:'''3
 
+
:'''COMPANIONGROUP:'''Mystical Mount <> '''BASECR:'''2 <> '''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!
 
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:
 
This:
* (1) Does not require any changes to Races or Templates
+
:(1) Does not require any changes to Races or Templates
* (2) Actually simplifies and consolidates the COMPANIONLIST tokens there today.
+
:(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)
+
:(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.
+
:(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:
 +
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.''
  
 +
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.
  
 
(*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).
 
(*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).
Line 48: Line 73:
 
TP.
 
TP.
  
 
+
===== Follow up / Comments =====
  
 
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).
 
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).
I was kinda expecting these types of exceptions.
+
: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 COMPANIONLIST. (again, name up for debate)
+
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)
  
 
''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 [[User:LegacyKing|LegacyKing]] 16:21, 9 March 2012 (EST)''
 
''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 [[User:LegacyKing|LegacyKing]] 16:21, 9 March 2012 (EST)''

Revision as of 16:17, 9 March 2012

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 (Group Type)
Variables Used (y): Text (Race Name)
Variables Used (y): Text (COMPANIONTYPE=y)
Variables Used (y): Text (RACESUBTYPE=y)
Example:
COMPANIONGROUP:Animal Companion|Dog|Fox
Would assign 'Dog' and 'Fox' to the 'Animal Companion' group
COMPANIONGROUP:Mystical Mount|COMPANIONTYPE=Special Mount
Would assign any race with the 'Special Mount' type to the 'Mystical Mount' group

That takes care of the replacement token for COMPANIONLIST. Next we need to redo how the Master Level is adjusted.

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:

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.

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.

(*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

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)

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)