Monday, August 23, 2021

The new mechanics of Wizardry III

Wizardry III uses a revamped engine, dubbed "Window Wizardry," featuring a new look and feel, now resembling a video game more than a data entry application. With it come some changes to the game rules.

Back in 2019, I posted a series of pages about the mechanics of Wizardry, based on the decompiling efforts of Thomas William Ewers who reverse-engineered the Pascal code for Wizardry I and III, but not II, presumably as it differed too little. Today, this post presents the mechanics of Wizardry III, with a focus on what changed since the original game. Some of these changes had been present since Wizardry II - without source code for that game, it's hard to be sure, but at the very least, we know that status-affecting spells were made more potent in that game, and the option to cast spells during the first turn of surprise encounters had been removed.

The spellbooks of Wizardry III

Milwa & Lomilwa
When cast in camp, Milwa is more effective than before, granting light for 1d15+29 moves instead of 1d15+14, and it still stacks. Lomilwa is nominally less effective than before, granting light for 10,000 moves instead of 32,000, and still does not stack.

When cast in combat, the old values still apply.

Katino, Manifo, Montino, & Badi
These status-affecting spells originally used the monster's level to determine the odds of a successful resist, making them useless against stronger foes, and in the case of Manifo, just useless. Now, a monster's likelihood of resisting is based on the difference between its level and your level. Wizardry II also made these spells more potent, but I don't know if its logic is the same or if Wiz3 changed it further.
  • Katino - Sedates each monster in a group. Each monster has a (5% * [10 + MonsterLevel - CasterLevel]) chance to resist, with a minimum chance of 5%. Each monster has a (Level * 20%) chance to recover per round, up to a maximum chance of 50%.
  • Manifo - Exactly the same as Katino, but works on monsters without the SLEEP ability.
  • Montino - Silences each monster in a group. Each monster has a (5% * [8 + MonsterLevel - CasterLevel]) chance to resist, with a minimum chance of 5%.
  • Badi - Kills one monster. Monster has a (5% * [10 + MonsterLevel - CasterLevel]) chance to resist, with a minimum chance of 25%.
 
Latumapic
Once a buggy spell that could only be cast in combat and never worked quite as it should, Latumapic may now be cast any time and grants a semi-permanent "identify" status to the party, which identifies all groups in all encounters. It lasts 10,000 steps when cast in camp, or 32,767 steps when cast in combat.
 
Mabadi
In the first game, this would set a monster's HP to 1d8 with no chance to resist. Now it's subject to spell resistance. Bummer.
 
Loktofeit
Originally a last-ditch escape spell that cost you all of your equipment and gold and had a poor chance of working. Now a last-ditch escape spell that costs you all of your equipment and gold and has a decent chance of working. Odds of success are (1% * [65+Level]), with a maximum success rate of 96%.

Haman and Mahaman
Another set of spells that didn't quite work right in the original Wizardry. Haman and Mahaman have been fixed and further enhanced.

As before, these spells can only be cast if the caster is at least level 13, and the caster loses a level when casting. The possibility of mangling the spellbook was removed.

Haman randomly selects three boons from a pool of five possibilities, and you may pick one to be granted.
  • CURE THE PARTY - Cures AFRAID, ASLEEP, PLYZE, and STONED statues for everyone in the party.
  • SILENCE THE MONSTERS - Silences monster groups 1-3 for 1d4+5 turns.
  • MAKE MAGIC MORE EFFECTIVE - Removes spell resistance from monster groups 1-3 and reduces their levels to 1 for the purpose of resisting status effect spells.
  • TELEPORT THE MONSTERS - Kills all monsters in all groups. No chance to resist.
  • HEAL THE PARTY - Restore 100% HP to all party members except the ones who are dead (or worse).
 
Mahaman is the same, but with a pool of seven possible boons; the above five and two more:
  • PROTECT THE PARTY - Everyone's armor class becomes -10 for the duration of combat, unless it's already lower than that.
  • REANIMATE CORPSES! - Everyone who isn't LOST is resurrected to 100% HP.
 

Rite of Passage

