Starfarer 0.54a

From Starsector Wiki
Jump to navigation Jump to search

Starfarer 0.54a

This version is out - you can download it here.

Changes as of November 19, 2012

Modding:

  • Extracted some common methods into CombatEntityAPI interface. MissileAPI, ShipAPI, and AsteroidAPI all derive from it.
  • More enhancements to the API (list below not all-inclusive, just some highlights). Can:
    • apply damage to entities
    • get entity bounds, get the ship armor status
    • add particles / visual explosions to engine
    • add floating text and floating damage text
    • play UI and in-engine sounds and loops
    • spawn missiles and other projectiles
    • Some very basic sample code in data.scripts.plugins.TestCombatPlugin
  • Mods can now load JAR files with code (instead of requiring all code to be compiled by the game).
    • To use, add to mod_info.json:
      • "jars":["file1.jar","file2.jar"],
    • After that, any scripts in the mod can use stuff from the jars
    • Anywhere the data files refer to a class by name, the game will attempt to look it up in one of the loaded jar files first. So, things like sector generation, ship system stats, etc can be completely inside a jar.
    • Anywhere where a class is loaded based on a .java file being inside a particular folder (i.e. various engine plugins) still requires a .java file there, even if it's just a stub calling into code from a jar file
    • Missions could actually be implemented inside a jar if the package name matches the mission folder
    • Classes in the jars need to be compiled for Java 6
  • Added data/config/title_screen_variants.csv to specify which ships show up on the title screen
  • Fixed bug with WeaponAPI.setCooldownRemainingTo() not working right for burst beam weapons
  • Starting ships and background questions are specified using data/scripts/plugins/CharacterCreationPluginImpl. player.faction is no longer used for that (but still used for other things)
  • Total conversions can now remove ships from the core game, so they aren't loaded and don't show up in the Codex, the campaign menu, the title screen, etc. To do this, the total conversion has to:
    • Replace:
      • data/missions/mission_list.csv
      • data/world/factions/player.faction
      • data/world/factions/factions.csv
      • data/campaign/sim_opponents.csv
      • data/config/title_screen_variants.csv
      • data/hulls/ship_data.csv
      • data/hulls/wing_data.csv
    • Include a faction with id "neutral" in its factions.csv (simply adding a line with "data/world/factions/neutral.faction" is fine)
    • Include a ship with id "shuttlepod" in its ship_data.csv
    • Provide a data/scripts/plugins/CharacterCreationPluginImpl that generates faction-specific starting ships
    • Provide a custom generators.csv that does not reference any of the core factions and ships.
    • Alternately, if a TC wished to replace the ships for all the core factions with other ships, it could do this instead of simply removing the core factions.
    • Total conversions can also remove core weapons from the game by replacing data/weapons/weapon_data.csv and removing all references to the weapons (i.e., all core ships, variants, campaign cargo/items, etc)
  • Added "utility" flag to mod_spec.json. Utility mods can be used alongside total conversions.


Changes as of November 15, 2012

Command UI:

  • Regular ships assigned to a strike assignment will act the same as when assigned to engage
  • Ships/fighters assigned to escort a fighter wing will now escort the carrier while that wing refits, and will resume escort duty once it takes off
  • Intercept can now be assigned on any enemy ship. Still takes lighter ships (frigates, fighter wings) by default, but other ships can be assigned manually.
  • Fighters are not auto-assigned to "Harass" because their weapons don't generally have the range to make this successful
  • Updated assignment descriptions/tooltips to match new mechanics

Ship AI:

  • Improved behavior of escorting ships when faced with overwhelming firepower
  • Improved bomber attack run logic

Campaign:

  • Losing ships in combat gives bonus XP, if the fleet has more than 5 fleet points worth of ships
  • Losing a battle gives double XP for that battle, if you fleet was worth more than 5 fleet points

Modding:

  • Added InputEventAPI
  • Added to MissionDefinitionAPI:
    • void addPlugin(EveryFrameCombatPlugin plugin);
    • void setBackgroundSpriteName(String background);
    • void addFleetMember(FleetSide side, FleetMemberAPI member);
  • Added EveryFrameCombatPlugin:
    • void init();
    • void advance(float amount, List<InputEventAPI> events);
  • All implementations of EveryFrameCombatPlugin under data/scripts/plugins will be automatically added to every battle
  • Added to CampaignFleetAPI:
    • MutableCharacterStatsAPI getCommanderStats();
    • LocationAPI getContainingLocation();
  • Added BattleCreationPlugin
    • Implementation under data/scripts/plugins/BattleCreationPluginImpl.java
    • Called to create any campaign battle the player takes part in, uses existing MissionDefinitionAPI
    • Can selectively add EveryFrameCombatPlugin implementations to the combat engine (using MissionDefinitionAPI.addPlugin)
    • Mods overwriting this file will be incompatible with each other (i.e., only one active mod can change the way the battlefield is created)
  • Can add custom ship system AI (warning: it requires a decent understanding of Java)
    • See fastmissileracks.system for commented-out example:
  1. "aiType":"CUSTOM",
  1. "aiScript":"data.shipsystems.scripts.ai.FastMissileRacksAI",
  • Added ShipSystemAPI, FluxTrackerAPI,AssignmentTargetAPI, CombatAssignmentType, made enhancements to ShipAPI, WeaponAPI, ShieldAPI

