One player reported when he was outside the core sector trying to view the description of the ability, "Deploy Planet-Killer Device". His game crashed.
This's his error:
90468 [Thread-4] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.campaign.econ.abilities.Deploy_Planet_Killer.isUsable(Deploy_Planet_Killer.java:37)
at data.campaign.econ.abilities.Deploy_Planet_Killer.createTooltip(Deploy_Planet_Killer.java:80)
at com.fs.starfarer.ui.newui.G$3.createImpl(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.create(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2Expandable.beforeShown(Unknown Source)
at com.fs.starfarer.ui.Q.showTooltip(Unknown Source)
at com.fs.starfarer.ui.ooOo.super.new(Unknown Source)
at com.fs.starfarer.ui.ooOo.processInput(Unknown Source)
at com.fs.starfarer.ui.Q.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.N.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.newui.AbilityPickerDialog.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.Q.processInput(Unknown Source)
at com.fs.starfarer.ui.v.dispatchEventsToChildren(Unknown Source)
at com.fs.starfarer.ui.v.processInputImpl(Unknown Source)
at com.fs.starfarer.ui.Q.processInput(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.processInput(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.o00000(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:748)
The "Deploy_Planet_Killer.java:37" is "SectorEntityToken closestMarketEntity = closestMarket.getPrimaryEntity();", which is belong to the function "isUsable".
Did this individual make changes to the source code of TASC? Unless I'm missing something, it doesn't appear that the line numbers in the stack trace match up with the default source code for 8.1.4. Line 37 from the 8.1.4 source file is actually "MarketAPI closestMarket = boggledTools.getClosestMarketToEntity(playerFleet);" and line 80 is "Color highlight = Misc.getHighlightColor();", which doesn't call isUsable.
Sir, this is some source code from file "Deploy_Planet_Killer.java". I have noted the error line.
@Override
public void createTooltip(TooltipMakerAPI tooltip, boolean expanded) {
Color highlight = Misc.getHighlightColor();
Color bad = Misc.getNegativeHighlightColor();
LabelAPI title = tooltip.addTitle("Deploy Planet-Killer Device");
float pad = 10.0F;
tooltip.addPara("Use a planet-killer device to destroy a colony. This will severely damage relations with most major factions in the Sector.", pad, highlight, new String[]{});
SectorEntityToken playerFleet = Global.getSector().getPlayerFleet();
MarketAPI targetMarket = boggledTools.getClosestMarketToEntity(playerFleet);
if (this.isUsable()) { // Error Line : (Deploy_Planet_Killer.java:80)
tooltip.addPara("Target colony: %s", pad, highlight, new String[]{targetMarket.getName()});
}
if (playerFleet.isInHyperspace() || Global.getSector().getPlayerFleet().isInHyperspaceTransition() || playerFleet.getStarSystem() == null) {
tooltip.addPara("You cannot deploy a planet-killer device in hyperspace.", bad, pad);
}