Data
  1. Data
  2. DATA-493

pathfinder Two-Handed Fighter not showing Weapon Training bonus

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 5.17.9
    • Fix Version/s: 5.17.12
    • Component/s: Pathfinder Game System
    • Labels:
      None

      Description

      using Pathfinder + APG, I created a Fighter, added Two-Handed Fighter archetype, and advanced to L7.
      Went back filling in feats etc, equipment, etc. and went to add Weapon Training.
      I'd already added Weapon Focus (Greatsword) and equipped one, and now added Weapon Training (Heavy Blades).

      Two-Handed Fighter is supposed to limit bonus to weapons wielded two-handed; Greatsword is both Two-handed and Heavy.
      Should see an extra +1 Atk, +1 Dam, but there is no change (nor when removed, re-added,...)

      (There could be an issue with weapons which can be wielded one- or two-handed, but the stat blocks already include 1HP, 1HP, 2H, etc.)

        Issue Links

          Activity

          Hide
          Paul Shipley
          added a comment -

          I've always had a problem with Weapon Training (for any Fighter, even straight from Core). The bonus is generally not applied if you've been using pcgen for working with any other characters and/or on first creation. I can replicate the issue in those circumstances, but if I save, shut down pcgen completely, and then reload I have the bonuses correctly applied.

          OP: Please confirm that the issue persists after a clean start on pcgen and appropriate character load.

          Show
          Paul Shipley
          added a comment - I've always had a problem with Weapon Training (for any Fighter, even straight from Core). The bonus is generally not applied if you've been using pcgen for working with any other characters and/or on first creation. I can replicate the issue in those circumstances, but if I save, shut down pcgen completely, and then reload I have the bonuses correctly applied. OP: Please confirm that the issue persists after a clean start on pcgen and appropriate character load.
          Hide
          Saxum Caribetum
          added a comment -

          I simplified this to reproduce more clearly:
          1) create a human Str 16 Ftr7 add Weapon Training (Axes), equip with battleaxe, longsword, greataxe, greatsword (all carried)

            • weapon training is added correctly**

          2) create a human Str 16 Ftr1, add "Two-handed fighter" archetype, advance by 6 levels. Equip with battleaxe, longsword, greataxe, greatsword (all carried) [i.e. only difference is the Archetype]

            • weapon training does not show**

          save both characters
          close and restart, open (1) - weapon training shows.
          close and restart, open (2) - *** Exception***
          C:\Programs\PCGen\PCGen5179>"c:\Program Files (x86)\Java\jre6\bin\java.exe" -Dswing.aatext=true -Xms1024m -Xmx1024m -jar pcgen.jar
          18:11:43.849 SEVERE AWT-EventQueue-1 ExportHandler:1978 Error replacing WEAPON.2.THDAMAGE
          java.lang.NullPointerException
          at pcgen.util.Logging.debugPrint(Logging.java:152)
          at pcgen.core.term.BasePCTermEvaluator.convertToFloat(BasePCTermEvaluator.java:83)
          at pcgen.core.term.BasePCTermEvaluator.resolve(BasePCTermEvaluator.java:64)
          at pcgen.core.VariableProcessorEq.getInternalVariable(VariableProcessorEq.java:90)
          at pcgen.core.VariableProcessor.lookupVariable(VariableProcessor.java:684)
          at pcgen.core.VariableProcessor.processJepFormula(VariableProcessor.java:606)
          at pcgen.core.VariableProcessor.getJepOnlyVariableValue(VariableProcessor.java:197)
          at pcgen.core.VariableProcessor.getVariableValue(VariableProcessor.java:138)
          at pcgen.core.Equipment.getVariableValue(Equipment.java:2182)
          at pcgen.core.Equipment.getVariableValue(Equipment.java:2158)
          at plugin.pretokens.test.PreVariableTester.passes(PreVariableTester.java:71)
          at pcgen.core.prereq.PrereqHandler.passes(PrereqHandler.java:225)
          at pcgen.core.prereq.PrereqHandler.passesAll(PrereqHandler.java:124)
          at pcgen.core.character.WieldCategory.getSwitch(WieldCategory.java:208)
          at pcgen.core.character.WieldCategory.adjustForSize(WieldCategory.java:197)
          at pcgen.core.Equipment.getEffectiveWieldCategory(Equipment.java:5471)
          at pcgen.core.Equipment.isWeaponOutsizedForPC(Equipment.java:5414)
          at pcgen.io.exporttoken.WeaponToken.getDamage(WeaponToken.java:2422)
          at pcgen.io.exporttoken.WeaponToken.getTHDamageToken(WeaponToken.java:1471)
          at pcgen.io.exporttoken.WeaponToken.getWeaponToken(WeaponToken.java:472)
          at pcgen.io.exporttoken.WeaponToken.getToken(WeaponToken.java:210)
          at pcgen.io.ExportHandler.replaceToken(ExportHandler.java:1945)
          at pcgen.io.ExportHandler.replaceLine(ExportHandler.java:1808)
          at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:940)
          at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854)
          at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:918)
          at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854)
          at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:918)
          at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854)
          at pcgen.io.ExportHandler.processLoop(ExportHandler.java:1033)
          at pcgen.io.ExportHandler.loopFOR(ExportHandler.java:970)
          at pcgen.io.ExportHandler.processLoop(ExportHandler.java:1027)
          at pcgen.io.ExportHandler.loopFOR(ExportHandler.java:970)
          at pcgen.io.ExportHandler.write(ExportHandler.java:240)
          at pcgen.gui.tabs.InfoCharacterSheet.updateCharacterInfo(InfoCharacterSheet.java:185)
          at pcgen.gui.tabs.BaseCharacterInfoTab.forceRefresh(BaseCharacterInfoTab.java:70)
          at pcgen.gui.tabs.BaseCharacterInfoTab.refresh(BaseCharacterInfoTab.java:158)
          at pcgen.gui.CharacterInfo$tabChangeListener.stateChanged(CharacterInfo.java:482)
          at javax.swing.JTabbedPane.fireStateChanged(Unknown Source)
          at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source)
          at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source)
          at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source)
          at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source)
          at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source)
          at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source)
          at java.awt.Component.processMouseEvent(Unknown Source)
          at javax.swing.JComponent.processMouseEvent(Unknown Source)
          at java.awt.Component.processEvent(Unknown Source)
          at java.awt.Container.processEvent(Unknown Source)
          at java.awt.Component.dispatchEventImpl(Unknown Source)
          at java.awt.Container.dispatchEventImpl(Unknown Source)
          at java.awt.Component.dispatchEvent(Unknown Source)
          at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
          at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
          at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
          at java.awt.Container.dispatchEventImpl(Unknown Source)
          at java.awt.Window.dispatchEventImpl(Unknown Source)
          at java.awt.Component.dispatchEvent(Unknown Source)
          at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
          at java.awt.EventQueue.access$000(Unknown Source)
          at java.awt.EventQueue$1.run(Unknown Source)
          at java.awt.EventQueue$1.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
          at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
          at java.awt.EventQueue$2.run(Unknown Source)
          at java.awt.EventQueue$2.run(Unknown Source)
          at java.security.AccessController.doPrivileged(Native Method)
          at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
          at java.awt.EventQueue.dispatchEvent(Unknown Source)
          at pcgen.gui.PCGen_Frame1$WaitCursorEventQueue.dispatchEvent(PCGen_Frame1.java:2933)
          at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
          at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
          at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
          at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
          at java.awt.EventDispatchThread.run(Unknown Source)

          after exception Weapon Training is showing.

          close and restart, load (2) *** no exception*** *** weapon training DOES NOT show***

          it appears random whether I get the exception.
          If I do NOT get the exception, I do NOT see Weapon Training with the rchetype;
          if I get a Null Pointer Exception, then after tat resolves, the Weapon Training shows.

          ??? errr.... ???

          Show
          Saxum Caribetum
          added a comment - I simplified this to reproduce more clearly: 1) create a human Str 16 Ftr7 add Weapon Training (Axes), equip with battleaxe, longsword, greataxe, greatsword (all carried) weapon training is added correctly** 2) create a human Str 16 Ftr1, add "Two-handed fighter" archetype, advance by 6 levels. Equip with battleaxe, longsword, greataxe, greatsword (all carried) [i.e. only difference is the Archetype] weapon training does not show** save both characters close and restart, open (1) - weapon training shows. close and restart, open (2) - *** Exception*** C:\Programs\PCGen\PCGen5179>"c:\Program Files (x86)\Java\jre6\bin\java.exe" -Dswing.aatext=true -Xms1024m -Xmx1024m -jar pcgen.jar 18:11:43.849 SEVERE AWT-EventQueue-1 ExportHandler:1978 Error replacing WEAPON.2.THDAMAGE java.lang.NullPointerException at pcgen.util.Logging.debugPrint(Logging.java:152) at pcgen.core.term.BasePCTermEvaluator.convertToFloat(BasePCTermEvaluator.java:83) at pcgen.core.term.BasePCTermEvaluator.resolve(BasePCTermEvaluator.java:64) at pcgen.core.VariableProcessorEq.getInternalVariable(VariableProcessorEq.java:90) at pcgen.core.VariableProcessor.lookupVariable(VariableProcessor.java:684) at pcgen.core.VariableProcessor.processJepFormula(VariableProcessor.java:606) at pcgen.core.VariableProcessor.getJepOnlyVariableValue(VariableProcessor.java:197) at pcgen.core.VariableProcessor.getVariableValue(VariableProcessor.java:138) at pcgen.core.Equipment.getVariableValue(Equipment.java:2182) at pcgen.core.Equipment.getVariableValue(Equipment.java:2158) at plugin.pretokens.test.PreVariableTester.passes(PreVariableTester.java:71) at pcgen.core.prereq.PrereqHandler.passes(PrereqHandler.java:225) at pcgen.core.prereq.PrereqHandler.passesAll(PrereqHandler.java:124) at pcgen.core.character.WieldCategory.getSwitch(WieldCategory.java:208) at pcgen.core.character.WieldCategory.adjustForSize(WieldCategory.java:197) at pcgen.core.Equipment.getEffectiveWieldCategory(Equipment.java:5471) at pcgen.core.Equipment.isWeaponOutsizedForPC(Equipment.java:5414) at pcgen.io.exporttoken.WeaponToken.getDamage(WeaponToken.java:2422) at pcgen.io.exporttoken.WeaponToken.getTHDamageToken(WeaponToken.java:1471) at pcgen.io.exporttoken.WeaponToken.getWeaponToken(WeaponToken.java:472) at pcgen.io.exporttoken.WeaponToken.getToken(WeaponToken.java:210) at pcgen.io.ExportHandler.replaceToken(ExportHandler.java:1945) at pcgen.io.ExportHandler.replaceLine(ExportHandler.java:1808) at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:940) at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854) at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:918) at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854) at pcgen.io.ExportHandler.evaluateIIFChildren(ExportHandler.java:918) at pcgen.io.ExportHandler.evaluateIIF(ExportHandler.java:854) at pcgen.io.ExportHandler.processLoop(ExportHandler.java:1033) at pcgen.io.ExportHandler.loopFOR(ExportHandler.java:970) at pcgen.io.ExportHandler.processLoop(ExportHandler.java:1027) at pcgen.io.ExportHandler.loopFOR(ExportHandler.java:970) at pcgen.io.ExportHandler.write(ExportHandler.java:240) at pcgen.gui.tabs.InfoCharacterSheet.updateCharacterInfo(InfoCharacterSheet.java:185) at pcgen.gui.tabs.BaseCharacterInfoTab.forceRefresh(BaseCharacterInfoTab.java:70) at pcgen.gui.tabs.BaseCharacterInfoTab.refresh(BaseCharacterInfoTab.java:158) at pcgen.gui.CharacterInfo$tabChangeListener.stateChanged(CharacterInfo.java:482) at javax.swing.JTabbedPane.fireStateChanged(Unknown Source) at javax.swing.JTabbedPane$ModelListener.stateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.fireStateChanged(Unknown Source) at javax.swing.DefaultSingleSelectionModel.setSelectedIndex(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndexImpl(Unknown Source) at javax.swing.JTabbedPane.setSelectedIndex(Unknown Source) at javax.swing.plaf.basic.BasicTabbedPaneUI$Handler.mousePressed(Unknown Source) at java.awt.Component.processMouseEvent(Unknown Source) at javax.swing.JComponent.processMouseEvent(Unknown Source) at java.awt.Component.processEvent(Unknown Source) at java.awt.Container.processEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) at java.awt.Container.dispatchEventImpl(Unknown Source) at java.awt.Window.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at pcgen.gui.PCGen_Frame1$WaitCursorEventQueue.dispatchEvent(PCGen_Frame1.java:2933) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) after exception Weapon Training is showing. close and restart, load (2) *** no exception*** *** weapon training DOES NOT show*** it appears random whether I get the exception. If I do NOT get the exception, I do NOT see Weapon Training with the rchetype; if I get a Null Pointer Exception, then after tat resolves, the Weapon Training shows. ??? errr.... ???
          Hide
          Andrew Maitland
          added a comment -

          Linked to CODE-1148 for Code Review

          Show
          Andrew Maitland
          added a comment - Linked to CODE-1148 for Code Review
          Hide
          Paul Shipley
          added a comment -

          Andrew - do you know if the code fix also fixes the OP's problem, or is there still data work to do with a fixed code compile??

          Show
          Paul Shipley
          added a comment - Andrew - do you know if the code fix also fixes the OP's problem, or is there still data work to do with a fixed code compile??
          Hide
          Andrew Maitland
          added a comment -

          If you have the capability - grab the new build and see if you can recreate the issue with the code fix in place. If the issue seems resolved, then great, we set the issue as fixed and the issue goes to OP to verify fix works for him at the next release or he can likewise grab the autobuild. If he verifies it as fixed either he or we can close the issue. Cheers,

          Show
          Andrew Maitland
          added a comment - If you have the capability - grab the new build and see if you can recreate the issue with the code fix in place. If the issue seems resolved, then great, we set the issue as fixed and the issue goes to OP to verify fix works for him at the next release or he can likewise grab the autobuild. If he verifies it as fixed either he or we can close the issue. Cheers,
          Hide
          Paul Shipley
          added a comment - - edited

          The issue the OP is reporting relates to this (new) code bug (CODE-1240). However there are also other issues in DATA relating to this archetype!

          Show
          Paul Shipley
          added a comment - - edited The issue the OP is reporting relates to this (new) code bug ( CODE-1240 ). However there are also other issues in DATA relating to this archetype!
          Hide
          Paul Shipley
          added a comment -

          Ok, I think I have found a reproducible set of steps to generate the Weapon Training bug (CODE-1240) in 5.17.10 - note that this has nothing at all to do with the Two-Handed Fighter archetype and can be generated with a vanilla Fighter and PFCR only.

          However, the archetype does have a problem - it doesn't implement the "Wpn Trg effects only apply to 2H wpns" restriction. I'll see what I can do on that in APG only; I have a suspicion it might need tweaks to PFCR in which case I'll come back for "senior monkey" clearance!

          Show
          Paul Shipley
          added a comment - Ok, I think I have found a reproducible set of steps to generate the Weapon Training bug ( CODE-1240 ) in 5.17.10 - note that this has nothing at all to do with the Two-Handed Fighter archetype and can be generated with a vanilla Fighter and PFCR only. However, the archetype does have a problem - it doesn't implement the "Wpn Trg effects only apply to 2H wpns" restriction. I'll see what I can do on that in APG only; I have a suspicion it might need tweaks to PFCR in which case I'll come back for "senior monkey" clearance!
          Hide
          Andrew Maitland
          added a comment -

          This has been fixed in the code. Verified fixed by me.

          L10 Human Fighter; WF Greatsword, Weapon Training I (Blades/Heavy).
          Attack 12/7, Damage 2d6+1 - these numbers are correct. Saxum please verify for yourself with the autobuild.

          Show
          Andrew Maitland
          added a comment - This has been fixed in the code. Verified fixed by me. L10 Human Fighter; WF Greatsword, Weapon Training I (Blades/Heavy). Attack 12/7, Damage 2d6+1 - these numbers are correct. Saxum please verify for yourself with the autobuild.

            People

            • Assignee:
              Andrew Maitland
              Reporter:
              Saxum Caribetum
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: