Elitist Jerks
Register
Blogs
Forums


Go Back   Elitist Jerks » Class Mechanics » Druids

Closed Thread
 
LinkBack Thread Tools
Old 07/29/08, 1:43 AM   #571
wuffles
Bald Bull
 
wuffles's Avatar
 
Tauren Druid
 
Mal'Ganis
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.

Offline
Old 07/29/08, 1:46 AM   #572
Septus
Piston Honda
 
Blood Elf Death Knight
 
Ravenholdt
Originally Posted by wuffles View Post
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.

Offline
Old 07/29/08, 2:13 AM   #573
Saraya
Piston Honda
 
Night Elf Druid
 
Proudmoore
Originally Posted by Septus View Post
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.

Offline
Old 07/29/08, 2:26 AM   #574
seminarca
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 >.<

Offline
Old 07/29/08, 2:43 AM   #575
dlanod
Von Kaiser
 
Night Elf Hunter
 
Barthilas
Originally Posted by seminarca View Post
# 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.

Offline
Old 07/29/08, 3:58 AM   #576
Daboran
King Hippo
 
Daboran's Avatar
 
Tauren Druid
 
Twisting Nether (EU)
Originally Posted by Snarley View Post
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.

Offline
Old 07/29/08, 4:33 AM   #577
nightcrowler
Don Flamenco
 
nightcrowler's Avatar
 
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

Offline
Old 07/29/08, 6:07 AM   #578
manapaws
Piston Honda
 
Tauren Druid
 
Blackrock
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?

Offline
Old 07/29/08, 6:47 AM   #579
nightcrowler
Don Flamenco
 
nightcrowler's Avatar
 
Night Elf Druid
 
Runetotem (EU)
Originally Posted by manapaws View Post
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 View Post

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?

Offline
Old 07/29/08, 6:55 AM   #580
Inaiwae
Piston Honda
 
Night Elf Druid
 
Sylvanas (EU)
Originally Posted by nightcrowler View Post
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?

Offline
Old 07/29/08, 7:18 AM   #581
Snarley
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

Offline
Old 07/29/08, 8:19 AM   #582
nightcrowler
Don Flamenco
 
nightcrowler's Avatar
 
Night Elf Druid
 
Runetotem (EU)
Originally Posted by Inaiwae View Post
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 View Post
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

Offline
Old 07/29/08, 8:30 AM   #583
phellan
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.

Offline
Old 07/29/08, 8:46 AM   #584
Snarley
Von Kaiser
 
Night Elf Druid
 
Mannoroth
Originally Posted by phellan View Post
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.

Offline
Old 07/29/08, 9:26 AM   #585
angi
Von Kaiser
 
Night Elf Druid
 
Kil'Jaeden (EU)
Originally Posted by nightcrowler View Post
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.

Offline
Closed Thread

Go Back   Elitist Jerks » Class Mechanics » Druids

Thread Tools