May Builds – Lycanthropy

It’s almost the end of the month, which means a fresh round of Daggerfall Unity Live Builds. May comes bearing the full lycanthropy feature from curse through to cure. If you’re the kind of Daggerfall player who just loves to wolf out (or tusk out if you dig more on wereboars) then this update is for you! Note that some spoilers are below for how lycanthropy operates and the paths to curing or managing it.

Lycanthropy

If you tangle with a stray werewolf or wereboar while out adventuring, there’s a small chance (0.6%) that you will become inflicted by their same curse. Unlike other infections, this one will bypass your normal disease resistance unless you happen to already be a vampire or lycanthrope. On the first evening after infection, you will have a dream about a “man who is less than a man”.

If you see this dream, you have just three days to find a temple healer or cure yourself through magical means. If you let the disease run its course, you’ll be cursed to hunt the innocent once per month and will be forced to shapechange when either moon is full.

 

Attributes & Skills

It’s not all bad news though! As a lycanthrope, you receive a whopping +40 to your Strength, Agility, Endurance, and Speed. You also get a +30 increase to Swimming, Running, Stealth, Critical Strike, Climbing, and Hand-to-Hand combat. If your character was already an above-average fighter with their fists and feet, they are going to make a fearsome lycanthrope.

Let’s meet Koro, he’s a level 2 Nord Warrior who loves using his fists on everything. He just had the misfortune to encounter a werewolf not long after Privateer’s Hold and was lucky to escape with only a scrape or two. He had no idea what to make of that dream a few nights back, and now finds himself mysteriously stronger and faster than ever with some unusual cravings. In that last bar fight, he just about tore the pore sod in half. He chalks all this up to a healthy diet of Ale and Fowl at the Black Wolf tavern where he currently resides in Daggerfall city. Unfortunately, having only a 48 Intelligence, Koro is unable to appreciate the irony of his new situation.

Something else Koro doesn’t know is that he can’t get sick ever again. No disease can touch him now, although poisons are still a concern.

 

Full Moons

Two moons hang over Tamriel: Massar and Secunda. These have alternating cycles where a full moon rises once every couple of weeks. Unfortunately for Koro, and even moreso for the innocents of the Illiac Bay, his first full moon is several nights after developing full-blown lycanthropy. By this stage, he has started to suspect it wasn’t just the tavern food behind all of this. His suspicions are confirmed the night after meeting with Lady Brisienna elsewhere in Daggerfall, when he wakes up in the early morning hours with a whole new set of problems.

 

Koro flees into the night past some some very startled patrons. He won’t be returning to the Bat and Scorpion anytime soon. What’s worse is he’s hungry. Hungrier than he’s ever felt before. Fortunately, it’s late at night and nobody else is around. He makes a run for the woods beyond the edge of this small one-tavern town. After running wild for the next day, he’s able to return back to his normal self.

 

Urge to Kill

For the next few weeks, Koro manages his curse by staying away from populated areas during full moons. He even discovers he can bring on the change once per day using some innate magic he now possesses. To his amazement, his body is healed fully each time he shapechanges between forms. Perhaps this won’t be so bad after all. It just needs to be managed properly.

On the month anniversary of becoming cursed, Koro finds himself hungry again. So hungry it hurts. So hungry it feels like he’s about to die. Without having hunted the innocent even once, his curse has left him with only 4 health remaining. A giant rat would probably be enough to knock him over for good.

 

After battling his urges for weeks, Koro can bear it no longer. He has to hunt, every cell in his body demands it. He watches the innocent civilians going about their business for a while, then finally gives in to the hunt. It’s the only way to make himself whole again.

direct link to gfy

While fighting as a werewolf, Koro discovers that not only can he rip the city watch to shreds in moments, he’s completely immune their basic iron and steel weapons. Finally sated, he runs back into the wilderness again to rest and recover his lost health.

 

Accessing Inventory

Several weeks later, Koro is exploring a local dungeon when the change is forced upon him by a full moon. Bafflingly, he can’t reach his pockets. How has he never noticed this before?

 

After a bit of squinting and whimpering, he discovers that he can will himself back into humanoid form for a few moments before the moon forces him to change back into a wolf again. Just enough time to loot the body of that unlucky orc.

 

The Cure

Almost a year has passed since Koro found himself cursed to be a werewolf. In that time, he’s found an uneasy peace with his life. He enjoys being relentlessly powerful, but still feels guilt when he must hunt the innocent. He dreams of ending his curse. Then one day, he finds a letter in his pack that offers redemption or death. It seems word of his monstrous life has reached the ear of a lycanthrope hunter.

 

