Starsector 0.65a

From Starsector Wiki
Jump to navigation Jump to search

Starsector 0.65a

Changes as of October 20, 2014

Campaign:

  • Added bounty event for special pirate/deserter fleets that hide out near various uninhabited worlds
  • Added penalty for overselling food to market with a shortage (clever speculator... ruinous prices... etc)
  • Character tab:
    • Added "confirm" button
    • Pressing "escape" after points have been assigned but not confirmed will reset the points instead of closing the core UI
    • Fixed bug where adding points to a skill and then removing them would leave the "reset" button enabled, now properly detects that there's no change to reset
  • Removed "Frag Bomb Bay" weapon from campaign
  • Black markets now have a chance have market-owner-faction ships/weapons for sale when stability is low (rather than just black market faction ships/weapons, i.e. pirate)
  • Big enough (>= size 4) markets with a military base will have a capital ship for sale if the faction has one available
  • Markets will strengthen patrols if they are losing battles in or around the market's system

Combat:

  • Can no longer control the ship while paused (i.e. no changing selected weapon group/toggling autofire/etc)
  • When all the player's ships are destroyed but reserves are still available, will now show the "full retreat" dialog instead of the deployment dialog

Fighters:

  • Roughly halved logistics cost
  • No longer benefit from zero-flux speed boost
  • Piranha now has a Light Machine Gun instead of Swarmers
  • New fighter-specific version of Swarmer SRM that fires 2 per burst; used by Broadsword and Thunder

Bugfixing

  • Fixed bug where AI would order a full retreat if the player did not deploy anything for 30 seconds

Modding:

  • Moved BaseHullMod to com.fs.starfarer.api.combat
  • Added to WeaponAPI: List<MissileRenderDataAPI> getMissileRenderData()
  • Changed Mercury id from "shuttle" to "mercury"
  • Changed some other variant ids


API additions:

  • BattleObjectiveAPI
    • SpriteAPI getSprite();
    • void setSprite(SpriteAPI sprite);
  • BeamAPI
    • void setHitGlow(SpriteAPI sprite);
    • SpriteAPI getHitGlow();
    • float getHitGlowBrightness();
    • float getWidth();
    • void setWidth(float width);
    • float getPixelsPerTexel();
    • void setPixelsPerTexel(float pixelsPerTexel);
    • Color getCoreColor();
    • void setCoreColor(Color coreColor);
    • Color getFringeColor();
    • void setFringeColor(Color fringeColor);
  • CombatEngineAPI
    • void endCombat(float delay, FleetSide winner);
    • boolean isSimulation()
    • boolean isMission();
    • String getMissionId();
    • void setPlayerShipExternal(ShipAPI ship);
    • boolean isUIShowingDialog();
    • boolean isUIShowingHUD();
    • boolean isUIAutopilotOn()
  • CombatEntityAPI
    • void setCollisionRadius(float radius);
  • CombatFleetManagerAPI
    • void addToReserves(FleetMemberAPI member);
    • void removeFromReserves(FleetMemberAPI member);
  • FighterWingAPI
    • String getWingId();
  • ShieldAPI
    • void setArc(float arc);
    • void setInnerColor(Color color);
    • void setRingColor(Color ringColor);
    • Color getInnerColor();
    • Color getRingColor();
    • float getUpkeep();
    • void forceFacing(float facing);
    • void setRadius(float radius);
    • void setRadius(float radius, String textureInner, String textureRing);
  • DamagingProjectileAPI
    • getElapsed()
    • DamageAPI getDamage()
  • DamageAPI
    • float computeFluxDealt(float amount);
    • float computeDamageDealt(float amount);
    • boolean isMissile();
    • void setMissile(boolean isMissile);
    • void setStats(MutableShipStatsAPI stats);
    • MutableShipStatsAPI getStats();
    • float getDamage();
    • void setDamage(float amount);
    • boolean isDps();
    • float getMultiplier();
    • void setMultiplier(float multiplier);
    • DamageType getType();
    • void setType(DamageType type);
    • float getFluxComponent();
    • void setFluxComponent(float fluxComponent);
  • MissileAPI
    • float getMaxFlightTime();
  • ShipAPI
    • ShipwideAIFlags getAIFlags();
    • List<WeaponGroupAPI> getWeaponGroupsCopy();
    • boolean isHoldFire();
    • boolean isHoldFireOneFrame();
    • void setHoldFireOneFrame(boolean holdFireOneFrame);
    • void setJitter(Color color, float intensity, int copies, float range);
    • boolean isPhased();
  • WeaponGroupAPI
    • boolean isAutofiring();
    • void toggleOn();
    • void toggleOff();
    • List<WeaponAPI> getWeaponsCopy();
    • WeaponGroupType getType();
    • void setType(WeaponGroupType type);
    • ShipAPI getShip();
    • WeaponAPI getActiveWeapon();
    • List<AutofireAIPlugin> getAIPlugins();
  • ShipEngineAPI
    • boolean isPermanentlyDisabled();
    • void applyDamage(float damAmount, Object source);
    • float getMaxHitpoints();
    • float getHitpoints();
    • EngineSlotAPI getEngineSlot();
  • EngineSlotAPI
    • <nothing so far>
  • ShipSystemAPI
    • boolean isChargeup();
    • boolean isChargedown();
    • boolean isStateActive();
    • int getMaxAmmo();
    • void setAmmo(int ammo);
  • ViewportAPI
    • void set(float llx, float lly, float visibleWidth, float visibleHeight);
    • void setViewMult(float zoom);
    • (setCenter() can already be accomplished via getCenter().set())
  • WeaponAPI
    • DamageAPI getDamage();
  • SectorEntityToken
    • void setName(String name);
  • TextPanelAPI
    • clear()
  • AnimationAPI
    • float getFrameRate();
    • void setFrameRate(float frameRate);


