add radiant blood quest and bella recovery
All checks were successful
/ test (push) Successful in 21s

This commit is contained in:
Erik 2026-03-13 19:44:02 +01:00
parent 5d7470ee6c
commit 75b468465c
19 changed files with 2076 additions and 69 deletions

View file

@ -502,16 +502,37 @@ STATE: {service_bella_mp_secondary} ~~ {
SetState {service_bella_start}
IF: ExitPortal
DO: DoAll
DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
Chat {/vt opt set enablecombat true}
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 60
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_kill_bella} ~~ {
STATE: {service_bella_secondary_recovery} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: Chat {/vt opt set enablenav false}
IF: Expr {getvar[bellaMpSecondaryAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: SecsInStateGE 20
DO: DoAll
DoExpr {setvar[bellaMpSecondaryAttempts,getvar[bellaMpSecondaryAttempts]+1]}
Chat {/vt opt set enablenav true}
Chat {/vt nav load nav_portal_recall}
IF: All
SecsInStateGE 30
NavEmpty
Expr {getplayerlandblock[]==5636096}
DO: DoAll
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 120
DO: SetState {service_bella_backoff}
~~ }
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {service_bella_secondary_recovery}
IF: All
Expr {getplayerlandblock[]!=5636096}
SecsInStateGE 30

View file

@ -0,0 +1,6 @@
~~ Record a route from your start location to Ayesha of the Radiant Blood in Zaikhal.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -0,0 +1,7 @@
~~ Record a route from Ayesha/Zaikhal to the Corrupted Catacombs drop/start area.
~~ If tied near Empyrean Foundry, feel free to use the shorter route.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -0,0 +1,8 @@
~~ Record the route from the key area (or catacombs re-entry) to the locked door.
~~ Walkthrough hint: from the pillars room go west into the sclavus section,
~~ then right at the next intersection and down, past the surface portal area to the door.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -0,0 +1,8 @@
~~ Record the route from the catacombs start to the Slimy Key.
~~ Walkthrough hint: straight, right, left, keep right hand rule, ramp down to pillars,
~~ go left/south, more ramps down, then right at next intersection to the key.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -0,0 +1,7 @@
~~ Record the route from the shard area back to Ayesha of the Radiant Blood.
~~ This can include recalling/re-entering if that is how you prefer to run the quest.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -0,0 +1,6 @@
~~ Record the route from the locked door to the Corrupted Mana Shard pedestal.
NAV: nav0 once ~~ {
~~ Replace placeholder points with a recorded route.
pnt 0.0 0.0 0.0
~~ }

View file

@ -567,16 +567,37 @@ STATE: {service_bella_mp_secondary} ~~ {
SetState {service_bella_start}
IF: ExitPortal
DO: DoAll
DoExpr {setvar[bellaMpSecondaryAttempts, 0]}
Chat {/vt opt set enablecombat true}
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 60
DO: SetState {service_bella_start}
~~ }
STATE: {service_bella_kill_bella} ~~ {
STATE: {service_bella_secondary_recovery} ~~ {
IF: Death
DO: SetState {death}
IF: Always
DO: Chat {/vt opt set enablenav false}
IF: Expr {getvar[bellaMpSecondaryAttempts]>=3}
DO: SetState {service_bella_backoff}
IF: SecsInStateGE 20
DO: DoAll
DoExpr {setvar[bellaMpSecondaryAttempts,getvar[bellaMpSecondaryAttempts]+1]}
Chat {/vt opt set enablenav true}
Chat {/vt nav load nav_portal_recall}
IF: All
SecsInStateGE 30
NavEmpty
Expr {getplayerlandblock[]==5636096}
DO: DoAll
Chat {/vt nav load to_bella}
SetState {service_bella_kill_bella}
IF: SecsInStateGE 120
DO: SetState {service_bella_backoff}
~~ }
STATE: {service_bella_kill_bella} ~~ {
IF: Death
DO: SetState {service_bella_secondary_recovery}
IF: All
Expr {getplayerlandblock[]!=5636096}
SecsInStateGE 30

View file

@ -0,0 +1,216 @@
~~ Radiant Blood initiation quest
~~ Fill the quest-specific nav routes in the matching nav_*.af files.
~~ Expected nav binaries after build:
~~ - nav_radiantblood_ayesha
~~ - nav_radiantblood_catacombs
~~ - nav_radiantblood_key
~~ - nav_radiantblood_door
~~ - nav_radiantblood_shard
~~ - nav_radiantblood_return
STATE: {Default} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Corrupted Mana Shard}
DO: SetState {TurnInShard}
IF: ItemCountGE 1 {Slimy Key}
DO: SetState {GoDoor}
IF: Always
DO: DoAll
Chat {/ub opt set VTank.PatchExpressionEngine true}
SetState {GoAyesha}
~~ }
STATE: {GoAyesha} ~~ {
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
Chat {/ub use Ayesha of the Radiant Blood}
SetState {WaitAyesha}
IF: Always
DO: DoAll
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_ayesha}
SetWatchdog 10 300 {Stuck}
~~ }
STATE: {WaitAyesha} ~~ {
IF: Death
DO: SetState {Death}
IF: SecsInStateGE 8
DO: SetState {GoCatacombs}
~~ }
STATE: {GoCatacombs} ~~ {
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
SetState {FindKey}
IF: Always
DO: DoAll
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_catacombs}
SetWatchdog 10 900 {Stuck}
~~ }
STATE: {FindKey} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Slimy Key}
DO: SetState {GoDoor}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
Chat {/ub usep Slimy Key}
SetState {WaitKeyPickup}
IF: Always
DO: DoAll
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {true}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_key}
SetWatchdog 10 900 {Stuck}
~~ }
STATE: {WaitKeyPickup} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Slimy Key}
DO: SetState {GoDoor}
IF: SecsInStateGE 10
DO: SetState {FindKey}
~~ }
STATE: {GoDoor} ~~ {
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
Chat {/ub usep Slimy Key on Door}
SetState {WaitDoor}
IF: Always
DO: DoAll
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_door}
SetWatchdog 10 900 {Stuck}
~~ }
STATE: {WaitDoor} ~~ {
IF: Death
DO: SetState {Death}
IF: ChatMatch {unlocked}
DO: SetState {GetShard}
IF: SecsInStateGE 8
DO: DoAll
Chat {/ub usep Slimy Key on Door}
SetState {WaitDoor}
~~ }
STATE: {GetShard} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Corrupted Mana Shard}
DO: SetState {TurnInShard}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
Chat {/ub usep Corrupted Mana Shard}
SetState {WaitShard}
IF: Always
DO: DoAll
SetOpt {enablecombat} {true}
SetOpt {enablelooting} {true}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_shard}
SetWatchdog 10 900 {Stuck}
~~ }
STATE: {WaitShard} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountGE 1 {Corrupted Mana Shard}
DO: SetState {TurnInShard}
IF: SecsInStateGE 10
DO: SetState {GetShard}
~~ }
STATE: {TurnInShard} ~~ {
IF: Death
DO: SetState {Death}
IF: All
NavEmpty
SecsInStateGE 2
DO: DoAll
ClearWatchdog
Chat {/ub givep Corrupted Mana Shard to Ayesha of the Radiant Blood}
Chat {/ub prepclick yes 3}
SetState {WaitTurnIn}
IF: Always
DO: DoAll
SetOpt {enablecombat} {false}
SetOpt {enablelooting} {false}
SetOpt {enablebuffing} {true}
SetOpt {enablenav} {true}
Chat {/vt nav load nav_radiantblood_return}
SetWatchdog 10 1200 {Stuck}
~~ }
STATE: {WaitTurnIn} ~~ {
IF: Death
DO: SetState {Death}
IF: ItemCountLE 0 {Corrupted Mana Shard}
DO: SetState {Done}
IF: ChatMatch {Radiant Blood}
DO: SetState {Done}
IF: SecsInStateGE 15
DO: SetState {TurnInShard}
~~ }
STATE: {Done} ~~ {
IF: Always
DO: DoAll
DoExpr {echo[`Radiant Blood initiation complete.`,1]}
Chat {/a [radiantblood] quest complete}
~~ }
STATE: {Stuck} ~~ {
IF: Death
DO: SetState {Death}
IF: Always
DO: DoAll
ClearWatchdog
Chat {/ub face}
DoExpr {echo[`Radiant Blood meta stuck, restarting.`,1]}
SetState {Default}
~~ }
STATE: {Death} ~~ {
IF: ExitPortal
DO: SetState {Default}
~~ }