Skip to content

Releases: KristalTeam/Kristal

v0.3.1

14 Apr 02:08
Compare
Choose a tag to compare

Changelog

Fixes:

  • Fixed battles not ending correctly due to the new text system

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.

v0.3.0

14 Apr 00:56
Compare
Choose a tag to compare

A significant update to Kristal. This will break all existing mods due to data format changes, check the Kristal data folder for examples of the new data structure.

Changelog

Additions:

  • Added Shops (no example mod shop yet)
  • Filled out credits page
  • Added lots of features to the in-game console, including colors and selection and multiline support
  • Added PartyMember.soul_color for customizable soul color (in menus and battle)
  • Added Fader object, and added fading in on mod load
  • Added proper support for text font changing
  • Added many getter functions to items
  • Added canEquip and getReaction functions to items and party members
  • Added Map:onEnter callback
  • Added BattleCutscene:choicer, works the same as WorldCutscene:choicer
  • Added skip and advance options to textboxes
  • Added [func] text command and functions option (works like reactions)
  • Added more Noelle sprites to the engine
  • Added Character:getPartyMember, Battle:openUI, Battle:setSelectedParty, Soul:shatter, Sprite:set

Changes:

  • Reformatted all data!
  • Renamed script property in certain map objects to scene
  • Second argument for Class is now id, which sets the id of the class for registry purposes
  • Removed datamod, extend and replace existing data to modify it
  • Made non-function debug hotkeys require CTRL
  • Added super.super (repeatable), to call the super function of a super function
  • Made walkTo and slideTo move characters in a linear angle
  • Allow movement during fade-in from a room transition
  • Added more characters to number fonts to render all numbers
  • Added Utils.lerpPoint in place of Vector.lerp and removed internal usages of the Vector library
  • Support for faceless dialogue reactions
  • Allow DialogueText to take a list of text and advance through it, and a callback when done
  • Better support for custom DarkMenu buttons

Fixes:

  • Fixed corrupted images hardlocking Kristal
  • Fixed issues with Class("include_id")
  • Fixed text processing before being added to the stage
  • Fixed inputs not resetting on crash
  • Fixed 0-width/height rectangle colliders not rendering
  • Fixed Draw.scissor not functioning correctly
  • Fixed crash if a cutscene removes World
  • Fixed dark transitions drawing doors wrong

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.

v0.2.0

07 Apr 04:30
Compare
Choose a tag to compare

Changelog

Additions:

  • Added Libraries, for easily sharing code, data, and assets between mods
  • Added mod favoriting on the main menu
  • Added Battle:powerAct for ACTs that cast spells (DualHeal, Red Buster)
  • Added face and facec text commands, to change portrait mid-dialogue
  • Added PartyBattler:removeHealth(amount)
  • Added custom status icon support for the enemy display list in battles
  • Added registerTextCommands mod callback
  • Added Item:getDescription for dynamic descriptions
  • Added Game:getActLeader, which returns the party member with the greatest soul_priority who can ACT
  • Added Utils.getAnyCase(tbl, key) utility function
  • Moved some cutscene functionality to other places:
    • World:getCharacter, World:detachFollowers, World:attachFollowers, World:attachFollowersImmediate
    • Character:walkTo, Character:slideTo
    • Follower:returnToFollowing

