View Single Post
  #5  
Old 09-16-2008, 06:57 PM
renoofturks1
Sarnak
 
Join Date: Jan 2008
Posts: 60
Default

Yes, there is a 1handed bonus, which we already have calculated correctly in the file. The whole finished product would resemble....
Replacing lines 1935 through 1971

Code:
int Mob::GetWeaponDamageBonus(const Item_Struct* Weapon)
{
	// Kaiyodo - Calculate the damage bonus for a weapon on the main hand
	if (GetLevel() < 28)
		return(0);
	
	// Check we're on of the classes that gets a damage bonus
	if (!IsWarriorClass())
		return 0;
	
	int BasicBonus = ((GetLevel() - 25) / 3) + 1;
	
	if(!Weapon)
		return(BasicBonus);
	
	// If we have no weapon, or only a single handed weapon, just return the default
	// damage bonus of (Level - 25) / 3
	if (Weapon->ItemClass == ItemClassCommon)
		return BasicBonus;
	
	if ((Weapon->ItemType == ItemType1HS) || (Weapon->ItemType == ItemTypePierce) || (Weapon->ItemType == ItemType1HB))
		return BasicBonus;

	//begin Reno's untested code
        if (Weapon->Delay <=27)
	        return (BasicBonus + 1);
        if (Weapon->Delay <=39)
	        return (BasicBonus + ((GetLevel()-27)/4));
        if (Weapon->Delay <= 41)
	        return (BasicBonus + ((GetLevel()-27)/4) + 1);
        if (Weapon->Delay >= 42)
	        if (GetLevel() > 54)
		        int levelint = 1;
	        if (GetLevel() > 56)
		        levelint += 1;
	        if (GetLevel() > 58)
		        levelint += 1;
	        if (GetLevel() > 59)
		        levelint += 1;
	        if (GetLevel() > 66)
		        levelint += 1;
	        if (GetLevel() > 71)
		        levelint += 1;
	        if (Weapon->Delay > 42)
		        int delayint = 1;
	        if (Weapon->Delay >44)
		        delayint += 1;

	        return (((Weapon->Delay-37)/3) +  ((GetLevel()-25)/ 5) + ((Weapon->Delay * (GetLevel()-50 + levelint))/40) + delayint + BasicBonus);
}
Reply With Quote