From 482abf8ef166b5128b8760bbc01e4c7ec1f2b362 Mon Sep 17 00:00:00 2001 From: Manuel Simon Hirsig Date: Tue, 30 Aug 2016 00:35:40 +0200 Subject: [PATCH] refactoring --- aux-addon.lua | 2 +- core/disenchant.lua | 186 ++++++++++++++++++++--------------------- tabs/search/filter.lua | 18 ++-- 3 files changed, 101 insertions(+), 105 deletions(-) diff --git a/aux-addon.lua b/aux-addon.lua index 672aaf4..7d3f77b 100644 --- a/aux-addon.lua +++ b/aux-addon.lua @@ -264,7 +264,7 @@ function SetItemRef(...) temp=arg if arg[3] ~= 'RightButton' or not index(active_tab, 'CLICK_LINK') or not strfind(arg[1], '^item:%d+') then return orig.SetItemRef(unpack(arg)) end - for item_info in present(info.item(tonumber(select(3, strfind(arg[1], '^item:(%d+)'))))) do + for item_info in present(aux.info.item(tonumber(select(3, strfind(arg[1], '^item:(%d+)'))))) do return active_tab.CLICK_LINK(item_info) end end diff --git a/core/disenchant.lua b/core/disenchant.lua index 3322f70..fd038c7 100644 --- a/core/disenchant.lua +++ b/core/disenchant.lua @@ -4,33 +4,33 @@ UNCOMMON, RARE, EPIC = 2, 3, 4 do local data = { - [10940] = {'DUST', '1-20'}, - [11083] = {'DUST', '21-30'}, - [11137] = {'DUST', '31-40'}, - [11176] = {'DUST', '41-50'}, - [16204] = {'DUST', '51-60'}, + [10940] = list('DUST', '1-20'), + [11083] = list('DUST', '21-30'), + [11137] = list('DUST', '31-40'), + [11176] = list('DUST', '41-50'), + [16204] = list('DUST', '51-60'), - [10938] = {'ESSENCE', '1-10'}, - [10939] = {'ESSENCE', '11-15'}, - [10998] = {'ESSENCE', '16-20'}, - [11082] = {'ESSENCE', '21-25'}, - [11134] = {'ESSENCE', '26-30'}, - [11135] = {'ESSENCE', '31-35'}, - [11174] = {'ESSENCE', '36-40'}, - [11175] = {'ESSENCE', '41-45'}, - [16202] = {'ESSENCE', '46-50'}, - [16203] = {'ESSENCE', '51-60'}, + [10938] = list('ESSENCE', '1-10'), + [10939] = list('ESSENCE', '11-15'), + [10998] = list('ESSENCE', '16-20'), + [11082] = list('ESSENCE', '21-25'), + [11134] = list('ESSENCE', '26-30'), + [11135] = list('ESSENCE', '31-35'), + [11174] = list('ESSENCE', '36-40'), + [11175] = list('ESSENCE', '41-45'), + [16202] = list('ESSENCE', '46-50'), + [16203] = list('ESSENCE', '51-60'), - [10978] = {'SHARD', '1-20'}, - [11084] = {'SHARD', '21-25'}, - [11138] = {'SHARD', '26-30'}, - [11139] = {'SHARD', '31-35'}, - [11177] = {'SHARD', '36-40'}, - [11178] = {'SHARD', '41-45'}, - [14343] = {'SHARD', '46-50'}, - [14344] = {'SHARD', '51-60'}, + [10978] = list('SHARD', '1-20'), + [11084] = list('SHARD', '21-25'), + [11138] = list('SHARD', '26-30'), + [11139] = list('SHARD', '31-35'), + [11177] = list('SHARD', '36-40'), + [11178] = list('SHARD', '41-45'), + [14343] = list('SHARD', '46-50'), + [14344] = list('SHARD', '51-60'), - [20725] = {'CRYSTAL', '51+'}, + [20725] = list('CRYSTAL', '51+'), } function public.source(item_id) @@ -70,7 +70,7 @@ end function public.value(slot, quality, level) local expectation for _, event in distribution(slot, quality, level) do - local value = history.value(event.item_id..':'..0) + local value = aux.history.value(event.item_id..':'..0) if not value then return else @@ -95,102 +95,102 @@ function public.distribution(slot, quality, level) if quality == UNCOMMON then if level <= 10 then - return { - {item_id=10940, min_quantity=1, max_quantity=2, probability=p(.8, .2)}, - {item_id=10938, min_quantity=1, max_quantity=2, probability=p(.2, .8)}, - } + return list( + T('item_id', 10940, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.8, .2)), + T('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8)) + ) elseif level <= 15 then - return { - {item_id=10940, min_quantity=2, max_quantity=3, probability=p(.75, .2)}, - {item_id=10939, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=10978, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 10940, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.75, .2)), + T('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 20 then - return { - {item_id=10940, min_quantity=4, max_quantity=6, probability=p(.75, .15)}, - {item_id=10998, min_quantity=1, max_quantity=2, probability=p(.15, .75)}, - {item_id=10978, min_quantity=1, max_quantity=1, probability=.10}, - } + return list( + T('item_id', 10940, 'min_quantity', 4, 'max_quantity', 6, 'probability', p(.75, .15)), + T('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)), + T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10) + ) elseif level <= 25 then - return { - {item_id=11083, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, - {item_id=11082, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=11084, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 11083, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + T('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 30 then - return { - {item_id=11083, min_quantity=2, max_quantity=5, probability=p(.75, .2)}, - {item_id=11134, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=11138, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 11083, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), + T('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 35 then - return { - {item_id=11137, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, - {item_id=11135, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=11139, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 11137, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + T('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 40 then - return { - {item_id=11137, min_quantity=2, max_quantity=5, probability=p(.75, .2)}, - {item_id=11174, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=11177, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 11137, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .2)), + T('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 45 then - return { - {item_id=11176, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, - {item_id=11175, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=11178, min_quantity=1, max_quantity=1, probability=.05}, - } + return list( + T('item_id', 11176, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .2)), + T('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05) + ) elseif level <= 50 then - return { - {item_id=11176, min_quantity=2, max_quantity=5, probability=p(.75, .22)}, - {item_id=16202, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=14343, min_quantity=1, max_quantity=1, probability=p(.05, .03)}, - } + return list( + T('item_id', 11176, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), + T('item_id', 16202, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + ) elseif level <= 55 then - return { - {item_id=16204, min_quantity=1, max_quantity=2, probability=p(.75, .22)}, - {item_id=16203, min_quantity=1, max_quantity=2, probability=p(.2, .75)}, - {item_id=14344, min_quantity=1, max_quantity=1, probability=p(.05, .03)}, - } + return list( + T('item_id', 16204, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.75, .22)), + T('item_id', 16203, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)), + T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + ) elseif level <= 60 then - return { - {item_id=16204, min_quantity=2, max_quantity=5, probability=p(.75, .22)}, - {item_id=16203, min_quantity=2, max_quantity=3, probability=p(.2, .75)}, - {item_id=14344, min_quantity=1, max_quantity=1, probability=p(.05, .03)}, - } + return list( + T('item_id', 16204, 'min_quantity', 2, 'max_quantity', 5, 'probability', p(.75, .22)), + T('item_id', 16203, 'min_quantity', 2, 'max_quantity', 3, 'probability', p(.2, .75)), + T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03)) + ) end elseif quality == RARE then if level <= 20 then - return {{item_id=10978, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=10978, min_quantity=1, max_quantity=1, probability=1}) -- TODO elseif level <= 25 then - return {{item_id=11084, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=11084, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 30 then - return {{item_id=11138, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=11138, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 35 then - return {{item_id=11139, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=11139, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 40 then - return {{item_id=11177, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=11177, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 45 then - return {{item_id=11178, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=11178, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 50 then - return {{item_id=14343, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=14343, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 55 then - return {{item_id=14344, min_quantity=1, max_quantity=1, probability=.995}, {item_id=20725, min_quantity=1, max_quantity=1, probability=.005}} + return list({item_id=14344, min_quantity=1, max_quantity=1, probability=.995}, {item_id=20725, min_quantity=1, max_quantity=1, probability=.005}) elseif level <= 60 then - return {{item_id=14344, min_quantity=1, max_quantity=1, probability=.995}, {item_id=20725, min_quantity=1, max_quantity=1, probability=.005}} + return list({item_id=14344, min_quantity=1, max_quantity=1, probability=.995}, {item_id=20725, min_quantity=1, max_quantity=1, probability=.005}) end elseif quality == EPIC then if level <= 40 then - return {{item_id=11177, min_quantity=2, max_quantity=4, probability=1}} + return list({item_id=11177, min_quantity=2, max_quantity=4, probability=1}) elseif level <= 45 then - return {{item_id=11178, min_quantity=2, max_quantity=4, probability=1}} + return list({item_id=11178, min_quantity=2, max_quantity=4, probability=1}) elseif level <= 50 then - return {{item_id=14343, min_quantity=2, max_quantity=4, probability=1}} + return list({item_id=14343, min_quantity=2, max_quantity=4, probability=1}) elseif level <= 55 then - return {{item_id=20725, min_quantity=1, max_quantity=1, probability=1}} + return list({item_id=20725, min_quantity=1, max_quantity=1, probability=1}) elseif level <= 60 then - return {{item_id=20725, min_quantity=1, max_quantity=2, probability=1}} + return list({item_id=20725, min_quantity=1, max_quantity=2, probability=1}) end end return t diff --git a/tabs/search/filter.lua b/tabs/search/filter.lua index 589e534..d4dfadc 100644 --- a/tabs/search/filter.lua +++ b/tabs/search/filter.lua @@ -43,16 +43,12 @@ blizzard_query = setmetatable(t, { elseif key == 'usable' then usable_checkbox:SetChecked(value) elseif key == 'class' then - UIDropDownMenu_Initialize(class_dropdown, initialize_class_dropdown) UIDropDownMenu_SetSelectedValue(class_dropdown, value) elseif key == 'subclass' then - UIDropDownMenu_Initialize(subclass_dropdown, initialize_subclass_dropdown) UIDropDownMenu_SetSelectedValue(subclass_dropdown, value) elseif key == 'slot' then - UIDropDownMenu_Initialize(slot_dropdown, initialize_slot_dropdown) UIDropDownMenu_SetSelectedValue(slot_dropdown, value) elseif key == 'quality' then - UIDropDownMenu_Initialize(quality_dropdown, initialize_quality_dropdown) UIDropDownMenu_SetSelectedValue(quality_dropdown, value) end end, @@ -140,12 +136,12 @@ function get_filter_builder_query() return filter_string or '' end -function set_form(components) +function set_form(filter) clear_form() - for key, filter in components.blizzard do + for key, filter in filter.blizzard do blizzard_query[key] = filter[2] end - for _, component in components.post do + for _, component in filter.post do add_component(component) end update_filter_display() @@ -171,9 +167,9 @@ function clear_form() end function import_filter_string() - local components, error = filter_util.parse_filter_string(select(3, strfind(search_box:GetText(), '^([^;]*)'))) - if components or log(error) then - set_form(components) + local filter, error = filter_util.parse_filter_string(select(3, strfind(search_box:GetText(), '^([^;]*)'))) + if filter or log(error) then + set_form(filter) end end @@ -376,7 +372,7 @@ function initialize_slot_dropdown() local subclass_index = UIDropDownMenu_GetSelectedValue(subclass_dropdown) if subclass_index and GetAuctionInvTypes(class_index, subclass_index) then UIDropDownMenu_AddButton(T('text', ALL, 'value', '', 'func', on_click)) - for _, slot in {GetAuctionInvTypes(class_index, subclass_index)} do + for _, slot in temp-list(GetAuctionInvTypes(class_index, subclass_index)) do UIDropDownMenu_AddButton(T('text', _G[slot], 'value', slot, 'func', on_click)) end end