Project 1999

Go Back   Project 1999 > Class Discussions > Casters

Reply
 
Thread Tools Display Modes
  #1  
Old 08-27-2024, 01:43 PM
Toxigen Toxigen is offline
Banned


Join Date: Jan 2021
Posts: 4,776
Default

if you aint quaddin you aint mage'in
Reply With Quote
  #2  
Old 08-27-2024, 01:53 PM
Ripqozko Ripqozko is online now
Planar Protector


Join Date: Jul 2018
Posts: 2,067
Default

Quote:
Originally Posted by Toxigen [You must be logged in to view images. Log in or Register.]
if you aint quaddin you aint mage'in
Yup this
Reply With Quote
  #3  
Old 08-27-2024, 02:36 PM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,641
Default

Quote:
Originally Posted by Toxigen [You must be logged in to view images. Log in or Register.]
if you aint quaddin you aint mage'in
Is that the contemporary term for Spergin DAs in raids? These days I only do level 1-10.
Reply With Quote
  #4  
Old 08-27-2024, 04:52 PM
Zuranthium Zuranthium is offline
Planar Protector

Zuranthium's Avatar

Join Date: May 2011
Location: Plane of Mischief
Posts: 1,904
Default

Quote:
Originally Posted by Toxigen [You must be logged in to view images. Log in or Register.]
if you aint quaddin you aint mage'in
A very dumb mechanic that makes no thematic sense for a Summoner class.

Trying to kite raid trash won't work when my patch gets implemented. They will have half a brain and start ignoring the kiter and attack the raid. A bunch of MOB's will also only spawn when the main raid target is attacked, and remain leashed to them; it will be impossible to clear everything before initiating a raid encounter. The rise of offtanks. Mages will be summoning a bunch of pets to push huge DPS. That is their role.
__________________
Reply With Quote
  #5  
Old 08-27-2024, 05:19 PM
Ripqozko Ripqozko is online now
Planar Protector


Join Date: Jul 2018
Posts: 2,067
Default

Quote:
Originally Posted by Zuranthium [You must be logged in to view images. Log in or Register.]
A very dumb mechanic that makes no thematic sense for a Summoner class.

Trying to kite raid trash won't work when my patch gets implemented. They will have half a brain and start ignoring the kiter and attack the raid. A bunch of MOB's will also only spawn when the main raid target is attacked, and remain leashed to them; it will be impossible to clear everything before initiating a raid encounter. The rise of offtanks. Mages will be summoning a bunch of pets to push huge DPS. That is their role.
You play on red, no one really to kite trash for. Hope that helps.
Reply With Quote
  #6  
Old 08-28-2024, 08:43 AM
Toxigen Toxigen is offline
Banned


Join Date: Jan 2021
Posts: 4,776
Default

Quote:
Originally Posted by Zuranthium [You must be logged in to view images. Log in or Register.]
A very dumb mechanic that makes no thematic sense for a Summoner class.

Trying to kite raid trash won't work when my patch gets implemented. They will have half a brain and start ignoring the kiter and attack the raid. A bunch of MOB's will also only spawn when the main raid target is attacked, and remain leashed to them; it will be impossible to clear everything before initiating a raid encounter. The rise of offtanks. Mages will be summoning a bunch of pets to push huge DPS. That is their role.
oh cool didn't realize you were on the dev team and have RogBog convinced this will be great for p99
Reply With Quote
  #7  
Old 08-27-2024, 02:54 PM
bcbrown bcbrown is online now
Fire Giant


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

So far, we have health and mana equations for the two phases; first you have enough health to canni-dance the manna robe every tick, then once you run out of surplus health you click every other tick as passive health regen builds up.
First phase:
h(t) = 2000 - 60t + 29t = 2000 - 31t
m(t) = 3500 - 50t + 20t = 3500 - 30t
Second phase:
h(t) = starting health + 29t - 30t = starting health - 1t ; we're just not going to worry about losing one health per tick
m(t) = mana when starting phase two - 50t + 10t = mana when starting phase two - 40t

In order to get the right starting mana value when starting phase two, we need to calculate when the first phase ends, which is when h(t) = 0:
h(t) = 0 = 2000 - 31t
t = 2000/31 = 64.5 ticks

After 64.5 ticks, mana will be:
m(t) = 3500 - 30 * 64.5 = 1565
Or using variables:
t = health_to_burn / 31
m(t) = 3500 - 30 * (health_to_burn / 31)

