refactoring

This commit is contained in:
Manuel Simon Hirsig
2016-08-30 00:35:40 +02:00
parent ecfafb71b1
commit 482abf8ef1
3 changed files with 101 additions and 105 deletions
+1 -1
View File
@@ -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 if arg[3] ~= 'RightButton' or not index(active_tab, 'CLICK_LINK') or not strfind(arg[1], '^item:%d+') then
return orig.SetItemRef(unpack(arg)) return orig.SetItemRef(unpack(arg))
end 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) return active_tab.CLICK_LINK(item_info)
end end
end end
+93 -93
View File
@@ -4,33 +4,33 @@ UNCOMMON, RARE, EPIC = 2, 3, 4
do do
local data = { local data = {
[10940] = {'DUST', '1-20'}, [10940] = list('DUST', '1-20'),
[11083] = {'DUST', '21-30'}, [11083] = list('DUST', '21-30'),
[11137] = {'DUST', '31-40'}, [11137] = list('DUST', '31-40'),
[11176] = {'DUST', '41-50'}, [11176] = list('DUST', '41-50'),
[16204] = {'DUST', '51-60'}, [16204] = list('DUST', '51-60'),
[10938] = {'ESSENCE', '1-10'}, [10938] = list('ESSENCE', '1-10'),
[10939] = {'ESSENCE', '11-15'}, [10939] = list('ESSENCE', '11-15'),
[10998] = {'ESSENCE', '16-20'}, [10998] = list('ESSENCE', '16-20'),
[11082] = {'ESSENCE', '21-25'}, [11082] = list('ESSENCE', '21-25'),
[11134] = {'ESSENCE', '26-30'}, [11134] = list('ESSENCE', '26-30'),
[11135] = {'ESSENCE', '31-35'}, [11135] = list('ESSENCE', '31-35'),
[11174] = {'ESSENCE', '36-40'}, [11174] = list('ESSENCE', '36-40'),
[11175] = {'ESSENCE', '41-45'}, [11175] = list('ESSENCE', '41-45'),
[16202] = {'ESSENCE', '46-50'}, [16202] = list('ESSENCE', '46-50'),
[16203] = {'ESSENCE', '51-60'}, [16203] = list('ESSENCE', '51-60'),
[10978] = {'SHARD', '1-20'}, [10978] = list('SHARD', '1-20'),
[11084] = {'SHARD', '21-25'}, [11084] = list('SHARD', '21-25'),
[11138] = {'SHARD', '26-30'}, [11138] = list('SHARD', '26-30'),
[11139] = {'SHARD', '31-35'}, [11139] = list('SHARD', '31-35'),
[11177] = {'SHARD', '36-40'}, [11177] = list('SHARD', '36-40'),
[11178] = {'SHARD', '41-45'}, [11178] = list('SHARD', '41-45'),
[14343] = {'SHARD', '46-50'}, [14343] = list('SHARD', '46-50'),
[14344] = {'SHARD', '51-60'}, [14344] = list('SHARD', '51-60'),
[20725] = {'CRYSTAL', '51+'}, [20725] = list('CRYSTAL', '51+'),
} }
function public.source(item_id) function public.source(item_id)
@@ -70,7 +70,7 @@ end
function public.value(slot, quality, level) function public.value(slot, quality, level)
local expectation local expectation
for _, event in distribution(slot, quality, level) do 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 if not value then
return return
else else
@@ -95,102 +95,102 @@ function public.distribution(slot, quality, level)
if quality == UNCOMMON then if quality == UNCOMMON then
if level <= 10 then if level <= 10 then
return { return list(
{item_id=10940, min_quantity=1, max_quantity=2, probability=p(.8, .2)}, T('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)}, T('item_id', 10938, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .8))
} )
elseif level <= 15 then elseif level <= 15 then
return { return list(
{item_id=10940, min_quantity=2, max_quantity=3, probability=p(.75, .2)}, T('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)}, T('item_id', 10939, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=10978, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 20 then elseif level <= 20 then
return { return list(
{item_id=10940, min_quantity=4, max_quantity=6, probability=p(.75, .15)}, T('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)}, T('item_id', 10998, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.15, .75)),
{item_id=10978, min_quantity=1, max_quantity=1, probability=.10}, T('item_id', 10978, 'min_quantity', 1, 'max_quantity', 1, 'probability', .10)
} )
elseif level <= 25 then elseif level <= 25 then
return { return list(
{item_id=11083, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, T('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)}, T('item_id', 11082, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=11084, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 11084, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 30 then elseif level <= 30 then
return { return list(
{item_id=11083, min_quantity=2, max_quantity=5, probability=p(.75, .2)}, T('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)}, T('item_id', 11134, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=11138, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 11138, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 35 then elseif level <= 35 then
return { return list(
{item_id=11137, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, T('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)}, T('item_id', 11135, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=11139, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 11139, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 40 then elseif level <= 40 then
return { return list(
{item_id=11137, min_quantity=2, max_quantity=5, probability=p(.75, .2)}, T('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)}, T('item_id', 11174, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=11177, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 11177, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 45 then elseif level <= 45 then
return { return list(
{item_id=11176, min_quantity=1, max_quantity=2, probability=p(.75, .2)}, T('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)}, T('item_id', 11175, 'min_quantity', 1, 'max_quantity', 2, 'probability', p(.2, .75)),
{item_id=11178, min_quantity=1, max_quantity=1, probability=.05}, T('item_id', 11178, 'min_quantity', 1, 'max_quantity', 1, 'probability', .05)
} )
elseif level <= 50 then elseif level <= 50 then
return { return list(
{item_id=11176, min_quantity=2, max_quantity=5, probability=p(.75, .22)}, T('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)}, T('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)}, T('item_id', 14343, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
} )
elseif level <= 55 then elseif level <= 55 then
return { return list(
{item_id=16204, min_quantity=1, max_quantity=2, probability=p(.75, .22)}, T('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)}, T('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)}, T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
} )
elseif level <= 60 then elseif level <= 60 then
return { return list(
{item_id=16204, min_quantity=2, max_quantity=5, probability=p(.75, .22)}, T('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)}, T('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)}, T('item_id', 14344, 'min_quantity', 1, 'max_quantity', 1, 'probability', p(.05, .03))
} )
end end
elseif quality == RARE then elseif quality == RARE then
if level <= 20 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 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 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 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 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 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 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 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 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 end
elseif quality == EPIC then elseif quality == EPIC then
if level <= 40 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 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 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 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 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
end end
return t return t
+7 -11
View File
@@ -43,16 +43,12 @@ blizzard_query = setmetatable(t, {
elseif key == 'usable' then elseif key == 'usable' then
usable_checkbox:SetChecked(value) usable_checkbox:SetChecked(value)
elseif key == 'class' then elseif key == 'class' then
UIDropDownMenu_Initialize(class_dropdown, initialize_class_dropdown)
UIDropDownMenu_SetSelectedValue(class_dropdown, value) UIDropDownMenu_SetSelectedValue(class_dropdown, value)
elseif key == 'subclass' then elseif key == 'subclass' then
UIDropDownMenu_Initialize(subclass_dropdown, initialize_subclass_dropdown)
UIDropDownMenu_SetSelectedValue(subclass_dropdown, value) UIDropDownMenu_SetSelectedValue(subclass_dropdown, value)
elseif key == 'slot' then elseif key == 'slot' then
UIDropDownMenu_Initialize(slot_dropdown, initialize_slot_dropdown)
UIDropDownMenu_SetSelectedValue(slot_dropdown, value) UIDropDownMenu_SetSelectedValue(slot_dropdown, value)
elseif key == 'quality' then elseif key == 'quality' then
UIDropDownMenu_Initialize(quality_dropdown, initialize_quality_dropdown)
UIDropDownMenu_SetSelectedValue(quality_dropdown, value) UIDropDownMenu_SetSelectedValue(quality_dropdown, value)
end end
end, end,
@@ -140,12 +136,12 @@ function get_filter_builder_query()
return filter_string or '' return filter_string or ''
end end
function set_form(components) function set_form(filter)
clear_form() clear_form()
for key, filter in components.blizzard do for key, filter in filter.blizzard do
blizzard_query[key] = filter[2] blizzard_query[key] = filter[2]
end end
for _, component in components.post do for _, component in filter.post do
add_component(component) add_component(component)
end end
update_filter_display() update_filter_display()
@@ -171,9 +167,9 @@ function clear_form()
end end
function import_filter_string() function import_filter_string()
local components, error = filter_util.parse_filter_string(select(3, strfind(search_box:GetText(), '^([^;]*)'))) local filter, error = filter_util.parse_filter_string(select(3, strfind(search_box:GetText(), '^([^;]*)')))
if components or log(error) then if filter or log(error) then
set_form(components) set_form(filter)
end end
end end
@@ -376,7 +372,7 @@ function initialize_slot_dropdown()
local subclass_index = UIDropDownMenu_GetSelectedValue(subclass_dropdown) local subclass_index = UIDropDownMenu_GetSelectedValue(subclass_dropdown)
if subclass_index and GetAuctionInvTypes(class_index, subclass_index) then if subclass_index and GetAuctionInvTypes(class_index, subclass_index) then
UIDropDownMenu_AddButton(T('text', ALL, 'value', '', 'func', on_click)) 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)) UIDropDownMenu_AddButton(T('text', _G[slot], 'value', slot, 'func', on_click))
end end
end end