Commit Graph

1014 Commits

Author SHA1 Message Date
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
decdc3111b Don't account for strength bonus from items when adding HP at level-up 2015-01-20 17:18:48 -05:00
24f2bf455d Merge missile and melee weapon abilities
- Missiles now support arbitrary status effects (not just acid)
- Melee weapons now support the exploding ability (though such a weapon wouldn't be that great for the wielder)
- Melee weapons now support the heal target ability
- Lightning missile ability merged into damaging weapon abilit
- Missile slayer ability merged into slayer weapon ability; existing slayer weapons are slightly weakened (-1 damage for demons, -2 damage for undead)
- Exploding weapon ability now supports arbitrary damage types (not just fire)
- Missile weapons now support the weak weapon ability
- Missile weapons now support the soulsucker ability
- When firing a missile at a PC, all secondary effects now take place
- Fix thrown weapons, which were broken by the key weapon skill generalization
2015-01-20 17:18:47 -05:00
42639882e3 Add option to call a scenario special node to apply the effect of a trap
Also:
- The possible traps resulting from "random trap" is expanded to include the knife trap
- A custom picture can be specified for the trap dialog
- A given custom trap special node can be reused for the same trap with different levels - the pointer -5 holds the trap level passed to the ONCE_TRAP node
2015-01-20 17:18:46 -05:00
4c271140c6 Allow items that boost skills other than the three basic stats (STR/DEX/INT)
Where stat-boosting items were already accounted for, the effects remain unchanged by this; however, some additional effects have been added.

Strength-boosting items have the following new effects:
- Increases hit points gained on level-up
- Increases amount PCs can carry
Dexterity-boosting items have the following new effects:
- Increases hit chance in unarmed combat
Intelligence-boosting items have the following new effects:
- Increases effectiveness in a mindduel
2015-01-20 17:18:45 -05:00
54a8ae8213 Merge more item abilities
- Bliss and doom merged into single ability (distinguished by item use type)
- The three party status abilities merged into one
- Major healing now has a negative version
- Summoning and mass summoning now use first ability data to determine duration; second ability data determines monster
- Added generic use message for spell abilities that didn't already have a specialized message
- Mass summoning no longer redundantly recalculates random number of summons after each summon
2015-01-20 17:18:44 -05:00
09b1dc35ab Fix alchemy being completely broken (in that brewed potions wouldn't work) 2015-01-20 17:18:43 -05:00
2c8ef727ae I don't understand how this issue even existed, but apparently it did 2015-01-20 17:18:42 -05:00
bbe8e766ca Update the edit item dialog for new things (missiles, arbitrary key weapon skills)
- Also, missile weapons now use the key skill as well
- Fix guessing of missile types - using the item level didn't work out since the levels weren't what the original code expected, so now it just goes by the name
2015-01-20 17:18:42 -05:00
5450ae1caf Implement editing dialogs for individual monster abilities
Changes to game:
- Permanent martyr's shield is now customizable - extra1 is per-mille chance to activate each time damage is taken, and extra2 is percent of damage taken to apply to attacker
- Absort spells is now customizable - extra1 is per-mille chance to activate each time damage is taken or a magic effect is applied, and extra2 is how much hp to gain from non-damaging magic effects
- Splits ability is now customizable - extra1 is per-mille chance of splitting each time damage is taken
- Special node ability is now called before the monster tries its normal attack, and multiple monsters can use them per round (though each can only use theirs once)
- Fix issue with breath weapons and icy touch abilities conflicting (legacy import issue)
- Add two variations of the summoning ability - summon according to summoning level (like the spells), or summon a random creature of a particular species
- Fix touch abilities using the range as chance to use

Changes to dialog engine:
- Fix tab order handling to exclude fields that are currently hidden
- Add method to retrieve the parameter passed to toast(), as a quick way to distinguish between the user clicking OK or Cancel after run() has exited
- Fix hidden fields being drawn anyway
- Fix setting stack page sometimes crashing if the current page was invalid due to earlier reducing the page count to 0
2015-01-20 17:18:41 -05:00
d614286fec Fix edit event special node using the button as the node number 2015-01-20 17:18:40 -05:00
20db55d1b2 Some fixes/tweaks to monster ability imports and names 2015-01-20 17:18:39 -05:00
7084991e55 Get the edit monster abilities dialog all working and updated (except for editing individual abilities)
Game changes:
- Remove support for playing a sound and displaying strings when a monster is first seen, since these behaviours can easily be obtained by using the special node called in the same context.
Dialog engine changes:
- Support for changing the font size of LEDs
- When setting the page, a stack now applies a default value if the map is missing the required data
- Add utility "addPage" method to stacks
- If reducing the page count means the current page is deleted, a stack now switches to the last page
2015-01-20 17:18:39 -05:00