He seeks out the Order of Arkay in Burgmont where Koro is told that to cure his lycanthropy, he must pass the disease on to another.

 

Wanting an end to the bloodshed, Koro rejects that choice. What if the one he inflicts is even more blood-thirsty than himself? Gondywyr Hawkwing is relieved and offers him another, albeit a less likely, path.

 

The Witches of Glenmoril Coven

After a series of adventures, Koro finally locates the secretive witches of Glenmoril Coven in Ilessan Hills. They’re amused by his affliction, but not immediately helpful. They put him to work with some quests to further their own goals. Without many options left, Koro does his best to make them happy.

 

Path of Hircine

Koro discovers the Glenmoril witches can summon the Daedra Hircine on any day of the year. Hircine is known to be a patron of wild things, perhaps he can offer some solution? After gathering the exorbitant summoning fee, Koro watches as the crones perform the ritual. And he is blessed!

 

Koro follows the wishes of Hircine and comes into possession of the Hircine Ring. A powerful artifact that allows him to take control of his lycanthropy.

 

So long as the ring remains on his hand, Koro is no longer forced to change on each full moon and his hunger is suppressed. He can shapechange any time at will. He has all the benfits of his curse and none of the disadvantages. Not a bad outcome for one adventurer.

 

Path of Water

If Koro failed to summon Hircine, or could not afford the ritual, there is still another path. After running several quests for the witches, he is one day given a vial of Pure Water to transport to a regional Mages Guild. Did one of those crones wink when handing him that water?

 

While in transit with the Pure Water, Koro is beset upon by vampires, werewolves, and wereboars in great numbers. Why are they all so desperate for this vial? Thinking of his own affliction and that wink earlier, Koro takes a sip of the water. After a moment of dizziness, he finds his mind finally clear and to be mercifully cured of his lycanthropy.

 

Path of Blood

And what if Koro was a different kind of Nord? Right at the start, if he had taken the offer to pass on his curse for a cure. What would have become of him? If that road had been taken, it leads to a sickly child and a horrible choice. Perhaps even now, its not too late for him to turn away and find another way.

 

 

New Enchantments

 

Strengthens Armor / Weakens Armor

Strengthens Armor adds +5 to your armour class across all item slots. Does not stack with enchantments of this type on other items, or with Weakens Armor.

Weakens Armor reduces your armour class by -5 across all item slots. Does not stack with enchantments of this type on other items, or with Strengthens Armor.

 

Improves Talents

If you already have a special talent like Acute Hearing, Athleticism, or Adrenaline Rush, this enchantment will buff those gifts even further. Has no effect if you are not so gifted to start with.

 

Health Leech

This side-effect will cause you damage depending on the type:

  • Whenever used – You will be damaged every time you strike with a weapon or cast from an item so enchanted by this malady.
  • Unless used daily – You must strike with a weapon or cast from an item so enchanted once per day, or you will start taking damage every few minutes. This damage will occur even while trying to rest.
  • Unless used weekly – You must strike with a weapon or cast from an item so enchanted once per week, or you will start taking damage every few minutes. This damage will occur even while trying to rest.

 

Loan Improvements (Pango)

Any long-time Daggerfall player knows how to exploit loans from banks. You can go to any bank, ask for a huge amount of gold, then simply never pay it back. Incredibly, there are almost no consequences for doing this. We all know banks aren’t that friendly. Pango has taken the time to flesh out this feature somewhat to make it a bit easier to use and offer some minor consequences for defaulting on a loan.

First up, your loans can now be tracked at any time by clicking on your gold total on the Character Sheet (F5). This will show both your active bank accounts across regions in addition to any open loans.

 

You will also get quick reminders as the due date approaches.

 

If you default on your loan, the bank will first try to recover whatever is in your account. If they’re able to pay the loan back this way, then no other action is taken. But if you can’t repay your loan, the bank will never do business with you again and you will lose some reputation in the eyes of the law, you scoundrel.

 

There is also some talk of one day bounty hunters coming to recover your gold on behalf of the bank. While this remains mercifully unimplemented, it might be time to repay your loans before the banks start sending out heavily armed thugs.

 

General Fixes & Improvements