Miscellaneous:

  • Optimized some ship movement and weapon targeting AI performance (roughly 5-10% improvement in overall frame rate)
  • Revamped fleet command tutorial
  • Revamped combat tutorial, split into "basic" and "advanced" portions
  • Improved Sabot missile tracking - much less likely to get total misses now
  • F11 ("hide HUD") now also hides friend-or-foe indicators around ships
  • New graphics for Gauss Cannon, Railgun, and Storm Needler

Bugfixing:

  • A phased ship overloaded or venting will come out of phase regardless of whether it's on top of another object or not
  • Fixed bug with drones continuing to target a disabled ship if the player kept it as the ship target
  • Fixed bug where keyboard turn controls would take precedence and disallow keyboard strafe controls (did not affect mouse-turning in strafe mode, only Q/E strafing)


Changes as of October 23, 2012

Command UI:

  • Giving a direct order to the flagship now turns on autopilot
  • Changes to assignments/AI behavior:
    • Overall better about proceeding to assignment instead of getting stuck fighting whatever is nearby
    • Intercept: assigns up to 2 frigates/fighter wings, more focused on chasing the target, less likely to be distracted (unless faced with overwhelming firepower).
    • Control/Capture: Automatically updated to call in comparable forces to match what the enemy has in the area.
    • Harass: ship will attempt to stay at longest-range non-missile weapon range and keep away from the target
    • Engage: bombers and support fighters assigned to engage a target will behave as if on a strike assignment - i.e, make a concerted effort at an attack run without getting distracted.
    • Removed "Patrol" and "Rally Fire Support"
    • Added Rally Task Force - functions much as fire support did before, but a catch-all for any custom group of ships. Only draws ships that are directly assigned to it.

Ship AI:

  • Will close in to use short-range weapons when it identifies that the target is vulnerable
  • Fixed bug that would sometimes cause the AI to try to flank the target when there are no other friendly ships in the vicinity. Should fix a lot of "not going for the kill" cases.
  • Won't back off to vent if it's got the upper hand
  • Will attempt to help nearby ships in trouble
  • Fixed bug where ships would attempt to flank the enemy when the only nearby friendly ships were escorting the ship, and so would not separate from it to flank
  • Bombers better about heading back for repairs after an attack run

Music:

  • Added ambient battle track (by Stian Stark)

Miscellaneous:

  • Drastically reduced Apogee sensor drone roam range
  • Automatically shows deployment dialog if all your ships are destroyed/retreated but you still have reserves
  • Turned off performance metrics in non-dev-mode
  • Reduced base command points to 3
  • No longer shows a message regarding what enemy ships are deployed at the start of battle (still does in dev mode, though)
  • Slightly more varied deployment strategies
  • Various adjustments to missions (fleet compositions, command points, displayed difficulty). Some specifics:
    • Forlorn Hope: added 3 more bomber wings and an Onslaught to the enemy forces
    • For the Greater Lud: replaced Eagle with Dominator (the former is nearly impossible to hit with bombers due to the Maneuvering Jets).

Bugfixing:

  • Fixed bug that occasionally caused fighter icons to disappear from the command UI
  • UI sound volume is now properly set to the saved value when the game starts


Changes as of October 13, 2012

Character:

  • Added stat bonuses to aptitudes (e.g., simply having the "Leadership" aptitude provides a small fleet point bonus)

