Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[IWDEE] "7eyes.2da" vs. SPL/ITM files #23

Merged
merged 17 commits into from Jun 27, 2022
Merged

[IWDEE] "7eyes.2da" vs. SPL/ITM files #23

merged 17 commits into from Jun 27, 2022

Conversation

4Luke4
Copy link
Contributor

@4Luke4 4Luke4 commented Jun 20, 2022

So, this is a nasty one. 7eyes.2da works in the following way:

  • In case of SPL files, when a row triggers to block an effect, it will also block all effects of that resource that follow after it, but not any effects that precede it.
    • For this particular reason, all SPL files such as WARRIOR_WAR_CRY (spcl908.spl) should be recoded to have op24 listed as the first effect in the stack, otherwise EYEMIND will block op24 but not the preceding op142 effect displaying the Panic icon (and that would be incorrect)
  • In case of ITM files, when a row triggers to block an effect, it will block just the specified effect of that resource! Those that follow after it, along with those that precede it will not be absorbed.
    • For this particular reason, all ITM files such as dart03.itm (Dart of Stunning) should apply their effects via a subspell.
      • And of course the subspell should have op45 listed as the first effect in the stack (as per the aforementioned reason).

Based on vanilla 7eyes.2da, I checked all SPL/ITM files that apply op45, 210, 12, 134, 25, 109, 3, 76, 128, 175, 24, 38, 74, 80 and made sure their effects are properly ordered. I also added auxiliary subspells where needed.

Moreover:

  • EYEMAGE should not absorb MAGIC damage, as per spell description
  • Attack (used by Slime Zombie)
    • Make sure it uses op318 to grant protection from itself (instead of messy op101 + op267 + op173 effects)
  • Sunray
    • It now properly distinguishes GENERAL=UNDEAD || RACE=MYCONID from !(GENERAL=UNDEAD || RACE=MYCONID)
  • Updated version of my previous REMOVE_REDUNDANT_PORTRAIT_ICONS function. This version:
    • takes care of a couple of more redundant effects
      • op39 can naturally provide the Sleep/Hopelessness/Nauseated/Unconscious portrait icons
      • op213 can naturally provide the Maze portrait icon
      • op74 automatically imposes a -4 penalty to THAC0, there's no need for a separate op54 effect
      • op25 automatically provides a feedback string (as per efftext.2da), there's no need for a separate op139 effect
      • op5 automatically provides a portrait icon, there's no need for a separate op142 effect
    • tries to be a bit more selective (and careful) when patching

@4Luke4 4Luke4 changed the title Remove redundant effects [IWDEE] "7eyes.2da" vs. SPL/ITM files Jun 21, 2022
@CamDawg CamDawg merged commit 7326cf1 into Gibberlings3:master Jun 27, 2022
@4Luke4 4Luke4 mentioned this pull request Feb 15, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants