static public float get(int itemLevel, QualityT quality, EquipT equip, WeaponT weapon, boolean caster) {
        float[] data;
        if (WeaponT.WAND == weapon) {
            data = Wand.data;
        } else if (WeaponT.BOW == weapon || WeaponT.GUN == weapon || WeaponT.XBOW == weapon) {
            data = Ranged.data;
        } else {
            boolean twoHand = weapon.hands == 0 ? equip.twoHand : weapon.hands == 2;        
            if (twoHand) {
                data = caster ? TwoHandCaster.data : TwoHand.data;
            } else {
                data = caster ? OneHandCaster.data : OneHand.data;
            }         
        } 
        return data == null ? 0 : data[(itemLevel - 1) * N + quality.damageIndex];
    }