public InventoryChangeFailure CanUseAmmo(ref WS_PlayerData.CharacterObject objCharacter, int AmmoID) { if (objCharacter.DEAD) { return(InventoryChangeFailure.EQUIP_ERR_YOU_ARE_DEAD); } if (!WorldServiceLocator._WorldServer.ITEMDatabase.ContainsKey(AmmoID)) { return(InventoryChangeFailure.EQUIP_ERR_ITEM_NOT_FOUND); } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].InventoryType != INVENTORY_TYPES.INVTYPE_AMMO) { return(InventoryChangeFailure.EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE); } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableClasses != 0L && (ulong)(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableClasses & objCharacter.ClassMask) == 0) { return(InventoryChangeFailure.EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM); } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableRaces != 0L && (ulong)(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].AvailableRaces & objCharacter.RaceMask) == 0) { return(InventoryChangeFailure.EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM); } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill != 0) { if (!objCharacter.HaveSkill(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill)) { return(InventoryChangeFailure.EQUIP_ERR_NO_REQUIRED_PROFICIENCY); } if (!objCharacter.HaveSkill(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkill, WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSkillRank)) { return(InventoryChangeFailure.EQUIP_ERR_SKILL_ISNT_HIGH_ENOUGH); } } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSpell != 0 && !objCharacter.HaveSpell(WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqSpell)) { return(InventoryChangeFailure.EQUIP_ERR_NO_REQUIRED_PROFICIENCY); } if (WorldServiceLocator._WorldServer.ITEMDatabase[AmmoID].ReqLevel > objCharacter.Level) { return(InventoryChangeFailure.EQUIP_ERR_YOU_MUST_REACH_LEVEL_N); } if (objCharacter.HavePassiveAura(46699)) { return(InventoryChangeFailure.EQUIP_ERR_BAG_FULL6); } return(InventoryChangeFailure.EQUIP_ERR_OK); }