View Single Post
Career Officer
Join Date: Jun 2012
Posts: 881
Disregarding modifiers and criticals, with breen 2 piece, full torpedo spec, 4 mk12 purple consoles

For just one torpedo:

Rapid = 4545.3 damage, 8.5s cooldown
Mk 12 Regular = 4669.5 damage, 10.5s cooldown

For three torpedoes (eg. full kinetic science ship)

With 0 projectile doffs, rapids do 20.24% more DPS:
Rapid transphasic DPS = 1604.22
Non-rapid DPS = 1334.14

With 1 doff rapids do 22.44% more DPS:
Rapid transphasic DPS = 2075.23
Non-rapid DPS = 1694.83


With 2 doffs rapid fire does 22.56% more DPS:
Rapid transphasic DPS = 2594.16
Non-rapid DPS = 2116.61

With 3 doffs rapids do 20.30% more DPS:
Rapid transphasic DPS = 3104.81
Non-rapid DPS = 2580.98

Either the rapids need to be toned down, or the regular transphasics need a buff... or some combination of the two. The ever so slightly higher burst damage of the regular transphasic is not worth the huge decrease in DPS.

If you want to verify my findings, here is the code I used to calculate my values, sorry in advance that the quote function killed the formatting a bit:

Quote:
#include <iostream>
using namespace std;

struct TorpedoType{
float Damage;
float Cooldown;
}Rapid, Regular;


double dps (float Damage, float Cooldown, int Doffs)
{
float TorpedoOneCd = 0; float TorpedoTwoCd = 0; float TorpedoThreeCd = 0;
float Gcd = 0;
double TotalDam = 0;
srand(1);
int Random = 0;
for (double n=0; n<13000000 // each n being half a second
{


if (TorpedoOneCd == 0 && Gcd == 0)
{
TotalDam += Damage;
TorpedoOneCd = Cooldown;
Gcd = 1;
for (int i=Doffs; i>0; i--)
{
Random = (int)(rand() % 100);
if (Random <= 19)
{
if (TorpedoOneCd > 5) TorpedoOneCd -= 5;
else TorpedoOneCd = 0;
if (TorpedoTwoCd > 5) TorpedoTwoCd -= 5;
else TorpedoTwoCd = 0;
if (TorpedoThreeCd > 5) TorpedoThreeCd -= 5;
else TorpedoThreeCd = 0;
}
}

}
if (TorpedoTwoCd == 0 && Gcd == 0)
{
TotalDam += Damage;
TorpedoTwoCd = Cooldown;
Gcd = 1;
for (int i=Doffs; i>0; i--)
{
Random = (int)(rand() % 100);
if (Random <= 19)
{
if (TorpedoOneCd > 5) TorpedoOneCd -= 5;
else TorpedoOneCd = 0;
if (TorpedoTwoCd > 5) TorpedoTwoCd -= 5;
else TorpedoTwoCd = 0;
if (TorpedoThreeCd > 5) TorpedoThreeCd -= 5;
else TorpedoThreeCd = 0;
}
}
}
if (TorpedoThreeCd == 0 && Gcd == 0)
{
TotalDam += Damage;
TorpedoThreeCd = Cooldown;
Gcd = 1;
for (int i=Doffs; i>0; i--)
{
Random = (int)(rand() % 100);
if (Random <= 19)
{
if (TorpedoOneCd > 5) TorpedoOneCd -= 5;
else TorpedoOneCd = 0;
if (TorpedoTwoCd > 5) TorpedoTwoCd -= 5;
else TorpedoTwoCd = 0;
if (TorpedoThreeCd > 5) TorpedoThreeCd -= 5;
else TorpedoThreeCd = 0;
}
}
}
if (TorpedoOneCd > 0) TorpedoOneCd -=0.5;
if (TorpedoTwoCd > 0) TorpedoTwoCd -=0.5;
if (TorpedoThreeCd > 0) TorpedoThreeCd -= 0.5;
if (Gcd > 0) Gcd -=0.5;
n += 0.5;
}
return TotalDam / 13000000;
}

main(int)
{
Rapid.Damage = 4545.3;
Rapid.Cooldown = 8.5;
Regular.Damage = 4669.5;
Regular.Cooldown = 10.5;

cout << "With 0 doffs, Rapid Torpedo DPS is: "
<< dps(Rapid.Damage, Rapid.Cooldown, 0) << endl;
cout << "With 0 doffs, Regular Torpedo DPS is: "
<< dps(Regular.Damage, Regular.Cooldown, 0) << endl; endl;


cout << "With 1 doff, Rapid Torpedo DPS is: "
<< dps(Rapid.Damage, Rapid.Cooldown, 1) << endl;
cout << "With 1 doff, Regular Torpedo DPS is: "
<< dps(Regular.Damage, Regular.Cooldown, 1) << endl; endl;


cout << "With 2 doffs, Rapid Torpedo DPS is: "
<< dps(Rapid.Damage, Rapid.Cooldown, 2) << endl;
cout << "With 2 doffs, Regular Torpedo DPS is: "
<< dps(Regular.Damage, Regular.Cooldown, 2) << endl; endl;


cout << "With 3 doffs, Rapid Torpedo DPS is: "
<< dps(Rapid.Damage, Rapid.Cooldown, 3) << endl;
cout << "With 3 doffs, Regular Torpedo DPS is: "
<< dps(Regular.Damage, Regular.Cooldown, 3) << endl; endl;


system("pause");
return 0;
}

Last edited by hurleybird; 08-28-2012 at 09:02 PM.