Skip to content

v0.5.0

Compare
Choose a tag to compare
@SylviBlossom SylviBlossom released this 07 May 19:19
· 990 commits to main since this release

A significant update to Kristal. This update includes a lot of various small changes, as well as the start of a big debug system.

Changelog

Additions:

  • Added Debug Menu (ctrl+`, bindable), for easier mod debugging!
  • Added Object Selection (ctrl+o or middle-click), to look at object information and drag them around
  • Added equipment mod option, to easily adjust starting equipment
  • Added custom mouse cursor and some mouse-related config options
  • Added enemy speech bubble customization
  • Added config options for most chapter-specific game differences
  • Added [image], [offset], and [sound] text modifiers
  • Added text alignment option
  • Added fast-forward debug key (F5)
  • Added Object.timescale variable
  • Added controllers layer, and ToggleController (toggle), which shows/hides objects with a flag
  • Added events:
    • cameratarget: locks your camera at a position inside this region (subject to change)
    • hideparty: fades out followers when inside this region
    • cybertrash: same as chest but Cyber City styled
    • forcefield: block the player from going somewhere for vague plot reasons👍
    • pushblock: it wants to be pushed around (but not into a certified blockcollision layer shape)
    • tilebutton: it wants to be stepped on
  • Added callbacks:
    • Object:onStart whenever spawned by a Wave
    • Object:getDebugInformation, Object:isDebugSelectable, Object:getDebugRectangle for debug selection
    • Too many to list for Actor
  • Added various functions:
    • Object:slideTo, Object:slideToSpeed, Object:slidePath
    • Character:walkPath, Character:convertToEnemy
    • Camera:panTo
    • WorldCutscene:getEvent, WorldCutscene:getEvents, WorldCutscene:slidePath, WorldCutscene:walkPath
    • World:getEvent, World:getEvents
    • Map:getEvent, Map:getEvents, Map:getImageLayer
    • Game:addFollower, Game:removeFollower
    • Utils.shuffle, Utils.mergeMultiple, Utils.reverse, Utils.roundToZero, Utils.roundFromZero
    • Input.getMousePosition

Changes:

  • Removed all dt arguments, use global DT or DTMULT instead
  • Removed snd_ prefix from all built-in sounds
  • Script events are now only removed if once is true, set temp to not perma-remove
  • Replaced interactscript and readable events with interactable
  • World transition function has been renamed to mapTransition
    • transitionImmediate renamed to switchMap in cutscenes, loadMap in World
  • Made battle name sprites optional
  • GameOver has been moved into an Object
  • Accurate Light World death screen and save menu
  • Use Kristal.getTime() or global RUNTIME instead of love.timer.getTime()
  • aura property for enemies, to disable the glowing red effect
  • mapflag property for setflag event, to set a map flag instead of a game flag
  • Item check variable to quickly define check text (LW only)
  • Item light variable to define whether the item goes into your light or dark world inventory
  • Image fonts are now scalable with font size in text
  • Allow binding modifiers to keys (like ctrl+shift+a)
  • Console is now accessible anywhere in the engine, and console key is rebindable
  • Many adjustments to console text input

... And a lot more I certainly missed because it's been too long since the last release!
Full Changelog: v0.4.1...v0.5.0

Instructions

Windows: Download and extract the .zip, and run kristal.exe to play
Others: Download and install Love2D, and run the .love with Love2D to play

Check out the documentation for how to use this engine, and download example-mod.zip for mod structure, as well as overworld and battle examples.