Changes as of September 24, 2014

(Note: this batch of notes does not include some smaller items, in particular a large number of API enhancements.)

Campaign:

  • Doubled XP gain from combat
  • Removed speed penalty after winning battle
  • Added reputation improvement for fighting with enemies of faction if battle is in or near a system with the faction's market
  • Access to internal comm channels granted at "cooperative" reputation level
  • Reduced amount of cargo space taken by ship weapons, now 2/4/8 (was: 5/10/20)
  • Mule combat freighter: medium turret now Energy type. Pirate version has universal turret and built-in Shielded Cargo Holds
  • Added Shielded Cargo Holds hullmod - reduces chance of contraband detection and amount of regular cargo found by toll scans. Built-in on some ship hulls.
  • Made changes to ship repairs/related fleet mechanics. Goals: remove sudden extreme supply drain scenarios, simplify rules, give better control over supply expenditure
    • Repairs now proceed at a fixed rate (per hull size)
    • Ships consume their supplies cost while 1) recovering CR or 2) performing repairs
    • "Suspend Repairs" stops both repairs and CR recovery
    • Ships that are not performing repairs or recovering CR do not consume supplies (previously: consumed 10% of the supply/day value)
    • Removed "Logistical Priority" toggle
    • Removed "Supplies to fully repair" ship stat
    • Field Repairs:
      • Removed level 10 perk
      • Base skill now improves ship repair rate by 10% per level
    • Automated Repair Unit: now also increases the repair rate by 50%
    • Logistics rating: bonus to max CR and repair rate when over 100%, penalty when below
    • Construction Rig: now improves repair rate on first damaged ship in the fleet by 50%, max 1 rig per ship
  • Removed XP gain from losing your own ships
  • Increased maximum post-combat CR loss from taking hull damage to 50% (was: 25%)
  • Wolf, Lasher frigates: now have frontal shields, to better work with their front-facing firepower
  • Hyperion: now has "High Maintenance" built-in hullmod that makes it consume extra supplies per day
  • Hound, Cerberus: now classified as "combat freighter"
  • Doubled the prices for all ships
  • Revamped new game creation dialog
    • More unified UI feel
    • More interesting/impactful choices
  • Balancing:
    • Greatly reduced amount of salvage from battle
    • Fighting combat fleets unlikely to result in high profit unless a bounty is also involved
    • Best opportunity is to attack trade fleets carrying expensive goods
    • Adjusted fuel use and capacity of ships across the board
    • Added fuel cost to jumping into hyperspace (but not out), equal to the cost of traveling one light year
  • Ox-class tug: now limited to a maximum of one per ship
  • Augmented engines: removed repair penalty, added 25% cargo/fuel capacity penalty (to discourage "automatic" use on freighters and tankers)
  • Unstable injector: removed burn level bonus
  • Fleet AI will now consider enemy fleet presence around a jump point when deciding which ones to use
  • Fleets carrying more than their capacity now also receive a speed penalty. The speed is reduced to burn level 1 for any capacity being over the maximum by a factor of 2.
  • Added chance for an investigation event to be triggered by player use of comm sniffers
  • Hull mod tooltips: now highlight relevant information
  • Removed "send out salvage teams" from post-engagement options; choices are now "maintain contact with the enemy" (functions as "harry" did) and "stand down"
  • "Stand down" option now takes into account how long a ship has been deployed; last-second deployments en masse will no longer unlock the "stand down" option
  • Standardized CR loss/second for frigates to 0.25, removed that stat from ship info/tooltip
  • Added new skins of the Buffalo (freighter) - standard, pirate, Hegemony, Tri-Tachyon
  • Pursuit-style battles start out with the fleets being much closer; map is smaller - faster pursuit battles, less time needed to catch up
  • Made fleet movement slightly less inertial (2x acceleration)
  • Faction info screen now shows what commodities the faction considers illegal
  • Added "Customs Inspections"
    • Certain patrols may decide to perform a customs inspection on your fleet if you're in or near a populated star system
    • Assess a toll based on the cargo value and fleet size
    • Search for contraband (based on what faction considers illegal); if found, confiscate and assess fine
    • Evading inspection/refusing to pay toll or fine may result in reputation loss
    • Cooperation results in a small reputation gain
    • Patrols will perform customs inspections on NPC fleets
  • Smuggling:
    • Trade on the black market reduces the relationship with the faction
    • When the relationship becomes "inhospitable", can only trade on the black market
      • Can not trade while patrols are nearby, or if your fleet is larger than 3 frigates or so
    • Can not trade at all when the relationship becomes "vengeful"
    • Pirates are ok with trading openly up until "vengeful", then no trade at all
  • Player now gets price reports for "interesting" commodities throughout the Sector
    • More updates for commodities in local system
    • More updates for systems where you've hacked the Comm Relay
  • Intel tab:
    • Displays all reports/messages received by the player
    • Can display the reports as an inbox-style list or as icons on the Sector map
    • Can filter reports by date/type/location in several ways
      • "Prices" filter section
      • Displays color-coded commodity icons near related star systems on the intel map
    • Can filter by specific commodity/see prices on the map
  • Ship refit screen: now works with submarkets
    • All available weapons show up in the weapon selection dialog
    • Shows what submarket they come from
  • Ship trade screen:
    • Can pick submarket to trade with
    • Better standing unlocks better ships at military base submarkets
    • Trading in ships now counts for trade/smuggling related reputation adujstments and market stability
  • Added "Food Shortage" event
  • Added system-wide "Bounty" event
    • The player can earn a bounty by destroying ships belonging to enemies of the bounty-paying faction
    • Driven by fleet losses in or nearby the market's system
  • Added "Trade Disruption" event
    • Driven by trade fleet losses
    • Affects underlying economy simulation
    • Also picks out several affected commodities and adjusts their prices accordingly, allowing the player to make a profit trading
  • Smuggling:
    • Buying/selling goods on the black market (in sufficient volume) will reduce the market's stability and so increase the chance of negative events
    • Selling (not buying) illegal goods has a much greater impact
    • Trade on the black market is not subject to tariffs
  • Faction relationships update
    • Different tiers: vengeful, hostile, inhospitable, suspicious, neutral, favorable, welcoming, friendly, cooperative
    • Various actions may improve or damage relationship with a given faction
    • Each action has limits, for example bounty hunting might not raise the relationship above "welcoming", and won't raise the relationship at all if it's "vengeful"
  • Added "Military" submarkets to markets with a military base
    • Can only be traded with if the relationship is positive
    • Better ships and weapons available at higher standing
    • If the reputation level is negative, but not hostile, it will go up after a *very* long time (up to a cycle)
  • Added automatic generation of trade fleets that carry appropriate commodities between markets
  • Automatic creation of patrols (based on market stability/size)
  • Markets will generate mercenary fleets when stability is lower. Some of these may actually turn out to be pirates.
  • Planet light location in star systems now cycles from being above the playing field to below
  • Habitation glow layers added to inhabited planets
  • Tri-Tachyon no longer hostile to independents
  • Added progress bar to new game creation