Thanks to everyone involved, we also have the usual round of bugs fixes and incremental refinements.

  • Fix issues with WallPropPositioner and ObjectPositioner (TheLacus)
  • Fixed scale of MASK04I0 (TheLacus)
  • Fixes to UV unpack algorithm (Ferital)
  • Exclude ship from UV processing (Ferital)
  • Fix escape navigation in custom character creator (Numidium)
  • Implement Skull of Corruption (Numidium)
  • Implement Ring of Namira (Numidium)
  • Weaken shadows under scattered light (Pango)
  • Banking improvements (Pango)
  • Fix head-dipping from projectiles (Pango)
  • Spell missiles hit sounds spatialization (Pango)
  • Fix argument out of range exception (Pango)
  • Fix unhandled map items (Hazelnut)
  • Handle %kno macro for quests (Hazelnut)
  • Implement holiday effect for Sun’s Rest (Hazelnut)
  • Implement holiday effects for free and half-price curing (Hazelnut)
  • Implement holiday effects for half price sales (Hazelnut)
  • Fix random spymaster NPCs to behave like non-guild (Hazelnut)
  • Vampire / lycanthrope spells now removed after cure (Interkarma)
  • Vampire / lycanthrope quests now terminated after cure (Interkarma)
  • MessageBox will wrap words rather than characters in most cases (Interkarma)
  • Remove black panel when buying spells (Interkarma)
  • Fix crash when trying to spawn guards before location loaded (Interkarma)
  • Fix dye handling for hand-to-hand weapon images (Interkarma)
  • Fix city watch having weapons above iron or steel (Interkarma)
  • NPCs are now more knowing and helpful when asked for directions, provided player is not a criminal and or scum (Interkarma)
  • Implement Hircine Ring (Interkarma)
  • Fix null exception in PlayerMotor (Interkarma)
  • Fix importing classic characters in a weakened state, e.g. saved while lycanthrope needs to kill (Interkarma)
  • Implement “were_sateme” console command (Interkarma)
  • Implement “were_cureme” console command (Interkarma)
  • Supposedly secret Thieves Guild and Dark Brotherhood buildings are no longer used for random quests (Interkarma)
  • Quest system will no longer use a building if already involved in another quest (Interkarma)
  • Quest system will no longer use a dungeon if already involved in another quest (Interkarma)
  • Quest system will now use a random fallback dungeon if desired type (e.g. “dungeon4”) is not found in region (Interkarma)
  • Custom magic enchantment data now serialized (Interkarma)
  • Fix comment handling in QRC block to allow dash “-” character in text blocks (Interkarma)
  • HideNpc now supports both “hide anNPC” and “hide npc anNPC” variants (Interkarma)
  • DestroyNpc now supports both “destroy anNPC” and “destroy npc anNPC” variants (Interkarma)
  • Overlapping action door in dungeons are now disabled, including action door overlapping exit position (Interkarma)
  • Fix HideNpc/DestroyNpc from being ignored when assigned at same time quest ends (Interkarma)
  • Holding down run key while standing still will no longer drain stamina (Interkarma)

 

For more frequent updates on Daggerfall Unity, follow me on Twitter @gav_clayton.

April Builds – Enchantment System

New live builds are now available for the month of April. This release brings a completed item maker UI along with an Enchantment system to drive it all behind the scenes. In this post, I’ll break down some of the new features around enchanting without going too deep into the technical side of things. If you’d like a more technical primer on magic in Daggerfall Unity check out the Magic & Effects Back-End post from last year.

If you have an existing character with “on equip” type enchantments, I recommend unequipping then equipping those magical items again after upgrading to latest version. This will ensure any of the old intermediate effects are deactivated and the new effects are activated correctly.

Item Maker UI

This is the front-end we’re all familiar with. It is here, through the magical power of menus, that new enchanted items are forged. Select your item, add some powers, balance them out with a few side-effects, and give the item a cool name. Then provided you have the gold, a new magic item with all your custom settings will be added to your inventory.

 

There’s not much more to say about the item maker. While it’s the main feature of this release, everything is fairly utilitarian and most of you are probably familiar with this UI from classic. I’ve just made a few tweaks like adding scroll bars and proper text clipping, and fixed a few minor bugs from classic. The really interesting stuff is what’s happening behind the item maker UI with the Enchantment system offering all these powers and side-effects for use.

I also want to thank Hazelnut for his earlier work on the item maker UI layout. I could just get stuck in to wiring everything up without the rather manual process of mapping out buttons and list boxes. It was great to skip that this time, so thank you Hazelnut!

 

