Currently, the guys at Oulu University (Finland) are running a usability project involving DCSS like they already did last year. We got a truckload of detailed feedback and great ideas the last time around, so I’m eager to see what they find this time. In preparation of this project (well, I’d been meaning to do it anyway, but this way there was a deadline), I overhauled the tutorial — once again.

You see, one of the first things I did when I started coding for Stonesoup was to create an in-game tutorial with situational triggers. Last year’s UP team created a new tutorial from scratch, so the old one was renamed to Hints mode. The idea was to use a fixed map with fixed puzzles and explanations. We had been planning to do something like that anyway, so we were glad when someone took up the task.

Sometime around new year, I had another look at the new tutorial and found a couple of things that made me unhappy. It was much better at its task (a gentle introduction to the game) than the old one had been, but there was still much room for improvement.

As a result and with the students’ project on the horizon, I recreated the tutorial yet again, drawing on both the UP team’s work with some of the puzzles, map definitions and underlying code, and the Hints mode with its situational triggers. The new tutorial divides the explanations into separate “lessons”, each taking about 5-8 minutes, and should be more interesting and helpful than either of the previous versions. So, if you’re new to Crawl or are still unclear about some of the basics of combat, spellcasting or gods, check out the Tutorial! :)

I’d been meaning to talk about the tile panels, too, but I’d probably need some good resolution screenshots for that. So… on with the big changes: The Shining One and Makhleb have been removed – from the list of starting gods. The Alter Self and Extension spells are no more, but there are a couple of new additions. The Elven Halls have been shortened to 5 levels. Oh, and the Enchantment skill and spell school has been split into two smaller ones called Hexes, described as spells that “affect things and monsters (usually negatively)”, and Charms (defined as “things that positively affect yourself”). The latter change brought a version change with it, so the current version is no longer compatible with saves from early January.

And now for our customary megalist of changes:

Spells

  • Split Enchantments skill and spell school into Charms and Hexes.
  • Remove Alter Self and Extension.
  • Make Symbol of Torment and Banishment monster-only spells (plus Kiku/Lugonu).
  • Implement a crude spell quiver. Store last spell cast.
  • New spell: Summon Dragon (Summ 9), also eligible to pan lords.
  • New spell: Summon Hydra (Summ 7), summons short-lived 4-12 headed hydra (depending on power).
  • New spell: Tukima’s Ball (Hex 9), animates weapons in view.
  • New spell: Darkness (Hex 7), decreases LOS radius by 2.
  • Fix #3105: Lee’s Rapid Deconstruction not obeying some checks when destroying walls.
  • Fix #2695: casting cloud spells on (and through) walls.
  • Fix #2069: casting cloud spells out of range.
  • Fix #3413: Don’t let Conjure Flame be used for free reveal of mimics.
  • Fix Tukima’s Dance ignoring spell power.
  • Fix #3458: silenced spells making noise in crypt.
  • Fix #2481, #3460: Don’t let Mummies/Lichform cast Sublimation on themselves, do let them cast Passwall.
  • Fix #3067: Don’t waste a turn/MP when failing to cast Sublimation of Blood.
  • Cancel Leda’s Liquefaction if player isn’t standing on solid ground.
  • Make Tornado Air -> Conj/Air.
  • Don’t make Tornado drop as sharply in non-open areas.
  • Tornado+Leda -> no flying.
  • Make Tornado noisy.
  • Make Silence Hex/Air.
  • Make Summon Butterflies require spell power for effectiveness.
  • Heavily nerf orb apportation. Chance and distance depends on spell power and total distance.
  • Make Death Channel spectrals temporary, let ally kills work too. Reduce to level 7.
  • Make semi-controlled blink random if it fails to find a location.
  • Don’t cancel Condensation Shield when blinking/teleporting.
  • Don’t hurt rC- players with condensation shield.
  • Don’t allow immediate recasting of Death’s Door.
  • Evaporate no longer uses Throwing skill.
  • Summon Swarm monsters are always friendly; lower it to level 5.
  • When using the Swarm spells, disallow summoning monsters that would anger your god.
  • While Ring of Flame is active, flame clouds are removed when you step on them.
  • Make LOS-affecting spells work through transparent walls.
  • Boost LRD damage.
  • Mention glow in Haste/Invis spell descriptions.
  • Sticks to Snakes is now a pure transmutation spell.
  • Revert the move of branding spells to Charms; they’re Hexes again.
  • Sandblast, Shatter, Lee’s and Maxwell’s are no longer Transmutations.
  • Leda’s Liquefaction gains Transmutations; lowered 6 -> 4.
  • Reduce Passage of Golubria 5 -> 4.
  • Reduce Slow 3 -> 2.
  • Consolidate the books of Minor Magic into a single book, containing: Magic Dart, Blink, Call Imp, Repel Missiles, Slow, Conjure Flame, Mephitic Cloud.
  • book of Changes: -Dig
  • book of Conjurations [ice]: -Freezing Cloud, +Lightning Bolt
  • book of Fire: -Evaporate, -Summon Elemental, +Fireball, +Dragon Form
  • book of Geomancy: -Summon Elemental, +Petrify
  • book of Hinderance: +Leda’s Liquefaction
  • book of Morphology: -Shatter, -LRD, +Sticks to Snakes, +Petrify, +Ignite Poison
  • book of the Sky: -Summon Elemental
  • book of Summonings: +Summon Elemental
  • book of Transfigurations: -Sandblast, -Polymorph Other, +Stoneskin, +Condensation Shield, +Ice Form
  • book of Wizardry: +Agony, +Lightning Bolt
  • Greatly simplify randart book generation.

