#include <iostream>
#include <fstream>
#include <cmath>
#include <ctime>
#include "mtrand.h"

using namespace std;


/*Create a struct for special attacks, Yes I know, It's only to give variables cool names :P*/
struct 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 miss; //miss chance of the ability
	double hit; //hit chance of the ability
	double crit; //crit chance of the ability
	double glance; //glancing blow for the ability
};

struct bearattack{
public:
	int rage; //rage use of ability
	int ragec; //rage for crits
	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 miss; //miss chance of the ability
	double hit; //hit chance of the ability
	double crit; //crit chance of the ability
	double glance; //glancing blow for the ability
	
};

struct bossattack{
public:
	double damage; //Boss special damage total if istant or x tick if is a dot
	double cd; //boss physical special damage cooldown in seconds.
	double tick_numb; //set 0 if it's an istant or set to the total number of ticks otherwise
	double tick_time; // set to 1 if is an istant, set to the number of ticks otherwise
	double bleed; // set to 1 if it's a bleed.
	double magic; //set to 1 if it's magic.
	double crit; //crit chance of the ability
	double miss; //miss chance of the ability
	double hit; //hit chance of the ability	
};

struct procs{
public:
	double cd; //procs hidden cooldown, usually 45 sec for a trinket or on use cd
	double duration; //procs duration in seconds/100.
	
	double cd_timer;
	double duration_timer;
	
	int up; //if the buff is up
	
	double haste_rating;
	double crit_rating;
	double haste;
	double crit;
	double hit_rating;
	double hit;
	double m_crit;
	double m_hit;
	double expertise_rating;
	double expertise;
	double armor_pen_rating;
	double armor_pen;
	
	double agi;
	double str;
	double intellect;
	double attack_power;
	double apbase;
	double wep_dmg; //weapon damage
	
	double defense_rating;
	double dodge_rating;
	double myarmor;  //armor contribution from items
	double armor_bonus; //bonus armor from patch, etc..
	double stamina;
	double mybasehp;
	double bonus_hp;
	double speed;
	
	double magic_damage; //single shoot magical damage (uses spells rules=
	
	double proc_chance_on_crit; //trinket proc chance for crits
	double proc_chance_on_hit; //trinket proc chance for hits
	double proc_chance_on_hit_bear; //trinket proc chance for hits in bear form due to wpn speed normalization
	double proc_chance_on_dot; //trinket proc chance for dots
	double proc_chance_on_stuck; //trinket proc chance if your stuck in combat
	int on_use;
	
	double stack;
};

/*/
 /*main*/

int main (int argc, char * const argv[]) {
	
		procs trinket1, trinket2, wpn_enchant;
	
	//Set ability-cycle----------------------------
	
	int cat_bear=1; //set to 1 for cat, to 0 for bear.
	
	int lag=9; //Latency in 0.01 seconds
	int powershift=0;//Switch to 1 to enable powershifting, 0 otherwise.
	int mana_cost=0; //Switch to 1 if you want to care of mana cost for powershifting, set to 0 otherwise.
	
	int sr_t=2; //Savage Roar combo points, set to 10 if you don't use it
	int rip_t=5; //Rip combo points, set to 10 if you don't use it.
	int fb_t=5; //Ferocious Bite combo points, set to 10 if you don't use it.
	int rk=1; //set to 1 if you use rake.
	int auto_rk=1; //set to 1 if you want to decide rake vs shred automatically.
	int shred_to_rip=1; //set to 1 if you want to be sure that you'll take 3 stack of shred on rip.
	
	
	int sr_upper=1; //if SR is down use SR also if you have less than sr_t combo points.
	int use_mangle_for_sr=0; // set to 1 if you want to always use mangle to generate cp for Savage Roar if Savage Roar is down.
	int infinite_rage=1; //set to 1 for infinite rage scenario
	
	int mangle_only=0; //set to 1 if you don't want to use shred.
		
	int rip_expire=1; //set to 1 if you want to wait for rip to expire before reappling it. UNUSED
	
	
	
	int use_FFF=1; //set to 1 to put FFF into bear rotation.
	int use_enrage=0; //set to 1 if you want to use enrage in your rotation.
	int parry_g=1; //set to 1 to enable boss parry gibbs.
	
	
	int bleeding=1; //The target is bleeding.
	int manglebot=1; //Switch to 1 if you have a mangle bot taking mangle always up.
	
	int pw_t=11+(int)(lag/10.0); //powershift ts for shred UNUSED.
	
	double BEHIND=1; //put to 1 if you are attacking from behind.
	
	//-----------Movement--------------------------
	
	int movement=0; //Switch to 1 for a movement fight
	int move_time=10; //the time in seconds you are moving away from your target
	int move_interval=40; //the time interval at wich you need to move.
	
	//----------------------------------------------
	
	//Simulation timer----------------------
	const int sim_time=30000; //each step is 0.01 seconds.
	const int sample_fight=50000; //number of fights to sample.
	int kill_mode=4*100; //time left before entering kill mode (use fb, don't micromanage energy and so on).
	int move_mode=6*100; //time before entering move mode (don't micromanage energy and so on)
	int fixed_damage_step=1;
	int fixed_damagemin=1;
	
	double variable_space=0;
	
	
	double maxcrit=1;
	double mincrit=0.35;
	double stepcrit=0.1;
	double maxhaste=1;
	double minhaste=0;
	double stephaste=0.1;
	double maxarpen=1;
	double minarpen=0.1;
	double steparpen=0.15;
	int maxap=12000;
	int stepap=800;
	int minap=8000;
	double maxhit=0.08;
	double stephit=0.02;
	double minhit=0;
	
	//----------------------------------
	
	//Set Equipment-------------------------------------
	
	int equip=7; //1 for cat equip, 0 for bear equip, 2 for Ulduar equip 4t8, 3 for Ulduar Bear, 4 for Ulduar cat 2t7+2t8, 5 for Ulduar 4T8 without Hard modes, 6 for Ulduar 2T8+HM, 7 for 2T9+HM.
	int talents=cat_bear; //1 for cat equip, 0 for bear equip
	if(variable_space==1){
		equip=10;
	}
	
	//CAT
	int m_g=0; //set to 1 if you have the mangle glyph, 0 otherwise.
	int rip_g=1; //set to 1 if you have rip glyph, 0 otherwise.
	int berserk_g=0; //set to 1 with berserk glyph.
	int sr_g=1; //set to 1 for sr glyph.
	int shred_g=1; //set to 1 for shred glyph
	int surv_g=0; //set to 1 for survival instinct glyph
	int twoT7=1; //Your Rip lasts for an additional 3 seconds, and your Lacerate deals an additional 5% damage.
	int fourT7=0; // Decrease TF duration by 3 seconds, increase barkskin duration by 3 seconds.
	int twoT8=0; //chance of clearcasting with dots;
	int fourT8=0; //+8 sec to SR and SI
	int twoT9=0; //Your rake last 3 additional seconds.
	int fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
	
	int META=1;//+3% crit damage metagem
	int META_ARMOR=0; // +2% armor contribution from items meta-gem
	int IDOL_WS=0; //+21 to rip
	int IDOL_SHRED=1; //+203 damage to shred
	int IDOL_MUT=0; //70% proc on mangle, swipe, lacerate, shred to gain 200 dodge (bear) or 200 agi (cat)
	int IDOL_PA=0; //+120 maul, +24 swipe.
	
	
	
	
	/*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 = 3; //predatory istinct 0-3
	int impmangle_t= 3; //improved mangle 0-3
	double ret_t = 5; // Rend & Tear 0-5
	double mss_t = 2; // Master ShapeShifter 0-2
	double sof_t=3; // Survival of the fitness 0-3
	double naturalist_t=5; // Naturalist 0-5
	int omen=1; //Omen of clarity
	int koj_t=3; //King of the Jungle 0-3
	double hotw_t=5; //hearth of the wild 0-5
	
	double feral_inst_t=0; //Feral Instinct 0-3
	double th_t=0; //Thick Hide 0-3
	double pop_t=0; //Protector of the Pack 0-3
	double fw_t=2; //Feral Swiftness 0-2
	double nr_t=0; //Natural Reaction 0-3
	double pg=1; //ptimal gore 0-1
	int imow_t=2; //improved mark of the wild
	
	
	//Ratings for CAT
	double haste_rating=321; //321, 301, 190
	double crit_rating=473;
	double hit_rating=251;
	double expertise_rating=113;
	double armor_pen_rating=420;
	double agi=1057; 
	double str=86;
	double attack_power=2061;
	double feral_ap=2581;
	double wep_dmg=0; //weapon damage
	
	double defense_rating=0;
	double dodge_rating=0;
	double myarmor=3514;  //armor contribution from items
	double armor_bonus=0; //bonus armor from patch, etc..
	double stamina=1146;
	double mybasehp=7167;
	double bonus_hp=0;
	
	double spirit=167;
	double intellect=153;
	
	
	//-------------Trinket declaration--------------------
	
		
		//Nil
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		
		//Nil
		trinket2.cd=45*100;
		trinket2.duration=15*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.35;
		trinket2.proc_chance_on_hit_bear=0.35;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;

		
		
		//Nil
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=0;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0;
		wpn_enchant.on_use=0;
	
	if(equip==1){

	//Grim Toll
	trinket1.cd=45*100;
	trinket1.duration=10*100;
	trinket1.cd_timer=0;
	trinket1.duration_timer=0;
	trinket1.up=0;
	trinket1.haste_rating=0;
	trinket1.crit_rating=0;
	trinket1.hit_rating=0;
	trinket1.expertise_rating=0;
	trinket1.armor_pen_rating=612;
	trinket1.agi=0;
	trinket1.str=0;
	trinket1.attack_power=0;
	trinket1.wep_dmg=0;
	trinket1.defense_rating=0;
	trinket1.dodge_rating=0;
	trinket1.myarmor=0;
	trinket1.armor_bonus=0;
	trinket1.stamina=0;
	trinket1.bonus_hp=0;
	trinket1.magic_damage=0;	
	trinket1.proc_chance_on_crit=0;
	trinket1.proc_chance_on_hit=0.15;
	trinket1.proc_chance_on_hit_bear=0.15;
	trinket1.proc_chance_on_dot=0;
	trinket1.proc_chance_on_stuck=0;
	trinket1.stack=1;
	trinket1.speed=0;
	trinket1.on_use=0;
	
	//Greatness Agility
	trinket2.cd=45*100;
	trinket2.duration=15*100;
	trinket2.cd_timer=0;
	trinket2.duration_timer=0;
	trinket2.up=0;
	trinket2.haste_rating=0;
	trinket2.crit_rating=0;
	trinket2.hit_rating=0;
	trinket2.expertise_rating=0;
	trinket2.armor_pen_rating=0;
	trinket2.agi=300;
	trinket2.str=0;
	trinket2.attack_power=0;
	trinket2.wep_dmg=0;
	trinket2.defense_rating=0;
	trinket2.dodge_rating=0;
	trinket2.myarmor=0;
	trinket2.armor_bonus=0;
	trinket2.stamina=0;
	trinket2.bonus_hp=0;
	trinket2.magic_damage=0;	
	trinket2.proc_chance_on_crit=0;
	trinket2.proc_chance_on_hit=0.35;
	trinket2.proc_chance_on_hit_bear=0.35;
	trinket2.proc_chance_on_dot=0;
	trinket2.proc_chance_on_stuck=0;
	trinket2.stack=1;
	trinket2.speed=0;
	trinket2.on_use=0;
	
	/*
	//Incisor Fragment
	trinket2.cd=120*100;
	trinket2.duration=20*100;
	trinket2.cd_timer=0;
	trinket2.duration_timer=0;
	trinket2.up=0;
	trinket2.haste_rating=0;
	trinket2.crit_rating=0;
	trinket2.hit_rating=0;
	trinket2.expertise_rating=0;
	trinket2.armor_pen_rating=291;
	trinket2.agi=0;
	trinket2.str=0;
	trinket2.attack_power=0;
	trinket2.wep_dmg=0;
	trinket2.defense_rating=0;
	trinket2.dodge_rating=0;
	trinket2.myarmor=0;
	trinket2.armor_bonus=0;
	trinket2.stamina=0;
	trinket2.bonus_hp=0;
	trinket2.magic_damage=0;	
	trinket2.proc_chance_on_crit=0;
	trinket2.proc_chance_on_hit=0;
	trinket2.proc_chance_on_hit_bear=0;
	trinket2.proc_chance_on_dot=0;
	trinket2.proc_chance_on_stuck=0;
	trinket2.stack=1;
	trinket2.speed=0;
	trinket2.on_use=1;
*/
	
	//Berserking
	wpn_enchant.cd=0;
	wpn_enchant.duration=15*100;
	wpn_enchant.cd_timer=0;
	wpn_enchant.duration_timer=0;
	wpn_enchant.up=0;
	wpn_enchant.haste_rating=0;
	wpn_enchant.crit_rating=0;
	wpn_enchant.hit_rating=0;
	wpn_enchant.expertise_rating=0;
	wpn_enchant.armor_pen_rating=0;
	wpn_enchant.agi=0;
	wpn_enchant.str=0;
	wpn_enchant.attack_power=400;
	wpn_enchant.wep_dmg=0;
	wpn_enchant.defense_rating=0;
	wpn_enchant.dodge_rating=0;
	wpn_enchant.myarmor=-0;
	wpn_enchant.armor_bonus=0;
	wpn_enchant.stamina=0;
	wpn_enchant.bonus_hp=0;
	wpn_enchant.magic_damage=0;	
	wpn_enchant.proc_chance_on_crit=0;
	wpn_enchant.proc_chance_on_hit=0.02;
	wpn_enchant.proc_chance_on_hit_bear=0.05;
	wpn_enchant.proc_chance_on_dot=0;
	wpn_enchant.proc_chance_on_stuck=0;
	wpn_enchant.stack=1;
	wpn_enchant.speed=0;
	wpn_enchant.on_use=0;

	
	 //Mongoose
	 wpn_enchant.cd=0;
	 wpn_enchant.duration=15*100;
	 wpn_enchant.cd_timer=0;
	 wpn_enchant.duration_timer=0;
	 wpn_enchant.up=0;
	 wpn_enchant.haste_rating=0;
	 wpn_enchant.crit_rating=0;
	 wpn_enchant.hit_rating=0;
	 wpn_enchant.expertise_rating=0;
	 wpn_enchant.armor_pen_rating=0;
	 wpn_enchant.agi=120;
	 wpn_enchant.str=0;
	 wpn_enchant.attack_power=0;
	 wpn_enchant.wep_dmg=0;
	 wpn_enchant.defense_rating=0;
	 wpn_enchant.dodge_rating=0;
	 wpn_enchant.myarmor=-0;
	 wpn_enchant.armor_bonus=0;
	 wpn_enchant.stamina=0;
	 wpn_enchant.bonus_hp=0;
	 wpn_enchant.magic_damage=0;	
	 wpn_enchant.proc_chance_on_crit=0;
	 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
	 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
	 wpn_enchant.proc_chance_on_dot=0;
	 wpn_enchant.proc_chance_on_stuck=0;
	 wpn_enchant.stack=1;
	 wpn_enchant.speed=0.02;
	 wpn_enchant.on_use=0;
	}
	
	
	if(equip==0){
		//Ratings
		haste_rating=159;
		crit_rating=284;
		hit_rating=204;
		expertise_rating=336;
		armor_pen_rating=92;
		agi=1267;
		str=313;
		attack_power=946;
		feral_ap=2647;
		wep_dmg=0; //weapon damage
		
		defense_rating=164;
		dodge_rating=151;
		myarmor=3546;  //armor contribuon from items
		armor_bonus=1218; //bonus armor from patch, etc..
		stamina=2072;
		mybasehp=7167;
		bonus_hp=1300;
		
		spirit=167;
		intellect=179;
		

		META=0;//+3% crit damage metagem
		META_ARMOR=1; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=1; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_MUT=0;
		IDOL_SHRED=1;
		
		//-------------Trinket declaration--------------------
		
		
		
		//Greatness Agility
		trinket1.cd=45*100;
		trinket1.duration=15*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=300;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.35;
		trinket1.proc_chance_on_hit_bear=0.35;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;

		
//Hearth of the Lion
		trinket2.cd=120*100;
		trinket2.duration=20*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=432;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=1;
		trinket2.proc_chance_on_hit=1;
		trinket2.proc_chance_on_hit_bear=1;
		trinket2.proc_chance_on_dot=1;
		trinket2.proc_chance_on_stuck=1;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;


		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;//0;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;//400;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=2.5/60;
		wpn_enchant.proc_chance_on_hit_bear=2.5/60;
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;

		
	}
	
	if(equip==3){
		//Ratings
		haste_rating=159;
		crit_rating=284;
		hit_rating=204;
		expertise_rating=336;
		armor_pen_rating=92;
		agi=1540;
		str=313;
		attack_power=946;
		feral_ap=2647;
		wep_dmg=0; //weapon damage
		
		defense_rating=179;
		dodge_rating=171;
		myarmor=3546;  //armor contribuon from items
		armor_bonus=1218; //bonus armor from patch, etc..
		stamina=1727;
		mybasehp=7167;
		bonus_hp=1300;
		
		spirit=167;
		intellect=179;
		
		
		META=1;//+3% crit damage metagem
		META_ARMOR=0; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=1; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		
		//Greatness Agility
		trinket1.cd=45*100;
		trinket1.duration=15*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=300;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.35;
		trinket1.proc_chance_on_hit_bear=0.35;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		
		
		//Hearth of the Lion
		trinket2.cd=120*100;
		trinket2.duration=20*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=432;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=1;
		trinket2.proc_chance_on_hit=1;
		trinket2.proc_chance_on_hit_bear=1;
		trinket2.proc_chance_on_dot=1;
		trinket2.proc_chance_on_stuck=1;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		
		
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;//0;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;//400;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=2.5/60;
		wpn_enchant.proc_chance_on_hit_bear=2.5/60;
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		
		
	}
	
	
	if(equip==2){
		//Ratings
		haste_rating=245;//-19,-171
		crit_rating=696;
		hit_rating=201;
		expertise_rating=104;
		armor_pen_rating=568;
		agi=1434;
		str=102;
		attack_power=2027;
		feral_ap=2796;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3555;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1176;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=1;//+3% crit damage metagem
		META_ARMOR=0; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=1; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		
		//Comet's Trall
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=726;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		
	/*
		//Grim Toll
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=612;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
trinket1.speed=0;
		trinket1.on_use=0;
	 */

	/*
		//Wrath Stone
		trinket1.cd=120*100;
		trinket1.duration=20*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=856;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0;
		trinket1.proc_chance_on_hit_bear=0;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=1;
		*/
		
	/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*	
		 //Blood of the Old God
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1284;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		*/
		
		
		//Mirj
		trinket2.cd=45*100;
		trinket2.duration=10*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=665;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.15;
		trinket2.proc_chance_on_hit_bear=0.15;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		 
		

		/*
		//Greatness Agility
		trinket1.cd=45*100;
		trinket1.duration=15*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=300;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.35;
		trinket1.proc_chance_on_hit_bear=0.35;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		*/
		
		/*
		 //Greatness Agility
		 trinket2.cd=45*100;
		 trinket2.duration=15*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=0;
		 trinket2.agi=300;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.35;
		 trinket2.proc_chance_on_hit_bear=0.35;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 */
		 
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		*/
		 
		/*
		//Berserking
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=0;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=400;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=0.02;
		wpn_enchant.proc_chance_on_hit_bear=0.05;
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0;
		wpn_enchant.on_use=0;
		 */

		
		
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		 wpn_enchant.on_use=0;
		 
		
		/*
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
	}
	
	
	if(equip==5){
		//Ratings
		haste_rating=158;
		crit_rating=470;
		hit_rating=266; //263 is cap
		expertise_rating=147;
		armor_pen_rating=622;
		agi=1297;
		str=102;
		attack_power=1783;
		feral_ap=2647;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3552;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1174;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=1;//+3% crit damage metagem
		META_ARMOR=0; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=1; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		
		 //Grim Toll
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=612;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 
		
		/*
		 //Wrath Stone
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=856;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		//Blood of the Old God
		trinket1.cd=50*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=1284;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0.10;
		trinket1.proc_chance_on_hit=0;
		trinket1.proc_chance_on_hit_bear=0;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		*/
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		//Mirj
		trinket2.cd=45*100;
		trinket2.duration=10*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=665;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.15;
		trinket2.proc_chance_on_hit_bear=0.15;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		*/
		
		
		/*
		 //Greatness Agility
		 trinket1.cd=45*100;
		 trinket1.duration=15*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=300;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.35;
		 trinket1.proc_chance_on_hit_bear=0.35;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		
		 //Greatness Agility
		 trinket2.cd=45*100;
		 trinket2.duration=15*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=0;
		 trinket2.agi=300;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.35;
		 trinket2.proc_chance_on_hit_bear=0.35;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 
		
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Berserking
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=0;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=400;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=0.02;
		 wpn_enchant.proc_chance_on_hit_bear=0.05;
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
		
		
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		
		
		/*
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
	}
	
	
	if(equip==6){
		//Ratings
		haste_rating=307;
		crit_rating=682;
		hit_rating=152; //263 is cap
		expertise_rating=56;
		armor_pen_rating=568; //622
		agi=1478;
		str=102;
		attack_power=2005;
		feral_ap=2796;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3581;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1183;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=1;//+3% crit damage metagem
		META_ARMOR=0; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=0; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		/*
		//Grim Toll
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=612;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		*/
		
		/*
		 //Wrath Stone
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=856;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		
		 //Comet's Trall
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=726;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 
		
		/*
		 //Blood of the Old God
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1284;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		
		 //Mirj
		 trinket2.cd=45*100;
		 trinket2.duration=10*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=665;
		 trinket2.agi=0;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.15;
		 trinket2.proc_chance_on_hit_bear=0.15;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 
		
		
		/*
		 //Greatness Agility
		 trinket1.cd=45*100;
		 trinket1.duration=15*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=300;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.35;
		 trinket1.proc_chance_on_hit_bear=0.35;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		//Greatness Agility
		trinket2.cd=45*100;
		trinket2.duration=15*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=300;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.35;
		trinket2.proc_chance_on_hit_bear=0.35;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		*/
		
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Berserking
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=0;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=400;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=0.02;
		 wpn_enchant.proc_chance_on_hit_bear=0.05;
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
		
		
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		
		
		/*
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
	}
	
	
	
	if(equip==10){
		//Ratings
		haste_rating=0; //253; 262; -143
		crit_rating=0;
		hit_rating=0;
		expertise_rating=104;
		armor_pen_rating=0;
		agi=87;
		str=86;
		attack_power=0;
		feral_ap=0;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3573;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1196;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=0;//+3% crit damage metagem
		META_ARMOR=1; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=1; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		/*
		 //Grim Toll
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=612;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Wrath Stone
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=856;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Blood of the Old God
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1284;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		//Mirj
		trinket2.cd=45*100;
		trinket2.duration=10*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=665;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.15;
		trinket2.proc_chance_on_hit_bear=0.15;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		
		*/
		
		/*
		//Greatness Agility
		trinket1.cd=45*100;
		trinket1.duration=15*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=300;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.35;
		trinket1.proc_chance_on_hit_bear=0.35;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		*/
		
		/*
		 //Greatness Agility
		 trinket2.cd=45*100;
		 trinket2.duration=15*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=0;
		 trinket2.agi=300;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.35;
		 trinket2.proc_chance_on_hit_bear=0.35;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 */
		
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Berserking
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=0;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=400;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=0.02;
		 wpn_enchant.proc_chance_on_hit_bear=0.05;
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
		
		/*
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		*/
		
		/*
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
	}
	
	if(equip==4){
		//Ratings
		haste_rating=203; //
		crit_rating=600;
		hit_rating=236;
		expertise_rating=98;
		armor_pen_rating=564;
		agi=1462;
		str=96;
		attack_power=1747;
		feral_ap=2823;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3553;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1193;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=0;//+3% crit damage metagem
		META_ARMOR=1; // +2% armor contribution from items meta-gem
		twoT7=1; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=1; //chance of clearcasting with dots;
		fourT8=0; //+8 sec to SR and SI
		twoT9=0; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=1;
		IDOL_MUT=0;
		
		//-------------Trinket declaration--------------------
		
		
		/*
		 //Grim Toll
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=612;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Wrath Stone
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=856;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Blood of the Old God
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1284;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		
		//Mirj
		trinket2.cd=45*100;
		trinket2.duration=10*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=665;
		trinket2.agi=0;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.15;
		trinket2.proc_chance_on_hit_bear=0.15;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		
		
		
		
		//Greatness Agility
		trinket1.cd=45*100;
		trinket1.duration=15*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=300;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.35;
		trinket1.proc_chance_on_hit_bear=0.35;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		
		
		/*
		 //Greatness Agility
		 trinket2.cd=45*100;
		 trinket2.duration=15*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=0;
		 trinket2.agi=300;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.35;
		 trinket2.proc_chance_on_hit_bear=0.35;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 */
		
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Berserking
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=0;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=400;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=0.02;
		 wpn_enchant.proc_chance_on_hit_bear=0.05;
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
		
		
		
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		
		
		/*
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
	}

	if(equip==7){
		//Ratings
		haste_rating=352;//-12;-150;
		crit_rating=566;
		hit_rating=238; //263 is cap
		expertise_rating=106;
		armor_pen_rating=1058;
		agi=1486+200;
		str=106;
		attack_power=2274;
		feral_ap=3362;
		wep_dmg=0; //weapon damage
		
		defense_rating=0;
		dodge_rating=0;
		myarmor=3812;  //armor contribuon from items
		armor_bonus=0; //bonus armor from patch, etc..
		stamina=1543;
		mybasehp=7167;
		bonus_hp=0;
		
		spirit=167;
		intellect=179;
		
		META=1;//+3% crit damage metagem
		META_ARMOR=0; // +2% armor contribution from items meta-gem
		twoT7=0; //Your Rip lasts for an additional 4 seconds, and your Lacerate deals an additional 5% damage.
		fourT7=0; // Increases the duration of Barkskin by 3 seconds.
		twoT8=0; //chance of clearcasting with dots;
		fourT8=0; //+8 sec to SR and SI
		twoT9=1; //Your rake last 3 additional seconds.
		fourT9=0; //+5% crit on rip and FB, -12 sec on berserk
		IDOL_PA=0;
		IDOL_WS=0; //+21 to rip
		IDOL_SHRED=0;
		IDOL_MUT=1;
		
		//-------------Trinket declaration--------------------
		
		/*
		//Comet's Trall
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=726;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		 */
		 
		
		//Banner of Victory
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=0;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=1008;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		
		 
		/*
		//Grim Toll
		trinket1.cd=45*100;
		trinket1.duration=10*100;
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket1.haste_rating=0;
		trinket1.crit_rating=0;
		trinket1.hit_rating=0;
		trinket1.expertise_rating=0;
		trinket1.armor_pen_rating=612;
		trinket1.agi=0;
		trinket1.str=0;
		trinket1.attack_power=0;
		trinket1.wep_dmg=0;
		trinket1.defense_rating=0;
		trinket1.dodge_rating=0;
		trinket1.myarmor=0;
		trinket1.armor_bonus=0;
		trinket1.stamina=0;
		trinket1.bonus_hp=0;
		trinket1.magic_damage=0;	
		trinket1.proc_chance_on_crit=0;
		trinket1.proc_chance_on_hit=0.15;
		trinket1.proc_chance_on_hit_bear=0.15;
		trinket1.proc_chance_on_dot=0;
		trinket1.proc_chance_on_stuck=0;
		trinket1.stack=1;
		trinket1.speed=0;
		trinket1.on_use=0;
		*/
		
		/*
		 //Wrath Stone
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=856;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		/*
		 //Meteorite Whetstone
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=444;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Dark Matter
		 trinket1.cd=45*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=612;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.15;
		 trinket1.proc_chance_on_hit_bear=0.15;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Blood of the Old God
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1284;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Pyrite Infuser
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=1234;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirror of Truth
		 trinket1.cd=50*100;
		 trinket1.duration=10*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=100;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0.10;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		 //Mirj
		 trinket2.cd=45*100;
		 trinket2.duration=10*100;
		 trinket2.cd_timer=0;
		 trinket2.duration_timer=0;
		 trinket2.up=0;
		 trinket2.haste_rating=0;
		 trinket2.crit_rating=0;
		 trinket2.hit_rating=0;
		 trinket2.expertise_rating=0;
		 trinket2.armor_pen_rating=665;
		 trinket2.agi=0;
		 trinket2.str=0;
		 trinket2.attack_power=0;
		 trinket2.wep_dmg=0;
		 trinket2.defense_rating=0;
		 trinket2.dodge_rating=0;
		 trinket2.myarmor=0;
		 trinket2.armor_bonus=0;
		 trinket2.stamina=0;
		 trinket2.bonus_hp=0;
		 trinket2.magic_damage=0;	
		 trinket2.proc_chance_on_crit=0;
		 trinket2.proc_chance_on_hit=0.15;
		 trinket2.proc_chance_on_hit_bear=0.15;
		 trinket2.proc_chance_on_dot=0;
		 trinket2.proc_chance_on_stuck=0;
		 trinket2.stack=1;
		 trinket2.speed=0;
		 trinket2.on_use=0;
		 */
		
		
		/*
		 //Greatness Agility
		 trinket1.cd=45*100;
		 trinket1.duration=15*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=0;
		 trinket1.agi=300;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0.35;
		 trinket1.proc_chance_on_hit_bear=0.35;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=0;
		 */
		
		/*
		//Greatness Agility
		trinket2.cd=45*100;
		trinket2.duration=15*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=300;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.35;
		trinket2.proc_chance_on_hit_bear=0.35;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		*/
		
		/*
		 //Incisor Fragment
		 trinket1.cd=120*100;
		 trinket1.duration=20*100;
		 trinket1.cd_timer=0;
		 trinket1.duration_timer=0;
		 trinket1.up=0;
		 trinket1.haste_rating=0;
		 trinket1.crit_rating=0;
		 trinket1.hit_rating=0;
		 trinket1.expertise_rating=0;
		 trinket1.armor_pen_rating=291;
		 trinket1.agi=0;
		 trinket1.str=0;
		 trinket1.attack_power=0;
		 trinket1.wep_dmg=0;
		 trinket1.defense_rating=0;
		 trinket1.dodge_rating=0;
		 trinket1.myarmor=0;
		 trinket1.armor_bonus=0;
		 trinket1.stamina=0;
		 trinket1.bonus_hp=0;
		 trinket1.magic_damage=0;	
		 trinket1.proc_chance_on_crit=0;
		 trinket1.proc_chance_on_hit=0;
		 trinket1.proc_chance_on_hit_bear=0;
		 trinket1.proc_chance_on_dot=0;
		 trinket1.proc_chance_on_stuck=0;
		 trinket1.stack=1;
		 trinket1.speed=0;
		 trinket1.on_use=1;
		 */
		
		//Death's Choice
		trinket2.cd=45*100;
		trinket2.duration=15*100;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		trinket2.haste_rating=0;
		trinket2.crit_rating=0;
		trinket2.hit_rating=0;
		trinket2.expertise_rating=0;
		trinket2.armor_pen_rating=0;
		trinket2.agi=510;
		trinket2.str=0;
		trinket2.attack_power=0;
		trinket2.wep_dmg=0;
		trinket2.defense_rating=0;
		trinket2.dodge_rating=0;
		trinket2.myarmor=0;
		trinket2.armor_bonus=0;
		trinket2.stamina=0;
		trinket2.bonus_hp=0;
		trinket2.magic_damage=0;	
		trinket2.proc_chance_on_crit=0;
		trinket2.proc_chance_on_hit=0.35;
		trinket2.proc_chance_on_hit_bear=0.35;
		trinket2.proc_chance_on_dot=0;
		trinket2.proc_chance_on_stuck=0;
		trinket2.stack=1;
		trinket2.speed=0;
		trinket2.on_use=0;
		
		/*
		 //Berserking
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=0;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=400;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=0.02;
		 wpn_enchant.proc_chance_on_hit_bear=0.05;
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 */
		
		
		
		/*
		//Mongoose
		wpn_enchant.cd=0;
		wpn_enchant.duration=15*100;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		wpn_enchant.haste_rating=0;
		wpn_enchant.crit_rating=0;
		wpn_enchant.hit_rating=0;
		wpn_enchant.expertise_rating=0;
		wpn_enchant.armor_pen_rating=0;
		wpn_enchant.agi=120;
		wpn_enchant.str=0;
		wpn_enchant.attack_power=0;
		wpn_enchant.wep_dmg=0;
		wpn_enchant.defense_rating=0;
		wpn_enchant.dodge_rating=0;
		wpn_enchant.myarmor=-0;
		wpn_enchant.armor_bonus=0;
		wpn_enchant.stamina=0;
		wpn_enchant.bonus_hp=0;
		wpn_enchant.magic_damage=0;	
		wpn_enchant.proc_chance_on_crit=0;
		wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		wpn_enchant.proc_chance_on_dot=0;
		wpn_enchant.proc_chance_on_stuck=0;
		wpn_enchant.stack=1;
		wpn_enchant.speed=0.02;
		wpn_enchant.on_use=0;
		*/
		
		
		 //Executioner
		 wpn_enchant.cd=0;
		 wpn_enchant.duration=15*100;
		 wpn_enchant.cd_timer=0;
		 wpn_enchant.duration_timer=0;
		 wpn_enchant.up=0;
		 wpn_enchant.haste_rating=0;
		 wpn_enchant.crit_rating=0;
		 wpn_enchant.hit_rating=0;
		 wpn_enchant.expertise_rating=0;
		 wpn_enchant.armor_pen_rating=120;
		 wpn_enchant.agi=0;
		 wpn_enchant.str=0;
		 wpn_enchant.attack_power=0;
		 wpn_enchant.wep_dmg=0;
		 wpn_enchant.defense_rating=0;
		 wpn_enchant.dodge_rating=0;
		 wpn_enchant.myarmor=-0;
		 wpn_enchant.armor_bonus=0;
		 wpn_enchant.stamina=0;
		 wpn_enchant.bonus_hp=0;
		 wpn_enchant.magic_damage=0;	
		 wpn_enchant.proc_chance_on_crit=0;
		 wpn_enchant.proc_chance_on_hit=(1.0/60.0);
		 wpn_enchant.proc_chance_on_hit_bear=(2.5/60.0);
		 wpn_enchant.proc_chance_on_dot=0;
		 wpn_enchant.proc_chance_on_stuck=0;
		 wpn_enchant.stack=1;
		 wpn_enchant.speed=0;
		 wpn_enchant.on_use=0;
		 
		
	}
	
	
	if(talents==0){
		
		/*Talents*/
		
		ferocity_t = 5;//0; //ferocity 0-5
		s_att_t = 0; //shreding attack 0-2
		precision_t = 2; //precision 0-2
		fury_t = 2; //fury 0-2
		pistinct_t = 3; //predatory istinct 0-3
		impmangle_t= 0; //improved mangle 0-3
		ret_t = 5; // Rend & Tear 0-5
		mss_t = 0; // Master ShapeShifter 0-2
		sof_t=3; // Survival of the fitness 0-3
		naturalist_t=5; // Naturalist 0-5
		omen=1; //Omen of clarity
		koj_t=0; //King of the Jungle 0-3
		imow_t=2;
		hotw_t=5; //hearth of the wild 0-5

		
		feral_inst_t=3; //Feral Instinct 0-3
		th_t=3; //Thick Hide 0-3
		pop_t=3; //Protector of the Pack 0-3
		fw_t=2; //Feral Swiftness 0-2
		nr_t=3; //Natural Reaction 0-3
		pg=1; //ptimal gore 0-1
		
		m_g=0; //set to 1 if you have the mangle glyph, 0 otherwise.
		rip_g=0; //set to 1 if you have rip glyph, 0 otherwise.
		berserk_g=0; //set to 1 with berserk glyph.
		surv_g=1;
		sr_g=0; //set to 1 for sr glyph.
		shred_g=0; //set to 1 for shred glyph

	}
	
	
	//--------------Other goodies---------------------------------
	
	//Racials & Base stats.
	double base_crit = 0.07476+0.05+0.06; // Base crit chance + Leader of the Pack + Sharpened Claws.
	double base_dodge = 0.04951; //Base dodge.
	double NE=1; //turn to 0 if you are a tauren
	double base_agi = 87; //Base agility NightElf Value
	
	
	//Glyphs
	int mangle_glyph=6; //increase duration of mangle debuff by 6 seconds.
	int rip_glyph=4; //Increse duration of rip by 3 seconds, additional damage not yet implemented.
	double sr_glyph=0.03; //increase vavage roar effect by 3%
	int berserk_glyph=5; //increase berserk time by 5 sec
	int shred_glyph=2; //increase rip duration by 2 seconds.
	int max_shred=3; //maximum number of rip increase.
	double surv_glyph=0.15; //extra health by survival instinct glyph
	
	
	
	
	//Boss Stats---------------------------------------
	double barmor=10643; //boss base armor: 10643 high armored bosses
	/*Base Combat Table*/
	double bmiss=0.08; /*Base miss chance vs lvl 83 mobs*/
	double bm_miss=0.017; /*Base spell miss chance vs lvl 83 mobs*/
	double bdodge=0.065; /*Base dodge chance of a lvl 83 mobs*/
	double bparry=0.14; /*Supposed boss parry chance is 15%*/
	double bglance=0.24; /*Glancing Blow Chance, afflicts only white attacks*/
	double glance_red=0.77; //glancing damage multiplier
	double bcrit_red=0.048; //Crit reduction against bosses (melee)
	double bm_crit_red=0.021; // Crit reduction against bosses (spell)
	double dodge_red=0.006; //Tank dodge reduction vs. a boss.
	
	
	
	//Raid buffs--------------------------------------------
	
	
	int wf_haste=20; //+20% haste by windfury
	int wf=1; // set to 1 if there is windfury, set to 0 otherwise.
	int moonkin_haste=2;
	int moonkin=1;
	
	int bloodlust=1;
	int bloodlust_haste=30;
	int bloodlust_cd=60000;
	int bloodlust_cd_timer=4000;
	int bloodlust_timer=0;
	int bloodlust_up=0;
	
	
	int inspiration=1; //+25% armor for 15 sec.
	int inspiration_up=0; //will turn to 1 if inspiration procs
	double inspiration_proc_chance=0.3; //inspiration proc chance for each second.
	unsigned long int inspiration_uptime=0; //to compute inspiration uptime
	int inspiration_timer=0;
	
	
	int BOK=1; //Blessing of Kings
	int TSA=1; //True shoot aura
	int BS=1; //Battle Shout
	int BOW=1;//Blessing of Wisdom
	int SOE=1; //strenght of earth totem
	int MOW=1; // mark of the wild
	int AI=1; //Arcane Intellect
	int DS=1; //Divine Spirit
	int RA=1; //Retribution Aura
	int TOW=1; //Totem of Wrath
	int INSECT=1; //Insect Swarm
	int FORTITUDO=1; // Powerword Fortitudo
	int BATTERY=1; //Replenish mana battery.
	int CS=1; //Commanding Shout
	int SANCTUARY=1; //Blessing of sanctuary +3% dmg reduction
	int DA=1; // devotion aura
	int Draneo=0; // 1% chance to hit due to draneo in party.
	int Spriest=1; // 3% chance to spell hit due to shadow priest or moonkin debuff.
	int mkin_aura=1; //+5% chance to crit with spells.
	int scorch=1; //+5% chance to crit with spells.
	int BF=1; // +4% damage due to Blood Frenzy
	
	int FF=1; //Using fairie fire
	int SA=1; //using 5 sunder armor
	
	int DemoR=1; //Using Demoralizing Roar/Shout (11.4% damage reduction)
	int IW=1; //Using Infected Wound, Thunderclap, etc.. (-20% boss attack speed)
	
	double surv_cd=180;
	double surv_duration=20+fourT8*8;
	
	int is_hitted=0;
	int is_critted=0;
	int is_stuck=0;
	int is_dotted=0;
	
	//Setting Initial Value for the simulation----------------------------------------
	
	
	/*RNG seed*/
	MTRand_closed randnum((unsigned)time(0));	
	
	/*Standard Value*/
	double base_paw=54.857+wep_dmg; /*Base Paw Damage*/
	
	/*Haste*/
	double haste=1.3*haste_rating/32.78998947/100; //Round the value. Value in 1/100 of seconds.
	
	


	
	
	double dps_vector[sample_fight];
	double boss_vector[sample_fight];
	double real_hp_bear_vector[sample_fight];
	int damage_step_vector[100];
	int damage_step_value_vector[100];
	int real_hp_bear_step_vector[100];
	int real_hp_bear_step_value_vector[100];
	double damage_step_cumulative_vector[100];
	double real_hp_bear_step_cumulative_vector[100];
	double damage_step_dispersion_vector[100];
	double dps_value_matrix[10][10][10][10][10];
	for(int l=0;l<10;l++){
		for(int m=0;m<10;m++){
			for(int n=0;n<10;n++){
				for(int o=0;o<10;o++){
					for(int q=0;q<10;q++){
						
						dps_value_matrix[l][m][n][o][q]=0;
					}
				}
			}
		}
	}


	
	double dmg=0; //damage
	double wdamage=0; //white damage
	double wdamage_sr=0;
	double ydamage=0; //yellow damage
	double damage2=0;
	double wdamage2=0;
	double ydamage2=0;
	double damagemax=0;
	double damagemin=1.e30;
	double realhpbearmax=0;
	double realhpbearmin=1.e30;
	double mangle_damage_tot=0;
	double shred_damage_tot=0;
	double rip_damage_tot=0;
	double fb_damage_tot=0;
	double rake_damage_tot=0;
	double mangle_damage_tot2=0;
	double shred_damage_tot2=0;
	double rip_damage_tot2=0;
	double fb_damage_tot2=0;
	double rake_damage_tot2=0;
	double wdamage_sr2=0;
	double wbdamage=0;
	double wbdamage2=0;
	double mangleb_damage=0;
	double mangleb_damage2=0;
	double maul_damage=0;
	double maul_damage2=0;
	double lacerate_damage=0;
	double lacerate_damage2=0;
	double swipe_damage=0;
	double swipe_damage2=0;
	double bear_damage=0;
	double bear_damage2=0;
	double FeralFairieFire_damage=0;
	double FeralFairieFire_damage2=0;
	double ybdamage=0;
	double ybdamage2=0;
	
	int shrednum=0;
	double shredxcycle=0;
	double avshred=0;
	int manglenum=0;
	double manglexcycle=0;
	double avmangle=0;
	int rakenum=0;
	double rakexcycle=0;
	double avrake=0;
	int fbnum=0;
	double fbxcycle=0;
	double avfb=0;
	int ripnum=0;
	double ripxcycle=0;
	double avrip=0;
	
	int manglebnum=0;
	double manglebxcycle=0;
	double avmangleb=0;
	int laceratenum=0;
	double laceratexcycle=0;
	double avlacerate=0;
	int maulnum=0;
	double maulxcycle=0;
	double avmaul=0;
	int swipenum=0;
	double swipexcycle=0;
	double avswipe=0;
	int FeralFairieFirenum=0;
	double FeralFairieFirexcycle=0;
	double avFeralFairieFire=0;
	
	int avgfbenergy=0;
	
	int shred_stack=0;
	int extfben = 0;

	
	
	
	double th_m=0.01+th_t*0.03;
	
	double naturalist_m=0.02*naturalist_t;
	double sof_m=0.02*sof_t;
	double sof_m3=0.11*sof_t;
	//double sof_m3=0.22*sof_t;
	double pop_m=0.04*pop_t;
	double pop_m2=0.02*pop_t;
	double fw_m=0.02*fw_t;
	double nr_m=0.02*nr_t;
	double imow_m=0.01*imow_t;
	
	
	//--------------Stats computing-------------------------
	
	agi=(int)((agi+SOE*178+MOW*52)*(1+BOK*0.1+imow_m)*(1+sof_m)); // Blessing of King + Strengh of Earth + Gift of the wild + Survival of the fitness.
	str=(int)((str+SOE*178+MOW*52)*(1+BOK*0.1+imow_m)*(1+sof_m)); // Blessing of King + Strengh of Earth + Gift of the wild + Survival of the fitness.
	spirit=(int)((1+BOK*0.1+imow_m)*(1+sof_m)*(spirit+DS*80+MOW*52)); //Blessing of king + Gift of the Wild + Divine Spirit + Survival of the fitness.
	intellect=(int)((1+BOK*0.1+imow_m)*(1+sof_m)*1.2*(intellect+AI*60+MOW*52)); //Blessing of king + Gift of the Wild + Arcane Intellect + Survival of the fitness.
	stamina=(int)((1+BOK*0.1+imow_m)*(1+sof_m)*(stamina+MOW*52+215*FORTITUDO)); //Blessing of king + Gift of the Wild + Power Word: Fortitudo + Survival of the fitness.
	
	trinket1.agi=(int)(trinket1.agi*(1+BOK*0.1+imow_m)*(1+sof_m));
	trinket1.str=(int)(trinket1.str*(1+BOK*0.1+imow_m)*(1+sof_m));
	trinket1.stamina=(int)(trinket1.stamina*(1+BOK*0.1+imow_m)*(1+sof_m));	
	trinket1.haste=1.3*trinket1.haste_rating/32.78998947/100;
	
	trinket2.agi=(int)(trinket2.agi*(1+BOK*0.1+imow_m)*(1+sof_m));
	trinket2.str=(int)(trinket2.str*(1+BOK*0.1+imow_m)*(1+sof_m));
	trinket2.stamina=(int)(trinket2.stamina*(1+BOK*0.1+imow_m)*(1+sof_m));	
	trinket2.haste=1.3*trinket2.haste_rating/32.78998947/100;
	
	wpn_enchant.agi=(int)(wpn_enchant.agi*(1+BOK*0.1+imow_m)*(1+sof_m));
	wpn_enchant.str=(int)(wpn_enchant.str*(1+BOK*0.1+imow_m)*(1+sof_m));
	wpn_enchant.stamina=(int)(wpn_enchant.stamina*(1+BOK*0.1+imow_m)*(1+sof_m));	
	wpn_enchant.haste=1.3*wpn_enchant.haste_rating/32.78998947/100;
	
	int speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
	
	/*compute talent modifier to ability*/
	
	double ferocity_m = 0.03*ferocity_t;
	double ferocity_m2 = 0.00912*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.01+0.03*pistinct_t;
	int impmangle_m=2*impmangle_t;
	double ret_m1 = 0.04*ret_t;
	double ret_m2 = 0.05*ret_t;
	double mss_m = 0.02*mss_t;
	int koj_m1=20*koj_t;
	double koj_m2=0.05*koj_t;
	
	int s_att_m2=2*s_att_t;
	double impmangle_m2=0.5*impmangle_t;
	double feral_inst_m=0.1*feral_inst_t;
	double hotw_m1=0.02*hotw_t; //cat ap multiplier due t Hearth of the Wild
	double hotw_m2=0.02*hotw_t; //bear stam multiplier due t Hearth of the Wild

	
	
	
	/*Base Stats*/
	int apbase=(120+140+(attack_power+feral_ap*1.2+688*BS)+(agi+2*str))*(1+hotw_m1)*(1+TSA*0.1); /*Attack Power*/
	trinket1.apbase=(trinket1.attack_power+trinket1.agi+2*trinket1.str)*(1+hotw_m1)*(1+TSA*0.1);
	trinket2.apbase=(trinket2.attack_power+trinket2.agi+2*trinket2.str)*(1+hotw_m1)*(1+TSA*0.1);
	wpn_enchant.apbase=(wpn_enchant.attack_power+wpn_enchant.agi+2*wpn_enchant.str)*(1+hotw_m1)*(1+TSA*0.1);
	double mana=(double)((int)(3430+intellect*10)); /*Mana*/
	double mp5= BOW*91+0.0125*mana*BATTERY; // Blessing of Wisdom + 1 mana battery
	double shifting_cost=(int)(3430*0.35*0.70); //base mana + shifting cost + talents
	double mp5_out=mp5+((0.001+spirit*0.005575*(sqrt(intellect)))*5); /*Mana regeneration*/
	double mp5_in=mp5; /*Mana regeneration*/
	
	
	double bcrit=base_crit+(crit_rating/45.90598679/100) + (agi/83.33333333/100) +mss_m +TOW*0.03; /*Critical hit chance with Master Shapeshifter*/
	trinket1.crit=(trinket1.crit_rating/45.90598679/100) + (trinket1.agi/83.33333333/100);
	trinket2.crit=(trinket2.crit_rating/45.90598679/100) + (trinket2.agi/83.33333333/100);
	wpn_enchant.crit=(wpn_enchant.crit_rating/45.90598679/100) + (wpn_enchant.agi/83.33333333/100);

	double bm_crit=0.02+ (intellect/166.6666709/100)+(crit_rating/45.90598679/100)+TOW*0.03+scorch*0.05+mkin_aura*0.05; /*Critical hit chance with spellsr*/
	trinket1.m_crit=(trinket1.intellect/166.6666709/100)+(trinket1.crit_rating/45.90598679/100);
	trinket2.m_crit=(trinket2.intellect/166.6666709/100)+(trinket2.crit_rating/45.90598679/100);
	wpn_enchant.m_crit=(wpn_enchant.intellect/166.6666709/100)+(wpn_enchant.crit_rating/45.90598679/100);
	double hit=(hit_rating / 32.78998947 / 100); /*Hit percent*/
	trinket1.hit=(trinket1.hit_rating / 32.78998947 / 100);
	trinket2.hit=(trinket2.hit_rating / 32.78998947 / 100);
	wpn_enchant.hit=(wpn_enchant.hit_rating / 32.78998947 / 100);
	
	double m_hit=(hit_rating / 26.23199272 / 100); /*Hit percent*/
	trinket1.m_hit=(trinket1.hit_rating / 26.23199272 / 100);
	trinket2.m_hit=(trinket2.hit_rating / 26.23199272 / 100);
	wpn_enchant.m_hit=(wpn_enchant.hit_rating / 26.23199272 / 100);

	double expertise=precision_m1+(4*(expertise_rating / 32.78998947)); /*Expertise value*/
	trinket1.expertise=(4*(trinket1.expertise_rating / 32.78998947));
	trinket2.expertise=(4*(trinket2.expertise_rating / 32.78998947));
	wpn_enchant.expertise=(4*(wpn_enchant.expertise_rating / 32.78998947));

	double weapon=base_paw; /*Weapon*/
	double dumb_armor=barmor;
	double oom2=0;
	
	double armor_pen=1.25*(armor_pen_rating/(100*15.3952999));  //Arpen cap = 1232 Arpen
	trinket1.armor_pen=1.25*(trinket1.armor_pen_rating/(100*15.3952999));
	trinket2.armor_pen=1.25*(trinket2.armor_pen_rating/(100*15.3952999));
	wpn_enchant.armor_pen=1.25*(wpn_enchant.armor_pen_rating/(100*15.3952999));

	double arpen_cap=(((1-FF*0.05)*(1-SA*0.2))*barmor+15232.5)/3;
	if ((((1-FF*0.05)*(1-SA*0.2))*barmor) < arpen_cap){
		arpen_cap=(((1-FF*0.05)*(1-SA*0.2))*barmor);
	}
	double eff_arpen=armor_pen+trinket1.armor_pen*trinket1.up+trinket2.armor_pen*trinket2.up+wpn_enchant.armor_pen*wpn_enchant.up;
	if (eff_arpen>1){
		eff_arpen=1;
	}
	double armor=barmor*((1-FF*0.05)*(1-SA*0.2))-(eff_arpen)*arpen_cap;
	
	double red=1-(15232.5 / (armor + 15232.5)); /*Boss damage reduction based on boss armor*/
	
	//cout << mana << endl;
	
	
	/*Initial values and timers*/
	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=100; //initial energy
	int cp=sr_t; //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=0; //dumb variable with the attack roll value
	double damage=0; //total damage
	double bdebuff=0; //bleed debuff switch
	int bdebuff_timer=0; //bleed debuff timer
	int rip_timer=0; //rip timer
	int rake_timer=0;
	double ooc_rate=3.5/60; // Omen of clarity proc chanche (5.83%)
	double twoT8_rate=0.02;
	double ooc_bear_rate=3.5*2.5/60; // Omen of clarity proc chanche (bear, 14.58%)
	int ooc_proc=0; // omen of clarity switch (1 = proccing)
	int koj_timer=0; // tiger fury timer
	int koj_cd=30-3*fourT7; // tiger fury cooldown
	int koj_step=6; // tiger fury timer
	double koj_damage=80.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
	unsigned long int sr_up=0; //Savage Roar Up-Time
	int cycle=cat_bear; //ability switch
	int cycle_time=0; //cycle time counter
	int outfivesec=0;
	int bmana=mana; //initial mana value
	int rage_tot=0; //total rage
	int bark_up=0; //barkskin up or down
	int bark_time=12+3*fourT7; //barkskin uptime
	int bark_cd=60-12*fourT9; //barkskin cd
	int bark_timer=0; //barkskin timer
	int bark_cd_timer=0; //barkskin timer
	double bark_red=0.2; //barkskin damage reduction = 20%


	
	int ap_rip=ap;
	int ap_rake=ap;
	int cp_rip=cp;
	int rem=0;
	int lem=0;
	int rkem=0;
	
	int mang_rip=0;
	
	
	int l_stack=0;
	int l_timer=0;
	int l_counter=0;
	int l_cd=15;
	int enrage_cd=60;
	int enrage_step=10; //+20 rage over 10 seconds.
	int enrage_timer=0;
	int enrage_buff=0;
	int enraged_l=0;
	double enrage_mod=koj_m2;
	
	double threat=0;
	double threat2=0;
	int lacerate_aggro=1031;
	double lacerate_aggro_mod=0.5;
	int maul_aggro=424;
	double mangleb_aggro_mod=1.0;
	double bear_aggro_mod=2.071428571;
	double cat_aggro_mod=0.71;
	double swipe_aggro_mod=1.5;
	int FeralFairieFire_aggro_mod=632;
	
	double bmangle_cd=(6-impmangle_m2);
	int shield_up=0;
	
	
	//Modified combat table white damage-----------------------------------
	
	double wglance=bglance;
	double parry=bparry*(1-BEHIND);
	ap=apbase+trinket1.apbase*trinket1.up+trinket2.apbase*trinket2.up+wpn_enchant.apbase*wpn_enchant.up;
	/*Miss*/
	 bmiss=bmiss-Draneo*0.01;
	 bm_miss=bm_miss-(Draneo*0.01+Spriest*0.03);
	bcrit-=bcrit_red;
	bm_crit-=bm_crit_red;
	
	
	double miss=bmiss-hit-trinket1.hit*trinket1.up-trinket2.hit*trinket2.up-wpn_enchant.hit*wpn_enchant.up;
	if(miss<0){
		miss=0;
	}
	
	double m_miss=bm_miss-m_hit-trinket1.m_hit*trinket1.up-trinket2.m_hit*trinket2.up-wpn_enchant.m_hit*wpn_enchant.up;
	if(m_miss<0){
		m_miss=0;
	}
	
	double dodge=bdodge-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025;
	if(dodge<0){
		dodge=0;
	}
	
	parry=(bparry-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025)*(1-BEHIND);
	if(parry<0){
		parry=0;
	}
	
	
	double crit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;

	double wcrit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
	double m_crit=bm_crit+trinket1.m_crit*trinket1.up+trinket2.m_crit*trinket2.up+wpn_enchant.m_crit*wpn_enchant.up;

	double wmiss=miss+dodge+parry;
	double wnhit=1-bcrit-wmiss-wglance;
	if(wnhit<=0){
		wnhit=0;
	}
	

	
	/*Modified combat table yellow damage, 2 roll system pre-calculated to avoid using 2 RNG*/
	double ymiss=miss+dodge+parry;
	double yhitted=1-ymiss;
	double ycrit=yhitted*(bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up);
	double yhit=yhitted-ycrit;
	
	double m_ymiss=m_miss;
	double m_yhitted=1-m_ymiss;
	double m_ycrit=m_yhitted*m_crit;
	double m_yhit=m_yhitted-m_ycrit;
	
	
	//Ability damage----------------------------------------
	
	attack paw, mangle, shred, rake, rip, fb;
	/*paw*/
	paw.energy=0;
	paw.adamage=(1-red)*(ap/14)*(1+naturalist_m);
	paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
	paw.acritdamage=paw.adamage*2*(1+pistinct_m)*(1+META*0.03);
	paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
	paw.miss=wmiss;
	paw.hit=wnhit;
	paw.crit=wcrit;
	paw.glance=wglance;
	
	//cout << 1.02*(paw.adamage+paw.bdamage) << endl;
	//cout << 1.02*(paw.acritdamage+paw.bcritdamage) << endl;
	
	//mangle
	mangle.energy=40-impmangle_m;
	mangle.adamage=(1-red)*((ap/14)*2.0)*(1+fury_m)*(1+naturalist_m);
	mangle.acritdamage=mangle.adamage*2*(1+pistinct_m)*(1+META*0.03);
	mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
	mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
	mangle.miss=ymiss;
	mangle.crit=ycrit;
	mangle.hit=yhit;
	mangle.glance=0;
	
	//shred
	
	shred.energy=60-s_att_m;
	shred.adamage=(1-red)*((ap/14)*2.25)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
	shred.acritdamage=shred.adamage*2*(1+pistinct_m)*(1+META*0.03);
	shred.bdamage=(1-red)*((weapon)*2.25+666+IDOL_SHRED*203.0)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
	shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
	shred.miss=ymiss;
	shred.crit=ycrit;
	shred.hit=yhit;
	shred.glance=0;
	
	
	//rake
	
	rake.energy=35;
	rake.adamage=((ap*0.01))*(1+fury_m)*(1+naturalist_m);
	rake.acritdamage=(2*(1+pistinct_m)*(1+META*0.03)*((ap*0.01))*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
	rake.bdamage=(176)*(1+fury_m)*(1+naturalist_m);
	rake.bcritdamage=(2*(1+pistinct_m)*(1+META*0.03)*(176)*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
	rake.miss=ymiss;
	rake.crit=ycrit;
	rake.hit=yhit;	
	shred.glance=0;
	
	
	
	//RIP
	rip.energy=30;
	rip.adamage=((ap)*0.01*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
	rip.acritdamage=rip.adamage;
	rip.bdamage=(36+IDOL_WS*cp*21.0+93*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
	rip.bcritdamage=rip.bdamage;
	rip.crit=0;
	rip.hit=yhitted;
	rip.miss=ymiss;
	rip.glance=0;
	
	
	
	//fb
	
	fb.energy=35;
	fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
	fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
	fb.bdamage=(1-red)*(190+290*cp+(9.4)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
	fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
	
	fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9));
	fb.hit=yhitted-fb.crit;
	
	if((crit+(ret_m2+0.05*fourT9))>=1){
		fb.crit=yhitted;
		fb.hit=0;
	}
	
	fb.miss=ymiss;
	fb.glance=0;
	
	//Savage Roar
	int sr_energy=25;
	double src=0.30+sr_g*sr_glyph; //Savage Roar Coefficient	
	
	
	int 	wait_energy=mangle.energy+(shred.energy-(shred.energy-rake.energy)*rk)+sr_energy-20-2*((int)(lag/10.0));//initial energy
	
	/*Bear Attacks*/
	int ap_bear=(120+240+(attack_power+feral_ap*1.2+688*BS)+(2*str))*(1+TSA*0.1)*(1+pop_m2);
	int shield_value=(int)(ap_bear*0.25);
	//shield_value=0;
	//cout << ap_bear << endl;
	double hit_factor=3.5;
	double hit_factor_c=7;
	double rage_conv=0.0091107836*80*80 +3.225598133*80+4.2652911;
	int claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed

	bearattack mangleb, maul, swipe, lacerate, claw, FeralFairieFire;
	
	wcrit-=mss_m;
	mangleb.rage=15;
	mangleb.ragec=10;
	mangleb.adamage=(1-red)*((ap_bear/14)*2.5*1.15)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
	mangleb.acritdamage=mangleb.adamage*2*(1+META*0.03);
	mangleb.bdamage=(1-red)*((weapon)*2.5*1.15+299)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
	mangleb.bcritdamage=mangleb.bdamage*2*(1+META*0.03);
	mangleb.miss=ymiss;
	mangleb.crit=ycrit;
	mangleb.hit=yhit;
	mangleb.glance=0;
	
	////cout << mangleb.adamage+mangleb.bdamage << endl;
	////cout << mangleb.acritdamage+mangleb.bcritdamage << endl;
	
	maul.rage=10;
	maul.ragec=5;
	maul.adamage=(1-red)*((ap_bear/14)*2.5)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
	maul.acritdamage=maul.adamage*2*(1+META*0.03);
	maul.bdamage=(1-red)*((weapon)*2.5+578+120*IDOL_PA)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
	maul.bcritdamage=maul.bdamage*2*(1+META*0.03);
	maul.miss=ymiss;
	maul.crit=ycrit;
	maul.hit=yhit;
	maul.glance=0;
	
	////cout << maul.adamage+maul.bdamage << endl;
	////cout << maul.acritdamage+maul.bcritdamage << endl;
	
	swipe.rage=15;
	swipe.ragec=10;
	swipe.adamage=(1-red)*(ap_bear*0.063)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
	swipe.acritdamage=swipe.adamage*2*(1+META*0.03);
	swipe.bdamage=(1-red)*(108+24*IDOL_PA)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
	swipe.bcritdamage=swipe.bdamage*2*(1+META*0.03);
	swipe.miss=ymiss;
	swipe.crit=ycrit;
	swipe.hit=yhit;
	swipe.glance=0;
	
	////cout << swipe.adamage+swipe.bdamage << endl;
	////cout << swipe.acritdamage+swipe.bcritdamage << endl;
	////l_stack=1;
	
	lacerate.rage=15-s_att_m2;
	lacerate.ragec=10-s_att_m2;
	lacerate.adamage=(1+twoT7*0.05)*(ap_bear*0.05)*(1+naturalist_m)*(l_stack)*(1+mss_m);
	lacerate.acritdamage=lacerate.adamage;
	lacerate.bdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)+320*(1+naturalist_m)*(l_stack)*(1+mss_m);
	lacerate.bcritdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)*2*(1+META*0.03)*(1+mss_m)+320*(1+naturalist_m)*(1+mss_m)*(l_stack);
	lacerate.miss=ymiss;
	lacerate.crit=ycrit;
	lacerate.hit=yhit;
	lacerate.glance=0;
	
	////cout << lacerate.adamage+lacerate.bdamage << endl;
	////cout << lacerate.acritdamage+lacerate.bcritdamage << endl;
	
	claw.adamage=(1-red)*((ap_bear/14)*2.5)*(1+naturalist_m)*(1+mss_m);
	claw.acritdamage=claw.adamage*2*(1+META*0.03);
	claw.bdamage=(1-red)*((weapon)*2.5)*(1+naturalist_m)*(1+mss_m);
	claw.bcritdamage=claw.bdamage*2*(1+META*0.03);
	
	claw.rage=(int)(-(7.5*((claw.adamage+claw.bdamage)/rage_conv)+hit_factor*2.5)/2);
	claw.ragec=(int)(-(7.5*((claw.acritdamage+claw.bcritdamage)/rage_conv)+hit_factor_c*2.5+5)/2);
	
	claw.miss=wmiss;
	claw.hit=wnhit;
	claw.crit=wcrit;
	claw.glance=wglance;
	
	
	FeralFairieFire.rage=0;
	FeralFairieFire.ragec=-5;
	FeralFairieFire.adamage=(ap_bear*0.15)*(1+naturalist_m)*(1+mss_m);
	FeralFairieFire.acritdamage=FeralFairieFire.adamage*1.5*(1+META*0.03);
	FeralFairieFire.bdamage=(1+naturalist_m)*(1+mss_m);
	FeralFairieFire.bcritdamage=FeralFairieFire.bdamage*1.5*(1+META*0.03);
	FeralFairieFire.miss=m_ymiss;
	FeralFairieFire.crit=m_ycrit;
	FeralFairieFire.hit=m_yhit;
	FeralFairieFire.glance=0;
	
	
	////cout << claw_speed << endl;
	////cout << rage_conv << endl;
	////cout << claw.rage << endl;
	////cout << claw.ragec << endl;
	
	////cout << claw.adamage+claw.bdamage << endl;
	////cout << claw.acritdamage+claw.bcritdamage << endl;
	
	
	infinite_rage=infinite_rage*(1-cat_bear);
	
	
	
	/*Defencive stats*/
	int myarmor_caster=2*agi+myarmor*(1+0.02*META_ARMOR)+armor_bonus+DA*1015+MOW*1050;
	int myarmor_bear=2*agi+myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus+DA*1015+MOW*1050;
	double defense=400+(double)((int)(defense_rating/4.918498039));
	double dodge_app_base_agi= (base_agi/41.66666667);
	double dodge_app = (dodge_rating/39.34798813) +((defense-400)/25) + ((agi-base_agi)/41.66666667);;
	double dodge_fact = 116.890707;
	double miss_fact=16.0;
	double miss_app= ((defense-400)/25);
	double miss_from_rat = (1/( 1/miss_fact + 0.972/miss_app));
	double dodge_from_rat= dodge_app_base_agi + (1/( 1/dodge_fact + 0.972/dodge_app));
	double mydodge=-dodge_red+base_dodge+0.01*(dodge_from_rat)+fw_m;
	double mydodge_bear=-dodge_red+base_dodge+0.01*(dodge_from_rat)+fw_m+nr_m;
	double mymiss=miss_from_rat*0.01+0.02*NE+0.03*INSECT+0.044-dodge_red;
	double tobecrit=0.056-((defense-400)/25)-sof_m;
	if(tobecrit<=0){
		tobecrit=0;
	}
	double mydr= 1-(1-0.03*SANCTUARY)*(1-(((myarmor_caster / (myarmor_caster + 400 + 85 * (83 + 4.5 * (83 - 59)))))+(((myarmor_caster) / ((myarmor_caster) + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
	double mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
	int myhp_caster=mybasehp+10*stamina+CS*2818+bonus_hp;
	int myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp;
	double avoidance=mymiss+mydodge;
	double avoidance_bear=mymiss+mydodge_bear;
	
	
	//int ripvsfb=0;
	mdebuff=1;
	sr=1;
	cp=5;
	
	double Fb_damage = 0;
	double fbextra_damage=0;
	double rip_damagextick = 0;
	//double shredMODIF_damage = shred.hit*((1+RA*0.03)*(1+BF*0.04)*(shred.adamage*(1+sr*src+src)+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff))+shred.crit*((1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)*(1+sr*src+src)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff));
	//double shredMODIF_damage = shred.hit*((1+RA*0.03)*(1+BF*0.04)*(shred.adamage*(1+sr*src)+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff))+shred.crit*((1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)*(1+sr*src)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff));
	double shredMODIF_damage = 0;
	double avg_cp[6];
	double cp_to_cycle=0;
	double tick_num_FB=0;
	double max_rip_downtime=0;
	double energy_x_sec=0;
	double combovsfb_time[2];
	double srvsfb_time[2];
	double ripvsfb_time[2];


	if(cat_bear==1){
		/*Ferocious Bite vs. RIP*/
		
		
		
		//cout << endl << endl <<  "Ferocious Bite vs RIP, mob IS BLEEDING" << endl << endl;
		
		bdebuff=1;
		
		fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9)*bdebuff);
		fb.hit=yhitted-fb.crit;
		
		if((crit+(ret_m2+0.05*fourT9)*bdebuff)>=1){
			fb.crit=yhitted;
			fb.hit=0;
		}
		fb.adamage=(1+sr*src)*(1-red)*(0.07*ap*cp)*(1+naturalist_m)*(1+ferocity_m);
		fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
		fb.bdamage=(1+sr*src)*(1-red)*(190+290*cp)*(1+naturalist_m)*(1+ferocity_m);
		fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);		
		Fb_damage = (1+RA*0.03)*(1+BF*0.04)*(fb.hit*(fb.adamage+fb.bdamage)+fb.crit*(fb.acritdamage+fb.bcritdamage));
		 fbextra_damage=(1+sr*src)*((1-red)*(1+RA*0.03)*(1+BF*0.04)*(fb.hit*((ap*0.002439)+(9.4))+fb.crit*(((ap*0.002439)+(9.4)))*2*(1+pistinct_m)*(1+META*0.03))*(1+naturalist_m)*(1+ferocity_m));
		 rip_damagextick = (1-(wcrit+0.05*fourT9)*pg)*(1+sr*src)*((1+RA*0.03)*(1+BF*0.04)*((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))+(wcrit+0.05*fourT9)*pg*(1+sr*src)*((1+RA*0.03)*(1+BF*0.04)*((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
		shredMODIF_damage = (1+sr*src)*(shred.hit*((1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1)*(1+0.3))+shred.crit*((1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1)*(1+0.3)));
		
		avg_cp[5]=(1/(shred.crit+shred.hit))*((5*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+4*4*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+5*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*shred.crit*shred.crit*(1-shred.crit)+3*shred.crit*shred.crit*shred.crit+3*4*shred.crit*shred.crit*(1-shred.crit)*(1-shred.crit)));
		//cout<<endl<<avg_cp[5]<<endl<<endl;
		avg_cp[4]=(1/(shred.crit+shred.hit))*(4*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*(1-shred.crit)*(1-shred.crit)*shred.crit+3*2*(1-shred.crit)*(shred.crit)*shred.crit+2*(shred.crit)*shred.crit);
		//cout<<endl<<avg_cp[4]<<endl<<endl;
		avg_cp[3]=(1/(shred.crit+shred.hit))*(3*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+2*2*shred.crit*(1-shred.crit)+2*shred.crit*shred.crit+3*(1-shred.crit)*(1-shred.crit)*(shred.crit));
		//cout<<endl<<avg_cp[3]<<endl<<endl;
		 avg_cp[2]=(1/(shred.crit+shred.hit))*(2*(1-shred.crit)*(1-shred.crit)+2*(1-shred.crit)*shred.crit+shred.crit);
		//cout<<endl<<avg_cp[2]<<endl<<endl;
		 avg_cp[1]=(1/(shred.crit+shred.hit))*(1);
		//cout<<endl<<avg_cp[1]<<endl<<endl;
		
		
		tick_num_FB=(Fb_damage+5*fbextra_damage)/rip_damagextick;
		
		//cout<<endl<<tick_num_FB<<endl<<endl;
		
		cp_to_cycle=avg_cp[sr_t]+avg_cp[rip_t]; 
		//cout<<endl<<cp_to_cycle<<endl<<endl;
		 max_rip_downtime= tick_num_FB*2;
		energy_x_sec= (10*30)/30+ooc_rate*35/(speed/100.0)+twoT8*ooc_rate*35/(120.0/100.0);
		//cout<<endl<<energy_x_sec<<endl<<endl;
		combovsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec;
		if(combovsfb_time[0]<int(cp_to_cycle)+2){
			combovsfb_time[0]=int(cp_to_cycle)+2;
		}
		combovsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec-koj_m1/10.0;
		if(combovsfb_time[1]<int(cp_to_cycle)+2){
			combovsfb_time[1]=int(cp_to_cycle)+2;
		}
		//cout<<endl<<"RIP+SR: TF non disponibile: "<<combovsfb_time[0]<<", TF disponibile entro "<< combovsfb_time[0]<<" secondi: "<< combovsfb_time[1]<<endl<<endl;
		srvsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec);
		if(srvsfb_time[0]<int(avg_cp[sr_t])+1){
			srvsfb_time[0]=int(avg_cp[sr_t])+1;
		}
		srvsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec)-koj_m1/10.0;
		if(srvsfb_time[1]<int(avg_cp[sr_t])+1){
			srvsfb_time[1]=int(avg_cp[sr_t])+1;
		}
		//cout<<endl<<"SR: TF non disponibile: "<<srvsfb_time[0]<<", TF disponibile entro "<<srvsfb_time[0]<<" secondi: "<< srvsfb_time[1]<<endl<<endl;
		

		
		//cout << endl << endl;
	}
	
	int l,m,n,o,q;
	l=0;
	m=0;
	n=0;
	o=0;
	q=0;
	
	if(variable_space!=1){
		
	/*Agressive Stats after the buffs*/
	
	
	cout << endl<<endl<<endl<<"Aggressive Stats after all the buffs (full stacked raid + Bloodlust used 1 time in a 5 min fight)" << endl << "_______________________" << endl << endl;
	
	cout << "Cat (crit% vs. a boss (-4.8% added)): " << (crit)*100 << "%" << endl;
	cout << "Bear (crit% vs. a boss (-4.8% added)): " << (crit-mss_m)*100 <<"%" << endl;
	cout << "Cat (AP): " << apbase << endl;
	cout << "Bear (AP): " << ap_bear << endl;
	cout << "Agility: " << (int)agi << endl;
	cout << "Strengh: " << (int)str << endl;
	cout << "Intellect: " << (int)intellect << endl;
	cout << "Spirit: " << (int)spirit << endl;
	cout << "Mana: " << mana << endl;
	cout << "Average MP5 In combat: " << (int)mp5_in << ", Average MP5 out of combat: " << (int)mp5_out << endl;
	cout << "Expertise: " << (int)expertise << endl;
	cout << "Hit: " << hit*100 << "%"<< endl;
	cout << "Armor Penetration: " << armor_pen*100 << "%"<< endl;
	cout << "Haste (from equipment): " << haste*100 <<"%" << endl;
	cout << "+weapon damage: " << wep_dmg << endl;
	cout << "Shield value = " << shield_value  << endl;

	
	cout << endl << endl;
	
	cout << "Boss base Armor (before penetration and debuff): " << dumb_armor << endl;
	cout << "Boss modified Armor (after penetration and debuff): " << armor << endl;
	cout << "Boss Damage Reduction (after debuff and penetration): " << red*100 << "%" << endl;
	cout << "Weapon Speed Reduction % (Total without Bloodlust): " << 100-speed << "%" << endl;
	cout << "Missed % (Total): " << miss*100 << "%"<< endl;
	cout << "Dodged %: " << dodge*100 << "%" << endl;
	cout << "Not normalized attacks parried by the boss: " << parry*100 << "%" << endl;
       cout << "_____________________________________" << endl << endl << endl << endl;
	
	
	
	
	////Boss damage--------------------------------------
	
	double boss_swing=1.7; //Boss swing time in seconds	
	
	boss_swing=boss_swing*(1+0.2*IW); //taking Infected Wound into account

	
	bossattack melee, special1, special2, special3, special4;
	melee.damage=70000; //Boss swing damage
	
	melee.damage=melee.damage*(1-ferocity_m2-DemoR*0.114); //Demoralizing Roar effect

	melee.cd=boss_swing;
	melee.tick_numb=0;
	melee.tick_time=1;
	melee.bleed=0;
	melee.magic=0;
	
	melee.crit=tobecrit;
	melee.miss=avoidance_bear;
	melee.hit=1-melee.miss-melee.crit;
	
	if (melee.hit<=0){
		melee.hit=0;
	}
	
	special1.damage=70000; //Boss special damage total if istant or x tick if is a dot
	special1.cd=10; //boss physical special damage cooldown in seconds.
	special1.tick_numb=0; //set 0 if it's an istant or set to the total number of ticks otherwise
	special1.tick_time=1; // set to 1 if is an istant, set to the number of ticks otherwise
	special1.bleed=0; // set to 1 if it's a bleed.
	special1.magic=0; //set to 1 if it's magic.
	special1.crit=0;
	special1.miss=avoidance_bear; //miss chance of the ability
	special1.hit=1-special1.miss-special1.crit; //hit chance of the ability
	if (special1.hit<=0){
		special1.hit=0;
	}
	
	
	unsigned long int boss_hit=0;
	unsigned long int boss_crit=0;
	unsigned long int boss_parried=0;
	unsigned long int boss_miss=0;
	unsigned long int shielded=0;
	long double boss_damage=0;
	unsigned long int dead=0;
	int hp_shot=myhp_bear;
	int silence=5;
	
	
	silence=silence*100;
	
	att=randnum();

	
	////--------------------------------------------------------
	
	
	for(timer2=0; timer2<sample_fight;timer2++){
		
		
		
		if((100*timer2)%sample_fight==0){
			cout << (100*timer2)/sample_fight << "%" << endl;
		}
		
		int pws=powershift;
		
		dmg=0; //damage
		wdamage=0; //white damage
		wdamage_sr=0;
		ydamage=0; //yellow damage
		mangle_damage_tot=0;
		shred_damage_tot=0;
		rip_damage_tot=0;
		fb_damage_tot=0;
		rake_damage_tot=0;
		
		wbdamage=0;
		ybdamage=0;
		mangleb_damage=0;
		maul_damage=0;
		lacerate_damage=0;
		swipe_damage=0;
		FeralFairieFire_damage=0;
		bear_damage=0;
		boss_damage=0;
		
		shield_up=0;
		
		threat=0;
		
		int init_en=wait_energy;
		en=100-1;
		cp=0; //combo points
		cp_rip=0;
		ap_rip=ap;
		ap_rake=ap;
		mdebuff=manglebot; //mangle debuff switch
		mdebuff_timer=2*sim_time*manglebot; //mangle debuff timer
		mdebuff_cd=12+mangle_glyph*m_g; //mangle debuff initial timer value
		int FFF_cd=6; //FFF cooldown
		int FFF_step=0; //FFF time step
		att=0; //dumb variable with the attack roll value
		damage=0; //total damage
		bdebuff=bleeding; //bleed debuff switch
		bdebuff_timer=2*bleeding*sim_time; //bleed debuff timer
		rip_timer=-1; //rip timer
		rake_timer=-1;
		ooc_rate=0.058333; // Omen of clarity proc chanche (5.83%)
		twoT8_rate=0.02;
		ooc_proc=0; // omen of clarity switch (1 = proccing)
		koj_timer=0; // tiger fury timer
		koj_cd=30-3*fourT7; // tiger fury cooldown
		koj_step=6; // tiger fury timer
		koj_damage=80.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
		bark_timer=0; //barkskin up duration
		bark_cd_timer=0; //barkskin cd timer
		bark_up=0; // barkskin switch
		mana=bmana;
		int berserk=0;
		int berserk_cd=18000;
		int berserk_timer=0;
		int berserk_cd_timer=0;
		int berserk_duration=15+berserk_g*berserk_glyph;
		int fivesec=0;
		int oom=sim_time;
		int catbear=cat_bear; //0 for bear, 1 for cat
		rage_tot=0;
		if(cat_bear==0){
			rage_tot=10;
		}
		int bmangle_step=0; //keep track of bear mangle cooldown
		
		int swinger=0; //swing timer adjust between bear and cat form
		
		l_stack=0;
		l_timer=0;
		l_counter=-1;
		l_cd=15;
		enrage_cd=60;
		enrage_step=0; //+20 rage over 10 seconds.
		enrage_timer=0;
		enrage_buff=0;
		enraged_l=0;
		enrage_mod=koj_m2;
		int enraged=0;
		int bear_time=0;
		
		int mangleb_timer=0;
		
		bloodlust_cd_timer=2500+int(2500*randnum());
		bloodlust_timer=0;
		bloodlust_up=0;
		int sr_rake=0;
		int sr_rip=0;
		int shredder=0;

		
		cycle=cat_bear; //ability switch
		
		int boss_swinger=0; //the boss swinger.
		int parried=0;
		double wparried=wmiss-miss-dodge;
		double yparried=ymiss-miss-dodge;
		
		wparried=wparried/wmiss;
		yparried=yparried/ymiss;
		
		int boss_swing2=(int)(melee.cd*100);
		
		
			
		shred_stack=0;

		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		
		is_hitted=0;
		is_critted=0;
		is_stuck=0;
		is_dotted=0;
		
		int move_time_timer=0;
		int move_interval_timer=move_interval*100;
		
		int time_to_die_boss = 5000;
		int recompute_value=1;
		
		for(timer=0;timer<sim_time;timer++){
			
			if (is_hitted==1) {

				if((trinket1.proc_chance_on_hit>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;
					
				}
				if((trinket2.proc_chance_on_hit>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;

				}
				if((wpn_enchant.proc_chance_on_hit>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;

				}
				is_hitted=0;
			}
			
			if (is_critted==1) {
	
				if((trinket1.proc_chance_on_crit>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;

				}
				if((trinket2.proc_chance_on_crit>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;

				}
				if((wpn_enchant.proc_chance_on_crit>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;

				}
				is_critted=0;
			}

			if (is_dotted==1) {
				if(twoT8_rate*twoT8>randnum()){
					ooc_proc=1;
					
				}
				
				if((trinket1.proc_chance_on_dot>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;

				}
				if((trinket2.proc_chance_on_dot>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;

				}
				if((wpn_enchant.proc_chance_on_dot>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;

				}
				is_dotted=0;
			}

			if (is_stuck==1) {
				
				if((trinket1.proc_chance_on_stuck>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;

				}
				if((trinket2.proc_chance_on_stuck>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;

				}
				if((wpn_enchant.proc_chance_on_stuck>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;

				}
				is_stuck=0;
			}
			
			
				
			if((koj==1)&&(en>65)){
			if((trinket1.on_use==1)&&(trinket1.cd_timer<=0)){
				trinket1.cd_timer=trinket1.cd;
				trinket1.duration_timer=trinket1.duration;
				if(trinket1.up==0){
					trinket1.up=1;
				}
				else if(trinket1.up<trinket1.stack){
					trinket1.up+=1;
				}
				recompute_value=1;				
			}
			if((trinket2.on_use==1)&&(trinket2.cd_timer<=0)){
				trinket2.cd_timer=trinket2.cd;
				trinket2.duration_timer=trinket2.duration;
				if(trinket2.up==0){
					trinket2.up=1;
				}
				else if(trinket2.up<trinket2.stack){
					trinket2.up+=1;
				}
				recompute_value=1;
				
			}
			if((wpn_enchant.on_use==1)&&(wpn_enchant.cd_timer<=0)){
				wpn_enchant.cd_timer=wpn_enchant.cd;
				wpn_enchant.duration_timer=wpn_enchant.duration;
				if(wpn_enchant.up==0){
					wpn_enchant.up=1;
				}
				else if(wpn_enchant.up<wpn_enchant.stack){
					wpn_enchant.up+=1;
				}					
				recompute_value=1;
				
			}
			}
			 
			
			if((recompute_value==1)&&(variable_space!=1)) {	
				
		     claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
			speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed

				//Modified combat table white damage-----------------------------------
				
				 wglance=bglance;
				 parry=bparry*(1-BEHIND);

				
				ap=apbase+trinket1.apbase*trinket1.up+trinket2.apbase*trinket2.up+wpn_enchant.apbase*wpn_enchant.up;
				/*Miss*/
				
				
				miss=bmiss-hit-trinket1.hit*trinket1.up-trinket2.hit*trinket2.up-wpn_enchant.hit*wpn_enchant.up;
				if(miss<0){
					miss=0;
				}
				
				m_miss=bm_miss-m_hit-trinket1.m_hit*trinket1.up-trinket2.m_hit*trinket2.up-wpn_enchant.m_hit*wpn_enchant.up;
				if(m_miss<0){
					m_miss=0;
				}
				
				 dodge=bdodge-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025;
				if(dodge<0){
					dodge=0;
				}
				
				parry=(bparry-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025)*(1-BEHIND);
				if(parry<0){
					parry=0;
				}
				
				
				 crit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
				
				 wcrit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
				 m_crit=bm_crit+trinket1.m_crit*trinket1.up+trinket2.m_crit*trinket2.up+wpn_enchant.m_crit*wpn_enchant.up;
				
				 wmiss=miss+dodge+parry;
				 wnhit=1-bcrit-wmiss-wglance;
				if(wnhit<=0){
					wnhit=0;
				}
				
				/*Modified combat table yellow damage, 2 roll system pre-calculated to avoid using 2 RNG*/
				 ymiss=miss+dodge+parry;
				 yhitted=1-ymiss;
				 ycrit=yhitted*(bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up);
				 yhit=yhitted-ycrit;
				
				 m_ymiss=m_miss;
				 m_yhitted=1-m_ymiss;
				 m_ycrit=m_yhitted*m_crit;
				 m_yhit=m_yhitted-m_ycrit;
				
				//cout<<"Trinket " << timer << endl;
			armor=10643;
				 eff_arpen=armor_pen+trinket1.armor_pen*trinket1.up+trinket2.armor_pen*trinket2.up+wpn_enchant.armor_pen*wpn_enchant.up;
				if (eff_arpen>1){
					eff_arpen=1;
				}
			armor=armor*((1-FF*0.05)*(1-SA*0.2))-(eff_arpen)*arpen_cap;
			
			red=1-(15232.5 / (armor + 15232.5)); /*Boss damage reduction based on boss armor*/
				
				/*Bear Attacks*/
				 ap_bear=(120+240+(attack_power+feral_ap*1.2+688*BS)+(2*str))*(1+TSA*0.1)*(1+pop_m2)+((trinket1.attack_power+2*trinket1.str)*(1+hotw_m1)*(1+TSA*0.1))*trinket1.up+((trinket2.attack_power+2*trinket2.str)*(1+hotw_m1)*(1+TSA*0.1))*trinket2.up+((wpn_enchant.attack_power+2*wpn_enchant.str)*(1+hotw_m1)*(1+TSA*0.1))*wpn_enchant.up;
				 shield_value=(int)(ap_bear*0.25);
	
				mangleb.rage=15;
				mangleb.ragec=10;
				mangleb.adamage=(1-red)*((ap_bear/14)*2.5*1.15)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
				mangleb.acritdamage=mangleb.adamage*2*(1+META*0.03);
				mangleb.bdamage=(1-red)*((weapon)*2.5*1.15+299)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
				mangleb.bcritdamage=mangleb.bdamage*2*(1+META*0.03);
				mangleb.miss=ymiss;
				mangleb.crit=ycrit;
				mangleb.hit=yhit;
				mangleb.glance=0;
				
				////cout << mangleb.adamage+mangleb.bdamage << endl;
				////cout << mangleb.acritdamage+mangleb.bcritdamage << endl;
				
				maul.rage=10;
				maul.ragec=5;
				maul.adamage=(1-red)*((ap_bear/14)*2.5)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
				maul.acritdamage=maul.adamage*2*(1+META*0.03);
				maul.bdamage=(1-red)*((weapon)*2.5+578+120*IDOL_PA)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
				maul.bcritdamage=maul.bdamage*2*(1+META*0.03);
				maul.miss=ymiss;
				maul.crit=ycrit;
				maul.hit=yhit;
				maul.glance=0;
				
				////cout << maul.adamage+maul.bdamage << endl;
				////cout << maul.acritdamage+maul.bcritdamage << endl;
				
				swipe.rage=15;
				swipe.ragec=10;
				swipe.adamage=(1-red)*(ap_bear*0.063)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
				swipe.acritdamage=swipe.adamage*2*(1+META*0.03);
				swipe.bdamage=(1-red)*(108+24*IDOL_PA)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
				swipe.bcritdamage=swipe.bdamage*2*(1+META*0.03);
				swipe.miss=ymiss;
				swipe.crit=ycrit;
				swipe.hit=yhit;
				swipe.glance=0;
				
				////cout << swipe.adamage+swipe.bdamage << endl;
				////cout << swipe.acritdamage+swipe.bcritdamage << endl;
				////l_stack=1;
				
				lacerate.rage=15-s_att_m2;
				lacerate.ragec=10-s_att_m2;
				lacerate.adamage=(1+twoT7*0.05)*(ap_bear*0.05)*(1+naturalist_m)*(l_stack)*(1+mss_m);
				lacerate.acritdamage=lacerate.adamage;
				lacerate.bdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)+320*(1+naturalist_m)*(l_stack)*(1+mss_m);
				lacerate.bcritdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)*2*(1+META*0.03)*(1+mss_m)+320*(1+naturalist_m)*(1+mss_m)*(l_stack);
				lacerate.miss=ymiss;
				lacerate.crit=ycrit;
				lacerate.hit=yhit;
				lacerate.glance=0;
				
				////cout << lacerate.adamage+lacerate.bdamage << endl;
				////cout << lacerate.acritdamage+lacerate.bcritdamage << endl;
				
				claw.adamage=(1-red)*((ap_bear/14)*2.5)*(1+naturalist_m)*(1+mss_m);
				claw.acritdamage=claw.adamage*2*(1+META*0.03);
				claw.bdamage=(1-red)*((weapon)*2.5)*(1+naturalist_m)*(1+mss_m);
				claw.bcritdamage=claw.bdamage*2*(1+META*0.03);
				
				claw.rage=(int)(-(7.5*((claw.adamage+claw.bdamage)/rage_conv)+hit_factor*2.5)/2);
				claw.ragec=(int)(-(7.5*((claw.acritdamage+claw.bcritdamage)/rage_conv)+hit_factor_c*2.5+5)/2);
				
				claw.miss=wmiss;
				claw.hit=wnhit;
				claw.crit=wcrit;
				claw.glance=wglance;
				
				
				FeralFairieFire.rage=0;
				FeralFairieFire.ragec=-5;
				FeralFairieFire.adamage=(ap_bear*0.15)*(1+naturalist_m)*(1+mss_m);
				FeralFairieFire.acritdamage=FeralFairieFire.adamage*1.5*(1+META*0.03);
				FeralFairieFire.bdamage=(1+naturalist_m)*(1+mss_m);
				FeralFairieFire.bcritdamage=FeralFairieFire.bdamage*1.5*(1+META*0.03);
				FeralFairieFire.miss=m_ymiss;
				FeralFairieFire.crit=m_ycrit;
				FeralFairieFire.hit=m_yhit;
				FeralFairieFire.glance=0;
				
				
				////cout << claw_speed << endl;
				////cout << rage_conv << endl;
				////cout << claw.rage << endl;
				////cout << claw.ragec << endl;
				
				////cout << claw.adamage+claw.bdamage << endl;
				////cout << claw.acritdamage+claw.bcritdamage << endl;
				
				
				infinite_rage=infinite_rage*(1-cat_bear);
				
				
				
				/*Defencive stats*/
				myarmor_bear=2*(agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)+myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+(armor_bonus+trinket1.armor_bonus*trinket1.up+trinket2.armor_bonus*trinket2.up+wpn_enchant.armor_bonus*wpn_enchant.up)+DA*1015+MOW*1050;
				defense=400+(double)((int)((defense_rating+trinket1.defense_rating*trinket1.up-trinket2.defense_rating*trinket2.up-wpn_enchant.defense_rating*wpn_enchant.up)/4.918498039));
				dodge_app = ((dodge_rating+trinket1.dodge_rating*trinket1.up+trinket2.dodge_rating*trinket2.up+wpn_enchant.dodge_rating*wpn_enchant.up)/39.34798813) +((defense-400)/25) + (((agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)-base_agi)/41.66666667);
				miss_app= ((defense-400)/25);
				miss_from_rat = (1/( 1/miss_fact + 0.972/miss_app));
				dodge_from_rat= dodge_app_base_agi + (1/( 1/dodge_fact + 0.972/dodge_app));
				mydodge_bear=-dodge_red+base_dodge+0.01*(dodge_from_rat)+fw_m+nr_m;
				mymiss=miss_from_rat*0.01+0.02*NE+0.03*INSECT+0.044-dodge_red;
				mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
				myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp+trinket1.bonus_hp*trinket1.up+trinket2.bonus_hp*trinket2.up+wpn_enchant.bonus_hp*wpn_enchant.up;
				avoidance_bear=mymiss+mydodge_bear;
				
				melee.miss=avoidance_bear;
				melee.hit=1-melee.miss-melee.crit;
				
				if (melee.hit<=0){
					melee.hit=0;
				}
				
				//cout << "Trinket1: " << trinket1.up << ", Trinket2: " << trinket2.up << ", WPN Enchant: "<< wpn_enchant.up << ", Time: " << timer/100 << ", AP: " << ap_bear << ", crit: " << crit << ", red: " << red << ", speed: "<< claw_speed << ", Avoidance: " << avoidance_bear << endl;

			//Ability damage----------------------------------------
			/*paw*/
				

			//paw.energy=0;
			paw.adamage=(1-red)*(ap/14)*(1+naturalist_m);
			paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
			paw.acritdamage=paw.adamage*2*(1+pistinct_m)*(1+META*0.03);
			paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			paw.miss=wmiss;
			paw.hit=wnhit;
			paw.crit=wcrit;
			paw.glance=wglance;
			
			//mangle
			//mangle.energy=40-impmangle_m;
			mangle.adamage=(1-red)*((ap/14)*2.0)*(1+fury_m)*(1+naturalist_m);
			mangle.acritdamage=mangle.adamage*2*(1+pistinct_m)*(1+META*0.03);
			mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
			mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			mangle.miss=ymiss;
			mangle.crit=ycrit;
			mangle.hit=yhit;
			mangle.glance=0;
			
			//shred
			
			//shred.energy=60-s_att_m;
			shred.adamage=(1-red)*((ap/14)*2.25)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
			shred.acritdamage=shred.adamage*2*(1+pistinct_m)*(1+META*0.03);
			shred.bdamage=(1-red)*((weapon)*2.25+666+IDOL_SHRED*203.0)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
			shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			shred.miss=ymiss;
			shred.crit=ycrit;
			shred.hit=yhit;
			shred.glance=0;
							
			
			//rake
			
			//rake.energy=35;
			rake.adamage=((ap*0.01))*(1+fury_m)*(1+naturalist_m);
			rake.acritdamage=(2*(1+pistinct_m)*(1+META*0.03)*((ap*0.01))*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
			rake.bdamage=(176)*(1+fury_m)*(1+naturalist_m);
			rake.bcritdamage=(2*(1+pistinct_m)*(1+META*0.03)*(176)*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
			rake.miss=ymiss;
			rake.crit=ycrit;
			rake.hit=yhit;	
			shred.glance=0;
			
			
			
			//RIP
			rip.energy=30;
			rip.adamage=((ap)*0.01*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
			rip.acritdamage=rip.adamage;
			rip.bdamage=(36+IDOL_WS*cp*21.0+93*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
			rip.bcritdamage=rip.bdamage;
			rip.crit=0;
			rip.hit=yhitted;
			rip.miss=ymiss;
			rip.glance=0;
			
			
			
			//fb
			
			fb.energy=35;
			fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
			fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
			fb.bdamage=(1-red)*(190+290*cp+(9.4)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
			fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			
			fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9));
			fb.hit=yhitted-fb.crit;
			
			if((crit+(ret_m2+0.05*fourT9))>=1){
				fb.crit=yhitted;
				fb.hit=0;
			}
			
			fb.miss=ymiss;
			fb.glance=0;
			 
			
				recompute_value=0;
			}
			
			//computing bleeds
			if(((rip_timer%200==0))&&(rip_timer>=0)&&(rip_timer<(12+rip_g*rip_glyph+twoT7*4+shred_g*shred_glyph*shred_stack)*100)&&(cat_bear==1)){
				is_dotted=1;
				att=randnum();
				if ((att<(wcrit+0.05*fourT9))&&(pg==1)){
				dmg=(1+sr_rip*src)*((1+RA*0.03)*(1+BF*0.04)*((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
				}
				else{
				dmg=(1+sr_rip*src)*((1+RA*0.03)*(1+BF*0.04)*((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3));
				}
	

				rem++;
				//cout << "Tick: " << rem << " Rip Timer " << rip_timer/100.0 <<"\n";
				damage+=dmg;
				ydamage+=dmg;
				rip_damage_tot+=dmg;
				//cout << ".......................rip (bleed " << rem <<"): " << dmg <<"\n";
				if(mdebuff==0){
					mang_rip+=1;
				}
			}
			
			
			if(((l_counter%300==0))&&(l_timer>=0)&&(l_timer<l_cd*100)){
				is_dotted=1;
				att=randnum();
				if ((att<(wcrit+0.05*fourT9))&&(pg==1)){
					shield_up=1;
					dmg=(1+twoT7*0.05)*(1+RA*0.03)*(1+BF*0.04)*(64+(ap_bear*0.01))*(1+naturalist_m)*(l_stack)*(1+enraged_l*enrage_mod)*(1+mss_m)*(1+0.3*mdebuff)*2.0*(1+pistinct_m)*(1+META*0.03);
				}
				else{
					dmg=(1+twoT7*0.05)*(1+RA*0.03)*(1+BF*0.04)*(64+(ap_bear*0.01))*(1+naturalist_m)*(l_stack)*(1+enraged_l*enrage_mod)*(1+mss_m)*(1+0.3*mdebuff);
				}
				threat+=dmg*lacerate_aggro_mod;
				lem++;
				damage+=dmg;
				ybdamage+=dmg;
				lacerate_damage+=dmg;
				//l_damage+=dmg;
				//cout << ".......................Lacerate (bleed " << lem <<"): " << dmg << " Stack: " << l_stack << "\n";
			}
			
			
			if(((rake_timer%300==0))&&(rake_timer>=0)&&(rake_timer<(9+3*twoT9)*100)&&(cat_bear==1)){
				is_dotted=1;
				att=randnum();
			//	if ((att<wcrit)&&(pg==1)){
			//		dmg=(1+sr*src)*((1+RA*0.03)*(1+BF*0.04)*(ap_rake*0.06+358)*(1+naturalist_m)*(1+mdebuff*0.3)*(1+fury_m))*2.0*(1+pistinct_m)*(1+META*0.03);
			//	}
			//	else{
					dmg=(1+sr_rake*src)*((1+RA*0.03)*(1+BF*0.04)*(ap_rake*0.06+358)*(1+naturalist_m)*(1+mdebuff*0.3)*(1+fury_m));
			//	}
				rkem++;
				//cout << "Tick: " << rkem << " Rake Timer " << rake_timer/100.0 <<"\n";
				damage+=dmg;
				ydamage+=dmg;
				rake_damage_tot+=dmg;
				//cout << ".......................Rake (bleed " << rkem <<"): " << dmg <<"\n";
			}
			
			
			
			//ability counter time
			mdebuff_timer--;
			bdebuff_timer--;
			koj_step--;
			koj_timer--;
			sr_timer--;
			rip_timer--;
			rake_timer--;
			berserk_timer--;
			berserk_cd_timer--;
			
			gcd--;	
			fivesec--;
			
			l_timer--;
			l_counter--;
			enrage_timer--;
			enrage_step--;
			bmangle_step--;
			bear_time++;
			FFF_step--;
			bark_timer--;
			bark_cd_timer--;
			
			swinger++;
			
			bloodlust_cd_timer--;
			bloodlust_timer--;
			
			inspiration_timer--;
			
			boss_swinger++;
			
			trinket1.cd_timer--;
			trinket1.duration_timer--;
			trinket2.cd_timer--;
			trinket2.duration_timer--;
			wpn_enchant.cd_timer--;
			wpn_enchant.duration_timer--;
			move_time_timer--;
			move_interval_timer--;
			
			time_to_die_boss=sim_time-timer;
			

			
			if((inspiration==1)&&(timer%100==0)){
				inspiration_uptime+=inspiration_up;
				att=randnum();
				if(att<inspiration_proc_chance){
					myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)*1.25+DA*1015+MOW*1050;
					mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
					inspiration_timer=15*100;
					inspiration_up=1;
					}
			}
				
				if((inspiration==1)&&(inspiration_timer<0)&&(inspiration_timer>-3)){
					myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)+DA*1015+MOW*1050;
					mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
					inspiration_up=0;
				}
					
				
			
			
			////-----------------BOSS DAMAGE-------------------------------------------
			
			if(cat_bear==0){
				
				if(hp_shot<=0){
					dead++;
					hp_shot=99999999;
					////cout << dead << endl;
				}
				
				if(timer%silence==0){
					////cout << timer << endl;
					hp_shot=myhp_bear;
				}
				
				
				if((parry_g==1)&&(parried==1)){
					boss_parried++;
					if((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))>=0.6){
						boss_swinger=boss_swing2-0.4*claw_speed;
					}
					if(((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))<0.6)&&((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))>=0.2)){
						boss_swinger=boss_swing2-0.2*claw_speed;
					}
					parried=0;
				}
				
				
				
				if(((boss_swinger%boss_swing2)==0)&&(boss_swinger!=0)){
					
					att=randnum();
					////cout << "Attack roll: " << att << "\n";
					if(att<melee.crit){
						dmg=((2*melee.damage*(1-mydr_bear))-shield_up*shield_value)*(1-(1.0*bark_up)*bark_red);
						shielded+=shield_up;
						shield_up=0;
						hp_shot-=(int)dmg;
						boss_damage+=dmg;
						boss_crit++;
						boss_swinger=0;
						is_stuck=1;
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (crit): " << dmg <<"\n";						
						
					}
					else if(att<(melee.crit+melee.hit)){
						dmg=((melee.damage*(1-mydr_bear))-shield_up*shield_value)*(1-(1.0*bark_up)*bark_red);
						shielded+=shield_up;
						shield_up=0;
						hp_shot-=(int)dmg;
						boss_damage+=dmg;
						boss_hit++;
						boss_swinger=0;
						is_stuck=1;
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (hit): " << dmg <<"\n";
						
					}
					else{
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (miss)\n";
						boss_swinger=0;
						boss_miss++;
					}
				}
			}
			
			
			
			////-----------------------------------------------------------------------
			
			
			
			
			if(timer%10==0){
				en+=1; //energy regeneration
				if(en>100){
					en=100;
					//cout << en << " energy, Cycle: " << cycle << ", timer: " << timer/100.0 << endl;
				}
				
				if(infinite_rage==1){
					rage_tot=100;
				}
				
				if(rage_tot>100){
					rage_tot=100;
				}
				
				if((bloodlust_timer<=0)&&(bloodlust_timer>-3)){
					bloodlust_up=0;
					speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					//cout << timer/100.0 << "   Bloodlust off,    SPEED= " << speed/100.0 << endl;
				}
				
				if((bloodlust_cd_timer<=0)&&(((move_interval_timer>(0.95*move_interval*100))&&(move_time_timer<=0))||(movement!=1))){
					bloodlust_up=1;
					bloodlust_timer=4000;
					bloodlust_cd_timer=bloodlust_cd;
					speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					//cout << timer/100.0 << "   Bloodlust on,    SPEED= " << speed/100.0 << endl;
				}
				
				
				
				
				if(fivesec<0){
					outfivesec+=10;
					mana+=(1.0*mp5_out)/50.0;
				}
				else{
					mana+=(1.0*mp5_in)/50.0;
				}
				if((oom==sim_time)&&((mana_cost*mana)<=2*shifting_cost)){
					oom=timer;
				}
				
				if(mana>=bmana){
					mana=bmana;
				}
			}
			
			//debuff update
			if(mdebuff_timer<0){
				mdebuff=0;
			}
			
			if(bdebuff_timer<0){
				bdebuff=0;
			}
			
			if(enrage_step<0){
				enraged=0;
			}
			
			if(rip_timer<0){
				shred_stack=0;
			}
			
			if(bark_timer<0){
				bark_up=0;
			}
			
			if((trinket1.duration_timer<0)&&(trinket1.duration_timer>-3)){
				trinket1.up=0;
				recompute_value=1;
			}
			if((trinket2.duration_timer<0)&&(trinket2.duration_timer>-3)){
				trinket2.up=0;
				recompute_value=1;
			}
			if((wpn_enchant.duration_timer<0)&&(wpn_enchant.duration_timer>-3)){
				wpn_enchant.up=0;
				recompute_value=1;
			}
			

			
			
			if((berserk_timer<0)&&(berserk_timer>-3)){
				berserk=0;
				mangle.energy=40-impmangle_m;
				shred.energy=60-s_att_m;
				rake.energy=35;
				rip.energy=30;
				fb.energy=35;
				sr_energy=25;
				init_en=wait_energy;
				bmangle_cd=(6-impmangle_m2);
			}
			
			if((koj_step<0)&&(koj_step>-3)){
				koj=0;
				weapon=base_paw;
				
				/*paw*/
				
				paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
				paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//mangle
				
				mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
				mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//shred
				
				shred.bdamage=(1-red)*((weapon)*2.25+666+203.0*IDOL_SHRED)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
				shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			}
			
			if(sr_timer<0){
				sr=0;	
			}
			
			bdebuff_up+=bdebuff;
			mdebuff_up+=mdebuff;
			sr_up+=sr;
			
			//combo points
			if(cp>5){
				cp=5;
			}
			
			if(bark_cd_timer<0){
				bark_up=1;
				bark_timer=bark_time*100;
				bark_cd_timer=bark_cd*100;
				//gcd=100+lag;
			}
			
			if(((move_interval_timer>0)&&(move_time_timer<=0))||(movement!=1)){
				
			
			//when to use Tiger Fury / King of the Jungle
			
			if(((koj_timer<=0)&&(berserk==0)&&(en<=(99-koj_m1-(int)(2*(lag/10.0))))&&(catbear==1)&&(ooc_proc==0)&&((cp<5)||(rip_timer<100+lag)))&&(((move_interval_timer>6*100)&&(move_time_timer<=0))||(movement!=1))){
				//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
				////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
				//cout << "				King of the Jungle!\n";
				koj_timer=koj_cd*100;
				koj=1;
				koj_step=600;
				en+=koj_m1;
				weapon+=koj_damage;
				
				/*paw*/
				
				paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
				paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//mangle
				
				mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
				mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//shred
				
				shred.bdamage=(1-red)*((weapon)*2.25+666+203.0*IDOL_SHRED)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
				shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			   goto fine;
			}
			
			if(((enrage_timer<=0)&&(catbear==0)&&(bear_time<200)&&(cat_bear==1)&&(use_enrage==1))||((enrage_timer<=0)&&(catbear==0)&&(use_enrage==1))){
				enrage_timer=enrage_cd*100;
				enrage_step=10*100;
				enraged=1;
				threat+=16;
				//cout << "				Enrage!" << endl;
			}
			
			
			////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage) << endl;
			////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.acritdamage+paw.bcritdamage) << endl;
			////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage)*(1+sr*src) << endl;
			////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.acritdamage+paw.bcritdamage)*(1+sr*src) << endl;
			////cout << (1+sr*src) << endl;
			////cout << (1+RA*0.03)*(1+BF*0.04) << endl;
			//using l'autoattack
			
			if(((swinger%speed)==0)&&(catbear==1)&&(swinger!=0)){
				att=randnum();
				////cout << "Attack roll: " << att << "\n";
				
				if(att>(1-paw.hit)){
					is_hitted=1;
					if(ooc_rate>randnum()){
						ooc_proc=omen;
						
					}
					dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage);
					damage+=dmg;
					wdamage+=dmg;
					//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
					//cout << "Paw (normal): " << dmg <<"\n";
					is_hitted=1;

				}
				else if(att>(paw.glance+paw.miss)){
					is_hitted=1;
					is_critted=1;
					if(ooc_rate>randnum()){
						ooc_proc=omen;
						
					}
					dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((paw.acritdamage)+paw.bcritdamage);
					damage+=dmg;
					wdamage+=dmg;
					//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
					//cout << "Paw (crit): " << dmg <<"\n";
					is_hitted=1;
					is_critted=1;
				}
				
				else if(att>(paw.miss)){
					is_hitted=1;
					dmg=(1+sr*src)*glance_red*(1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage);
					damage+=dmg;
					wdamage+=dmg;
					//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
					//cout << "Paw (glancing): " << dmg <<"\n";
					if(ooc_rate>randnum()){
						ooc_proc=omen;
					}
				}	
				else{
					//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
					//cout << "Paw (miss)" <<"\n";
				}
				
			}
			
			
			if(((swinger%claw_speed)==0)&&(catbear==0)&&(swinger!=0)){
				
				att=randnum();
				////cout << "Attack roll: " << att << "\n";
				if((rage_tot>=((mangleb.rage+maul.rage)))||((rage_tot>=maul.rage)&&(mdebuff_timer>=1650))){
					if(att<maul.crit){
						is_hitted=1;
						is_critted=1;
						dmg=(1+RA*0.03)*(1+BF*0.04)*(maul.acritdamage+maul.bcritdamage)*(1+enraged*enrage_mod)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
						damage+=dmg;
						ybdamage+=dmg;
						maul_damage+=dmg;
						maulnum++;
						threat+=dmg+maul_aggro+25;
						rage_tot-=maul.ragec;
						shield_up=1;
						if(ooc_proc==1){
							//cout << "			USING OMEN!\n";
							ooc_proc=0;
							rage_tot+=maul.rage+5;
						}
						//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "maul (crit): " << dmg <<"\n";
						if(ooc_bear_rate>randnum()){
							ooc_proc=omen;
						}
						
						
					}
					else if(att<(maul.crit+maul.hit)){
						is_hitted=1;
						dmg=(1+RA*0.03)*(1+BF*0.04)*(maul.adamage+maul.bdamage)*(1+enraged*enrage_mod)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
						damage+=dmg;
						ybdamage+=dmg;
						maul_damage+=dmg;
						maulnum++;
						threat+=dmg+maul_aggro;
						rage_tot-=maul.rage;
						//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "maul (crit): " << dmg <<"\n";
						if(ooc_proc==1){
							//cout << "			USING OMEN!\n";
							ooc_proc=0;
							rage_tot+=maul.rage;
						}
						if(ooc_bear_rate>randnum()){
							ooc_proc=omen;
						}
					}
					else{
						if(ooc_proc==1){
							//cout << "			USING OMEN!\n";
							ooc_proc=0;
						}
						if(yparried>randnum()){
							parried=1;
						}
						//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "maul (miss)" <<"\n";
					}
				}
				else{
					if(att>(1-claw.miss)){
						is_hitted=1;
						dmg=(1+RA*0.03)*(1+BF*0.04)*(claw.adamage+claw.bdamage)*(1+enraged*enrage_mod);
						damage+=dmg;
						wbdamage+=dmg;
						rage_tot-=claw.rage;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						////cout << "claw (normal): " << dmg <<"\n";
						if(ooc_bear_rate>randnum()){
							ooc_proc=omen;
						}
						
						
					}
					else if(att>(claw.miss+claw.glance)){
						is_hitted=1;
						dmg=glance_red*(1+RA*0.03)*(1+BF*0.04)*(claw.adamage+claw.bdamage)*(1+enraged*enrage_mod);
						damage+=dmg;
						wbdamage+=dmg;
						rage_tot-=claw.rage;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						////cout << "claw (glancing): " << dmg <<"\n";
						if(ooc_bear_rate>randnum()){
							ooc_proc=omen;
						}
					}
					else if(att>(claw.miss)){
						is_hitted=1;
						is_critted=1;
						dmg=(1+RA*0.03)*(1+BF*0.04)*(claw.acritdamage+claw.bcritdamage)*(1+enraged*enrage_mod);
						damage+=dmg;
						wbdamage+=dmg;
						shield_up=1;
						rage_tot-=claw.ragec;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						////cout << "claw (crit): " << dmg <<"\n";
						if(ooc_bear_rate>randnum()){
							ooc_proc=omen;
						}
						
					}
					else{
						if(wparried>randnum()){
							parried=1;
						}
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						////cout << "claw (miss)" <<"\n";
					}
				}
			}
			
			// omen of clarity, when it proc I always shred.
			
			if(gcd<=0){
				
				
				
				switch (cycle){
					case 0:
						
						//mangle?
						if((((en>(85-(int)((double)lag/10)))||((en>(60-(int)((double)lag/10)))&&(mdebuff_timer>=1600)))&&(pws==1)&&((mana_cost*mana)>=(mana_cost*shifting_cost*2)))&&(cat_bear==1)){
							////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							//cout << "		POWERSHIFTING, Lost " << en << " Energy\n";
							gcd=150+lag;
							pw+=1;
							mana-=shifting_cost;
							fivesec=500;
							cycle =1;
							catbear=1;
							swinger=0;
							mangleb_timer=0;
							goto fine;
						}
						
						if((rage_tot>=mangleb.rage)&&(bmangle_step<=0)&&(l_timer>=(2*150+lag))){
							mangleb_timer++;
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<mangleb.crit){
								is_hitted=1;
								is_critted=1;
								////cout << "     mangleb\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*((mangleb.acritdamage)+mangleb.bcritdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;
								mangleb_damage+=dmg;
								manglebnum++;
								threat+=dmg*mangleb_aggro_mod+25;
								//bmangle_damage+=dmg;
								rage_tot-=mangleb.ragec;
								shield_up=1;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=mangleb.rage+5;
								}
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=150+lag;
								bmangle_step=(int)(bmangle_cd*100);
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	mangleb (crit): " << dmg <<"\n";
							}
							else if(att<(mangleb.crit+mangleb.hit)){
								is_hitted=1;
								////cout << "     mangleb\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(mangleb.adamage+mangleb.bdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;
								mangleb_damage+=dmg;
								manglebnum++;
								threat+=dmg*mangleb_aggro_mod;
								//bmangle_damage+=dmg;
								rage_tot-=mangleb.rage;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=mangleb.rage;
								}
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=150+lag;
								bmangle_step=(int)(bmangle_cd*100);
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	mangleb (normal): " << dmg <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								gcd=150+lag;
								bmangle_step=(int)(bmangle_cd*100);
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
								}
								if(yparried>randnum()){
									parried=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	mangleb (miss)" <<"\n";
							}
							
							
							goto fine;
							
						}
						
						//FeralFairieFire?
						
						if((use_FFF==1)&&(rage_tot>=FeralFairieFire.rage)&&(ooc_proc==0)&&(FFF_step<=0)&&(((l_timer>=(l_cd*100-150-lag))&&(l_stack==5))||((cat_bear==0)&&(l_timer>=(3*(150+lag)))&&(l_stack==5)))){
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<(FeralFairieFire.crit)){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "FeralFairieFire\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(FeralFairieFire.acritdamage+FeralFairieFire.bcritdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;	
								FeralFairieFire_damage+=dmg;
								FeralFairieFirenum++;
								threat+=dmg+FeralFairieFire_aggro_mod;
								rage_tot-=FeralFairieFire.ragec;	
								gcd=100+lag;
								FFF_step=100*FFF_cd;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "FeralFairieFire" << "\n";
							}
							else if(att<(FeralFairieFire.crit+FeralFairieFire.hit)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "FeralFairieFire\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(FeralFairieFire.adamage+FeralFairieFire.bdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;	
								FeralFairieFire_damage+=dmg;
								FeralFairieFirenum++;
								threat+=dmg+FeralFairieFire_aggro_mod;
								rage_tot-=FeralFairieFire.rage;
								gcd=100+lag;
								FFF_step=100*FFF_cd;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "FeralFairieFire" << "\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
								gcd=100+lag;
								FFF_step=100*FFF_cd;
								if(yparried>randnum()){
									parried=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "FeralFairieFire (miss)" << "\n";
							}
							
							goto fine;
							
						}		
						
						
						//swipe?
						
						if((rage_tot>=(swipe.rage+maul.rage+mangleb.rage))&&(((l_timer>=(l_cd*100-150-lag))&&(l_stack==5))||((cat_bear==0)&&(l_timer>=(3*(150+lag)))&&(l_stack==5)))){
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<(swipe.crit)){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "swipe\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(swipe.acritdamage+swipe.bcritdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;	
								swipe_damage+=dmg;
								swipenum++;
								threat+=dmg*swipe_aggro_mod+25;
								rage_tot-=swipe.ragec;	
								shield_up=1;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=swipe.rage+5;
								}
								gcd=150+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "swipe" << "\n";
							}
							else if(att<(swipe.crit+swipe.hit)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "swipe\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(swipe.adamage+swipe.bdamage)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;	
								swipe_damage+=dmg;
								swipenum++;
								threat+=dmg*swipe_aggro_mod;
								rage_tot-=swipe.rage;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=swipe.rage;
								}
								
								gcd=150+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "swipe" << "\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
								gcd=150+lag;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
								}
								if(yparried>randnum()){
									parried=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "swipe (miss)" << "\n";
							}
							
							goto fine;
							
						}
						
						
						
						
						//lacerate?
						
						if((rage_tot>=lacerate.rage)){
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<(lacerate.crit)){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "lacerate\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(1+twoT7*0.05)*(88+(ap_bear*0.01))*(1+naturalist_m)*(1+mss_m)*2*(1+META*0.03)*(1+enraged*enrage_mod);
								enraged_l=0;
								if(enraged==1){
									enraged_l=1;
								}
								damage+=dmg;
								ybdamage+=dmg;	
								lacerate_damage+=dmg;
								laceratenum++;
								threat+=lacerate_aggro+dmg*lacerate_aggro_mod+25;
								rage_tot-=lacerate.ragec;	
								shield_up=1;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=lacerate.rage+5;
								}
								bdebuff=1;
								if(bdebuff_timer<(l_cd*100)){
									bdebuff_timer=l_cd*100;
								}
								if(l_stack==0){
								l_counter=l_cd*100;
								}
								l_timer=l_cd*100;
								l_stack++;
								if(l_stack>=5){
									l_stack=5;
								}
								gcd=150+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "lacerate" << "\n";
								lem=0;
							}
							else if(att<(lacerate.crit+lacerate.hit)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "lacerate\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(1+twoT7*0.05)*(88+(ap_bear*0.01))*(1+naturalist_m)*(1+mss_m)*(1+enraged*enrage_mod);
								damage+=dmg;
								ybdamage+=dmg;	
								lacerate_damage+=dmg;
								laceratenum++;
								threat+=lacerate_aggro+dmg*lacerate_aggro_mod;
								enraged_l=0;
								if(enraged==1){
									enraged_l=1;
								}
								rage_tot-=lacerate.rage;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
									rage_tot+=lacerate.rage;
								}
								bdebuff=1;
								if(bdebuff_timer<(l_cd*100)){
									bdebuff_timer=l_cd*100;
								}
								l_timer=l_cd*100;
								l_stack++;
								if(l_stack>=5){
									l_stack=5;
								}
								gcd=150+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "lacerate" << "\n";
								lem=0;
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
								gcd=150+lag;
								if(ooc_proc==1){
									//cout << "			USING OMEN!\n";
									ooc_proc=0;
								}
								if(yparried>randnum()){
									parried=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "lacerate (miss)" << "\n";
							}
							
							goto fine;
							
						}
						
						
						break;
						
					case 1:
						
						//manglespam or use shred?
						if(((1.0*shred.energy)/(1.0*mangle.energy))>1.25)
						{
							shred.energy=mangle.energy;
							mangle_only=1;
						}
						
						//use rake or not?
						if((shred_stack<3)&&(rip_timer<(250*(3-shred_stack)))&&(koj_timer>(rip_timer-200))&&((rip_timer-(shred.energy-en)*10)>lag)&&(shred_to_rip==1)){
							rip_damagextick = (1-wcrit*pg)*(1+sr_rip*src)*(((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))+wcrit*pg*(1+sr_rip*src)*(((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
							shredder=1;
						}
							else{
								shredder=0;
							}
						if(
						   ((
						(((rake.adamage+rake.bdamage)*rake.hit+(rake.acritdamage+rake.bcritdamage)*rake.crit+3*(ap*0.06+358)*(1+naturalist_m)*(1+fury_m)*(rake.hit+rake.crit))/(rake.energy))  //Rake DPE
						   /
						   ((((shred.acritdamage+shred.bcritdamage)*shred.crit+(shred.adamage+shred.bdamage)*shred.hit)*(1+ret_m1)+(rip_damagextick*shredder))/shred.energy)
						   )>0.9
						    )&&(auto_rk==1))
						{
							rk=1;
						}
						else{
							rk=0;
						}
						
						//SR, RIP or FB?
						if(cp>=(rip_t||fb_t))
						{
							fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9)*bdebuff);
							fb.hit=yhitted-fb.crit;
							
							if((crit+(ret_m2+0.05*fourT9)*bdebuff)>=1){
								fb.crit=yhitted;
								fb.hit=0;
							}
							extfben = en-fb.energy;
							if (extfben >30){
								extfben = 30;
							}
							
							if (extfben <=0){
								extfben = 0;
							}
							
							fb.adamage=(1+sr*src)*(1-red)*((0.07*ap)*cp)*(1+naturalist_m)*(1+ferocity_m);
							fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
							fb.bdamage=(1+sr*src)*(1-red)*(190+290*cp)*(1+naturalist_m)*(1+ferocity_m);
							fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
							Fb_damage = (fb.hit*(fb.adamage+fb.bdamage)+fb.crit*(fb.acritdamage+fb.bcritdamage));
							fbextra_damage=(1+sr*src)*((1-red)*(fb.hit*((ap*0.002439)+(9.4))+fb.crit*(((ap*0.002439)+(9.4)))*2*(1+pistinct_m)*(1+META*0.03))*(1+naturalist_m)*(1+ferocity_m));
							rip_damagextick = (1-(wcrit+0.05*fourT9)*pg)*(1+sr*src)*(((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))+(wcrit+0.05*fourT9)*pg*(1+sr*src)*(((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
							
							avg_cp[5]=(1/(shred.crit+shred.hit))*((5*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+4*4*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+5*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*shred.crit*shred.crit*(1-shred.crit)+3*shred.crit*shred.crit*shred.crit+3*4*shred.crit*shred.crit*(1-shred.crit)*(1-shred.crit)));
							avg_cp[4]=(1/(shred.crit+shred.hit))*(4*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*(1-shred.crit)*(1-shred.crit)*shred.crit+3*2*(1-shred.crit)*(shred.crit)*shred.crit+2*(shred.crit)*shred.crit);
							avg_cp[3]=(1/(shred.crit+shred.hit))*(3*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+2*2*shred.crit*(1-shred.crit)+2*shred.crit*shred.crit+3*(1-shred.crit)*(1-shred.crit)*(shred.crit));
							avg_cp[2]=(1/(shred.crit+shred.hit))*(2*(1-shred.crit)*(1-shred.crit)+2*(1-shred.crit)*shred.crit+shred.crit);
							avg_cp[1]=(1/(shred.crit+shred.hit))*(1);
							
							
							tick_num_FB=((Fb_damage+extfben*fbextra_damage)/rip_damagextick);
							
							
							cp_to_cycle=avg_cp[sr_t]+avg_cp[rip_t]; 
							max_rip_downtime= (tick_num_FB)*2;
							energy_x_sec= (10*30)/30+ooc_rate*40/(speed/100.0)+twoT8*twoT8_rate*40/(120.0/100.0);
							combovsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec;
							if(combovsfb_time[0]<int(cp_to_cycle)+2){
								combovsfb_time[0]=int(cp_to_cycle)+2;
							}
							combovsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec-koj_m1/10.0;
							if(combovsfb_time[1]<int(cp_to_cycle)+2){
								combovsfb_time[1]=int(cp_to_cycle)+2;
							}
							ripvsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[rip_t]/energy_x_sec)-max_rip_downtime+(rip.energy)/energy_x_sec;
							if(ripvsfb_time[0]<int(avg_cp[rip_t])+1){
								ripvsfb_time[0]=int(avg_cp[rip_t])+1;
							}
							ripvsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[rip_t]/energy_x_sec)-max_rip_downtime+(rip.energy)/energy_x_sec-koj_m1/10.0;
							if(ripvsfb_time[1]<int(avg_cp[rip_t])+1){
								ripvsfb_time[1]=int(avg_cp[rip_t])+1;
							}
							srvsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec);
							if(srvsfb_time[0]<int(avg_cp[sr_t])+1){
								srvsfb_time[0]=int(avg_cp[sr_t])+1;
							}
							srvsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec)-koj_m1/10.0;
							if(srvsfb_time[1]<int(avg_cp[sr_t])+1){
								srvsfb_time[1]=int(avg_cp[sr_t])+1;
							}
							
							
							
							
							
							
							
							
						}
						
						// savage roar?
						
						if(((en>=sr_energy)&&(((cp>=1)&&(sr_upper==1))||((cp>=sr_t)&&(sr_upper==0)))&&((sr==0)||
				((cp==5)&&(((sr_timer<(srvsfb_time[0]*100))))/*||((rip_timer>=(srvsfb_time[0]*100))||((koj_timer<=(srvsfb_time[0])*100)&&(rip_timer>=(srvsfb_time[1]*100)))) */))
						    &&(sr_timer<=(time_to_die_boss))))
						{
							////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							//cout << "SR\n";
							sr_timer=(9+8*fourT8+cp*5)*100;
							en-=sr_energy;
							cp=0;
							sr=1;
							gcd=100+lag;
							cycle_time+=1;
							//	//cout << "mana: " << mana <<"\n";
							//goto fine;
						}
						
						//ooc proc
						else if((ooc_proc==1)&&(catbear==1))
						{
							att=randnum();
							
							//mangle?
							if(mdebuff==0){
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<mangle.crit){
									is_hitted=1;
									is_critted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									cp+=2;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (crit): " << dmg <<"\n";
								}
								else if(att<(mangle.crit+mangle.hit)){
									is_hitted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									cp++;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (normal): " << dmg <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (miss)" <<"\n";
								}
								
								ooc_proc=0;
								//goto fine;
								
							}
							
							
							else if(mdebuff_timer>(100+lag)){
							if(att<shred.crit){
								is_hitted=1;
								is_critted=1;
								////cout << "     Shred\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;
								shred_damage_tot+=dmg;
								shrednum++;
								cp+=2;
								if((shred_stack<max_shred)&&(rip_timer>0)){
									rip_timer+=shred_g*shred_glyph*100;
									shred_stack+=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "			USING OMEN!\n";
								//cout << "	shred (crit): " << dmg <<"\n";
								ooc_proc=0;
								gcd=100+lag;
								
							}
							else if(att<(shred.crit+shred.hit)){
								is_hitted=1;
								////cout << "     Shred\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;						
								shred_damage_tot+=dmg;
								shrednum++;
								cp++;
								if((shred_stack<max_shred)&&(rip_timer>0)){
									rip_timer+=shred_g*shred_glyph*100;
									shred_stack+=1;
								}
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "			USING OMEN!\n";
								//cout << "	shred (normal): " << dmg <<"\n";
								ooc_proc=0;
								gcd=100+lag;
								
							}
							else{
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "			USING OMEN!\n";
								//cout << "	shred (miss)" <<"\n";
								gcd=100+lag;
							}
								 ooc_proc=0;

							}
							
							//goto fine;
							
						}
						
						//berserk?
						else if((((berserk_cd_timer<=0)&&(en>=70)&&(sr_timer>=100+lag)&&(catbear==1)&&(cat_bear==1))||((berserk_cd_timer<=0)&&(timer>=2000)&&(cat_bear==0)))&&(((move_interval_timer>berserk_duration*100)&&(move_time_timer<=0))||(movement!=1)))
						{
							berserk=1;
							berserk_cd_timer=berserk_cd;
							berserk_timer=berserk_duration*100;
							init_en=(int)(0.5*init_en)+((int)(lag/10.0));
							mangle.energy=(int)(0.5*(40-impmangle_m));
							shred.energy=(int)(0.5*(60-s_att_m));
							rake.energy=(int)(0.5*35);
							rip.energy=(int)(0.5*30);
							fb.energy=(int)(0.5*35);
							sr_energy=(int)(0.5*sr_energy);
							bmangle_cd=0;
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							//cout << "							BERSERK!!!!\n";
							gcd=100+lag;	
							//goto fine;
						}
						
						
						
						//mangle?
						else if((en>mangle.energy)&&(mdebuff==0))
						{
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<mangle.crit){
								is_hitted=1;
								is_critted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp+=2;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (crit): " << dmg <<"\n";
							}
							else if(att<(mangle.crit+mangle.hit)){
								is_hitted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp++;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (normal): " << dmg <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)(mangle.energy*0.2);
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (miss)" <<"\n";
							}
							
							//goto fine;
							
						}
						
						//rake?
						/*
						else if (((rk==1)&&(rake_timer <0)&&(cp<5)&&(mdebuff_timer >= 100+lag)&&(en>=rake.energy))&&(
							(((mdebuff_timer > ((rake.energy+mangle.energy-10-en)*10))&&(cp<3)))||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))
							||(koj_timer<(100+lag)))&&(time_to_die_boss>=9*100))
						
						 */
						
						else if ((rake_timer <0)&&(cp<5)&&(en>=rake.energy)&&(mdebuff_timer > ((rake.energy+mangle.energy-10-en)*10))&&(time_to_die_boss>=9*100)&&(rk==1))
						 
						 {
							att=randnum();
							//	////cout << "Attack roll: " << att << "\n";
							
							if((att<rake.crit)&&(en>=rake.energy)){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((rake.acritdamage)+rake.bcritdamage)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;
								rake_damage_tot+=dmg;
								rakenum++;
								rkem=0;
								ap_rake=ap;
								sr_rake=sr;
								en-=rake.energy;
								
								bdebuff=1;
								if(bdebuff_timer<(9*100)){
									bdebuff_timer=9*100;
								}
								cp+=2;
								rake_timer=(9+3*twoT9)*100;
								gcd=100+lag;
								//cout << "     Rake (crit); " << dmg << "\n";
								//	////cout << "rake (crit): " << dmg <<", Total damage: " << damage <<"\n";
							}
							else if((att<(rake.crit+rake.hit))&&(en>=rake.energy)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(rake.adamage+rake.bdamage)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;
								rake_damage_tot+=dmg;
								rakenum++;
								rkem=0;								
								ap_rake=ap;
								sr_rake=sr;
								en-=rake.energy;
								
								bdebuff=1;
								if(bdebuff_timer<(9*100)){
									bdebuff_timer=9*100;
								}
								rake_timer=(9+3*twoT9)*100;
								cp++;
								gcd=100+lag;
								//cout << "     Rake (normal); " << dmg << "\n";
								//	////cout << "rake (normal): " << dmg <<", Total damage: " << damage <<"\n";
							}
							else if(en>=rake.energy){
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)(rake.energy*0.2);
								
								gcd=100+lag;
								//cout << "     Rake (miss)\n";
								//	////cout << "rake (miss)" << ", Total damage: " << damage <<"\n";
							}
							//goto fine;
							
						}
						
						//manglespam?
						else if ((mangle_only==1) &&(en>=mangle.energy) && (cp<5) && ((((koj_timer<((mangle.energy+rake.energy-10-en)*10) && 
						((((rake_timer > ((mangle.energy+rake.energy-10-koj_m1-en)*10))||(rk==0))&& (cp<3) && (mdebuff_timer >= 0) && ((rake_timer>(0))||(rk==0)) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag))))||((( 
						(( rake_timer > ((mangle.energy+rake.energy-10-en)*10))||(rk==0)) && (cp<3)&& (rake_timer>0) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||
						((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag)))))||((cp>=3)||(rip_timer<0)))||(time_to_die_boss<=kill_mode)))
						{
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<mangle.crit){
								is_hitted=1;
								is_critted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp+=2;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (crit): " << dmg <<"\n";
							}
							else if(att<(mangle.crit+mangle.hit)){
								is_hitted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp++;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (normal): " << dmg <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)(mangle.energy*0.2);
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (miss)" <<"\n";
							}
							
							//goto fine;
							
						}
						
						
						//shred?
						
						else if ((en>=shred.energy) && (cp<5)&& ((((koj_timer<((shred.energy+rake.energy-10-en)*10) && 
						((mdebuff_timer > ((shred.energy+mangle.energy-10-koj_m1-en)*10) && ((rake_timer > ((shred.energy+rake.energy-10-koj_m1-en)*10))||(rk==0))
						  && (cp<3) && (mdebuff_timer >= 100+lag) && rake_timer>(0) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag))))||(((mdebuff_timer > ((shred.energy+mangle.energy-10-en)*10) 
					      &&(( rake_timer > ((shred.energy+rake.energy-10-en)*10))||(rk==0)) && (cp<3) && (mdebuff_timer >= 100+lag) && ((rake_timer>0)||(rk==0)) )
					      ||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag)))))||((cp>=3)||(rip_timer<0)))||(time_to_die_boss<=kill_mode)))
						
						/*
						else if ((en>=shred.energy) && (cp<5)
							  &&(((koj_timer<rake_timer)&&(en>=((shred.energy+rake.energy-10-koj_m1))))||(rake_timer>=((shred.energy+rake.energy-10-en)*10))||(rk==0))
							  &&(((mdebuff_timer<rake_timer)&&(en>=((shred.energy+mangle.energy-10-koj_m1))))||(mdebuff_timer>=((shred.energy+mangle.energy-10-en)*10)))
							)
						 */	  

						 {
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<shred.crit){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "     Shred\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;						
								shred_damage_tot+=dmg;
								shrednum++;
								en-=shred.energy;
								if((shred_stack<max_shred)&&(rip_timer>0)){
									rip_timer+=shred_g*shred_glyph*100;
									shred_stack+=1;
								}
								cp+=2;
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	shred (crit): " << dmg  <<"\n";
							}
							else if(att<(shred.crit+shred.hit)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "     Shred\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
								damage+=dmg;
								ydamage+=dmg;						
								shred_damage_tot+=dmg;
								shrednum++;
								en-=shred.energy;
								if((shred_stack<max_shred)&&(rip_timer>0)){
									rip_timer+=shred_g*shred_glyph*100;
									shred_stack+=1;
								}
								cp++;
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	shred (normal): " << dmg <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)(shred.energy*0.2);
								
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	shred (miss)" <<"\n";
							}
							
							//goto fine;
							
						}

						
						//ferocious bite?
						else if((sr==1)&&(en>=fb.energy)&&((cp>=fb_t)/*||((time_to_die_boss<=kill_mode)&&(cp>=(fb_t-1)))*/)&&(bdebuff==1)&&((berserk==0)||((berserk==1)&&(en<fb.energy+5)))&& //base condition
							 (
							 ((rip_timer>0)&&(
							  (
							   (((rip_timer>=(ripvsfb_time[0]*100))||((koj_timer<=(ripvsfb_time[0])*100)&&(rip_timer>=(ripvsfb_time[1]*100))))&&((sr_timer>=(combovsfb_time[0]*100))||((koj_timer<=(combovsfb_time[0])*100)&&(sr_timer>=(combovsfb_time[1]*100))))) //rip expiring condition
							   ||(rip_t>5))|| //if you don't use rip
							  (
							   (((sr_timer>=(srvsfb_time[0]*100))||((koj_timer<=(srvsfb_time[0])*100)&&(sr_timer>=(srvsfb_time[1]*100))))&&((rip_timer>=(combovsfb_time[0]*100))||((koj_timer<=(combovsfb_time[0])*100)&&(rip_timer>=(combovsfb_time[1]*100))))) //savage roar expiring condition
							   )
							  ))||((time_to_die_boss<=(max_rip_downtime*100)))
							 )
							 )
						{
							
							att=randnum();
							//	////cout << "Attack roll: " << att << "\n";
							
							if(att<fb.crit){
								is_hitted=1;
								is_critted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								
								dmg=(1+RA*0.03)*(1+BF*0.04)*((fb.acritdamage)+fb.bcritdamage+extfben*(1+sr*src)*((1-red)*((((ap*0.002439)+(9.4)))*2*(1+pistinct_m)*(1+META*0.03))*(1+naturalist_m)*(1+ferocity_m)));
								damage+=dmg;
								ydamage+=dmg;						
								fb_damage_tot+=dmg;
								fbnum++;
								avgfbenergy+=(fb.energy+extfben)*(1+berserk);
								en-=(fb.energy+extfben);
								cp=0;
								gcd=100+lag;	
								
								
								//cout << "FB (crit): "<< dmg << "\n";
								//	////cout << "fb (crit): " << dmg <<", Total damage: " << damage <<"\n";
								
							}
							else if(att<(fb.crit+fb.hit)){
								is_hitted=1;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+RA*0.03)*(1+BF*0.04)*(fb.adamage+fb.bdamage+extfben*(1+sr*src)*(1-red)*((ap*0.002439)+(9.4))*(1+naturalist_m)*(1+ferocity_m));
								damage+=dmg;
								ydamage+=dmg;						
								fb_damage_tot+=dmg;
								fbnum++;
								avgfbenergy+=(fb.energy+extfben)*(1+berserk);
								en-=(fb.energy+extfben);
								cp=0;
								gcd=100+lag;
								
								
								//cout << "FB (normal): "<< dmg << "\n";
								//	////cout << "fb (normal): " << dmg <<", Total damage: " << damage <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)((1-precision_m2)*(fb.energy));
								gcd=100+lag;				
								//cout << "FB (miss)\n";
								//	////cout << "fb (miss)" << ", Total damage: " << damage <<"\n";
							}
							
							//goto fine;
							
				}
						
						
						//rip?
						else if(((((sr==1)&&(en>=rip.energy)&&(cp>=rip_t)&&((rip_timer<=(combovsfb_time[0]*100))||
						((koj_timer<=(combovsfb_time[0])*100)&&(rip_timer<=(combovsfb_time[1]*100))))))&&((rip_expire==0)||(rip_timer<0)))
							 &&(time_to_die_boss>=(max_rip_downtime*100)))
						{
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<(rip.crit+rip.hit)){
								is_hitted=1;
								////cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								////cout << "RIP\n";
								ap_rip=ap;
								cp_rip=cp;
								sr_rip=sr;
								en-=rip.energy;
								ripnum++;
								bdebuff=1;
								if(bdebuff_timer<((12+rip_g*rip_glyph+twoT7*4)*100)){
									bdebuff_timer=(12+rip_g*rip_glyph+twoT7*4)*100;
								}
								rip_timer=(12+rip_g*rip_glyph+twoT7*4)*100;
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"Step: " << doublecycle_counter <<"\n";
								//cout << "RIP" << "\n";
								cp=0;
								rem=0;
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)((1-precision_m2)*rip.energy);
								
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "rip (miss)" << "\n";
							}
							
							//goto fine;
							
						}
						
						//high energy dump: rake? mangle?
						else if (((en >=(rake.energy+rip.energy-10))||((berserk==1)&&(en>=(fb.energy+5))))&& (cp==5)&&(rk==1))
						{
							if ((mdebuff_timer < 0)&&(rip_timer>=100+lag))
								{
									att=randnum();
									////cout << "Attack roll: " << att << "\n";
									
									if(att<mangle.crit){
										is_hitted=1;
										is_critted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp+=2;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (crit): " << dmg <<"\n";
									}
									else if(att<(mangle.crit+mangle.hit)){
										is_hitted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp++;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (normal): " << dmg <<"\n";
									}
									else{
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										en-=(int)(mangle.energy*0.2);
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (miss)" <<"\n";
									}
									
									//goto fine;
									
								}
								else if ((rake_timer < 0) && (rip_timer>=100+lag)
									  
									  &&(time_to_die_boss>=9*100)&&(rk==1))
								{
										att=randnum();
										//	////cout << "Attack roll: " << att << "\n";
										
										if((att<rake.crit)&&(en>=rake.energy)){
											is_hitted=1;
											is_critted=1;
											//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
											dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((rake.acritdamage)+rake.bcritdamage)*(1+0.3*mdebuff);
											damage+=dmg;
											ydamage+=dmg;
											rake_damage_tot+=dmg;
											rakenum++;
											rkem=0;
											ap_rake=ap;
											sr_rake=sr;
											en-=rake.energy;
											
											bdebuff=1;
											if(bdebuff_timer<(9*100)){
												bdebuff_timer=9*100;
											}
											cp+=2;
											rake_timer=(9+3*twoT9)*100;
											gcd=100+lag;
											//cout << "     Rake (crit); " << dmg << "\n";
											//	////cout << "rake (crit): " << dmg <<", Total damage: " << damage <<"\n";
										}
										else if((att<(rake.crit+rake.hit))&&(en>=rake.energy)){
											is_hitted=1;
											//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
											dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(rake.adamage+rake.bdamage)*(1+0.3*mdebuff);
											damage+=dmg;
											ydamage+=dmg;
											rake_damage_tot+=dmg;
											rakenum++;
											rkem=0;								
											ap_rake=ap;
											sr_rake=sr;
											en-=rake.energy;
											
											bdebuff=1;
											if(bdebuff_timer<(9*100)){
												bdebuff_timer=9*100;
											}
											rake_timer=(9+3*twoT9)*100;
											cp++;
											gcd=100+lag;
											//cout << "     Rake (normal); " << dmg << "\n";
											//	////cout << "rake (normal): " << dmg <<", Total damage: " << damage <<"\n";
										}
										else if(en>=rake.energy){
											//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
											en-=(int)(rake.energy*0.2);
											
											gcd=100+lag;
											//cout << "     Rake (miss)\n";
											//	////cout << "rake (miss)" << ", Total damage: " << damage <<"\n";
										}
										//goto fine;
										
									}
						
						
						//high energy dump: manglespam?
						else if(((en>=90)||((berserk==1)&&(en>=mangle.energy))) && (mangle_only==1) && (mdebuff_timer>=(100+lag)) && ((rake_timer>=(100+lag)||(rk==0))) && (rip_timer>=(100+lag)) && (cp==5))
						{
							att=randnum();
							////cout << "Attack roll: " << att << "\n";
							
							if(att<mangle.crit){
								is_hitted=1;
								is_critted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp+=2;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (crit): " << dmg <<"\n";
							}
							else if(att<(mangle.crit+mangle.hit)){
								is_hitted=1;
								////cout << "     Mangle\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
								damage+=dmg;
								ydamage+=dmg;						
								mangle_damage_tot+=dmg;
								manglenum++;
								en-=mangle.energy;
								cp++;
								mdebuff=1;
								if (mdebuff_timer<=mdebuff_cd*100){
									mdebuff_timer=mdebuff_cd*100;
								}
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (normal): " << dmg <<"\n";
							}
							else{
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								en-=(int)(mangle.energy*0.2);
								gcd=100+lag;
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "	Mangle (miss)" <<"\n";
							}
							
							//goto fine;
							
						}
						
						//high energy dump: shred?
						else if(((en>=90)||((berserk==1)&&(en>=shred.energy)))&& (mdebuff_timer>=(100+lag)) && ((rake_timer>=(100+lag)||(rk==0))) && (rip_timer>=(100+lag)) && (cp==5))
						{
						att=randnum();
						////cout << "Attack roll: " << att << "\n";
						
						if(att<shred.crit){
							is_hitted=1;
							is_critted=1;
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							////cout << "     Shred\n";
							dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
							damage+=dmg;
							ydamage+=dmg;						
							shred_damage_tot+=dmg;
							shrednum++;
							en-=shred.energy;
							if((shred_stack<max_shred)&&(rip_timer>0)){
								rip_timer+=shred_g*shred_glyph*100;
								shred_stack+=1;
							}
							cp+=2;
							gcd=100+lag;
							////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "	shred (crit): " << dmg  <<"\n";
						}
						else if(att<(shred.crit+shred.hit)){
							is_hitted=1;
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							////cout << "     Shred\n";
							dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
							damage+=dmg;
							ydamage+=dmg;						
							shred_damage_tot+=dmg;
							shrednum++;
							en-=shred.energy;
							if((shred_stack<max_shred)&&(rip_timer>0)){
								rip_timer+=shred_g*shred_glyph*100;
								shred_stack+=1;
							}
							cp++;
							gcd=100+lag;
							////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "	shred (normal): " << dmg <<"\n";
						}
						else{
							//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
							en-=(int)(shred.energy*0.2);
							
							gcd=100+lag;
							////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "	shred (miss)" <<"\n";
						}
						
						//goto fine;
						
					}
						}

							
						
				}
				
			fine:;
			}

			}
			else if(((move_interval_timer<=0)&&(move_time_timer<=0))||(movement!=1)){
				move_time_timer=move_time*100;
				move_interval_timer=move_interval*100;				
			}
			
		}
		wdamage2+=wdamage;
		ydamage2+=ydamage;
		damage2=wdamage2+ydamage2;
		mangle_damage_tot2+=mangle_damage_tot;
		shred_damage_tot2+=shred_damage_tot;
		rip_damage_tot2+=rip_damage_tot;
		fb_damage_tot2+=fb_damage_tot;
		rake_damage_tot2+=rake_damage_tot;
		wdamage_sr2+=wdamage_sr;
		wbdamage2+=wbdamage;
		ybdamage2+=ybdamage;
		bear_damage2=wbdamage2+ybdamage2;
		mangleb_damage2+=mangleb_damage;
		lacerate_damage2+=lacerate_damage;
		maul_damage2+=maul_damage;
		swipe_damage2+=swipe_damage;
		FeralFairieFire_damage2+=FeralFairieFire_damage;
		threat2+=bear_aggro_mod*threat;
		oom2+=(oom/6000.0);
		
		if((wdamage+ydamage+wbdamage+ybdamage)>damagemax){
			damagemax= wdamage+ydamage+wbdamage+ybdamage;
		}
		
		if((wdamage+ydamage+wbdamage+ybdamage)<damagemin){
			damagemin= wdamage+ydamage+wbdamage+ybdamage;
		}
		
		dps_vector[timer2]=(100.0*((wdamage+ydamage+wbdamage+ybdamage)/(1.0*timer)));
		boss_vector[timer2]=(100.0*((boss_damage)/(1.0*timer)));
		myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp;
		real_hp_bear_vector[timer2] = myhp_bear*(1+(1.30+surv_glyph*surv_g)*(surv_duration/surv_cd))*((melee.damage/boss_swing)/boss_vector[timer2]);
		
		if(real_hp_bear_vector[timer2]<realhpbearmin){
			realhpbearmin=real_hp_bear_vector[timer2];
		}
		if(real_hp_bear_vector[timer2]>realhpbearmax){
			realhpbearmax=real_hp_bear_vector[timer2];
		}


		
		
		////cout << (int)(100.0*((wdamage+ydamage+wbdamage+ybdamage)/(timer))) << endl;
		
	}
	
	myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)+DA*1015+MOW*1050;
	mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));


	
	threat2+=damage2*cat_aggro_mod;
	
	double avgcycletime=(1.0*timer*(1.0*timer2))/(100.0*cycle_time);
	manglexcycle=((double)manglenum)/(1.0*cycle_time);
	shredxcycle=((double)shrednum)/(1.0*cycle_time);
	rakexcycle=((double)rakenum)/(1.0*cycle_time);
	ripxcycle=((double)ripnum)/(1.0*cycle_time);
	fbxcycle=((double)fbnum)/(1.0*cycle_time);
	manglebxcycle=((double)manglebnum)/(1.0*cycle_time);
	maulxcycle=((double)maulnum)/(1.0*cycle_time);
	laceratexcycle=((double)laceratenum)/(1.0*cycle_time);
	swipexcycle=((double)swipenum)/(1.0*cycle_time);
	FeralFairieFirexcycle=((double)FeralFairieFirenum)/(1.0*cycle_time);

	
	avmangle=mangle_damage_tot2/((double)manglenum);
	avshred=shred_damage_tot2/((double)shrednum);
	avrake=rake_damage_tot2/((double)rakenum);
	avrip=rip_damage_tot2/((double)ripnum);
	avfb=fb_damage_tot2/((double)fbnum);
	avmangleb=mangleb_damage2/((double)manglebnum);
	avmaul=maul_damage2/((double)maulnum);
	avlacerate=lacerate_damage2/((double)laceratenum);
	avswipe=swipe_damage2/((double)swipenum);
	avFeralFairieFire=FeralFairieFire_damage2/((double)FeralFairieFirenum);

	
	double  dps_average=100.0*((damage2+bear_damage2)/(1.0*timer*(1.0*timer2)));
	double tp_average=0;
	
	long double sigma=0;
	long double sigma2=0;
	long double sigmatp=0;
	long double sigma2tp=0;
	
		
	//cout << endl << endl;
	
	
	dps_average=0;
	
	for(int i=0;i<sample_fight;i++){
		dps_average+=dps_vector[i];
		tp_average+=boss_vector[i];
	}
	
	dps_average=dps_average/((double)sample_fight);
	tp_average=tp_average/((double)sample_fight);
	
	//cout << endl << endl;
	
	for(int i=0;i<sample_fight;i++){
		//cout<< dps_vector[i] << endl;
		sigma2+=((dps_vector[i]-dps_average)*(dps_vector[i]-dps_average));
		sigma2tp+=((boss_vector[i]-tp_average)*(boss_vector[i]-tp_average));

	}
	
	sigma=sqrt(sigma2/((1.0*sample_fight)*((1.0*sample_fight)-1)));
	sigmatp=sqrt(sigma2tp/((1.0*sample_fight)*((1.0*sample_fight)-1)));

	
	
	double parry_dps=(1-((1.0*timer*timer2)/(100.0*(boss_crit+boss_hit+boss_miss)))/boss_swing);
	double shielded_hit=(1.0*shielded)/(boss_crit+boss_hit);
	
	ofstream file;
	file.open ("FeralbyNightOutput.txt");
	streambuf* sbuf = cout.rdbuf();
	cout.rdbuf(file.rdbuf());
	
	double damage_step=100*(damagemax-damagemin)/(1.0*timer*(100));
	if(fixed_damage_step==1){
		damage_step=23;
	}
	if(fixed_damagemin==1){
		damagemin=6600*(1.0*timer)/100.0;
	}
	//cout << endl << damagemax << "    " << damagemin << "    " <<damage_step << endl;
	double realhp_step=(realhpbearmax-realhpbearmin)/(100);
	for(int i=0;i<100;i++){
		damage_step_vector[i]=100*(damagemin)/(1.0*timer)+damage_step*(1.0*i);
		//cout << endl << i << "\t" << damage_step_vector[i] << endl;

		real_hp_bear_step_vector[i]=realhpbearmin+realhp_step*(i);
	}
	
	for(int i=0;i<100;i++){
	damage_step_value_vector[i]=0;
		real_hp_bear_step_value_vector[i]=0;
		damage_step_cumulative_vector[i]=0;
		real_hp_bear_step_cumulative_vector[i]=0;
	}
	for(int i=0;i<99;i++){

	for(int j=0;j<sample_fight;j++){
		if((dps_vector[j]<damage_step_vector[i+1])&&(dps_vector[j]>=damage_step_vector[i])){
								   damage_step_value_vector[i+1]+=1;
									}
		if((dps_vector[j]<damage_step_vector[i+1])){
			damage_step_cumulative_vector[i+1]+=(1.0/(sample_fight-1));
		}
		if((dps_vector[j]<real_hp_bear_step_vector[i+1])&&(dps_vector[j]>=real_hp_bear_step_vector[i])){  //SISTEMA PARTE VITA!!!!
			real_hp_bear_step_value_vector[i+1]+=1;
		}
		if((dps_vector[j]<real_hp_bear_step_vector[i+1])){
			real_hp_bear_step_cumulative_vector[i+1]+=(1.0/(sample_fight-1));
		}
					}
		}
		
	//cout.rdbuf(sbuf);

	for (int k=1; k<10;k++){
	for(int i=1;i<99;i++){
		if(damage_step_cumulative_vector[i]<=0.1*k){
			damage_step_dispersion_vector[k]=damage_step_vector[i]-1;
		}
	}
		//cout << "\t" << damage_step_dispersion_vector[k];
	}
	
	double samp_num=0;
	double dps_precision=1;
	
	for(int k=1; k<10;k++){
		//cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision  << "\t" << k << endl;

		do{
		//	cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision << "\t" << k << endl;

		samp_num=0;
			damage_step_dispersion_vector[k]+=dps_precision;   //SISTEMA QUI!!!
	for(int j=0;j<sample_fight;j++){
		if((dps_vector[j]<damage_step_dispersion_vector[k])){
		samp_num+=(1.0/(sample_fight-1));
		}
		//cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision << "\t" << j << "\t" << k << endl;
	}
		}while(samp_num<=(0.1*k));
			
	}

	
	/*Defencive stats*/
	trinket1.up=0;
	trinket2.up=0;
	wpn_enchant.up=0;
	myarmor_bear=2*(agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)+myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+(armor_bonus+trinket1.armor_bonus*trinket1.up+trinket2.armor_bonus*trinket2.up+wpn_enchant.armor_bonus*wpn_enchant.up)+DA*1015+MOW*1050;
	defense=400+(double)((int)((defense_rating+trinket1.defense_rating*trinket1.up-trinket2.defense_rating*trinket2.up-wpn_enchant.defense_rating*wpn_enchant.up)/4.918498039));
	dodge_app = ((dodge_rating+trinket1.dodge_rating*trinket1.up+trinket2.dodge_rating*trinket2.up+wpn_enchant.dodge_rating*wpn_enchant.up)/39.34798813) +((defense-400)/25) + (((agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)-base_agi)/41.66666667);
	miss_app= ((defense-400)/25);
	miss_from_rat = (1/( 1/miss_fact + 0.972/miss_app));
	dodge_from_rat= dodge_app_base_agi + (1/( 1/dodge_fact + 0.972/dodge_app));
	mydodge_bear=-dodge_red+base_dodge+0.01*(dodge_from_rat)+fw_m+nr_m;
	mymiss=miss_from_rat*0.01+0.02*NE+0.03*INSECT+0.044-dodge_red;
	mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
	myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp;
	avoidance_bear=mymiss+mydodge_bear;
	
	melee.miss=avoidance_bear;
	melee.hit=1-melee.miss-melee.crit;
	
	if (melee.hit<=0){
		melee.hit=0;
	}
	
	//Writing DPS, White and Yellow components.
	
	cout << "\n" << "\n" << "DPS: " << dps_average << " +/- " << sigma <<", (Min-Max variance: " <<100.0*(damagemax-damagemin)/((damage2+bear_damage2)/(1.0*timer2))<<"%, Lower dps sample: " << 100.0*((damagemin)/(1.0*timer)) << ", Upper dps sample: " << 100.0*((damagemax)/(1.0*timer)) <<") , Cat: " << 100.0*damage2/(damage2+bear_damage2) <<"%, Bear: " << 100.0*bear_damage2/(damage2+bear_damage2) << "%, TPS: "<< ((threat2)*100.0)/(1.0*timer*(1.0*timer2)) <<"\n \n************************************** \n              CAT \n\n" << "White cat: " << (100.0*wdamage2)/(1.0*timer*(1.0*timer2)) <<", Yellow cat: " << (100.0*ydamage2)/(1.0*timer*(1.0*timer2)) << "\nWhite: " << (100.0*wdamage2)/(1.0*damage2) << "% (SR: " << 100.0*wdamage_sr2/(1.0*wdamage2) <<"%)\nMangle: " << (100.0*mangle_damage_tot2)/(1.0*damage2) <<"%, Avg dmg: " << avmangle << ", #/cycle: " << manglexcycle << "), Shred: " << (100.0*shred_damage_tot2)/(1.0*damage2) << "%, Avg dmg: " << avshred << ", #/cycle: " << shredxcycle <<"), RIP: " << (100.0*rip_damage_tot2)/(1.0*damage2) <<"%, Avg dmg: " << avrip << ", #/cycle: " << ripxcycle <<")\nRake: " << (100.0*rake_damage_tot2)/(1.0*damage2) <<"%, Avg dmg: " << avrake << ", #/cycle: " << rakexcycle <<"), Ferocious Bite: " << (100.0*fb_damage_tot2)/(1.0*damage2) <<"%, Avg dmg: " << avfb << ", #/cycle: " << fbxcycle << ", Average Energy Usage: "<< avgfbenergy/(fbnum+1)<<")\nSavage Roar uptime: " << (100.0*sr_up)/(1.0*timer*(1.0*timer2)) <<"%\n \n************************************** \n              BEAR \n\n" << "White bear: " << (100.0*wbdamage2)/(1.0*timer*(1.0*timer2)) <<", Yellow bear: " << (100.0*ybdamage2)/(1.0*timer*(1.0*timer2)) << "\nWhite bear: " << (100.0*wbdamage2)/(1.0*bear_damage2) << "%\nMangle bear: " << (100.0*mangleb_damage2)/(1.0*bear_damage2) <<"%, Average Damage: " << avmangleb << ", Maul: " << (100.0*maul_damage2)/(1.0*bear_damage2) << "%, Average Damage: " << avmaul << ", Lacerate: " << (100.0*lacerate_damage2)/(1.0*bear_damage2) << "%, Average Damage: " << avlacerate << ", Swipe: " << (100.0*swipe_damage2)/(1.0*bear_damage2) << "% Average Damage: " << avswipe << ", FeralFairieFire: " << (100.0*FeralFairieFire_damage2)/(1.0*bear_damage2) << "% Average Damage: " << avFeralFairieFire<< "\n \n************************************** \n              OTHER INFOS \n\n" << "Bleed debuff uptime: " << (100.0*bdebuff_up)/(1.0*timer*(1.0*timer2)) <<"%" <<  ", Mangle debuff uptime: " << (100.0*mdebuff_up)/(1.0*timer*(1.0*timer2)) <<"%"  << ", Mangle-RIP debuff downtime: " << (100.0*mang_rip*200.0)/(1.0*timer*(1.0*timer2)) <<"%" << "\nAverage Cycle Time: "<<avgcycletime <<", Powershifts each " << (timer*1.0*(1.0*timer2))/(100.0*pw) << " seconds (average)" << ", Out five seconds rule time: " << (100.0*outfivesec)/(1.0*timer*(1.0*timer2)) << "%, Average time before oom: " << (oom2)/(1.0*timer2) <<" min\n" << "\n";
	
	if(cat_bear==0){
		cout << "\n" << "\n" << "Boss crit: " << (100.0*boss_crit)/((double)(boss_crit+boss_hit+boss_miss)) << "%, Boss hit: " << (100.0*boss_hit)/((double)(boss_crit+boss_hit+boss_miss)) << "%, Boss miss: " << (100.0*boss_miss)/((double)(boss_crit+boss_hit+boss_miss)) << "%, Boss white dps: " << tp_average << ", Boss average weapon speed: " << (1.0*timer*timer2)/(100.0*(boss_crit+boss_hit+boss_miss)) << " sec." << ", Boss average parried attacks x sec: " << 100.0*(100.0*(boss_parried))/(1.0*timer*timer2) << "%, Average Boss White DPS increase due to parry: " << parry_dps*100.0<<"% " << "\nChance to die: " << ((1.0*silence)*100.0*dead)/(1.0*(timer)*1.0*timer2) << "% without heals in: " << silence/100.0 << " seconds\n\n";
	}
	
	/*Defensive Stats after the buffs (vs. a raid boss, full stacked raid)*/
	//Real HP
	//int real_hp_bear = (int)((1/(1+tobecrit))*(myhp_bear/((1+parry_dps)*(1-mydr_bear)*(1-avoidance_bear))));
	int real_hp_bear = myhp_bear*(1+(1.30+surv_glyph*surv_g)*(surv_duration/surv_cd))*((melee.damage/boss_swing)/tp_average);
	sigmatp=  real_hp_bear*(sigmatp/tp_average);
	
	cout << "_____________________________________" << endl << endl;
	
	cout << "Defensive Stats after the buffs (vs. a raid boss, full stacked raid + Devotion Aura)" << endl << "_______________________" << endl << endl;
	cout << "Stamina (cat): " << (int)stamina << endl;
	cout << "Stamina (bear): " << (int)(stamina*1.25*(1+hotw_m2)) << endl;
	cout << "Cat armor: " << myarmor_caster << endl;
	cout << "Bear armor (before inspiration): " << myarmor_bear << endl;
	cout << "Physical Damage Reduction Cat: " << mydr*100 << "%" << endl;
	cout << "Physical Damage Reduction Bear (before inspiration): " << mydr_bear*100 << "%" << endl;
	cout << "Defense: " << defense << endl;
	cout << "Chance to be critical hit: " << tobecrit*100 << "%" << endl;
	cout << "Dodge (cat): " << mydodge*100 << "%" << endl;
	cout << "Dodge (bear): " << mydodge_bear*100 << "%" << endl;
	cout << "Miss: " << mymiss*100 << "%" << endl;
	cout << "Total Avoidance (cat): " << (avoidance)*100 << "%" << endl;
	cout << "Total Avoidance (bear): " << (avoidance_bear)*100 << "%" << endl;
	cout << "Total HP (cat): " << myhp_caster << endl;
	cout << "Total HP (bear): " << myhp_bear << endl;
	cout << "HP soft cap (bear): " << melee.damage*5.0*(1-mydr_bear)/boss_swing << endl;
	cout << "Shielded hits: " << shielded_hit*100 <<"%"<< endl;
	cout << "Inspiration uptime: " << (10000.0*inspiration_uptime)/(1.0*timer*timer2) <<"%"<< endl;
	cout << "Tank Points (hp equivalent with 0% avoidance, 0% Damage Reduction and without parry from the boss) (bear): " << real_hp_bear << " +/- " << sigmatp << endl;
	
       cout << "_____________________________________" << endl << endl;
	
	file.close();
	
	file.open ("FeralbyNightOutputtankpointsample.txt");
	cout.rdbuf(file.rdbuf());
	
	for(int i=0;i<100;i++){
		cout << real_hp_bear_step_vector[i] <<"\t" << real_hp_bear_step_value_vector[i]<< endl;
	}
	
	file.close();
	
	file.open ("FeralbyNightOutputdpssample.txt");
	cout.rdbuf(file.rdbuf());
	
	for(int i=0;i<100;i++){
		cout << damage_step_vector[i] <<"\t" << damage_step_value_vector[i]/(1.0*sample_fight)<< endl;
	}
	
	file.close();
	
	file.open ("FeralbyNightOutputtankpointsamplecumulative.txt");
	cout.rdbuf(file.rdbuf());
	
	for(int i=0;i<100;i++){
		cout << real_hp_bear_step_vector[i] <<"\t" << real_hp_bear_step_cumulative_vector[i]<< endl;
	}
	
	file.close();
	
	file.open ("FeralbyNightOutputdpssamplecumulative.txt");
	cout.rdbuf(file.rdbuf());
	
	for(int i=0;i<100;i++){
		cout << damage_step_vector[i] <<"\t" << damage_step_cumulative_vector[i]<< endl;
	}
	
		
		file.close();
		
		file.open ("FeralbyNightOutputdpssampledispersion.txt");
		cout.rdbuf(file.rdbuf());
		
		for(int i=1;i<10;i++){
			cout << (i*0.1) <<"\t" << damage_step_dispersion_vector[i]<< endl;
		}
		
	file.close();
	
	cout.rdbuf(sbuf);
	cout << "Output saved into FeralbyNightOutput.txt" << endl;
	
	}

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	int space_counter=0;
	int space_counter_max=5*5*6*6*6;
	
	
	if(variable_space==1){
		for(l=0;l<5;l++){
			for(m=0;m<5;m++){
				for(n=0;n<6;n++){
					for(o=0;o<6;o++){
						for(q=0;q<6;q++){
							
							space_counter++;
							cout << endl << 100.0*space_counter/space_counter_max << "%" << endl;
							dps_value_matrix[l][m][n][o][q]=0;
							
							/*
							 int critmax, hitmax, hastemax, apmax, arpenmax;
							 
							 critmax= (int)((maxcrit-mincrit)/stepcrit);
							 hastemax= (int)((maxhaste-minhaste)/stephaste);
							 arpenmax= (int)((maxarpen-minarpen)/steparpen);
							 hitmax= (int)((maxhit-minhit)/stephit);
							 apmax= (int)((maxap-minap)/stepap);
							 */
							
							bcrit=mincrit+stepcrit*(1.*l);
							hit=minhit+stephit*(1.*m);
							haste=minhaste+stephaste*(1.*n);
							apbase=minap+stepap*o;
							double arpen=minarpen+steparpen*(1.*q);
							
							//cout<< bcrit << "  " << hit << "  " << haste << "  " <<  apbase << "  " <<  arpen << "  " << endl;
							
							
							//Modified combat table white damage-----------------------------------
							
							speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
							
							
							ap=apbase+trinket1.apbase*trinket1.up+trinket2.apbase*trinket2.up+wpn_enchant.apbase*wpn_enchant.up;
							
							
							miss=bmiss-hit-trinket1.hit*trinket1.up-trinket2.hit*trinket2.up-wpn_enchant.hit*wpn_enchant.up;
							if(miss<0){
								miss=0;
							}
							
							
							dodge=bdodge-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025;
							if(dodge<0){
								dodge=0;
							}
							
							parry=(bparry-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025)*(1-BEHIND);
							if(parry<0){
								parry=0;
							}
							
							
							crit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
							
							wcrit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
							
							wmiss=miss+dodge+parry;
							wnhit=1-bcrit-wmiss-wglance;
							if(wnhit<=0){
								wnhit=0;
							}
							
							
							
							/*Modified combat table yellow damage, 2 roll system pre-calculated to avoid using 2 RNG*/
							ymiss=miss+dodge+parry;
							yhitted=1-ymiss;
							ycrit=yhitted*(bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up);
							yhit=yhitted-ycrit;
							
							
							
							arpen_cap=(((1-FF*0.05)*(1-SA*0.2))*barmor+15232.5)/3;
							if ((((1-FF*0.05)*(1-SA*0.2))*barmor) < arpen_cap){
								arpen_cap=(((1-FF*0.05)*(1-SA*0.2))*barmor);
							}
							eff_arpen=arpen+trinket1.armor_pen*trinket1.up+trinket2.armor_pen*trinket2.up+wpn_enchant.armor_pen*wpn_enchant.up;
							if (eff_arpen>1){
								eff_arpen=1;
							}
							armor=barmor*((1-FF*0.05)*(1-SA*0.2))-(eff_arpen)*arpen_cap;
							
							red=1-(15232.5 / (armor + 15232.5)); /*Boss damage reduction based on boss armor*/
							
							//Ability damage----------------------------------------
							/*paw*/
							
							
							//paw.energy=0;
							paw.adamage=(1-red)*(ap/14)*(1+naturalist_m);
							paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
							paw.acritdamage=paw.adamage*2*(1+pistinct_m)*(1+META*0.03);
							paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
							paw.miss=wmiss;
							paw.hit=wnhit;
							paw.crit=wcrit;
							paw.glance=wglance;
							
							//mangle
							//mangle.energy=40-impmangle_m;
							mangle.adamage=(1-red)*((ap/14)*2.0)*(1+fury_m)*(1+naturalist_m);
							mangle.acritdamage=mangle.adamage*2*(1+pistinct_m)*(1+META*0.03);
							mangle.bdamage=(1-red)*((weapon)*2.0+634)*(1+fury_m)*(1+naturalist_m);
							mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
							mangle.miss=ymiss;
							mangle.crit=ycrit;
							mangle.hit=yhit;
							mangle.glance=0;
							
							//shred
							
							//shred.energy=60-s_att_m;
							shred.adamage=(1-red)*((ap/14)*2.25)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
							shred.acritdamage=shred.adamage*2*(1+pistinct_m)*(1+META*0.03);
							shred.bdamage=(1-red)*((weapon)*2.25+666+IDOL_SHRED*203.0)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
							shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
							shred.miss=ymiss;
							shred.crit=ycrit;
							shred.hit=yhit;
							shred.glance=0;
							
							
							//rake
							
							//rake.energy=35;
							rake.adamage=((ap*0.01))*(1+fury_m)*(1+naturalist_m)*(1+mdebuff*0.3);
							rake.acritdamage=(2*(1+pistinct_m)*(1+META*0.03)*((ap*0.01))*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
							rake.bdamage=(176)*(1+fury_m)*(1+naturalist_m)*(1+mdebuff*0.3);
							rake.bcritdamage=(2*(1+pistinct_m)*(1+META*0.03)*(176)*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
							rake.miss=ymiss;
							rake.crit=ycrit;
							rake.hit=yhit;	
							shred.glance=0;
							
							
							
							//RIP
							rip.energy=30;
							rip.adamage=((ap)*0.01*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
							rip.acritdamage=rip.adamage;
							rip.bdamage=(36+IDOL_WS*cp*21.0+93*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
							rip.bcritdamage=rip.bdamage;
							rip.crit=0;
							rip.hit=yhitted;
							rip.miss=ymiss;
							rip.glance=0;
							
							
							
							//fb
							
							fb.energy=35;
							fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
							fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
							fb.bdamage=(1-red)*(190+290*cp+(9.4)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
							fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
							
							fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9));
							fb.hit=yhitted-fb.crit;
							
							if((crit+(ret_m2+0.05*fourT9))>=1){
								fb.crit=yhitted;
								fb.hit=0;
							}
							
							fb.miss=ymiss;
							fb.glance=0;

	
	
	////Boss damage--------------------------------------
	
	double boss_swing=1.7; //Boss swing time in seconds	
	
	boss_swing=boss_swing*(1+0.2*IW); //taking Infected Wound into account
	
	
	bossattack melee, special1, special2, special3, special4;
	melee.damage=70000; //Boss swing damage
	
	melee.damage=melee.damage*(1-ferocity_m2-DemoR*0.114); //Demoralizing Roar effect
	
	melee.cd=boss_swing;
	melee.tick_numb=0;
	melee.tick_time=1;
	melee.bleed=0;
	melee.magic=0;
	
	melee.crit=tobecrit;
	melee.miss=avoidance_bear;
	melee.hit=1-melee.miss-melee.crit;
	
	if (melee.hit<=0){
		melee.hit=0;
	}
	
	special1.damage=70000; //Boss special damage total if istant or x tick if is a dot
	special1.cd=10; //boss physical special damage cooldown in seconds.
	special1.tick_numb=0; //set 0 if it's an istant or set to the total number of ticks otherwise
	special1.tick_time=1; // set to 1 if is an istant, set to the number of ticks otherwise
	special1.bleed=0; // set to 1 if it's a bleed.
	special1.magic=0; //set to 1 if it's magic.
	special1.crit=0;
	special1.miss=avoidance_bear; //miss chance of the ability
	special1.hit=1-special1.miss-special1.crit; //hit chance of the ability
	if (special1.hit<=0){
		special1.hit=0;
	}
	
	
	unsigned long int boss_hit=0;
	unsigned long int boss_crit=0;
	unsigned long int boss_parried=0;
	unsigned long int boss_miss=0;
	unsigned long int shielded=0;
	long double boss_damage=0;
	unsigned long int dead=0;
	int hp_shot=myhp_bear;
	int silence=5;
	
	
	silence=silence*100;
	
	att=randnum();
	
	
	////--------------------------------------------------------
	
	
	for(timer2=0; timer2<sample_fight;timer2++){
		
		
		
		int pws=powershift;
		
		dmg=0; //damage
		wdamage=0; //white damage
		wdamage_sr=0;
		ydamage=0; //yellow damage
		mangle_damage_tot=0;
		shred_damage_tot=0;
		rip_damage_tot=0;
		fb_damage_tot=0;
		rake_damage_tot=0;
		
		wbdamage=0;
		ybdamage=0;
		mangleb_damage=0;
		maul_damage=0;
		lacerate_damage=0;
		swipe_damage=0;
		FeralFairieFire_damage=0;
		bear_damage=0;
		boss_damage=0;
		
		shield_up=0;
		
		threat=0;
		
		int init_en=wait_energy;
		en=100-1;
		cp=0; //combo points
		cp_rip=0;
		ap_rip=ap;
		ap_rake=ap;
		mdebuff=manglebot; //mangle debuff switch
		mdebuff_timer=2*sim_time*manglebot; //mangle debuff timer
		mdebuff_cd=12+mangle_glyph*m_g; //mangle debuff initial timer value
		int FFF_cd=6; //FFF cooldown
		int FFF_step=0; //FFF time step
		att=0; //dumb variable with the attack roll value
		damage=0; //total damage
		bdebuff=bleeding; //bleed debuff switch
		bdebuff_timer=2*bleeding*sim_time; //bleed debuff timer
		rip_timer=-1; //rip timer
		rake_timer=-1;
		ooc_rate=0.058333; // Omen of clarity proc chanche (5.83%)
		twoT8_rate=0.02;
		ooc_proc=0; // omen of clarity switch (1 = proccing)
		koj_timer=0; // tiger fury timer
		koj_cd=30-3*fourT7; // tiger fury cooldown
		koj_step=6; // tiger fury timer
		koj_damage=80.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
		bark_timer=0; //barkskin up duration
		bark_cd_timer=0; //barkskin cd timer
		bark_up=0; // barkskin switch
		mana=bmana;
		int berserk=0;
		int berserk_cd=18000;
		int berserk_timer=0;
		int berserk_cd_timer=0;
		int berserk_duration=15+berserk_g*berserk_glyph;
		int fivesec=0;
		int oom=sim_time;
		int catbear=cat_bear; //0 for bear, 1 for cat
		rage_tot=0;
		if(cat_bear==0){
			rage_tot=10;
		}
		int bmangle_step=0; //keep track of bear mangle cooldown
		
		int swinger=0; //swing timer adjust between bear and cat form
		
		l_stack=0;
		l_timer=0;
		l_counter=-1;
		l_cd=15;
		enrage_cd=60;
		enrage_step=0; //+20 rage over 10 seconds.
		enrage_timer=0;
		enrage_buff=0;
		enraged_l=0;
		enrage_mod=koj_m2;
		int enraged=0;
		int bear_time=0;
		
		int mangleb_timer=0;
		
		bloodlust_cd_timer=2500+int(2500*randnum());
		bloodlust_timer=0;
		bloodlust_up=0;
		int sr_rake=0;
		int sr_rip=0;
		int shredder=0;

		
		
		cycle=cat_bear; //ability switch
		
		int boss_swinger=0; //the boss swinger.
		int parried=0;
		double wparried=wmiss-miss-dodge;
		double yparried=ymiss-miss-dodge;
		
		wparried=wparried/wmiss;
		yparried=yparried/ymiss;
		
		int boss_swing2=(int)(melee.cd*100);
		
		
		
		shred_stack=0;
		
		trinket1.cd_timer=0;
		trinket1.duration_timer=0;
		trinket1.up=0;
		trinket2.cd_timer=0;
		trinket2.duration_timer=0;
		trinket2.up=0;
		wpn_enchant.cd_timer=0;
		wpn_enchant.duration_timer=0;
		wpn_enchant.up=0;
		
		is_hitted=0;
		is_critted=0;
		is_stuck=0;
		is_dotted=0;
		
		int move_time_timer=0;
		int move_interval_timer=move_interval*100;
		
		int time_to_die_boss = 5000;
		int recompute_value=1;
		
		for(timer=0;timer<sim_time;timer++){
			
			if (is_hitted==1) {
				
				if((trinket1.proc_chance_on_hit>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;
					
				}
				if((trinket2.proc_chance_on_hit>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;
					
				}
				if((wpn_enchant.proc_chance_on_hit>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;
					
				}
				is_hitted=0;
			}
			
			if (is_critted==1) {
				
				if((trinket1.proc_chance_on_crit>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;
					
				}
				if((trinket2.proc_chance_on_crit>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;
					
				}
				if((wpn_enchant.proc_chance_on_crit>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;
					
				}
				is_critted=0;
			}
			
			if (is_dotted==1) {
				if(twoT8_rate*twoT8>randnum()){
					ooc_proc=1;
					
				}
				
				if((trinket1.proc_chance_on_dot>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;
					
				}
				if((trinket2.proc_chance_on_dot>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;
					
				}
				if((wpn_enchant.proc_chance_on_dot>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;
					
				}
				is_dotted=0;
			}
			
			if (is_stuck==1) {
				
				if((trinket1.proc_chance_on_stuck>randnum())&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;
					
				}
				if((trinket2.proc_chance_on_stuck>randnum())&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;
					
				}
				if((wpn_enchant.proc_chance_on_stuck>randnum())&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;
					
				}
				is_stuck=0;
			}
			
			
			
			if((koj==1)&&(en>65)){
				if((trinket1.on_use==1)&&(trinket1.cd_timer<=0)){
					trinket1.cd_timer=trinket1.cd;
					trinket1.duration_timer=trinket1.duration;
					if(trinket1.up==0){
						trinket1.up=1;
					}
					else if(trinket1.up<trinket1.stack){
						trinket1.up+=1;
					}
					recompute_value=1;				
				}
				if((trinket2.on_use==1)&&(trinket2.cd_timer<=0)){
					trinket2.cd_timer=trinket2.cd;
					trinket2.duration_timer=trinket2.duration;
					if(trinket2.up==0){
						trinket2.up=1;
					}
					else if(trinket2.up<trinket2.stack){
						trinket2.up+=1;
					}
					recompute_value=1;
					
				}
				if((wpn_enchant.on_use==1)&&(wpn_enchant.cd_timer<=0)){
					wpn_enchant.cd_timer=wpn_enchant.cd;
					wpn_enchant.duration_timer=wpn_enchant.duration;
					if(wpn_enchant.up==0){
						wpn_enchant.up=1;
					}
					else if(wpn_enchant.up<wpn_enchant.stack){
						wpn_enchant.up+=1;
					}					
					recompute_value=1;
					
				}
			}
			
			
			if((recompute_value==1)&&(variable_space!=1)) {	
				
				claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
				speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
				
				//Modified combat table white damage-----------------------------------
				
				wglance=bglance;
				parry=bparry*(1-BEHIND);
				
				
				ap=apbase+trinket1.apbase*trinket1.up+trinket2.apbase*trinket2.up+wpn_enchant.apbase*wpn_enchant.up;
				/*Miss*/
				
				
				miss=bmiss-hit-trinket1.hit*trinket1.up-trinket2.hit*trinket2.up-wpn_enchant.hit*wpn_enchant.up;
				if(miss<0){
					miss=0;
				}
				
				m_miss=bm_miss-m_hit-trinket1.m_hit*trinket1.up-trinket2.m_hit*trinket2.up-wpn_enchant.m_hit*wpn_enchant.up;
				if(m_miss<0){
					m_miss=0;
				}
				
				dodge=bdodge-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025;
				if(dodge<0){
					dodge=0;
				}
				
				parry=(bparry-(expertise-trinket1.expertise*trinket1.up-trinket2.expertise*trinket2.up-wpn_enchant.expertise*wpn_enchant.up)*0.0025)*(1-BEHIND);
				if(parry<0){
					parry=0;
				}
				
				
				crit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
				
				wcrit=bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up;
				m_crit=bm_crit+trinket1.m_crit*trinket1.up+trinket2.m_crit*trinket2.up+wpn_enchant.m_crit*wpn_enchant.up;
				
				wmiss=miss+dodge+parry;
				wnhit=1-bcrit-wmiss-wglance;
				if(wnhit<=0){
					wnhit=0;
				}
				
				/*Modified combat table yellow damage, 2 roll system pre-calculated to avoid using 2 RNG*/
				ymiss=miss+dodge+parry;
				yhitted=1-ymiss;
				ycrit=yhitted*(bcrit+trinket1.crit*trinket1.up+trinket2.crit*trinket2.up+wpn_enchant.crit*wpn_enchant.up);
				yhit=yhitted-ycrit;
				
				m_ymiss=m_miss;
				m_yhitted=1-m_ymiss;
				m_ycrit=m_yhitted*m_crit;
				m_yhit=m_yhitted-m_ycrit;
				
				//cout<<"Trinket " << timer << endl;
				armor=10643;
				eff_arpen=armor_pen+trinket1.armor_pen*trinket1.up+trinket2.armor_pen*trinket2.up+wpn_enchant.armor_pen*wpn_enchant.up;
				if (eff_arpen>1){
					eff_arpen=1;
				}
				armor=armor*((1-FF*0.05)*(1-SA*0.2))-(eff_arpen)*arpen_cap;
				
				red=1-(15232.5 / (armor + 15232.5)); /*Boss damage reduction based on boss armor*/
				
				/*Bear Attacks*/
				ap_bear=(120+240+(attack_power+feral_ap*1.2+688*BS)+(2*str))*(1+TSA*0.1)*(1+pop_m2)+((trinket1.attack_power+2*trinket1.str)*(1+hotw_m1)*(1+TSA*0.1))*trinket1.up+((trinket2.attack_power+2*trinket2.str)*(1+hotw_m1)*(1+TSA*0.1))*trinket2.up+((wpn_enchant.attack_power+2*wpn_enchant.str)*(1+hotw_m1)*(1+TSA*0.1))*wpn_enchant.up;
				shield_value=(int)(ap_bear*0.25);
				
				mangleb.rage=15;
				mangleb.ragec=10;
				mangleb.adamage=(1-red)*((ap_bear/14)*2.5*1.15)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
				mangleb.acritdamage=mangleb.adamage*2*(1+META*0.03);
				mangleb.bdamage=(1-red)*((weapon)*2.5*1.15+299)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);
				mangleb.bcritdamage=mangleb.bdamage*2*(1+META*0.03);
				mangleb.miss=ymiss;
				mangleb.crit=ycrit;
				mangleb.hit=yhit;
				mangleb.glance=0;
				
				////cout << mangleb.adamage+mangleb.bdamage << endl;
				////cout << mangleb.acritdamage+mangleb.bcritdamage << endl;
				
				maul.rage=10;
				maul.ragec=5;
				maul.adamage=(1-red)*((ap_bear/14)*2.5)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
				maul.acritdamage=maul.adamage*2*(1+META*0.03);
				maul.bdamage=(1-red)*((weapon)*2.5+578+120*IDOL_PA)*(1+fury_m)*(1+naturalist_m)*(1+mss_m);//(1+bdebuff*ret_m1)
				maul.bcritdamage=maul.bdamage*2*(1+META*0.03);
				maul.miss=ymiss;
				maul.crit=ycrit;
				maul.hit=yhit;
				maul.glance=0;
				
				////cout << maul.adamage+maul.bdamage << endl;
				////cout << maul.acritdamage+maul.bcritdamage << endl;
				
				swipe.rage=15;
				swipe.ragec=10;
				swipe.adamage=(1-red)*(ap_bear*0.063)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
				swipe.acritdamage=swipe.adamage*2*(1+META*0.03);
				swipe.bdamage=(1-red)*(108+24*IDOL_PA)*(1+naturalist_m)*(1+mss_m)*(1+feral_inst_m);
				swipe.bcritdamage=swipe.bdamage*2*(1+META*0.03);
				swipe.miss=ymiss;
				swipe.crit=ycrit;
				swipe.hit=yhit;
				swipe.glance=0;
				
				////cout << swipe.adamage+swipe.bdamage << endl;
				////cout << swipe.acritdamage+swipe.bcritdamage << endl;
				////l_stack=1;
				
				lacerate.rage=15-s_att_m2;
				lacerate.ragec=10-s_att_m2;
				lacerate.adamage=(1+twoT7*0.05)*(ap_bear*0.05)*(1+naturalist_m)*(l_stack)*(1+mss_m);
				lacerate.acritdamage=lacerate.adamage;
				lacerate.bdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)+320*(1+naturalist_m)*(l_stack)*(1+mss_m);
				lacerate.bcritdamage=(1+twoT7*0.05)*(88)*(1+naturalist_m)*(1+mss_m)*2*(1+META*0.03)*(1+mss_m)+320*(1+naturalist_m)*(1+mss_m)*(l_stack);
				lacerate.miss=ymiss;
				lacerate.crit=ycrit;
				lacerate.hit=yhit;
				lacerate.glance=0;
				
				////cout << lacerate.adamage+lacerate.bdamage << endl;
				////cout << lacerate.acritdamage+lacerate.bcritdamage << endl;
				
				claw.adamage=(1-red)*((ap_bear/14)*2.5)*(1+naturalist_m)*(1+mss_m);
				claw.acritdamage=claw.adamage*2*(1+META*0.03);
				claw.bdamage=(1-red)*((weapon)*2.5)*(1+naturalist_m)*(1+mss_m);
				claw.bcritdamage=claw.bdamage*2*(1+META*0.03);
				
				claw.rage=(int)(-(7.5*((claw.adamage+claw.bdamage)/rage_conv)+hit_factor*2.5)/2);
				claw.ragec=(int)(-(7.5*((claw.acritdamage+claw.bcritdamage)/rage_conv)+hit_factor_c*2.5+5)/2);
				
				claw.miss=wmiss;
				claw.hit=wnhit;
				claw.crit=wcrit;
				claw.glance=wglance;
				
				
				FeralFairieFire.rage=0;
				FeralFairieFire.ragec=-5;
				FeralFairieFire.adamage=(ap_bear*0.15)*(1+naturalist_m)*(1+mss_m);
				FeralFairieFire.acritdamage=FeralFairieFire.adamage*1.5*(1+META*0.03);
				FeralFairieFire.bdamage=(1+naturalist_m)*(1+mss_m);
				FeralFairieFire.bcritdamage=FeralFairieFire.bdamage*1.5*(1+META*0.03);
				FeralFairieFire.miss=m_ymiss;
				FeralFairieFire.crit=m_ycrit;
				FeralFairieFire.hit=m_yhit;
				FeralFairieFire.glance=0;
				
				
				////cout << claw_speed << endl;
				////cout << rage_conv << endl;
				////cout << claw.rage << endl;
				////cout << claw.ragec << endl;
				
				////cout << claw.adamage+claw.bdamage << endl;
				////cout << claw.acritdamage+claw.bcritdamage << endl;
				
				
				infinite_rage=infinite_rage*(1-cat_bear);
				
				
				
				/*Defencive stats*/
				myarmor_bear=2*(agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)+myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+(armor_bonus+trinket1.armor_bonus*trinket1.up+trinket2.armor_bonus*trinket2.up+wpn_enchant.armor_bonus*wpn_enchant.up)+DA*1015+MOW*1050;
				defense=400+(double)((int)((defense_rating+trinket1.defense_rating*trinket1.up-trinket2.defense_rating*trinket2.up-wpn_enchant.defense_rating*wpn_enchant.up)/4.918498039));
				dodge_app = ((dodge_rating+trinket1.dodge_rating*trinket1.up+trinket2.dodge_rating*trinket2.up+wpn_enchant.dodge_rating*wpn_enchant.up)/39.34798813) +((defense-400)/25) + (((agi+trinket1.agi*trinket1.up+trinket2.agi*trinket2.up+wpn_enchant.agi*wpn_enchant.up)-base_agi)/41.66666667);
				miss_app= ((defense-400)/25);
				miss_from_rat = (1/( 1/miss_fact + 0.972/miss_app));
				dodge_from_rat= dodge_app_base_agi + (1/( 1/dodge_fact + 0.972/dodge_app));
				mydodge_bear=-dodge_red+base_dodge+0.01*(dodge_from_rat)+fw_m+nr_m;
				mymiss=miss_from_rat*0.01+0.02*NE+0.03*INSECT+0.044-dodge_red;
				mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
				myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp+trinket1.bonus_hp*trinket1.up+trinket2.bonus_hp*trinket2.up+wpn_enchant.bonus_hp*wpn_enchant.up;
				avoidance_bear=mymiss+mydodge_bear;
				
				melee.miss=avoidance_bear;
				melee.hit=1-melee.miss-melee.crit;
				
				if (melee.hit<=0){
					melee.hit=0;
				}
				
				//cout << "Trinket1: " << trinket1.up << ", Trinket2: " << trinket2.up << ", WPN Enchant: "<< wpn_enchant.up << ", Time: " << timer/100 << ", AP: " << ap_bear << ", crit: " << crit << ", red: " << red << ", speed: "<< claw_speed << ", Avoidance: " << avoidance_bear << endl;
				
				//Ability damage----------------------------------------
				/*paw*/
				
				
				//paw.energy=0;
				paw.adamage=(1-red)*(ap/14)*(1+naturalist_m);
				paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
				paw.acritdamage=paw.adamage*2*(1+pistinct_m)*(1+META*0.03);
				paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				paw.miss=wmiss;
				paw.hit=wnhit;
				paw.crit=wcrit;
				paw.glance=wglance;
				
				//mangle
				//mangle.energy=40-impmangle_m;
				mangle.adamage=(1-red)*((ap/14)*2.0)*(1+fury_m)*(1+naturalist_m);
				mangle.acritdamage=mangle.adamage*2*(1+pistinct_m)*(1+META*0.03);
				mangle.bdamage=(1-red)*((weapon)*2.0+634)*(1+fury_m)*(1+naturalist_m);
				mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				mangle.miss=ymiss;
				mangle.crit=ycrit;
				mangle.hit=yhit;
				mangle.glance=0;
				
				//shred
				
				//shred.energy=60-s_att_m;
				shred.adamage=(1-red)*((ap/14)*2.25)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
				shred.acritdamage=shred.adamage*2*(1+pistinct_m)*(1+META*0.03);
				shred.bdamage=(1-red)*((weapon)*2.25+666+IDOL_SHRED*203.0)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
				shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				shred.miss=ymiss;
				shred.crit=ycrit;
				shred.hit=yhit;
				shred.glance=0;
				
				
				//rake
				
				//rake.energy=35;
				rake.adamage=((ap*0.01))*(1+fury_m)*(1+naturalist_m);
				rake.acritdamage=(2*(1+pistinct_m)*(1+META*0.03)*((ap*0.01))*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
				rake.bdamage=(176)*(1+fury_m)*(1+naturalist_m);
				rake.bcritdamage=(2*(1+pistinct_m)*(1+META*0.03)*(176)*(1+fury_m)*(1+naturalist_m));//*(1+mdebuff*0.3);
				rake.miss=ymiss;
				rake.crit=ycrit;
				rake.hit=yhit;	
				shred.glance=0;
				
				
				
				//RIP
				rip.energy=30;
				rip.adamage=((ap)*0.01*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
				rip.acritdamage=rip.adamage;
				rip.bdamage=(36+IDOL_WS*cp*21.0+93*cp)*6*(1+naturalist_m);//*(1+mdebuff*0.3);
				rip.bcritdamage=rip.bdamage;
				rip.crit=0;
				rip.hit=yhitted;
				rip.miss=ymiss;
				rip.glance=0;
				
				
				
				//fb
				
				fb.energy=35;
				fb.adamage=(1-red)*((0.07*ap)*cp+(ap*0.002439)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
				fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
				fb.bdamage=(1-red)*(190+290*cp+(9.4)*(en-fb.energy))*(1+naturalist_m)*(1+ferocity_m);
				fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				fb.crit=yhitted*(crit+((ret_m2+0.05*fourT9)));
				fb.hit=yhitted-fb.crit;
				
				if((crit+((ret_m2+0.05*fourT9)))>=1){
					fb.crit=yhitted;
					fb.hit=0;
				}
				
				fb.miss=ymiss;
				fb.glance=0;
				
				
				recompute_value=0;
			}
			
			//computing bleeds
			if(((rip_timer%200==0))&&(rip_timer>=0)&&(rip_timer<(12+rip_g*rip_glyph+twoT7*4+shred_g*shred_glyph*shred_stack)*100)&&(cat_bear==1)){
				is_dotted=1;
				att=randnum();
				if ((att<(wcrit+0.05*fourT9))&&(pg==1)){
					dmg=(1+sr_rip*src)*((1+RA*0.03)*(1+BF*0.04)*((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
				}
				else{
					dmg=(1+sr_rip*src)*((1+RA*0.03)*(1+BF*0.04)*((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3));
				}
				
				
				rem++;
				//cout << "Tick: " << rem << " Rip Timer " << rip_timer/100.0 <<"\n";
				damage+=dmg;
				ydamage+=dmg;
				rip_damage_tot+=dmg;
				//cout << ".......................rip (bleed " << rem <<"): " << dmg <<"\n";
				if(mdebuff==0){
					mang_rip+=1;
				}
			}
			
			
			if(((l_counter%300==0))&&(l_timer>=0)&&(l_timer<l_cd*100)){
				is_dotted=1;
				att=randnum();
				if ((att<wcrit)&&(pg==1)){
					shield_up=1;
					dmg=(1+twoT7*0.05)*(1+RA*0.03)*(1+BF*0.04)*(64+(ap_bear*0.01))*(1+naturalist_m)*(l_stack)*(1+enraged_l*enrage_mod)*(1+mss_m)*(1+0.3*mdebuff)*2.0*(1+pistinct_m)*(1+META*0.03);
				}
				else{
					dmg=(1+twoT7*0.05)*(1+RA*0.03)*(1+BF*0.04)*(64+(ap_bear*0.01))*(1+naturalist_m)*(l_stack)*(1+enraged_l*enrage_mod)*(1+mss_m)*(1+0.3*mdebuff);
				}
				threat+=dmg*lacerate_aggro_mod;
				lem++;
				damage+=dmg;
				ybdamage+=dmg;
				lacerate_damage+=dmg;
				//l_damage+=dmg;
				//cout << ".......................Lacerate (bleed " << lem <<"): " << dmg << " Stack: " << l_stack << "\n";
			}
			
			
			if(((rake_timer%300==0))&&(rake_timer>=0)&&(rake_timer<(9+3*twoT9)*100)&&(cat_bear==1)){
				is_dotted=1;
				att=randnum();
				//	if ((att<wcrit)&&(pg==1)){
				//		dmg=(1+sr*src)*((1+RA*0.03)*(1+BF*0.04)*(ap_rake*0.06+358)*(1+naturalist_m)*(1+mdebuff*0.3)*(1+fury_m))*2.0*(1+pistinct_m)*(1+META*0.03);
				//	}
				//	else{
				dmg=(1+sr_rake*src)*((1+RA*0.03)*(1+BF*0.04)*(ap_rake*0.06+358)*(1+naturalist_m)*(1+mdebuff*0.3)*(1+fury_m));
				//	}
				rkem++;
				//cout << "Tick: " << rkem << " Rake Timer " << rake_timer/100.0 <<"\n";
				damage+=dmg;
				ydamage+=dmg;
				rake_damage_tot+=dmg;
				//cout << ".......................Rake (bleed " << rkem <<"): " << dmg <<"\n";
			}
			
			
			
			//ability counter time
			mdebuff_timer--;
			bdebuff_timer--;
			koj_step--;
			koj_timer--;
			sr_timer--;
			rip_timer--;
			rake_timer--;
			berserk_timer--;
			berserk_cd_timer--;
			
			gcd--;	
			fivesec--;
			
			l_timer--;
			l_counter--;
			enrage_timer--;
			enrage_step--;
			bmangle_step--;
			bear_time++;
			FFF_step--;
			bark_timer--;
			bark_cd_timer--;
			
			swinger++;
			
			bloodlust_cd_timer--;
			bloodlust_timer--;
			
			inspiration_timer--;
			
			boss_swinger++;
			
			trinket1.cd_timer--;
			trinket1.duration_timer--;
			trinket2.cd_timer--;
			trinket2.duration_timer--;
			wpn_enchant.cd_timer--;
			wpn_enchant.duration_timer--;
			move_time_timer--;
			move_interval_timer--;
			
			time_to_die_boss=sim_time-timer;
			
			
			
			if((inspiration==1)&&(timer%100==0)){
				inspiration_uptime+=inspiration_up;
				att=randnum();
				if(att<inspiration_proc_chance){
					myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)*1.25+DA*1015+MOW*1050;
					mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
					inspiration_timer=15*100;
					inspiration_up=1;
				}
			}
			
			if((inspiration==1)&&(inspiration_timer<0)&&(inspiration_timer>-3)){
				myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)+DA*1015+MOW*1050;
				mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
				inspiration_up=0;
			}
			
			
			
			
			////-----------------BOSS DAMAGE-------------------------------------------
			
			if(cat_bear==0){
				
				if(hp_shot<=0){
					dead++;
					hp_shot=99999999;
					////cout << dead << endl;
				}
				
				if(timer%silence==0){
					////cout << timer << endl;
					hp_shot=myhp_bear;
				}
				
				
				if((parry_g==1)&&(parried==1)){
					boss_parried++;
					if((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))>=0.6){
						boss_swinger=boss_swing2-0.4*claw_speed;
					}
					if(((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))<0.6)&&((((double)(boss_swing2-(boss_swinger%boss_swing2)))/((double)(claw_speed)))>=0.2)){
						boss_swinger=boss_swing2-0.2*claw_speed;
					}
					parried=0;
				}
				
				
				
				if(((boss_swinger%boss_swing2)==0)&&(boss_swinger!=0)){
					
					att=randnum();
					////cout << "Attack roll: " << att << "\n";
					if(att<melee.crit){
						dmg=((2*melee.damage*(1-mydr_bear))-shield_up*shield_value)*(1-(1.0*bark_up)*bark_red);
						shielded+=shield_up;
						shield_up=0;
						hp_shot-=(int)dmg;
						boss_damage+=dmg;
						boss_crit++;
						boss_swinger=0;
						is_stuck=1;
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (crit): " << dmg <<"\n";						
						
					}
					else if(att<(melee.crit+melee.hit)){
						dmg=((melee.damage*(1-mydr_bear))-shield_up*shield_value)*(1-(1.0*bark_up)*bark_red);
						shielded+=shield_up;
						shield_up=0;
						hp_shot-=(int)dmg;
						boss_damage+=dmg;
						boss_hit++;
						boss_swinger=0;
						is_stuck=1;
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (hit): " << dmg <<"\n";
						
					}
					else{
						//	//cout << "\nTime: " << (1.0*timer)/100.0<<"\n";
						//	//cout << "Boss Melee (miss)\n";
						boss_swinger=0;
						boss_miss++;
					}
				}
			}
			
			
			
			////-----------------------------------------------------------------------
			
			
			
			
			if(timer%10==0){
				en+=1; //energy regeneration
				if(en>100){
					en=100;
					//cout << en << " energy, Cycle: " << cycle << ", timer: " << timer/100.0 << endl;
				}
				
				if(infinite_rage==1){
					rage_tot=100;
				}
				
				if(rage_tot>100){
					rage_tot=100;
				}
				
				if((bloodlust_timer<=0)&&(bloodlust_timer>-3)){
					bloodlust_up=0;
					speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					//cout << timer/100.0 << "   Bloodlust off,    SPEED= " << speed/100.0 << endl;
				}
				
				if((bloodlust_cd_timer<=0)&&(((move_interval_timer>(0.95*move_interval*100))&&(move_time_timer<=0))||(movement!=1))){
					bloodlust_up=1;
					bloodlust_timer=4000;
					bloodlust_cd_timer=bloodlust_cd;
					speed=(int)(100.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					claw_speed=(int)(250.0/((1+wf*wf_haste*0.01)*(1+bloodlust_up*bloodlust*bloodlust_haste*0.01)*(1+moonkin*moonkin_haste*0.01)*(1+wpn_enchant.speed*wpn_enchant.up)*(1+haste+trinket1.haste*trinket1.up+trinket2.haste*trinket2.up+wpn_enchant.haste*wpn_enchant.up))); //autoattack speed
					//cout << timer/100.0 << "   Bloodlust on,    SPEED= " << speed/100.0 << endl;
				}
				
				
				
				
				if(fivesec<0){
					outfivesec+=10;
					mana+=(1.0*mp5_out)/50.0;
				}
				else{
					mana+=(1.0*mp5_in)/50.0;
				}
				if((oom==sim_time)&&((mana_cost*mana)<=2*shifting_cost)){
					oom=timer;
				}
				
				if(mana>=bmana){
					mana=bmana;
				}
			}
			
			//debuff update
			if(mdebuff_timer<0){
				mdebuff=0;
			}
			
			if(bdebuff_timer<0){
				bdebuff=0;
			}
			
			if(enrage_step<0){
				enraged=0;
			}
			
			if(rip_timer<0){
				shred_stack=0;
			}
			
			if(bark_timer<0){
				bark_up=0;
			}
			
			if((trinket1.duration_timer<0)&&(trinket1.duration_timer>-3)){
				trinket1.up=0;
				recompute_value=1;
			}
			if((trinket2.duration_timer<0)&&(trinket2.duration_timer>-3)){
				trinket2.up=0;
				recompute_value=1;
			}
			if((wpn_enchant.duration_timer<0)&&(wpn_enchant.duration_timer>-3)){
				wpn_enchant.up=0;
				recompute_value=1;
			}
			
			
			
			
			if((berserk_timer<0)&&(berserk_timer>-3)){
				berserk=0;
				mangle.energy=40-impmangle_m;
				shred.energy=60-s_att_m;
				rake.energy=35;
				rip.energy=30;
				fb.energy=35;
				sr_energy=25;
				init_en=wait_energy;
				bmangle_cd=(6-impmangle_m2);
			}
			
			if((koj_step<0)&&(koj_step>-3)){
				koj=0;
				weapon=base_paw;
				
				/*paw*/
				
				paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
				paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//mangle
				
				mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
				mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
				
				//shred
				
				shred.bdamage=(1-red)*((weapon)*2.25+666+203.0*IDOL_SHRED)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
				shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
			}
			
			if(sr_timer<0){
				sr=0;	
			}
			
			bdebuff_up+=bdebuff;
			mdebuff_up+=mdebuff;
			sr_up+=sr;
			
			//combo points
			if(cp>5){
				cp=5;
			}
			
			if(bark_cd_timer<0){
				bark_up=1;
				bark_timer=bark_time*100;
				bark_cd_timer=bark_cd*100;
				//gcd=100+lag;
			}
			
			if(((move_interval_timer>0)&&(move_time_timer<=0))||(movement!=1)){
				
				
				//when to use Tiger Fury / King of the Jungle
				
				if(((koj_timer<=0)&&(berserk==0)&&(en<=(99-koj_m1-(int)(2*(lag/10.0))))&&(catbear==1)&&(ooc_proc==0)&&((cp<5)||(rip_timer<100+lag)))&&(((move_interval_timer>6*100)&&(move_time_timer<=0))||(movement!=1))){
					//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
					////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
					//cout << "				King of the Jungle!\n";
					koj_timer=koj_cd*100;
					koj=1;
					koj_step=600;
					en+=koj_m1;
					weapon+=koj_damage;
					
					/*paw*/
					
					paw.bdamage=(1-red)*(weapon)*(1+naturalist_m);
					paw.bcritdamage=paw.bdamage*2*(1+pistinct_m)*(1+META*0.03);
					
					//mangle
					
					mangle.bdamage=(1-red)*((weapon)*2.0+566)*(1+fury_m)*(1+naturalist_m);
					mangle.bcritdamage=mangle.bdamage*2*(1+pistinct_m)*(1+META*0.03);
					
					//shred
					
					shred.bdamage=(1-red)*((weapon)*2.25+666+203.0*IDOL_SHRED)*(1+naturalist_m);//*(1+mdebuff*0.3)*(1+bdebuff*ret_m1);
					shred.bcritdamage=shred.bdamage*2*(1+pistinct_m)*(1+META*0.03);
					goto fine2;
				}
				
				if(((enrage_timer<=0)&&(catbear==0)&&(bear_time<200)&&(cat_bear==1)&&(use_enrage==1))||((enrage_timer<=0)&&(catbear==0)&&(use_enrage==1))){
					enrage_timer=enrage_cd*100;
					enrage_step=10*100;
					enraged=1;
					threat+=16;
					//cout << "				Enrage!" << endl;
				}
				
				
				////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage) << endl;
				////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.acritdamage+paw.bcritdamage) << endl;
				////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage)*(1+sr*src) << endl;
				////cout << (1+RA*0.03)*(1+BF*0.04)*(paw.acritdamage+paw.bcritdamage)*(1+sr*src) << endl;
				////cout << (1+sr*src) << endl;
				////cout << (1+RA*0.03)*(1+BF*0.04) << endl;
				//using l'autoattack
				
				if(((swinger%speed)==0)&&(catbear==1)&&(swinger!=0)){
					att=randnum();
					////cout << "Attack roll: " << att << "\n";
					
					if(att>(1-paw.hit)){
						is_hitted=1;
						if(ooc_rate>randnum()){
							ooc_proc=omen;
							
						}
						dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage);
						damage+=dmg;
						wdamage+=dmg;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "Paw (normal): " << dmg <<"\n";
						is_hitted=1;
						
					}
					else if(att>(paw.glance+paw.miss)){
						is_hitted=1;
						is_critted=1;
						if(ooc_rate>randnum()){
							ooc_proc=omen;
							
						}
						dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((paw.acritdamage)+paw.bcritdamage);
						damage+=dmg;
						wdamage+=dmg;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "Paw (crit): " << dmg <<"\n";
						is_hitted=1;
						is_critted=1;
					}
					
					else if(att>(paw.miss)){
						is_hitted=1;
						dmg=(1+sr*src)*glance_red*(1+RA*0.03)*(1+BF*0.04)*(paw.adamage+paw.bdamage);
						damage+=dmg;
						wdamage+=dmg;
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "Paw (glancing): " << dmg <<"\n";
						if(ooc_rate>randnum()){
							ooc_proc=omen;
						}
					}	
					else{
						//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
						//cout << "Paw (miss)" <<"\n";
					}
					
				}
				
				
				if(((swinger%claw_speed)==0)&&(catbear==0)&&(swinger!=0)){
					
					att=randnum();
					////cout << "Attack roll: " << att << "\n";
					if((rage_tot>=((mangleb.rage+maul.rage)))||((rage_tot>=maul.rage)&&(mdebuff_timer>=1650))){
						if(att<maul.crit){
							is_hitted=1;
							is_critted=1;
							dmg=(1+RA*0.03)*(1+BF*0.04)*(maul.acritdamage+maul.bcritdamage)*(1+enraged*enrage_mod)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
							damage+=dmg;
							ybdamage+=dmg;
							maul_damage+=dmg;
							maulnum++;
							threat+=dmg+maul_aggro+25;
							rage_tot-=maul.ragec;
							shield_up=1;
							if(ooc_proc==1){
								//cout << "			USING OMEN!\n";
								ooc_proc=0;
								rage_tot+=maul.rage+5;
							}
							//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "maul (crit): " << dmg <<"\n";
							if(ooc_bear_rate>randnum()){
								ooc_proc=omen;
							}
							
							
						}
						else if(att<(maul.crit+maul.hit)){
							is_hitted=1;
							dmg=(1+RA*0.03)*(1+BF*0.04)*(maul.adamage+maul.bdamage)*(1+enraged*enrage_mod)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
							damage+=dmg;
							ybdamage+=dmg;
							maul_damage+=dmg;
							maulnum++;
							threat+=dmg+maul_aggro;
							rage_tot-=maul.rage;
							//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "maul (crit): " << dmg <<"\n";
							if(ooc_proc==1){
								//cout << "			USING OMEN!\n";
								ooc_proc=0;
								rage_tot+=maul.rage;
							}
							if(ooc_bear_rate>randnum()){
								ooc_proc=omen;
							}
						}
						else{
							if(ooc_proc==1){
								//cout << "			USING OMEN!\n";
								ooc_proc=0;
							}
							if(yparried>randnum()){
								parried=1;
							}
							//cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							//cout << "maul (miss)" <<"\n";
						}
					}
					else{
						if(att>(1-claw.miss)){
							is_hitted=1;
							dmg=(1+RA*0.03)*(1+BF*0.04)*(claw.adamage+claw.bdamage)*(1+enraged*enrage_mod);
							damage+=dmg;
							wbdamage+=dmg;
							rage_tot-=claw.rage;
							//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							////cout << "claw (normal): " << dmg <<"\n";
							if(ooc_bear_rate>randnum()){
								ooc_proc=omen;
							}
							
							
						}
						else if(att>(claw.miss+claw.glance)){
							is_hitted=1;
							dmg=glance_red*(1+RA*0.03)*(1+BF*0.04)*(claw.adamage+claw.bdamage)*(1+enraged*enrage_mod);
							damage+=dmg;
							wbdamage+=dmg;
							rage_tot-=claw.rage;
							//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							////cout << "claw (glancing): " << dmg <<"\n";
							if(ooc_bear_rate>randnum()){
								ooc_proc=omen;
							}
						}
						else if(att>(claw.miss)){
							is_hitted=1;
							is_critted=1;
							dmg=(1+RA*0.03)*(1+BF*0.04)*(claw.acritdamage+claw.bcritdamage)*(1+enraged*enrage_mod);
							damage+=dmg;
							wbdamage+=dmg;
							shield_up=1;
							rage_tot-=claw.ragec;
							//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							////cout << "claw (crit): " << dmg <<"\n";
							if(ooc_bear_rate>randnum()){
								ooc_proc=omen;
							}
							
						}
						else{
							if(wparried>randnum()){
								parried=1;
							}
							//////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
							////cout << "claw (miss)" <<"\n";
						}
					}
				}
				
				// omen of clarity, when it proc I always shred.
				
				if(gcd<=0){
					
					
					
					switch (cycle){
						case 0:
							
							//mangle?
							if((((en>(85-(int)((double)lag/10)))||((en>(60-(int)((double)lag/10)))&&(mdebuff_timer>=1600)))&&(pws==1)&&((mana_cost*mana)>=(mana_cost*shifting_cost*2)))&&(cat_bear==1)){
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								//cout << "		POWERSHIFTING, Lost " << en << " Energy\n";
								gcd=150+lag;
								pw+=1;
								mana-=shifting_cost;
								fivesec=500;
								cycle =1;
								catbear=1;
								swinger=0;
								mangleb_timer=0;
								goto fine2;
							}
							
							if((rage_tot>=mangleb.rage)&&(bmangle_step<=0)&&(l_timer>=(2*150+lag))){
								mangleb_timer++;
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<mangleb.crit){
									is_hitted=1;
									is_critted=1;
									////cout << "     mangleb\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*((mangleb.acritdamage)+mangleb.bcritdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;
									mangleb_damage+=dmg;
									manglebnum++;
									threat+=dmg*mangleb_aggro_mod+25;
									//bmangle_damage+=dmg;
									rage_tot-=mangleb.ragec;
									shield_up=1;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=mangleb.rage+5;
									}
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=150+lag;
									bmangle_step=(int)(bmangle_cd*100);
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	mangleb (crit): " << dmg <<"\n";
								}
								else if(att<(mangleb.crit+mangleb.hit)){
									is_hitted=1;
									////cout << "     mangleb\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(mangleb.adamage+mangleb.bdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;
									mangleb_damage+=dmg;
									manglebnum++;
									threat+=dmg*mangleb_aggro_mod;
									//bmangle_damage+=dmg;
									rage_tot-=mangleb.rage;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=mangleb.rage;
									}
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=150+lag;
									bmangle_step=(int)(bmangle_cd*100);
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	mangleb (normal): " << dmg <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									gcd=150+lag;
									bmangle_step=(int)(bmangle_cd*100);
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
									}
									if(yparried>randnum()){
										parried=1;
									}
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	mangleb (miss)" <<"\n";
								}
								
								
								goto fine2;
								
							}
							
							//FeralFairieFire?
							
							if((use_FFF==1)&&(rage_tot>=FeralFairieFire.rage)&&(ooc_proc==0)&&(FFF_step<=0)&&(((l_timer>=(l_cd*100-150-lag))&&(l_stack==5))||((cat_bear==0)&&(l_timer>=(3*(150+lag)))&&(l_stack==5)))){
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<(FeralFairieFire.crit)){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "FeralFairieFire\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(FeralFairieFire.acritdamage+FeralFairieFire.bcritdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;	
									FeralFairieFire_damage+=dmg;
									FeralFairieFirenum++;
									threat+=dmg+FeralFairieFire_aggro_mod;
									rage_tot-=FeralFairieFire.ragec;	
									gcd=100+lag;
									FFF_step=100*FFF_cd;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "FeralFairieFire" << "\n";
								}
								else if(att<(FeralFairieFire.crit+FeralFairieFire.hit)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "FeralFairieFire\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(FeralFairieFire.adamage+FeralFairieFire.bdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;	
									FeralFairieFire_damage+=dmg;
									FeralFairieFirenum++;
									threat+=dmg+FeralFairieFire_aggro_mod;
									rage_tot-=FeralFairieFire.rage;
									gcd=100+lag;
									FFF_step=100*FFF_cd;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "FeralFairieFire" << "\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
									gcd=100+lag;
									FFF_step=100*FFF_cd;
									if(yparried>randnum()){
										parried=1;
									}
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "FeralFairieFire (miss)" << "\n";
								}
								
								goto fine2;
								
							}		
							
							
							//swipe?
							
							if((rage_tot>=(swipe.rage+maul.rage+mangleb.rage))&&(((l_timer>=(l_cd*100-150-lag))&&(l_stack==5))||((cat_bear==0)&&(l_timer>=(3*(150+lag)))&&(l_stack==5)))){
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<(swipe.crit)){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "swipe\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(swipe.acritdamage+swipe.bcritdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;	
									swipe_damage+=dmg;
									swipenum++;
									threat+=dmg*swipe_aggro_mod+25;
									rage_tot-=swipe.ragec;	
									shield_up=1;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=swipe.rage+5;
									}
									gcd=150+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "swipe" << "\n";
								}
								else if(att<(swipe.crit+swipe.hit)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "swipe\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(swipe.adamage+swipe.bdamage)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;	
									swipe_damage+=dmg;
									swipenum++;
									threat+=dmg*swipe_aggro_mod;
									rage_tot-=swipe.rage;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=swipe.rage;
									}
									
									gcd=150+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "swipe" << "\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
									gcd=150+lag;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
									}
									if(yparried>randnum()){
										parried=1;
									}
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "swipe (miss)" << "\n";
								}
								
								goto fine2;
								
							}
							
							
							
							
							//lacerate?
							
							if((rage_tot>=lacerate.rage)){
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<(lacerate.crit)){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "lacerate\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(1+twoT7*0.05)*(88+(ap_bear*0.01))*(1+naturalist_m)*(1+mss_m)*2*(1+META*0.03)*(1+enraged*enrage_mod);
									enraged_l=0;
									if(enraged==1){
										enraged_l=1;
									}
									damage+=dmg;
									ybdamage+=dmg;	
									lacerate_damage+=dmg;
									laceratenum++;
									threat+=lacerate_aggro+dmg*lacerate_aggro_mod+25;
									rage_tot-=lacerate.ragec;	
									shield_up=1;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=lacerate.rage+5;
									}
									bdebuff=1;
									if(bdebuff_timer<(l_cd*100)){
										bdebuff_timer=l_cd*100;
									}
									if(l_stack==0){
										l_counter=l_cd*100;
									}
									l_timer=l_cd*100;
									l_stack++;
									if(l_stack>=5){
										l_stack=5;
									}
									gcd=150+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "lacerate" << "\n";
									lem=0;
								}
								else if(att<(lacerate.crit+lacerate.hit)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "lacerate\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(1-red)*(1+twoT7*0.05)*(88+(ap_bear*0.01))*(1+naturalist_m)*(1+mss_m)*(1+enraged*enrage_mod);
									damage+=dmg;
									ybdamage+=dmg;	
									lacerate_damage+=dmg;
									laceratenum++;
									threat+=lacerate_aggro+dmg*lacerate_aggro_mod;
									enraged_l=0;
									if(enraged==1){
										enraged_l=1;
									}
									rage_tot-=lacerate.rage;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
										rage_tot+=lacerate.rage;
									}
									bdebuff=1;
									if(bdebuff_timer<(l_cd*100)){
										bdebuff_timer=l_cd*100;
									}
									l_timer=l_cd*100;
									l_stack++;
									if(l_stack>=5){
										l_stack=5;
									}
									gcd=150+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "lacerate" << "\n";
									lem=0;
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";								
									gcd=150+lag;
									if(ooc_proc==1){
										//cout << "			USING OMEN!\n";
										ooc_proc=0;
									}
									if(yparried>randnum()){
										parried=1;
									}
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "lacerate (miss)" << "\n";
								}
								
								goto fine2;
								
							}
							
							
							break;
							
						case 1:
							
							//manglespam or use shred?
							if(((1.0*shred.energy)/(1.0*mangle.energy))>1.25)
							{
								shred.energy=mangle.energy;
								mangle_only=1;
							}
							
							//use rake or not?
							if((shred_stack<3)&&(rip_timer<(250*(3-shred_stack)))&&(koj_timer>(rip_timer-200))&&((rip_timer-(shred.energy-en)*10)>lag)&&(shred_to_rip==1)){
								shredder=1;
								rip_damagextick = (1-wcrit*pg)*(1+sr_rip*src)*(((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))+wcrit*pg*(1+sr_rip*src)*(((ap_rip*0.01*cp_rip)+(36+21.0*IDOL_WS*cp_rip+93*cp_rip))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);

							}
							else{
								shredder=0;
							}

							if(
							   ((
							     (((rake.adamage+rake.bdamage)*rake.hit+(rake.acritdamage+rake.bcritdamage)*rake.crit+3*(ap*0.06+358)*(1+naturalist_m)*(1+fury_m)*(rake.hit+rake.crit))/(rake.energy))  //Rake DPE
							     /
							     ((((shred.acritdamage+shred.bcritdamage)*shred.crit+(shred.adamage+shred.bdamage)*shred.hit)*(1+ret_m1)+(rip_damagextick*shredder))/shred.energy)
							     )>0.9
							    )&&(auto_rk==1))
							{
								rk=1;
							}
							else{
								rk=0;
							}
							
							//SR, RIP or FB?
							if(cp>=(rip_t||fb_t))
							{
								fb.crit=yhitted*(crit+(ret_m2+0.05*fourT9)*bdebuff);
								fb.hit=yhitted-fb.crit;
								
								if((crit+(ret_m2+0.05*fourT9)*bdebuff)>=1){
									fb.crit=yhitted;
									fb.hit=0;
								}
								extfben = en-fb.energy;
								if (extfben >30){
									extfben = 30;
								}
								
								if (extfben <=0){
									extfben = 0;
								}
								
								fb.adamage=(1+sr*src)*(1-red)*((0.07*ap)*cp)*(1+naturalist_m)*(1+ferocity_m);
								fb.acritdamage=fb.adamage*2*(1+pistinct_m)*(1+META*0.03);
								fb.bdamage=(1+sr*src)*(1-red)*(190+290*cp)*(1+naturalist_m)*(1+ferocity_m);
								fb.bcritdamage=fb.bdamage*2*(1+pistinct_m)*(1+META*0.03);
								Fb_damage = (fb.hit*(fb.adamage+fb.bdamage)+fb.crit*(fb.acritdamage+fb.bcritdamage));
								fbextra_damage=(1+sr*src)*((1-red)*(fb.hit*((ap*0.002439)+(9.4))+fb.crit*(((ap*0.002439)+(9.4)))*2*(1+pistinct_m)*(1+META*0.03))*(1+naturalist_m)*(1+ferocity_m));
								rip_damagextick = (1-(wcrit+0.05*fourT9)*pg)*(1+sr*src)*(((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))+(wcrit+0.05*fourT9)*pg*(1+sr*src)*(((ap*0.01*cp)+(36+21.0*IDOL_WS*cp+93*cp))*(1+naturalist_m)*(1+mdebuff*0.3))*2.0*(1+pistinct_m)*(1+META*0.03);
								
								avg_cp[5]=(1/(shred.crit+shred.hit))*((5*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+4*4*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+5*shred.crit*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*shred.crit*shred.crit*(1-shred.crit)+3*shred.crit*shred.crit*shred.crit+3*4*shred.crit*shred.crit*(1-shred.crit)*(1-shred.crit)));
								avg_cp[4]=(1/(shred.crit+shred.hit))*(4*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+3*3*(1-shred.crit)*(1-shred.crit)*shred.crit+3*2*(1-shred.crit)*(shred.crit)*shred.crit+2*(shred.crit)*shred.crit);
								avg_cp[3]=(1/(shred.crit+shred.hit))*(3*(1-shred.crit)*(1-shred.crit)*(1-shred.crit)+2*2*shred.crit*(1-shred.crit)+2*shred.crit*shred.crit+3*(1-shred.crit)*(1-shred.crit)*(shred.crit));
								avg_cp[2]=(1/(shred.crit+shred.hit))*(2*(1-shred.crit)*(1-shred.crit)+2*(1-shred.crit)*shred.crit+shred.crit);
								avg_cp[1]=(1/(shred.crit+shred.hit))*(1);
								
								
								tick_num_FB=((Fb_damage+extfben*fbextra_damage)/rip_damagextick);
								
								
								cp_to_cycle=avg_cp[sr_t]+avg_cp[rip_t]; 
								max_rip_downtime= (tick_num_FB)*2;
								energy_x_sec= (10*30)/30+ooc_rate*40/(speed/100.0)+twoT8*twoT8_rate*40/(120.0/100.0);
								combovsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec;
								if(combovsfb_time[0]<int(cp_to_cycle)+2){
									combovsfb_time[0]=int(cp_to_cycle)+2;
								}
								combovsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(cp_to_cycle/energy_x_sec)-max_rip_downtime+(sr_energy+rip.energy)/energy_x_sec-koj_m1/10.0;
								if(combovsfb_time[1]<int(cp_to_cycle)+2){
									combovsfb_time[1]=int(cp_to_cycle)+2;
								}
								ripvsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[rip_t]/energy_x_sec)-max_rip_downtime+(rip.energy)/energy_x_sec;
								if(ripvsfb_time[0]<int(avg_cp[rip_t])+1){
									ripvsfb_time[0]=int(avg_cp[rip_t])+1;
								}
								ripvsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[rip_t]/energy_x_sec)-max_rip_downtime+(rip.energy)/energy_x_sec-koj_m1/10.0;
								if(ripvsfb_time[1]<int(avg_cp[rip_t])+1){
									ripvsfb_time[1]=int(avg_cp[rip_t])+1;
								}
								srvsfb_time[0]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec);
								if(srvsfb_time[0]<int(avg_cp[sr_t])+1){
									srvsfb_time[0]=int(avg_cp[sr_t])+1;
								}
								srvsfb_time[1]=((0.55+0.18*manglebot)*shred.energy+(0.225+0.045*manglebot)*rake.energy+0.225*mangle.energy*(1-manglebot))*(avg_cp[sr_t]/energy_x_sec)-koj_m1/10.0;
								if(srvsfb_time[1]<int(avg_cp[sr_t])+1){
									srvsfb_time[1]=int(avg_cp[sr_t])+1;
								}
								
								
								
								
								
								
								
								
							}
							
							// savage roar?
							
							if(((en>=sr_energy)&&(((cp>=1)&&(sr_upper==1))||((cp>=sr_t)&&(sr_upper==0)))&&((sr==0)||
																		  ((cp==5)&&(((sr_timer<(srvsfb_time[0]*100))))/*||((rip_timer>=(srvsfb_time[0]*100))||((koj_timer<=(srvsfb_time[0])*100)&&(rip_timer>=(srvsfb_time[1]*100)))) */))
							    &&(sr_timer<=(time_to_die_boss))))
							{
								////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								//cout << "SR\n";
								sr_timer=(9+8*fourT8+cp*5)*100;
								en-=sr_energy;
								cp=0;
								sr=1;
								gcd=100+lag;
								cycle_time+=1;
								//	//cout << "mana: " << mana <<"\n";
								//goto fine2;
							}
							
							//ooc proc
							else if((ooc_proc==1)&&(catbear==1))
							{
								att=randnum();
								
								//mangle?
								if(mdebuff==0){
									att=randnum();
									////cout << "Attack roll: " << att << "\n";
									
									if(att<mangle.crit){
										is_hitted=1;
										is_critted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										cp+=2;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (crit): " << dmg <<"\n";
									}
									else if(att<(mangle.crit+mangle.hit)){
										is_hitted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										cp++;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (normal): " << dmg <<"\n";
									}
									else{
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (miss)" <<"\n";
									}
									
									ooc_proc=0;
									//goto fine2;
									
								}
								
								
								else if(mdebuff_timer>(100+lag)){
									if(att<shred.crit){
										is_hitted=1;
										is_critted=1;
										////cout << "     Shred\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;
										shred_damage_tot+=dmg;
										shrednum++;
										cp+=2;
										if((shred_stack<max_shred)&&(rip_timer>0)){
											rip_timer+=shred_g*shred_glyph*100;
											shred_stack+=1;
										}
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "			USING OMEN!\n";
										//cout << "	shred (crit): " << dmg <<"\n";
										ooc_proc=0;
										gcd=100+lag;
										
									}
									else if(att<(shred.crit+shred.hit)){
										is_hitted=1;
										////cout << "     Shred\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;						
										shred_damage_tot+=dmg;
										shrednum++;
										cp++;
										if((shred_stack<max_shred)&&(rip_timer>0)){
											rip_timer+=shred_g*shred_glyph*100;
											shred_stack+=1;
										}
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "			USING OMEN!\n";
										//cout << "	shred (normal): " << dmg <<"\n";
										ooc_proc=0;
										gcd=100+lag;
										
									}
									else{
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "			USING OMEN!\n";
										//cout << "	shred (miss)" <<"\n";
										gcd=100+lag;
									}
									ooc_proc=0;
									
								}
								
								//goto fine2;
								
							}
							
							//berserk?
							else if((((berserk_cd_timer<=0)&&(en>=70)&&(sr_timer>=100+lag)&&(catbear==1)&&(cat_bear==1))||((berserk_cd_timer<=0)&&(timer>=2000)&&(cat_bear==0)))&&(((move_interval_timer>berserk_duration*100)&&(move_time_timer<=0))||(movement!=1)))
							{
								berserk=1;
								berserk_cd_timer=berserk_cd;
								berserk_timer=berserk_duration*100;
								init_en=(int)(0.5*init_en)+((int)(lag/10.0));
								mangle.energy=(int)(0.5*(40-impmangle_m));
								shred.energy=(int)(0.5*(60-s_att_m));
								rake.energy=(int)(0.5*35);
								rip.energy=(int)(0.5*30);
								fb.energy=(int)(0.5*35);
								sr_energy=(int)(0.5*sr_energy);
								bmangle_cd=0;
								//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
								//cout << "							BERSERK!!!!\n";
								gcd=100+lag;	
								//goto fine2;
							}
							
							
							
							//mangle?
							else if((en>mangle.energy)&&(mdebuff==0))
							{
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<mangle.crit){
									is_hitted=1;
									is_critted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									en-=mangle.energy;
									cp+=2;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (crit): " << dmg <<"\n";
								}
								else if(att<(mangle.crit+mangle.hit)){
									is_hitted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									en-=mangle.energy;
									cp++;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (normal): " << dmg <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)(mangle.energy*0.2);
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (miss)" <<"\n";
								}
								
								//goto fine2;
								
							}
							
							//rake?
							/*
							 else if (((rk==1)&&(rake_timer <0)&&(cp<5)&&(mdebuff_timer >= 100+lag)&&(en>=rake.energy))&&(
							 (((mdebuff_timer > ((rake.energy+mangle.energy-10-en)*10))&&(cp<3)))||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))
							 ||(koj_timer<(100+lag)))&&(time_to_die_boss>=9*100))
							 
							 */
							else if ((rake_timer <0)&&(cp<5)&&(en>=rake.energy)&&(mdebuff_timer > ((rake.energy+mangle.energy-10-en)*10))
								  
								  &&(time_to_die_boss>=9*100)&&(rk==1))
								
							{
								att=randnum();
								//	////cout << "Attack roll: " << att << "\n";
								
								if((att<rake.crit)&&(en>=rake.energy)){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((rake.acritdamage)+rake.bcritdamage)*(1+0.3*mdebuff);
									damage+=dmg;
									ydamage+=dmg;
									rake_damage_tot+=dmg;
									rakenum++;
									rkem=0;
									ap_rake=ap;
									sr_rake=sr;
									en-=rake.energy;
									
									bdebuff=1;
									if(bdebuff_timer<(9*100)){
										bdebuff_timer=9*100;
									}
									cp+=2;
									rake_timer=(9+3*twoT9)*100;
									gcd=100+lag;
									//cout << "     Rake (crit); " << dmg << "\n";
									//	////cout << "rake (crit): " << dmg <<", Total damage: " << damage <<"\n";
								}
								else if((att<(rake.crit+rake.hit))&&(en>=rake.energy)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(rake.adamage+rake.bdamage)*(1+0.3*mdebuff);
									damage+=dmg;
									ydamage+=dmg;
									rake_damage_tot+=dmg;
									rakenum++;
									rkem=0;								
									ap_rake=ap;
									sr_rake=sr;
									en-=rake.energy;
									
									bdebuff=1;
									if(bdebuff_timer<(9*100)){
										bdebuff_timer=9*100;
									}
									rake_timer=(9+3*twoT9)*100;
									cp++;
									gcd=100+lag;
									//cout << "     Rake (normal); " << dmg << "\n";
									//	////cout << "rake (normal): " << dmg <<", Total damage: " << damage <<"\n";
								}
								else if(en>=rake.energy){
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)(rake.energy*0.2);
									
									gcd=100+lag;
									//cout << "     Rake (miss)\n";
									//	////cout << "rake (miss)" << ", Total damage: " << damage <<"\n";
								}
								//goto fine2;
								
							}
							
							//manglespam?
							else if ((mangle_only==1) &&(en>=mangle.energy) && (cp<5) && ((((koj_timer<((mangle.energy+rake.energy-10-en)*10) && 
																  ((((rake_timer > ((mangle.energy+rake.energy-10-koj_m1-en)*10))||(rk==0))&& (cp<3) && (mdebuff_timer >= 0) && ((rake_timer>(0))||(rk==0)) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag))))||((( 
																																																								      (( rake_timer > ((mangle.energy+rake.energy-10-en)*10))||(rk==0)) && (cp<3)&& (rake_timer>0) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||
																																																								     ((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag)))))||((cp>=3)||(rip_timer<0)))||(time_to_die_boss<=kill_mode)))
							{
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<mangle.crit){
									is_hitted=1;
									is_critted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									en-=mangle.energy;
									cp+=2;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (crit): " << dmg <<"\n";
								}
								else if(att<(mangle.crit+mangle.hit)){
									is_hitted=1;
									////cout << "     Mangle\n";
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
									damage+=dmg;
									ydamage+=dmg;						
									mangle_damage_tot+=dmg;
									manglenum++;
									en-=mangle.energy;
									cp++;
									mdebuff=1;
									if (mdebuff_timer<=mdebuff_cd*100){
										mdebuff_timer=mdebuff_cd*100;
									}
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (normal): " << dmg <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)(mangle.energy*0.2);
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	Mangle (miss)" <<"\n";
								}
								
								//goto fine2;
								
							}
							
							
							//shred?
							
							else if ((en>=shred.energy) && (cp<5)&& ((((koj_timer<((shred.energy+rake.energy-10-en)*10) && 
													  ((mdebuff_timer > ((shred.energy+mangle.energy-10-koj_m1-en)*10) && ((rake_timer > ((shred.energy+rake.energy-10-koj_m1-en)*10))||(rk==0))
													    && (cp<3) && (mdebuff_timer >= 100+lag) && rake_timer>(0) )||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag))))||(((mdebuff_timer > ((shred.energy+mangle.energy-10-en)*10) 
																																										     &&(( rake_timer > ((shred.energy+rake.energy-10-en)*10))||(rk==0)) && (cp<3) && (mdebuff_timer >= 100+lag) && ((rake_timer>0)||(rk==0)) )
																																										    ||((sr_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||((rip_timer<(100+lag))&&(en>(rake.energy+sr_energy-10)))||(koj_timer<(100+lag)))))||((cp>=3)||(rip_timer<0)))||(time_to_die_boss<=kill_mode)))
								
							/*
							 else if ((en>=shred.energy) && (cp<5)
							 &&(((koj_timer<rake_timer)&&(en>=((shred.energy+rake.energy-10-koj_m1))))||(rake_timer>=((shred.energy+rake.energy-10-en)*10))||(rk==0))
							 &&(((mdebuff_timer<rake_timer)&&(en>=((shred.energy+mangle.energy-10-koj_m1))))||(mdebuff_timer>=((shred.energy+mangle.energy-10-en)*10)))
							 )
							 */	  
								
							{
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<shred.crit){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "     Shred\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
									damage+=dmg;
									ydamage+=dmg;						
									shred_damage_tot+=dmg;
									shrednum++;
									en-=shred.energy;
									if((shred_stack<max_shred)&&(rip_timer>0)){
										rip_timer+=shred_g*shred_glyph*100;
										shred_stack+=1;
									}
									cp+=2;
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	shred (crit): " << dmg  <<"\n";
								}
								else if(att<(shred.crit+shred.hit)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "     Shred\n";
									dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
									damage+=dmg;
									ydamage+=dmg;						
									shred_damage_tot+=dmg;
									shrednum++;
									en-=shred.energy;
									if((shred_stack<max_shred)&&(rip_timer>0)){
										rip_timer+=shred_g*shred_glyph*100;
										shred_stack+=1;
									}
									cp++;
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	shred (normal): " << dmg <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)(shred.energy*0.2);
									
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "	shred (miss)" <<"\n";
								}
								
								//goto fine2;
								
							}
							
							
							//ferocious bite?
							else if((sr==1)&&(en>=fb.energy)&&((cp>=fb_t)/*||((time_to_die_boss<=kill_mode)&&(cp>=(fb_t-1)))*/)&&(bdebuff==1)&&((berserk==0)||((berserk==1)&&(en<fb.energy+5)))&& //base condition
								 (
								  ((rip_timer>0)&&(
										     (
										      (((rip_timer>=(ripvsfb_time[0]*100))||((koj_timer<=(ripvsfb_time[0])*100)&&(rip_timer>=(ripvsfb_time[1]*100))))&&((sr_timer>=(combovsfb_time[0]*100))||((koj_timer<=(combovsfb_time[0])*100)&&(sr_timer>=(combovsfb_time[1]*100))))) //rip expiring condition
										      ||(rip_t>5))|| //if you don't use rip
										     (
										      (((sr_timer>=(srvsfb_time[0]*100))||((koj_timer<=(srvsfb_time[0])*100)&&(sr_timer>=(srvsfb_time[1]*100))))&&((rip_timer>=(combovsfb_time[0]*100))||((koj_timer<=(combovsfb_time[0])*100)&&(rip_timer>=(combovsfb_time[1]*100))))) //savage roar expiring condition
										      )
										     ))||((time_to_die_boss<=(max_rip_downtime*100)))
								  )
								 )
							{
								
								att=randnum();
								//	////cout << "Attack roll: " << att << "\n";
								
								if(att<fb.crit){
									is_hitted=1;
									is_critted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									
									dmg=(1+RA*0.03)*(1+BF*0.04)*((fb.acritdamage)+fb.bcritdamage+extfben*(1+sr*src)*((1-red)*((((ap*0.002439)+(9.4)))*2*(1+pistinct_m)*(1+META*0.03))*(1+naturalist_m)*(1+ferocity_m)));
									damage+=dmg;
									ydamage+=dmg;						
									fb_damage_tot+=dmg;
									fbnum++;
									avgfbenergy+=(fb.energy+extfben)*(1+berserk);
									en-=(fb.energy+extfben);
									cp=0;
									gcd=100+lag;	
									
									
									//cout << "FB (crit): "<< dmg << "\n";
									//	////cout << "fb (crit): " << dmg <<", Total damage: " << damage <<"\n";
									
								}
								else if(att<(fb.crit+fb.hit)){
									is_hitted=1;
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									dmg=(1+RA*0.03)*(1+BF*0.04)*(fb.adamage+fb.bdamage+extfben*(1+sr*src)*(1-red)*((ap*0.002439)+(9.4))*(1+naturalist_m)*(1+ferocity_m));
									damage+=dmg;
									ydamage+=dmg;						
									fb_damage_tot+=dmg;
									fbnum++;
									avgfbenergy+=(fb.energy+extfben)*(1+berserk);
									en-=(fb.energy+extfben);
									cp=0;
									gcd=100+lag;
									
									
									//cout << "FB (normal): "<< dmg << "\n";
									//	////cout << "fb (normal): " << dmg <<", Total damage: " << damage <<"\n";
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)((1-precision_m2)*(fb.energy));
									gcd=100+lag;				
									//cout << "FB (miss)\n";
									//	////cout << "fb (miss)" << ", Total damage: " << damage <<"\n";
								}
								
								//goto fine2;
								
							}
							
							
							//rip?
							else if(((((sr==1)&&(en>=rip.energy)&&(cp>=rip_t)&&((rip_timer<=(combovsfb_time[0]*100))||
														   ((koj_timer<=(combovsfb_time[0])*100)&&(rip_timer<=(combovsfb_time[1]*100))))))&&((rip_expire==0)||(rip_timer<0)))
								 &&(time_to_die_boss>=(max_rip_downtime*100)))
							{
								att=randnum();
								////cout << "Attack roll: " << att << "\n";
								
								if(att<(rip.crit+rip.hit)){
									is_hitted=1;
									////cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									////cout << "RIP\n";
									ap_rip=ap;
									cp_rip=cp;
									sr_rip=sr;
									en-=rip.energy;
									ripnum++;
									bdebuff=1;
									if(bdebuff_timer<((12+rip_g*rip_glyph+twoT7*4)*100)){
										bdebuff_timer=(12+rip_g*rip_glyph+twoT7*4)*100;
									}
									rip_timer=(12+rip_g*rip_glyph+twoT7*4)*100;
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"Step: " << doublecycle_counter <<"\n";
									//cout << "RIP" << "\n";
									cp=0;
									rem=0;
								}
								else{
									//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
									en-=(int)((1-precision_m2)*rip.energy);
									
									gcd=100+lag;
									////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
									//cout << "rip (miss)" << "\n";
								}
								
								//goto fine2;
								
							}
							
							//high energy dump: rake? mangle?
							else if (((en >=(rake.energy+rip.energy-10))||((berserk==1)&&(en>=(fb.energy+5))))&& (cp==5)&&(rk==1))
							{
								if ((mdebuff_timer < 0)&&(rip_timer>=100+lag))
								{
									att=randnum();
									////cout << "Attack roll: " << att << "\n";
									
									if(att<mangle.crit){
										is_hitted=1;
										is_critted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp+=2;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (crit): " << dmg <<"\n";
									}
									else if(att<(mangle.crit+mangle.hit)){
										is_hitted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp++;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (normal): " << dmg <<"\n";
									}
									else{
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										en-=(int)(mangle.energy*0.2);
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (miss)" <<"\n";
									}
									
									//goto fine2;
									
								}
								else if ((rake_timer < 0) && (rip_timer>=100+lag)
									  
									  &&(time_to_die_boss>=9*100)&&(rk==1))

								{
									att=randnum();
									//	////cout << "Attack roll: " << att << "\n";
									
									if((att<rake.crit)&&(en>=rake.energy)){
										is_hitted=1;
										is_critted=1;
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((rake.acritdamage)+rake.bcritdamage)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;
										rake_damage_tot+=dmg;
										rakenum++;
										rkem=0;
										ap_rake=ap;
										sr_rake=sr;
										en-=rake.energy;
										
										bdebuff=1;
										if(bdebuff_timer<(9*100)){
											bdebuff_timer=9*100;
										}
										cp+=2;
										rake_timer=(9+3*twoT9)*100;
										gcd=100+lag;
										//cout << "     Rake (crit); " << dmg << "\n";
										//	////cout << "rake (crit): " << dmg <<", Total damage: " << damage <<"\n";
									}
									else if((att<(rake.crit+rake.hit))&&(en>=rake.energy)){
										is_hitted=1;
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(rake.adamage+rake.bdamage)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;
										rake_damage_tot+=dmg;
										rakenum++;
										rkem=0;								
										ap_rake=ap;
										sr_rake=sr;
										en-=rake.energy;
										
										bdebuff=1;
										if(bdebuff_timer<(9*100)){
											bdebuff_timer=9*100;
										}
										rake_timer=(9+3*twoT9)*100;
										cp++;
										gcd=100+lag;
										//cout << "     Rake (normal); " << dmg << "\n";
										//	////cout << "rake (normal): " << dmg <<", Total damage: " << damage <<"\n";
									}
									else if(en>=rake.energy){
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										en-=(int)(rake.energy*0.2);
										
										gcd=100+lag;
										//cout << "     Rake (miss)\n";
										//	////cout << "rake (miss)" << ", Total damage: " << damage <<"\n";
									}
									//goto fine2;
									
								}
								
								
								//high energy dump: manglespam?
								else if(((en>=90)||((berserk==1)&&(en>=mangle.energy))) && (mangle_only==1) && (mdebuff_timer>=(100+lag)) && ((rake_timer>=(100+lag)||(rk==0))) && (rip_timer>=(100+lag)) && (cp==5))
								{
									att=randnum();
									////cout << "Attack roll: " << att << "\n";
									
									if(att<mangle.crit){
										is_hitted=1;
										is_critted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.acritdamage+mangle.bcritdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp+=2;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (crit): " << dmg <<"\n";
									}
									else if(att<(mangle.crit+mangle.hit)){
										is_hitted=1;
										////cout << "     Mangle\n";
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(mangle.adamage+mangle.bdamage);
										damage+=dmg;
										ydamage+=dmg;						
										mangle_damage_tot+=dmg;
										manglenum++;
										en-=mangle.energy;
										cp++;
										mdebuff=1;
										if (mdebuff_timer<=mdebuff_cd*100){
											mdebuff_timer=mdebuff_cd*100;
										}
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (normal): " << dmg <<"\n";
									}
									else{
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										en-=(int)(mangle.energy*0.2);
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	Mangle (miss)" <<"\n";
									}
									
									//goto fine2;
									
								}
								
								//high energy dump: shred?
								else if(((en>=90)||((berserk==1)&&(en>=shred.energy)))&& (mdebuff_timer>=(100+lag)) && ((rake_timer>=(100+lag)||(rk==0))) && (rip_timer>=(100+lag)) && (cp==5))
								{
									att=randnum();
									////cout << "Attack roll: " << att << "\n";
									
									if(att<shred.crit){
										is_hitted=1;
										is_critted=1;
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										////cout << "     Shred\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*((shred.acritdamage)+shred.bcritdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;						
										shred_damage_tot+=dmg;
										shrednum++;
										en-=shred.energy;
										if((shred_stack<max_shred)&&(rip_timer>0)){
											rip_timer+=shred_g*shred_glyph*100;
											shred_stack+=1;
										}
										cp+=2;
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	shred (crit): " << dmg  <<"\n";
									}
									else if(att<(shred.crit+shred.hit)){
										is_hitted=1;
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										////cout << "     Shred\n";
										dmg=(1+sr*src)*(1+RA*0.03)*(1+BF*0.04)*(shred.adamage+shred.bdamage)*(1+ret_m1*bdebuff)*(1+0.3*mdebuff);
										damage+=dmg;
										ydamage+=dmg;						
										shred_damage_tot+=dmg;
										shrednum++;
										en-=shred.energy;
										if((shred_stack<max_shred)&&(rip_timer>0)){
											rip_timer+=shred_g*shred_glyph*100;
											shred_stack+=1;
										}
										cp++;
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	shred (normal): " << dmg <<"\n";
									}
									else{
										//cout << "Time: " << timer/100.0 << ", Energy: " << en <<"\n";
										en-=(int)(shred.energy*0.2);
										
										gcd=100+lag;
										////cout << "\n" <<"Energy: " << en << ", Time: " << (1.0*timer)/100.0 << ", CP: " << cp <<"\n";
										//cout << "	shred (miss)" <<"\n";
									}
									
									//goto fine2;
									
								}
							}
							
							
							
					}
					
				fine2:;
				}
				
			}
			else if(((move_interval_timer<=0)&&(move_time_timer<=0))||(movement!=1)){
				move_time_timer=move_time*100;
				move_interval_timer=move_interval*100;				
			}
			
		}
		wdamage2+=wdamage;
		ydamage2+=ydamage;
		damage2=wdamage2+ydamage2;
		mangle_damage_tot2+=mangle_damage_tot;
		shred_damage_tot2+=shred_damage_tot;
		rip_damage_tot2+=rip_damage_tot;
		fb_damage_tot2+=fb_damage_tot;
		rake_damage_tot2+=rake_damage_tot;
		wdamage_sr2+=wdamage_sr;
		wbdamage2+=wbdamage;
		ybdamage2+=ybdamage;
		bear_damage2=wbdamage2+ybdamage2;
		mangleb_damage2+=mangleb_damage;
		lacerate_damage2+=lacerate_damage;
		maul_damage2+=maul_damage;
		swipe_damage2+=swipe_damage;
		FeralFairieFire_damage2+=FeralFairieFire_damage;
		threat2+=bear_aggro_mod*threat;
		oom2+=(oom/6000.0);
		
		if((wdamage+ydamage+wbdamage+ybdamage)>damagemax){
			damagemax= wdamage+ydamage+wbdamage+ybdamage;
		}
		
		if((wdamage+ydamage+wbdamage+ybdamage)<damagemin){
			damagemin= wdamage+ydamage+wbdamage+ybdamage;
		}
		
		dps_vector[timer2]=(100.0*((wdamage+ydamage+wbdamage+ybdamage)/(1.0*timer)));
		boss_vector[timer2]=(100.0*((boss_damage)/(1.0*timer)));
		myhp_bear=mybasehp+10*stamina*1.25*(1+hotw_m2)+CS*2818+bonus_hp;
		real_hp_bear_vector[timer2] = myhp_bear*(1+(1.30+surv_glyph*surv_g)*(surv_duration/surv_cd))*((melee.damage/boss_swing)/boss_vector[timer2]);
		
		if(real_hp_bear_vector[timer2]<realhpbearmin){
			realhpbearmin=real_hp_bear_vector[timer2];
		}
		if(real_hp_bear_vector[timer2]>realhpbearmax){
			realhpbearmax=real_hp_bear_vector[timer2];
		}
		
		
		
		
		////cout << (int)(100.0*((wdamage+ydamage+wbdamage+ybdamage)/(timer))) << endl;
		
	}
	
	myarmor_bear=2*agi+(myarmor*(1+0.02*META_ARMOR)*4.7*(1+th_m)*(1+sof_m3)+armor_bonus)+DA*1015+MOW*1050;
	mydr_bear= 1-(1-0.03*SANCTUARY)*(1-pop_m)*(1-(((myarmor_bear / (myarmor_bear + 400 + 85 * (83 + 4.5 * (83 - 59)))))));
	
	
	
	threat2+=damage2*cat_aggro_mod;
	
	double avgcycletime=(1.0*timer*(1.0*timer2))/(100.0*cycle_time);
	manglexcycle=((double)manglenum)/(1.0*cycle_time);
	shredxcycle=((double)shrednum)/(1.0*cycle_time);
	rakexcycle=((double)rakenum)/(1.0*cycle_time);
	ripxcycle=((double)ripnum)/(1.0*cycle_time);
	fbxcycle=((double)fbnum)/(1.0*cycle_time);
	manglebxcycle=((double)manglebnum)/(1.0*cycle_time);
	maulxcycle=((double)maulnum)/(1.0*cycle_time);
	laceratexcycle=((double)laceratenum)/(1.0*cycle_time);
	swipexcycle=((double)swipenum)/(1.0*cycle_time);
	FeralFairieFirexcycle=((double)FeralFairieFirenum)/(1.0*cycle_time);
	
	
	avmangle=mangle_damage_tot2/((double)manglenum);
	avshred=shred_damage_tot2/((double)shrednum);
	avrake=rake_damage_tot2/((double)rakenum);
	avrip=rip_damage_tot2/((double)ripnum);
	avfb=fb_damage_tot2/((double)fbnum);
	avmangleb=mangleb_damage2/((double)manglebnum);
	avmaul=maul_damage2/((double)maulnum);
	avlacerate=lacerate_damage2/((double)laceratenum);
	avswipe=swipe_damage2/((double)swipenum);
	avFeralFairieFire=FeralFairieFire_damage2/((double)FeralFairieFirenum);
	
	
	double  dps_average=100.0*((damage2+bear_damage2)/(1.0*timer*(1.0*timer2)));
	double tp_average=0;
	
	long double sigma=0;
	long double sigma2=0;
	long double sigmatp=0;
	long double sigma2tp=0;
	
	
	//cout << endl << endl;
	
	
	dps_average=0;
	
	for(int i=0;i<sample_fight;i++){
		dps_average+=dps_vector[i];
		tp_average+=boss_vector[i];
	}
	
	dps_average=dps_average/((double)sample_fight);
	tp_average=tp_average/((double)sample_fight);
	
	//cout << endl << endl;
	
	for(int i=0;i<sample_fight;i++){
		//cout<< dps_vector[i] << endl;
		sigma2+=((dps_vector[i]-dps_average)*(dps_vector[i]-dps_average));
		sigma2tp+=((boss_vector[i]-tp_average)*(boss_vector[i]-tp_average));
		
	}
	
	sigma=sqrt(sigma2/((1.0*sample_fight)*((1.0*sample_fight)-1)));
	sigmatp=sqrt(sigma2tp/((1.0*sample_fight)*((1.0*sample_fight)-1)));
	
	double damage_step=100*(damagemax-damagemin)/(1.0*timer*(100));
	if(fixed_damage_step==1){
		damage_step=23;
	}
	if(fixed_damagemin==1){
		damagemin=6600*(1.0*timer)/100.0;
	}
	//cout << endl << damagemax << "    " << damagemin << "    " <<damage_step << endl;
	double realhp_step=(realhpbearmax-realhpbearmin)/(100);
	for(int i=0;i<100;i++){
		damage_step_vector[i]=100*(damagemin)/(1.0*timer)+damage_step*(1.0*i);
		//cout << endl << i << "\t" << damage_step_vector[i] << endl;
		
		real_hp_bear_step_vector[i]=realhpbearmin+realhp_step*(i);
	}
	
	for(int i=0;i<100;i++){
		damage_step_value_vector[i]=0;
		real_hp_bear_step_value_vector[i]=0;
		damage_step_cumulative_vector[i]=0;
		real_hp_bear_step_cumulative_vector[i]=0;
	}
	for(int i=0;i<99;i++){
		
		for(int j=0;j<sample_fight;j++){
			if((dps_vector[j]<damage_step_vector[i+1])&&(dps_vector[j]>=damage_step_vector[i])){
				damage_step_value_vector[i+1]+=1;
			}
			if((dps_vector[j]<damage_step_vector[i+1])){
				damage_step_cumulative_vector[i+1]+=(1.0/(sample_fight-1));
			}
			if((dps_vector[j]<real_hp_bear_step_vector[i+1])&&(dps_vector[j]>=real_hp_bear_step_vector[i])){  //SISTEMA PARTE VITA!!!!
				real_hp_bear_step_value_vector[i+1]+=1;
			}
			if((dps_vector[j]<real_hp_bear_step_vector[i+1])){
				real_hp_bear_step_cumulative_vector[i+1]+=(1.0/(sample_fight-1));
			}
		}
	}
	
	//cout.rdbuf(sbuf);
	
	for (int k=1; k<10;k++){
		for(int i=1;i<99;i++){
			if(damage_step_cumulative_vector[i]<=0.1*k){
				damage_step_dispersion_vector[k]=damage_step_vector[i]-1;
			}
		}
		//cout << "\t" << damage_step_dispersion_vector[k];
	}
	
	double samp_num=0;
	double dps_precision=1;
	
	for(int k=1; k<10;k++){
		//cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision  << "\t" << k << endl;
		
		do{
			//	cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision << "\t" << k << endl;
			
			samp_num=0;
			damage_step_dispersion_vector[k]+=dps_precision;   //SISTEMA QUI!!!
			for(int j=0;j<sample_fight;j++){
				if((dps_vector[j]<damage_step_dispersion_vector[k])){
					samp_num+=(1.0/(sample_fight-1));
				}
				//cout << samp_num << "\t" << damage_step_dispersion_vector[k] << "\t" << dps_precision << "\t" << j << "\t" << k << endl;
			}
		}while(samp_num<=(0.1*k));
		
	}

							
	
							
							dps_value_matrix[l][m][n][o][q]=dps_average;

	
							
						}
					}
				}
			}
		}
		
	}
	
	ofstream file;
	file.open ("FeralbyNightOutputVariableSpace.txt");
	streambuf* sbuf = cout.rdbuf();
	cout.rdbuf(file.rdbuf());
	cout <<"\n" << "crit" << "\t" << "hit" << "\t" << "haste" << "\t" << "ap" << "\t" << "arpen" << "\t" << "DPS";
	for(l=0;l<5;l++){
		for(m=0;m<5;m++){
			for(n=0;n<6;n++){
				for(o=0;o<6;o++){
					for(q=0;q<6;q++){
	cout <<"\n" << mincrit+stepcrit*l << "\t" << minhit+stephit*m << "\t" << minhaste+stephaste*n << "\t" << minap+stepap*o << "\t" << minarpen+steparpen*q << "\t" << dps_value_matrix[l][m][n][o][q];
					}
				}
			}
		}
	}
	
	file.close();
	
	cout.rdbuf(sbuf);
	cout << "Output saved into FeralbyNightOutputVariableSpace.txt" << endl;
	
	return 0;
}
