Tomorrow, at dawn, you must don the Moon Ring

The Spring Equinox release has now been submitted to Apple and Google and should be available over the next few days, if not already. Windows and the OSX non store versions can be downloaded from The Lords of Midnight and Doomdark’s Revenge update pages.

Here is the list of changes, this version is mainly Doomdark’s Revenge updates. The next release will likely switch focus.

v2.0.6 (45)

  1. FIXED: DDR – Strongholds don’t change Occupier if the race is the same
  2. FIXED: DDR – Night processing hangs because of circular lieges
  3. FIXED: DDR – Obigrorn the Giant starts with Riders
  4. FIXED: Options menu is sometimes off the screen on narrow screens.
  5. ADDED: 100% scale to panel_map_detailed
  6. FIXED: Give, Take, Approach, and Use text not working on action buttons
  7. FIXED: Check place should show when entering a location with an artefact
  8. FIXED: Replacing missing Keyboard Style option on desktop devices
  9. ADDED: Game Difficulty – Normal / Easy / Medium / Hard
  10. ADDED: Gameplay Rule – Intended original terrain travel times

I have also update the online guides to better reflect the changes over the last year or so.

Item 1, 2, and 4 are straight bug fixes and I think speak for themselves. 3 will only be resolved in new games.

100% scale to panel_map_detailed

Simple icon to click on screen to reset map scaling to 100%

100% scale – map option

Give, Take, Approach, and Use text not working on action buttons

The action buttons didn’t show the target of the action correctly.

Approach
Give and Take

Check place should show when entering a location with an artefact

The check place always showed and artefact that was in a given location, it just wasn’t easy to find them without constantly going to ‘choose’ or ‘check place’ on every move. The original would auto show ‘check place’ if an artefact was at the location – this has now been implemented correctly.

Check place

Replacing missing Keyboard Style option on desktop devices

For some reason this keyboard option with Classic, or New disappeared when I moved to v2. Best to check the online guide to see the difference in keys, or just press a key and see the hints.

Options – Keyboard Style

Game Difficulty – Normal / Easy / Medium / Hard

This is the first stages of the new difficulty modes. Normal is as the game was originally released. Depending on the game difficulty, there is a defined number of saves. Also if Repeatable Save is set, then an action after a save game, in the same sequence, will follow the save outcome. More features will be added to the difficulty mode over time. Difficulty mode stays the same for the entire story and is not affected by changing the options during a game.

DifficultyUndosRepeatable Save
NORMAL1NO
EASY10NO
MEDIUM5YES
HARD0YES
Table for Difficulty modes

Gameplay Rule – Intended original terrain travel times – Movement Modifiers

The original spectrum version of Doomdark’s Revenge had a bug that mean movement was not taking in to account a races favoured terrain. This option allows you to play the game with either the Original, Intended, or even C64 versions. A more detailed examination of the values can be found here…

Difficulty and Movement Modifiers

The Solstice. Doomdark grows stronger yet. We must act. I know no more.

I’ve been quiet of late. No real reason, at least no more than just life in general. So I figured a quick update is probably in order.

I’ve missed two release schedules. I intended to release a patch every quarter, around the solstice and equinox. Well, I missed the Autumn Equinox release for no other reason than I hadn’t done anything. So I bumped it to a Winter Solstice release… and well… you’ve probably noticed the lack of a release. This means that it will now be bumped to the Vernal Equinox. I’ll try and get on this one… please bear with me…

There will be two Doomdark’s Revenge bug fixes in the release that have already been fixed.

There are currently three features marked for inclusion.

The first one is interesting as it was reported as a bug, but as far as I can see it is actually a problem in the original data. So yes, it is a bug, but one from the original release. I have no issue fixing this as I don’t think it will really have much affect on gameplay.

One other feature that was tentatively going to be in the next release was

Game Difficulty – Easy / Medium / Hard

The reason for the tentative status was purely because it needed more thought than what I added on the ticket, but ultimately I need to start somewhere with it.

Anyway, that’s what I’ve not been doing for the last 6 months…

The Icemark was indeed a changed place

An interesting thing came from fixing the battle code in Doomdark’s Revenge, it highlighted a bug that is in the original code, that I can’t tell if ever caused an outward problem.

It is all to do with loyalty.

Loyalty in DDR is about race. Which race are you loyal to: Giants, Dwarves, Hearstealer, Moonprince… etc. When a lord recruits another lord, they become their liege and the new vassal becomes loyal to the same loyalty race.

When a AI lord moves in to a location, they check the loyalty of any lords present and if there is a difference in loyalty, they may attempt to recruit.

The problem is – if a lord who has vassals is recruited the loyalty of the vassals does not change, but the loyalty of the lord does. The liege of the vassals does not change either. So these lords have a liege of a lord who is not loyal to the same race as them. And they will potentially attempt to follow them or follow the same instructions. Even though they are technically the enemy.

Should the vassals ever find themselves in the same location as their liege, they are no longer the same loyalty so they will attempt to recruit them. In this instance the, the vassals becomes the liege of their liege, but their own liege does not change. Confused yet?

What we have here, is circular lieges.

Example:

Glormeon the Giant’s liege is Imagrorn the Giant, and Imagrorn’s liege is Varagrim. But let’s say Imagrorn is recruited by Carormand the Barbarian, then Imagorn’s liege is now Carormand, and his loyalty is to the Barbarians. But Glormeon’s liege is still Imagrorn, however his loyalty is still to the Giants.

The first problem here is that these two lords now see themselves as enemies or potential recruits. So they could fight or recruit. But also Glormeon will follow orders of Imagrorn even though they are enemies. Which may be tracking him down or following his enemies, or liege… and should Glormeon enter a location with Imagrorn he may attempt to recruit them. If this is successful then Glormeon’s liege would be Imagrorn and Imagrorn’s liege would be Glormeon.

In the original this situation would occur. Which I think really just messes with the AI. But in the remake, I traverse the liege tree to work out who is the overall lord in charge, and if we have a circular liege then the game crashes!

So the question is – how to fix.

So I remove the liege traversal and allow the original messy AI or do I break the liege link as soon as recruitment happens… ie: When Imagrorn is recruited and his liege changes to Carormand, then Glormeon’s new liege becomes Varagrim. Or should Glormeon remain loyal to Imagrorn and change his race loyalty to the Barbarians?

As a bug fix the first seems the quickest and keeps the gameplay the same. The other two options the potentially becomes gameplay rules.

This also doesn’t take in to account that the human player, ultimately The Moonprince, may be the loyalty race of some of these lords.

I am tracking the bug here on the GitHub repos for anyone interested.