Beta 0.6.4 released. Important features: mod repositories, full mod management from standalone client, initial pass on particle system, new quests, locations, NPCs, and enemies, balancing, and bug fixes.
Note: Apologies, but due to the nature of this release (with respect to mod management, and the expanding world) a full client / server download is recommended. Also, the public servers are going to see a complete reset with this release. This likely will not occur again for a few months though. :)
Support for mod repositories allows for players and server ops to quickly and easily located a wide range of world and server mods. A mod repository is a location on the internet that curates a collection of mods, and is defined in a repository.ldn file. The standalone client also provides a UI for managing repositories, and for installing mods provided by the registered repositories, located in the options -> setting list.
An ANT task has also been created to facilitate the creation of the repository.ldn file.
Full Mod Management From Standalone Client
Finally, players can completely manage all aspect of their installed server and world mods without ever leaving the standalone client UI. Available functions for both server and world mods are install, enable, disable, and remove. World mod toggling can also be performed on a per world basis. Also, the need to host world mods in each world’s file structure has been eliminated. Now, each world pulls its world mod implementations from a localized central cache.
Finally, the standalone client and world configuration property keys are now displayed in the form of an editable select box. You can choose a predefined key or enter a custom one.
The first pass at adding a particle system is complete. You can play with it at Client.lugdunon.net! Needless to say, this will likely evolve a great deal before the 1.0.0 release, but the core is now in.
The world has grown, with the addition of new areas to explore, NPCs to interact with, enemies to combat, and a dozen new quests await completion!
A second artist, the very talented Becca Bair has begun work on an alternate tileset, dubbed 'Tupelo'. Only a few of the terrain layers have been completed so far, but it is exciting to look forward to the option of a second set of art to choose from when creating your world!
Weapons and tools have all had their durability increased by 100%, except for the stone grade items which have had a durability increase of 150%. Also, weapons and tools now require 50% less stamina to use across the board.
- Fixed an issue that was causing erroneous logging during the update process.
- Fixed an issue that was causing quest CountableItemBasedProgress implementors with a specified itemType from properly registering.
- Fixed another issue that was causing a crash on quit with MacOS.
- Cross-origin images are now initialized properly in order to not 'taint' any canvases they drawn onto.
- Fixed an issue that was causing the standalone client settings to fail to properly initialize if the codehelper APIs are unavailable. game.client.getPublicIp() will now return "Service Unavailable" in that case.
- Fixed an issue that was causing unnecessary escapes of forward slashes in JSON strings.
- Fixed an issue with the minimap not tracking correctly when near a map boundary.
- Fixed an issue that was causing the light map to not be applied correctly on the minimap.
- Fixed an issue with the quest editor not properly resetting its modified flag when a quest is saved.
- Fixed an issue with the quest editor not properly reloading the current quest when saved.
- Fixed an issue with the quest editor not exiting the wait state when saving a new quest.
- Fixed an issue with countable base quests not properly persisting their completion state.
- Fixed an issue that was preventing the item reward completion condition UI from rendering.
- Fixed an issue that was preventing the placeable removal abandon condition UI from rendering.
- Fixed an issue that was causing a server-side error when occasionally removing metrics listeners.
- Fixed an issue that was allowing multiple shutdown threads to exist simultaneously. This is likely the issue that was causing the standalone client world corruption.
- Fixed an issue with net.lugdunon.state.quest.condition.completion.reward.ItemReward that was causing issues with saving quest data.
- Fixed an issue that was causing RECIPE:CRAFTING.RECIPE.ID to appear in several quest summaries. Read that as 'I totally forgot to implement the following feature for 0.6.3'.
- Fixed match for net.lugdunon.world.defaults.compendium.CraftingRecipeLinkParameterFilter to disregard a trailing '.'.
- Fixed match for net.lugdunon.world.defaults.compendium.InstancedPlayerItemLinkParameterFilter to disregard a trailing '.'.
- Fixed match for net.lugdunon.world.defaults.compendium.ModifierLinkParameterFilter to disregard a trailing '.'.
- Fixed match for net.lugdunon.world.defaults.compendium.SpellLinkParameterFilter to disregard a trailing ‘.’.
Other Changes of Note
- Renamed the primary sprite set to 'Clover' net.lugdunon.world.clover.sprite.
- Renamed the primary tileset / ui / icons art set to 'Clover' net.lugdunon.world.clover.tui.
- Added the beginnings of a second tileset / ui / icons art set named Tupelo, featuring the work of Becca Bair: net.lugdunon.world.tupelo.tui.
- Updated all mod.json artifact URLs to not require forward slash escapes.
- Progress and wait dialogs now block all input and UI elements when active.
- Player triggers for placeables now supports npc-specific triggers in addition to player character triggers.
- Player triggers for placeables now support two modes: stop on tile, and move through tile.
- Added support for subsystems that don't require an implementation class.
- Added support for subsystems that don't require any persistent storage.
- Added ICONS subsystem.
- Added TILESET subsystem.
- Added UI subsystem.
- Removed the icon.config server config property.
- Removed the tileset.config server config property.
- Removed the ui.config server config property.
- Added keybinds to hook into the new screenshot APIs (defaults are F1, F2, F3 for the three flavors: undecorated, decorated, and full).
- Added support for a player trigger handler attached to a placeable item. The current instance triggers have been updated to use this new feature.
- Added net.lugdunon.state.item.trigger.player.IPlayerTrigger to the server-side code base.
- Added net.lugdunon.state.item.trigger.player.InstanceTransistionPlayerTrigger to the server-side code base.
- Added net.lugdunon.state.item.trigger.player.LinkToStatePlayerTrigger to the server-side code base.
- Added net.lugdunon.state.item.Item.isPlayerTriggered() to the server-side code base.
- Added net.lugdunon.state.item.Item.getPlayerTrigger() to the server-side code base.
- Removed net.lugdunon.state.item.PlaceableItemInstance.isInstanceTrigger() from the server-side code base.
- Removed net.lugdunon.state.item.PlaceableItemInstance.getInstanceTriggerDef() from the server-side code base.
- Added net.lugdunon.state.character.behavior.BaseBehavior.reinitStates() to the server-side API.
- Added net.lugdunon.state.character.behavior.core.CycleBehavior to the server-side code base.
- Added net.lugdunon.state.character.behavior.core.FaceDirectionBehavior to the server-side code base.
- Added net.lugdunon.state.character.behavior.core.PerformActionBehavior to the server-side code base.
- Added a new item type that allows GMs to create transitions between two points in the same instance. This will allow players to travel between floors in a
- house, or to descend deeper into a dungeon's depths.
- Implemented a process runner API for spawned-process management and interaction in the standalone client code base.
- ConsoleParameterFilters.Codex now indicates if a parameter filter has a client-side implementation.
- Added net.lugdunon.Game.INFINITE_COMPLETE_THRESHOLD to the server-side API.
- Added net.lugdunon.Game.isShutdownInProgress() to the server-side API.
- Moved standalone client automatic shutdown when the server super user disconnects from net.lugdunon.command.core.console.QuitCommand to
- net.lugdunon.state.State.invalidateAccount(Account a).
- Parameter filter support extended for use in text block on the client-side.
- Added game.filterText(text,actor,props) to client-side API.
- Added net.lugdunon.command.core.console.parameters.IParameterFilter to the client-side code base.
- Added net.lugdunon.command.core.console.parameters.IParameterFilter.hasClientSide() to the server-side API.
- Added net.lugdunon.command.Interpreter.listClientSideParameterFilters() to the server-side API.
- Added net.lugdunon.world.defaults.compendium.CraftingRecipeLinkParameterFilter to the client-side code base.
- Added net.lugdunon.world.defaults.compendium.InstancedPlayerItemLinkParameterFilter to the client-side code base.
- Added net.lugdunon.world.defaults.compendium.ModifierLinkParameterFilter to the client-side code base.
- Added net.lugdunon.world.defaults.compendium.SpellLinkParameterFilter to the client-side code base.
As always, the full change log for 0.6.4 is available here.