allow PREVAR in gamemode miscinfo.st file

Description

It appears that 'PREVAR' is not allowed in the gamemode miscinfo.lst file.
Can this please be added?

I was trying to customise a savage species race to disable the 'gain 1 stat point every 4 levels' due to the stat gains being fixed for the first few levels of monster classes.

Tried adding this to the miscinfo.lst in gamemode:

DEFINE:GAMEMODE_SUPPRESS_BONUSSTATLEVEL|0
#BONUSSTATLEVELSTARTINTERVAL:4|4
BONUSSTATLEVELSTARTINTERVAL:4|4|PREVAREQ:GAMEMODE_SUPPRESS_BONUSSTATLEVEL,

and got JAVA errors:
03:09.549 INFO AWT-EventQueue-0 CharacterFacadeImpl:820 Unnamed 1: Adding level 1 in class Fighter
23:03:13.676 SEVERE AWT-EventQueue-0 Main:544 Uncaught error - ignoring
java.lang.NumberFormatException: For input string: "PREVAREQ:GAMEMODE_SUPPRESS_BONUSSTATLEVEL,0"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at pcgen.core.Globals.bonusParsing(Globals.java:1266)
at pcgen.core.Globals.getBonusStatsForLevel(Globals.java:961)
at pcgen.core.PCClass.addLevel(PCClass.java:1021)
at pcgen.core.PlayerCharacter.incrementClassLevel(PlayerCharacter.java:6865)
at pcgen.core.PlayerCharacter.incrementClassLevel(PlayerCharacter.java:6765)
at pcgen.core.PlayerCharacter.incrementClassLevel(PlayerCharacter.java:5436)
at pcgen.gui2.facade.CharacterFacadeImpl.addCharacterLevels(CharacterFacadeImpl.java:823)
at pcgen.gui2.tabs.ClassInfoTab.addCharacterLevels(ClassInfoTab.java:268)
at pcgen.gui2.tabs.ClassInfoTab$AddClassAction.actionPerformed(ClassInfoTab.java:289)
at pcgen.gui2.util.JTableEx.fireActionEvent(JTableEx.java:128)
at pcgen.gui2.util.JTableEx.access$000(JTableEx.java:45)
at pcgen.gui2.util.JTableEx$1.mouseClicked(JTableEx.java:105)
at java.awt.AWTEventMulticaster.mouseClicked(AWTEventMulticaster.java:270)
at java.awt.Component.processMouseEvent(Component.java:6536)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4534)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Environment

latest autobuild 6.07.08, using 35e

Activity

Show:
Dave Griffin
September 21, 2018, 10:35 PM

Actually - while adding PREVAR’s to the gamemode may or may not be a good idea, it may be better to extend the ‘DONOTADD:x ' functionality to additionally allow suppression of the stat gain and feat gain instead?

Andrew Maitland
September 24, 2018, 6:11 AM

Newer systems I’ve avoided the gamemode files for handling stat and feat progressions completely. For homebrew rules excluding those things, you can create your own gamemode based off whatever system you’re loading, and exclude those progressions.

The other consideration, Skill Points and HD are a feature of class, while stat and feat progression are a feature of complete levels/HD. Using CLASS as a method to omit those is a nasty headache.

Dave Griffin
September 24, 2018, 5:43 PM

The ‘DONOTADD’ works for the situation I’m working on (using ‘Savage Species’ to generate juvenile monster races as players with lower level ECL), so disabling it for the initial levels while only taking the ‘monster class’ levels works, and subsequent class levels would use it normally - so I’m not after rewriting the game mode entirely, just temporarily disabling bits for some class levels… Would your new style be back-portable to 3.5e ? Or does it then require a lot of updates across many files ?

Assignee

Unassigned

Reporter

Dave Griffin

Labels

Theme

None

Epic/Theme

None

Pending User Input

No

Priority

Minor
Configure