blueboy / portal

This portal repo is for development purposes only
http://github.com/blueboy/portal
GNU General Public License v2.0
27 stars 24 forks source link

pull functionality required for instances #39

Closed kennumen closed 11 years ago

kennumen commented 11 years ago

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.

kennumen commented 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.

kennumen commented 11 years ago

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.

kennumen commented 11 years ago

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.

kennumen commented 11 years ago

https://github.com/blueboy/portal/commit/ae7181a188682feb57da5afed908dc634f5b33e1 Certainly not perfect but more than enough to close this issue. Woot!