Commit Graph

976 Commits

Author SHA1 Message Date
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
8d352423b3 Rename underscore-initial names in cTown subclasses 2015-01-23 16:16:36 -05:00
869c629b8b Update the edit placed item dialog
- Fix weapon enchantments
2015-01-23 15:56:18 -05:00
78cdadc13c Fix arrow buttons in edit special item dialog 2015-01-23 14:40:15 -05:00
c63544054f Mass rename of variables in the scenario editor dialog handlers 2015-01-23 14:33:10 -05:00
dbb661d0e5 Nuke some globals 2015-01-23 13:56:53 -05:00
cf85ea7f5a Fix/update the edit placed monster dialogs
- Also, edit monster dialog now shows default facial pic
2015-01-23 13:37:47 -05:00
72dfea868f Fix charges in preset items being ignored (except for food/fold) and introduce possibility of placing enchanted items in towns (lacks editor support though) 2015-01-23 04:27:44 -05:00
41db6dcfdf Fix indentation 2015-01-23 04:06:06 -05:00
bbbdccbd81 Fix PC editor build 2015-01-23 02:58:17 -05:00
f574281c3f Make monster/item lists in party town record dynamic 2015-01-23 02:53:36 -05:00
d9b9130d00 Make monster/item lists in scenario town record dynamic; move monsters to town superclass 2015-01-23 01:23:43 -05:00
df6222abda Restore the use of a separate class for town preset creatures 2015-01-22 23:39:59 -05:00
ac4441f33e Implement writing town to XML 2015-01-22 21:36:54 -05:00
5e21b8d4be Add three more map features to the map parser 2015-01-22 21:36:53 -05:00
34ee2b2c29 Introduce enum for monster time flags
- Also, this probably fixes the issues with certain time flags (particularly the "sometimes ones) not working correctly
2015-01-22 21:36:53 -05:00
aa705fac13 Implement writing outdoor sector to XML 2015-01-22 21:36:46 -05:00
952d81ae5a Store rect descriptions together with their rectangle and remove now-unused string-length members 2015-01-22 15:19:26 -05:00
3e0e3d3b8a Implement saving monster definitions to XML 2015-01-22 14:33:28 -05:00
670e35f9d5 Implement writing item definitions to XML 2015-01-22 12:22:40 -05:00
ee27e5341d Implement writing terrain definitions to XML 2015-01-22 11:23:44 -05:00
faac33f664 Whoops, this wasn't supposed to be committed 2015-01-22 11:18:13 -05:00
df4dc3bf21 Extract saving of main scenario data into a subroutine 2015-01-22 10:28:38 -05:00
6a08476d22 Create dialog for editing large terrain object definitions
- Remove keybindings from terrain dialog arrow buttons
- Fix arrow buttons not bound-checking fields

Dialog engine:
- Fix fields crashing after text is set while it has focus
- Trigger focus handler on untoast() to balance that in toast()
2015-01-22 10:22:59 -05:00
5315655bc6 Fix up some minor issues with the special node editing dialog
- Also: merge "nuke monsters" and "destroy monster" nodes, since the action of the "destroy monster" node isn't what it sounds like; now it simply destroys a single monster on a specific space
2015-01-21 22:36:00 -05:00
e689ed93ef Update the in-game item info dialog and restore support for long item descriptions 2015-01-21 21:26:23 -05:00
41fbd73ef9 Get the scenario, town, and outdoor details dialogs updated for new stuff
- Advanced town details now offers edit buttons to edit the specials immediately

Changes to dialog engine:
- Fix tiny buttons stretching to fill label area
- Fix LEDs stretching if label area is higher than LED button
- Fix LEDs ignoring font setting
2015-01-21 15:59:09 -05:00
2a2e7068d0 Exploding weapon ability now properly sets the spell pattern for targeting
- Also fix good constitution trait having no effect on disease
2015-01-21 14:07:59 -05:00
311a3c0702 Get the item abilities dialog working and updated for new stuff
- Add additional treasure type for "unique" items
- Main item dialog now shows the item ability's display name, and also has more space for the item's full name
- (Game) No-ammo missiles (eg slings) are now counted as weapons by shops
- (Dialog Engine) Fix LED groups being drawn when invisible
2015-01-21 14:04:40 -05:00
fb607f83c1 Create enum for stat screen mode 2015-01-21 13:53:29 -05:00
53677398de A few more item abilities
- Weapon ability that drains spell points (works at both melee and range)
- Armor abilities that boost groups of stats - one for all combat stats, one for all magic stats
- Item ability that occasionally increases light level when it's dark (works even in towns with no light)
- Renumber the usable abilities to fill in gaps
- Usable light ability can now decrease light as well as increase
2015-01-20 23:59:15 -05:00
74ed88f2f3 Several new item abilities and one new monster ability
- Range augment ability for missiles
- Seeking ability for missiles (can strike an adjacent space if targeted space lacks a target, including chance of hitting invisible monsters)
- Weapon that calls node when attacking with it (works both in range and melee; the cases can be distinguished by the node with IF_CONTEXT)
- Armour that calls node when attacked while wearing (works both in range and melee; the cases can be distinguished by the node with IF_CONTEXT)
- Monster ability that calls node when monster attacked (works both in range and melee; the cases can be distinguished by the node with IF_CONTEXT)
- The above three only apply to non-magical attacks - some things don't trigger it, like spells, monster rays and breath weapons, possible a few others
- Armour that protects from all melee damage (including demon/undead, though less)
- Armour that decreases chance to be hit (both in range and melee, against non-magical attacks only)
- Armour that behaves like to the martyr's shield effect but also has a chance of adding some extra bonus damage
- Armour that's more encumbering than advertised (best for cursed items with concealed ability)
- Multiple items with the accuracy ability now stack
- Fix nephilim not getting their racial bonus to missile weapons
- In specials called as part of an attack, the reserved pointer -20 contains the target in a form ready to pass to a SELECT_TARGET node, while -21 and -22 contain the location of the target. This includes the new cases added in this commit plus the monster ability to call a special node on its turn. It does not include specials called in the spell targeting context (to do so would break legacy scenarios), nor specials called after a targeting node.
- If a PC is carrying more than their max weight, they gain encumbrance equal to one-tenth of the excess.
- Add some missing context cases to IF_CONTEXT node
2015-01-20 21:40:48 -05:00
7837459177 New item variety: Special
- When picked up or purchased, the party gains a special item
2015-01-20 17:45:15 -05:00