Commit Graph

2774 Commits

Author SHA1 Message Date
0aaac89b03 there is a 7th enchantment in the code, and its string was wrong 2025-01-24 09:56:44 -05:00
f4d1c9984b Enchantment documentation reformatted and in 2 places now 2025-01-24 09:56:44 -05:00
2ec456b9ef Merge pull request #536 from NQNStudios:recast-hint
Quality of life: Spellcasting

This makes changes to the spellcasting UI.

* M or P to recast will no longer default to Light or Minor Bless/Minor Heal. You need to cast something before recast becomes available. This fixes #535 and I think it's disorienting when I've just started the game and M casts Light in a town that's fully lit, so the change is generally good I'd say.
* I implemented a recasting hint in the text bar, which was one of the things I mentioned in my quality-of-life checklist https://github.com/NQNStudios/cboe/issues/16. It replaces the status icons in combat mode.
* Sometimes when my eyes glaze over, I think I'm casting the spell on the wrong side of the LED. I thought there was a bug when I cast Long Light instead of Dumbfound (even though I know the distance between the two is pretty large -- I wasn't paying much attention). I thought it would be nice to highlight the name of the selected spell. Light green seemed to make more sense than red for that, because the LED turns green. Then I made the caster/target selection texts also use light green instead of red, to match. Uncastable spells are grey.
2025-01-23 09:30:08 -05:00
c39172bd0f Merge pull request #543 from NQNStudios:editor-bounds
Scenedit Quality of life: be helpful when scrolling past boundaries

I've implemented 2 features here:
* When scrolling past the boundaries of the current outdoor section, you will get a yes/no prompt which can load the adjacent section for you at the corresponding center position.
* When scrolling past the boundaries (literal, not the changeable rectangle) of the current town, the editor will ask if you want to jump to the town's entrance in the outdoors. If there are more than one, you can choose.

I did this because I need to be able to find town entrances in the built-in scenarios so I can debug things.
2025-01-23 09:25:36 -05:00
54bab68497 Allow custom 'no items' response 2025-01-22 19:58:09 -05:00
9f2ffd1ce0 fix shop and talk clicks falling through. Fix #544 2025-01-22 19:58:09 -05:00
c27789eaa0 When shops are empty, don't go into shop mode. Fix #216 2025-01-22 19:58:09 -05:00
d8089fe013 silver 2025-01-22 11:01:22 -06:00
5dcdd18b3c Merge pull request #537 from NQNStudios:screen-shift-keys
This makes it so arrow keys/numpad can control screen shift when it's available.

When this preference is enabled, #482 will not be an issue (Fix #482). But the player will also miss out on cases where adjacent targeting would be a good thing. I haven't done anything smart to determine whether one mode or the other is better on a case-by-case basis.
2025-01-22 09:28:28 -05:00
6a34d05ce3 Remove warning for spells that use default 1-sq pattern.
This fixes #489.

