- Rename unblockable damage to "weird" and special damage to "unblockable"
- Monsters now support immunity to any damage type
- Fix using wrong damage type for bonus damage in PC-on-PC attacks
- Forbid use of unblockable (formerly special) damage by the scenario designer, except in special nodes; if hacked in, it's replaced with weird (formerly unblockable) damage.
- Fix damage amount text in animations (both single-frame booms and fully animated booms)
Changed the following things from weird (formerly unblockable) damage to unblockable (formerly special) damage:
- Starvation
- Debug 'K' command
- Damage from items forcibly ending flight
- Damage from bashing doors
- Show monster name in description of summoning item abilities (in-game and in the scenario editor)
- Don't call drop special nodes when storing an item in a container
- Don't use exceptions to determine whether a slot in the get window has an item in it
- Fix placed items defaulting to 0 charges instead of -1 (fortunately, this didn't actually cause a bug)
- Fix ability description in item dialog not updating after you edit the abilities
- Fix off-by-one issues in several cases of the pick monster dialog
- Show charges field in placed item dialog if the item is given the Shoot Flames enchantment
- Fix enchantment field not being filled with the current value when opening the edit placed item dialog
- Fix placed item dialog not updating after you set a new enchantment by editing the field (rather than using the Choose button)
- (Dialog engine) Fix initial focus handler call passing wrong control ID
- Monster radiate abilities can now specify a spell pattern to use
- Fix some abilities being incorrectly shown in the editor's ability details dialog (for example, radiate abilities were shown as "Summon aid")
- Add the recently-added monster missile types to the options offered in the editor
- Fix chance of activating not being editable for the martyr's shield ability
- Show the monster summoned for summoning abilities (finally!)
- Show the subcategory for unusual abilities (one of active, passive death)
- Fix the displayed percentage chance for summon abilities (the permille was shown instead)
- Fix incorrect action point display in the editor for the two recently-added monster missiles
- Fix crash when editing a missile ability
- Fix abilities page not showing the newly-added or recently-edited ability after exiting the detail/option dialog
- Fix pick monster button for summoning abilities being off by one
- The job board is loosely based on Exile III's job board; the dialog is converted from the one contained as a relic of E3 in BoE
- Quest system is loosely based on a mix of Exile III jobs and Blades of Avernum quests
- Talking to a monster (even a hostile one) can now trigger an arbitrary special node
Dialog engine:
- LED's now support wrapped labels
- Fix drop/give/use buttons not appearing in inventory
- Fix wrong item variety being shown in the item info dialog
- Enable the code path where clicking an item while in "use space" mode uses the item
- Introduce constants for the special item pages
- Fixes PC melee attacks using webs from the wrong PC
- Support for PC-on-PC attacks is in place, though these code paths are currently not entered; could be used for charmed PCs, for example
- In many cases, status effects that don't affect monsters are now supported for them (but still don't affect them... yet)
- The "special" damage from assassination is now handled differently; support for it is no longer hard-coded into damage_monst(), and the message display for it is handled externally from damage_monst(). Also, it's no longer used for any kind of magic weapons.
- Select target special node has changed its way of selecting a specific monster/PC as the target
- Fix monster-on-monster attacks applying poison on all three attacks instead of just the first
- cCreature split into seperate file-pair from cMonster/cTownperson
- fileio.cpp split into general, party, and scenario sections
- classes.h file deleted
Where stat-boosting items were already accounted for, the effects remain unchanged by this; however, some additional effects have been added.
Strength-boosting items have the following new effects:
- Increases hit points gained on level-up
- Increases amount PCs can carry
Dexterity-boosting items have the following new effects:
- Increases hit chance in unarmed combat
Intelligence-boosting items have the following new effects:
- Increases effectiveness in a mindduel
- Rearrange alchemy code a little to fix a possible situation with two-ingredient potions where you only have one of the first ingredient - instead of removing the second ingredient, it would have removed the next item in your inventory
- Equippable item abilities that have an ability strength now stack if you have multiple items with the same ability equipped
- Abilities are much more generic, but also much more complex; a set of "templates" is provided to try to make it more accessible
- There is now a possibility for monsters to charm each other
- See monster strings are now fetched from the same list as the special encounter strings instead of a list of their own
- There is now a possibility for the scenario intro dialog to have a different icon than the scenario icon
- Remove unused intro_mess_len field
- Add method to the XML printer class to push a simple element with no attributes or child elements
- Automatically close any elements before writing the document to the stream
- Fix scenario editor File menu having an invisible "Close All" option that appeared when the option key was pressed
- Monsters now properly decide whether they can enter damaging terrains
- The possibility of being unusually vulnerable to a damage type is introduce - such monsters would take double damage from that type
- Rename cItemRec -> cItem and cItemRec::type -> cItem::weap_type
- Clear out a lot of commented code
- Remove the flag_x members in the scenario that used to store the scenario's password hash (or something like that)
Also:
- Print "Target Spell" before the explanatory prompts, instead of after (when fancy targeting)
- Fix sell costs being drawn on top of the button
- String-insensitive comparing for dialogue keys
(Older saved games might still work if not in a scenario.)
- Remove items that call a special node when entering a new scenario
- Remove stone block if a monster is placed on it
- Monsters captured by Capture Soul now persist across scenarios
- Fix barrels/crates not being restored when re-entering the town
- Fix issue when saving monster status effects
- Fix version number stored in saved game file; also, it's now stored in hexadecimal
- Fix issue with saving which would have caused all but the first timer to be ignored when loading the saved game
- Fix timers being written to out-of-bounds memory when loading a saved game
- Fix use of std::skipws where std::ws was intended
- Fix issue with the fields array being shifted right by one tile on loading; also, fields array is now saved as hexadecimal
- Fields and terrain array use the town's dimension instead of dimension hard-coded (in the case of fields) or stored in the file
- Fix PC editor remove from scenario option not working properly
- Reconstruct the universe when loading a saved game to ensure there isn't leakage from the previous universe
- Fix excess padding in output tarballs when the filesize is a multiple of 512
- Add hasFile function to tarball class