Skip to content

Conversation

@Alphiez
Copy link
Contributor

@Alphiez Alphiez commented Dec 21, 2025

I affirm:

  • I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • I have read and understood the Contributing Guide and the Code of Conduct.
  • I have tested my code and the things my code has changed since the last commit in the PR and will test after any later commits.

Full AI Disclosure

  • AI was used to help format my PR description, such as, create the tables and correct clarity. Then edited after reviewed
  • AI was used to help understand how to properly use flags and debug the code.
  • AI was used to help understand what the code was doing and how it was behaving so I could implement the proper guards where needed.
  • AI was used to make sure what I was implementing made sense and if I could do anything better (e.g guard checks, reset flags if needed)

Any code change, decisions were implemented by my understanding with AI help then reviewed and tested by me before committing.

What does this pull request do?

Fixes Dawn (CoP 8-4) targeting behavior involving Promathia AoE abilities and self-centered ally-only effects. While investigating Promathia’s AoE behavior, an ordering issue in AoE target validation was identified that could cause incorrect target inclusion. This update corrects that behavior and ensures ally-only self-centered abilities behave consistently in the Dawn battlefield.

However, I'd like someone to take a look and test this battle as well.

Technical notes / rationale

1) Promathia AoE target selection

  • Issue:
    The “first target always allowed” check could run before allegiance checks, which allowed some AoE abilities to include invalid targets.
  • Fix:
    Reordered target validation so allegiance and self-centered rules are applied first.
  • Result:
    Promathia’s AoEs now only hit valid targets as expected in Dawn.

2) Self-centered ally-only AoEs (Benediction)

  • Issue:
    Ally-only self-centered AoEs relied on implicit behavior and could include enemies depending on evaluation order.
  • Fix:
    Added an explicit ally-only guard for self-centered, non-offensive AoEs.
  • Result:
    Benediction-class abilities never affect enemies.

3) Cleanup / safety

  • Reset self-centered AoE state per action and always capture targetFlags on entry.
  • Prevents stale state and makes targeting consistent across actions.

Steps to test these changes

  1. Grant the Dawn mission:

    • !addmission 6 840
  2. Zone into Empyreal Paradox:

    • !zone 36
  3. Walk forward and enter the Dawn battlefield.

  4. Verify Benediction does not heal Promathia:

    • Engage Promathia - Allow Prishe time to engage as well
    • Use !hp 500 on Prishe to force Benediction, or
    • Wait for Benediction to trigger naturally.
  5. Verify Promathia’s abilities still function as expected in both phases.


Phase 1: Promathia

Ability Name Command Expected Behavior (Side Effects Not fully tested e.g Dispel)
Chains of Apathy !mobskill 1491 AoE debuff; affects valid targets only
Chains of Arrogance !mobskill 1492 AoE debuff; affects valid targets only
Chains of Cowardice !mobskill 1493 AoE debuff; affects valid targets only
Chains of Rage !mobskill 1494 AoE debuff; affects valid targets only
Chains of Envy !mobskill 1495 AoE debuff; affects valid targets only
Malevolent Blessing !mobskill 1496 Cone AoE damage; respects allegiance and cone bounds
Pestilent Penance !mobskill 1497 Cone AoE damage + Plague
Empty Salvation !mobskill 1498 AoE damage + Dispel
Infernal Deliverance !mobskill 1499 AoE damage + Stun; ignores Utsusemi

Notes (Phase 1):

  • All AoE and cone attacks should only hit valid hostile targets. (PCs, Ally-NPCs, etc)
  • No ability should affect Prishe or allies unless explicitly intended.
  • Target selection should be consistent regardless of cast order.

Phase 2: Promathia

Ability Name Command Expected Behavior (Side Effects Not fully tested e.g Dispel)
Malevolent Blessing !mobskill 1500 Cone AoE damage
Pestilent Penance !mobskill 1501 Cone AoE damage + Plague
Empty Salvation !mobskill 1502 AoE damage + Dispel
Infernal Deliverance !mobskill 1503 AoE damage + Stun; ignores Utsusemi
Wheel of Impregnability !mobskill 1504 Self-buff only; no external targets
Bastion of Twilight !mobskill 1505 Self-buff only; no external targets
Winds of Oblivion !mobskill 1506 AoE damage + debuff; hostile targets only
Seal of Quiescence !mobskill 1507 AoE silence; hostile targets only

Notes (Phase 2):

  • Same as above.

My Validation Checks

  • Benediction does not heal Promathia
  • Promathia AoEs consistently apply to valid hostile targets

Phase 1 – Ability Validation
Benediction
Empty Salvation
Pestilent Penance / Comet
Malevolent Blessing
Chains of Cowardice
Infernal Deliverance
Chains of Apathy
Chains of Arrogance
Chains of Rage
Chains of Envy

Phase 2 – Ability Validation
Malevolent Blessing
Pestilent Penance
Empty Salvation
Infernal Deliverance / Wheel of Impregnability
Bastion of Twilight
Winds of Oblivion
Seal of Quiescence

Concerns

  • Prishe seems to do Hundred Fists / Benediction (1x) in both phases, unsure if thats wanted behavior. Have to check Captures
  • Phase 1 Comet on Prishe seems really weak.. < 110dmg
  • Dawn Battlefield might need a little more testing to see what other bugs. (Besides Text Issues)

@Alphiez Alphiez force-pushed the fix/dawn-benediction-promathia-aoe branch from d96986d to 4af6ccc Compare December 21, 2025 08:22
@Xaver-DaRed
Copy link
Contributor

I will use this time to remind that if AI was used for anything in a PR, (incuding, but not limited to a PR description) it must be stated.

@Alphiez
Copy link
Contributor Author

Alphiez commented Dec 21, 2025

My apologies.

Full AI Disclosure

  • AI was used to help format my PR description, such as, create the tables and correct clarity. Then edited after reviewed
  • AI was used to help understand how to properly use flags and debug the code.
  • AI was used to help understand what the code was doing and how it was behaving so I could implement the proper guards where needed.
  • AI was used to make sure what I was implementing made sense and if I could do anything better (e.g guard checks, reset flags if needed)

Any code change, decisions were implemented by my understanding with AI help then reviewed and tested by me before committing.

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.

2 participants