The Player

  • Prevent chain paralysis: When coming out of a paralysis, you’re immune for 1d3 turns.
  • Assign xp from monster kills proportional to the damage dealt by player/allies out of total damage.
  • Remove Paladins and Reavers.
  • Remove Chaos Knight of Makhleb.
  • Fix crash when a corpse is raised from under a Vampire drinking from it.
  • Fix #3311: crash when subliming your last blood potion.
  • Fix #2958: crash with Naga poison breath.
  • Fix #2329: Don’t count melded slots when calculating stat modifiers.
  • Fix Dowsing not updating until the next turn.
  • Fix antennae/Ashenzari overriding Dowsing (which gives more data).
  • Fix #3245: Defer call to level_change() to prevent SIGHUP abuse.
  • Fix #3234: Make gain stat work for satiated Vampires.
  • Split out CK/Lugonu -> Abyssal Knight, Pr/Yredelemnul -> Death Knight.
  • Overhaul combo recommendations (elliptic).
  • Allow starting with a falchion for Fi and Gl, also restrict trident to these backgrounds.
  • Add quarterstaff as an option for monks.
  • Differentiate Ha/Ko aptitudes: Kobolds are good at Summ/Necro/Hex, Halflings at Charm/Tloc.
  • KoHu and KoAM get a crossbow instead of sling + buckler.
  • Halflings gain innate mutation resistance 1.
  • Give DD a couple more charges in their starting wand but no potions.
  • Give DK enough MP and piety to use Animate Remains on D:1, reduce their weapon to +1,+1.
  • Give Pr a little more HP and MP (as their healing potion was removed).
  • Give He one extra dodging and a +1 robe.
  • Give Stalkers a bit more Tmut skill. Don’t pre-ID potions of poison.
  • Artificers always start with scroll of recharging identified.
  • Lower Felid Conjurations aptitude -1 to -2.
  • Bump grey draconians back up to +1 fighting apt.
  • Boost Mummy base MR 3 -> 5.
  • Nerf Gladiator’s shield to a buckler.
  • Give small Gladiators darts instead of stones.
  • Make LOS reducers multiplicative rather than additive.
  • Potions/cards of experience give you a full level; similarly drain costs a full level.
  • Reduce xp loss from draining, (over)compensating for the recent increase.
  • Don’t allow any headgear with Horns 3 or Antennae 3.
  • Remove map-forgetting and spell-forgetting Divination miscast effects.
  • Don’t prevent blink from putting you in dangerous clouds.
  • Add a note when paralysed by a monster.
  • Add paralysis status to the death message.
  • Allow kenku to land/lift off while in lich form.
  • Allow to Tomb over unknown traps.
  • Show stat zero disability on the HUD and in a few other places.
  • Modify the “Nothing wielded” message for forms and clawed chars.
  • Include the killing cloud’s source in obituaries.
  • Remove Demonspawn breath mutations.
  • DS rN+++ and Fire tier 3 facets show up a little earlier, as does Mapping.
  • Adapt exclusion radius to the Nightstalker mutation.
  • Wider choice of demonic guardians.
  • New DS mutation Powered by Pain: restores MP when sufficient damage is taken.
  • Double the dex bonus from thin skeletal structure.
  • Give freezing cloud immunity to Icemail instead of Passive Freeze.

