Bestride / BeStride

A WoW mount manager based off Yay! Mounts
GNU General Public License v3.0
6 stars 17 forks source link

WotLK: Does not use druid flight or aquatic form #174

Closed waymanglover closed 1 year ago

waymanglover commented 2 years ago

Environment

Steps to reproduce

I took a look through the code, and it looks like it expects for druid flight / aquatic / travel form to all be the same spell like retail. In Wrath they're 3 separate spells, with the form number / stance number for Flight Form changing if Moonkin form is talented.

Expected Behaviour

Actual Behaviour

Debug Output

No error logged to BugSack.

Bestride Variables

Version = 2.0.0 maps = { 1 = { mapType = 4, mapID = 125, name = Dalaran, parentMapID = 113, }, 2 = { mapType = 2, mapID = 113, name = Northrend, parentMapID = 947, }, 3 = { mapType = 1, mapID = 947, name = Azeroth, parentMapID = 946, }, 4 = { mapType = 0, mapID = 946, name = Cosmic, parentMapID = 0, }, } mountTable = { repair = { }, master = { 189739 = { type = flying, name = Kalu'ak Whalebone Glider, mountID = 189739, icon = 4501546, isActive = false, spellID = 372677, }, 176708 = { type = ground, name = Reawakened Phase-Hunter, mountID = 176708, icon = 3940790, isActive = false, spellID = 348459, }, 27707 = { type = ground, name = Great Brewfest Kodo, mountID = 27707, icon = 132246, isActive = false, spellID = 49379, }, }, zone = { }, passenger = { }, flying = { 1 = 189739, }, ground = { 1 = 189739, 2 = 176708, 3 = 27707, }, swimming = { }, } BeStride.db.profile = { settings = { classes = { deathknight = { wraithwalk = true, }, demonhunter = { felrush = true, glide = true, }, shaman = { ghostwolf = true, }, monk = { roll = true, zenflight = true, }, rogue = { sprint = true, }, mage = { blink = true, slowfall = true, blinkpriority = true, }, druid = { flightform = true, traveltotravel = false, mountedtoflightform = false, flightformpriority = true, }, priest = { levitate = true, }, hunter = { aspectofthecheetah = false, }, paladin = { steed = true, }, }, mount = { repair = { durability = 20, globaldurability = 20, force = false, inventorydurability = 5, use = false, }, nodismountwhileflying = false, emptyrandom = true, hasmount = false, prioritizepassenger = true, enablenew = true, flyingbroom = false, noswimming = false, forceflyingmount = false, useflyingmount = false, remount = false, telaari = true, forcerobot = false, }, ymBindingsMigrated = true, bindingsMigrated = true, migrated = true, }, mounts = { repair = { }, flying = { 189739 = true, }, zone = { aq = { }, }, passenger = { }, ground = { 189739 = false, 176708 = false, 27707 = true, }, swimming = { }, }, } BeStride_Variables = { Settings = { Mount = { 1 = { label = Automatically enable new mounts upon learning them, name = mount.enablenew, element = CheckBox, }, 2 = { label = Remount Immediately After Dismounting, name = mount.remount, element = CheckBox, }, 3 = { label = Choose random usable mount if no usable mounts selected, name = mount.emptyrandom, element = CheckBox, }, 4 = { label = Don't dismount while flying. You'll have to land or (if enabled in Blizzard options) cast a spell, name = mount.nodismountwhileflying, element = CheckBox, }, 5 = { label = Use Flying type mounts even in areas where you cannot fly, dependants = { 1 = mount.forceflyingmount, }, name = mount.useflyingmount, element = CheckBox, }, 6 = { depends = { 1 = mount.useflyingmount, }, label = Force Flying type mounts even in areas where you cannot fly, name = mount.forceflyingmount, element = CheckBox, }, 7 = { label = Prioritize Passenger Mounts when in group, name = mount.prioritizepassenger, element = CheckBox, }, 8 = { label = Never use underwater mounts even when swimming, name = mount.noswimming, element = CheckBox, }, 9 = { label = Always use Flying Broom instead of a normal mount, name = mount.flyingbroom, element = CheckBox, }, 10 = { label = Always use the Telaari Talbuk or Frostwolf War Wolf while in Nagrand, name = mount.telaari, element = CheckBox, }, 11 = { label = Always use Sky Golem or Mechanized Lumber Extractor when you have learned Herbalism, name = mount.forcerobot, element = CheckBox, }, 12 = { children = { 1 = { label = Use a Repair mount if player owns one and if meets durability threshold, dependants = { 1 = mount.repair.force, 2 = mount.repair.durability, 3 = mount.repair.globaldurability, 4 = mount.repair.inventorydurability, }, name = mount.repair.use, element = CheckBox, }, 2 = { depends = { 1 = mount.repair.use, }, label = Force a Repair mount if player owns one, name = mount.repair.force, element = CheckBox, }, 3 = { minDurability = 0, name = mount.repair.durability, label = Item Low Durability %, increment = 5, maxDurability = 100, depends = { 1 = mount.repair.use, }, element = Slider, }, 4 = { minDurability = 0, name = mount.repair.globaldurability, label = Global Low Durability %, increment = 5, maxDurability = 100, depends = { 1 = mount.repair.use, }, element = Slider, }, 5 = { minDurability = 0, name = mount.repair.inventorydurability, label = Inventory Item Low Durability %, increment = 5, maxDurability = 100, depends = { 1 = mount.repair.use, }, element = Slider, }, }, element = Group, }, }, Classes = { 1 = { 1 = { label = Death Knight: Wraith Walk, class = deathknight, name = classes.deathknight.wraithwalk, element = CheckBox, }, }, 2 = { 1 = { label = Demon Hunter: Use Fel Rush, class = demonhunter, name = classes.demonhunter.felrush, element = CheckBox, }, 2 = { label = Demon Hunter: Use Gliding, class = demonhunter, name = classes.demonhunter.glide, element = CheckBox, }, }, 3 = { 1 = { name = classes.druid.flightform, label = Druid: Use Flight Form, class = druid, dependants = { 1 = classes.druid.traveltotravel, 2 = classes.druid.flightformpriority, 3 = classes.druid.mountedtoflightform, }, element = CheckBox, }, 2 = { name = classes.druid.traveltotravel, label = Druid: When in combat, shift from Travel or Aquatic form directly back to that form, class = druid, depends = { 1 = classes.druid.flightform, }, element = CheckBox, }, 3 = { name = classes.druid.flightformpriority, label = Druid: Prioritize using Flight Form over a regular mount even when not moving, class = druid, depends = { 1 = classes.druid.flightform, }, element = CheckBox, }, 4 = { name = classes.druid.mountedtoflightform, label = Druid: When on a flying mount and flying + moving, shift into Flight Form, class = druid, depends = { 1 = classes.druid.flightform, }, element = CheckBox, }, }, 4 = { 1 = { label = Hunter: Aspect of the Cheetah, class = hunter, name = classes.hunter.aspectofthecheetah, element = CheckBox, }, }, 5 = { 1 = { label = Mage: Slowfall, class = mage, name = classes.mage.slowfall, element = CheckBox, }, 2 = { label = Mage: Blink, class = mage, name = classes.mage.blink, element = CheckBox, }, 3 = { label = Mage: Prioritize Blink before Slowfall (even when falling), class = mage, name = classes.mage.blinkpriority, element = CheckBox, }, }, 6 = { 1 = { label = Monk: Roll, class = monk, name = classes.monk.roll, element = CheckBox, }, 2 = { label = Monk: Use Zen Flight while moving or falling, class = monk, name = classes.monk.zenflight, element = CheckBox, }, }, 7 = { 1 = { label = Paladin: Divine Steed, class = paladin, name = classes.paladin.steed, element = CheckBox, }, }, 8 = { 1 = { label = Priest: Levitate, class = priest, name = classes.priest.levitate, element = CheckBox, }, }, 9 = { 1 = { label = Rogue: Sprint, class = rogue, name = classes.rogue.sprint, element = CheckBox, }, }, 10 = { 1 = { label = Shaman: Ghost Wolf, class = shaman, name = classes.shaman.ghostwolf, element = CheckBox, }, }, }, }, } BeStride_Constants = { map = { dungeon = 4, orphan = 6, zone = 3, continent = 2, cosmic = 0, micro = 5, world = 1, }, Zone = { Vashjir = { id = 203, KelptharForest = { id = 201, }, AbyssalDepths = { id = 204, }, ShimmeringExpanse = { id = 205, }, }, }, Mount = { Mounts = { 75207 = { zone = Vash'jir, type = zone, subtype = swimming, mountID = 373, }, 61465 = { repair = false, type = passenger, name = Grand Black War Mammoth, subtype = ground, }, 61467 = { repair = false, type = passenger, name = Grand Black War Mammoth, subtype = ground, }, 26054 = { type = zone, name = Red Qiraji Battle Tank, zone = taq, }, 61470 = { repair = false, type = passenger, name = Grand Ice Mammoth, subtype = ground, }, 26055 = { type = zone, name = Yellow Qiraji Battle Tank, zone = taq, }, 245725 = { repair = false, type = passenger, name = Orgrimmar Interceptor, subtype = flying, }, 26056 = { type = zone, name = Green Qiraji Battle Tank, zone = taq, }, 264058 = { repair = true, type = passenger, name = Mighty Caravan Brutosaur, subtype = ground, }, 60424 = { repair = false, type = passenger, name = Mekgineer's Chopper, subtype = ground, }, 122708 = { repair = true, type = passenger, name = Grand Expedition Yak, subtype = ground, }, 373 = { zones = { 1 = 203, }, zone = 203, }, 93326 = { repair = false, type = passenger, name = Sandstone Drake, subtype = flying, }, 55531 = { repair = false, type = passenger, name = Mechano-Hog, subtype = ground, }, 25953 = { type = zone, name = Blue Qiraji Battle Tank, zone = taq, }, 245723 = { repair = false, type = passenger, name = Stormwind Skychaser, subtype = flying, }, 121820 = { repair = false, type = passenger, name = Obsidian Nightwing, subtype = flying, }, 61425 = { repair = true, type = passenger, name = Traveler's Tundra Mammoth, subtype = ground, }, 75973 = { repair = false, type = passenger, name = X-53 Touring Rocket, subtype = flying, }, 61469 = { repair = false, type = passenger, name = Grand Ice Mammoth, subtype = ground, }, 61447 = { repair = true, type = passenger, name = Traveler's Tundra Mammoth, subtype = ground, }, }, Types = { 230 = ground, 231 = swimming, 254 = swimming, 232 = zone, 269 = ground, 248 = flying, 241 = zone, 284 = chauffeured, 242 = dead, 270 = flying, 247 = flying, }, }, spells = { hunter = { aspectofthecheetah = 186257, }, druid = { flightform = 783, aquaticform = 783, catform = 783, travelform = 783, }, }, Riding = { Skill = { 90267 = { unlocks = flying, name = Flight Master's License, active = true, }, 233368 = { zones = { 1 = , }, unlocks = flying, name = Broken Isles Pathfinder, }, 33391 = { depends = 33388, level = 150, name = Journeyman Riding, active = true, }, 54197 = { zones = { 1 = , }, unlocks = flying, name = Cold Weather Flying, active = false, }, 34090 = { unlocks = flying, name = Expert Riding, active = true, level = 225, depends = 33391, }, 226342 = { name = Broken Isles Pathfinder, }, 34091 = { depends = 34090, level = 300, name = Artisan Riding, active = true, }, 281576 = { level = 825, name = Battle for Azeroth Pathfinder, depends = 34090, }, 115913 = { zones = { 1 = , }, unlocks = flying, name = Wisdom of the Four Winds, active = false, }, 278833 = { zones = { 1 = , }, unlocks = flying, name = Battle for Azeroth Pathfinder, }, 33388 = { level = 75, unlocks = ground, name = Apprentice Riding, active = true, }, 191645 = { zones = { 1 = , }, unlocks = flying, name = Draenor Pathfinder, }, 90265 = { depends = 34091, level = 375, name = Master Riding, active = true, }, }, Flight = { Restricted = { Worlds = { }, Continents = { 905 = { blocked = true, }, 113 = { requires = 54197, }, 876 = { requires = 278833, }, 875 = { requires = 278833, }, }, Zones = { 106 = { blocked = true, }, 94 = { blocked = true, }, 103 = { blocked = true, }, 125 = { except = Krasus' Landing, blocked = true, }, 1355 = { requires = 278833, }, 95 = { blocked = true, }, 97 = { blocked = true, }, 122 = { blocked = true, }, }, }, }, }, }

Screenshots

DanSheps commented 2 years ago

Thanks for reporting this. This was working on my druid for flight, however I don't have swift

MattZeeX commented 2 years ago

I still have this issue on my druid. I was in Shattrath and with the "enable flight form" option ticked under class options, it kept putting me in "cheetah" travel form. I don't have swift flight form.

DanSheps commented 2 years ago

Weird, okay, I will look into it

yannlugrin commented 2 years ago

I have a working branch to handle better druid forms, but I need to rework it as it's a bit messy. I hope to create a PR today or at least tommorow.