Command UI:

  • Retains the "assignments" concept and works generally as before, but adds the ability to create assignments/assign ships to existing assignment by using a more standard control scheme. Original control scheme still works, too.
  • Can select multiple ships (shift-click, double-click, left-click-and-drag for a box select, etc)
  • Control groups (Ctrl-1, etc), persistent between battles in the campaign
  • Right-clicking when ships are selected creates a (hopefully) appropriate assignment, or assigns the units to an existing one
  • Can pan the view by moving the mouse to the edge
  • Right-click and drag also pans the view, as before
  • Simplified assignment suitability calculation, now almost entirely based on ETA to the target (with special consideration for civilian ships, carriers, and bombers)
  • Adjusted default keyboard shortcuts for assignment creation, to reflect that they're no longer presented in a separate context menu but as part of the overall command UI
  • Removed "standing orders" menu
  • Flagship and current target are now shown in the command UI
  • Command points adjustments (tentative - specifics are still under consideration, these are all liable to change. Just here to provide an idea of how it works in the dev version as of right now):
    • Assignments created while paused still cost 1 CP which will be refunded if the assignment is cancelled before unpausing - this is exactly as before.
    • Right-click-assigning ships to a refundable assignment is free
    • Creating an assignment for a specific ship (or group of ships) via right click (i.e., select fighter wing, right click on objective) costs 1 CP, regardless of the number of ships involved

Hullmods: Resistant Flux Conduits now provides a 50% EMP resistance (down from 75%) and increases the flux vent (not dissipation) rate by 25%, increased OP cost slightly

Miscellaneous:

  • Disabled ships repaired after battle now lose their hull mods and vents/capacitors
  • Ion Cannon: increased range (500 -> 600), reduced flux per shot (120 -> 80), reduced OP cost (7 -> 6)
  • Improved ship armor schematic graphics, especially for fighters (smoother, not pixelated)

Modding:

  • Added to MutableShipStatsAPI:
    • MutableStat getVentRateMult()
  • Added to FleetMemberAPI:
    • String getId() - returns unique id for this fleet member
  • Added to ShipAPI:
    • String getFleetMemberId() - ID of fleet member this ship corresponds to. Can be null.
  • No more "weaponAssignmentSuitability" in .system files, to reflect command UI/mechanics changes
  • Added "hints" column to ship_data.csv
    • Possible values: CIVILIAN and CARRIER
    • Used to tell the AI how to behave with a given ship. A ship is considered civilian if it either 1) is flagged as "CIVILIAN" or 2) has less than half of its ordnance points spent.

Bugfixing:

  • Some burn drive AI fixes
  • Fixed bug in command UI where changing the zoom level and using right-click to pan the view would cause the view to jump


Changes as of September 21, 2012

Hullmods:

  • Augmented Engines no longer has flux dissipation penalty, engines take 2x longer to repair instead
  • New hullmods:
    • Dedicated Targeting Core (restricted, but always-unlocked version of the ITU)
    • Blast Doors
    • Unstable Injector

Character skills:

  • Power Grid Modulation (perks: Predictive Breaker Network, Safety Override)
  • Coordinated Maneuvers (perks: Advanced Formations)
  • Advanced Tactics (perks: Special Ops)
  • Command Experience (perks: Making Do)
  • Fleet Logistics
  • Applied Physics
  • Flux Dynamics (perks: Miniaturized Capacitors, Miniaturized Vents)
  • Construction
  • Field Repairs
  • Navigation
  • Missile Specialization (perks: Autoloader Reprogramming, Increased Yield)

Miscellaneous:

  • Reduced fleet point cost of the Doom to 17
  • Adjusted phase cloak mechanics a bit
    • Phase cloak can be deactivated while in a partial overlap with another ship
    • Force pushing overlapping ship away is much stronger when the overlap is greater
  • Improved character creation process
    • Some background choices
    • Initial skill and aptitude assignments
    • Iron mode
  • Ship tooltip now shows size of bonuses/penalties to various stats, in addition to highlighting them in red/green

Modding:

  • Starting player fleet now works differently - have to edit CharacterCreationPluginImpl to adjust it, no longer uses the definition from player.faction
  • Character creation process is entirely moddable
  • Added MutableCharacterStatsAPI
  • Added to settings.json:
    • "startingFleetPoints"
    • "startingCommandPoints"
    • "baseFriendlyShipRepairChance"
    • "baseEnemyShipRepairChance"
  • Added to MutableShipStatsAPI:
    • MutableStat getCrewLossMult()
    • MutableStat getHardFluxDissipationFraction()
    • StatBonus getFuelMod();
    • StatBonus getFuelUseMod();
    • StatBonus getMinCrewMod();
    • StatBonus getMaxCrewMod();
    • StatBonus getCargoMod();
    • StatBonus getHangarSpaceMod();
    • StatBonus getMissileMaxSpeedBonus();
    • StatBonus getMissileAccelerationBonus();
    • StatBonus getMissileMaxTurnRateBonus();
    • StatBonus getMissileTurnAccelerationBonus();
    • MutableStat getProjectileSpeedMult();
    • Added SettingsAPI.getScriptClassLoader();

Bugfixing:

  • Fixed bug in phase skimmer/teleporter AI - was not properly evaluating missile danger at destination.


