One of the users of my mod Junk Yard Dogs is having a crash with the CHM hull mod in it. I've had the mod up for some time now and this is the first time anyone has had this issue with it. I have exhausted my knowledge trying to help him and thought maybe someone more adept with Java could help.
His error Log:
304193 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain - java.lang.NullPointerException
java.lang.NullPointerException
at data.scripts.hullmods.CHM_JYD.applyEffectsBeforeShipCreation(CHM_JYD.java:24)
at com.fs.starfarer.campaign.fleet.FleetMember.updateStats(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.init(Unknown Source)
at com.fs.starfarer.campaign.fleet.FleetMember.<init>(Unknown Source)
at com.fs.starfarer.title.Object.M.o00000(Unknown Source)
at com.fs.starfarer.title.Object.M.render(Unknown Source)
at com.fs.starfarer.coreui.OO0o.super(Unknown Source)
at com.fs.starfarer.ui.newnew.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.impl.StandardTooltipV2.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.ui.v.renderImpl(Unknown Source)
at com.fs.starfarer.ui.o00O.render(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.render(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(Unknown Source)
CHM_JYD code:
package data.scripts.hullmods;
import com.fs.starfarer.api.combat.BaseHullMod;
import com.fs.starfarer.api.combat.MutableShipStatsAPI;
import com.fs.starfarer.api.combat.ShipAPI;
import com.fs.starfarer.api.combat.ShipAPI.HullSize;
import java.awt.Color;
import java.util.HashMap;
import java.util.Map;
public class CHM_JYD extends BaseHullMod {
private static final Map jydcom = new HashMap();
public static final float ARMOR_BONUS = 20f;
public static final float MAINTENANCE_MULT = 0.90f;
static {
jydcom.put(HullSize.FRIGATE, 30f);
jydcom.put(HullSize.DESTROYER, 25f);
jydcom.put(HullSize.CRUISER, 20f);
jydcom.put(HullSize.CAPITAL_SHIP, 15f);
jydcom.put(HullSize.DEFAULT, 15f);
}
@Override
public void applyEffectsBeforeShipCreation(HullSize hullSize, MutableShipStatsAPI stats, String id) {
float timeMult = 1f / ((100f + (Float) jydcom.get(hullSize)) / 100f);
stats.getFighterRefitTimeMult().modifyMult(id, timeMult);
stats.getMinCrewMod().modifyMult(id, MAINTENANCE_MULT);
stats.getArmorBonus().modifyFlat(id, ARMOR_BONUS);
}
@Override
public String getDescriptionParam(int index, HullSize hullSize) {
if (index == 0) return "" + ((Float) jydcom.get(HullSize.FRIGATE)).intValue() + "%";
if (index == 1) return "" + ((Float) jydcom.get(HullSize.DESTROYER)).intValue() + "%";
if (index == 2) return "" + ((Float) jydcom.get(HullSize.CRUISER)).intValue() + "%";
if (index == 3) return "" + ((Float) jydcom.get(HullSize.CAPITAL_SHIP)).intValue() + "%";
if (index == 4) return "" + (int) ((1f - MAINTENANCE_MULT) * 100f) + "%";
if (index == 5) return "" + (int) ARMOR_BONUS;
return null;
}
@Override
public Color getBorderColor() {
return new Color(147, 102, 50, 0);
}
@Override
public Color getNameColor() {
return new Color(220,185,20);
}
}
Any help would be appreciated, thank you.