Where 30 is the modified mana burn rate (50 mana burned per tick, 20 mana regained from manna robe), and 31 is the modified health burn rate (60 mana burned per robe click, 29 mana regained through passive regen)

So we can rewrite the mana equation for the second phase to take into account how much mana you've spent at the end of phase one

m(t) = 3500 - 30 * (health_to_burn / 31) - (t - health_to_burn / 31) * 40

Now we can solve for the time when we hit oom:
0 = 3500 - 30 * (health_to_burn / 31) - (t - health_to_burn / 31) * 40
(t - health_to_burn / 31) * 40 = 3500 - 30 * (health_to_burn / 31)
40t - 40/31 * health_to_burn = 3500 - 30 * (health_to_burn / 31)
40t = 3500 - 30 * (health_to_burn / 31) + 40/31 * health_to_burn
40t = 3500 - 30/31 * health_to_burn + 40/31 * health_to_burn
40t = 3500 + 10/31 * health_to_burn
t = 3500/40 + 10/(31*40) * health_to_burn
t = 3500/40 + 10/(1240) * health_to_burn
t = 3500/40 + health_to_burn / 124

So under these assumptions, to add an additional tick before you run out of mana you can either add 40 mana or 124 health.

In the final section, I'll convert the raw numbers back into variables so it's easier to play around with the assumptions to see how it changes this conversion rate.
Reply With Quote
  #8  
Old 08-27-2024, 03:40 PM
bcbrown bcbrown is online now
Fire Giant


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

Although converting variables into numbers can make the calculations easier to follow, it will ultimately be more helpful to have a final equation where everything is a variable, so you can plug in different health regen rates, for example, to see how that will change the conclusions. Let's start with the first equation from the section above:
0 = 3500 - 30 * (health_to_burn / 31) - (t - health_to_burn / 31) * 40
30 is the mana burn rate in the first section: 50 - 20, or mana_burn - mana_regen
31 is the health burn rate: 60 - 29, or health_burn - health_regen
40 is the mana burn rate in the second section: 50 - 10, because we're only clicking the robe once every other tick, since each two ticks we will regain 58 health.

