Alpha 0.5.15 released. Important features: spell school restructure, combat / spell advancements, area of effect spells / abilities, HoTs / DoTs, undeath, a hidden surprise, and bug fixes.
This is also likely to be the last release (barring any show-stopping bugs) before the launch of beta at the end of the month.
Spell School Restructure
The spell schools underwent a major restructuring this release cycle. Several new spells were added, and even more were moved and / or renamed.
Each school now has a well defined purpose:
- A scholar of light seeks to harness the very element of warmth and life, which is most associated with the abilities of healing, rebirth, and intelligence.
- A scholar of shadow communes with the unspeakable, eldritch, and hidden mysteries of the mortal realm. Magics wrought of shadow are for the most part, things of death, disease, unholy bargains, and other foul workings.
- A scholar of air strives to harness the very breath of life, and to thereby gain the aid of those in the etherial realm in order to bestow blessings and boons upon themselves and others.
- A scholar of earth toils with stone, earth, and verdure, entreating such to restrain their enemies and grant their companions freedom.
- A scholar of fire entreats the element of flame and war to grant them the power to rain down destruction upon their enemies.
- A scholar of water attempts to yoke the most powerful of the elements in their lust for power and dominance.
Each school of magic pays host to several gods and goddesses. Currently there are 5 for each school and will all be receiving some background soon.
Light and shadow also act differently depending upon whether or not your target is undead. We’ll visit that in more detail further down.
Spell schools are now defined in the etc/spellSchools.json file.
Combat / Spell Advancements
Combat and spell advancements have been added. There is a 3 tier advancement set for barehand, axe, sword, and bow combat as well as each of the six schools of magic. The tiers provide a damage / output bonus of 25%, 50%, and 100%. To accommodate, the initial damage / output of all items and spells has been greatly reduced. To become efficient with a given weapon or spell you will now need to choose your advancements accordingly.
Given that this adds a total of 30 advancements, spending your experience will now require much more consideration.
The character stats section of the main inventory window received an overhaul as well. Server mods can now easily change the layout of this section by editing the etc/subsystems/net/lugdunon/world/defaults/character/stats.json file.
Area of Effect (AoE) Spells
Area of effect (AoE) describes an ability that affects an area of the game world. In their current implementation an AoE is centered at a location and affects an area defined by a radius. There is currently one implemented AoE: net.lugdunon.state.aoe.core.ExplosionAreaOfEffect which supports an initial damage value with linear falloff (the damage lessens the farther away you are from the epicenter), sound effect, and a visual effect for all characters affected by the blast. There will be much more to come from this feature in subsequent updates, such as AoE buffs, heals, and pulse damage.
AoE definitions are defined in the etc/areaOfEffectDefinitions.json file.
HoTs and DoTs
Heal over time and damage over time spells are now in place as well. These are implemented as modifiers, and are currently available as a shadow stamina DoT, shadow health DoT, and light health HoT. Over time modifiers deliver an effect (heal, damage, etc) periodically over a set amount of time. For example, every 3 seconds for 15 seconds, or 5 total pulses.
Characters now have a flag for determining if they are among the living or undead. This will cause differing behavior with certain spells in the light and shadow schools. For instance, light heals will cause damage to the undead while shadow damage spells will heal the undead. To take advantage of this mechanic, players now have access to a spell in the shadow school called ‘Curse of Moritasgus’. This spell will turn a living player or NPC into the undead for a short amount of time. It has no effect on those that are already undead.
A Hidden Surprise
A new denizen awaits discovery in the more remote areas of the land. Beware though, for they harbor an ability that may prove to be your undoing!
- Fixed an issue with the new sign and container tool tip extensions that was causing errors with tooltips in edit mode.
- Fixed an issue where transformed items during crafting were not being updated in the crafting area.
- Fixed an issue with lapidary wheels being removed instead of having their durability updated when cutting a gemstone.
- Fixed several issues with continuing play after the removal of an item from the item definitions.
- Fixed an issue with modifiers not applying when loaded from save
- Fixed an issue with console commands sticking on /award after /award was used.
- Fixed an issue that was making trees and flowers that had been transplanted with the shovel tool to be uninteractable.
- Fixed the offset of item icons in the action buttons so that they are actually centered. Wow, that took how long to get around to?
- Fixed an issue that was causing client-side exceptions with the PlaySound commmand.
Other Changes of Note
- Added a lightning strike sound effect.
- Restructured the character stats pane in the main inventory window.
- The tooltip for an item now factors in all relevant damage bonuses when calculating the damage that an item will do.
- Added getWorldConfigProperty() and getServerProperty() APIs for much easier .cfg file property access.
- Overflowing text in the advancements window should now terminate in an ellipsis (...).
- Character stats is now implemented as a subsystem so that custom implementations can be loaded via mods.
- Added a CORE.DEAD behavior state. This behavior state is triggered upon the death of the NPC.
- Added a CORE.BEHAVIOR.DEATH behavior with net.lugdunon.state.character.behavior.core.DeathBehavior as the implementation. This behavior works similar to the player proximity behavior, except it fires a triggered action on the NPCs death.
- Extended net.lugdunon.command.core.misc.PlaySoundCommand to support falloff.
- Added spellSchools.json for easy defining of schools. Also added a description field.
- The spell dialog now shows the selected school's description above the contents.
- The server now checks to see if a spell or item exists before assigning it to a character's spellbook or inventory.
- renderSimplePercentageText now displays the value as a % and not a decimal.
- NPCs that aggro will now respond in kind if a player hits them with and AoE, debuff, or DoT.
- Added effect sprite for a shadow blessing.
- Added effect sprite for a shadow heal.
- Added String.replaceVars(delegate) to the client-side API. This utility will replace any instances of strings that begin with a '$' with the corresponding delegate's property or function. For instance $getName will be replaced with the value of delegate.getName().
- Added net.lugdunon.character.effect.PrimarySpriteColorEffect to the client-side code base. This allows for a tint or alpha effect to be applied directly to a character sprite.
- Character effects now display in any linked unit frame portraits.
- Instanced item swaps with non-instanced items that would result in an invalid non-instance item placement will now simply remove the non-instanced item.
- Dropping a non-instanced item onto a delete target (outside the dialog) will now remove the non-instanced item without a prompt.
- Added support for sound effects to item definitions.
- Added support for calling sound effects from the net.lugdunon.command.core.spell.DirectDamageCommand.
- Added a new 'Death Touch' GM game mode. With this ability, GMs can kill both PCs and NPCs with only a click. It also has a nice sound effect and support for custom /yells when a kill is performed.
As always, the full change log for 0.5.15 is available here