Version 0.9.0


v0.9.0

Major update

BREAKING CHANGES - I had to breaking some things in modding for what I want to do to work. Sorry! Read on for details.

  •  Armor and damage types got a rework. More details in the "Features" section. The fields changed are
    • `ArmorValue` -> `ArmorTypeId`
    • `DamageType` -> `DamagePattern` and `DamageTypeId`.
  • A lot of "built-in" component specs are moved to `BlockComponents`. These include engines/thrusters, reaction wheels, resource generators/converters, resource storage, and weapons.
    • These components also need a "YAML type tag". For example, to define an omni-directional thruster component, write `OmniThruster: !OmniThruster`. The reason for this change will be discussed below.
    • Some components and fields are renamed for clarity: `Engline` -> `LinearEngine`, `XXXWeaponEmitter` -> `XXXWeaponLauncher`, `WeaponLauncher.Renderer` -> `WeaponLauncher.ProjectileRenderer`, `MissileLauncher.Renderer` -> `MissileLauncher.MissileRenderer`.
    • Some properties of `MissileLauncher` are moved to the `MissileLauncher.GuidanceSystem` sub-object.
    • For examples, see the built-in "Oberth Effect" mod.

Features

  • Armor and damage type rework.
    • Damage type has been split into two parts: "damage pattern" and "damage type". Specify them using the `DamagePattern` and `DamageTypeId` fields.
      • Available damage patterns are `Piercing` and `Explosive`. The are implemented on the program level and determine how the weapon deals damage.
      • Damage types are moddable. Built-in damage types are "Kinetic" (`OberthEffect/Kinetic`), "Energy" (`OberthEffect/Energy`), and "Explosive" (`OberthEffect/Explosive`).
    • Armor has been converted into "armor types". Multiple blocks can share an armor type. Specify it or a block using `ArmorTypeId` field.
      • An armor type can define incoming damage multipliers. For example, the built-in point defense target armor type (applied to missiles) takes 5x damage from explosive damage.
  • Auto-generated JSON schema
    • To help in creating spec files, JSON schema are auto-generated by the game upon launch.
    • Once a JSON schema has been associated, intellisense should activate and make editing much easier.
    • Rider users can configure JSON schema associations in Settings > Languages & Frameworks > Schemas and DTDs > JSON schema mappings. Here's an example of what that might look like:
    • VSCode users using YAML plugin by RedHat can configure JSON schema associations in their settings file. Here's an example of what that might look like:
  • EXPERIMENTAL: Code modding
    • Modders who wish to do so can create custom block components to do exactly what they want.
      • This is the reason for a lot of breaking changes in the block spec files.
      • The YAML type tags (e.g. `!OmniThruster`) are there to allow correct parsing of spec files.
    • There is no constraints on what a code mod is allowed to do. Only run mods from trusted sources!
      • Code mods are disabled when first detected and must be manually enabled.

Internally, this is a big update with a lot of changes to interacting systems, so things might break!

Files

Linux.zip 41 MB
Aug 24, 2022
MacOS.app.zip 65 MB
Aug 24, 2022
Windows.zip 41 MB
Aug 24, 2022

Get Oberth Effect

Download NowName your own price

Leave a comment

Log in with itch.io to leave a comment.