Wizardry III, like Wizardry II, requires you to transfer characters from a previous scenario disk, and does not require that they have beaten either scenario, but these characters must undergo a "rite of passage" representing the passing of generations before they can be played. The rite of passage has these effects:

  • Every attribute is adjusted by a random number between -3 and 3.
  • IQ is raised a point for every 7 mage spells learned.
  • Piety is raised a point for every 10 priest spells learned, adding 1 to the priest spell count (e.g. if you know all 29 priest spells you gain +3 piety)
  • Fighters, samurai, and lords gain +2 strength.
  • Mages, thieves, and ninjas gain +2 agility.
  • Priests and bishops gain +2 vitality.
  • Attributes are clamped to the 3-18 range.
  • The character reverts to level 1, becomes 20 years old, forgets all spells, loses all experience points, all gear, and all but 500 gold if they own more than that.
  • Fighters get 10 HP.
  • Mages get 4 HP.
  • Priests get 8 HP.
  • Thieves and bishops get 6 HP.
  • Samurai and lords get 12 HP.
  • Ninjas get 7 HP.
 

Encounters

This isn't so much a "new mechanic" as a new explanation, compelled by the fact that Wizardry III's reward tables no longer make a clean distinction between encounters with loose gold and encounters with chests.

As before, several areas in each map are flagged as "rooms." Everything that isn't flagged as a room is a corridor. A room can consist of any number of tiles, but is always a contiguous region undivided by walls or doors.

There are three types of encounters in Wizardry III, though in practice there are only two that occur on a regular basis:

  • Random encounters. Every step you take has a 1% chance of triggering a random encounter against a randomly selected monster from a pool specific to the dungeon level. Kicking in a door to a flagged room has a 12.5% chance of triggering a random encounter.
  • Fixed encounters. Some rooms have a scripted fight against a specific monster. Entering these rooms has a 100% chance of triggering the fixed encounter.
 

The third type I call "predetermined encounters," which, like fixed encounters, only occur in rooms. Some rooms will have a 100% chance of triggering an encounter when entered, but the monster type will be selected from the same tables as random encounters. Rewards tend to be better than random encounters. However, these only occur under three circumstances:

  • The very first time you enter floor 1 from a fresh boot, up to 19 random rooms will be populated with predetermined encounters. This only applies to floor 1, and only the first time after booting the computer!
  • Stepping on an alarmed tile on floor 4 ensures your next step is a predetermined encounter.
  • Triggering a chest's alarm trap immediately brings a predetermined encounter.
 

I am certain that predetermined encounters were intended to work the same as they did in previous Wizardries, and that their rarity is a bug, but I am not 100% sure why. I think it's because in the code, a boolean variable called DONE, which is used to decide when to stop seeding predetermined encounters, never gets initialized. After the initial predetermined encounter seeding is finished, DONE will be set to true. Next time it goes through the loop DONE will still be true, and the loop will be skipped.


Victory in a fixed or predetermined encounter will mark every tile in the room as unpopulated, disabling any further fixed or predetermined encounters in the room. Random encounters are still possible. It's even possible to have a random encounter immediately following a fixed or predetermined one without taking a step!

 

There are two new rules about encounters:

  • Fixed and predetermined encounters always have at least two monster groups, except for Moat Monsters, who never have two groups (this is also likely a bug).
  • Running always fails in fixed and predetermined encounters. Otherwise, running has a 75% success rate. This rate is further enhanced by having a small party (+5% per member under 4) and by fighting demoralized monsters (+20%).

L'kbreth is a special exception to every rule. She is always alone, but running has a 100% success rate.


Monster abilities

Monsters with the "call" ability may now invoke it when the group has fewer than 8 members, instead of just 5.

Spellcasting monsters can now partially or completely recover spellcasting power when calling. If their spellpower had been reduced prior to calling, then on a successful call, it will be raised to the mean value of current and full, rounded down, plus 1. For example, an Archdemon group has a base Mage Level of 6. If this is reduced to 4, and it then calls reinforcements, then (6+4)/2 + 1 = 6, and its Mage Level will be increased back to 6.

