Closed kennumen closed 11 years ago
Copied 'attack' handling into 'pull' placeholder. Takes care of Help, command processing.
Recommend a seperate 'mode' of sorts. (1) if anyone in group is in combat -> report failure (2) if no tank in group -> report failure (this does not allow for the eventuality that a player is the tank, but assuming the player being a tank knows how to pull (which is not our job anyway) there is little lost here) (3) if tank does not have the proper pulling method (shoot + gun/bow, spell, ...) -> report failure (4) else (4a) if tank, wait a second (if healer class with HoT is present), pull (based on class), deactivate any attack (such as 'shoot (bow/gun)' for warriors), wait until in melee range, attack (4b) if dps, wait (see (4+5) in first post) (4c) if healer, do a HoT on the tank if class has a HoT. else do healing checks (5) when target is in melee range of tank, wait 2 seconds (healers continue to do heal checks), then return to normal functioning
I'm thinking we use the toggle used for Dueling, adding some PvE_Pull option, switching back to PvE (or whatever it is now). Would be a good idea to extract out all PvE handling code and put into seperate DoNextCombatManeuver functions.
https://github.com/blueboy/portal/commit/deca834fadbd5e5b47e8429f59deea22cf796c6a
"pull test" and "pull ready" are ready for testing, see "help pull" for specifics. "pull" is not yet functional but should not break anything - if it does, report it because that bug would remain in the 'finished' pull code.
https://github.com/blueboy/portal/commit/69203f84a297d336b4e0c88feb61618f5da4524c
As stated, "pull" will initiate combat with everyone else on a 2second delay, making it mildly functional but certainly not working as intended. Actually, it's probably virtually identical to putting all non-tank bots on "combat delay 2" except with a manual command and automatic, seperate delay with extra requirements. I'm actually not sure how it reacts to 'combat delay' usage.
https://github.com/blueboy/portal/commit/ae7181a188682feb57da5afed908dc634f5b33e1 Certainly not perfect but more than enough to close this issue. Woot!
User uses command pull
A) target is not elite -> skip to step (3) B) Target is elite -> start at step (1)
(1) [optional, probably tweaked in later] some sort of readycheck (2) pre-combat stuff. I'm specifically thinking of cheap (mana-cost) HoT spells (renew, rejuvenation, probably not regrowth). Optionally a shield (if a priest is present) - somewhat expensive but 0 aggro if cast before entering combat. (3) tank does one hostile action, the longest range one he has. For a warrior this would be using a gun/bow, for a druid faerie fire. If nothing over 20 yards (or whatever, should be 30 except for paladins, really) is present, give a warning and do nothing. (4) everybody waits until the target is in melee range of the tank +2seconds or until tank no longer holds aggro. DO NOT DISABLE HEALING AT THIS POINT. Healing the tank is worth the risk of getting aggro. (5) Everyone attacks.
I recommend we also disable pull for anyone not marked 'tank', to start with.