The Dungeon

  • Shorten Elven Halls from 7 -> 5 floors.
  • Fix #3258: travel infinite-oscillating when Ashenzari/antennae detect+wipe mimic memory.
  • Fix #3182: Don’t attempt to set autoexclusions in unmappable areas.
  • Fix inverted logic in in_damaging_cloud.
  • Fix rain considered one of the harmless clouds.
  • Fix Felids getting unusable items in troves.
  • In Lair level generation, don’t ruin the map boundary.
  • Don’t place unneeded downstairs on branch ends.
  • Fix #3320: make trove manual requests function properly.
  • Fix #3257: trees being immune to fire and lightning.
  • Fix #3324: travel/explore stopping when opening doors.
  • Fix #3014: mispluralisation of staircases/gateways.
  • Fix #3335: state that troves only accept identified items.
  • Trove price changes.
  • Every random Pan vault now has a 1/9 chance of having a demonic rune in it.
  • Reduce ambient noise in Hive from 20->5; Orc, Lair 5->4.
  • Implement #1960: Allow traveling across radius 1 excluded stairs.
  • Implement #1962: Don’t generate cloud autoexclusions when immune.
  • Implement #2374: Don’t prompt for cloud-excluded staircases.
  • Don’t display cloud exclusions on the Ctrl-O screen.
  • Disallow setting exclusions while targeting. xe still works.
  • Describe level 1 upstairs as “staircase leading out of the dungeon.”
  • Don’t mark level 1 upstairs and branch exits as unvisited.
  • Great new vaults by, among others, evilmike (Abyss), minmay (Vaults) and st (Orc).
  • Change temple_entry_steam to mist, which doesn’t block autotravel.
  • Change the oklob temple entry to a sapling.
  • Remove potions of slowing from Cheibriados altar vault.
  • Reduce serial vault chances.
  • Reduce Lair:8 loot.
  • Nerf some loot-heavy minivaults.
  • Add no_rtele_into to a number of altar vaults and Ziggurat entries.
  • Don’t let early angels teleport out of altar vaults and early Zig portals.
  • Allow vaults to specify shops: name, type name, items, greed, count.
  • Allow specifying multiple spellbooks in monster specs, one of which is randomly chosen.
  • Fix corpse placement not working well on levels with high wall density.
  • Tweak randbook mapdef tags: predefined title, player name as owner.
  • Allow predefining several spells for randart books in mapdefs.
  • New mapdef item tag “mundane” => ego-less +0, +0 item.
  • New mapdef item tag “charges” for defining wand charges.
  • Allow Gretell to access vault-defined monster descriptions.