Changes as of September 12, 2012

Character skills:

  • Each skill can be increased from 0 to 10
  • No more synergies
  • Each skill has a core effect that goes up with the level of the skill, and up to two "perks" that are generally unlocked at skill level 5 or 10. Perks provide a fixed bonus that does not scale with the level of the skill. Some skills may lack perks for now and receive a boosted core effect instead.
  • Tentatively implemented the following skills and perks:
    • Ordnance Expert (perks: Secured Magazines, Optimized Assembly)
    • Damage Control (perks: Compartmentalization, Rapid Response Teams)
    • Target Analysis (perks: Precision Fire, Active Frequency Detection)
    • Evasive Action (perks: Evasion, Deflection)
    • Helmsmanship (perks: Maximum Power, Dynamic Stabilization)
    • Gunnery Implants (perks: Neural Diagnostics, Weapon Proprioception)
    • Mechanical Engineering (perks: Effective Maintenance)
    • Computer Systems

Ship AI:

  • More accurate with hardpoint-based weapons
  • Improved missile and collision avoidance logic
  • Fixed bug in Phase Skimmer AI that would occasionally let it teleport right in front of friendly ships
  • Fortress Shield using ships won't lower shields at high flux quite so readily when engaging the Fortress Shield is a better alternative
  • Fixed firing logic bug when weapons with wildly different stats ended up in the same alternating weapon group
  • Fixed bug where ship wouldn't fire if the enemy shield efficiency was too good, even if the soft flux generated by firing could be readily dissipated
  • Fixed bug in phase cloak AI where it would overestimate ship explosion range

Fighter AI:

  • Improved wingman behavior:
    • Varying degrees of independence (bombers - none ("stay on target!"), interceptors - lots)
    • Will target and individually avoid incoming missiles
    • Will spread out to flank/catch target in crossfire
    • In general, more natural-looking flight patterns and dogfights
  • Improved engine visuals (less flickering due to rapid thrust adjustments)

Miscellaneous:

  • Added tooltips and icons to hullmods in the refit screen
  • Small strike weapons (i.e., AM Blaster) will no longer try to target missiles if the ship is fitted with the Integrated PD AI hullmod
  • Phase cloak now generates hard flux and ships can dissipate soft flux while phased
  • Increased Heavy AC ammo to 300 (from 200)
  • Decreased Heavy Mauler ammo to 200 (from 300)
  • Dimmed default text color somewhat
  • Improved logic for when to auto-assign weapon groups to better detect the case when the player forgot to do it (won't do it for variants loaded from disk or ones where the player edited weapon groups)

Modding:

  • Fixed bug where increasing the shield unfold rate by an extreme amount would lead to dimmer shields
  • System definitions no longer require an "outOfUsesSound" sound.
  • "BALLISTIC_AS_BEAM" projectiles can now have a "PROXIMITY_FUSE" behavior
  • Projectile graphics now rendered at correct aspect ratio based on the width of the trail, regardless of its length
  • Mods are now able to properly override weapon projectile files
  • CampaignClockAPI.getElapsedDaysSince() now returns fractional values instead of rounding to whole days
  • Added "specialWeaponGlowWidth" and "specialWeaponGlowHeight" to .wpn definition - specifies flux damage bonus or system effect glow size (uses defaults if unspecified). Adjusted several ballistic weapons to use this.
  • Removed unused "tier" column from hull_mods.csv, added "unlocked" column. Mods flagged with "TRUE" will be available without needing a skill to unlock them.
  • Mutable ship stats, added:
    • MutableStat getCombatEngineRepairTimeMult()
    • MutableStat getCombatWeaponRepairTimeMult()
    • MutableStat getHullRepairRatePercentPerSecond()
    • MutableStat getMaxHullRepairFraction()
    • StatBonus getEffectiveArmorBonus()
    • StatBonus getHitStrengthBonus()
    • MutableStat getDamageToTargetEnginesMult()
    • MutableStat getDamageToTargetWeaponsMult()
    • MutableStat getDamageToTargetShieldsMult()
    • MutableStat getEngineDamageTakenMult()
    • MutableStat getWeaponDamageTakenMult()
    • MutableStat getAutofireAimAccuracy()
    • MutableStat getMaxRecoilMult()
    • MutableStat getRecoilPerShotMult()
    • MutableStat getRecoilDecayMult()
    • StatBonus getOverloadTimeMod()
    • MutableStat getEmpDamageTakenMult() (@Deprecated getFluxDamageTakenMult())
    • MutableStat getZeroFluxSpeedBoost()
    • MutableStat getZeroFluxMinimumFluxLevel()