Lord of the Dark Castle - Release Notes, v 1.05

Features, Bug fixes, Balancing, etc


Test status:
1350+ test rounds has been run, simulating 2000+ hours of playtime. Very few bugs has been found and all have been corrected. Even extremely rare occasional bugs have been found and corrected, for example: if the hero has both skills Stinging Poison AND Thievery, and THEN performs an attack WITHOUT weapon AND successfully steals an item from target enemy AND that item happens to be a weapon, THEN the game crashes.

Note: this does not guarantee flawless and perfectly balanced game play and some bugs may only occur on some systems and during very special situations.


New Skills:

+ Night Vision: can always see minimum 5 squares, regardless of darkness and light source

+ Spectral: can move through walls.



New General Features:

+ Can now sell any item in a shop for 1/6 of their original value (can only be done on a Shop square).

+ Disarming a trapped gold sack now gives some gold, assuming that the trapped gold sack actually contained gold.

+ The detect trap skill now shows special info on trapped items, highlighted with red text.

+ There is now an "environmental light" value that affects the whole level. This can be raised and lowered the Magical effects (Daylight and Darkness, see below).

+ Mored Locked chests have been added without keys to encourage LockPick skill.

+ 5 gem stones, typically added to locked chests: diamond(1500g), ruby(1250g), sapphire(1000g), amethyst(750), emerald(500). They can only be utilized with Alchemy skill and they give full value!

+ Axe/BattleAxe, 3-6% chance to break open any door/chest.

Draws enemy attention (called target, big distance, maybe 15 squares).

OneHandaxe, 75% risk to destroy contents of a chest when breaking it open.

BattleAxe, 85% risk to destroy contents of a chest when breaking it open.

+ Sound for bashing door/chest with Axe.

+ MiniDungeons now gets a random matching background, and that background is guaranteed to be different from the normal level area. This is to give a feeling that we are entering a new area.

To guarantee that the walls matches the background, the randomization is done from a table of matching "backgrounds vs walls".

+ Floor plate traps, both on normal levels and Mini Dungeons. World Darkness, Teleport, LockAll, OpenAll, (targeted) Summon Minions, (targeted)Dungeons Gaze, Blind, Curse of Darkness, Spawn Monster.

+ Spawn Monster effect added (default: Ghost Knight or Death Knight). Only available as Floor Trap so far.

+ Several new Mini Dungeon's created and activated.


New GUI Features:

+ Possible to name the hero. (Optional. If exists, using last QuickSave file as default name. Otherwise, just 'Hero'.)

+ Full description for Game Difficulty tooltips.

+ Brand new context menus! Opens up for much more intuitive game play and more advanced features. (Relax, there are keyboard short-cuts!)

+ Added some useful Tool-tips on the game board.

+ Keyboard shortcuts for the most common actions:

E -> PickUp/Buy/Equip/SwapOut

Q -> Drop

U -> Use

Z -> Wait

M -> Move To / Attack

H -> Heal (using top-most Health potion)

C -> Cure (using best matching potion)


Monster AI improvements:

+ Monsters are now using A* algorithm to find optimal path to the hero (and to items on the ground), although there is still some randomness in their movement pattern to make them slightly unpredictable.

+ Once a monster has detected the enemy, it will get a bit of increased alertness (increased visibility range), so it will not lose sight of hero as easy as before.

+ A monster will "call out target" to allies when battling the Hero. It means that nearby monsters, if within 5 squares from the calling monster, will detect and engage the hero.

+ When losing sight of the hero, monsters will continue to follow the detected enemy for longer times (a random value between 5-40 turns). It makes monsters more unpredictable, and you never know when they have given up on you (unless you clear aggro with invisibility/teleport/etc).

+ Monsters will evaluate which weapon to use (if having >1 )during attack: ranged or melee, depending on current range.

+ A general rule on monsters and items: if a monster can use an item type, it will pick it up when possible.

+ All non-animal monsters can now (with a few additions/restrictions)

+ use a wide range of items as well as stacking potions.

+ buy items in the store, if affordable

+ use skill books (only selected creatures can use them: vampires, wizards, dragons)

+ use the best possible item (according to gold value): even though monsters pick up all items they CAN pick up,

they will now choose to wear the most valuable armor/weapons, assuming that the value reflects quality, to some extent.

+ All undeads can now use all sorts of weapons and armor, with a few additions/restrictions.

+ Vampires can use: skill books, magic scrolls and potions

+ All living humanoids can now use weapons, armor, gold, scrolls, potions (with a few additions/restrictions)

+ Goblins can open and loot containers, and Elite Goblins can pick locked chests.

+ Kobolds and Goblins, being small creatures, cannot use two handed melee weapons.

+ Trolls and Ogres are too stupid to use magic scrolls.