I considered an alternate solution of adding a case for every 1-sq-target spell, but there are so many of them. Targeting 1 square is a sensible default, not something that should have to be specified, and this warning would only really be useful when adding new spells to avoid forgetting to specify their shape. I say we don't need it.
2025-01-22 09:26:58 -05:00
4fd6d39aa1 fix 'launch scenario' with new scenario/renamed file 2025-01-22 09:26:16 -05:00
f6be98acfb Fix win-scons CI (#531)
* scons follow reference to c++ compiler
* don't worry about testing C compiler
* on failure, compile test program
* fix windows DEBUG definition flag
* add source file to win-scons SConscript

This fixes #514
2025-01-22 09:14:24 -05:00
4c53acc686 move the asPeaceful() note to where it will help 2025-01-21 19:36:19 -06:00
1fb1aa2ce3 add back the extra colours 2025-01-21 19:33:49 -06:00
3de6870628 parseColor use - instead of _ 2025-01-21 19:15:38 -06:00
26ea7382a3 Resolve TODO comment 2025-01-21 19:01:06 -06:00
145824ea84 Handle exiting town with multiple entrances 2025-01-21 16:26:56 -06:00
ce7c5ed525 clarify cStringChoice cancel behavior 2025-01-21 16:26:28 -06:00
e303363900 prompt to go to town's entrance in the outdoors 2025-01-21 16:02:37 -06:00
6b575a0463 when hopping sections, make cen_x and cen_y match last pos 2025-01-21 15:43:13 -06:00
74dbc07e23 editing outdoor terrain: prompt to jump to next sections 2025-01-21 15:36:22 -06:00
7b92779e13 make switching outdoor sections DRY 2025-01-21 14:35:31 -06:00
611d00ff63 refactor town entrance search into cScenario function 2025-01-21 13:56:47 -06:00
b14a238ee3 Don't allow Major Blessing in town mode. Fix #541
It seemed reasonable that we actually would want to LET
the player cast this in town mode, but it seems like other
blessing spells (i.e. Haste) do not
2025-01-21 12:40:19 -06:00
e314030879 clarify asPeaceful() function for spells
I found it very confusing how many of the spells were
(WHEN_COMBAT).asPeaceful(). I thought those were bugs at first.
2025-01-21 12:37:34 -06:00
8703c772d4 fix bug which made several spell leds broken on page 1 2025-01-21 12:23:48 -06:00
92b798c48a simplify if-else with identical branches 2025-01-21 12:11:26 -06:00
98f8cf9abe Make Shift+directional keys do opposite 2025-01-20 15:12:24 -06:00
fc30ea4619 advance_time after space to end fancy target. Fix #539 2025-01-20 14:57:06 -06:00
7742373142 Try recast opposite spell type: Toggle the hint 2025-01-20 14:42:40 -06:00
cbb964a073 recast hint take the place of party status icons 2025-01-20 14:01:13 -06:00
e2104a4390 exclude split party members from target list 2025-01-20 13:45:01 -06:00
8e4cb8fc65 relative positioning for PC stat icons 2025-01-20 13:44:57 -06:00
0051274d26 make spell columns relative-position 2025-01-20 13:44:52 -06:00
4c383d116c re-arrange and align HP/SP 2025-01-20 13:44:47 -06:00
4260d41bf6 colorize hp and sp in casting menu 2025-01-20 13:44:42 -06:00
daecca4abe dialogxml parseColor use a map built from Colours constants
parseColor() was doing a big if-else with string comparisons,
and returning values that differed from our Colours constants.
Since I couldn't find an instance of the colour attribute in our
existing xml, it should be safe to do away with those conflicting
values and refactor parseColor() to match the constants
and use cleaner code.
2025-01-20 13:44:31 -06:00
f58d95496d fix unit test for last_cast change 2025-01-20 13:42:26 -06:00
c7ce84def2 More intuitive coloration in spell menu 2025-01-20 13:42:20 -06:00
0ef3ad81d9 Recast hint for spellcasters 2025-01-20 13:42:03 -06:00
c38c79b12b no default repeat spells & buf message when none stored
Fix #535
2025-01-20 13:41:49 -06:00
ead987fff7 default to legacy directional key behavior 2025-01-20 12:50:49 -06:00
2681a2801f reverse and reword leds 2025-01-20 12:49:45 -06:00
1c1d00f4af implement the preference with an LED group for clarity 2025-01-20 09:13:36 -06:00
37640bf349 fix compiler warnings 2025-01-20 09:41:29 -05:00
f545ce5333 slight simplification 2025-01-20 09:33:13 -05:00
3a5a02202b print remaining enemies when can't end combat 2025-01-20 09:29:21 -05:00
94b63dee49 when checking if outdoor enemies are alive, count types 2025-01-20 09:29:21 -05:00
17a4c25d3c Merge pull request #534 from NQNStudios:fix-479
Fixing text buffer texture/font corruption (#479)

* #479 demonstrates that the contents of the text buffer are NOT irrelevant for reproducing bugs. So I set up recording/replay for the burma shave easter egg. This also makes an easy way to mess with the buffer state when debugging (just mash &/\*/&/\*/&/\* n times)
* When a replay throws an error, it puts up a showError() dialog. If the next action is a control_click, the system will try to click that control on the error dialog--which is totally divergent from the replay's intended behavior. So we should just stop replaying when an error happens.
* If you have a long replay and want to run it very fast, but then slow down when you get to the sequence that reproduces your bug, now you can add a `<change_fps>` to your replay to achieve that.
* Fixes for the 2 legacy replay errors that I opened recently

Fix #479 
Fix #532 
Fix #533
2025-01-20 09:10:17 -05:00
dbe92c00b5 Implement a preference for this feature 2025-01-18 19:09:20 -06:00