v0.5.0
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 regioncybertrash
: same aschest
but Cyber City styledforcefield
: block the player from going somewhere for vague plot reasons👍pushblock
: it wants to be pushed around (but not into a certifiedblockcollision
layer shape)tilebutton
: it wants to be stepped on
- Added callbacks:
Object:onStart
whenever spawned by a WaveObject: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 globalDT
orDTMULT
instead - Removed
snd_
prefix from all built-in sounds - Script events are now only removed if
once
is true, settemp
to not perma-remove - Replaced
interactscript
andreadable
events withinteractable
- World
transition
function has been renamed tomapTransition
transitionImmediate
renamed toswitchMap
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 globalRUNTIME
instead oflove.timer.getTime()
aura
property for enemies, to disable the glowing red effectmapflag
property forsetflag
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.