8000 Release Beta 4.4.0 · jakubg1/OpenSMCE · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Beta 4.4.0

Compare
Choose a tag to compare
@jakubg1 jakubg1 released this 26 May 12:45

Time for Beta 4.4.0! It introduces a few changes, mostly regarding collectibles. Enjoy!

As always, the full list of changes can be found here.

Changelog

Game development

  • The config/powerups.json file has been renamed to config/collectibles.json.

  • A few changes inside that file have been made as well:

    • Some new fields have been added:
      • pickupParticle - A one-time particle packet which is launched when that collectible is collected.
      • spawnSound - A sound effect launched when the collectible is spawned.
      • dropEffects (optional) - A list of effects to be executed when a powerup falls off the board without the player catching it.
    • The fields pickupName and pickupFont are now optional. If not set, no label will spawn upon picking that collectible up.
    • The field effects is now also optional.
  • A few new level effects have been added:

    • grantScore - Adds score to the player. It has one field, score - an integer value determining how much score to add.
    • grantCoin - Grants a coin to the player.
    • incrementGemStat - Adds 1 to the gem stats for the current level.
  • Level format changes:

    • A new field, gemGenerator, has been added. It contains a reference to the collectible generator which is now used to spawn gems.
    • The gems field has been removed.
  • Collectible generator changes:

    • The collectible generators data structure has been completely revamped.
      • Each collectible generator is an entry of a certain type.
      • Every collectible generator entry evaluates to a list of collectibles.
        • That means each generator now returns a list of collectibles, and not either one or nil.
      • There are four types of entries, for now:
        • "collectible"
          • Has one field, name.
          • Always evaluates to a single collectible.
        • "collectible_generator"
          • Has one field, which is also called name.
          • Evaluates to a given collectible generator result.
        • "repeat"
          • Has two fields: entry and count.
          • Evaluates an entry count times, and returns a list of all collectibles evaluated from each iteration.
        • "random_pick"
          • Has a single field: pool. It's a list of entries, which have an entry field and an optional weight field, which defaults to 1.
          • Evaluates all choices from the pool, and then picks one randomly.
            • Empty choices are ignored.
            • The choice weights can be modified by giving an appropriate weight value.
    • A new condition type has been added: cmp_latest_checkpoint.
      • Compares the current player's latest checkpoint value.
      • There are three optional fields for this condition: min, max and value.
      • If the value is greater than min, lower than max or not equal to the value, this condition does not pass.
      • If either of the fields is missing, the corresponding check is not performed.
      • Examples:
        • This condition will pass if the value is between 1 and 3, both inclusive:
          {
              "type": "cmp_latest_checkpoint",
              "min": 1,
              "max": 3
          }
          
        • This condition will pass if the latest checkpoint value is equal to 5:
          {
              "type": "cmp_latest_checkpoint",
              "value": 5
          }
          
  • config/gameplay.json changes:

    • The field sphereBehaviour.attractionSpeed has been split into attractionSpeedMult and attractionSpeedBase.
      • The old formula for the maximum magnetization speed was attractionSpeed * max(combo, 1).
      • The new formula is now attractionSpeedBase + attractionSpeedMult * max(combo, 1).
      • In order to retain current behavior, set attractionSpeedBase to 0 and rename attractionSpeed to attractionSpeedMult.
  • config.json changes:

    • The file now looks like this:
    {
    	"name": "Luxor",
    	"window_title": null,
    	"engine_version": "v0.40.0",
    	"native_resolution": {
    		"x": 800,
    		"y": 600
    	},
    	"rich_presence": {
    		"enabled": false
    	}
    }
    
    • Fields:
      • name (optional): The game name to be displayed in Rich Presence and in the game window.
      • window_title (optional): How the window should be named.
      • engine_version: Specifies the version a game is for. Not really used at the moment, but mandatory.
      • native_resolution: The native resolution of the game. Same as above.
      • rich_presence: An object which contains the following field:
        • enabled: Should be always true, unless you want the game to be a secret.
          • Loading a game with this flag set to false causes Rich Presence to disconnect.
  • Powerups, both internally and in runtime.json, are now stored simply by their names instead of an object with type, name and color fields.

  • Bonus scarabs, scorpions and large matches now use the, for now hardcoded, vanilla_coin.json collectible generator.

  • The level now waits for all collectibles to despawn before firing the level win callback.

Gameplay

  • The default coin drop rate has been changed to match the original Luxor game:
    # of spheres    Old   New
    3               0%    0%
    4               20%   0%
    5               40%   50%
    6               60%   75%
    7               80%   100%
    8 or more       100%  100%
    
    • You can still change it manually in modules/game.lua.

Boot Screen

  • You can now cancel edits to the settings.
  • The version label in the settings is now aligned correctly.
  • Fixed a few grammar errors in the outdated game message.

Converter

  • The Python conversion script should now work with Mac OS systems.
  • The convert.bat script will now show an appropriate message when the Python script fails, and will revert all changes if the user chooses to do so.
  • Converted levels should now land in the correct directory once again.

Bugfixes

  • Apparently none!
0