Commit Graph

89 Commits

Author SHA1 Message Date
9fed4fc799 Recharge: Melt chance and shop customization
For the recharge spell, there is now a chance for the item to melt if you try to charge it too much.
For recharge shops, it is now possible to configure how much they are willing to charge an item,
as well as how many charges are given per payment.
2024-09-10 22:18:59 -04:00
da21e7d775 Add new recharge spell (only an item spell currently) 2024-09-10 22:18:59 -04:00
753dbbcc59 Add a new dialogue mode to recharge items
This is currently useless, as exhausting an item's charges currently deletes it, but it is part of a work in progress
2024-09-10 22:18:59 -04:00
17ed180e29 Fix two mislabelled sounds 2017-01-31 16:40:11 -05:00
7008bf9149 Some updates to game tips 2016-09-13 22:13:40 -04:00
ba984279b0 Some item ability stuff
- Two new item abilities that increase damage as sp/hp is lost
- Two new item abilities that reduce damage as sp/hp is lost
- Support for using sp/hp as a weapon's key skill to determine hit chance
2015-10-12 14:11:27 -04:00
d178dcea63 Allow customizing how much food a waterfall takes 2015-10-04 18:26:16 -04:00
d908cdff9c Tweak Vahnatai PC traits and add Magery item ability
- Vahnatai no longer have a bonus to mage spells (that's now the Magery item ability)
- Vahnatai XP gain bonus changed
- Fix sliths being noted as resistant to poison (they aren't and never have been)
2015-10-03 23:55:52 -04:00
b465e3e498 Display "One-Time" for all one-time node types, for clarity 2015-10-01 03:17:40 -04:00
da9b65118e Add readable books as a special item ability 2015-09-24 18:25:02 -04:00
152fd6a3ed Typos 2015-09-20 22:20:47 -04:00
13801e83ab Several tweaks/bugfixes
- Preview terrain step sound when selecting it
- Fix uninitialized start locations
- Fix missing strings in copy files build phase
- Fix mislabelled terrain flag 3 for Call Special When Used
2015-09-10 12:50:38 -04:00
15ca61f869 Lots of new tiny editor icons
- Several new icons for specific damage/status terrains
- New icon for light-emitting terrains (only shown in town)
- New icons for diagonal conveyors (even though they're still not implemented in the game)
- Some old icons updated, tweaked, or (in the case of crumbling) replaced
- Many new icons for developer use, including a complete set of letters and digits
- Choose button to select small icon for terrains that call a special node or have no special property (you select from a list of descriptions)
2015-08-31 08:53:55 -04:00
a216693610 Remove Protection from Melee Damage item ability, because it's redundant 2015-07-28 02:22:56 -04:00
b2626d8755 Some sound changes (thanks to ADoS)
- Hiss in female scream sound removed (ADoS)
- Startup music dehissed by extracting it from the Mac resource file (CM) and doing further processing to reduce the hiss (ADoS)
- Sound 99 (formerly a null sound) replaced by sound 60 from the Mac resource file (CM)
- Includes the Python script used to convert extracted 'snd ' resources to WAV
2015-07-27 11:14:29 -04:00
9a2881ef66 Fix title message opcode 2015-07-01 16:12:15 -04:00
ee9c089829 Add a Display Message With Title special node
- Remove Wandering Will Fight, which has been made redundant
2015-06-30 22:19:52 -04:00
d11e34b41b Adjust If Party Size node to match documentation 2015-06-27 20:49:02 -04:00
21435082c9 Add optional space insertion to string buffer append nodes 2015-06-27 20:48:14 -04:00
dafe6c2790 Some character editor changes:
- Move Own Boats/Horses to Scenario menu
- Disable Scenario menu if not in a scenario
- Don't bother converting notes from legacy saves if not in a scenario (affects game too)
2015-06-27 02:08:15 -04:00
0fbb872b73 Add Give Equipment node for giving a specific PC an item,
possibly with modifiers (like equipping it)
2015-06-24 01:54:41 -04:00
c30c9fca5f Fix some erroneous node information due to misordering 2015-06-24 01:54:40 -04:00
cb14a9c5d7 Add a Swap Buffer node, giving you an infinite number of string variables
- Also fix the string buffer so that it actually works.
- Also add a node to change the text of a sign
2015-06-23 20:17:28 -04:00
6ef885c3ef Expand three special node types
Can't Enter node renamed to Prevent Action, as it's a more accurate description of what it does. It has been expanded to cover the following cases, all of which are documented:
- When the special node was called during an attack action (which involves a weapon whose ability is to call a special node when attacking, or an item or monster ability that calls a special node when hit), then Prevent Action reverses the action point cost.
- When called as the result of a purchase (a shop item that calls a special), then Prevent Action prevents gold from being deducted (which is also new in this commit, as before it never deducted gold)
- When called as the result of using a normal item (not a special item), then Prevent Action prevents a charge from being deducted
- When called as the result of a monster using its ability, then Prevent Action prevents the action points from being deducted
- Cases it already covered (cancelling initiation of talk mode, searching of containers, outdoor wandering encounters) have been documented
- The fact that it will break things during talk mode is also documented now

Start Spell Targeting node has been tweaked and gained some new options:
- You can allow the player to target opaque or antimagic spaces. In town mode, you can prohibit them from targeting antimagic spaces.
- You can specify a special node to be called if targeting fails because they selected an invalid space, or because an special node keyed to spellcasting context cancelled it
- You no longer get a "Hit 'p' to cancel" message. Even better, hitting 'p' does not cancel it. (Well, more precisely, it triggers the failure node, with the party's or pc's location as the target space.)

Misc:
- Fix crash outdoors due to trying to check for force barriers
2015-06-10 22:51:53 -04:00
f6be40618b Overhaul and improve force cages
- Add instant help message
- Prevent from ending town combat if one member is in a forcecage or if everyone's in a different forcecage (you can still end it if everyone's in the same cage)
- If entering town combat while caged, everyone remains in the cage
- Penalties to melee combat if the target or attacker is in a forcecage (higher penalties if the attacker is caged, unless they're using a pole weapon)
- Instead of placing a forcecage at every location where someone gains forcecage status, the game now syncs forcecages (placing them on locations where someone has forcecage status) at the end of the move.
- The Flash Step and Word of Recall spells and any specials that move the party also clear their forcecage status, so that a new forcecage won't appear on their new location. If they're moved into a forcecage, the syncing process will give them the status at the end of the move.
- Forcecage status now supported for the Occasional Status item ability
- Forcecages now eventually expire on their own even if you can't break out. Unoccupied ones also have a slight (0.1%) chance each turn to expire.
- Affect Status node now allows forcecage status. (It also works as documented, using Extra 1c rather than 2a as the status type.)
- Preset monsters placed in preset force cages gain the status at town initialization; it's a lot more than they'd gain through the syncing process, so unless they break free, it'll last a very long time.
- Monsters/PCs with spells (and PCs with Mage Lore) now have an increased chance of resisting entrapment in a forcecage
- If the full party is subject to a forcecage, the PC with the best chance of breaking free (assuming they don't resist) is chosen to determine whether they resist. Note that this may not be the PC with the best chance of resisting in the first place.
- Protection from Forcecage now implemented as an item ability
Other stuff (though related):
- Reset party's combat pos to the null location (-1,-1) after a cutscene ends; to not do so would mess up get_loc() calls
2015-06-10 11:45:14 -04:00
2d9c3ba2d9 Remove the arbitrary limits on the following quantities:
- Number of terrain types - as long as the last terrain in the list is unused, you can delete it
- Number of monster types - as long as the last monster in the list is unused, you can delete it
- Number of item types - as long as the last item in the list is unused, you can delete it
- Number of special items
- Number of strings (scenario, journal, outdoors, town)
- Number of signs (outdoors, town)
- Number of description rectangles (outdoors, town)
- Number of town entrances (outdoors)
- Number of dialog nodes (town); number of personalities per town is still limited, but since you can use personalities from any town and the number of towns is unlimited, you still have effectively unlimited personalities

Other related stuff:
- Fix ability to select nonexistent terrains/items/monsters from the palette
- Fix inability to find unused special strings in some cases
- Fix sometimes incorrectly selecting the current node as the next node in the chain, instead of a new node
- When cancelling from the special node dialog, it's a bit more intelligent about whether or not to drop nodes from the end of the list
- Edit string dialog now has a cancel button
- Save otherwise unused talk nodes if they contain strings, to avoid loss of data that might be important
- Fix scenario and journal strings loading incorrectly if some strings were blank
- Fix some issues with list modes activated by menu not appearing until the mouse moves over the window
- Fix incorrect instructions in list modes (it's alt-click, not command-click as the instructions indicated)
- Implement "erase town entrance" button and create a visual difference between town entrances with an assigned town and those without
- Fix inability to erase monsters after the first 60 in town
- Fix escape key accepting changes in the shop dialog, instead of cancelling
- Fix quest/shop list resetting to top after editing one
2015-06-08 22:14:47 -04:00
aa5dfe4f69 Add two special nodes
- Node to make a monster target a specific PC or monster
- Node to force town entry from outdoors
2015-06-08 22:14:40 -04:00
58fbf3b287 Lots of monster stuff, particularly documenting monster abilities
- 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
2015-06-06 21:03:35 -04:00
5bcf220204 Add support for custom explosions with custom sound choice 2015-06-04 18:47:01 -04:00
49ec6278d3 Fix a few scenario load/save issues
- More uninitialized data issues
- Some values incorrectly loaded (monster radiate chance, terrain horse blockage, town lighting type)
- Some values incorrectly saved (item magic-use flag)
2015-06-04 01:14:57 -04:00
a51ab021f4 Add two new special nodes for cutscenes
- Node to change a monster's location (also works on party members)
- Node to temporarily place text on the map
- Fix the "lift fog" node
- Remove the optimization of only redrawing a terrain space if it has changed
2015-06-03 20:56:07 -04:00
1b754619dc Several more tweaks/fixes
- Missing special node opcodes
- Pass the party's (or in combat, the active character's) current location to special nodes triggered by timers
- Fix the set pointer node
- Fix terrain palette not correctly registering clicks while scrolled down
- Fix sheets not correctly being copied from the temporary files folder
- Fix monster abilities not being loaded from new scenarios
- Fix custom sheets not being reloaded if they have changed
- Documentation tweaks
2015-06-02 22:01:22 -04:00
2dee8e81f7 Add editor support for the new Affect special nodes 2015-06-01 14:59:14 -04:00
965dcc1201 Add ability for an item to call a special node when dropped 2015-02-07 13:10:28 -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
36491c818c Implement a dialog to edit shops in the scenario editor 2015-02-04 13:55:22 -05:00
fcd29fb2ac Fix scenario editor build and update data/docs regarding shop nodes 2015-02-03 13:53:03 -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
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
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
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
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
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
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
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
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
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
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