Monster groups no longer shuffle their order in combat.

Monsters no longer cast spells on the first turn of combats where they surprise you. Nor may you cast spells on the first turn of combats where you surprise them.

Monsters' attacks no longer display CHOPS, TEARS, or GNAWS as a verb. This doesn't affect gameplay at all, but it is a change.

 

Traps

Chests used to have a [10-MazeLevel]/15 chance of having their trap status set to trapless, overriding whatever would be there otherwise. This has been reduced to [3-MazeLevel]/15, and therefore never occurs on levels 3 or higher.

Traps are 10% harder to disarm than before (e.g. a trap you could disarm 20% of the time in Wiz1 can only be disarmed 10% of the time in Wiz3). A thief or ninja now has this chance to disarm a correctly identified trap:
(43 + Character Level - Maze Level)/70

For anyone else, it's:
(Character Level - Maze Level - 7)/70
 

Damaging traps do massively increased harm, rolling seven additional hit dice over what traps in Wizardry I would inflict.

  • Crossbow bolt: [MazeLevel+7]d8 damage to the victim.
  • Exploding box: 50% chance of [MazeLevel+7]d8 damage to everyone.
  • Splinters: 70% chance of [MazeLevel+7]d6 damage to everyone.
  • Blades: 30% chance of [MazeLevel+7]d12 damage to everyone.
 

In Wizardry I, you were either poisoned, or you were not. Now, poison traps increase your poison level by 1. Interestingly, poison attacks and gas traps still set your poison level to 1, so it's technically possible to get less poisoned this way.

Poison works differently. When your HP is above 50, every step and every round of combat is reduced by 10%, regardless of poison level. When it reaches 50 or lower, it is reduced by the amount of poison, or if you have healing, your healing rate is reduced by that amount.


Alignment

Evil parties now have the possibility of friendly monster encounters. For neutral parties, this is still impossible.

Alignment flipping is much more likely to happen. If you fight a friendly group, then every good member has a 5% chance to turn evil. If you leave, then every evil member has a 5% chance to turn good.

Only a select few monsters - those completely lacking elemental resistance - will ever be friendly. Their chances of a friendly disposition is based on their class.
 
Monster Class Friendly
GARIAN RAIDER Thief 4%
GARIAN GUARD Fighter 11%
GARIAN CAPTAIN Fighter 11%
GARIAN PRIEST Priest 16%
GARIAN MAGE Mage 6%
MAN AT ARMS Fighter 11%
FRIAR Priest 16%
WITCH Mage 6%
LOOTER Thief 4%
RONIN Fighter 11%
DWARF FIGHTER Fighter 11%
ACOLYTE Priest 16%
NECROMANCER Mage 6%
GNOME PRIEST Priest 16%
ELVEN MAGE Mage 6%
BURGLAR Thief 4%
SAMURAI Fighter 11%
GIANT GORILLA Giant 51%
MIFUNE Fighter 11%
ARCHANGEL Demon 51%
 

Misc

It is no longer possible to be drained more than once in a single combat. Casting HAMAN or MAHAMAN flags the spellcaster as drained.
 
Healing items now restore HP with every step or combat round, instead of every 4 steps on average. Same as poison.

3 comments:

  1. Interesting list, and shows that some of the frustrating features of Wiz were not expected (or at least not considered WAD) by the designers.

    SILENCE THE MONSTERS - Silences monster groups 1-3 for 1d4+5 turns.
    TELEPORT THE MONSTERS - Kills all monsters in all groups. No chance to resist.

    I suppose the drawback of Teleport the Monsters is no XP/Gold, else L'kbreth is a trivial encounter if you are willing to lose a level :).

    ReplyDelete
    Replies
    1. Teleport Monsters should grant XP and treasure, but I don't think you could reasonably reach the requisite level 13 in Wizardry 3 without beating the game first. However, spells don't work when fighting L'kbreth. If they did, you might also be able to win by repeatedly casting MAMORLIS.

      Delete
  2. So Archangels are actually demons in disguise? What did they mean by this?

    ReplyDelete