Music:

  • New main menu theme
  • New theme for campaign market interactions (campaign music pauses, resumes after player leaves market)

Combat:

  • Using 'R' to target a ship now requires less precise mouse positioning when targeting smaller ships and fighters
  • High Intensity Laser now fires on achieving full charge (instead of starting to fire at partial effectiveness immediately)
  • Doubled weapon and engine hitpoints

Miscellaneous

  • Randomized ship deployment order within each row between ships of the same size class
  • Ship AI:
    • Much better survivability/not rushing into a bad situation
    • More dangerous with missiles (aware of how many missiles are in play & how many to fire for a kill)
    • Harder to bait out missile fire
    • Conserves higher-capacity missiles (e.g. Harpoon/Sabot Pods)
  • Missile overhaul:
    • Changed missile behavior to reduce clumping and slightly increase pressure on PD
    • Added nicer-looking continuous missile trails (rather than current particle effects)
    • Harpoon MRM: significantly improved maneuverability, increased hitpoints by 50%
      • Sabot SRM: fires 5 2nd stage projectiles instead of 1. Higher overall damage, much worse vs armor due to being distributed across 5 hits. Fired in a spread, less likely to miss completely.
      • Annihilator: increased speed to 400 (from 250), increased acceleration
      • Reaper torpedoes: faster, much higher acceleration
      • Atropos torpedoes: faster, higher acceleration, very poor tracking
      • Salamander MRM: improved maneuverability and top speed; much more reliable.
      • Swarmer SRM: doubled ammo, first 4 shots per burst, 75 points of HE damage per missile instead of 300 fragmentation
      • Pilum: improved top speed and acceleration. Can still be dodged effectively, just harder. Deadly vs non-omni-shield frigates w/o PD
      • All missile pods: increased burst size to 4 and doubled rate of fire
  • Prettified the "settings" UI a bit

