xod-wow / LiteMount

World of Warcraft addon LiteMount
GNU General Public License v2.0
31 stars 10 forks source link

Retiring [dragonridable] and merging into LM.Environment:CanFly() #273

Closed LootFever closed 3 months ago

LootFever commented 3 months ago

While adjusting my Advanced Actionlist for Nokhud I encountered a problem with the execution and mount selection. The following is the relevant Debug Info and my Advanced Actionlist. I only tested one line at a time. If it succeeds the mount will be summoned, if it fails it falls back to a later rule wich is a ground mount. Results are below tthe Actionlist.

--- General ---

date: Mon Jul 29 23:07:44 2024
expansion: Dragonflight
build: 11.0.0 | 55824 | Jul 24 2024 | 110000 |  |  
version: 11.0.0-14
locale: enUS
current profile: Default

--- Location ---

map: The Nokhud Offensive (2093)
mapPath: The Nokhud Offensive (2093) -> Dragon Isles (1978) -> Azeroth (947) -> Cosmic (946)
instance: The Nokhud Offensive (2516)
zoneText: Ohn'ahran Plains
subZoneText: Maruukai
IsFlyableArea(): true
IsAdvancedFlyableArea(): true
# Nokhud Offensive
Mount [instance:2516,flyable] 395644
Mount [instance:2516,advflyable] 395644
Mount [instance:2516,dragonridable] 395644
Mount [instance:2516,flyable,advflyable] 395644
Mount [instance:2516,flyable,dragonridable] 395644
#

The expected result is the summon of a flying mount. Line 1: ground Line 2: flying Line 3: flying Line 4: ground Line 5: ground

As you can see only the lines with the [flyable]-check fail but the area returns IsFlyableArea(): true.

LootFever commented 3 months ago

Just saw your response to ticket #271. Gonna test the no flying area at the end of Nokhud and will report back the results. The test above was done at the start of the instance.

LootFever commented 3 months ago

Results from the end while boss was still alive:

--- General ---

date: Mon Jul 29 23:16:22 2024
expansion: Dragonflight
build: 11.0.0 | 55824 | Jul 24 2024 | 110000 |  |  
version: 11.0.0-14
locale: enUS
current profile: Default

--- Player ---

name: Calzra-Blackhand
class: EVOKER
level: 70
race: Dracthyr
faction: Horde
spec: 2 1468 0

--- Location ---

map: The Nokhud Offensive (2093)
mapPath: The Nokhud Offensive (2093) -> Dragon Isles (1978) -> Azeroth (947) -> Cosmic (946)
instance: The Nokhud Offensive (2516)
zoneText: Ohn'ahran Plains
subZoneText: Nokhudon Hold
IsFlyableArea(): false
IsAdvancedFlyableArea(): true

Since it is supposed to always summon a ground mount here due to IsFlyableArea(): false the results will show the mount type: Line 1: ground Line 2: flying Line 3: flying Line 4: ground Line 5: ground

LootFever commented 3 months ago

I've also gone ahead and checked areas when my flight style was steady flight.

Start:

--- Location ---

map: The Nokhud Offensive (2093)
mapPath: The Nokhud Offensive (2093) -> Dragon Isles (1978) -> Azeroth (947) -> Cosmic (946)
instance: The Nokhud Offensive (2516)
zoneText: Ohn'ahran Plains
subZoneText: Maruukai
IsFlyableArea(): true
IsAdvancedFlyableArea(): false

Line 1: flying Line 2: nothing Line 3: nothing Line 4: nothing Line 5: nothing

End:

--- Location ---

map: The Nokhud Offensive (2093)
mapPath: The Nokhud Offensive (2093) -> Dragon Isles (1978) -> Azeroth (947) -> Cosmic (946)
instance: The Nokhud Offensive (2516)
zoneText: Ohn'ahran Plains
subZoneText: Nokhudon Hold
IsFlyableArea(): false
IsAdvancedFlyableArea(): false

Line 1: ground Line 2: ground Line 3: ground Line 4: ground Line 5: ground

LootFever commented 3 months ago

I think with this we got proof that the [flyable] condition also checks if the flight style is steady. Just like you expected in the pull request.

mbattersby commented 3 months ago

Thanks for all the testing. I will probably leave this alone until after launch since the starting area of TWW has a non-flying debuff which I could only test as-is and the leveling beta has been down lately. Hopefully after that I can spend some time to simplify things.

mbattersby commented 3 months ago

I think it's looking pretty good to retire [dragonridable] completely, merge CanDragonride() and CanSteadyFly() back into CanFly() and have the SmartMount actions check [flyable,flightstyle:skriding] and [flyable:flightstyle:steady].

The pain point is going back and re-testing the overrides that I can, and then accepting that things might be broken in edge cases like never having unlocked various area flights, which I can't test on my account.

If I'm incredibly lucky Blizzard might have fixed it all up and it will simply work. I retain some optimism.

mbattersby commented 3 months ago

It is done, 11.0.0-16 has only [flyable] and [dragonridable] is gone forever.