private static double calculateCommandModule(AvailablePart part) { ConfigNode commandModule = PartConfigLoader.GetCommandModule(part); Log.log("Command Module: " + commandModule); if (commandModule == null) { return(0); } Double minCrew = PartConfigLoader.GetProperty(commandModule, PartConfigLoader.MINUMUN_CREW); Log.log("Minimun Crew: " + minCrew); bool hasHibernation = PartConfigLoader.GetBooleanProperty(commandModule, PartConfigLoader.HAS_HIBERNATION); Log.log("Has Hibernation: " + hasHibernation); bool hasHibernationMultiplier = PartConfigLoader.HasProperty(commandModule, PartConfigLoader.HIBERNATION_MULTIPLIER); Log.log("Has Hibernation Multiplier: " + hasHibernationMultiplier); ConfigNode chargeResource = PartConfigLoader.GetResource(commandModule, PartConfigLoader.ELECTRIC_CHARGE); Double chargeRate = chargeResource != null?PartConfigLoader.GetProperty(chargeResource, PartConfigLoader.RATE) : 1; double sum = 0; if (minCrew < 1) { sum += MIN_CREW_COMMAND_BASE; } if (!hasHibernation) { return(sum); } sum += CHARGE_RATE_COMMAND_BASE - CHARGE_RATE_COMMAND_FACTOR * chargeRate; double hibernationMultiplier = hasHibernationMultiplier ? PartConfigLoader.GetProperty(commandModule, PartConfigLoader.HIBERNATION_MULTIPLIER) : 0.5; sum += HIBERNATION_COMMAND_BASE - HIBERNATION_COMMAND_FACTOR * hibernationMultiplier; Log.log("Command: " + sum); return(sum); }