 |
07/29/08, 1:43 AM
|
#571
|
|
Bald Bull
|
Am I missing something, or does it seem odd to anyone else that they would add a glyph to extend rip's duration by 3 seconds when the damage ticks every 2?
edit: this is the rest of whats listed on mmo-champion (that's applicable to ferals), I still don't know what to think of it considering the oddities I've mentioned, again probably worth taking with a big grain of salt until things are further hashed out--
Glyph of Moonfire (Class: Druid) - Empowers a Lesser Glyph to reduce the rage cost of your Demoralizing Roar by 20. (There's another glyph with the same name which actually affects moonfire so the name is probably an error, and the new rank of demo roar is still only 10 rage so who knows what's actually going on here...)
Glyph of the White Bear - Changes the appearance of your bear and dire bear forms to that of a polar bear.
Glyph of Frenzied Regeneration - While Frenzied Regeration is active, healing effects on you are 20% more powerful.
Glyph of Growl - Increases the chance for your Growl ability to work successfully by 8%.
Glyph of Mangle - Increases the duration of Mangle by 6 sec.
Glyph of Swipe - Your Swipe ability now hits 1 additional target.
Glyph of Shred - Increases the damage dealt by Shred to stunned and incapacitated targets by 20%.
Glyph of Rip - Increases the duration of your Rip ability by 3 sec.
Glyph of Rake - Your Rake ability prevents targets from fleeing.
this is also listed as a change in the new build:
"Challenging Roar now has a 3 minute cooldown, reduced from 10 minutes."
Last edited by wuffles : 07/29/08 at 2:02 AM.
|
|
|
|
|
07/29/08, 1:46 AM
|
#572
|
|
Piston Honda
Blood Elf Death Knight
Ravenholdt
|
Originally Posted by wuffles
Am I missing something, or does it seem odd to anyone else that they would add a glyph to extend rip's duration by 3 seconds when the damage ticks every 2?
|
Some people have already reported changes in tick mechanisms, like energy and rage ticking "continuously," so energy ticking at many times per second.
If that's true it might have implications for dots as well.
|
|
|
|
|
07/29/08, 2:13 AM
|
#573
|
|
Piston Honda
Night Elf Druid
Proudmoore
|
Originally Posted by Septus
Some people have already reported changes in tick mechanisms, like energy and rage ticking "continuously," so energy ticking at many times per second.
|
Something like this: TICK TOCK on Vimeo
I'll check on the dots ticking tonight.
|
|
|
|
|
07/29/08, 2:26 AM
|
#574
|
|
Don Flamenco
Retired
Tauren Druid
No WoW Account
|
Yeh, I saw the Glyphs, and many of them seem to be very interesting for PvE tanking.
# Glyph of Frenzied Regeneration - While Frenzied Regeration is active, healing effects on you are 20% more powerful.
Pretty much makes Frenzied Regen a fairly effective "oh shit" button. I like it, and it would be cool if it affected its own healing as well.
# Glyph of Growl - Increases the chance for your Growl ability to work successfully by 8%.
Obviously, would be incredible for Kalecgos type fights.
# Glyph of Mangle - Increases the duration of Mangle by 6 sec.
Would have a somewhat radical effect on Cat DPS cycles, and I suspect will help in maintaining a SR/Rip cycle without having to Mangle more than once.
# Glyph of Swipe - Your Swipe ability now hits 1 additional target.
Quite the boon for AoE tanking.
# Glyph of Shred - Increases the damage dealt by Shred to stunned and incapacitated targets by 20%.
# Glyph of Rake - Your Rake ability prevents targets from fleeing.
These would be the PvP ones. I wonder how easy it will be to swap Inscriptions around, because it's hard to settle on just 2 good "major" ones for PvE tanking >.<
|
|
|
|
|
07/29/08, 2:43 AM
|
#575
|
|
Von Kaiser
Night Elf Hunter
Barthilas
|
Originally Posted by seminarca
# Glyph of Shred - Increases the damage dealt by Shred to stunned and incapacitated targets by 20%.
# Glyph of Rake - Your Rake ability prevents targets from fleeing.
These would be the PvP ones. I wonder how easy it will be to swap Inscriptions around, because it's hard to settle on just 2 good "major" ones for PvE tanking >.<
|
I read the Rake one as applying a CoR-style debuff where mobs who normally flee would no longer do so. I agree that it would be a lot more interesting if it is a snare of some sort.
|
|
|
|
|
07/29/08, 3:58 AM
|
#576
|
|
King Hippo
Tauren Druid
Twisting Nether (EU)
|
Originally Posted by Snarley
Depending on the amount of DK's we see in raids, they get benefits to their damage according to how many disease's are on a target. So depending on that bonus it may be good for the synergy of your raid to have at least 1 feral with the talent.
Ultimately I think it will depend heavily on your raid makeup as well as your choice of raiding 10 or 25 mans respectively. 25 mans *maybe* you would have 2 ferals, 10 mans you will most definitely only have 1.
Min/Maxing aside, once you get some respectable gear, your spec becomes less important as encounters get trivialized
|
In simple terms, I would be tempted to spec IW regardless. When tanking you're using Mangle (and on bosses Maul also) on every cooldown anyway thus you're putting up the debuff "free of charge" where the equivalents will be costing the Warrior/Pali in mana/rage/threat/dps.
|
|
|
|
|
07/29/08, 4:33 AM
|
#577
|
|
Don Flamenco
Night Elf Druid
Runetotem (EU)
|
Here as promised the code for the program I've made to theorycraft cat dps.
EDIT: Corrected some error into the program and made it more realistic with a 0.01 second time tick
Changes from the initial program:
- Glyph added
- Changed the energy regeneration according to the beta (now is continuous).
- Introduced a time step of 0.01 seconds to take better into account haste and the new energy regeneration (1 energy every 0.1 secods).
EDIT: Tiger fury / King of the Jungle and Ferocious Bite damage was not computed correctly in the previous release, I've posted the new code here. With the right KoJ the dps increase. Also with the right FB, 2SR/4RIP is still the best cycle
On a side note The change in energy regeneration alone give us 350+ dps increase!
Here some stats:
DPS: 3454.26,
White: 998.131, Yellow: 2456.13,
Bleed debuff uptime: 54.8259%, Mangle debuff uptime: 76.7682%,
Powershifts each 5.52283 seconds (average)
To do:
-compute the mana expense for powershifting
-try intelligent wait time inside the cycle.
THE CODE (C++):

#include <iostream>
using namespace std;
/*Set RNG (0,1)*/
double randnum(){
double r;
r=((double)(rand()%10000))/10000;
return r;}
/*Create a class for special attacks, Yes I know, It's only to give variables cool names :P*/
class attack{
public:
int energy; //energy use of ability
double adamage; //attack power scaling component of damage
double acritdamage; //attack power scaling component of damage (critical damage)
double bdamage; //fixed component of damage
double bcritdamage; //fixed component of damage (critical damage)
double hit; //hit chance of the ability
double crit; //crit chance of the ability
};
/*main*/
int main (int argc, char * const argv[]) {
/*RNG seed*/
srand((unsigned)time(0));
/*Standard Value*/
double base_paw=54.5; /*Base Paw Damage*/
/*Haste*/
int haste=0; //Round the value. Value in 1/100 of seconds.
//Set cp for ability-cycle
int sr_t=4; //Savage Roar combo points, set to 10 if you don't use it
int rip_t=4; //Rip combo points
int fb_t=10; //Ferocious Bite combo points
int rk=0; //set to 1 if you use rake.
double dmg=0; //damage
double wdamage=0; //white damage
double ydamage=0; //yellow damage
double damage2=0;
double wdamage2=0;
double ydamage2=0;
/*Talents*/
double ferocity_t = 5; //ferocity 0-5
int s_att_t = 2; //shreding attack 0-2
double precision_t = 2; //precision 0-2
double fury_t = 2; //fury 0-2
double pistinct_t = 5; //predatory istinct 0-5
int impmangle_t= 3; //improved mangle 0-3
double ret_t = 5; // Rend & Tear 0-5
double nss_t = 2; // Natural ShapeShifter
double warrior = 0; /*If there is a warrior with trauma and trauma stack with mangle debuff*/
int wf_haste=16; //+16% haste by windfury
int wf=1; // set to 1 if there is windfury, set to 0 otherwise.
int speed=100-haste-wf*wf_haste; //autoattack speed
/*compute talent modifier to ability*/
double ferocity_m = 0.03*ferocity_t;
int s_att_m=9*s_att_t;
double precision_m1=5*precision_t;
double precision_m2=0.4*precision_t;
double fury_m = 0.1*fury_t;
double pistinct_m=0.02*pistinct_t;
int impmangle_m=2*impmangle_t;
double ret_m1 = 0.02*ret_t;
double ret_m2 = 0.1*ret_t;
double nss_m = 0.02*nss_t;
//Glyphs
int mangle_glyph=6; //increase duration of mangle debuff by 6 seconds.
int rip_glyph=3; //Increse duration of rip by 3 seconds, additional damage not yet implemented.
int m_g=0; //set to 1 if you have the mangle glyph, 0 otherwise.
int rip_g=0; //set to 1 if you have rip glyph, 0 otherwise.
/*Base Stats*/
int apbase=10000; /*Attack Power*/
int mana=10000; /*Mana*/
double crit=0.30; /*Critical hit chance without Master Shapeshifter*/
double hit=0.09; /*Hit percent*/
double expertise=0+precision_m1; /*Expertise value*/
double weapon=base_paw; /*Weapon*/
double red=0.3; /*Boss damage reduction based on boss armor (30% is about the usual numbers after 5 sunder and Fairie Fire)*/
/*Initial values and timers*/
int sim_time=60000; //each step is 0.01 seconds.
int bdebuff_up=0; //bleed debuff uptime
int mdebuff_up=0; //mangle debuff uptime
int pw=0; //numbers of powershifts
double ap = apbase; //attack power value
int timer2=0;
int timer=0; //time
int en=99; //initial energy
int cp=0; //combo points
double mdebuff=0; //mangle debuff switch
int mdebuff_timer=0; //mangle debuff timer
int mdebuff_cd=12+mangle_glyph*m_g; //mangle debuff initial timer value
double att; //dumb variable with the attack roll value
double damage; //total damage
double bdebuff=0; //bleed debuff switch
int bdebuff_timer=0; //bleed debuff timer
int rip_timer=0; //rip timer
int ooc_cd=10; // Omen of clarity hiden cooldown
int ooc_timer=0; //Omen of clarity timer
double ooc_rate=0.06; // Omen of clarity proc chanche (6%)
int ooc_proc=2; // omen of clarity switch (1 = proccing)
int koj_timer=0; // tiger fury timer
int koj_cd=30; // tiger fury cooldown
int koj_step=6; // tiger fury timer
double koj_damage=131.0; //tiger fury added damage
double koj=0; // tiger fury switch
int sr=0; // savage roar switch
int sr_timer=0; // savage roar timer
int gcd=0; //Global cooldown
/*Base Combat Table*/
double miss=0.09; /*Base miss chance vs lvl 83 mobs*/
double dodge=0.065; /*Base dodge chance of a lvl 83 mobs*/
double glance=0.25; /*Glancing Blow Chance, afflicts only white attacks*/
/*Modified combat table white damage*/
miss-=hit;
dodge-=expertise*0.0025;
glance=glance;
double wcrit=crit;
double wmiss=miss+dodge+glance;
double wnhit=1-crit-wmiss;
/*Modified combat table yellow damage, 2 roll system pre-calculated to avoid using 2 RNG*/
double ymiss=miss+dodge;
double dumb_yhit=1-ymiss;
double ycrit=crit*dumb_yhit;
double yhit=dumb_yhit-ycrit;
/*Ability damage*/
attack paw, mangle, shred, rake, rip, fb;
/*paw*/
paw.energy=0;
paw.adamage=(1-red)*(ap/14)*1.1;
paw.bdamage=(1-red)*(weapon)*1.1;
paw.acritdamage=paw.adamage*2*(1+pistinct_m);
paw.bcritdamage=paw.bdamage*2*(1+pistinct_m);
paw.hit=wnhit-nss_m;
paw.crit=wcrit+nss_m;
//mangle
mangle.energy=40-impmangle_m;
mangle.adamage=(1-red)*((ap/14)*1.6+507.2)*(1+fury_m)*1.1;
mangle.acritdamage=mangle.adamage*2*(1+pistinct_m);
mangle.bdamage=(1-red)*((weapon)*1.6+507.2)*(1+fury_m)*1.1;
mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m);
mangle.crit=(wcrit+nss_m)*dumb_yhit;
mangle.hit=dumb_yhit-mangle.crit;
//shred
shred.energy=60-s_att_m;
shred.adamage=(1-red)*((ap/14)*2.25+742.5)*1.1;//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
shred.acritdamage=shred.adamage*2*(1+pistinct_m);
shred.bdamage=(1-red)*((weapon)*2.25+742.5)*1.1;//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
shred.bcritdamage=shred.bdamage*2*(1+pistinct_m);
shred.crit=(wcrit+nss_m)*dumb_yhit;
shred.hit=dumb_yhit-shred.crit;
//rake
rake.energy=35;
rake.adamage=((ap*0.01))*(1+fury_m)*1.1+(ap*0.06)*(1+fury_m)*1.1;//*(1+(mdebuff+warrior)*0.3);
rake.acritdamage=(2*(1+pistinct_m)*((ap*0.01))*(1+fury_m)*1.1+(ap*0.06)*(1+fury_m)*1.1);//*(1+(mdebuff+warrior)*0.3);
rake.bdamage=(190)*(1+fury_m)*1.1+(397)*(1+fury_m)*1.1;//*(1+(mdebuff+warrior)*0.3);
rake.bcritdamage=(2*(1+pistinct_m)*(190)*(1+fury_m)*1.1+(397)*(1+fury_m)*1.1);//*(1+(mdebuff+warrior)*0.3);
rake.crit=(wcrit+nss_m)*dumb_yhit;
rake.hit=dumb_yhit-rake.crit;
//RIP
rip.energy=30;
rip.adamage=((ap)*0.01*cp)*6*1.1;//*(1+(mdebuff+warrior)*0.3);
rip.acritdamage=rip.adamage;
rip.bdamage=(39+99*cp)*6*1.1;//*(1+(mdebuff+warrior)*0.3);
rip.bcritdamage=rip.bdamage;
rip.crit=0;
rip.hit=dumb_yhit;
//fb
fb.energy=35;
fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*1.1*(1+ferocity_m);
fb.acritdamage=fb.adamage*2*(1+pistinct_m);
fb.bdamage=(1-red)*(120+290*cp+(9.4)*(en-fb.energy))*1.1*(1+ferocity_m);
fb.bcritdamage=fb.bdamage*2*(1+pistinct_m);
fb.crit=(wcrit+nss_m)*dumb_yhit+ret_m2;
fb.hit=dumb_yhit-fb.crit;
for(timer2=0; timer2<100;timer2++){
dmg=0; //damage
wdamage=0; //white damage
ydamage=0; //yellow damage
en=99; //initial energy
cp=0; //combo points
mdebuff=0; //mangle debuff switch
mdebuff_timer=0; //mangle debuff timer
mdebuff_cd=12+mangle_glyph*m_g; //mangle debuff initial timer value
att=0; //dumb variable with the attack roll value
damage=0; //total damage
bdebuff=0; //bleed debuff switch
bdebuff_timer=0; //bleed debuff timer
rip_timer=0; //rip timer
ooc_cd=10; // Omen of clarity hiden cooldown
ooc_timer=0; //Omen of clarity timer
ooc_rate=0.06; // Omen of clarity proc chanche (6%)
ooc_proc=2; // omen of clarity switch (1 = proccing)
koj_timer=0; // tiger fury timer
koj_cd=30; // tiger fury cooldown
koj_step=6; // tiger fury timer
koj_damage=131.0; //tiger fury added damage
koj=0; // tiger fury switch
sr=0; // savage roar switch
sr_timer=0; // savage roar timer
gcd=0; //Global cooldown
for(timer=0;timer<sim_time;timer++){
//ability counter time
mdebuff_timer--;
bdebuff_timer--;
ooc_timer--;
koj_step--;
koj_timer--;
sr_timer--;
rip_timer--;
gcd--;
if(timer%10==0){
en+=1; //energy regeneration
if(en>100){
en=100;
}
}
//debuff update
if(mdebuff_timer<0){
mdebuff=0;
}
if(bdebuff_timer<0){
bdebuff=0;
}
if((koj_step<0)&&(koj_step>-3)){
koj=0;
weapon=base_paw;
/*paw*/
paw.acritdamage=paw.adamage*2*(1+pistinct_m);
paw.bcritdamage=paw.bdamage*2*(1+pistinct_m);
//mangle
mangle.bdamage=(1-red)*((weapon)*1.6+507.2)*(1+fury_m)*1.1;
mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m);
//shred
shred.bdamage=(1-red)*((weapon)*2.25+742.5)*1.1;//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
shred.bcritdamage=shred.bdamage*2*(1+pistinct_m);
}
if(sr_timer<0){
sr=0;
}
if(ooc_timer<0){
ooc_cd=0;
}
bdebuff_up+=bdebuff;
mdebuff_up+=mdebuff;
//combo points
if(cp>5){
cp=5;
}
/*cout << "\n" << "Time: " << timer/100.0 << ", Energy: " << en << ", Combo Points: " << cp << ",GCD: " << gcd/100.0 << ", KoJ: " << koj <<"\n" <<
"Mangle Debuff: "<< mdebuff << ", Mangle Debuff Counter: " << mdebuff_timer/100.0 <<"\n"
<<"Savage Roar up: " << sr << ", Savage Roar Timer: " << sr_timer/100.0 << "\n"
<<"Rip ticking: " << rip_timer/100.0 << ", Bleed debuff: " << bdebuff/100.0 <<", Bleed Timer: " << bdebuff_timer/100.0 << ", Omen Timer: " << ooc_timer/100.0 << "\n"
<< "DPS: " << (100.0*damage)/(1.0*timer)<< ", White: " << (100.0*wdamage)/(1.0*timer) <<", Yellow: " << (100.0*ydamage)/(1.0*timer) <<"\n" << "\n";
*/
//when to use Tiger Fury / King of the Jungle
if((koj_timer<=0)&&(en<=20)){
koj_timer=koj_cd*100;
koj=1;
koj_step=600;
en+=60;
weapon+=koj_damage;
/*paw*/
paw.acritdamage=paw.adamage*2*(1+pistinct_m);
paw.bcritdamage=paw.bdamage*2*(1+pistinct_m);
//mangle
mangle.bdamage=(1-red)*((weapon)*1.6+507.2)*(1+fury_m)*1.1;
mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m);
//shred
shred.bdamage=(1-red)*((weapon)*2.25+742.5)*1.1;//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
shred.bcritdamage=shred.bdamage*2*(1+pistinct_m);
}
//using l'autoattack
if((timer%speed)==0){
att=randnum();
//cout << "Attack roll: " << att << "\n";
if(att<paw.crit){
dmg=((paw.acritdamage)*(1+sr*0.25)+paw.bcritdamage+koj*koj_damage*2*(1+pistinct_m));
damage+=dmg;
wdamage+=dmg;
//cout << "Paw (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
ooc_cd=1000;
}
}
}
else if(att<(paw.crit+paw.hit)){
dmg=(paw.adamage*(1+sr*0.25)+paw.bdamage+koj*koj_damage);
damage+=dmg;
wdamage+=dmg;
//cout << "Paw (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
ooc_cd=1000;
}
}
}
else{
//cout << "Paw (miss)" << ", Total damage: " << damage <<"\n";
}
}
// omen of clarity, when it proc I always shred.
if(gcd<=0){
if(ooc_proc==1){
att=randnum();
//cout <<"USING OMEN!" <<"\n";
//cout << "Attack roll: " << att << "\n";
if(att<shred.crit){
dmg=((shred.acritdamage)*(1+sr*0.25)+shred.bcritdamage)*(1+ret_m1*bdebuff+0.3*mdebuff)+koj*koj_damage*2*(1+pistinct_m);
damage+=dmg;
ydamage+=dmg;
cp+=2;
//cout << "shred (crit): " << dmg <<", Total damage: " << damage <<"\n";
ooc_proc=0;
ooc_timer=1000;
ooc_cd=1000;
gcd=100;
}
else if(att<(shred.crit+shred.hit)){
dmg=(shred.adamage*(1+sr*0.25)+shred.bdamage)*(1+ret_m1*bdebuff+0.3*mdebuff)+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
cp++;
//cout << "shred (normal): " << dmg <<", Total damage: " << damage <<"\n";
ooc_proc=0;
ooc_timer=1000;
ooc_cd=1000;
gcd=100;
}
else{
//cout << "shred (miss)" << ", Total damage: " << damage <<"\n";
ooc_proc=0;
ooc_timer=1000;
ooc_cd=1000;
gcd=100;
}
goto fine;
}
//Power Shifting
//Savage Roar
if((sr_timer<=100)&&(en<15)&&(cp>=sr_t)){
//cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//Mangle
if((mdebuff_timer<=100)&&(en<24)&&(cp<rip_t)){
//cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//Shred
if((mdebuff_timer>100)&&(en<32)&&(cp<rip_t)&&(bdebuff==1)){
//cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//RIP
if((mdebuff==1)&&(en<20)&&(cp>=rip_t)&&(rip_timer<100)){
//cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//Rake
if((mdebuff_timer>100)&&(en<15)&&(cp<fb_t)&&(bdebuff=0)&&(rk==1)){
// //cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//Ferocious Bite
if((en<20)&&(cp>=fb_t)&&(bdebuff=1)){
// //cout << "POWERSHIFTING, Lost " << en << " Energy";
en=40;
gcd=100;
pw+=1;
goto fine;
}
//decision making cycle
// savage roar?
if((sr_timer<=0)&&(en>=25)&&(cp>=sr_t)){
sr_timer=(6+cp*3)*100;
en-=25;
cp=0;
sr=1;
gcd=100;
if(ooc_timer<=0){
if(ooc_proc>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
goto fine;
}
//mangle?
if((mdebuff_timer<=0)&&(en>=mangle.energy)&&(cp<rip_t)){
att=randnum();
//cout << "Attack roll: " << att << "\n";
if(att<mangle.crit){
dmg=(mangle.acritdamage)*(1+sr*0.25)+mangle.bcritdamage+koj*koj_damage*2*(1+pistinct_m);
damage+=dmg;
ydamage+=dmg;
en-=mangle.energy;
cp+=2;
mdebuff=1;
mdebuff_timer=mdebuff_cd*100;
gcd=100;
//cout << "Mangle (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else if(att<(mangle.crit+mangle.hit)){
dmg=mangle.adamage*(1+sr*0.25)+mangle.bdamage+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
en-=mangle.energy;
cp++;
mdebuff=1;
mdebuff_timer=mdebuff_cd*100;
gcd=100;
//cout << "Mangle (normal): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else{
en-=mangle.energy;
gcd=100;
//cout << "Mangle (miss)" << ", Total damage: " << damage <<"\n";
}
goto fine;
}
//shred?
if((mdebuff_timer>0)&&(en>=shred.energy)&&(cp<rip_t)/*&&(bdebuff==1)*/){
att=randnum();
//cout << "Attack roll: " << att << "\n";
if(att<shred.crit){
dmg=((shred.acritdamage)*(1+sr*0.25)+shred.bcritdamage)*(1+ret_m1*bdebuff+0.3*mdebuff)+koj*koj_damage*2*(1+pistinct_m);
damage+=dmg;
ydamage+=dmg;
en-=shred.energy;
cp+=2;
gcd=100;
//cout << "shred (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else if(att<(shred.crit+shred.hit)){
dmg=(shred.adamage*(1+sr*0.25)+shred.bdamage)*(1+ret_m1*bdebuff+0.3*mdebuff)+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
en-=shred.energy;
cp++;
gcd=100;
//cout << "shred (normal): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else{
en-=shred.energy;
gcd=100;
//cout << "shred (miss)" << ", Total damage: " << damage <<"\n";
}
goto fine;
}
//rake?
if((mdebuff_timer>0)&&(en>=rake.energy)&&(cp<fb_t)&&(bdebuff==0)&&(rk==1)){
att=randnum();
// //cout << "Attack roll: " << att << "\n";
if(att<rake.crit){
dmg=((rake.acritdamage)*(1+sr*0.25)+rake.bcritdamage)*(1+0.3*mdebuff)+koj*koj_damage*2*(1+pistinct_m);
damage+=dmg;
ydamage+=dmg;
en-=rake.energy;
bdebuff=1;
bdebuff_timer=900;
cp+=2;
gcd=100;
// //cout << "rake (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else if(att<(rake.crit+rake.hit)){
dmg=(rake.adamage*(1+sr*0.25)+rake.bdamage)*(1+0.3*mdebuff)+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
en-=rake.energy;
bdebuff=1;
bdebuff_timer=900;
cp++;
gcd=100;
// //cout << "rake (normal): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else{
en-=rake.energy;
gcd=100;
// //cout << "rake (miss)" << ", Total damage: " << damage <<"\n";
}
goto fine;
}
//ferocious bite?
if((mdebuff_timer>0)&&(en>=fb.energy)&&(cp<fb_t)&&(bdebuff==1)){
att=randnum();
// //cout << "Attack roll: " << att << "\n";
if(att<fb.crit){
fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*1.1*(1+ferocity_m);
fb.acritdamage=fb.adamage*2*(1+pistinct_m);
fb.bdamage=(1-red)*(120+290*cp+(9.4)*(en-fb.energy))*1.1*(1+ferocity_m);
fb.bcritdamage=fb.bdamage*2*(1+pistinct_m);
fb.hit=dumb_yhit-fb.crit;
dmg=((fb.acritdamage)*(1+sr*0.25)+fb.bcritdamage)+koj*koj_damage*2*(1+pistinct_m);
damage+=dmg;
ydamage+=dmg;
en-=fb.energy;
cp+=2;
gcd=100;
// //cout << "fb (crit): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else if(att<(fb.crit+fb.hit)){
fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*1.1*(1+ferocity_m);
fb.bdamage=(1-red)*(120+290*cp+(9.4)*(en-fb.energy))*1.1*(1+ferocity_m);
dmg=(fb.adamage*(1+sr*0.25)+fb.bdamage)+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
en-=fb.energy;
cp++;
gcd=100;
// //cout << "fb (normal): " << dmg <<", Total damage: " << damage <<"\n";
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else{
en-=(int)((1-precision_m2)*fb.energy);
gcd=100;
// //cout << "fb (miss)" << ", Total damage: " << damage <<"\n";
}
goto fine;
}
//rip?
if((mdebuff==1)&&(en>=rip.energy)&&(cp>=rip_t)&&(rip_timer<1)){
att=randnum();
//cout << "Attack roll: " << att << "\n";
if(att<(rip.crit+rip.hit)){
dmg=(((ap)*0.01*cp)*6*1.1*(1+sr*0.25)+(39+99*cp)*6*1.1)*(1+(mdebuff+warrior)*0.3)+koj*koj_damage;
damage+=dmg;
ydamage+=dmg;
en-=rip.energy;
bdebuff=1;
bdebuff_timer=(12+rip_g*rip_glyph)*100;
rip_timer=(12+rip_g*rip_glyph)*100;
gcd=100;
//cout << "rip (bleed): " << dmg <<", Total damage: " << damage <<"\n";
cp=0;
if(ooc_timer<=0){
if(ooc_rate>randnum()){
ooc_proc=1;
ooc_timer=1000;
}
}
}
else{
en-=(int)((1-precision_m2)*rip.energy);
gcd=100;
//cout << "rip (miss)" << ", Total damage: " << damage <<"\n";
}
goto fine;
}
fine:;
}
}
damage2+=damage;
wdamage2+=wdamage;
ydamage2+=ydamage;
}
//Writing DPS, White and Yellow components.
cout << "\n" << "\n" << "DPS: " << (damage2)/(1.0*timer)<< ", White: " << (wdamage2)/(1.0*timer) <<", Yellow: " << (ydamage2)/(1.0*timer) << ", Bleed debuff uptime: " << (bdebuff_up)/(1.0*timer) <<"%" << ", Mangle debuff uptime: " << (mdebuff_up)/(1.0*timer) <<"%" << ", Powershifts each " << (timer*1.0)/(1.0*pw) << " seconds (average)" << "\n" << "\n";
return 0;
}
Last edited by nightcrowler : 07/30/08 at 12:27 AM.
Reason: Wrong code posted
|
|
|
|
|
07/29/08, 6:07 AM
|
#578
|
|
Piston Honda
|
Thanks Night,
At first glance that looks awesome. I don't have a compiler on this PC to test it out though, anyone want to send me the executable? 
|
|
|
|
|
07/29/08, 6:47 AM
|
#579
|
|
Don Flamenco
Night Elf Druid
Runetotem (EU)
|
Originally Posted by manapaws
Thanks Night,
At first glance that looks awesome. I don't have a compiler on this PC to test it out though, anyone want to send me the executable? 
|
I've made some correction into the original post.
Badly it doesn't have atm a keybord imput, it's all hardcoded, so if you want to change something you should code it down. I'll make an interface soon
Originally Posted by nightcrowler
Powershifts each 4.19082 seconds (average)
|
I know it's too much. I need to code mana expense and mana regeneration, does anyone has some numbers?
|
|
|
|
|
07/29/08, 6:55 AM
|
#580
|
|
Piston Honda
Night Elf Druid
Sylvanas (EU)
|
Originally Posted by nightcrowler
He...
On a side note now it seams that for certain value of ap and crit 3SR/4RIP is better than 2SR/4RIP. The change in energy regeneration alone give us 350+ dps increase!
|
Hmm, why is that? Do you mean the change that energy regeneration is now continuous?
The only major impact i can think of is on powershifting. Now we can powershift at "0" energy everytime, so we only lose 10 energy (due to 1s GCD). But it does not seem that big difference.
Is there anything else?
|
|
|
|
|
07/29/08, 7:18 AM
|
#581
|
|
Von Kaiser
Night Elf Druid
Mannoroth
|
Some Changes in the latest Beta Build:
Infected Wounds - Your Shred, Maul, and Mangle attacks have a 33% chance to cause an Infected Wound in the target, The Infected Wound reduces the movement speed of the target by 10% and the attack speed by 3% (old version: 10%), Stacks up to 5 times.
rough nerf to the attack speed pvp wise... I wonder what the train of thought is behind it.
Source World of Raids | World of Warcraft News Guides Guilds & Raid Progression
|
|
|
|
|
07/29/08, 8:19 AM
|
#582
|
|
Don Flamenco
Night Elf Druid
Runetotem (EU)
|
Originally Posted by Inaiwae
Hmm, why is that? Do you mean the change that energy regeneration is now continuous?
The only major impact i can think of is on powershifting. Now we can powershift at "0" energy everytime, so we only lose 10 energy (due to 1s GCD). But it does not seem that big difference.
Is there anything else?
|
It is very big indead, you will gain far more from powershifting than before (and also without it).
Originally Posted by Snarley
Some Changes in the latest Beta Build:
Infected Wounds - Your Shred, Maul, and Mangle attacks have a 33% chance to cause an Infected Wound in the target, The Infected Wound reduces the movement speed of the target by 10% and the attack speed by 3% (old version: 10%), Stacks up to 5 times.
rough nerf to the attack speed pvp wise... I wonder what the train of thought is behind it.
Source World of Raids | World of Warcraft News Guides Guilds & Raid Progression
|
Because now it can work on pve (bosses) like the ability of paladins e warriors
|
|
|
|
|
07/29/08, 8:30 AM
|
#583
|
|
Glass Joe
Tauren Druid
Frostmane (EU)
|
Can someone explain the new glyphs to me? I dont understand how they will work. If you activate one glyph, does that alteration of the spell becomes permanent, so if I use the swipe glyph, from now on all my swipes will hit 4 targets instead of 3? Or is the glyphs a one-time-use, if so, will they induce a global cooldown? Can I stack glyphs to make swipe hit 5 targets. How many glyphs can I have active at the same time? Lets say I will be a real hardcore raider, will I then have to stack in my inventory (if single use) as many swipe glyphs as I think I will use swipes in that raid?
Some of the glyphs seems so extremely overpowered if they are permanent, I just dont understand how they will be able to work (for instance turning Healing touch into Flash of light). When I read on mmo-champion, it seems like they already believe that everyone knows how glyphs will work and don't bother explaining it.
|
|
|
|
|
07/29/08, 8:46 AM
|
#584
|
|
Von Kaiser
Night Elf Druid
Mannoroth
|
Originally Posted by phellan
Can someone explain the new glyphs to me? I dont understand how they will work. If you activate one glyph, does that alteration of the spell becomes permanent, so if I use the swipe glyph, from now on all my swipes will hit 4 targets instead of 3? Or is the glyphs a one-time-use, if so, will they induce a global cooldown? Can I stack glyphs to make swipe hit 5 targets. How many glyphs can I have active at the same time? Lets say I will be a real hardcore raider, will I then have to stack in my inventory (if single use) as many swipe glyphs as I think I will use swipes in that raid?
Some of the glyphs seem so extremely overpowered if they are permanent, I just don’t understand how they will be able to work (for instance turning Healing touch into Flash of light). When I read on mmo-champion, it seems like they already believe that everyone knows how glyphs will work and don't bother explaining it.
|
Here is a great explanation of how Glyphs work.
Glyph of the White Bear Scroll down a bit in the post and someone has a nice screenshot.
The jyst being 2 Major, 2 Lesser, 2 Minor
Inscriptionists get 1 extra (not sure whether its an extra major, lesser or minor though)
Last edited by Snarley : 07/29/08 at 10:21 AM.
|
|
|
|
|
07/29/08, 9:26 AM
|
#585
|
|
Von Kaiser
Night Elf Druid
Kil'Jaeden (EU)
|
Originally Posted by nightcrowler
It is very big indead, you will gain far more from powershifting than before (and also without it).
|
You can also powershift after every attack which is not very attractive today. With that change only the mana pool/regen limit the use of powershifting. This together with tigery fury and berserk will offer a great burst potential for pvp. (perhaps to great :P)
I played around with your code a little bit and with only 5 powershifts per minute (which is usable today), the white/yellow damage is approx the same as today. Rip damage is only 10-11% of all, so we really don`t have to worry about trauma. (it is only a 3-4% increase). Shred Damage goes up because of all the energy we get. Nice work btw.
|
|
|
|
|
|