Appel
Conditions.equipment.matches(value, record)
Enregistrez la dépendance Conditions.equipment.matches, puis appelez-la sous ce nom. Un appel par espace de noms ne transmet pas self : utilisez un appel avec deux-points ou passez l'objet vous-même.
Ce qu'elle fait
Tests one equipment slot record against a WEAPON_TYPE condition: empty slot, shield, any weapon, holdable, one-hand, two-hand, ranged, or a specific weapon subclass. Returns nil with a reason when the item's class or equip location is not known yet.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
value | table | Condition settings: kind (empty, shield, weapon, holdable, onehand, twohand or ranged) or a weapon subclass ID in subclass. |
record | table | boolean | Slot record with classID, subClassID, equipLoc and an optional typeReason, or false for an empty slot. |
Retours
| 1 | boolean | nil | Whether the slot matches, or nil when it cannot be decided. |
|---|---|---|
| 2 | string | nil | Reason for nil: the record's typeReason, item-data-unavailable or invalid-weapon-type. |
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
Elle ne lit directement aucune API du jeu.
Comment l'addon l'appelle
- Type d'arme (evaluate)
return matches(value, record)
Dépendances
ARMOR_CLASS(builtin:Conditions/equipment.lua:ARMOR_CLASS)ONEHAND(builtin:Conditions/equipment.lua:ONEHAND)RANGED(builtin:Conditions/equipment.lua:RANGED)SHIELD_SUBCLASS(builtin:Conditions/equipment.lua:SHIELD_SUBCLASS)WEAPON_CLASS(builtin:Conditions/equipment.lua:WEAPON_CLASS)
Source
Conditions/equipment.lua, ligne 119. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
Conditions.equipment.matches(value, record)
if record == false then return value.kind == "empty" end
if value.kind == "empty" then return false end
if record.classID == nil then return nil, record.typeReason or "item-data-unavailable" end
if value.subclass ~= nil then
return record.classID == WEAPON_CLASS and record.subClassID == value.subclass
end
local kind = value.kind
if kind == "shield" then return record.classID == ARMOR_CLASS and record.subClassID == SHIELD_SUBCLASS end
if kind == "weapon" then return record.classID == WEAPON_CLASS end
if record.equipLoc == nil then return nil, "item-data-unavailable" end
if kind == "holdable" then return record.equipLoc == "INVTYPE_HOLDABLE" end
if record.classID ~= WEAPON_CLASS then return false end
if kind == "onehand" then return ONEHAND[record.equipLoc] == true end
if kind == "twohand" then return record.equipLoc == "INVTYPE_2HWEAPON" end
if kind == "ranged" then return RANGED[record.equipLoc] == true end
return nil, "invalid-weapon-type"