Changes:

  • Renamed LAYERS to BATTLE_LAYERS
  • Renamed old face text command to react (the small reaction popup text in dialogue
  • Added keep_facing argument to WorldCutscene:walkTo, Character:move, Character:moveTo, and Character:walkTo
  • Changed layer argument in World:spawnObject to accept a number or map layer
  • Removed Wave:getEnemyRatio
  • Removed World.layers["objects"] and World.layers["tiles"]
  • Removed Character "exact position" system
  • Added run timer reset grace period
  • Added facing property to transition events

Fixes:

  • Fixed animations not accepting sprite tables
  • Fixed misaligned battle fader
  • Fixed issue hooking parent classes multiple times
  • Fixed DarkBox not rendering alpha correctly
  • Fixed Sprite:setFrame mid-animation not affecting animation progress
  • Fixed World.width and World.height not updating on map change
  • Fixed console inputs being affected by rebinding
  • Improved load times a little bit

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.

v0.1.2-beta

22 Mar 20:05
Compare
Choose a tag to compare

Small update for Kristal. 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.

Additions:

  • Added DrawFX, effects that can be applied to objects for various visual effects (replaces Sprite.color_mask)
  • Added spell tags, such as rude, ice, and spare_tired (replaces Spell.pacify)
  • Added Collider.invert and Collider.inside, to invert collision detection or check for collision fully inside the collider
  • Added Solid object for battles (WIP)
  • Added TARGET_MOD to vars.lua, which, given a mod id, makes the engine focused around a single mod (no mod list)
  • Added Encounter:getDialogueCutscene, which can return arguments for startCutscene to start a cutscene at the end of a turn instead of showing enemy dialogue
  • Added Soul:onDamage callback
  • Added Character.soul_offset, to determine where a character's soul comes out from their sprite
  • Added various functions:
    • Game: addPartyMember, removePartyMember, movePartyMember
    • World: spawnNPC, spawnObject, stopCutscene
    • WorldCutscene: spawnNPC, transition, startEncounter

Changes:

  • Renamed all portrait sprites
  • Changed EnemyBattler:getAttackTension to use 0-100 values
  • Renamed World:addFollower to World:spawnFollower
  • Made ACT description accurate in Chapter 2
  • Made holding down cancel at the start of a wave not slow you down
  • Made glowshard use datamod for chapter differences
  • Added replace argument to Cutscene:after(func, replace)

Fixes:

  • Adding 0 mercy now shows "Miss" instead of "+0%"
  • Fixed party members reviving at 0 hp
  • Fixed battle cutscenes resetting downed sprite
  • Made require work correctly in mods
  • Fixed various crashes on cutscene ending
  • Fixed nil target not getting checked by HealItem
  • Fixed "Max" not displaying if healing was exactly enough to max a character out
  • Fixed battle textbox portraits not clearing correctly
  • Fixed shaky text (and other draw-every-frame text) drawing previous text from setText

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

v0.1.1-beta

21 Jan 23:16
Compare
Choose a tag to compare
v0.1.1-beta Pre-release
Pre-release

Small update for Kristal. 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.

Additions:

  • Added onFootstep function to Mod, Map, and Character, which takes an argument for the character (only in Mod and Map) and which step it is (1 or 2)
  • Added Timer:everyInstant, same as Timer:every but calls the function once immediately
  • Added World:spawnObject to conveniently add an object to World
  • Added Stage.timer, easily accessible anywhere via Game.stage.timer
  • Added EnemyBattler.encounter variable
  • Added Anchor(ox, oy) object, where ox and oy are a percentage from 0-1, and the Anchor object will stay anchored to that percentage of the parent's width and height. For example, Anchor(0.5, 0.5) will always be centered on its parent.

Changes:

  • Moved bullets' scale and origin to the bullet itself, instead of their sprite. This means bullet hitboxes are no longer centered, they are now relative to the bullet's topleft, and changing origins of the bullet itself works how you would expect. This may break your bullet if it defines a custom hitbox, scales/rotates its sprite directly, or adds a child to itself!
  • Moved EnemyBattler.tension_attack_divider to a function, EnemyBattler:getAttackTension
  • Renamed EnemyBattler:fetchEncounterText to EnemyBattler:getEncounterText
  • Added "after" function argument to Character:setAnimation
  • Allow enemies to not have encounter text
  • Made "height" argument of Wave:setArenaSize optional
  • Allow ActorSprite to be initialized with a string (actor ID) instead of an Actor directly
  • Allow Utils.angle to take objects as arguments.
  • Allow Utils.clampMap arguments to be passed in any order

Fixes:

  • Fixed tile alpha blending
  • Fixed Object:setLayer not properly updating children
  • Fixed hooks not applying to subclasses
  • Fixed inconsistency with Deltarune for exiting certain battle menus

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

v0.1.0-beta

04 Dec 20:52
Compare
Choose a tag to compare
v0.1.0-beta Pre-release
Pre-release

First beta release of Kristal. 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.

Todo:

  • Shops
  • Light world support
  • Auto battlers (Chapter 1 Susie)
  • Mod libraries
  • Full menu customization

Known issues:

  • Frequent Z-fighting in the overworld

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