All pastes #2056025 Raw Edit

Mine

public text v1 · immutable
#2056025 ·published 2011-05-10 04:25 UTC
rendered paste body
	public static double getAccuracy(CombatType type, Player atker, Player opp) {
		int bonus = 1;
		int defBonusAttribute = 1;
		int level = 0;
		if(type == CombatType.MELEE) {
			level = 0;
			bonus = atker.skillId - 1;
		}
		if(type == CombatType.RANGE) {
			level = 4;
			bonus = 4;
		}
		if(type == CombatType.MAGIC) {
			level = 6;
			bonus = 3;
			defBonusAttribute = 8;
		}
		if(bonus < 0) {
			bonus = 0;
		}
		if(type != CombatType.MAGIC) {
			defBonusAttribute = bonus + 5;
		}
		double atkBonus = atker.playerBonus[bonus] < 1 ? 0 : atker.playerBonus[bonus];
		double defBonus = opp.playerBonus[defBonusAttribute] < 1 ? 0 : opp.playerBonus[defBonusAttribute];
		double atk = (atkBonus * atker.playerLevel[level]);
		double def = (defBonus * opp.playerLevel[1]);
		atk += (type == CombatType.MAGIC) ? 2 : 3;
		int wep = atker.playerEquipment[atker.playerWeapon];
		if(wep == 8907) {
			atk = atk * 0.45;
		}
		if(atker.UsingSpecial) {
			switch(wep) {
			case 1434:
			case 5698 :
				atk = atk * 1.55;
			break;
			case 8086:
			case 4153:
				atk = atk * 1.30;
				break;
			}
		}
		double prayAtkBonus =  1 + (atker.AtkPray / 100);
		double prayDefBonus = 1 + (opp.DefPray / 100);
		if(prayAtkBonus < 0) {
			prayAtkBonus = 1.0;
		}
		if(prayDefBonus < 0) {
			prayDefBonus = 1.0;
		}
		if(type == CombatType.MELEE) {
			if(opp.HeadPray == 3) {
				def = def * 1.5;
			}
		}
		if(type == CombatType.RANGE) {
			if(opp.HeadPray == 2) {
				def = def * 1.5;
			}
		}
		atk = atk * prayAtkBonus;
		def = def * prayDefBonus;
		double outCome = MODIFIER * (atk/def);
		return outCome;
	}