Monsters

  • Get rid of mummy death curses turning potions into decay.
  • Fix #3280: ghosts and Mara illusions not getting spells.
  • Fix #3239: ‘x’ hiding monster shields.
  • Fix #3102: Don’t spawn monster bands on stairs.
  • Fix #3298: Enable door mimic generation.
  • Fix #3436: los not updating when a door mimic is killed.
  • Fix #3424: assertion when targeting beyond door mimic.
  • Fix #3357: Make door mimics block LOS.
  • Make detected mimics known.
  • Fix #3222: Shedu don’t resurrect banished pairs.
  • Fix #3223: Shedu wake when their partner is killed.
  • Fix #424: Polymorphed uniques may only cast spells if they can speak.
  • Fix monster halos not appearing immediately after save restore.
  • Fix monsters not respecting no_rtele_into.
  • Fix “2 ancient champions” showing as “2 skeletal warriors”.
  • Fix #3218: “It turns to fight!” for invisible sky beasts.
  • Better movement AI for ranged attackers, now try to regain line of fire.
  • Make yaks, death yaks, ugly things and slime creatures stick together when wandering.
  • Try to make wandering band members stick around the leader.
  • Make wandering band members path back to the leader.
  • Let band leaders displace their followers.
  • Allow friendly monsters to path to you across the level.
  • Friendlies start following you again after killing target instead of wandering.
  • Smart monsters use pathfinding to go around shallow water.
  • New unique: Terpsichore, casting Tukima’s Ball.
  • Monsters floundering in shallow water move slowly and fumble attacks.
  • Large monsters don’t flounder in shallow water.
  • Giant monsters can walk through deep water as if it were shallow.
  • Give Geryon a reaching attack, make beasts trample.
  • Allow monster spiders to cling on walls.
  • Tweak Grinder’s spells, weapon, and reduce depth (6-10 -> 3-6).
  • Greatly reduce Eustachio’s depth from 8-13 -> 4-10.
  • Beef DD (especially Be), sixfirhies and hairy devils.
  • Make Murray somewhat more likely to spawn.
  • Make skeletal warriors obey silence.
  • Sometimes hint at the location of invisible monsters.
  • Don’t give Grinder a high-tier wand, nor Ijyb in Sprint.
  • Add paralysis and draining to the list of high tier wands.
  • Rot-inducing corpses for vampire mosquito, poison+contam corpses for hell hound/hog.
  • Make Flame Tongue a monster spell.
  • Let player ghosts cast Agony.
  • Boring beetles may now burrow along diagonals.
  • Remove resistance flags from training dummy.
  • Fix monster DDDKs almost never using Injury Mirror.
  • Water elementals can now swim rather than fly.
  • Apply the same limitation as the player to monsters for casting Leda’s.
  • Highlight monsters with pain mirror active.
  • Move oklob saplings from lightgreen ‘p’ to lightcyan ‘P’.
  • Shiny new Serpent of Hell colours (elemental colours).
  • Don’t generate laboratory rat zombies, skeletons, etc.
  • Disable ophan corpses, enable generation in ZotDef.
  • Wizard commands for banishing or killing a monster.
  • Rename blowfly -> vampire mosquito, removed giant mosquito.
  • Rename giant ant -> worker ant.
  • Rename giant bat -> megabat.
  • Rename giant beetle -> goliath beetle.

Gods

  • Fix #3405: crash when transfer knowledge brings skills to level 27.
  • Fix an overflow error in transfer knowledge.
  • Don’t allow negative card power under Nemelex penance.
  • Fix #3522: Elyvilon’s weapon destruction not giving piety.
  • Fix #3150: No instant retribution from Beogh. Fixes an XP exploit.
  • Except for Jiyva, prayer is now only used for (piety-gaining) sacrifices. Other effects are abilities.
  • Demand confirmation when butchering forbidden corpses.
  • Gods ignore kills of dancing weapons, ball lightning and vortices.
  • Mention what weapon is to be blessed in TSO/Kiku/Lugonu final prayer.
  • For Ashenzari’s passive monster detection, differentiate by threat level.
  • Don’t give piety for eating with Chei.
  • Make Cheibriados warn you when putting on boots of running or “rage.
  • Use Necromancy skill for Kikubaaqudgha’s invocations.
  • Make corpses received from Kiku actually fit for reanimation.
  • Okawaru: Might -> Heroism, increasing all weapon skills by 5, up to 27.
  • Okawaru: Haste -> Finesse, doubled combat speed (melee and ranged).
  • Don’t reduce Sif Muna’s penance for miscasts.
  • Add Summon Hydra to Xom’s list of tension spells.
  • Reinstate random Xom titles removed a couple of years ago.
  • Let Yredelemnul gift eidolons, don’t gift hungry ghosts.
  • Overhaul Zin’s Recite invocation: much more powerful and interesting.
  • Adjust Zin’s ability piety costs.
  • Make Zin hate monsters with mutagenic/rot corpses.

