Add Module for Normal Everkeep#722
Open
gadeleon wants to merge 41 commits into
Open
Conversation
added 30 commits
April 17, 2026 12:27
Each 42AA Fang does 10 sprint segments (5 inward, 5 outward). The rect AOE follows the fang's sprint path: from its current position to the sprint endpoint (carried in the cast's TargetPos/LocXZ). - Initial sprint (38183, instant): halfwidth 4 + back extension 3 so the four outer-perimeter rects tile the diamond flush at the corners. - Subsequent sprints (37711, 0.7s): halfwidth 2.5 + front 1.5 + back 2 so the four arms form a pinwheel without overlapping at corners. Rects are tracked per fang InstanceID; a new cast replaces the previous rect, and entries auto-expire shortly after each sprint would complete.
Dawn of an Age's raidwide collapses the platform to a 20x20 center square for the Chasm of Vollok + Forged Track sequence; Actualize restores the full 40x40 diamond when that sequence ends. Both casts fire twice per fight, so the arena cycles small - normal - small - normal. Mirrors the NormalBounds / SmallBounds pattern from Ex2ZoraalJa.
The P2 boss actor is destroyed and re-spawned (same OID, new InstanceID) during the big arena transition. The old phase-2 end condition treated a missing BossP2 as 'defeated' via ?? true on the null-conditional IsDead check, which unloaded the module during the ~0.4s swap gap. - BossP2() now queries dynamically for any non-destroyed actor with OID.BossP2, so the new instance is picked up automatically. - Phase 2 only ends when a BossP2 is actually dead (HP = 0). A missing BossP2 keeps the phase running via ?? false.
After the Gateway/BladeWarp setup, Fangs at the outer intercardinal platforms cast ForgedTrackPreview (37729, 11.6s, 0-hit telegraph). Actual damage comes from separate instant-cast Fangs at inner positions (37730), along lanes parallel to — but offset from — the preview lanes. The perpendicular offset follows a rotation/Gateway-sign rule: - NE-SW diagonal previews (rot -45° or +135°, dir.X * dir.Z < 0): damage lane offset by sign(Gateway) * 5 perpendicular-left. - NW-SE diagonal previews (rot +45° or -135°): no offset, damage lane matches preview lane. Origin is shifted 30 forward from the preview caster so the rect sits inside the shrunken arena where the damage actually lands. Rect is 1-cell wide (halfwidth 2.5) by 4-cells long (20 forward) per the mech's 4-lane cross-arena layout.
Icon 376 appears on all 8 party members simultaneously as a ~5s warning, then 8 helpers instant-cast Fire III (37752) one per target. Standard SpreadFromIcon with 5-unit radius matches the per-player spread circle.
Duty's Edge fires 4 line-stack AOEs (37750) ~2.1s apart after the target icon (35567) picks a player. My old code set GenericWildCharge's Source on the target cast but never cleared it, so the rect rendering persisted long after the mechanic resolved. Track hit count per instance: increment on each AOE event, clear Source once NumCasts >= 4 so the component stops rendering. Reset NumCasts on each new target icon so the second Duty's Edge instance fires its own 4-count cleanly.
…na edge Cast target positions sit at the back corner of each 5x5 grid cell, so a centered 5x5 rect covered only half the expected cell. Changed shape from AOEShapeRect(2.5, 2.5, 2.5) (centered) to AOEShapeRect(5, 2.5) (5 forward + 0 back) — same size, but origin at the rect's back edge. The SE-most rect now extends its outer corner to the arena's S diamond tip.
… 0.7s damage cast
…ection, not Gateway rotation
…lose AI safe-gap illusion
added 11 commits
April 25, 2026 14:50
…s outer-ring preview
…ast suppression, center attractor, widened forbidden halfwidth
Collaborator
|
Will try to get this merged after I update the plugin for 7.5, which is blocked on a staging release of Dalamud. Thanks for the PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
(This is my first attempt at a module and should definitely be squashed if pulled.)
Adds support for Normal Everkeep for Duty Support.
Tested as:
Zero hits on all runs.
Open to feedback to make this better!