+ Wizards can use skill books.

+ Dragons can now use treasures, skill books, scrolls and potions.

Monsters will now use ALL kinds of magic scrolls (there are now 50+ of them, see below!), for example:

+ will use Invisibility when enemy is targeted

+ will use Speed when enemy is targeted

+ will use Regeneration when it has taken some damage (<=80% left of HP)

+ will Teleport away when <=25% health and enemy>=50% HP.

+ will Teleport away when <=50% health, using ranged attack and enemy is adjacent.

+ will Summon you if you are out of range

+ All bats improved. Now using a new "Killer" skill, causing 15% of enemy MaxHP as damage. Diving lightning fast from the sky, aiming for your head. Always does 15% of your maximum hitpoints.

+ Monsters with ranged attacks or has started to life drain will now avoid melee combat in many situations. Makes the game a lot harder! (Bat/SkelArcher/EliteTroll/etc)

+ This feature is not used on Children difficulty. On Easy/Gamer/Geek, this strategy is applied to different degrees.

+ Chance of using this strategy is increased, scaled on CurrentLevel vs MaxLevel.

Example, worst case, Geek difficulty, max level: Skeleton Archers will try to move away from melee range 95% of the time.


Balancing

+ Skill Bow Master: now allows using bow within melee range.

+ Skeleton Archers now decrease bow ammunition for each shot, so they CAN run out of ammo. Because of that, for level 2+, they have 1 melee weapon in backpack.

+ Goblin thiefs:

+ Thief skill level is now scaled strictly by current dungeon level, meaning a level 1 master thief can no longer have 50% Thief skill.

+ Default Magic scrolls (Speed and Invisibility) are now given based on "getDescisionScaledOnLevelWithGameDifficultyModifier()",

i.e. they are randomly assigned based on a successful decision roll, scaled on dungeon level AND game difficulty setting.


Bug fixes:

+ Several messages was printed about monster actions/events that should not be seen by hero, e.g. 'Your torch burned out.'. Fixed.

+ At level 3, there was 1 tile that had a mismatch between background objects and obstacle map.

+ One level 1 background tile could cause the hero to become stuck at initial spawn.

+ When equipped with a sword in second hand (due to previous dual wield) and primary hand free, then equipping another non-dual-wield-one-hander, like a club, the dual-wield sword in second hand remained. Wrong! It should be auto-swapped out. Fixed.

+ Mysterious Portals and Locked Chests can no longer spawn next to a door where they could previously block entrance.

+ Picking up a key ends turn.

+ The hero could spawn in a place where there was no path to exit. Fixed.

+ If attacking creature had StingingPoison and Thief skill, and successfully stealed target's weapon during attack, the game crashed. Fixed!

+ When the final boss dropped the key, the key could drop at a square inaccessible to the hero. Fixed.

+ If the final boss had several keys, it only dropped one, and that could be _wrong_ key. From now on, monsters drop all their keys.

+ Graphical glitch: When entering Mysterious Portal into a 1-screen mini dungeon, edge tiles was shown with incorrect background tiles, creating "ugly edges". Now fixed.

+ Graphical glitch: some T-junctions on walls for level 1, 2 and 4 had some visual glitches and needed fixing. Done.

+ Actions that will end turn: equip/swap/buy/sell/drink/cast spell. With the Agile skill, all these actions become "free" and will NOT end turn.

+ Equipping a one-hander weapon with empty primary hand + shield shall not put the one-hander in inventory!

+ Minidungeon bug fixes:

+ Some traps did not trigger.

+ Items shall be free of cost (with few exceptions)

+ Allow all possible scrolls to appear.

+ A reasonable amount of monsters shall spawn.

+ Chamber of Sacrifice: balanced...

+ Temple of Doom: balanced, and riddle updated.

+ Fixes for traps, triggers and floor plates, including item description and "disarmable" attribute.

+ Picking up wearable items (excluding weapons/shield) would always auto-equip that new item, resulting in a possible already equipped item being swapped out to backpack.

This is not always desirable. An item may be picked up for future use, and should therefore not be auto-equipped when that equipment slot is already occupied. Fixed.

+ Rings were unintentionally "rotated" from slot 1 -> slot 2 when wearing two rings.

Use case: Wearing Ring X in Slot 1. When equipping Ring Y from the backpack (or ground), it would rotate Ring X -> Slot 2, and put Ring Y in Slot 1, which was rather confusing.

This is now fixed. An equipped ring will now only go to RingSlot2 if it is free while RingSlot1 is occupied. Otherwise, it always goes to RingSlot1, and any possible ring in RingSlot1 ring is swapped out.

(*Gahh...* Pretty complicated, huh?)


New Magic scrolls:

