The Quality of Life Update
·
79 commits
to master
since this release
Who're you gonna QoL? CYF!
That's right, thanks to @WD200019 and only a tiny bit to me, CYF is now cleaner than ever, with a brand new mod selection UI, and a TON of Quality of Life changes! Because WD actually cares about making things easier while I don't! :D
MAIN CHANGES AND FEATURES
-
Important changes:
- EXTREME performance increase!! CYF will no longer eat up all your memory when you play mods, and can run as smoothly as Unitale 0.2.1a!!! No more restarting CYF when it lags too much!
- We've upgraded to Unity 2018.2.13f1, and with it comes better support for Mac and Linux!!
- We have re-worked the main menu screens! The Mod Select screen now looks a lot nicer, it shows customizeable preview images of mods, it supports browsing with the keyboard, you can't accidentally wipe Real or AlMighty globals anymore, it remembers your most recently picked Mods and encounters...it's just so much nicer to work with!
- Full-screen now works perfectly - it doesn't kick you out randomly anymore, F4 works for entering and exiting it, and on Windows, the game window no longer jumps around when you exit fullscreen!
- Cleaned up the encounters included with the engine. Please copy the new Mods folder over your own if you're transferring mods from an older version, to replace the old engine-included mods. Then, you can proceed to delete the "Title" and "OverWorld Test" (not "@overworld Test") mods!
- The documentation should now no longer have missing information or weird wording, and it now lists the Lua types for every variable and function!
-
New features:
- Animated sprites now support skipping forward or backward, speeding up or down, and pausing and resuming with
sprite.currentframe
,sprite.animationspeed
andsprite.animationpaused
- New text command
[alpha:xx]
supports transparent text, and text objects can now be moved above or below each other withtext.MoveAbove
andtext.MoveBelow
- The Inventory object now supports
Inventory.AddItem
,Inventory.RemoveItem
andInventory.GetType
, allowing for very easy adding, removing, and even swapping of items - The Misc object now supports
Misc.cameraX
andcameraY
,Misc.MoveCamera
andMoveCameraTo
andMisc.ResetCamera
, which let you move the game camera outside of its normal 640x480 restraints!
- Animated sprites now support skipping forward or backward, speeding up or down, and pausing and resuming with
MAJOR FIXES AND IMPROVEMENTS
-
Engine:
- Fixed enormous lag caused by old Mod scripts never being unloaded.
- Better support for Mac and Linux, including importing the Arial font, and upgrading to a better version of Unity.
- Fixed F4 not exiting fullscreen mode, and fixed fullscreen mode exiting upon changing scenes.
- Fixed game window jumping to the top-left corner of the monitor when exiting fullscreen. (Unfortunately, this fix is Windows-only, as this is a workaround for a Unity bug)
-
Overworld:
- Added support for slower framerates in the overworld. You should now move at the same speed no matter what! Also, the Player's walk animation and speed are now closer to Undertale's, so it won't feel really slow anymore.
- Fixed a bug where dying in an encounter entered from the Overworld would crash your game with an error.
-
Bullets:
- The pixel-perfect collision system has been MAJORLY optimized. It should now cause much less slowdown than it ever has before!
MINOR FIXES AND IMPROVEMENTS
-
Sprites:
- Fixed a bug where using the ONESHOTEMPTY sprite animation mode created a 1x1 white pixel instead of an empty sprite, when an animation was done.
-
Text and Text Objects:
- Fixed a bug where the second line of text and beyond would sometimes be positioned strangely. Text positioning is now 100% consistent!
- Text objects should now properly allow using SetFont, color/color32, alpha/alpha32, SetEffect and SetVoice on the same frame the object is created.
- Fixed a bug where [noskip] would not count on the very first frame a line of text was loaded, meaning that button mashing could skip text and potentially skip important text commands.
- Fixed [next] and [finished] not working in text objects.
- Fixed Text.DestroyText not actually destroying text objects, instead leaving them lingering around infinitely.
-
The Misc Object:
- Fixed the engine choosing the wrong window to act as the game window. You no longer have to restart your computer to fix this, only CYF!!
- Misc.FullScreen is no longer read-only!
-
Lua Encounters:
- Using State("NONE") now fully pauses the engine. Useful if you want to add a pause button, or just totally disable certain parts of the engine! It even works during waves!
- For those who like to toy with the engine: encountertext can now be set without going through DEFENDING! Just use State("ACTIONSELECT").
- Replaced State's often-incorrect "The state X isn't a valid state" error message with a better, more descriptive one.
- Fixed and cleaned the default encounters included with the engine, for good!