SRD 3.5 - Max ranks should be LEVEL+3 if skill was ever class skill

Description

Cannot add Cross-Class ranks to a skill after adding Class ranks.
To reproduce.
Download pcgen 6.02.1_full.zip
Extract the files.
Start Pcgen and select the SRD 3.5 (I chose the for GMs version)

Create a level 1 wizard., with 4 ranks in Spellcraft
Add two levels of Fighter
Attempt to add a rank to Spellcraft - you cannot.

From the 35e srd (skills I rtf)

Regardless of whether a skill is purchased as a class skill or a cross-class skill, if it is a class skill for any of your classes, your maximum rank equals your total character level + 3.

Environment

Windows 7, java version "1.6.0_45"

Activity

Show:
JonnyW
June 10, 2014, 7:08 AM

Tried this with a 1.7 version of Java. Results are the same.

Tom Parker
June 16, 2014, 9:40 AM

CharacterLevelsFacadeInfo.scanForwardforLevelToBuySkill thinks the max rank is 2.5 when dealing with Fighter level 2, not realizing that it's 4 from Wizard + 0.5 from Fighter... so the logic in that code is incorrect.

SkillRankSpinnerModel.getNextValue() is also wrong (findNextLevelForSkill returns an in correct answer), since it sees points in Wizard-1, so returns the next value as 5, not 4.5.

Tom Parker
June 16, 2014, 9:41 AM

James, can you look at how complicated this should be to fix? I'm hesitant to go this deep on the Facades without some insight as to potential issues I may find and guidelines for the design.

James Dempsey
June 19, 2014, 2:33 PM

Fortunately I have some comprehensive unit tests for that code and have just been able to reproduce the issue with a further test.

James Dempsey
June 21, 2014, 4:20 PM

The previously class rule is now accounted for for max ranks.

Fixed

Assignee

James Dempsey

Reporter

JonnyW

Labels

Theme

None

Epic/Theme

None

Pending User Input

None

Fix versions

Affects versions

Priority

Major
Configure