Référence › Référence des fonctions › Conditions

Conditions.equipment.matches

dépendance

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

NomTypeCe qu'elle fait
valuetableCondition settings: kind (empty, shield, weapon, holdable, onehand, twohand or ranged) or a weapon subclass ID in subclass.
recordtable | booleanSlot record with classID, subClassID, equipLoc and an optional typeReason, or false for an empty slot.

Retours

1boolean | nilWhether the slot matches, or nil when it cannot be decided.
2string | nilReason 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

Dépendances

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"

Retour à Référence des fonctions