Available Powers & Side Effects

You can use the Effect System Status roadmap page to see which effects have been implemented to date (enchantment powers and side-effects are listed about half-way down page). At time of writing, I’ve implemented 18 of 26 classic enchantments in time for April builds and I plan to complete these before end of May if possible.

Following are the power enchantments (positive effects) available at the item maker:

  • Cast When Used (related spells)
  • Cast When Held (related spells)
  • Cast When Strikes (related spells)
  • Extra Spell Points (during winter, spring, summer, fall, full moon, half moon, new moon, near undead, daedra, humanoids, animals)
  • Potent Vs (undead, daedra, humanoids, animals)
  • Regenerate Health (always, in sunlight, in darkness)
  • Vampiric Effect (at range, when strikes)
  • Increased Weight Allowance (25% additional, 50% additional)
  • Enhances Skills (related skills)
  • Repairs Objects
  • Absorbs Spells
  • Feather Weight
  • Good Rep With (commoners, merchants, scholars, nobility, underworld, all)

And the side-effect enchantments (negative effects) available are:

  • Item Deteriorates (all the time, in sunlight, in darkness)
  • User Takes Damage (in sunlight, in holy places)
  • Low Damage Vs (undead, daedra, humanoids, animals)
  • Extra Weight
  • Bad Rep With (commoners, merchants, scholars, nobility, underworld, all)

A lot of work and testing went into implementing these effects exactly like classic. In a few cases not enough information was available (e.g. Potent Vs / Low Damage Vs formulas) so a “best effort” was made to give these enchantments solid functionality based on their descriptions. These can easily be tuned later once correct formulas are known.

I have also matched classic in configuring enchantment properties. This covers adding the same effect more than once (some can, others cannot) and which effects exclude others (e.g. Potent Vs parameters exclude opposing Low Damage Vs).

 

Going Custom

As with other parts of Daggerfall Unity, the Enchantment system is flexible and extensible. Its not enough just to reproduce all the classic Daggerfall enchantments, the design must allow for creating new experiences via mods that could never exist in classic. This has been a key design of Magic & Effects from the start, and the Enchantment system is no different.

For those of you who like to play with the code and build code-driven mods, I’ve included a sample custom effect called “Mage Light” with this release. I won’t spend too many words on this now, because adding custom effects is still a work in progress. This crosses multiple systems and I still have some bugs to iron out. But if you’re interested in creating mods with new spell effects in the future, keep an eye on the following areas in code for an example to start from.

  • EntityEffectBroker.OnRegisterCustomEffects event – capture this event in your mod to register custom effects.
  • EntityEffectBroker.RegisterCustomEffectDemo() – shows the broad steps of registering a new effect with the magic system and exposing it to different services.
  • MageLight.cs – a sample effect designed to be non-trivial without being overly complex.

The Mage Light effect itself is nothing special. It just drops a coloured light around player based on which variant of the effect is used. It exposes five variants: Inferno, Rime, Venom, Storm, Arcane. The interesting part is how the code exposes the effect to the Spell Maker UI.

 

And a custom spell bundle to the spell merchant UI:

And to the item maker UI:

I almost have everything setup for custom effects to operate across all magic crafting stations and systems, but still have more to do. Custom spells don’t currently trigger from the enchantment system, and they don’t display their name correctly when using Info to examine an item. I’ll keep rounding this out as I can. If you’re interested in building custom effects, keep an eye on the above as it develops. Playing with the existing enchantment effects is also a great way to learn how the system operates behind the scenes.

There’s a lot more to the enchantment system than I can cover here, so let’s take a look at a couple of other changes this release.

 

Stuck Handling

You might have encountered a particular cave block with a sticky floor that traps the player. The problem here is bad geometry in the classic game data. A single-sided polygon is poking through the floor, and due to a quirk in Unity’s controller physics the player will become hopelessly trapped. This release now includes handling to automatically detect when player is stuck on this kind of low geometry and teleport them past it. Here’s an example of this in action after the handler determines player is stuck and kicks in to resolve. You’ll notice movement is not smooth while the handler teleports player forwards in small steps until they become unstuck, but it’s still better than the indignity of being welded to the floor.

 

Head Dipping