Modding:

  • Fixed bug in StatBonus that was applying the flat bonus after the mult bonus (the correct order is: percent, flat, mult)
  • Added CampaignEventListener interface. Methods so far:
    • void reportPlayerMarketTransaction(PlayerMarketTransaction transaction);
    • void reportFleetDewspawned(CampaignFleetAPI fleet, FleetDespawnReason reason, Object param);
    • void reportFleetReachedEntity(CampaignFleetAPI fleet, SectorEntityToken entity);
    • void reportFleetJumped(CampaignFleetAPI fleet, SectorEntityToken from, JumpDestination to);
  • Added "beamFireOnlyOnFullCharge" setting to .wpn definition for beam weapons
  • SoundPlayerAPI.playUISound now returns a SoundAPI object
  • Fixed bug in SoundAPI that would cause a NullPointerException on every method call if the sound didn't actually play (due to sound being off/too far from the player/etc)
  • Added DamagingProjectileAPI.getSpawnType()
  • Added CampaignFleetAPI.addAssignment(FleetAssignment assignment, SectorEntityToken target, float maxDurationInDays, String actionText) - the actionText parameter gets displayed in the tooltip while the assignment is active
  • Added CampaignFleetAIAPI.setActionTextOverride() - overrides any action text text displayed in the tooltip, including custom actionText
  • Added FleetAssignment.ORBIT assignment
  • Added CampaignFleetAPI.setAIMode(). Fleets in AI mode do not use fuel/supplies, require crew, or suffer accidents
  • Added to SectorEntityToken: addScript()/removeScript()/removeScriptsOfClass()
  • Faction descriptions: moved out of .faction file to descriptions.csv
  • Added ShipAPI.setOriginalOwner()
  • Added to WeaponAPI:
    • SpriteAPI getBarrelSpriteAPI();
    • void renderBarrel(SpriteAPI sprite, Vector2f loc, float alphaMult);
    • boolean isRenderBarrelBelow();
  • Added ShiAPI.getCombinedAlphaMult()
  • Added TextPanelAPI.setFontInsignia()/setFontOrbitron()/setFontVictor()
  • Added RENDER_ADDITIVE renderHint for weapons
  • Added ship "skins"
    • Way to define a slightly different hull based on an existing hull
    • Defined in data/hulls/skins
    • A skin can:
      • Set a new sprite/name/description
      • Remove and/or modify weapon slots
      • Remove engine slots
      • Add/remove built-in hullmods and weapons
  • Changed Cerberus hull id from "warhound" to "cerberus"
  • Fixed bug with BoundsAPI.clear() - it now works
  • CombatReadinessPlugin: renamed applyMaxCRLogisticsPenalty to applyLogisticsRatingImpact
  • ship_data.csv: renamed "repair %/day" to "cr %/day"


