summaryrefslogtreecommitdiff
path: root/Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua')
-rw-r--r--Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua159
1 files changed, 159 insertions, 0 deletions
diff --git a/Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua b/Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua
new file mode 100644
index 0000000..902cc46
--- /dev/null
+++ b/Data/BuiltIn/Libraries/lua-addons/addons/pointwatch/statics.lua
@@ -0,0 +1,159 @@
+--Copyright (c) 2014, Byrthnoth
+--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 <addon name> 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 <your name> 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.
+
+
+--Default settings file:
+default_settings = {
+ strings = {
+ default = "xp.current..'/'..xp.tnl..'XP '..lp.current..'/'..lp.tnm..'LP ['..lp.number_of_merits..'/'..lp.maximum_merits..'] XP/hr:'..string.format('%.1f',math.floor(xp.rate/100)/10)..'k '..cp.current..'/'..cp.tnjp..'CP ['..cp.number_of_job_points..'] CP/hr:'..string.format('%.1f',math.floor(cp.rate/100)/10)..'k'",
+ dynamis = "xp.current..'/'..xp.tnl..'XP '..lp.current..'/'..lp.tnm..'LP ['..lp.number_of_merits..'/'..lp.maximum_merits..'] XP/hr:'..string.format('%.1f',math.floor(xp.rate/100)/10)..'k '..cp.current..'/'..cp.tnjp..'CP ['..cp.number_of_job_points..'] '..dynamis.KIs..' '..dynamis.time_remaining",
+ abyssea = "xp.current..'/'..xp.tnl..'XP '..lp.current..'/'..lp.tnm..'LP ['..lp.number_of_merits..'/'..lp.maximum_merits..'] XP/hr:'..string.format('%.1f',math.floor(xp.rate/100)/10)..'k Amber:'..(abyssea.amber or 0)..'/Azure:'..(abyssea.azure or 0)..'/Ruby:'..(abyssea.ruby or 0)..'/Pearlescent:'..(abyssea.pearlescent or 0)..'/Ebon:'..(abyssea.ebon or 0)..'/Silvery:'..(abyssea.silvery or 0)..'/Golden:'..(abyssea.golden or 0)..'/Time Remaining:'..(abyssea.time_remaining or 0)"
+ },
+ text_box_settings = {
+ pos = {
+ x = 0,
+ y = 0,
+ },
+ bg = {
+ alpha = 255,
+ red = 0,
+ green = 0,
+ blue = 0,
+ visible = true
+ },
+ flags = {
+ right = false,
+ bottom = false,
+ bold = false,
+ italic = false
+ },
+ padding = 0,
+ text = {
+ size = 12,
+ font = 'Consolas',
+ fonts = {},
+ alpha = 255,
+ red = 255,
+ green = 255,
+ blue = 255
+ }
+ },
+ options = {
+ message_printing = false,
+ },
+}
+
+-- Approved textbox commands:
+approved_commands = S{'show','hide','pos','pos_x','pos_y','font','size','pad','color','alpha','transparency','bg_color','bg_alpha','bg_transparency'}
+approved_commands = {show={n=0},hide={n=0},pos={n=2,t='number'},pos_x={n=1,t='number'},pos_y={n=1,t='number'},
+ font={n=2,t='string'},size={n=1,t='number'},pad={n=1,t='number'},color={n=3,t='number'},alpha={n=1,t='number'},
+ transparency={n=1,t='number'},bg_color={n=3,t='number'},bg_alpha={n=1,t='number'},bg_transparency={n=1,t='number'}}
+
+
+-- Dynamis TE lists:
+city_table = {Crimson=10,Azure=10,Amber=10,Alabaster=15,Obsidian=15}
+other_table = {Crimson=10,Azure=10,Amber=10,Alabaster=10,Obsidian=20}
+
+-- Mapping of zone ID to TE list:
+dynamis_map = {[185]=city_table,[186]=city_table,[187]=city_table,[188]=city_table,
+ [134]=other_table,[135]=other_table,[39]=other_table,[40]=other_table,[41]=other_table,[42]=other_table}
+
+
+-- Not technically static, but sets the initial values for all features:
+function initialize()
+ cp = {
+ registry = {},
+ current = 0,
+ rate = 0,
+ total = 0,
+ tnjp = 30000,
+ number_of_job_points = 0,
+ maximum_job_points = 500,
+ }
+
+
+ xp = {
+ registry = {},
+ total = 0,
+ rate = 0,
+ current = 0,
+ tnl = 0,
+ }
+
+ lp = {
+ registry = xp.registry,
+ current = 0,
+ tnm = 10000,
+ number_of_merits = 0,
+ maximum_merits = 30,
+ }
+
+ sparks = {
+ current = 0,
+ maximum = 99999,
+ }
+
+ accolades = {
+ current = 0,
+ maximum = 99999,
+ }
+
+ abyssea = {
+ amber = 0,
+ azure = 0,
+ ruby = 0,
+ pearlescent = 0,
+ ebon = 0,
+ silvery = 0,
+ golden = 0,
+ update_time = 0,
+ time_remaining = 0,
+ }
+
+
+ local info = windower.ffxi.get_info()
+
+ frame_count = 0
+
+ dynamis = {
+ KIs = '',
+ _KIs = {},
+ entry_time = 0,
+ time_limit = 0,
+ zone = 0,
+ }
+ if info.logged_in and res.zones[info.zone].english:sub(1,7) == 'Dynamis' then
+ cur_func = loadstring("current_string = "..settings.strings.dynamis)
+ setfenv(cur_func,_G)
+ dynamis.entry_time = os.clock()
+ dynamis.zone = info.zone
+ windower.add_to_chat(123,'Loading PointWatch in Dynamis results in an inaccurate timer. Number of KIs is displayed.')
+ elseif info.logged_in then
+ cur_func = loadstring("current_string = "..settings.strings.default)
+ setfenv(cur_func,_G)
+ end
+
+end