private int rollToHit(int attackerUID, int defenderUID) {
        if (org.getAttackTarget(attackerUID) == lookup.missCode) {  // then he was stunned
            org.setAttackTarget(lookup.headCode, attackerUID);      // un-stun him
            return lookup.missCode;                                 // do the actual stunning. 
        }
    // affected by:
        // attSkill of attacker + (equipped)itemBuffs.
        double attSkill = org.getAttSkill(attackerUID) + hs.getItemMODTYPEBuffs(lookup.attSkillMod, attackerUID);
        // aim location
        int aim = org.getAttackTarget(attackerUID);
        // usedWeaponClass
        int wepClass = hs.getWeaponClassSpeed(attackerUID); 
        // Raw weapon proficiency + proficiency buffs from items.
        double prof = hs.getProficiency(wepClass, attackerUID) + hs.getItemMODTYPEBuffs(lookup.getModCode(wepClass), attackerUID);
        // enemy defSkill
        double defSkill = org.getDefSkill(defenderUID) + hs.getItemMODTYPEBuffs(lookup.defSkillMod, attackerUID);
        // Other miscellaneous item bonuses
        int itemBuff = 0;
        double roll = Math.random() * 100;
        roll = ((roll * (defSkill/attSkill)) - (2*(Math.log((1+prof)/wepClass))));
        if (lookup.headCode == aim) {
            return littleHitOddsHelper(roll, 10, 20, 25, 30);
        } else if (lookup.armsCode == aim) {
            return littleHitOddsHelper(roll, 8, 22, 28, 32);
        } else if (lookup.torsoCode == aim) {
            return littleHitOddsHelper(roll, 8, 16, 28, 35);
        } else if (lookup.legsCode == aim) {
            return littleHitOddsHelper(roll, 2, 8, 15, 33);
        } else {
            return lookup.missCode;
        }
    }