Changes as of June 11, 2014

(Note: this batch of notes is probably missing some items.)

Campaign:

  • Four new star systems (still some work to do populating them with fleets and such)
  • Economy
  • Market conditions influence production/consumption
  • Commodities shipped around to satisfy demand
  • Shipping affected by distance and faction relationships
  • 28 markets
  • Added 10+ commodities with unique graphics and sounds
    • Some examples: Food, Rare Metals, Harvested Organs
  • New trade and market info screens (details/screenshots here)
  • Comm relays:
    • Can install a comm sniffer to intercept messages and gain intelligence
    • Need to wait (without interruption) for installation to finish
    • Factions will protect their comm relays from your interference
  • Added new ship: Shepherd (frigate drone tender)

Miscellaneous:

  • New graphics for battle objectives (smaller, different)
  • Save compression: now creates proper zip files

Combat:

  • Selecting a weapon group with a Tachyon Lance will now automatically switch the view to your target, if any
  • When switching view to target, you can still move the view around in the area between your ship and the target
  • Selecting another weapon group will automatically switch the view back to your ship. It's possible to quickly switch the view around by selecting different weapon groups.
  • The pips on the weapon arc indicator will glow red when there's a danger of friendly fire
  • Increased weapon and engine health by 100% (harder to disable by regular weapon fire)
  • Increased EMP damage by 100% across the board

