915
edits
(getStatChangeString: Re-structure for potential performance benefits, and correct issue where certain skills may be omitted) |
(Add gem link to gem equipment slot) |
||
(5 intermediate revisions by 3 users not shown) | |||
Line 112: | Line 112: | ||
if result == nil and ZeroIfNil then result = 0 end | if result == nil and ZeroIfNil then result = 0 end | ||
return result | return result | ||
end | |||
function p.getItemValue(item) | |||
if type(item) == 'string' then | |||
-- Specific check if the item is GP (value of 1) | |||
if Shared.compareString('GP', item, true) | |||
or Shared.compareString('Gold Pieces', item, true) then | |||
return 1 | |||
end | |||
item = p.getItem(item) | |||
end | |||
if item then | |||
return item.sellsFor | |||
end | |||
return nil | |||
end | end | ||
Line 167: | Line 185: | ||
function p.hasCombatStats(item) | function p.hasCombatStats(item) | ||
-- Checks if the combat stat is a valid, non-zero combat stat | |||
-- Ensure that, only in the case where the item is a Familar AND | |||
-- the checked stat is summoningMaxhit, the result is ignored. | |||
function isNonZeroStat(statName, statVal) | |||
if statName == 'summoningMaxhit' and (p._canItemUseSlot(item, 'Summon1') or p._canItemUseSlot(item, 'Summon2')) then | |||
return false | |||
end | |||
return statVal ~= 0 | |||
end | |||
if item.equipmentStats ~= nil then | if item.equipmentStats ~= nil then | ||
-- Ensure at least one stat has a non-zero value | -- Ensure at least one stat has a non-zero value | ||
for statName, statVal in pairs(item.equipmentStats) do | for statName, statVal in pairs(item.equipmentStats) do | ||
if statVal | if isNonZeroStat(statName, statVal) then | ||
return true | return true | ||
end | end | ||
end | end | ||
end | end | ||
return false | return false | ||
end | end | ||
Line 342: | Line 371: | ||
["Passive"] = 'Combat Passive Slot', | ["Passive"] = 'Combat Passive Slot', | ||
["Summon1"] = 'Summoning', | ["Summon1"] = 'Summoning', | ||
["Summon2"] = 'Summoning' | ["Summon2"] = 'Summoning', | ||
["Gem"] = "Gems_(Equipment)" | |||
} | } | ||
local slotText = {} | local slotText = {} | ||
Line 850: | Line 880: | ||
table.insert(resultPart, '\r\n|}') | table.insert(resultPart, '\r\n|}') | ||
return table.concat(resultPart) | return table.concat(resultPart) | ||
end | |||
function p.getLifestealWeapons() | |||
local items = p.getItems(function(item) | |||
if item.specialAttacks ~= nil and not Shared.tableIsEmpty(item.specialAttacks) then | |||
for i, spAttID in ipairs(item.specialAttacks) do | |||
local spAtt = GameData.getEntityByID('attacks', spAttID) | |||
if spAtt ~= nil then | |||
return spAtt.lifesteal > 0 | |||
end | |||
end | |||
end | |||
return false | |||
end) | |||
for i, item in ipairs(items) do | |||
mw.log(item.name) | |||
end | |||
end | end | ||
return p | return p |
edits