Putting these variables back in we get:
0 = starting_mana - (mana_burn - mana_regen_one) * health_to_burn / (health_burn - health_regen) - (t - health_to_burn / (health_burn - health_regen) * (mana_burn - mana_regen_two)

We can unify the mana regen rates by observing that the mana regen in phase two is equivalent to the mana gain from clicking the robe scaled by how many ticks it takes to regain the 60 health cost:
mana_regen_two = 20 * health_regen / 60 = robe_mana * health_regen / robe_health
mana_regen_one = robe_mana

this gives us:
0 = starting_mana - (mana_burn - robe_mana) * health_to_burn / (health_burn - health_regen) - (t - health_to_burn / (health_burn - health_regen) * (mana_burn - robe_mana * health_regen / robe_health))

I'm not going to try to simplify that, but I will plot the graph of mana over time with Python:
Code:
def mana(
    t,
    starting_mana=3500,
    mana_burn=50,
    robe_mana=20,
    health_to_burn=2000,
    health_burn=60,
    health_regen=29,
    robe_health=60
):
    if t < health_to_burn / (health_burn - health_regen):
        return starting_mana - (mana_burn - robe_mana) * t
    mana_spent_phase_one = (mana_burn - robe_mana) * health_to_burn / (health_burn - health_regen)
    mana_spent_phase_two = (t - health_to_burn / (health_burn - health_regen)) * (mana_burn - robe_mana * health_regen / robe_health)
    return starting_mana - mana_spent_phase_one - mana_spent_phase_two

import matplotlib.pyplot as plt
import numpy as np

# Generate x values (time)
t_values = np.linspace(0, 110, 100)  # Adjust range as needed

# Calculate corresponding mana values
mana_values = [mana(t) for t in t_values]

# Plot the graph
plt.plot(t_values, mana_values)
plt.xlabel('Time')
plt.ylabel('Mana')
plt.title('Mana Over Time')
plt.grid(True)
plt.show()
Adding more mana shifts the whole graph upwards, extending the time until mana=0. Adding more health lengthens the first part of the graph.

If you have a Google account you can play around with the assumptions here: https://colab.research.google.com/dr...Yw?usp=sharing

One final note: although I'm assuming canni-dancing the manna robe, I'm not taking into account of medding for mana regen. If you'd like to so do, you can just adjust the mana burn rate per tick to account for that.
Attached Images
File Type: jpg mana.jpg (20.3 KB, 3 views)
Reply With Quote
  #9  
Old 08-30-2024, 01:22 AM
Balimon Balimon is offline
Fire Giant

Balimon's Avatar

Join Date: Mar 2013
Posts: 797
Default

Quote:
Originally Posted by bcbrown [You must be logged in to view images. Log in or Register.]
Although converting variables into numbers can make the calculations easier to follow, it will ultimately be more helpful to have a final equation where everything is a variable, so you can plug in different health regen rates, for example, to see how that will change the conclusions. Let's start with the first equation from the section above:
0 = 3500 - 30 * (health_to_burn / 31) - (t - health_to_burn / 31) * 40
30 is the mana burn rate in the first section: 50 - 20, or mana_burn - mana_regen
31 is the health burn rate: 60 - 29, or health_burn - health_regen
40 is the mana burn rate in the second section: 50 - 10, because we're only clicking the robe once every other tick, since each two ticks we will regain 58 health.

Putting these variables back in we get:
0 = starting_mana - (mana_burn - mana_regen_one) * health_to_burn / (health_burn - health_regen) - (t - health_to_burn / (health_burn - health_regen) * (mana_burn - mana_regen_two)

We can unify the mana regen rates by observing that the mana regen in phase two is equivalent to the mana gain from clicking the robe scaled by how many ticks it takes to regain the 60 health cost:
mana_regen_two = 20 * health_regen / 60 = robe_mana * health_regen / robe_health
mana_regen_one = robe_mana

this gives us:
0 = starting_mana - (mana_burn - robe_mana) * health_to_burn / (health_burn - health_regen) - (t - health_to_burn / (health_burn - health_regen) * (mana_burn - robe_mana * health_regen / robe_health))

I'm not going to try to simplify that, but I will plot the graph of mana over time with Python:
Code:
def mana(
    t,
    starting_mana=3500,
    mana_burn=50,
    robe_mana=20,
    health_to_burn=2000,
    health_burn=60,
    health_regen=29,
    robe_health=60
):
    if t < health_to_burn / (health_burn - health_regen):
        return starting_mana - (mana_burn - robe_mana) * t
    mana_spent_phase_one = (mana_burn - robe_mana) * health_to_burn / (health_burn - health_regen)
    mana_spent_phase_two = (t - health_to_burn / (health_burn - health_regen)) * (mana_burn - robe_mana * health_regen / robe_health)
    return starting_mana - mana_spent_phase_one - mana_spent_phase_two

import matplotlib.pyplot as plt
import numpy as np

# Generate x values (time)
t_values = np.linspace(0, 110, 100)  # Adjust range as needed

# Calculate corresponding mana values
mana_values = [mana(t) for t in t_values]

# Plot the graph
plt.plot(t_values, mana_values)
plt.xlabel('Time')
plt.ylabel('Mana')
plt.title('Mana Over Time')
plt.grid(True)
plt.show()
Adding more mana shifts the whole graph upwards, extending the time until mana=0. Adding more health lengthens the first part of the graph.

If you have a Google account you can play around with the assumptions here: https://colab.research.google.com/dr...Yw?usp=sharing

One final note: although I'm assuming canni-dancing the manna robe, I'm not taking into account of medding for mana regen. If you'd like to so do, you can just adjust the mana burn rate per tick to account for that.
Thank you for all this! What an incredible amount of work you've done, so I finally had a chance to dig into your posts and play around with the graphs. It seems to me, after plugging in different numbers that 1 mana is at least twice as effective as hit points in delaying zero mana. Do you think that spam clicking the robe would change the results at all? Are those the results you're seeing as well?
__________________

[ Kurrat - Arch Mage ]
[ Kurrate - Crusader ]
<Legacy of Fire>


Reply With Quote
  #10  
Old 08-27-2024, 04:30 PM
Ripqozko Ripqozko is online now
Planar Protector


Join Date: Jul 2018
Posts: 2,067
Default

DSM has returned to the forums
Reply With Quote
Reply


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:36 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 - 2025, Jelsoft Enterprises Ltd.