Modding:

  • Economy configuration: data/campaign/econ/economy.json
  • Extensive API for markets/economy
    • EconomyAPI, MarketAPI, SectorAPI.getEconomy(), FactoryAPI.createMarket(), etc
  • Added required "displayNameWithArticle" field to .faction definition (i.e. "the Hegemony", vs "Tri-Tachyon"
  • Fixed bug where only the first instance of EveryFrameCombatPlugin ever created would be used (new instances would still be created, but the original one would be used instead)
  • Added to SectorAPI:
    • void addTransientScript(EveryFrameScript script);
    • void removeTransientScript(EveryFrameScript script);
  • Removed dialogue lines from .faction files; moved to rules.csv (more detail/documentation on that shortly after the release)
  • Added to EveryFrameCombatPlugin:
    • void renderInWorldCoords(ViewportAPI viewport);
    • void renderInUICoords(ViewportAPI viewport);
  • This will cause existing plugins to not compile until stubs for these methods are added
  • Should now extend BaseEveryFramceCombatPlugin to avoid this issue in the future (it'll have method stubs)
    • SectorAPI.getAllEmptyVariantIds() now properly returns hulls with built-in hullmods
  • Added showDamageWhenDecorative option to .wpn files; see sensordish.wpn for an example
  • Added:
    • MissileAPI.getSpriteAPI()
    • AsteroidAPI.getSpriteAPI()
    • WeaponAPI.getUnderSpriteAPI()
    • WeaponAPI.getBarrelSpriteAPI()
    • CombatAsteroidAPI.getSpriteAPI()
  • Added:
    • CombatFleetManagerAPI.isInFullRetreat()
    • CombatFleetManagerAPI.getDeployedFleetMemberEvenIfDisabled(ShipAPI ship)
  • Fixed bug with CombatFleetManagerAPI.getAssignment() that basically made it unusable
  • Star system locations can now be specified in data/campaign/starmap.json. Specifying them in code still works.
  • Fixed bug where missiles with a custom GuidedMissileAI would still not be affected by flares
  • Added FactionAPI.getColor()
  • Added required "logo" key to .faction files
  • Added optional keys to .faction files: baseUIColor, darkUIColor, gridUIColor. Currently used in trade UI, may be used elsewhere later. If unspecified, will derive default values based on faction color.
  • Added FactionAPI.getBaseUIColor() etc
  • Added ModPlugin.onNewGameAfterEconomyLoad()
  • Mirv missiles can now spawn any type of projectile (i.e. ballistic/pulse laser style moving beam, and plasma shots)
  • Added projectileRange parameter to behaviorSpec to govern range of non-missile projectiles
  • Added to FleetMemberAPI:
    • int getOwner();
    • void setOwner(int owner);
  • Decorative modules will no longer be rendered over weapon slot indicators in the refit screen
  • Added sound source number configuration to settings.json: maxFXSources, maxUISources
  • Lots of other API improvements not explictly mentioned here


Bugfixing:

  • Fixed memory leak that would cause multiple copies of the combat engine to not be released
  • OS X retina issue (only displaying in lower left part of screen) should be fixed
  • Fixed bug in refit screen that would occasionally display negatively-modified values in green
  • Fixed crash when opening refit screen immediately after a battle or loading a game, if the first ship in your fleet has critically low (<20%) CR
  • The flight decks of mothballed/crash mothballed no longer function
  • Ships for sale at stations now properly draw their name from the faction's name lists
  • Fixed hull variant related crash bug when resetting the custom variants for a mission and then opening the refit screen


Changes as of April 04, 2014

Campaign:

  • Added "Intel" tab to keep track of comm messages, news, and other stuff
    • Intel tab replaces the "outposts" tab purely for temporary UI reasons - do not be alarmed Smiley
  • Added framework for events
  • Added framework for player receiving comm messages, including news reports re: events (based on message origin, presence of comm relays, channel message is sent on vs channels the player has access to)

Miscellaneous:

  • Pressing the power button in the top right of the salvage screen now has the same effect as the continue button (previously, would exit out without taking any salvage)
  • Changed text of the "End Battle" button in the combat escape menu to be context-appropriate (i.e. "Claim Victory" when the enemy is in full retreat)
  • Adjusted collision damage to no longer cause excessive damage to shields in certain circumstances (i.e. flamed-out fighters impacting shields)
  • Added approximate total supply cost to recover from deployment to ship tooltip
  • Updated sounds:
    • Refit screen
    • Shield overload
    • Engine boost
    • Some others
  • Improved jump point graphics
  • Optimized save file size (about 50% smaller at game start)
  • Clicking on the "?" button on the fleet screen now shows the Codex entry for the base hull rather than the variant
  • Updated graphics for Falcon, Eagle, and Ox

Modding:

  • SectorAPI.doHyperspaceTransition() no longer crashes when jumpLocation == null
  • Moved get/setName from StarSystemAPI to LocationAPI
  • Added FleetGoal CombatFleetManagerAPI.getGoal()
  • Added getId() to SectorEntityToken, all entities now have unique ids
  • Added LocationAPI.getEntityById()
  • Added "id" parameter to FactoryAPI.createJumpPoint, LocationAPI.addPlanet/addOrbitalStation, StarSystemAPI.initStar
    • Can pass in null to auto-generate a random id
    • API-breaking change, mod code needs to be adjusted to provide id parameter
    • Should, ideally, also stop using LocationAPI.getEntityByName() and start using LocationAPI.getEntityById() instead
  • Orbital station names no longer include the faction name by default
  • Added new addOrbitalStation method that allows custom station graphics
  • Added to SectorEntityToken:
    • boolean hasTag(String tag);
    • void addTag(String tag);
    • void removeTag(String tag);
    • Collection<String> getTags();
    • void clearTags();
    • void setFixedLocation(float x, float y);
    • void setCircularOrbit(SectorEntityToken focus, float angle, float orbitRadius, float orbitDays);
  • Added LocationAPI.addCustomEntity()
    • Entity with custom graphics (can be a sprite, but there's also a custom OpenGL rendering hook)
    • Entities defined in data/config/custom_entities.json
  • Added LocationAPI.getEntitiesWithTag(String tag)
  • Added minCombatZoom/maxCombatZoom to settings.json
    • Intended for TC use; vanilla not designed to look good beyond default zoom range
  • All sounds based on ship hull styles now fully moddable (see data/config/hull_styles.json for details)
  • Damage decals can now be modded per hull style (see data/config/hull_styles.json for details)
  • Added: CampaignClockAPI createClock(long timestamp)
  • Planets can now have a glow texture (see lava planet for example); glow can either planet-wide or only show up on the dark side
  • Added ShieldAPI.getFluxPerPointOfDamage()
  • IMPORTANT: resources.csv renamed to commodities.csv, expanded with more fields

Bugfixing:

  • Fixed smart quotes in descriptions (would display as question marks); loading code now replaces those with regular quotes automatically
  • Heron's variant now uses all of its ordnance points
  • Fixed crash that could be caused by exporting and deleting saved variants in the campaign
  • Fleets will no longer have disabled ships/fighter wings in their composition
  • Low-CR deployment warning will no longer show up for mothballed ships
  • Fixed issue with "rally strike force" preventing bombers from going on strike assignments
  • Dedicated strafe left/right keys now work while the "strafe and turn to mouse" key is held down
  • Fixed crash on loading a game with an encounter dialog to be shown next frame (current workaround is to load another game first)
  • Fixed issue where max burn bonus from tugs would not show up in the fleet member tooltip (but would still work)
  • Fixed issue where the tooltip of ships being sold would show the effects of their CR being 0
  • Fixed bug where left-over flamed out fighters would simply disappear if the wing retreated (now blow up instead)
  • Fixed bug with targeting empty space while in a video feed (would snap view back to player's ship for one frame)
  • Hulks no longer play an "engine boost" sound when they reach 0 flux
  • Fixed issue where ships would occasionally go off to look for an enemy someplace they couldn't possibly be at the start of battle
  • Fixed bug where battle objectives lifted the fog of war but didn't actually reveal the ships under it
  • Burst beam weapons will now shut off if the firing ship phase cloaks