Commit Graph

845 Commits

Author SHA1 Message Date
fcd29fb2ac Fix scenario editor build and update data/docs regarding shop nodes 2015-02-03 13:53:03 -05:00
5140f54a23 Fix trying to place death stains (and crashing) if a PC dies outdoors 2015-02-03 11:15:27 -05:00
008248a947 Rewrite shops system to be more general
- Shops can now contain more than one type of item (for example, both mage and priest spells)
- Shops can now specify any talking portrait
- Healing options in a shop now have an info button giving a brief explanation (partly because it was easier than maintaining the exception)
- Additional healing option (not present in default healing shops): cure acid
- Acid is also no longer removed when you leave town or end combat (unless it's about to wear off)
- Always start shop mode with the scrollbar scrolled to the top
- Fix crash when entering an outdoor shop (and outdoor dialogue for that matter)
- Treasure generation system can now return junk items (treasure type 0), but only if explicitly requested; this is possible in shops but not with monsters since 0 means no loot

Dialog Engine:
- When setting a scrollbar's maximum, it now ensures the current position doesn't end up greater than the maximum
2015-02-03 11:15:26 -05:00
559663dd35 New special nodes to store/unstore PCs outside the party structure
- Stored PCs are lost when you leave the scenario
2015-02-02 14:18:30 -05:00
8d23bbc788 Move creature text member functions into general file
- This finally fixes the PC editor build
2015-02-02 12:44:39 -05:00
ea49a13ff8 Revert petrify to being handled by freestanding functions
- Also change kill/damage to take a player/monster reference instead of an index
2015-02-02 12:41:17 -05:00
1d733d081c Simplify the IF_CONTEXT special node so that new contexts don't need to be manually added 2015-02-02 11:47:22 -05:00
b11e934162 Rewrite automatic trim placement to use the generalized attributes of the terrain spaces 2015-02-02 11:38:40 -05:00
e70715874a Fix terrain drawing only working while zoomed out 2015-02-02 11:38:39 -05:00
7df8f84258 Fix a few missing switch cases 2015-02-02 11:38:39 -05:00
ae7c8e12db More removal of reliance on hard-coded limits 2015-02-02 11:38:39 -05:00
b4e82733a4 Hilite the terrain the mouse is over in the scenario editor so that you can tell which terrain will be affected when clicking, even in cases where it's not so obvious (for example when the cursor's hotspot is in an unexpected place). 2015-02-02 11:38:38 -05:00
0bfe08c0d9 Disable that one really annoying warning 2015-02-02 11:38:38 -05:00
a2ae288022 Remove the limit on the number of placed specials per town or outdoor sector 2015-02-02 11:38:38 -05:00
d42c4fff08 Alter boat specials fix to insert new special nodes if there's no unused ones, taking advantage of the fact that the lists of special nodes are now dynamically sized 2015-02-02 11:38:38 -05:00
eaeb9690c3 Remove the limits on the total number of special nodes in the game 2015-02-02 11:38:37 -05:00
c37ede5a04 Make a lot of code stop relying on hard-coded sizes 2015-02-02 11:38:37 -05:00
15a802f63d Officially move version info up to 2.0 2015-02-02 11:38:37 -05:00
07054eb465 Move most of the methods affecting specific status effects into the appropriate files
Other changes:
- PC-on-PC attacks now account for the target's dexterity, evasion items, and parry status
- Harmful spells that inflict a status effect now work if targeted on a PC
- Turn Undead, Dispel Undead, Ravage Spirit spells, when cast by a PC, now consider the possibility of undead/demon party members, and work if targeted on them
- Forcecage is now allowed for monster touch/ray abilities
- Items that inflict curses, slowing, or webs now account for items that grant resistance
2015-02-02 11:38:37 -05:00
4f93e8ea5a Update special node and talking node strings/data for the new quest stuff
- Also, Update Quest node now uses the mess1/2 fields.
2015-02-02 11:38:36 -05:00
a41468eea8 Redo scenario button-list management to use std::string and enums, making it more robust in case of layout changes
- Also fix LEDs defaulting to a wrapped label
2015-02-01 02:44:09 -05:00
4efcb08932 Implement a quest system and job board
- 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
2015-02-01 01:30:15 -05:00
db627e54a8 Fix mountains and cave wall being considered walls for the purpose of trims 2015-01-30 21:47:43 -05:00
0d010f30bf Fix auto-generated frills causing the game to significantly lag 2015-01-30 21:17:51 -05:00
878d3337b1 Fix issues with display of occupied boats/horses 2015-01-30 17:12:43 -05:00
5364d9cb62 New spells that can be attached to items:
- Augmentation - gives one PC bonus hit points
- Nirvana - gives one PC negative dumbfounding and bonus spell points
- Icy Rain - like Firestorm, but cold damage
- Flame Aura - Damages spaces adjacent to caster
- Summon Aid - Like Summoning, but only summons one
- Major Summon Aid - Like Major Summoning, but only summons one
- Flash Step - Short-range teleport
- Fix Blade Aura spell not having refer and timing information; it also had the wrong ID (82 instead of 72
2015-01-30 17:12:16 -05:00
e0baecef4d Several little fixes
- Fix take_gold function adding to party gold instead of subtracting
- Fix wandering NPCs not appearing if the town was stored in a save slot
- If IF_FIELDS node called while outdoors, skip to jumpto
- If IF_STATISTIC called on selected target with whole party selected, default to cumulative check
2015-01-30 12:58:39 -05:00
2de0b76454 Merge all the shopping talk nodes together into a single node type
Also:
- Fix items in magic shops respawning when re-entering the shop
- Remove unused food shop type
2015-01-30 12:56:01 -05:00
d568bc6858 Fix scenario editor build 2015-01-30 11:38:28 -05:00
97153e9576 Prepare for talking reform by making the import function robust against enum rearrangement 2015-01-30 01:23:04 -05:00
a64dc47425 Documentation: Update appendix on item abilities and about half the appendix on special nodes 2015-01-29 23:00:29 -05:00
7a59776189 Various special node fixes/tweaks
- Fix secret passage nodes (CANT_ENTER with ex1a = 0, ex2a = 1) not working
- Set many flags now sets the entire row of 50 flags
- Division node now accepts either SDF to be null
- New mode for append item to buffer - adds the item's "interesting string" rather than its name
- Affect mage/priest spell inverted the meaning of ex1b relative to other affect nodes; this has been fixed
- Fix affect party status being confused about which fields mean what (the implementation had one idea, and the porting of old scenarios had a different idea, and the scenario editor had yet a different idea). In addition, it now allows removing the statuses.
- Fix some typos in special node information for the editor
2015-01-29 22:48:42 -05:00
28a630d9e7 Fix an ability strength of 7-10 being worse than one of 6 for protect form damage/species abilities. 2015-01-29 17:07:29 -05:00
e539c6c0e4 Implement missing Mass Sleep spell and use item spell level for all item spells
- Previously, item spells that don't enter targeting mode would use the item user's level to determine the effect.
- Also, item spells that have multiple targets used to use the item user's level to determine the number of targets.
- Mass Sleep spell was completely unimplemented; it now works just like Mass Paralysis (except for causing sleep instead of paralysis)
2015-01-29 17:06:43 -05:00
f179e07251 Reformat editor appendices for better diffs 2015-01-29 17:01:04 -05:00
1671fb347e Change light radius range to match the documentation 2015-01-29 02:02:39 -05:00
b3106ff1f2 Outdoor specials were triggered in a boat in original BoE, so remove the workaround to prevent it. 2015-01-29 02:02:13 -05:00
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