Referenz › Funktionsreferenz › Conditions

Conditions.equipment.matches

Abhängigkeit

Aufruf als

Conditions.equipment.matches(value, record)

Erfassen Sie die Abhängigkeit Conditions.equipment.matches und rufen Sie sie dann unter diesem Namen auf. Ein Aufruf über den Namensraum übergibt kein self: Verwenden Sie einen Doppelpunkt-Aufruf oder übergeben Sie das Objekt selbst.

Was sie bewirkt

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.

Argumente

NameTypWas sie bewirkt
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.

Rückgabewerte

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.

Editionen

Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.

Sie liest keine Spiel-API direkt.

Wie das Addon sie aufruft

  • Waffentyp (evaluate)
    return matches(value, record)

Abhängigkeiten

Quelle

Conditions/equipment.lua, Zeile 119. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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"

Zurück zu Funktionsreferenz