Items

  • Remove scrolls of blank paper.
  • New GDR formula (elliptic): 14 * (baseAC-2)^(1/2); this is a buff to the medium armours, and a slight nerf to the heavier ones.
  • Identify staff types on wield, just like weapons and rods do.
  • Give staves and rods a chance to be generate cursed.
  • Auto-id gourmand for non-Mu non-full-herbivores (level 3).
  • Fix #3468: scroll of fear being identified when read with plants in LOS.
  • Allow cancelling some scrolls without consuming them.
  • Mention butchery requirement for food in corpse description.
  • Allow (M)emorising from books on the floor.
  • When using an unidentified potion or scroll, display its name in the message.
  • New Demon axe unrandart: obsidian axe, adds a siren-like pull to nearby monsters.
  • All weapons have min 7 delay, or better.
  • Limit bardings to +4 enchantment.
  • Allow staves of poison to affect monsters with rPois.
  • Give the staff of death rN+.
  • Give the staff of summoning warding, sometimes abjure summons on hit.
  • rod of demonology: -Recall.
  • rod of summoning: -Abjuration, -Summon Elemental, +Call Canine Familiar.
  • Restore part of the chances for unrand weapon/armour generation.
  • Remove wizardry effect from Archmagi, boost Tmut/Tloc spells.
  • Improve Maxwell’s Patent Armour: AC+15, +preservation ego, +MR.
  • Improve Staff of Wucad Mu: remove miscast effects.
  • Allow antimagic on lajatangs and demon weapons.
  • Allow club unrandarts.
  • Axe the ring of Charms.
  • Make potions of experience give some xp for skills as well.
  • Pearl dragons now leave pearl dragon armour.
  • Nerf PDA to AC 10, EV -3.
  • Foxfire cards summon a combination of friendly and hostile monsters.
  • Disallow Foxfire summon vapours if you have no SInv, add vampire mosquitoes.
  • Add elephants, hippogriffs, griffons to the Herd card.
  • Make Pentagram and Foxfire a little rarer in decks of summoning.
  • For scroll weapon acquirement, give a boost to quick blades.
  • Mark scrolls of holy word as dangerous to undead/demonic players.
  • Mark rings of hunger as bad for ghouls.

Interface

  • New tutorial, split into different maps/lessons.
  • Fix numpad being shown inverted in the command help.
  • Fix #3263: unknown items toggle not working.
  • Don’t prompt for partial stack pickup when travelling.
  • Fix #3321: Don’t prompt for unarmed attacks if your “previous weapon” wasn’t a real weapon.
  • Fix #3517: crash when binding CMD_AUTOFIGHT if autofight.lua is not included.
  • Move partial stack pickup to ;
  • Display piety in main screen.
  • Use inventory colours for stats area and % screen.
  • For local builds, mention morgue location after hiscore or when doing a chardump.
  • Extend and rearrange tutorial/hints mode command help.
  • Bind Tab to autofight, shift-Tab to autofight_nomove.
  • Implement #2840: Clear stack autopickup flag when dropping an item on top of it.
  • List prompt choices explicitly, i.e. “(y)es or (n)o” rather than “y/n”.
  • Mention scrolling commands on message history screen.
  • If you don’t recognise any items, make \ shown all unknown ones.
  • Starting sub-menus: Escape brings back to main menu instead of exiting the game.
  • Add a message on forgetting a spell by book destruction.
  • Acknowledge several canceled prompts with “Okay then.”
  • More feedback at the macro prompt.
  • Make tutorial selectable from the command line: -tutorial option.
  • After a tutorial or sprint map, go back to map screen instead of main screen.
  • Mention in ‘@’ that you are inside an external halo.
  • Allow ~/.crawl/init.txt as alias for ~/.crawlrc on unix.
  • Split monster, feature quotes into another screen toggleable via ‘!’.
  • Add several missing descriptions, improve some existing ones.
  • Update the manual, FAQ, and options guide.

