got crash at new game start
Spoiler
1048663 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.OfficerLevelupPluginImplMod.pickLevelupSkills(OfficerLevelupPluginImplMod.java:148)
at com.fs.starfarer.rpg.OfficerData.makeSkillPicks(Unknown Source)
at com.fs.starfarer.rpg.OfficerData.levelUp(Unknown Source)
at com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.createOfficer(OfficerManagerEvent.java:381)
at com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.createOfficer(OfficerManagerEvent.java:346)
at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.addCommanderAndOfficer s(FleetFactoryV3.java:866)
at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.createFleet(FleetFactoryV3.java:375)
at com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager.createTradeR outeFleet(EconomyFleetRouteManager.java:587)
at com.fs.starfarer.api.impl.campaign.fleets.EconomyFleetRouteManager.spawnFleet(EconomyFleetRouteManager.java:447)
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager.spawnAndDespawn(RouteManager.java:614)
at com.fs.starfarer.api.impl.campaign.fleets.RouteManager.advance(RouteManager.java:572)
at com.fs.starfarer.api.impl.campaign.CoreScript.advance(CoreScript.java:126)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.save.CampaignGameManager.super(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.dialogDismissed(Unknown Source)
at com.fs.starfarer.ui.N.dismiss(Unknown Source)
at com.fs.starfarer.ui.newui.o0oOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.dismiss(Unknown Source)
at com.fs.starfarer.ui.newui.Objectsuper.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.advance(Unknown Source)
at com.fs.starfarer.ui.v.advanceImpl(Unknown Source)
at com.fs.starfarer.ui.o00OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.advance(Unknown Source)
at com.fs.starfarer.title.TitleScreenState.advance(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
maybe collision with "Skill Rework" http://fractalsoftworks.com/forum/index.php?topic=14502.msg237235#msg237235
but not sure
Okay, just had it happen at something as low as 5, and this is the first time I've thought to check the log >.<
1671189 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.OfficerLevelupPluginImplMod.pickLevelupSkills(OfficerLevelupPluginImplMod.java:148)
at com.fs.starfarer.rpg.OfficerData.makeSkillPicks(Unknown Source)
at com.fs.starfarer.rpg.OfficerData.levelUp(Unknown Source)
at com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.createOfficer(OfficerManagerEvent.java:381)
at com.fs.starfarer.api.impl.campaign.events.OfficerManagerEvent.createOfficer(OfficerManagerEvent.java:346)
at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.addCommanderAndOfficers(FleetFactoryV3.java:866)
at com.fs.starfarer.api.impl.campaign.fleets.FleetFactoryV3.createFleet(FleetFactoryV3.java:375)
at com.fs.starfarer.api.impl.campaign.procgen.themes.RemnantStationFleetManager.spawnFleet(RemnantStationFleetManager.java:63)
at com.fs.starfarer.api.impl.campaign.fleets.SourceBasedFleetManager.advance(SourceBasedFleetManager.java:121)
at com.fs.starfarer.campaign.BaseLocation.advanceEvenIfPaused(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.advance(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Line 184 iirc, it checks if it's less than 4, rather than less than or equal to the config value.
I was close, line 135 has
if (result.size() < 4 && knownSkillCount < maxSkillsPerOfficer) {
instead of (as yours has)
if (result.size() < (skillsAmount+1) && knownSkillCount < maxSkillsPerOfficer) {
EDIT: Changing just those still results in failure. Next up testing whether it was you adding
if (!nonMaxedSkills.isEmpty()) {
EDIT 2: Yup, that stopped it from crashing. Not sure what other effects it'll have though, since it's in essence skipping an entire chunk of code.