Project 1999

Go Back   Project 1999 > Class Discussions > Melee

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #5  
Old Yesterday, 10:53 PM
bcbrown bcbrown is offline
Fire Giant


Join Date: Jul 2022
Location: Kedge Keep
Posts: 846
Default

I fucked up some of the arithmetic in my first post. I'm still not 100% sure it's correct but the python code in the spoiler tags should tell you at what mob remaining health you should swap out of your proc weapons to your dps weapons. I'll do a little more testing, probably tomorrow.

 

Code:
def remaining_health(low_dps=33, 
                    high_dps=47, 
                    mob_dps=11, 
                    proc_delay_seconds = 4.1/1.34, 
                    procs_per_minute = 1, 
                    slow_reduction = .5
                    ):
    damage_spent = proc_delay_seconds * (high_dps - low_dps)
    print("By swinging the proc weapon once you lowered damage dealt by " + str(damage_spent))
    time_extended = damage_spent / high_dps
    print("By swinging the proc weapon once you extended the fight length by " + str(time_extended))
    extra_damage_taken = time_extended * mob_dps
    print("By swinging the proc weapon once you took extra damage of " + str(extra_damage_taken))
    swings_per_minute = 60 / proc_delay_seconds
    procs_per_swing = procs_per_minute / swings_per_minute
    slow_expected_reduction_percent = slow_reduction * procs_per_swing
    damage_needed = extra_damage_taken / slow_expected_reduction_percent
    print("Damage needed to take to outweight extra damage taken: " + str(damage_needed))
    damage_to_do = high_dps * damage_needed / low_dps
    print("Mob health remaining before die/flee when you should swap out of proc weapon: " + str(damage_to_do))
    print("at that remaining health, possible outcomes:")
    print("using dps weapons")
    length = damage_to_do/high_dps
    damage = mob_dps * length
    print("length of fight: {}, damage taken: {}".format(length, damage))
    length = proc_delay_seconds + (damage_to_do - low_dps * proc_delay_seconds)/high_dps
    damage_no_proc = mob_dps * length
    print("swing slow weapon and then switch to dps weapons, no proc")
    print("length of fight: {}, damage taken: {}".format(length, damage_no_proc))
    print("swing slow weapon and then switch to dps weapons, proc")
    length = proc_delay_seconds + (damage_to_do - low_dps * proc_delay_seconds)/high_dps
    damage_proc = slow_reduction * mob_dps * length
    print("length of fight: {}, damage taken: {}".format(length, damage_proc))


Anyway, the way I've been treating it on my ranger is that if the mob is easy (Grobb Bashers, hill giants) I skip the swarmcaller. If the mob is challenging (geos), if I've been using the swarmcaller with no proc and I'm at ~30-40% I probably won't be able to win a fight toe-to-toe even if I get a proc, so I'll swap to sboz/swiftwind and when I hit ~20% I'll root the mob, back up and switch to archery until the root wears off. By that point I've probably regenned enough health that my dps weapons will be able to finish the fight.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 08:12 PM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.