ESO Lua File v100010

ingame/storewindow/storewindow_shared.lua

[◄ back to folders ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
-- Globals
ZO_MODE_STORE_BUY              = 1
ZO_MODE_STORE_BUY_BACK         = 2
ZO_MODE_STORE_SELL             = 3
ZO_MODE_STORE_REPAIR           = 4
ZO_MODE_STORE_SELL_STOLEN      = 5
ZO_MODE_STORE_LAUNDER          = 6
ZO_MODE_STORE_STABLE           = 7
ZO_STORE_WINDOW_MODE_NORMAL = 1
ZO_STORE_WINDOW_MODE_STABLE = 2
STORE_INTERACTION =
{
    type = "Store",
    interactTypes = { INTERACTION_VENDOR, INTERACTION_STABLE },
}
-- Shared object
ZO_SharedStoreManager = ZO_Object:Subclass()
function ZO_SharedStoreManager:InitializeStore()
    local _
    self.storeUsesMoney, self.storeUsesAP, _, self.storeUsesItems = GetStoreCurrencyTypes()
end
function ZO_SharedStoreManager:RefreshCurrency()
    self.currentMoney = GetCurrentMoney()
    self.currentAP = GetAlliancePoints()
end
-- Shared global functions
    local items = {}
    local usedFilterTypes = {}
    for entryIndex = 1, GetNumStoreItems() do
        local icon, name, stack, price, sellPrice, meetsRequirementsToBuy, meetsRequirementsToEquip, quality, questNameColor, currencyType1, currencyId1, currencyQuantity1, currencyIcon1,
            currencyName1, currencyType2, currencyId2, currencyQuantity2, currencyIcon2, currencyName2, entryType = GetStoreEntryInfo(entryIndex)
        if(stack > 0) then
            local itemData =
            {
                entryType = entryType,
                slotIndex = entryIndex,
                icon = icon,
                name = name,
                stack = stack,
                price = price,
                sellPrice = sellPrice,
                meetsRequirementsToBuy = meetsRequirementsToBuy,
                meetsRequirementsToEquip = meetsRequirementsToEquip,
                quality = quality,
                questNameColor = questNameColor,
                currencyType1 = currencyType1,
                currencyId1 = currencyId1,
                currencyQuantity1 = currencyQuantity1,
                currencyIcon1 = currencyIcon1,
                currencyName1 = currencyName1,
                currencyType2 = currencyType2,
                currencyId2 = currencyId2,
                currencyQuantity2 = currencyQuantity2,
                currencyIcon2 = currencyIcon2,
                currencyName2 = currencyName2,
                stackBuyPrice = stack * price,
                stackBuyPriceCurrency1 = stack * currencyQuantity1,
                stackBuyPriceCurrency2 = stack * currencyQuantity2,
                filterData = { GetStoreEntryTypeInfo(entryIndex) },
                statValue = GetStoreEntryStatValue(entryIndex),
            }
            items[#items + 1] = itemData
            for i = 1, #itemData.filterData do
                usedFilterTypes[itemData.filterData[i]] = true
            end
        end
    end
    return items, usedFilterTypes
end
    local usedFilterTypes = {}
    for entryIndex = 1, GetNumStoreItems() do
        local filterData = { GetStoreEntryTypeInfo(entryIndex) }
        for i = 1, #filterData do
            usedFilterTypes[filterData[i]] = true
        end
    end
    return usedFilterTypes
end
local function PlayItemAcquisitionSound(eventId, itemSoundCategory)
    -- For purchases, the actual item sound will be played by inventory getting the new item update.
    if(itemSoundCategory == ITEM_SOUND_CATEGORY_NONE) then
        -- Fall back sound if there was no other sound to play
        PlaySound(SOUNDS.ITEM_MONEY_CHANGED)            
    end
end
function ZO_StoreManager_OnPurchased(eventId, entryName, entryType, entryQuantity, money, specialCurrencyType1, specialCurrencyInfo1, specialCurrencyQuantity1, specialCurrencyType2, specialCurrencyInfo2, specialCurrencyQuantity2, itemSoundCategory)
    if(entryType == STORE_ENTRY_TYPE_MOUNT) then
        PlaySound(SOUNDS.STABLE_BUY_MOUNT)
    else
        PlayItemAcquisitionSound(eventId, itemSoundCategory)
    end
end