There are a few tight spots where the player capsule can’t move forwards because surrounding geometry is too low for capsule to pass. This doesn’t happen in classic Daggerfall as it doesn’t use modern physics, but it’s a problem in Daggerfall Unity. One example is the exit ramp in Sentinel Castle where player must crouch to get through the door. Taking inspiration from watching very tall people duck through doorways, the player capsule will now detect these kinds of spaces and dip lower for a moment to pass. This isn’t a crouch, only the player height is slightly lowered then restored to normal. There’s a momentary camera bounce as handler resolves between heights, but overall player can now smoothly pass this doorway and others like it.

 

General Fixes & Improvements

Every release has a good number of fixes and small improves to the game. Here’s what you’ll find in the April release.

  • Gold is now deducted when buying spells at spellmaker (Pango/Goodbadbugs)
  • Spellmaker checks for spellbook before purchasing spell (Pango)
  • HUD message scrolling speed adjusted when buffer very full (Pango)
  • Fix bug where animated vital changes continue after reload (Pango)
  • Can now sell horses and carts (Pango)
  • Fix modded wagon button reset (Pango)
  • Fix city gates not closing at night regression (Pango)
  • Fix mobile NPCs spawning in front of player (Pango)
  • Fix for building-to-building teleport into void (Pango)
  • Several improvements and fixes to AI pathfinding, combat, movement, and spellcasting (Allofich)
  • Code cleanup for classic update loop and talk manager (Allofich)
  • Improvements and cleanup to FaceWall (TheLacus)
  • Allow read-only flag for billboards (TheLacus)
  • Travel map support for custom overlays (TheLacus)
  • Support for mouse cursor override (TheLacus)
  • Make texture arrays with CopyTexture for improved performance (TheLacus)
  • Fixed scale of TELE00I0.IMG (TheLacus)
  • Ensure DaggerfallBillboard can still be found on modded loot piles (TheLacus)
  • More model UV fixes (Ferital)
  • Townsfolk NPC names now match classic (Ferital)
  • Use faction data for vampire clans (Ferital)
  • Fix ruler name generation (Ferital)
  • Can now set custom bonusPool on level-up using formula override (Interkarma)
  • Added “showitemmaker” console command to launch enchanting UI (Interkarma)
  • Broker can now register custom spell bundles for sale (Interkarma)
  • Added example custom effect MageLight and related spell bundle for future mod developers (Interkarma)
  • Increase radius of player capsule to prevent slipping through narrow openings (Interkarma)
  • Fix crouching capsule height and position camera inside crouched capsule to fix many clipping issues (Interkarma)
  • Don’t climb enemies or mobile action objects (Interkarma)
  • Reduce distance from door when exiting dungeons to fix sticking to angled geometry in some cases (Interkarma)
  • Interior transition now uses closest door, not just enter marker (Interkarma)
  • Spell missiles are now correctly parented and will not persist after reload (Interkarma)
  • Fix light/darkness powered magery conditional (Interkarma)
  • Migrated all intermediary enchantment and artifact effects to new enchantment system (Interkarma)
  • Fix “fastest” quality setting resulting in startup crash (Interkarma)

Update 6 May – Updated builds are now available with additional bug fixes for April release.

  • TextureReplacement: Emission maps for mobile billboards (TheLacus)
  • Custom render mode for static and mobile billboards (TheLacus)
  • Fix animated billboard materials (TheLacus)
  • Minor settings UI improvements (TheLacus)
  • More cleanup and fixes to enemy movement and AI (Allofich)
  • Match GoodRepWith/BadRepWith enchantment modifiers to classic (Allofich)
  • Randomize book quest rewards (Allofich)
  • Improve HUD text acceleration when buffer full (Pango)
  • Fix negative repair times when removing other repaired items (Pango)
  • Special infections (vampirism/lycanthropy) now bypass disease resistance correctly (Interkarma)
  • Fix NPC talk crash in Ilessan Hills (Interkarma)
  • Bonus to “where is” chance for town NPCs in smaller towns (Interkarma)
  • Fix accessory item not clearing magic animation (Interkarma)
  • Store shelves now stock magic items when appropriate, which also fixes non-stacking ruby bug (Interkarma)
  • Don’t use unsticking handling when player is paralyzed (Interkarma)
  • Fix checking for static geometry (Interkarma)

 

That’s it for April! The next system I’m building out is lycanthropy, so hopefully you’ll be chasing villagers with your werewolf or wereboar in a few weeks time. I’ll also keep working on enchantment system to complete remaining classic effects and wire up more support for custom enchantments.

 

For more frequent updates on Daggerfall Unity, follow me on Twitter @gav_clayton.