Tiles

  • Fix #3332: crashes with kraken tentacles out of sight.
  • Fix #3160: slowdown caused by the command tab.
  • Fix #3313: crashes when searching the database for zombies and tentacles.
  • Fix #3404: manuals being mouseclick-readable while berserk.
  • For the message overlay, treat mouseclicks as relevant to the map (travel etc.) rather than the message history.
  • Fix item/feature mouseover leaking mimic information.
  • Fix #2914: click on the title screen making selection in the startup menu.
  • Fix the startup menu layout.
  • Fix #3195: Don’t set swamp_tree_water for water without trees.
  • Fix #3284, #3285: click-travel stopping for mimics and toadstools.
  • Fix #3485: lantern of shadow not being wieldable by mouseclick.
  • Fix misinformation when clicking on rotten chunks as a non-saprovore.
  • Move tile info during Abyss shifts.
  • Fix #3408: weapon not showing on most of Tiamat’s tiles.
  • Fix water walking Beoghite tile being drawn in water.
  • Fix #2726: Wrong tooltip for evokable staves.
  • Update tile tooltips to Felid item restrictions.
  • Allow mouseclick movement through exclusions and stationary monsters.
  • Clicking on an enemy while wielding a ranged weapon fire at it.
  • Fix the need to click on an enemy twice to fire or cast at it.
  • Casting with ctrl+click casts the last spell if appropriate.
  • Suppress tree descriptions on mouseover.
  • Make sure mouseover descriptions are only triggered by mouse movement.
  • Use poison icon for player doll, if poisoned.
  • A single mouseclick on the player is enough to pull up the pickup menu.
  • Don’t require standing on altars or stairs to get the tooltip.
  • Add single-turn waiting to the command tab.
  • Add wielded weapon to the training dummy tile.
  • Make the tiles quantity prompt pull up a single-item pickup menu.
  • For Windows Tiles builds, also print asserts to STDERR.
  • Shift the inventory tooltip to the right, so it doesn’t overlap with the messages.
  • Automatically zoom the minimap to fill available space.
  • Replace “Shift-L-Click” tooltips with “Shift + L-Click”, etc.
  • Overhaul tiles_help.txt.
  • New title logo by Denzi.
  • Fix randart item tiles never actually being used.
  • Actually use the zombie/spectral worm tiles in-game.
  • Actually use the grate tile for DNGN_GRATE.
  • Remove shield tiles from various shieldless monsters. (Done by co.)
  • Add co‘s new lair floor tiles, appropriately weighted.
  • Other new tiles by co: Killer Klown, giants (capable of weapon display) including Antaeus, vampires, Homunculus spell, lurking horror, Ashenzari’s sensed monsters.
  • New tiles by coolio: deep dwarves, Maurice, ancient zyme, Joseph, Mennas, gnoll sergeant/shaman.
  • New tiles by Curio: rat zombie, Frederick, lizard zombie, mangroves (Swamp trees), Donald, Kirke.
  • New tiles by Denzi: air elemental, statue tiles (dungeon feature), statue form (capable of weapon display), Terpsichore, Charms skill tile, Passage of Golubria spell, raven, various command tiles, Summon Dragon/Hydra spell.
  • New tiles by LoginError: dungeon exit, item knowledge and prayer command tiles.
  • New tile by LordBistian: Leda’s Liquefaction spell.
  • New tiles by psyshvl: eldritch tentacles.

Other stuff

  • Increase internal version to 32.
  • Don’t include lua chunks in save files.
  • Fix #3177: crash when playing after arena.
  • Reduce idle clock threshold, fix several bugs in measuring play time.

Lots of bug fixes, and 0.8 draws ever nearer…

And with that, we’re up-to-date with revision 81b92e8 which, as usual, can be downloaded here.
As always, bug reports are highly welcome!

Thank you for your valuable feedback!