+ Scroll: Visions of the Seer (instant vision = full explore world map on current level.)

+ Scroll: Dispel Enchantment (random enchantment dispelled on enemy)

+ Scroll: Dispel Curse (random curse dispelled on self)

+ Scroll: Summon Minions (summons 1-4 minions, used by Necromancer)

+ Scroll: Enchant Weapon: +x Damage

+ Scroll: Banish Undead, destroys an undead creature (minimum 10% resist chancer, higher for powerful creatures).

+ Scroll: Blind, cannot see anything for X turns.

+ Scroll: Mark of Death. The victim dies in 30 turns (unless the curse breaks or is dispelled).

+ Scroll: Dungeon's Gaze: Target's position becomes known by all enemies until the curse expires.

+ Scroll: Vanish (timed enchantment): Becomes invisible 25 turns, clears enemy aggro, ending when moving (or breaking randomly, based on detection modifier).

+ Scroll: Telekinetic Steal: item from other creature's inventory (miminum 10% resist chance, higher for powerful creatures)

+ Scroll: Unlock: Unlocks any chest or door. (but not the final treasure)

+ Scroll: Fortify Armor, +x Protection

+ Scroll: Enchant Chest Armor: Giant's Health / Stone Skin / Regen / Armor Specialist / Survivor

+ Scroll: Enchant Gloves: Picklock / Steal / Thief / Alchemist

+ Scroll: Enchant Boots: Sneak / Lightning Reflexes / DetectTraps / Flying

+ Scroll: Enchant Leggings: ElementalResistance / Tracker / Charge / Agile

+ Scroll: Enchant Head Item: Night Vision/ Ghost Vision/ See Invisible / Scout / Alertness

+ Scroll: Bloodthirst. Does double damage during x turns. Stacks with crits.

+ Scroll: Curse of Darkness: target's view distance is decreased by 4

+ Scroll: Targeted Teleport: teleports to target square.

+ Scroll: Create Locked Door: creates a locked door on a free Target Square.

+ Scroll: Lock All, all door openings on current level are closed and locked.

+ Scroll: Weaken: Target Creature's physical attack damage is reduced by 50%. 20 turns.

+ Scroll: OpenAll, all doors on current level are opened (should only be available to monster inventory, but can be stolen by hero, used when enemy in sight...)

+ Scroll: World Daylight (affects all creatures in the world). Sets the level's environmental light to +3.

+ Scroll: World Darkness (affects all creatures in the world). Sets the level's environmental light to -3.

+ Scroll: Excile Creature, sends a creature to an ethereal prison in a parallell dimension. The creature returns after 10-40 turns.

+ Scroll: Immunity, gain immunity 5 turns against an effect type (e.g. poison, disease, fire, cold, soul, sorcery, etc)

+ Scroll: Destroy Item, destroy an item on the ground (including doors) or on creature (with resist chance)

+ Scroll: Fumble, 10% risk to drop weapon for 50 turns.

+ Scroll: Expel Creature, teleport other creature to random square (10% resist chance)

+ Scroll: Fire. 90% chance to inflict dungeonLevel*20 direct fire damage.

+ Scroll: Cold. 90% chance to freeze target for 2-10 turns.

+ Scroll: Poison. 90% chance to poison target, giving dungenLevel damage during dungeonLevel*30 turns.

+ Scroll: Disease. 90% chance to disease target, limiting hitpoints to 30-70% of maximum.

+ Scroll: LifeDrain. 90% chance to life drain target, draining 1+dungeonLevel/2 hitpoints / turn, up to 50 turns.

+ Scroll: Fear. 90% chance to fear target, causing it to run randomly for 5-20 turns.

+ Scroll: Web. 90% chance to immobilize target creature with a magical web. Target has a 10% chance to break free.


Game Design, Sneaking: When can a creature start sneaking?


General rules: cannot start sneaking while seen by an enemy, or when sneak cooldown timer is running. (For example, if we kill an enemy, we cannot go back to sneak again within x turns.)

---

What about being followed by an enemy, trying to flee around corners, going back into sneak mode?

Two possibilities:

a) if an enemy has creature as target AND can see it -> can't sneak!

b) if an enemy has creature as target (regardless of LoS) -> can't sneak!

---

If choosing a, continously run around a corner, when sneak cooldown has ended -> almost immediately sneaking -> can do another crit.

If choosing b, continously run around a corner, now have to wait until the creature has also "forgot his target" before going Sneak mode.

Option (b) is less deterministic, which is good for game tension.

Also, option (b) is less likely to happen fast, because whenever the enemy sees us, he refreshes his memory of "lastSeenEnemy".

---

Current game design decision goes with (b) -> can't "re-sneak" until enemy stops following us.

Option (b) has now been tested and verified with good result.

---