server icon indicating copy to clipboard operation
server copied to clipboard

[Lua] Move Aweuvhi logic to family mixin, add animation/aggressive relation

Open CatsEyeXI opened this issue 1 year ago • 7 comments

I affirm:

  • [x] I understand that if I do not agree to the following points by completing the checkboxes my PR will be ignored.
  • [x] I understand I should leave resolving conversations to the LandSandBoat team so that reviewers won't miss what was said.
  • [x] I have read and understood the Contributing Guide and the Code of Conduct.
  • [x] 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.

What does this pull request do?

Aweuvhi's do not currently change their form while roaming like retail does. Additionally, we have no existing logic to support these mobs' aggressive states based on their current animationSub. They should be aggressive while open, and non-aggressive while closed.

I've moved the logic from the mob script into a family mixin and added some new logic for ROAM_TICK to randomly alternate between available forms and set aggressive state based on the animationSub chosen.

I've also added an additional zone check to ensure that the Aweuvhis only become aggressive in The Garden of Ruhmet.

Steps to test these changes

AlTaieu: !gotoid 16912811 Follow it around and see it will change forms every periodically, but never aggro you.

Ruhmet: !gotoid 16920628 with !togglegm on Take GM status off, and if flower is open, it will aggro, otherwise, it will not.

CatsEyeXI avatar Feb 21 '24 03:02 CatsEyeXI

According to https://github.com/LandSandBoat/server/issues/4796, euvhi aren't supposed to change forms while not engaged, and form change is based off of damage taken to open, and time to close. I don't know what it's supposed to be, but it's worth bringing up the existing issue about this mob type.

Also, while it's been an incredibly long time since I've been on retail, but I swore that the Palace ones were always closed while idle, and the Garden ones were always open while idle.

almuth150 avatar Feb 21 '24 06:02 almuth150

According to #4796, euvhi aren't supposed to change forms while not engaged, and form change is based off of damage taken to open, and time to close. I don't know what it's supposed to be, but it's worth bringing up the existing issue about this mob type.

Also, while it's been an incredibly long time since I've been on retail, but I swore that the Palace ones were always closed while idle, and the Garden ones were always open while idle.

thanks for raising this, i went to retail to verify and it seems everything that was said is true. i'm going to let this marinate for now.

CatsEyeXI avatar Feb 21 '24 15:02 CatsEyeXI

I'm unsure which ones switch while roaming and which don't, its def not universal behavior even in same zone (eschan ones I've had to wait for them to change to sneak by before)

TeoTwawki avatar Feb 21 '24 15:02 TeoTwawki

I actually just did a bunch of research on retail and did a PR already for my server on this, but the basics are:

  • Specific Euvhis (by mob id, so it is not random) spawn and roam in either bud or bloom form.
    • Some Euvhis in both the Garden and the Palace start in bud. Some in both the Garden and the Palace start in bloom.
  • Available mob skills change depending on form (three unique to each form, one shared).
  • Regardless of whether which form they start/roam in, their in-combat behavior is basically identical.
    • While a mob is in bloom form, it will never transition to bud form based on time. It will always transition if it takes >=10% of its max HP in a single hit (can be regular attack, spell, WS, anything).
    • While a mob is in bud form, it will transition to bloom form after some combat time between 60 - 90 seconds. I'm not entirely sure if this is random or if it varies by zone. It will never transition because of damage.
  • Mobs will return to their spawn form when they return to roaming and (iirc) reach full HP.

DiscipleOfEris avatar Feb 23 '24 00:02 DiscipleOfEris

I actually just did a bunch of research on retail and did a PR already for my server on this, but the basics are:

  • Specific Euvhis (by mob id, so it is not random) spawn and roam in either bud or bloom form.

    • Some Euvhis in both the Garden and the Palace start in bud. Some in both the Garden and the Palace start in bloom.
  • Available mob skills change depending on form (three unique to each form, one shared).

  • Regardless of whether which form they start/roam in, their in-combat behavior is basically identical.

    • While a mob is in bloom form, it will never transition to bud form based on time. It will always transition if it takes >=10% of its max HP in a single hit (can be regular attack, spell, WS, anything).
    • While a mob is in bud form, it will transition to bloom form after some combat time between 60 - 90 seconds. I'm not entirely sure if this is random or if it varies by zone. It will never transition because of damage.
  • Mobs will return to their spawn form when they return to roaming and (iirc) reach full HP.

excellent. if need be we can use 2 names (append an identifier) in the db to avoid having to maintain a list of which mob ids are which kind if they ever exist in same zone, but sounds like to cop zones at least they -never- swap while roaming except to return to their stock state? So we can just start them in the right state in the db (theres a subanim field in pools I think) then keep track of it after spawn through out changes to return to it.

TeoTwawki avatar Feb 23 '24 01:02 TeoTwawki

I actually just did a bunch of research on retail and did a PR already for my server on this, but the basics are:

* Specific Euvhis (by mob id, so it is _not_ random) spawn and roam in either bud or bloom form.
  
  * Some Euvhis in both the Garden and the Palace start in bud. Some in both the Garden and the Palace start in bloom.

* Available mob skills change depending on form (three unique to each form, one shared).

* Regardless of whether which form they start/roam in, their in-combat behavior is basically identical.
  
  * While a mob is in bloom form, it will _never_ transition to bud form based on time. It will _always_ transition if it takes >=10% of its max HP in a single hit (can be regular attack, spell, WS, anything).
  * While a mob is in bud form, it will transition to bloom form after some combat time between 60 - 90 seconds. I'm not _entirely_ sure if this is random or if it varies by zone. It will _never_ transition because of damage.

* Mobs will return to their spawn form when they return to roaming and (iirc) reach full HP.

if you want to contribute what you have, im happy to either close this, or feel free to pitch me your changes on discord and i'll do my best to implement them here

CatsEyeXI avatar Feb 23 '24 19:02 CatsEyeXI

excellent. if need be we can use 2 names (append an identifier) in the db to avoid having to maintain a list of which mob ids are which kind if they ever exist in same zone, but sounds like to cop zones at least they -never- swap while roaming except to return to their stock state? So we can just start them in the right state in the db (theres a subanim field in pools I think) then keep track of it after spawn through out changes to return to it.

I went and retested just now 'cause I couldn't remember, but the euvhi returns to its spawn state the very first time it paths while roaming, regardless of its HP or current bud timer. And yes, the same zone (both Grand Palace and the Garden) can have both default-bloomed and default-bud euvhis. In some cases sitting literally right next to eachother.

if you want to contribute what you have, im happy to either close this, or feel free to pitch me your changes on discord and i'll do my best to implement them here

Sure I'll DM you.

One thing I forgot to mention was that the very first hit against a default-bloomed Euvhi will never cause the euvhi to go into bud form, regardless of how much damage it does.

DiscipleOfEris avatar Feb 24 '24 04:02 DiscipleOfEris