Commit Graph

1014 Commits

Author SHA1 Message Date
7f6992da56 Store sign locations and text in the same structure 2015-02-06 14:43:26 -05:00
efe03b977f Fix buffer overflow when charming/sleeping/paralyzing a level 40 monster 2015-02-06 13:46:53 -05:00
a1da743a47 Move scenario schemas to the schemas directory 2015-02-05 22:56:57 -05:00
e1babdef66 Tweak some proportions so that costs and info strings won't overlap in shops 2015-02-05 22:54:37 -05:00
7d67c0c85b Fix issue with calculating town lighting, and do it on load instead of save since the new format doesn't store it 2015-02-05 22:19:47 -05:00
089fa1a32b Bundle custom graphics into the scenario archive
- Also, allowance for custom sounds and overriding default graphics
2015-02-05 22:19:11 -05:00
1778cd9a61 Tweak scenario output and schema so that they match; write script to XML-validate a whole scenario 2015-02-05 22:18:19 -05:00
9cf65fab35 Misc little fixes 2015-02-05 17:33:37 -05:00
5bfae50315 Traits and races
- Vahnatai race implemented
- Pacifist trait implemented
- New trait: Anama - classified as a disadvantage but also has some perks
- PCs with bug race now immune to web fields
- PCs with undead/demon races now do that type of damage on unarmed attacks

The new races and traits probably still need some work/balancing.
2015-02-05 17:33:12 -05:00
aa938178ce Fix training dialog not functioning in the PC editor 2015-02-05 13:06:46 -05:00
e71ebdc895 Restore training dialog in-game help 2015-02-05 13:06:20 -05:00
e5792f1e09 Eliminate global variables from the training dialog 2015-02-05 02:07:08 -05:00
8d4cea7d0b Complete implementation of saving new-format scenarios and write version-check and loading stub for new-format scenarios 2015-02-04 19:48:31 -05:00
233a19175d Misc minor fixes
- Fix escape not ending shop mode
- Fix outdoor special spots not being drawn
- Fix special spots sometimes appearing off the edge of the sector in the scenario editor
2015-02-04 14:20:59 -05:00
36491c818c Implement a dialog to edit shops in the scenario editor 2015-02-04 13:55:22 -05:00
24a128b5b8 Check for party death before the victory handler instead of checking in the end scenario node
- This means killing the party after calling the end scenario node will give the death screen instead of the victory screen
- Reversing the order of the checks also makes it airtight in case of any future changes
2015-02-03 20:35:06 -05:00
05e64b4407 Add three new types of shop entries and implement support for limited stock in shops
- Random item of special class (works much the same as random item of treasure class)
- Specific item, with percentage chance
- Item whose purchase calls a special node
- Limited stock is only supported for standard items, optional items, and special node hooks
2015-02-03 20:32:34 -05:00
e5aadc05b1 Fix issue with zoomed-out views in the scenario editor sometimes trying to draw non-existent terrain spaces 2015-02-03 15:36:11 -05:00
2728b06f1a Finish implementation of creating a new scenario 2015-02-03 15:35:32 -05:00
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