Commit Graph

808 Commits

Author SHA1 Message Date
d1e67403a4 Fix one-shot messages showing an extraneous error message 2015-01-29 02:01:31 -05:00
62965891db If in a boat and on a passable space (such as a bridge), pausing now allows you to leave the boat.
Pausing again boards the boat once more.
2015-01-29 02:01:29 -05:00
da00da261c Lots of updates to the editor documentation to reflect changes that have been made to the game.
- This update is not comprehensive. It does not touch the appendices, and even in the parts it does touch, many details may still be out-of-date.
2015-01-29 01:10:53 -05:00
81ed1e9656 Reformatting of editor documentation for better diffs, and correcting typos 2015-01-29 01:07:59 -05:00
76295e2f25 Separate summoned monster duration from whether it was summoned by the party 2015-01-28 17:43:22 -05:00
ef288f118f A few small tweaks
- Add something similar to the Anama ravage spirit bonus, but caused by negative dumbfounding
- Change some of the melee attack sounds based on attack type
- Don't increment total monsters killed if the monster wasn't killed by the party
2015-01-28 17:23:39 -05:00
a4350ca8b2 Add two new monster races to account for previously-hardcoded special cases
- Skeletal undead are distinguished from normal undead in that they leave sfx bones when they die; normal undead leave no sfx. In all other respects, they are the same.
- Goblins are distinguished from other humanoids in their death sound. In all other respects, they are the same.
- The sleep() function for players now checks for racial immunity - eg undead, plants, etc
- Protect form humanoids now also protects from sliths, nephilim, vahnatai, and goblins, as it should (this is legacy behaviour)
- Protect from undead still also protects from skeletal undead
- The special case for the ogre death sound is removed; that might mean that ogres can now have a femal death sound? I'm not quite sure what the purpose of the exception was.
- The if species node can now check for non-standard races in the party
- When loading a legacy scenario, it attempts to detect skeletal undead and goblins by the presence of the words "Skeleton" and "Goblin" in the name, respectively
2015-01-28 17:04:01 -05:00
a23682306c Finish edit terrain type dialog in the editor and tweak some terrain properties
- Introduce enum for step sounds
- Remove union for treating terrain flags as either signed or unsigned
Editor:
- Add Choose button to select the "transform to" terrain.
- Implement Choose buttons as appropriate for the terrain flags, including editing the special that a terrain calls.
- Range-check the terrain flags.
- Add Custom button to choose a town as the combat arena.
- Fix/tweak/improve several of the terrain flag prompts.
- Fix placing shortcut key in field as its ASCII code instead of the letter
- Fix some of the range checks that were already in place but were incorrect or improperly static
Game:
- The wilderness terrain types now allow specifying how many d6's of food you get when hunting there.
- Crumbling terrain uses flag 2 instead of 3 to determine method (flag 2 was supposed to be strength but was never used)
- Merge two functions that did almost exactly the same thing (namely altering a terrain space and potentially updating conveyor/lights info)
- Merge switch_level into handle_lever since it was the only place it was called
- Remove global store_special_loc; the location is stored in the stuff_done array now
- Change when use/step on terrains will now update lighting if they changed to a terrain with a different light level
- Terrains that call a special no longer support mixed global/local modes - they either always call a local special or always call a global special
- Use previously unused swap_ter function (which did the exact same thing as the swap terrain special node)
Dialog Engine:
- Don't "erase" invisible icons or buttons; it's not necessary, since the entire window is filled with background before the draw() method is called, and it causes problems in case of overlapping elements.
2015-01-28 15:43:58 -05:00
92a20b1c67 Fill in a lot of missed cases (mostly just messages)
- Increase strength of slayer weapons that weren't in the original BoE by making sure that each race applies some multiplier to the ability strength
- Messages for every occasional status effect, both negative and positive. If charm/forcecage, ignore.
- Fix weapon poison not being applied
- Forcecage supported for damaging terrain (in town only, of course) and "affect status" items
- Weapon poison supported for "affect status" items; it differs from "poison weapon" items in that it honours the magic use type and doesn't risk messing up (like the Envenom spell)
- Show error messages when encountering an unimplemented spell or special node
- Fix missing handling of NPCs appearing after town dies when loading a saved town
2015-01-27 23:52:47 -05:00
ea0fbcffc8 Introduce enum for item ability magic use type
- The affect party status now also supports removing each status
- Removing the flight status is similar to flight wearing off normally - it can lead to party death if you're on a blocked space, and even if not you'll probably take some damage.
- Streamlined the item constructors a little with constructor delegation
2015-01-27 21:11:06 -05:00
2933f1e2e7 Finish support of generalized status effects (probably)
- Negative dumbfounding increases effective magic skills; works on monsters too (though it already did)
- Martyr's Shield no longer permanent on monsters
- Invisible status effect works on monsters (same as permanent invisibility)
- Poisoned weapon status effect works on monsters (adds poison to their first melee attack)
- Restore Mind spell no longer removes negative dumbfounding
- Invulnerability status effect works on monsters (same as permanent invulnerability, and stacks with it)
- Magic resistance status effect works on monsters (halves fire/cold damage)
- Negative magic resistance doubles magic/cold damage (both on PCs and monsters)
2015-01-27 14:55:51 -05:00
ed84ccef19 Make barriers more resistant to dispel barrier in towns with strong barriers
(Previously the only effect of strong barriers was that monsters can't break them.)
2015-01-27 14:08:28 -05:00
6ed3b11399 Fix text wrap in transcript to work with pixel width of text instead of character width
Also, remove all (or at least most) of the extraneous spaces from the end of transcript messages.
2015-01-27 14:06:47 -05:00
33b5116a77 Minor changes
- Implement terrains destroyable by quickfire
- Rename is_weapon() to better reflect its use
2015-01-27 01:09:20 -05:00
baf3ec2a9b Restore the done/help buttons in shop mode 2015-01-27 00:42:22 -05:00
38401d651b Extend the generic to have the same capabilities as the non-generic stair
- That means properly handling stairways during combat or talking
2015-01-26 23:50:11 -05:00
12d1760fd3 Split "if looking", "if in boat", "if on horse" into separate special node types rather than filing them under "if context" 2015-01-26 22:50:16 -05:00
672b416644 Fix looking not working properly in combat mode 2015-01-26 21:51:05 -05:00
0069ef7df0 Implement some new preset combat arenas (camp, crops) and generalized loading of a town as the arena 2015-01-26 21:50:36 -05:00
495a0dab54 PC creation tweaks
- Allow scenario designer to specify exactly which towns allow character creation in them
- Clicking the "Empty" name in the edit party dialog is now equivalent to clicking the create button
- Fix dialog not properly focusing after deleting a PC
2015-01-26 19:34:51 -05:00
d0ea2064c5 Use the extra boom type for magic damage and add special node support for super-huge booms
(Like the one when you destroy a slime pool in Exile III.)
2015-01-26 19:31:52 -05:00
7e341be73d Add key labels to get item dialog and make it more clear when items are not identified. 2015-01-26 18:55:40 -05:00
91c52fca77 Implement customizable background patterns to be displayed behind the game interface based on which town/sector the player is in and whether they are in combat mode, with cascading defaults.
- All the hard-coded background changes are no longer present and not even preserved.
2015-01-26 18:42:54 -05:00
a3c998eaad Enable the hunting code path for an additional advantage of cave lore/woodsman traits
- However, this won't be enabled in legacy scenarios since it requires setting terrain special abilities
2015-01-26 15:16:26 -05:00
01174bdcf0 Translate pointers in all special node fields, not just the sdf/extra fields 2015-01-26 14:37:19 -05:00
4fa0efa7d8 Introduce two dialogs for debugging - a Set SDF dialog and a Debug Help dialog
- sd_legit() moved into cParty class
2015-01-26 14:36:15 -05:00
463af1c41e Dredge out useless code from check_fields function
- Stinking and sleep clouds are no longer processed twice in town mode
2015-01-26 13:28:34 -05:00
944457753d Make skill and giant strength item abilities base their strength on ability strength rather than on item level
- Original ability strength is "archived" in case it was the designer's intent, so that it can be easily put back if desired.
2015-01-26 12:16:31 -05:00
d107fd9750 Fix indentation 2015-01-26 12:13:03 -05:00
128a137b1c Clear out some useless, easily-resolvable, or no-longer-relevant TODO notes 2015-01-26 04:01:57 -05:00
644d1cbda8 Several small fixes/tweaks
- 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
2015-01-26 02:49:38 -05:00
188e50b36c Fix all PCs getting an extra action point 2015-01-26 01:46:58 -05:00
29eb6ace25 Allow switching to an arbitrary PC in combat, provided it has action points
(This is no different than pressing 'w' until you get to that PC, but perhaps more convenient.)
2015-01-26 01:41:31 -05:00
7c67ad9909 Fix monsters having the wrong facial portraits 2015-01-26 00:05:05 -05:00
e25ab2e289 Fix barrels disappearing when you try to push them 2015-01-26 00:04:42 -05:00
b545f41218 Support the summon rat spell in town 2015-01-26 00:04:27 -05:00
8b4a2907f8 Add line to edit monster dialog listing the spells that summon the monster
- Accounts for both the monster's summon type and the special hard-coded summoning spells
2015-01-26 00:04:16 -05:00
c86ebebcdd Fix indentation 2015-01-25 23:06:21 -05:00
d877df5101 Lots of fixes large and small
- Fix crash while resting outdoors
- Fix screen not going dark while resting
- Fix crash when starting a new game from the death dialog
- Fix several typos that completely broke combat and special encounters
- Fix bless/curse being inverted when applied to PCs
- Fix booms not showing when stepping in damaging fields in combat
- Fix crash when attempting to save a game that has never before been saved (due to clicking cancel at the initial save dialog)
- Fix some of the flickering during animations
- Support "special" damage on PCs - pierces invulnerability much like it does for monsters
- Fix monster missiles sometimes being mistargeted in combat mode
- Fix iLiving->index conversion
- Add special damage to scenario editor list
2015-01-25 23:06:13 -05:00
79e03bc544 Fix indentation 2015-01-25 19:15:56 -05:00
d396e459a3 Pass around iLiving references instead of target indices in most combat contexts (and some non-combat)
- 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
2015-01-25 18:24:47 -05:00
99bb11dd3b Split up files so that the scenario editor will build
- cCreature split into seperate file-pair from cMonster/cTownperson
- fileio.cpp split into general, party, and scenario sections
- classes.h file deleted
2015-01-24 21:29:34 -05:00
7f8f18a5fb Several minor fixes
- Bound-check occasional party statuses
- Martyr's shield no longer ignored in attacks between monsters
- Fix food/gold decreasing when a monster with a steal food/gold ability attacks a monster
2015-01-24 20:07:13 -05:00
144945587b Initial stage of major refactor - putting all PC/monster-affecting functions inside the respective classes 2015-01-24 20:02:20 -05:00
44a235673f Update XCode project's knowledge of the file encodings 2015-01-23 22:15:44 -05:00
d77baefcb5 Add new shop type and enhance existing ones a little
- Shops can now sell skill upgrades without skill point costs (currently available only through special node, not through dialogue)
- Spell shops now show level and spell point cost
- Alchemy shops now show ingredients
- Make use of the constants defined for indexing the shop rects
- Support for arbitrary quantities of items in shops, rather than simply infinite for normal shops and one for magic shops (there's no hook for this yet, though, so it can't be used)
2015-01-23 22:04:48 -05:00
fd41f2fb20 Fix some things that broke in recent commits 2015-01-23 21:48:36 -05:00
9b067b62e4 Implement writing of town/outdoors map data to file 2015-01-23 18:21:20 -05:00
f00675c4f4 Fix BoE build (was broken by enchantments change) and make more use of the direction enum 2015-01-23 18:20:59 -05:00
c4205dda07 A little work on template towns (still not sure how they should work though) 2015-01-23 16:39:51 -05:00