diff --git a/addons/EmpyPopTracker/EmpyPopTracker.lua b/addons/EmpyPopTracker/EmpyPopTracker.lua new file mode 100644 index 000000000..a87bbf5d2 --- /dev/null +++ b/addons/EmpyPopTracker/EmpyPopTracker.lua @@ -0,0 +1,326 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +_addon.name = 'Empy Pop Tracker' +_addon.author = 'Dean James (Xurion of Bismarck)' +_addon.commands = { 'ept', 'empypoptracker' } +_addon.version = '2.0.0' + +config = require('config') +res = require('resources') +nm_data = require('nms/index') + +active = false + +local EmpyPopTracker = {} + +local defaults = {} +defaults.text = {} +defaults.text.pos = {} +defaults.text.pos.x = 0 +defaults.text.pos.y = 0 +defaults.text.bg = {} +defaults.text.bg.alpha = 150 +defaults.text.bg.blue = 0 +defaults.text.bg.green = 0 +defaults.text.bg.red = 0 +defaults.text.bg.visible = true +defaults.text.padding = 8 +defaults.text.text = {} +defaults.text.text.font = 'Consolas' +defaults.text.text.size = 10 +defaults.tracking = 'briareus' +defaults.visible = true +defaults.add_to_chat_mode = 8 + +EmpyPopTracker.settings = config.load(defaults) +EmpyPopTracker.text = require('texts').new(EmpyPopTracker.settings.text, EmpyPopTracker.settings) + +colors = {} +colors.success = '\\cs(100,255,100)' +colors.danger = '\\cs(255,50,50)' +colors.warning = '\\cs(255,170,0)' +colors.close = '\\cr' + +function owns_item(id, items) + for _, bag in ipairs(items) do + for _, item in ipairs(bag) do + if item.id == id then + return true + end + end + end + + return false +end + +function owns_key_item(id, items) + local owned = false + + for _, item_id in pairs(items) do + if item_id == id then + owned = true + break + end + end + + return owned +end + +function item_treasure_pool_count(id, treasure) + local count = 0 + + for _, item in pairs(treasure) do + if item.item_id == id then + count = count + 1 + end + end + + return count +end + +function ucwords(str) + local result = string.gsub(str, '(%a)([%w_\']*)', function(first, rest) + return first:upper() .. rest:lower() + end) + + return result +end + +function get_indent(depth) + return string.rep(' ', depth) +end + +function generate_text(data, key_items, items, depth) + local text = depth == 1 and data.name or '' + for _, pop in pairs(data.pops) do + local resource + local item_scope + local owns_pop + local in_pool_count = 0 + local item_identifier = '' + + if pop.type == 'key item' then + resource = res.key_items[pop.id] + owns_pop = owns_key_item(pop.id, key_items) + item_identifier = 'Ж ' + else + resource = res.items[pop.id] + owns_pop = owns_item(pop.id, items) + in_pool_count = item_treasure_pool_count(pop.id, items.treasure) + end + + local pop_name = 'Unknown pop' + if resource then + pop_name = ucwords(resource.name) + end + + --separator line for each top-level mob + if depth == 1 then + text = text .. '\n' + end + + local item_colour + if owns_pop then + item_colour = colors.success + else + item_colour = colors.danger + end + + local pool_notification = '' + if in_pool_count > 0 then + pool_notification = colors.warning .. ' [' .. in_pool_count .. ']' .. colors.close + end + text = text .. '\n' .. get_indent(depth) .. pop.dropped_from.name .. '\n' .. get_indent(depth) .. ' >> ' .. item_colour .. item_identifier .. pop_name .. colors.close .. pool_notification + if pop.dropped_from.pops then + text = text .. generate_text(pop.dropped_from, key_items, items, depth + 1) + end + end + + return text +end + +EmpyPopTracker.generate_info = function(nm, key_items, items) + local info = { + has_all_kis = true, + text = '' + } + + if nm.pops then + for _, key_item_data in pairs(nm.pops) do + local has_pop_ki = owns_key_item(key_item_data.id, key_items) + + if not has_pop_ki then + info.has_all_kis = false + end + end + end + + info.text = generate_text(nm, key_items, items, 1) + + return info +end + +function find_nms(pattern) + local matching_nms = {} + local lower_pattern = pattern:lower() + for _, nm in pairs(nm_data) do + local nm_name = nm.name:lower() + local result = windower.wc_match(nm_name, lower_pattern) + if result then + table.insert(matching_nms, nm_name) + end + end + + return matching_nms +end + +windower.register_event('addon command', function(command, ...) + command = command and command:lower() or 'help' + + if commands[command] then + commands[command](...) + else + commands.help() + end +end) + +commands = {} + +commands.track = function(...) + local args = {...} + local nm_search_pattern = args[1] + local matching_nm_names = find_nms(nm_search_pattern) + + if #matching_nm_names == 0 then + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, 'Unable to find a NM using: "' .. nm_search_pattern .. '"') + elseif #matching_nm_names > 1 then + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '"' .. nm_search_pattern .. '" matches ' .. #matching_nm_names .. ' NMs. Please be more explicit:') + for key, matching_file_name in pairs(matching_nm_names) do + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, ' Match ' .. key .. ': ' .. ucwords(matching_file_name)) + end + else + active = true + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, 'Now tracking: ' .. ucwords(matching_nm_names[1])) + EmpyPopTracker.settings.tracking = matching_nm_names[1] + EmpyPopTracker.update() + commands.show() + end +end +commands.t = commands.track + +commands.hide = function() + active = false + EmpyPopTracker.text:visible(false) + EmpyPopTracker.settings.visible = false + EmpyPopTracker.settings:save() +end + +commands.show = function() + active = true + EmpyPopTracker.text:visible(true) + EmpyPopTracker.settings.visible = true + EmpyPopTracker.settings:save() + EmpyPopTracker.update() +end + +commands.help = function() + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '---Empy Pop Tracker---') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, 'Available commands:') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '//ept track briareus - tracks Briareus pops (search patterns such as apadem* work too!)') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '//ept hide - hides the UI') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '//ept show - shows the UI') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '//ept list - lists all trackable NMs') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '//ept help - displays this help') +end + +commands.list = function() + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, '---Empy Pop Tracker---') + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, 'Trackable NMs:') + for _, nm in pairs(nm_data) do + windower.add_to_chat(EmpyPopTracker.settings.add_to_chat_mode, ucwords(nm.name)) + end +end + +commands.bg = function() + local tracking_nm = nm_data[EmpyPopTracker.settings.tracking] + local url = 'https://www.bg-wiki.com/bg/' .. tracking_nm.name + windower.open_url(url) +end + +EmpyPopTracker.update = function() + local key_items = windower.ffxi.get_key_items() + local items = windower.ffxi.get_items() + local tracked_nm_data = nm_data[EmpyPopTracker.settings.tracking] + local generated_info = EmpyPopTracker.generate_info(tracked_nm_data, key_items, items) + EmpyPopTracker.text:text(generated_info.text) + if generated_info.has_all_kis then + EmpyPopTracker.text:bg_color(0, 75, 0) + else + EmpyPopTracker.text:bg_color(0, 0, 0) + end + if EmpyPopTracker.settings.visible then + EmpyPopTracker.text:visible(true) + end +end + +windower.register_event('load', function() + if windower.ffxi.get_info().logged_in and EmpyPopTracker.settings.visible then + active = true + EmpyPopTracker.update() + end +end) + +windower.register_event('add item', 'remove item', function() + if active then + EmpyPopTracker.update() + end +end) + +windower.register_event('incoming chunk', function(id) + --0x055: KI update + --0x0D2: Treasure pool addition + --0x0D3: Treasure pool lot/drop + if active and id == 0x055 or id == 0x0D2 or id == 0x0D3 then + EmpyPopTracker.update() + end +end) + +windower.register_event('login', function() + if EmpyPopTracker.settings.visible then + EmpyPopTracker.text:visible(true) + active = true + end +end) + +windower.register_event('logout', function() + EmpyPopTracker.text:visible(false) + active = false +end) + +return EmpyPopTracker diff --git a/addons/EmpyPopTracker/README.md b/addons/EmpyPopTracker/README.md new file mode 100644 index 000000000..f674c3c94 --- /dev/null +++ b/addons/EmpyPopTracker/README.md @@ -0,0 +1,53 @@ +# FFXI Empyrean Pop Tracker + +An FFXI Windower 4 addon that tracks items and key items for popping Empyrean NMs in Abyssea, such as Briareus, Apademak and Sobek. + +![Example of Cirein-croin tracking](readme/demo.png) ![All KIs obtained](readme/demo-full.png) + +Key items are identified by the Zhe (Ж) character. Treasure pool counts for pop items are listed in amber after the item in the format of [3] (assuming 3 of that item in the pool). + +## Load + +`//lua load empypoptracker` + +## Track an NM + +`//ept track glavoid` tracks Glavoid pop items/key items. + +You can also track an NM by using a wildcard pattern, because fuck having to remember how to spell Itzpapalotl: + +`//ept track itz*` + +For a full list of trackable NMs, see the nms directory or use the `list` command (see below). + +## Other Commands + +### List Trackable NMs + +`//ept list` + +### Open BG Wiki for NM + +`//ept bg` + +### Hide UI + +`//ept hide` + +### Show UI + +`//ept show` + +### Display Help + +`//ept help` + +## Where is Fistule? + +Fistule is a unique NM when compared to the others. It does not require KIs that can be tracked, so it isn't included with the addon. + +## Contributing + +Notice something not quite right? [Raise an issue](https://github.com/xurion/ffxi-empy-pop-tracker/issues). + +[Pull requests](https://github.com/xurion/ffxi-empy-pop-tracker/pulls) welcome! diff --git a/addons/EmpyPopTracker/nms/README.md b/addons/EmpyPopTracker/nms/README.md new file mode 100644 index 000000000..d9e9278bd --- /dev/null +++ b/addons/EmpyPopTracker/nms/README.md @@ -0,0 +1,64 @@ +# NM data + +The data structure for each trackable NM uses a series of nested NM entities. A standard NM entity contains the following data: + +| Key | Type | Required? | Description | +| ------------------- | --------- | --------- | ------------------------------ | +| name | String | Required | Name of the NM | +| pops | Table | Optional | The pop information for the NM | +| pops{}.id | Number | Required | The ID of the item/key item | +| pops{}.type | String | Required | Either "key item" or "item" | +| pops{}.dropped_from | NM Entity | Required | A nested set of NM information | + +A simple example of the above would be: + +```lua +{ + name = 'Azdaja', + pops = { { + id = 1531, --Vacant Bugard Eye + type = 'key item', + dropped_from = { name = 'Deelgeed, Timed (F-9/F-10)' } + } } +} +``` + +A larger example with multiple nested entites: + +```lua +{ + name = 'Bukhis', + pops = { { + id = 1508, --Ingrown Taurus Nail + type = 'key item', + dropped_from = { + name = 'Khalkotaur, Forced (F-4)', + pops = { { + id = 3098, --Gnarled Taurus Horn + type = 'item', + dropped_from = { name = 'Aestutaur (G-9/G-10)' } + } } + } + }, { + id = 1509, --Ossified Gargouille Hand + type = 'key item', + dropped_from = { + name = 'Quasimodo, Forced (F-4)', + pops = { { + id = 3099, --Gargouille Stone + type = 'item', + dropped_from = { + name = 'Gruesome Gargouille (F-10/G-10)' + } + } } + } + }, { + id = 1510, --Imbrued Vampyr Fang + type = 'key item', + dropped_from = { name = 'Lord Varney, Timed (G-10/H-10)' } + } } +} + +``` + +The main addon file requires the index.lua file which in turn is responsible for requiring and returning data for each nm. diff --git a/addons/EmpyPopTracker/nms/alfard.lua b/addons/EmpyPopTracker/nms/alfard.lua new file mode 100644 index 000000000..ee492fd25 --- /dev/null +++ b/addons/EmpyPopTracker/nms/alfard.lua @@ -0,0 +1,58 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Alfard', + pops = { { + id = 1530, --Venomous hydra fang + type = 'key item', + dropped_from = { + name = 'Ningishzida, Forced (I-7/I-8)', + pops = { { + id = 3262, --Jaculus Wing + type = 'item', + dropped_from = { name = 'Jaculus, Timed (I-8)' } + }, { + id = 3261, --Minaruja Skull + type = 'item', + dropped_from = { + name = 'Minaruja, Forced (I-10)', + pops = { { + id = 3267, --Pursuer's Wing + type = 'item', + dropped_from = { name = 'Faunus Wyvern (I-9)' } + } } + } + }, { + id = 3268, --High-Quality Wivre Hide + type = 'item', + dropped_from = { name = 'Glade Wivre (I-8)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/apademak.lua b/addons/EmpyPopTracker/nms/apademak.lua new file mode 100644 index 000000000..4ecec8aec --- /dev/null +++ b/addons/EmpyPopTracker/nms/apademak.lua @@ -0,0 +1,57 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Apademak', + pops = { { + id = 1525, --Torn Khimaira Wing + type = 'key item', + dropped_from = { + name = 'Dhorme Khimaira, Forced (F-7)', + pops = { { + id = 3246, --Snow God Core + type = 'item', + dropped_from = { + name = 'Upas-Kamuy, Forced (G-5)', + pops = { { + id = 3252, --Gelid Arm + dropped_from = { name = 'Snowflake (G-5)' } + } } + } + }, { + id = 3247, --Sisyphus Fragment + type = 'item', + dropped_from = { name = 'Sisyphus, Timed (F-6/G-6)' } + }, { + id = 3253, --High-quality marid hide + type = 'item', + dropped_from = { name = 'Olyphant (F-6)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/azdaja.lua b/addons/EmpyPopTracker/nms/azdaja.lua new file mode 100644 index 000000000..cb06f668d --- /dev/null +++ b/addons/EmpyPopTracker/nms/azdaja.lua @@ -0,0 +1,36 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Azdaja', + pops = { { + id = 1531, --Vacant Bugard Eye + type = 'key item', + dropped_from = { name = 'Deelgeed, Timed (F-9/F-10)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/briareus.lua b/addons/EmpyPopTracker/nms/briareus.lua new file mode 100644 index 000000000..7b2e68d4b --- /dev/null +++ b/addons/EmpyPopTracker/nms/briareus.lua @@ -0,0 +1,65 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Briareus', + pops = { { + id = 1482, --Dented Gigas Shield + type = 'key item', + dropped_from = { + name = 'Adamastor, Forced (C-4)', + pops = { { + id = 2894, --Trophy Shield + type = 'item', + dropped_from = { name = 'Bathyal Gigas (C-5/D-5)' } + } } + } + }, { + id = 1484, --Severed Gigas Collar + type = 'key item', + dropped_from = { + name = 'Grandgousier, Forced (F-10)', + pops = { { + id = 2896, --Massive Armband + type = 'item', + dropped_from = { name = 'Demersal Gigas (E-9/F-9)' } + } } + } + }, { + id = 1483, --Warped Gigas Armband + type = 'key item', + dropped_from = { + name = 'Pantagruel, Forced (F-7)', + pops = { { + id = 2895, --Oversized Sock + type = 'item', + dropped_from = { name = 'Hadal Gigas (F-6/F-7)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/bukhis.lua b/addons/EmpyPopTracker/nms/bukhis.lua new file mode 100644 index 000000000..b1926152a --- /dev/null +++ b/addons/EmpyPopTracker/nms/bukhis.lua @@ -0,0 +1,60 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Bukhis', + pops = { { + id = 1508, --Ingrown Taurus Nail + type = 'key item', + dropped_from = { + name = 'Khalkotaur, Forced (F-4)', + pops = { { + id = 3098, --Gnarled Taurus Horn + type = 'item', + dropped_from = { name = 'Aestutaur (G-9/G-10)' } + } } + } + }, { + id = 1509, --Ossified Gargouille Hand + type = 'key item', + dropped_from = { + name = 'Quasimodo, Forced (F-4)', + pops = { { + id = 3099, --Gargouille Stone + type = 'item', + dropped_from = { + name = 'Gruesome Gargouille (F-10/G-10)' + } + } } + } + }, { + id = 1510, --Imbrued Vampyr Fang + type = 'key item', + dropped_from = { name = 'Lord Varney, Timed (G-10/H-10)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/carabosse.lua b/addons/EmpyPopTracker/nms/carabosse.lua new file mode 100644 index 000000000..ad9aa0079 --- /dev/null +++ b/addons/EmpyPopTracker/nms/carabosse.lua @@ -0,0 +1,54 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Carabosse', + pops = { { + id = 1485, --Pellucid Fly Eye + type = 'key item', + dropped_from = { + name = 'La Theine Liege, Forced (I-7)', + pops = { { + id = 2897, --Transparent Insect Wing + type = 'item', + dropped_from = { name = 'Plateau Glider (H-7)' } + } } + } + }, { + id = 1486, --Shimmering Pixie Pinion + type = 'key item', + dropped_from = { + name = 'Baba Yaga, Forced (H-7)', + pops = { { + id = 2898, --Piceous Scale + type = 'item', + dropped_from = { name = 'Farfadet (H-7)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/chloris.lua b/addons/EmpyPopTracker/nms/chloris.lua new file mode 100644 index 000000000..df7451eed --- /dev/null +++ b/addons/EmpyPopTracker/nms/chloris.lua @@ -0,0 +1,113 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Chloris', + pops = { { + id = 1470, --Gory Scorpion Claw + type = 'key item', + dropped_from = { + name = 'Hedetet, Forced (F-7)', + pops = { { + id = 2921, --Venomous Scorpion Stinger + type = 'item', + dropped_from = { name = 'Canyon Scorpion (F-7)' } + }, { + id = 2948, --Acidic Humus + type = 'item', + dropped_from = { + name = 'Gancanagh, Forced (H-8)', + pops = { { + id = 2920, --Alkaline Humus + type = 'item', + dropped_from = { name = 'Pachypodium (H-8)' } + } } + } + } } + } + }, { + id = 1469, --Torn Bat Wing + type = 'key item', + dropped_from = { + name = 'Treble Noctules, Forced (I-9)', + pops = { { + id = 2919, --Bloody Fang + type = 'item', + dropped_from = { name = 'Blood Bat (I-9)' } + }, { + id = 2947, --Exorcised Skull + type = 'item', + dropped_from = { + name = 'Cannered Noz, Forced (F-6)', + pops = { { + id = 2918, --Baleful Skull + type = 'item', + dropped_from = { name = 'Caoineag (F-6)' } + } } + } + } } + } + }, { + id = 1468, --Veinous Hecteyes Eyelid + type = 'key item', + dropped_from = { + name = 'Ophanim, Forced (G-9)', + pops = { { + id = 2946, --Tarnished Pincer + type = 'item', + dropped_from = { + name = 'Vetehinen, Forced (H-10)', + pops = { { + id = 2916, --High-quality Limule Pincer + type = 'item', + dropped_from = { name = 'Gulch Limule (H-10)' } + }, { + id = 2917, --Bloodshot Hecteye + type = 'item', + dropped_from = { name = 'Beholder (G-9)' } + }, { + id = 2945, --Shriveled Wing + type = 'item', + dropped_from = { + name = 'Halimede, Forced (G-12)', + pops = { { + id = 2915, --High-quality Clionid Wing + type = 'item', + dropped_from = { name = 'Gully Clionid (G-12)' } + } } + } + } } + } + } } + } + }, { + id = 1471, --Mossy Adamantoise Shell + type = 'key item', + dropped_from = { name = 'Chukwa, Timed (F-5)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/cirein-croin.lua b/addons/EmpyPopTracker/nms/cirein-croin.lua new file mode 100644 index 000000000..478c23ffe --- /dev/null +++ b/addons/EmpyPopTracker/nms/cirein-croin.lua @@ -0,0 +1,47 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Cirein-croin', + pops = { { + id = 1504, --Glistening Orobon Liver + type = 'key item', + dropped_from = { + name = 'Cep-Kamuy, Forced (F-4)', + pops = { { + id = 3089, --Orobon Cheekmeat + type = 'item', + dropped_from = { name = 'Ancient Orobon (F-5)' } + } } + } + }, { + id = 1505, --Doffed Poroggo Hat + type = 'key item', + dropped_from = { name = 'Heqet, Timed (I-6)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/dragua.lua b/addons/EmpyPopTracker/nms/dragua.lua new file mode 100644 index 000000000..456a477b9 --- /dev/null +++ b/addons/EmpyPopTracker/nms/dragua.lua @@ -0,0 +1,36 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Dragua', + pops = { { + id = 1521, --Bloodied Dragon Ear + type = 'key item', + dropped_from = { name = 'Hazhdiha, Timed (H-10)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/glavoid.lua b/addons/EmpyPopTracker/nms/glavoid.lua new file mode 100644 index 000000000..9beca3c7d --- /dev/null +++ b/addons/EmpyPopTracker/nms/glavoid.lua @@ -0,0 +1,82 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Glavoid', + pops = { { + id = 1473, --Sodden Sandworm Husk + type = 'key item', + dropped_from = { name = 'Minhocao, Timed (I-6)' } + }, { + id = 1475, --Sticky Gnat Wing + type = 'key item', + dropped_from = { name = 'Adze, Timed (G-5)' } + }, { + id = 1472, --Fat-lined Cockatrice Skin + type = 'key item', + dropped_from = { + name = 'Alectryon (H-8)', + pops = { { + id = 2923, --Cockatrice Tailmeat + type = 'item', + dropped_from = { name = 'Cluckatrice (H-8)' } + }, { + id = 2949, --Quivering Eft Egg + type = 'item', + dropped_from = { + name = 'Abas, Forced (K-10)', + pops = { { + id = 2922, --Eft Egg + dropped_from = { name = 'Canyon Eft (J-10/J-11)' } + } } + } + } } + } + }, { + id = 1474, --Luxuriant manticore mane + type = 'key item', + dropped_from = { + name = 'Muscaliet, Forced (J-6)', + pops = { { + id = 2925, --Resilient Mane + type = 'item', + dropped_from = { name = 'Hieracosphinx (J-6)' } + }, { + id = 2950, --Smooth Whisker + type = 'item', + dropped_from = { + name = 'Tefenet, Forced (G-6)', + pops = { { + id = 2924, --Shocking Whisker + dropped_from = { name = 'Jaguarundi (G-6)' } + } } + } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/index.lua b/addons/EmpyPopTracker/nms/index.lua new file mode 100644 index 000000000..9091a466a --- /dev/null +++ b/addons/EmpyPopTracker/nms/index.lua @@ -0,0 +1,54 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +local nms = { + 'alfard', + 'apademak', + 'azdaja', + 'briareus', + 'bukhis', + 'carabosse', + 'chloris', + 'cirein-croin', + 'dragua', + 'glavoid', + 'isgebind', + 'itzpapalotl', + 'kukulkan', + 'orthrus', + 'sedna', + 'sobek', + 'ulhuadshi' +} + +nm_data = {} +for _, nm in pairs(nms) do + nm_data[nm] = require('nms/' .. nm) +end + +return nm_data diff --git a/addons/EmpyPopTracker/nms/isgebind.lua b/addons/EmpyPopTracker/nms/isgebind.lua new file mode 100644 index 000000000..1fd4de0e6 --- /dev/null +++ b/addons/EmpyPopTracker/nms/isgebind.lua @@ -0,0 +1,36 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Isgebind', + pops = { { + id = 1526, --Begrimed Dragon Hide + type = 'key item', + dropped_from = { name = 'Kur, Timed (I-5/J-5)' } + } } +} diff --git a/addons/EmpyPopTracker/nms/itzpapalotl.lua b/addons/EmpyPopTracker/nms/itzpapalotl.lua new file mode 100644 index 000000000..371d4ab8c --- /dev/null +++ b/addons/EmpyPopTracker/nms/itzpapalotl.lua @@ -0,0 +1,58 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Itzpapalotl', + pops = { { + id = 1488, --Venomous Wamoura Feeler + type = 'key item', + dropped_from = { + name = 'Granite Borer, Forced (K-10)', + pops = { { + id = 3072, --Withered Cocoon + type = 'item', + dropped_from = { name = 'Gullycampa (K-10)' } + } } + } + }, { + id = 1490, --Distended Chigoe Abdomen + type = 'key item', + dropped_from = { name = 'Tunga, Timed (K-10)' } + }, { + id = 1489, --Bulbous crawler cocoon + type = 'key item', + dropped_from = { + name = 'Blazing Eruca, Forced (J-10)', + pops = { { + id = 3073, --Eruca Egg + type = 'item', + dropped_from = { name = 'Ignis Eruca (J-10)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/kukulkan.lua b/addons/EmpyPopTracker/nms/kukulkan.lua new file mode 100644 index 000000000..d49fbc8ac --- /dev/null +++ b/addons/EmpyPopTracker/nms/kukulkan.lua @@ -0,0 +1,65 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Kukulkan', + pops = { { + id = 1466, --Mucid Ahriman Eyeball + type = 'key item', + dropped_from = { + name = 'Arimaspi, Forced (K-6)', + pops = { { + id = 2913, --Clouded Lens + type = 'item', + dropped_from = { name = 'Deep Eye (K-6/K-7)' } + } } + } + }, { + id = 1464, --Tattered Hippogryph Wing + type = 'key item', + dropped_from = { + name = 'Alkonost, Forced (H-6)', + pops = { { + id = 2912, --Giant Bugard Tusk + type = 'item', + dropped_from = { name = 'Ypotryll (I-7)' } + } } + } + }, { + id = 1465, --Cracked Wivre Horn + type = 'key item', + dropped_from = { + name = 'Keratyrannos, Forced (G-6)', + pops = { { + id = 2910, --Armored Dragonhorn + type = 'item', + dropped_from = { name = 'Mesa Wivre (G-6)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/orthrus.lua b/addons/EmpyPopTracker/nms/orthrus.lua new file mode 100644 index 000000000..16ff706e6 --- /dev/null +++ b/addons/EmpyPopTracker/nms/orthrus.lua @@ -0,0 +1,57 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Orthrus', + pops = { { + id = 1520, --Steaming cerberus tongue + type = 'key item', + dropped_from = { + name = 'Amarok, Forced (E-6)', + pops = { { + id = 3231, --Sharabha Hide + type = 'item', + dropped_from = { + name = 'Sharabha, Forced (G-5)', + pops = { { + id = 3237, + dropped_from = { name = 'Dune Manticore (F-5/F-6)' } + } } + } + }, { + id = 3232, --Tiger King Hide + type = 'item', + dropped_from = { name = 'Ansherekh, Timed (F-8/G-8)' } + }, { + id = 3238, --H.Q. Dhalmel Hide + type = 'item', + dropped_from = { name = 'Camelopardalis (F-7/G-7)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/sedna.lua b/addons/EmpyPopTracker/nms/sedna.lua new file mode 100644 index 000000000..e2d95077c --- /dev/null +++ b/addons/EmpyPopTracker/nms/sedna.lua @@ -0,0 +1,47 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Sedna', + pops = { { + id = 1512, --Shimmering Pugil Scale + type = 'key item', + dropped_from = { name = 'Hrosshvalur, Timed (J-6)' } + }, { + id = 1511, --Glossy Sea Monk Sucker + type = 'key item', + dropped_from = { + name = 'Iku-Turso, Forced (J-7)', + pops = { { + id = 3100, --Moonbeam Clam + type = 'item', + dropped_from = { name = 'Jasconius (I-7/J-7)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/sobek.lua b/addons/EmpyPopTracker/nms/sobek.lua new file mode 100644 index 000000000..a9dcaa033 --- /dev/null +++ b/addons/EmpyPopTracker/nms/sobek.lua @@ -0,0 +1,58 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Sobek', + pops = { { + id = 1500, --Molted Peiste Skin + type = 'key item', + dropped_from = { name = 'Gukumatz, Timed (J-11)' } + }, { + id = 1498, --Bloodstained Bugard Fang + type = 'key item', + dropped_from = { + name = 'Minax Bugard, Forced (K-10)', + pops = { { + id = 3085, --Bewitching Tusk + type = 'item', + dropped_from = { name = 'Abyssobugard (J-10/K-11)' } + } } + } + }, { + id = 1499, --Gnarled Lizard Nail + type = 'key item', + dropped_from = { + name = 'Sirrush, Forced (I-11)', + pops = { { + id = 3086, --Molt Scraps + type = 'item', + dropped_from = { name = 'Dusk Lizard (J-11)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/nms/ulhuadshi.lua b/addons/EmpyPopTracker/nms/ulhuadshi.lua new file mode 100644 index 000000000..38ead1379 --- /dev/null +++ b/addons/EmpyPopTracker/nms/ulhuadshi.lua @@ -0,0 +1,47 @@ +--[[ +Copyright © 2020, Dean James (Xurion of Bismarck) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of Empy Pop Tracker nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL Dean James (Xurion of Bismarck) BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +]] + +return { + name = 'Ulhuadshi', + pops = { { + id = 1492, --Shriveled Hecteyes Stalk + type = 'key item', + dropped_from = { name = 'Amun, Timed (H-8/I-9)' } + }, { + id = 1491, --Mucid Worm Segment + type = 'key item', + dropped_from = { + name = 'Pallid Percy, Forced (J-7)', + pops = { { + id = 3074, --Blanched Silver + type = 'item', + dropped_from = { name = 'Entozoon (J-7)' } + } } + } + } } +} diff --git a/addons/EmpyPopTracker/readme/demo-full.png b/addons/EmpyPopTracker/readme/demo-full.png new file mode 100644 index 000000000..02df409da Binary files /dev/null and b/addons/EmpyPopTracker/readme/demo-full.png differ diff --git a/addons/EmpyPopTracker/readme/demo.png b/addons/EmpyPopTracker/readme/demo.png new file mode 100644 index 000000000..db24c678e Binary files /dev/null and b/addons/EmpyPopTracker/readme/demo.png differ diff --git a/addons/addons.xml b/addons/addons.xml index f09c2cb2d..dfc12b02d 100644 --- a/addons/addons.xml +++ b/addons/addons.xml @@ -205,6 +205,13 @@ https://github.com/tehkrizz/Lua/issues http://www.ffxiah.com/player/Bahamut/Krizz + + EmpyPopTracker + Dean James (Xurion of Bismarck) + Tracks items and key items for popping Empyrean NMs in Abyssea, such as Briareus, Apademak and Sobek. + https://github.com/xurion/ffxi-empy-pop-tracker/issues + https://www.ffxiah.com/forum/topic/54376/empyrean-pop-tracker-addon-10-years-late/ + Enemybar mmckee