void main() { int iEnchLvl = (GetLocalInt(OBJECT_SELF,"lvl")+d4(1)); itemproperty ipAdd; switch(iEnchLvl) { case 1: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_GOOD,1); break; //impossible result case 2: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_GOOD,1); break; case 3: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_LAWFUL,1); break; case 4: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_CHAOTIC,1); break; case 5: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_EVIL,1); break; case 6: ipAdd=ItemPropertySkillBonus(SKILL_TUMBLE, 2); break; case 7: ipAdd=ItemPropertySkillBonus(SKILL_MOVE_SILENTLY, 2); break; case 8: ipAdd=ItemPropertySkillBonus(SKILL_HIDE, 2); break; case 9: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_GOOD,2); break; case 10: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_LAWFUL,2); break; case 11: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_CHAOTIC,2); break; case 12: ipAdd=ItemPropertyACBonusVsAlign(IP_CONST_ALIGNMENTGROUP_EVIL,2); break; case 13: ipAdd=ItemPropertySkillBonus(SKILL_TUMBLE, 5); break; case 14: ipAdd=ItemPropertySkillBonus(SKILL_MOVE_SILENTLY, 5); break; case 15: ipAdd=ItemPropertySkillBonus(SKILL_HIDE, 5); break; case 16: ipAdd=ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_1,IP_CONST_DAMAGESOAK_5_HP); break; case 17: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING,IP_CONST_DAMAGERESIST_5); break; case 18: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING,IP_CONST_DAMAGERESIST_5); break; case 19: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING,IP_CONST_DAMAGERESIST_5); break; case 20: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGERESIST_5); break; case 21: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGERESIST_5); break; case 22: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_DIVINE,IP_CONST_DAMAGERESIST_5); break; case 23: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SONIC,IP_CONST_DAMAGERESIST_5); break; case 24: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_ELECTRICAL,IP_CONST_DAMAGERESIST_5); break; case 25: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_MAGICAL,IP_CONST_DAMAGERESIST_5); break; case 26: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_NEGATIVE,IP_CONST_DAMAGERESIST_5); break; case 27: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGERESIST_10); break; case 28: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGERESIST_10); break; case 29: ipAdd=ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_2,IP_CONST_DAMAGESOAK_10_HP); break; case 30: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_DIVINE,IP_CONST_DAMAGERESIST_10); break; case 31: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SONIC,IP_CONST_DAMAGERESIST_10); break; case 32: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_ELECTRICAL,IP_CONST_DAMAGERESIST_10); break; case 33: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_MAGICAL,IP_CONST_DAMAGERESIST_10); break; case 34: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_NEGATIVE,IP_CONST_DAMAGERESIST_10); break; case 35: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_12); break; case 36: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_BLUDGEONING,IP_CONST_DAMAGERESIST_10); break; case 37: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_PIERCING,IP_CONST_DAMAGERESIST_10); break; case 38: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_SLASHING,IP_CONST_DAMAGERESIST_10); break; case 39: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_14); break; case 40: ipAdd=ItemPropertyFreeAction(); break; case 41: ipAdd=ItemPropertyImmunityToSpellLevel(1); break; case 42: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_16); break; case 43: ipAdd=ItemPropertyHaste(); break; case 44: ipAdd=ItemPropertyImprovedEvasion(); break; case 45: ipAdd=ItemPropertyTrueSeeing(); break; case 46: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_18); break; case 47: ipAdd=ItemPropertyBonusFeat(IP_CONST_FEAT_AMBIDEXTROUS); break; case 48: ipAdd=ItemPropertyBonusFeat(IP_CONST_FEAT_SNEAK_ATTACK_1D6); break; case 49: ipAdd=ItemPropertyImmunityToSpellLevel(2); break; case 50: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_20); break; case 51: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_FIRE,IP_CONST_DAMAGERESIST_15); break; case 52: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_COLD,IP_CONST_DAMAGERESIST_15); break; case 53: ipAdd=ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_3,IP_CONST_DAMAGESOAK_15_HP); break; case 54: ipAdd=ItemPropertyDamageResistance(IP_CONST_DAMAGETYPE_MAGICAL,IP_CONST_DAMAGERESIST_15); break; case 55: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_22); break; case 56: ipAdd=ItemPropertyImmunityToSpellLevel(3); break; case 57: ipAdd=ItemPropertyRegeneration(5); break; case 58: ipAdd=ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_4,IP_CONST_DAMAGESOAK_20_HP); break; case 59: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_24); break; case 60: ipAdd=ItemPropertyImmunityToSpellLevel(4); break; case 61: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_28); break; case 62: ipAdd=ItemPropertyBonusSpellResistance(IP_CONST_SPELLRESISTANCEBONUS_32); break; case 63: ipAdd=ItemPropertyDamageReduction(IP_CONST_DAMAGEREDUCTION_5,IP_CONST_DAMAGESOAK_25_HP); break; } AddItemProperty(DURATION_TYPE_PERMANENT,ipAdd,OBJECT_SELF); }