Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fc2c7dab7f | |||
| 56455718be | |||
| 8d904ad02d | |||
| 8f135ba494 | |||
| b43c693353 | |||
| 3076660609 | |||
| f028b5aadc | |||
| f68fb493a4 | |||
| 82128bc35f | |||
| e109bf4bfd | |||
| b347b60491 | |||
| a277d08198 |
Vendored
+7
@@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"[lua]": {
|
||||||
|
"editor.defaultFormatter": "Koihik.vscode-lua-format"
|
||||||
|
}
|
||||||
|
}
|
||||||
Vendored
+30
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||||
|
// for the documentation about the tasks.json format
|
||||||
|
"version": "2.0.0",
|
||||||
|
"tasks": [
|
||||||
|
{
|
||||||
|
"label": "echo",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "echo Hello"
|
||||||
|
},{
|
||||||
|
"label": "cwd",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "${cwd}\\"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": "localdeploy",
|
||||||
|
"type": "shell",
|
||||||
|
"command": "Copy-Item",
|
||||||
|
"args": [
|
||||||
|
"-Force",
|
||||||
|
"-Recurse",
|
||||||
|
"-Verbose",
|
||||||
|
"-Path",
|
||||||
|
"${cwd}\\*",
|
||||||
|
"-Destination",
|
||||||
|
"D:\\Games\\Turtle WoW 1.12\\Interface\\AddOns\\CallOfElements"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+232
-194
@@ -8,24 +8,20 @@
|
|||||||
|
|
||||||
Totem Module Data
|
Totem Module Data
|
||||||
|
|
||||||
]]
|
]] --[[ ----------------------------------------------------------------
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
|
||||||
COE.TotemData contains a list of totem classes that are
|
COE.TotemData contains a list of totem classes that are
|
||||||
returned by COE:CreateTotem
|
returned by COE:CreateTotem
|
||||||
For every available totem the player has, one object is
|
For every available totem the player has, one object is
|
||||||
added to this list
|
added to this list
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]] COE["TotemData"] =
|
||||||
COE["TotemData"] = {};
|
{};
|
||||||
COE["TotemCount"] = 0;
|
COE["TotemCount"] = 0;
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.MaxTotems stores the maximum number of totems per element
|
COE.MaxTotems stores the maximum number of totems per element
|
||||||
This is taken right from the current game content
|
This is taken right from the current game content
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["MaxTotems"] = { Earth = 5, Fire = 5, Water = 7, Air = 7 };
|
COE["MaxTotems"] = {Earth = 5, Fire = 5, Water = 7, Air = 7};
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.TotemsAvailable contains the number of totems available
|
COE.TotemsAvailable contains the number of totems available
|
||||||
@@ -37,7 +33,6 @@ COE.TotemsAvailable["Fire"] = 0;
|
|||||||
COE.TotemsAvailable["Water"] = 0;
|
COE.TotemsAvailable["Water"] = 0;
|
||||||
COE.TotemsAvailable["Air"] = 0;
|
COE.TotemsAvailable["Air"] = 0;
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.ActiveTotems contains a pointer to the active totem of
|
COE.ActiveTotems contains a pointer to the active totem of
|
||||||
each element
|
each element
|
||||||
@@ -50,9 +45,14 @@ COE.TotemsAvailable["Air"] = 0;
|
|||||||
to prevent actions that trigger SPELLCAST_STOP and are not
|
to prevent actions that trigger SPELLCAST_STOP and are not
|
||||||
hooked from activating the timer accidentally
|
hooked from activating the timer accidentally
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["ActiveTotems"] = { Earth = nil, Fire = nil, Water = nil, Air = nil };
|
COE["ActiveTotems"] = {Earth = nil, Fire = nil, Water = nil, Air = nil};
|
||||||
COE["TotemPending"] = { Totem = nil, UseRank = 0, Timeout = 0.75 };
|
COE["TotemPending"] = {Totem = nil, UseRank = 0, Timeout = 0.75};
|
||||||
|
COE["PendingTotems"] = {
|
||||||
|
Earth = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
|
||||||
|
Fire = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
|
||||||
|
Water = {Totem = nil, Rank = 0, TimeoutStartMS = 0},
|
||||||
|
Air = {Totem = nil, Rank = 0, TimeoutStartMS = 0}
|
||||||
|
};
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.CleansingTotems stores pointers to the buttons and totems
|
COE.CleansingTotems stores pointers to the buttons and totems
|
||||||
@@ -60,33 +60,39 @@ COE["TotemPending"] = { Totem = nil, UseRank = 0, Timeout = 0.75 };
|
|||||||
or fear effects
|
or fear effects
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["CleansingTotems"] = {
|
COE["CleansingTotems"] = {
|
||||||
Poison = { Totem = nil, Button = nil, Warn = false },
|
Poison = {Totem = nil, Button = nil, Warn = false},
|
||||||
Disease = { Totem = nil, Button = nil, Warn = false },
|
Disease = {Totem = nil, Button = nil, Warn = false},
|
||||||
Tremor = { Totem = nil, Button = nil, Warn = false } };
|
Tremor = {Totem = nil, Button = nil, Warn = false}
|
||||||
|
};
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.TotemSets contains the totem pointers for each set and
|
COE.TotemSets contains the totem pointers for each set and
|
||||||
element
|
element
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["TotemSetCount"] = 0;
|
COE["TotemSetCount"] = 0;
|
||||||
COE["TotemSets"] = { }
|
COE["TotemSets"] = {}
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.SetCycle stores which totem of the active set have
|
COE.SetCycle stores which totem of the active set have
|
||||||
already been thrown
|
already been thrown
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["SetCycle"] = { Earth = false, Fire = false, Water = false, Air = false };
|
COE["SetCycle"] = {Earth = false, Fire = false, Water = false, Air = false};
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
COE.NoTotem is a placeholder for an empty anchor button
|
COE.NoTotem is a placeholder for an empty anchor button
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["NoTotem"] = { SpellName = "", Element = "", Texture = "Interface\\Icons\\INV_Misc_Idol_03.blp",
|
COE["NoTotem"] = {
|
||||||
ToolPresent = false, Ranks = { SpellID = 0, Mana = 0, Duration = 0, Health = 0, Cooldown = 0 },
|
SpellName = "",
|
||||||
MaxRank = 1, isActive = false, CurDuration = 0, CurHealth = 0, CurCooldown = 0 };
|
Element = "",
|
||||||
|
Texture = "Interface\\Icons\\INV_Misc_Idol_03.blp",
|
||||||
|
ToolPresent = false,
|
||||||
|
Ranks = {SpellID = 0, Mana = 0, Duration = 0, Health = 0, Cooldown = 0},
|
||||||
|
MaxRank = 1,
|
||||||
|
isActive = false,
|
||||||
|
CurDuration = 0,
|
||||||
|
CurHealth = 0,
|
||||||
|
CurCooldown = 0
|
||||||
|
};
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:CreateTotem
|
METHOD: COE:CreateTotem
|
||||||
@@ -94,23 +100,31 @@ COE["NoTotem"] = { SpellName = "", Element = "", Texture = "Interface\\Icons\\IN
|
|||||||
PURPOSE: Returns the totem class for a new totem
|
PURPOSE: Returns the totem class for a new totem
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:CreateTotem()
|
function COE:CreateTotem()
|
||||||
return { SpellName = "", Element = "", Texture = "",
|
return {
|
||||||
ToolPresent = false, Ranks = {}, MaxRank = 0, isActive = false,
|
SpellName = "",
|
||||||
CurDuration = 0, CurHealth = 0, CurCooldown = 0,
|
Element = "",
|
||||||
isTrinket = false, TrinketSlot = nil };
|
Texture = "",
|
||||||
|
ToolPresent = false,
|
||||||
|
Ranks = {},
|
||||||
|
MaxRank = 0,
|
||||||
|
isActive = false,
|
||||||
|
CurDuration = 0,
|
||||||
|
CurHealth = 0,
|
||||||
|
CurCooldown = 0,
|
||||||
|
isTrinket = false,
|
||||||
|
TrinketSlot = nil
|
||||||
|
};
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:CreateTotemRank
|
METHOD: COE:CreateTotemRank
|
||||||
|
|
||||||
PURPOSE: Returns the class for a new totem rank
|
PURPOSE: Returns the class for a new totem rank
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:CreateTotemRank()
|
function COE:CreateTotemRank()
|
||||||
return { SpellID = 0, Mana = 0, Duration = 0, Health = 0, Cooldown = 0 };
|
return {SpellID = 0, Mana = 0, Duration = 0, Health = 0, Cooldown = 0};
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:ElementFromTool
|
METHOD: COE:ElementFromTool
|
||||||
|
|
||||||
@@ -118,7 +132,7 @@ end
|
|||||||
This is needed for the french version to work. In the
|
This is needed for the french version to work. In the
|
||||||
english and german versions it just returns the input
|
english and german versions it just returns the input
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:ElementFromTool( element )
|
function COE:ElementFromTool(element)
|
||||||
|
|
||||||
if element == COESTR_TOTEMTOOLS_EARTH then
|
if element == COESTR_TOTEMTOOLS_EARTH then
|
||||||
return COESTR_ELEMENT_EARTH;
|
return COESTR_ELEMENT_EARTH;
|
||||||
@@ -132,27 +146,25 @@ function COE:ElementFromTool( element )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:LocalizedElement
|
METHOD: COE:LocalizedElement
|
||||||
|
|
||||||
PURPOSE: Translates a localized element name into english
|
PURPOSE: Translates a localized element name into english
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:LocalizedElement( element )
|
function COE:LocalizedElement(element)
|
||||||
|
|
||||||
if( element == COESTR_ELEMENT_EARTH ) then
|
if (element == COESTR_ELEMENT_EARTH) then
|
||||||
return "Earth";
|
return "Earth";
|
||||||
elseif( element == COESTR_ELEMENT_FIRE ) then
|
elseif (element == COESTR_ELEMENT_FIRE) then
|
||||||
return "Fire";
|
return "Fire";
|
||||||
elseif( element == COESTR_ELEMENT_WATER ) then
|
elseif (element == COESTR_ELEMENT_WATER) then
|
||||||
return "Water";
|
return "Water";
|
||||||
elseif( element == COESTR_ELEMENT_AIR ) then
|
elseif (element == COESTR_ELEMENT_AIR) then
|
||||||
return "Air";
|
return "Air";
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:ScanTotems
|
METHOD: COE:ScanTotems
|
||||||
|
|
||||||
@@ -161,7 +173,7 @@ end
|
|||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:ScanTotems()
|
function COE:ScanTotems()
|
||||||
|
|
||||||
COE:DebugMessage( "Scanning Totems..." );
|
COE:DebugMessage("Scanning Totems...");
|
||||||
|
|
||||||
-- delete existing totem objects
|
-- delete existing totem objects
|
||||||
-- ------------------------------
|
-- ------------------------------
|
||||||
@@ -174,49 +186,48 @@ function COE:ScanTotems()
|
|||||||
|
|
||||||
-- iterate over all spells in the spellbook
|
-- iterate over all spells in the spellbook
|
||||||
-- -----------------------------------------
|
-- -----------------------------------------
|
||||||
local i, k = 1;
|
local i = 1;
|
||||||
while true do
|
while true do
|
||||||
|
|
||||||
local SpellName, SpellRank = GetSpellName( i, BOOKTYPE_SPELL );
|
local SpellName, SpellRank = GetSpellName(i, BOOKTYPE_SPELL);
|
||||||
if not SpellName or SpellName == "Totemic Recall" then
|
if not SpellName then do break end end
|
||||||
do break end;
|
|
||||||
end
|
|
||||||
|
|
||||||
-- is this a totem?
|
-- is this a totem?
|
||||||
-- -----------------
|
-- -----------------
|
||||||
if( string.find( SpellName, COESTR_SCANTOTEMS ) ~= nil ) then
|
if (SpellName ~= "Totemic Recall" and SpellName ~= "Totemic Slam" and
|
||||||
|
string.find(SpellName, COESTR_SCANTOTEMS) ~= nil) then
|
||||||
|
|
||||||
local newtotem = true;
|
local newtotem = true;
|
||||||
local totem = nil;
|
local totem = nil;
|
||||||
|
|
||||||
-- get the rank value
|
-- get the rank value
|
||||||
-- -------------------
|
-- -------------------
|
||||||
local _,_,rank = string.find( SpellRank, COESTR_TOTEMRANK );
|
local _, _, rank = string.find(SpellRank, COESTR_TOTEMRANK);
|
||||||
if( not rank ) then
|
if (not rank) then
|
||||||
rank = 1;
|
rank = 1;
|
||||||
else
|
else
|
||||||
rank = tonumber( rank );
|
rank = tonumber(rank);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
-- check if totem already exists with another rank in the list
|
-- check if totem already exists with another rank in the list
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
for k = 1, COE.TotemCount do
|
for k = 1, COE.TotemCount do
|
||||||
if( SpellName == COE.TotemData[k].SpellName ) then
|
if (SpellName == COE.TotemData[k].SpellName) then
|
||||||
-- use existing totem object
|
-- use existing totem object
|
||||||
-- --------------------------
|
-- --------------------------
|
||||||
totem = COE.TotemData[k];
|
totem = COE.TotemData[k];
|
||||||
newtotem = false;
|
newtotem = false;
|
||||||
break;
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
COETotemTT:SetSpell( i, BOOKTYPE_SPELL );
|
COETotemTT:SetSpell(i, BOOKTYPE_SPELL);
|
||||||
|
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
-- create new totem object if not found
|
-- create new totem object if not found
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
if( not totem ) then
|
if (not totem) then
|
||||||
totem = COE:CreateTotem();
|
totem = COE:CreateTotem();
|
||||||
|
|
||||||
-- set totem spell name
|
-- set totem spell name
|
||||||
@@ -226,44 +237,46 @@ function COE:ScanTotems()
|
|||||||
-- get totem school from tooltip
|
-- get totem school from tooltip
|
||||||
-- ------------------------------
|
-- ------------------------------
|
||||||
local text = COETotemTTTextLeft4;
|
local text = COETotemTTTextLeft4;
|
||||||
if( text and text:GetText() ) then
|
if (text and text:GetText()) then
|
||||||
|
|
||||||
local _,_, element = string.find( text:GetText(), COESTR_TOTEMTOOLS );
|
local _, _, element =
|
||||||
if( element ) then
|
string.find(text:GetText(), COESTR_TOTEMTOOLS);
|
||||||
|
if (element) then
|
||||||
|
|
||||||
-- if element starts with a |, the player does
|
-- if element starts with a |, the player does
|
||||||
-- not possess the needed totem for this spell
|
-- not possess the needed totem for this spell
|
||||||
-- extract the color code before using the element
|
-- extract the color code before using the element
|
||||||
-- ------------------------------------------------
|
-- ------------------------------------------------
|
||||||
if( string.sub( element, 1, 1 ) == "|" ) then
|
if (string.sub(element, 1, 1) == "|") then
|
||||||
element = string.sub( element, 11 );
|
element = string.sub(element, 11);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- get element from tool
|
-- get element from tool
|
||||||
-- ----------------------
|
-- ----------------------
|
||||||
element = COE:ElementFromTool( element );
|
element = COE:ElementFromTool(element);
|
||||||
|
|
||||||
-- translate element to english
|
-- translate element to english
|
||||||
-- -----------------------------
|
-- -----------------------------
|
||||||
element = COE:LocalizedElement( element );
|
element = COE:LocalizedElement(element);
|
||||||
-- valid element?
|
-- valid element?
|
||||||
-- ---------------
|
-- ---------------
|
||||||
if( COE.TotemsAvailable[element] ~= nil ) then
|
if (COE.TotemsAvailable[element] ~= nil) then
|
||||||
totem.Element = element;
|
totem.Element = element;
|
||||||
COE.TotemsAvailable[element] = COE.TotemsAvailable[element] + 1;
|
COE.TotemsAvailable[element] =
|
||||||
|
COE.TotemsAvailable[element] + 1;
|
||||||
else
|
else
|
||||||
COE:Message( COESTR_INVALIDELEMENT .. SpellName );
|
COE:Message(COESTR_INVALIDELEMENT .. SpellName);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- get totem texture
|
-- get totem texture
|
||||||
-- ------------------
|
-- ------------------
|
||||||
totem.Texture = GetSpellTexture( i, BOOKTYPE_SPELL );
|
totem.Texture = GetSpellTexture(i, BOOKTYPE_SPELL);
|
||||||
|
|
||||||
-- get tool presence
|
-- get tool presence
|
||||||
-- ------------------
|
-- ------------------
|
||||||
totem.ToolPresent = COE:IsToolPresent( i );
|
totem.ToolPresent = COE:IsToolPresent(i);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
@@ -278,56 +291,56 @@ function COE:ScanTotems()
|
|||||||
-- get totem mana cost from tooltip
|
-- get totem mana cost from tooltip
|
||||||
-- ---------------------------------
|
-- ---------------------------------
|
||||||
text = COETotemTTTextLeft2;
|
text = COETotemTTTextLeft2;
|
||||||
if( text and text:GetText() ) then
|
if (text and text:GetText()) then
|
||||||
|
|
||||||
local _,_, mana = string.find( text:GetText(), COESTR_TOTEMMANA );
|
local _, _, mana = string.find(text:GetText(), COESTR_TOTEMMANA);
|
||||||
if( mana ) then
|
if (mana) then totemrank.Mana = tonumber(mana); end
|
||||||
totemrank.Mana = tonumber( mana );
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
-- get totem duration and health
|
-- get totem duration and health
|
||||||
-- ------------------------------
|
-- ------------------------------
|
||||||
totemrank.Duration, totemrank.Health, totemrank.Cooldown = COE:GetTotemDurationAndHealth( i );
|
totemrank.Duration, totemrank.Health, totemrank.Cooldown =
|
||||||
|
COE:GetTotemDurationAndHealth(i);
|
||||||
|
|
||||||
-- store rank in totem
|
-- store rank in totem
|
||||||
-- --------------------
|
-- --------------------
|
||||||
totem.Ranks[rank] = totemrank;
|
totem.Ranks[rank] = totemrank;
|
||||||
if( rank > totem.MaxRank ) then
|
if (rank > totem.MaxRank) then totem.MaxRank = rank; end
|
||||||
totem.MaxRank = rank;
|
|
||||||
end
|
|
||||||
|
|
||||||
-- is this a new totem?
|
-- is this a new totem?
|
||||||
-- ---------------------
|
-- ---------------------
|
||||||
if( newtotem ) then
|
if (newtotem) then
|
||||||
-- store totem
|
-- store totem
|
||||||
-- ------------
|
-- ------------
|
||||||
COE.TotemCount = COE.TotemCount + 1;
|
COE.TotemCount = COE.TotemCount + 1;
|
||||||
COE.TotemData[COE.TotemCount] = totem;
|
COE.TotemData[COE.TotemCount] = totem;
|
||||||
|
|
||||||
|
|
||||||
-- check if it's a cleansing totem
|
-- check if it's a cleansing totem
|
||||||
-- --------------------------------
|
-- --------------------------------
|
||||||
if( SpellName == COESTR_TOTEMPOISON ) then
|
if (SpellName == COESTR_TOTEMPOISON) then
|
||||||
COE.CleansingTotems.Poison.Totem = totem;
|
COE.CleansingTotems.Poison.Totem = totem;
|
||||||
elseif( SpellName == COESTR_TOTEMDISEASE ) then
|
elseif (SpellName == COESTR_TOTEMDISEASE) then
|
||||||
COE.CleansingTotems.Disease.Totem = totem;
|
COE.CleansingTotems.Disease.Totem = totem;
|
||||||
elseif( SpellName == COESTR_TOTEMTREMOR ) then
|
elseif (SpellName == COESTR_TOTEMTREMOR) then
|
||||||
COE.CleansingTotems.Tremor.Totem = totem;
|
COE.CleansingTotems.Tremor.Totem = totem;
|
||||||
end
|
end
|
||||||
|
|
||||||
COE:DebugMessage( "Found totem: " .. SpellName );
|
COE:DebugMessage("Found totem: " .. SpellName);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
-- check visibility options
|
-- check visibility options
|
||||||
-- =======================================================================
|
-- =======================================================================
|
||||||
|
|
||||||
if( COE_DisplayedTotems[SpellName] == nil ) then
|
if (COE_DisplayedTotems[SpellName] == nil) then
|
||||||
-- perhaps a new totem. set it to default visible
|
-- perhaps a new totem. set it to default visible
|
||||||
-- and reorder it when the element count is known
|
-- and reorder it when the element count is known
|
||||||
-- -----------------------------------------------
|
-- -----------------------------------------------
|
||||||
COE_DisplayedTotems[SpellName] = { Order = 0, Element = totem.Element, Visible = true };
|
COE_DisplayedTotems[SpellName] = {
|
||||||
|
Order = 0,
|
||||||
|
Element = totem.Element,
|
||||||
|
Visible = true
|
||||||
|
};
|
||||||
else
|
else
|
||||||
-- update old saved variables versions by adding the element
|
-- update old saved variables versions by adding the element
|
||||||
-- ----------------------------------------------------------
|
-- ----------------------------------------------------------
|
||||||
@@ -347,7 +360,7 @@ function COE:ScanTotems()
|
|||||||
-- to make it invisible anyway
|
-- to make it invisible anyway
|
||||||
-- the player needs to have at least one water totem though
|
-- the player needs to have at least one water totem though
|
||||||
-- --------------------------------------------------------------
|
-- --------------------------------------------------------------
|
||||||
if( COE.TotemsAvailable.Water > 0 ) then
|
if (COE.TotemsAvailable.Water > 0) then
|
||||||
local trinket = COE:CreateTotem();
|
local trinket = COE:CreateTotem();
|
||||||
trinket.SpellName = "Trinket";
|
trinket.SpellName = "Trinket";
|
||||||
trinket.Element = "Water";
|
trinket.Element = "Water";
|
||||||
@@ -365,11 +378,11 @@ function COE:ScanTotems()
|
|||||||
COE.TotemCount = COE.TotemCount + 1;
|
COE.TotemCount = COE.TotemCount + 1;
|
||||||
COE.TotemData[COE.TotemCount] = trinket;
|
COE.TotemData[COE.TotemCount] = trinket;
|
||||||
|
|
||||||
if( COE_DisplayedTotems[trinket.SpellName] == nil ) then
|
if (COE_DisplayedTotems[trinket.SpellName] == nil) then
|
||||||
-- perhaps a new totem. set it to default visible
|
-- perhaps a new totem. set it to default visible
|
||||||
-- and reorder it when the element count is known
|
-- and reorder it when the element count is known
|
||||||
-- -----------------------------------------------
|
-- -----------------------------------------------
|
||||||
COE_DisplayedTotems[trinket.SpellName] = { Order = 0, Visible = true };
|
COE_DisplayedTotems[trinket.SpellName] = {Order = 0, Visible = true};
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -377,10 +390,11 @@ function COE:ScanTotems()
|
|||||||
-- Finish
|
-- Finish
|
||||||
-- ===================================
|
-- ===================================
|
||||||
|
|
||||||
COE:DebugMessage( "Found " .. COE.TotemCount .. " totems in spellbook" ..
|
COE:DebugMessage(
|
||||||
"(" .. COE.TotemsAvailable.Earth .. " Earth, " ..
|
"Found " .. COE.TotemCount .. " totems in spellbook" .. "(" ..
|
||||||
COE.TotemsAvailable.Fire .. " Fire, " .. COE.TotemsAvailable.Water .. " Water, " ..
|
COE.TotemsAvailable.Earth .. " Earth, " .. COE.TotemsAvailable.Fire ..
|
||||||
COE.TotemsAvailable.Air .. " Air)" );
|
" Fire, " .. COE.TotemsAvailable.Water .. " Water, " ..
|
||||||
|
COE.TotemsAvailable.Air .. " Air)");
|
||||||
|
|
||||||
-- reorder new totems
|
-- reorder new totems
|
||||||
-- -------------------
|
-- -------------------
|
||||||
@@ -388,7 +402,6 @@ function COE:ScanTotems()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:GetTotemDurationAndHealth
|
METHOD: COE:GetTotemDurationAndHealth
|
||||||
|
|
||||||
@@ -398,14 +411,14 @@ end
|
|||||||
totem duration then
|
totem duration then
|
||||||
Also the health and the cooldown of the totem are returned
|
Also the health and the cooldown of the totem are returned
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:GetTotemDurationAndHealth( spellid )
|
function COE:GetTotemDurationAndHealth(spellid)
|
||||||
|
|
||||||
COETotemTTTextRight3:SetText( nil );
|
COETotemTTTextRight3:SetText(nil);
|
||||||
COETotemTT:SetSpell( spellid, BOOKTYPE_SPELL );
|
COETotemTT:SetSpell(spellid, BOOKTYPE_SPELL);
|
||||||
text = COETotemTTTextLeft5:GetText();
|
text = COETotemTTTextLeft5:GetText();
|
||||||
|
|
||||||
if( not text ) then
|
if (not text) then
|
||||||
COE:DebugMessage( "nil text with id: " .. spellid );
|
COE:DebugMessage("nil text with id: " .. spellid);
|
||||||
return 0, 0;
|
return 0, 0;
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -420,33 +433,34 @@ function COE:GetTotemDurationAndHealth( spellid )
|
|||||||
-- first search for a minute specification
|
-- first search for a minute specification
|
||||||
-- if we find one it is surely the totem duration
|
-- if we find one it is surely the totem duration
|
||||||
-- -----------------------------------------------
|
-- -----------------------------------------------
|
||||||
local _,_,minutetext = string.find( text, COESTR_MINUTEDURATION );
|
local _, _, minutetext = string.find(text, COESTR_MINUTEDURATION);
|
||||||
if( minutetext ) then
|
if (minutetext) then
|
||||||
-- calculate the duration in seconds
|
-- calculate the duration in seconds
|
||||||
-- ----------------------------------
|
-- ----------------------------------
|
||||||
local min = tonumber( string.sub( minutetext, 1, 1 ) );
|
local min = tonumber(string.sub(minutetext, 1, 1));
|
||||||
local sec = tonumber( string.sub( minutetext, 3, 4 ) ) / 100 * 60;
|
local sec = tonumber(string.sub(minutetext, 3, 4)) / 100 * 60;
|
||||||
|
|
||||||
duration = min * 60 + sec;
|
duration = min * 60 + sec;
|
||||||
else
|
else
|
||||||
_,_,minutetext = string.find( text, COESTR_MINUTEDURATION_INT );
|
_, _, minutetext = string.find(text, COESTR_MINUTEDURATION_INT);
|
||||||
if( minutetext ) then
|
if (minutetext) then
|
||||||
duration = tonumber( minutetext ) * 60;
|
duration = tonumber(minutetext) * 60;
|
||||||
else
|
else
|
||||||
-- now test for a duration in seconds
|
-- now test for a duration in seconds
|
||||||
-- -----------------------------------
|
-- -----------------------------------
|
||||||
local _,b,sectext1 = string.find( text, COESTR_SECDURATION );
|
local _, b, sectext1 = string.find(text, COESTR_SECDURATION);
|
||||||
if( sectext1 ) then
|
if (sectext1) then
|
||||||
|
|
||||||
-- look if there are two second specifications
|
-- look if there are two second specifications
|
||||||
-- if so, take the greate one
|
-- if so, take the greate one
|
||||||
-- --------------------------------------------
|
-- --------------------------------------------
|
||||||
local _,_,sectext2 = string.find( string.sub( text, b ), COESTR_SECDURATION );
|
local _, _, sectext2 = string.find(string.sub(text, b),
|
||||||
|
COESTR_SECDURATION);
|
||||||
|
|
||||||
if( sectext2 ) then
|
if (sectext2) then
|
||||||
duration = math.max( tonumber( sectext1 ), tonumber( sectext2 ) );
|
duration = math.max(tonumber(sectext1), tonumber(sectext2));
|
||||||
else
|
else
|
||||||
duration = tonumber( sectext1 );
|
duration = tonumber(sectext1);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -457,11 +471,11 @@ function COE:GetTotemDurationAndHealth( spellid )
|
|||||||
-- ===============================================================
|
-- ===============================================================
|
||||||
|
|
||||||
for num, regex in COESTR_TOTEMHEALTH do
|
for num, regex in COESTR_TOTEMHEALTH do
|
||||||
local match = { string.gfind( text, regex )() };
|
local match = {string.gfind(text, regex)()};
|
||||||
if ( table.getn(match) >= 1 ) then
|
if (table.getn(match) >= 1) then
|
||||||
|
|
||||||
health = tonumber( match[1] );
|
health = tonumber(match[1]);
|
||||||
break;
|
break
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -471,16 +485,16 @@ function COE:GetTotemDurationAndHealth( spellid )
|
|||||||
|
|
||||||
text = COETotemTTTextRight3:GetText();
|
text = COETotemTTTextRight3:GetText();
|
||||||
|
|
||||||
if( not text ) then
|
if (not text) then
|
||||||
cooldown = 0;
|
cooldown = 0;
|
||||||
else
|
else
|
||||||
_,_,cooldown = string.find( text, COESTR_SECDURATION );
|
_, _, cooldown = string.find(text, COESTR_SECDURATION);
|
||||||
if( cooldown ) then
|
if (cooldown) then
|
||||||
cooldown = tonumber( cooldown );
|
cooldown = tonumber(cooldown);
|
||||||
else
|
else
|
||||||
_,_,cooldown = string.find( text, COESTR_MINUTEDURATION_INT );
|
_, _, cooldown = string.find(text, COESTR_MINUTEDURATION_INT);
|
||||||
if( cooldown ) then
|
if (cooldown) then
|
||||||
cooldown = tonumber( cooldown ) * 60;
|
cooldown = tonumber(cooldown) * 60;
|
||||||
else
|
else
|
||||||
cooldown = 0;
|
cooldown = 0;
|
||||||
end
|
end
|
||||||
@@ -491,7 +505,6 @@ function COE:GetTotemDurationAndHealth( spellid )
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:IsToolPresent
|
METHOD: COE:IsToolPresent
|
||||||
|
|
||||||
@@ -501,33 +514,30 @@ end
|
|||||||
This is done by testing the color of the "Tools:" section
|
This is done by testing the color of the "Tools:" section
|
||||||
in the totem tooltip
|
in the totem tooltip
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:IsToolPresent( spellid )
|
function COE:IsToolPresent(spellid)
|
||||||
|
|
||||||
-- get totem tooltip
|
-- get totem tooltip
|
||||||
-- ------------------
|
-- ------------------
|
||||||
COETotemTT:SetSpell( spellid, BOOKTYPE_SPELL );
|
COETotemTT:SetSpell(spellid, BOOKTYPE_SPELL);
|
||||||
|
|
||||||
-- test for presence of the totem tool
|
-- test for presence of the totem tool
|
||||||
-- ------------------------------------
|
-- ------------------------------------
|
||||||
local text = COETotemTTTextLeft4;
|
local text = COETotemTTTextLeft4;
|
||||||
if( text and text:GetText() ) then
|
if (text and text:GetText()) then
|
||||||
|
|
||||||
local _,_, element = string.find( text:GetText(), COESTR_TOTEMTOOLS );
|
local _, _, element = string.find(text:GetText(), COESTR_TOTEMTOOLS);
|
||||||
if( element ) then
|
if (element) then
|
||||||
|
|
||||||
-- if element doesn't start with a |, the player
|
-- if element doesn't start with a |, the player
|
||||||
-- possesses the needed totem for this spell
|
-- possesses the needed totem for this spell
|
||||||
-- ------------------------------------------------
|
-- ------------------------------------------------
|
||||||
if( string.sub( element, 1, 1 ) ~= "|" ) then
|
if (string.sub(element, 1, 1) ~= "|") then return true; end
|
||||||
return true;
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:IsTrinketPresent
|
METHOD: COE:IsTrinketPresent
|
||||||
|
|
||||||
@@ -539,12 +549,12 @@ end
|
|||||||
function COE:IsTrinketPresent()
|
function COE:IsTrinketPresent()
|
||||||
|
|
||||||
for i = 0, 1 do
|
for i = 0, 1 do
|
||||||
local slot = GetInventorySlotInfo( "Trinket" .. i .. "Slot" );
|
local slot = GetInventorySlotInfo("Trinket" .. i .. "Slot");
|
||||||
local item = GetInventoryItemLink( "player", slot );
|
local item = GetInventoryItemLink("player", slot);
|
||||||
|
|
||||||
if( item ) then
|
if (item) then
|
||||||
local itemname = string.find( item, COESTR_TRINKET );
|
local itemname = string.find(item, COESTR_TRINKET);
|
||||||
if( itemname ) then
|
if (itemname) then
|
||||||
-- trinket is equipped
|
-- trinket is equipped
|
||||||
-- --------------------
|
-- --------------------
|
||||||
return true, slot;
|
return true, slot;
|
||||||
@@ -556,7 +566,6 @@ function COE:IsTrinketPresent()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:ReorderNewTotems
|
METHOD: COE:ReorderNewTotems
|
||||||
|
|
||||||
@@ -565,32 +574,50 @@ end
|
|||||||
totems in this element
|
totems in this element
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:ReorderNewTotems()
|
function COE:ReorderNewTotems()
|
||||||
|
COE:DebugMessage("Executing ReorderNewTotems");
|
||||||
|
|
||||||
local nextslot = { Earth = COE.TotemsAvailable.Earth, Fire = COE.TotemsAvailable.Fire,
|
local nextslot = {
|
||||||
Water = COE.TotemsAvailable.Water, Air = COE.TotemsAvailable.Air };
|
Earth = COE.TotemsAvailable.Earth,
|
||||||
|
Fire = COE.TotemsAvailable.Fire,
|
||||||
|
Water = COE.TotemsAvailable.Water,
|
||||||
|
Air = COE.TotemsAvailable.Air
|
||||||
|
};
|
||||||
|
|
||||||
local used = { Earth = {}, Fire = {}, Water = {}, Air = {} };
|
local used = {Earth = {}, Fire = {}, Water = {}, Air = {}};
|
||||||
local bError = false;
|
local bError = false;
|
||||||
|
|
||||||
local k;
|
COE:DebugMessage("ReorderNewTotems COE.TotemCount: " .. COE.TotemCount);
|
||||||
|
|
||||||
for k = 1, COE.TotemCount do
|
for k = 1, COE.TotemCount do
|
||||||
|
|
||||||
local totem = COE.TotemData[k];
|
local totem = COE.TotemData[k];
|
||||||
if( COE_DisplayedTotems[totem.SpellName] ~= nil ) then
|
COE:DebugMessage(
|
||||||
if( COE_DisplayedTotems[totem.SpellName].Order == 0 ) then
|
"ReorderNewTotems processing totem: " .. totem.Element .. " " ..
|
||||||
|
totem.SpellName);
|
||||||
|
|
||||||
|
if (COE_DisplayedTotems[totem.SpellName] ~= nil) then
|
||||||
|
if (COE_DisplayedTotems[totem.SpellName].Order == 0) then
|
||||||
|
|
||||||
-- this totem has just been added
|
-- this totem has just been added
|
||||||
-- assign the currently free slot
|
-- assign the currently free slot
|
||||||
-- -------------------------------
|
-- -------------------------------
|
||||||
COE_DisplayedTotems[totem.SpellName].Order = nextslot[totem.Element];
|
if (not nextslot[totem.Element]) then
|
||||||
|
COE:DebugMessage(
|
||||||
|
"ReorderNewTotems nextslot[totem.Element] is nil");
|
||||||
|
end
|
||||||
|
|
||||||
|
COE_DisplayedTotems[totem.SpellName].Order =
|
||||||
|
nextslot[totem.Element];
|
||||||
nextslot[totem.Element] = nextslot[totem.Element] - 1;
|
nextslot[totem.Element] = nextslot[totem.Element] - 1;
|
||||||
end
|
end
|
||||||
|
|
||||||
-- register that this slot of the element is now in use
|
-- register that this slot of the element is now in use
|
||||||
-- mark as error if already in use
|
-- mark as error if already in use
|
||||||
-- -----------------------------------------------------
|
-- -----------------------------------------------------
|
||||||
if( used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] == nil ) then
|
if (used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] ==
|
||||||
used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] = true;
|
nil) then
|
||||||
|
used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] =
|
||||||
|
true;
|
||||||
else
|
else
|
||||||
bError = true;
|
bError = true;
|
||||||
end
|
end
|
||||||
@@ -599,14 +626,14 @@ function COE:ReorderNewTotems()
|
|||||||
|
|
||||||
-- are there multiple entries for one slot?
|
-- are there multiple entries for one slot?
|
||||||
-- -----------------------------------------
|
-- -----------------------------------------
|
||||||
if( bError ) then
|
if (bError) then
|
||||||
-- there is something wrong with the saved variables
|
-- there is something wrong with the saved variables
|
||||||
-- reset all ordering and reassign it
|
-- reset all ordering and reassign it
|
||||||
-- --------------------------------------------------
|
-- --------------------------------------------------
|
||||||
for k = 1, COE.TotemCount do
|
for k = 1, COE.TotemCount do
|
||||||
|
|
||||||
local totem = COE.TotemData[k];
|
local totem = COE.TotemData[k];
|
||||||
if( COE_DisplayedTotems[totem.SpellName] ~= nil ) then
|
if (COE_DisplayedTotems[totem.SpellName] ~= nil) then
|
||||||
COE_DisplayedTotems[totem.SpellName].Order = 0;
|
COE_DisplayedTotems[totem.SpellName].Order = 0;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -617,7 +644,6 @@ function COE:ReorderNewTotems()
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:InitTotemSets
|
METHOD: COE:InitTotemSets
|
||||||
|
|
||||||
@@ -626,30 +652,34 @@ end
|
|||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:InitTotemSets()
|
function COE:InitTotemSets()
|
||||||
|
|
||||||
local indices = { "Earth", "Fire", "Water", "Air" };
|
local indices = {"Earth", "Fire", "Water", "Air"};
|
||||||
|
|
||||||
COE.TotemSets = {};
|
COE.TotemSets = {};
|
||||||
|
|
||||||
-- for each standard set
|
-- for each standard set
|
||||||
-- ----------------------
|
-- ----------------------
|
||||||
local set;
|
for set = 1, table.getn(COE_SavedTotemSets) do
|
||||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
|
||||||
|
|
||||||
COE.TotemSets[set] = { Earth = nil, Fire = nil, Water = nil, Air = nil,
|
COE.TotemSets[set] = {
|
||||||
CastOrder = COE_SavedTotemSets[set].CastOrder };
|
Earth = nil,
|
||||||
|
Fire = nil,
|
||||||
|
Water = nil,
|
||||||
|
Air = nil,
|
||||||
|
CastOrder = COE_SavedTotemSets[set].CastOrder
|
||||||
|
};
|
||||||
|
|
||||||
-- for each element
|
-- for each element
|
||||||
-- -----------------
|
-- -----------------
|
||||||
local k, totem;
|
for k = 1, 4 do
|
||||||
for k = 1,4 do
|
|
||||||
|
|
||||||
if( COE_SavedTotemSets[set][indices[k]] ~= "" ) then
|
if (COE_SavedTotemSets[set][indices[k]] ~= "") then
|
||||||
|
|
||||||
-- iterate over all totems
|
-- iterate over all totems
|
||||||
-- ------------------------
|
-- ------------------------
|
||||||
for totem in COE.TotemData do
|
for totem in COE.TotemData do
|
||||||
|
|
||||||
if( COE.TotemData[totem].SpellName == COE_SavedTotemSets[set][indices[k]] ) then
|
if (COE.TotemData[totem].SpellName ==
|
||||||
|
COE_SavedTotemSets[set][indices[k]]) then
|
||||||
COE.TotemSets[set][indices[k]] = COE.TotemData[totem];
|
COE.TotemSets[set][indices[k]] = COE.TotemData[totem];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -659,35 +689,41 @@ function COE:InitTotemSets()
|
|||||||
|
|
||||||
-- for each custom set
|
-- for each custom set
|
||||||
-- --------------------
|
-- --------------------
|
||||||
for set = 1, table.getn( COE_CustomTotemSets ) do
|
for set = 1, table.getn(COE_CustomTotemSets) do
|
||||||
|
|
||||||
COE.TotemSets[COESET_DEFAULT + set] = { Earth = nil, Fire = nil, Water = nil, Air = nil,
|
COE.TotemSets[COESET_DEFAULT + set] = {
|
||||||
CastOrder = COE_CustomTotemSets[set].CastOrder };
|
Earth = nil,
|
||||||
|
Fire = nil,
|
||||||
|
Water = nil,
|
||||||
|
Air = nil,
|
||||||
|
CastOrder = COE_CustomTotemSets[set].CastOrder
|
||||||
|
};
|
||||||
|
|
||||||
-- for each element
|
-- for each element
|
||||||
-- -----------------
|
-- -----------------
|
||||||
local k, totem;
|
local k, totem;
|
||||||
for k = 1,4 do
|
for k = 1, 4 do
|
||||||
|
|
||||||
if( COE_CustomTotemSets[set][indices[k]] ~= "" ) then
|
if (COE_CustomTotemSets[set][indices[k]] ~= "") then
|
||||||
|
|
||||||
-- iterate over all totems
|
-- iterate over all totems
|
||||||
-- ------------------------
|
-- ------------------------
|
||||||
for totem in COE.TotemData do
|
for totem in COE.TotemData do
|
||||||
|
|
||||||
if( COE.TotemData[totem].SpellName == COE_CustomTotemSets[set][indices[k]] ) then
|
if (COE.TotemData[totem].SpellName ==
|
||||||
COE.TotemSets[COESET_DEFAULT + set][indices[k]] = COE.TotemData[totem];
|
COE_CustomTotemSets[set][indices[k]]) then
|
||||||
|
COE.TotemSets[COESET_DEFAULT + set][indices[k]] =
|
||||||
|
COE.TotemData[totem];
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
COE.TotemSetCount = table.getn( COE.TotemSets );
|
COE.TotemSetCount = table.getn(COE.TotemSets);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ =============================================================================================
|
--[[ =============================================================================================
|
||||||
|
|
||||||
F I X E S
|
F I X E S
|
||||||
@@ -705,19 +741,19 @@ function COE:Fix_CastOrderLocalization()
|
|||||||
-- for each standard set
|
-- for each standard set
|
||||||
-- ----------------------
|
-- ----------------------
|
||||||
local set, k;
|
local set, k;
|
||||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
for set = 1, table.getn(COE_SavedTotemSets) do
|
||||||
|
|
||||||
for k = 1, 4 do
|
for k = 1, 4 do
|
||||||
if( COE_SavedTotemSets[set].CastOrder[k] == "Earth" ) then
|
if (COE_SavedTotemSets[set].CastOrder[k] == "Earth") then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Fire" ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] == "Fire") then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Water" ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] == "Water") then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Air" ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] == "Air") then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -725,11 +761,10 @@ function COE:Fix_CastOrderLocalization()
|
|||||||
|
|
||||||
-- notify user
|
-- notify user
|
||||||
-- ------------
|
-- ------------
|
||||||
COE:Message( COESTR_FIXEDSETS );
|
COE:Message(COESTR_FIXEDSETS);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:Fix_DisplayedTotems
|
METHOD: COE:Fix_DisplayedTotems
|
||||||
|
|
||||||
@@ -739,41 +774,38 @@ function COE:Fix_DisplayedTotems()
|
|||||||
|
|
||||||
local i;
|
local i;
|
||||||
local fixed = false;
|
local fixed = false;
|
||||||
foreach( COE_DisplayedTotems, function( index, value )
|
foreach(COE_DisplayedTotems, function(index, value)
|
||||||
|
|
||||||
-- is this an old-style entry?
|
-- is this an old-style entry?
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
if( type( value ) == "boolean" ) then
|
if (type(value) == "boolean") then
|
||||||
COE_DisplayedTotems[index] = { Order = 0, Visible = value };
|
COE_DisplayedTotems[index] = {Order = 0, Visible = value};
|
||||||
fixed = true;
|
fixed = true;
|
||||||
|
|
||||||
elseif( type( value ) == "table" ) then
|
elseif (type(value) == "table") then
|
||||||
if( COE_DisplayedTotems[index].Visible == nil ) then
|
if (COE_DisplayedTotems[index].Visible == nil) then
|
||||||
COE_DisplayedTotems[index].Visible = true;
|
COE_DisplayedTotems[index].Visible = true;
|
||||||
fixed = true;
|
fixed = true;
|
||||||
end
|
end
|
||||||
|
|
||||||
if( COE_DisplayedTotems[index].Order == nil ) then
|
if (COE_DisplayedTotems[index].Order == nil) then
|
||||||
COE_DisplayedTotems[index].Order = 0;
|
COE_DisplayedTotems[index].Order = 0;
|
||||||
fixed = true;
|
fixed = true;
|
||||||
end
|
end
|
||||||
|
|
||||||
else
|
else
|
||||||
COE_DisplayedTotems[index] = { Order = 0, Visible = value };
|
COE_DisplayedTotems[index] = {Order = 0, Visible = value};
|
||||||
fixed = true;
|
fixed = true;
|
||||||
end
|
end
|
||||||
|
|
||||||
end );
|
end);
|
||||||
|
|
||||||
-- notify user
|
-- notify user
|
||||||
-- ------------
|
-- ------------
|
||||||
if( fixed ) then
|
if (fixed) then COE:Message(COESTR_FIXEDDISPLAY); end
|
||||||
COE:Message( COESTR_FIXEDDISPLAY );
|
|
||||||
end
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:Fix_CastOrderLocalization2
|
METHOD: COE:Fix_CastOrderLocalization2
|
||||||
|
|
||||||
@@ -785,19 +817,22 @@ function COE:Fix_CastOrderLocalization2()
|
|||||||
-- for each standard set
|
-- for each standard set
|
||||||
-- ----------------------
|
-- ----------------------
|
||||||
local set, k;
|
local set, k;
|
||||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
for set = 1, table.getn(COE_SavedTotemSets) do
|
||||||
|
|
||||||
for k = 1, 4 do
|
for k = 1, 4 do
|
||||||
if( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH ) then
|
if (COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH) then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_FIRE ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_FIRE) then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_WATER ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_WATER) then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||||
|
|
||||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_AIR ) then
|
elseif (COE_SavedTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_AIR) then
|
||||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@@ -805,19 +840,22 @@ function COE:Fix_CastOrderLocalization2()
|
|||||||
|
|
||||||
-- for each custom set
|
-- for each custom set
|
||||||
-- --------------------
|
-- --------------------
|
||||||
for set = 1, table.getn( COE_CustomTotemSets ) do
|
for set = 1, table.getn(COE_CustomTotemSets) do
|
||||||
|
|
||||||
for k = 1, 4 do
|
for k = 1, 4 do
|
||||||
if( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH ) then
|
if (COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH) then
|
||||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||||
|
|
||||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_FIRE ) then
|
elseif (COE_CustomTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_FIRE) then
|
||||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||||
|
|
||||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_WATER ) then
|
elseif (COE_CustomTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_WATER) then
|
||||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||||
|
|
||||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_AIR ) then
|
elseif (COE_CustomTotemSets[set].CastOrder[k] ==
|
||||||
|
COESTR_TOTEMTOOLS_AIR) then
|
||||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
+487
-333
File diff suppressed because it is too large
Load Diff
+420
-463
File diff suppressed because it is too large
Load Diff
+113
-86
@@ -5,11 +5,7 @@
|
|||||||
|
|
||||||
by Wyverex (2006)
|
by Wyverex (2006)
|
||||||
|
|
||||||
]]
|
]] if (not COE) then COE = {}; end
|
||||||
|
|
||||||
if( not COE ) then
|
|
||||||
COE = {};
|
|
||||||
end
|
|
||||||
|
|
||||||
COE_VERSION = 2.6
|
COE_VERSION = 2.6
|
||||||
|
|
||||||
@@ -23,6 +19,12 @@ COECOL_TOTEMCLEANSING = 3;
|
|||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
COE["DebugMode"] = false;
|
COE["DebugMode"] = false;
|
||||||
|
|
||||||
|
--[[ ----------------------------------------------------------------
|
||||||
|
When EventPrintMode is set to true, all event calls not caught
|
||||||
|
will write to a debug message into the chat frame. Requires
|
||||||
|
DebugMode enabled
|
||||||
|
-------------------------------------------------------------------]]
|
||||||
|
COE["EventPrintMode"] = false;
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
These variables control frame updates
|
These variables control frame updates
|
||||||
@@ -34,7 +36,6 @@ COE["DebugMode"] = false;
|
|||||||
COE["UpdateInterval"] = 0.1;
|
COE["UpdateInterval"] = 0.1;
|
||||||
COE["ForceUpdate"] = COE.UpdateInterval * 2;
|
COE["ForceUpdate"] = COE.UpdateInterval * 2;
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
The AdvisorInterval controls how often the party/raid is
|
The AdvisorInterval controls how often the party/raid is
|
||||||
scanned for debuffs that are curable by totems
|
scanned for debuffs that are curable by totems
|
||||||
@@ -44,60 +45,89 @@ COE["ForceUpdate"] = COE.UpdateInterval * 2;
|
|||||||
COE["AdvisorInterval"] = 1;
|
COE["AdvisorInterval"] = 1;
|
||||||
COE["AdvisorWarningInterval"] = 7;
|
COE["AdvisorWarningInterval"] = 7;
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:Init
|
METHOD: COE:Init
|
||||||
|
|
||||||
PURPOSE: Loads submodules and initializes data
|
PURPOSE: Loads submodules and initializes data
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:Init()
|
function COE:Init()
|
||||||
COE:Message( "Call of Elements v" .. COE_VERSION );
|
COE:Message("Call of Elements v" .. COE_VERSION);
|
||||||
|
|
||||||
-- load only for shamans
|
-- load only for shamans
|
||||||
-- ----------------------
|
-- ----------------------
|
||||||
local _, EnglishClass = UnitClass( "player" );
|
local _, EnglishClass = UnitClass("player");
|
||||||
if( EnglishClass ~= "SHAMAN" ) then
|
if (EnglishClass ~= "SHAMAN") then
|
||||||
COE:Message( COESTR_NOTASHAMAN );
|
COE:Message(COESTR_NOTASHAMAN);
|
||||||
COE.Initialized = false;
|
COE.Initialized = false;
|
||||||
else
|
else
|
||||||
COE.Initialized = true;
|
COE.Initialized = true;
|
||||||
|
|
||||||
this:RegisterEvent( "VARIABLES_LOADED" );
|
this:RegisterEvent("VARIABLES_LOADED");
|
||||||
|
this:RegisterEvent("CHAT_MSG_SPELL_SELF_BUFF");
|
||||||
|
|
||||||
-- register shell command
|
-- register shell command
|
||||||
-- -----------------------
|
-- -----------------------
|
||||||
SlashCmdList["COE"] = COEProcessShellCommand;
|
SlashCmdList["COE"] = COEProcessShellCommand;
|
||||||
SLASH_COE1="/coe";
|
SLASH_COE1 = "/coe";
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--[[ ----------------------------------------------------------------
|
||||||
|
METHOD: COE:FindSpellId
|
||||||
|
|
||||||
|
PURPOSE: Utility function that can provide spell ID from name.
|
||||||
|
Run in client chat with '/script COE:FindSpellName("a_spell_name")'.
|
||||||
|
-------------------------------------------------------------------]]
|
||||||
|
function COE:FindSpellId(spellNameTarget)
|
||||||
|
local spellName;
|
||||||
|
for i = 1, 1000 do
|
||||||
|
spellName = GetSpellName(i, BOOKTYPE_SPELL);
|
||||||
|
if (spellName == spellNameTarget) then
|
||||||
|
print(spellName .. "is id: " .. i);
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:OnEvent
|
METHOD: COE:OnEvent
|
||||||
|
|
||||||
PURPOSE: Handles frame events
|
PURPOSE: Handles frame events
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:OnEvent( event )
|
function COE:OnEvent(event)
|
||||||
|
if (COE.EventPrintMode) then
|
||||||
|
COE:DebugMessage("Event: " .. event);
|
||||||
|
if (arg1) then COE:DebugMessage("arg1: " .. arg1); end
|
||||||
|
end
|
||||||
|
|
||||||
if( event == "VARIABLES_LOADED" ) then
|
if (event == "VARIABLES_LOADED") then
|
||||||
-- fix saved variables if this update has to do so
|
-- fix saved variables if this update has to do so
|
||||||
-- ------------------------------------------------
|
-- ------------------------------------------------
|
||||||
COE:FixSavedVariables();
|
COE:FixSavedVariables();
|
||||||
|
|
||||||
|
elseif (event == "CHAT_MSG_SPELL_SELF_BUFF") then
|
||||||
|
-- resolve Totemic Recall event
|
||||||
|
if (string.find(arg1, "Mana from Totemic Recall")) then
|
||||||
|
COE:DebugMessage("Totemic Recall initiating reset of timers.");
|
||||||
|
COE_Totem:ResetTimers();
|
||||||
|
|
||||||
|
-- Resolve Totem cast event
|
||||||
|
elseif (string.find(arg1, "Totem")) then
|
||||||
|
local totem = COE_Totem:GetTotemFromText(arg1);
|
||||||
|
if (totem) then COE_Totem:ActivateTotem(totem); end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:Message
|
METHOD: COE:Message
|
||||||
|
|
||||||
PURPOSE: Adds a message to the default chat frame
|
PURPOSE: Adds a message to the default chat frame
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:Message( msg )
|
function COE:Message(msg)
|
||||||
DEFAULT_CHAT_FRAME:AddMessage( "[COE] " .. msg, 0.93, 0.83, 0.45 );
|
DEFAULT_CHAT_FRAME:AddMessage("[COE] " .. msg, 0.93, 0.83, 0.45);
|
||||||
end;
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:DebugMessage
|
METHOD: COE:DebugMessage
|
||||||
@@ -105,12 +135,11 @@ end;
|
|||||||
PURPOSE: Adds a debug message to the default chat frame if
|
PURPOSE: Adds a debug message to the default chat frame if
|
||||||
debug mode is enabled
|
debug mode is enabled
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:DebugMessage( msg )
|
function COE:DebugMessage(msg)
|
||||||
if( COE.DebugMode ) then
|
if (COE.DebugMode) then
|
||||||
DEFAULT_CHAT_FRAME:AddMessage( "[COE] " .. msg, 0.5, 0.5, 0.5 );
|
DEFAULT_CHAT_FRAME:AddMessage("[COE] " .. msg, 1, 0, 0);
|
||||||
end
|
end
|
||||||
end;
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:Notification
|
METHOD: COE:Notification
|
||||||
@@ -118,28 +147,27 @@ end;
|
|||||||
PURPOSE: Adds a message to the error frame in the upper
|
PURPOSE: Adds a message to the error frame in the upper
|
||||||
screen center
|
screen center
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:Notification( msg, color )
|
function COE:Notification(msg, color)
|
||||||
|
|
||||||
local col;
|
local col;
|
||||||
|
|
||||||
-- choose color
|
-- choose color
|
||||||
-- -------------
|
-- -------------
|
||||||
if( color == COECOL_TOTEMWARNING ) then
|
if (color == COECOL_TOTEMWARNING) then
|
||||||
col = { r = 0, g = 0.6, b = 1 };
|
col = {r = 0, g = 0.6, b = 1};
|
||||||
elseif( color == COECOL_TOTEMDESTROYED ) then
|
elseif (color == COECOL_TOTEMDESTROYED) then
|
||||||
col = { r = 1, g = 0.4, b = 0 };
|
col = {r = 1, g = 0.4, b = 0};
|
||||||
elseif( color == COECOL_TOTEMCLEANSING ) then
|
elseif (color == COECOL_TOTEMCLEANSING) then
|
||||||
col = { r = 0, g = 1, b = 0.4 };
|
col = {r = 0, g = 1, b = 0.4};
|
||||||
else
|
else
|
||||||
col = { r = 1, g = 1, b = 1 };
|
col = {r = 1, g = 1, b = 1};
|
||||||
end
|
end
|
||||||
|
|
||||||
-- add message
|
-- add message
|
||||||
-- ------------
|
-- ------------
|
||||||
UIErrorsFrame:AddMessage( msg, col.r, col.g, col.b, 1.0, UIERRORS_HOLD_TIME );
|
UIErrorsFrame:AddMessage(msg, col.r, col.g, col.b, 1.0, UIERRORS_HOLD_TIME);
|
||||||
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:ToggleConfigFrame
|
METHOD: COE:ToggleConfigFrame
|
||||||
@@ -148,74 +176,73 @@ end;
|
|||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:ToggleConfigFrame()
|
function COE:ToggleConfigFrame()
|
||||||
|
|
||||||
if( COE_ConfigFrame:IsVisible() ) then
|
if (COE_ConfigFrame:IsVisible()) then
|
||||||
COE_Config:CloseDialog()
|
COE_Config:CloseDialog()
|
||||||
else
|
else
|
||||||
COE_ConfigFrame:Show();
|
COE_ConfigFrame:Show();
|
||||||
end
|
end
|
||||||
|
|
||||||
PlaySound( "igMainMenuOption" );
|
PlaySound("igMainMenuOption");
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COEProcessShellCommand
|
METHOD: COEProcessShellCommand
|
||||||
|
|
||||||
PURPOSE: Executes the entered shell command
|
PURPOSE: Executes the entered shell command
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COEProcessShellCommand( msg )
|
function COEProcessShellCommand(msg)
|
||||||
|
|
||||||
if( msg == "" or msg == "config" ) then
|
if (msg == "" or msg == "config") then
|
||||||
COE:ToggleConfigFrame();
|
COE:ToggleConfigFrame();
|
||||||
|
|
||||||
elseif( msg == "list" ) then
|
elseif (msg == "list" or msg == "help") then
|
||||||
COE:DisplayShellCommands();
|
COE:DisplayShellCommands();
|
||||||
|
|
||||||
elseif( msg == "nextset" ) then
|
elseif (msg == "debug") then
|
||||||
|
COE["DebugMode"] = not COE.DebugMode;
|
||||||
|
COE:Message(tostring(COE.DebugMode));
|
||||||
|
elseif (msg == "nextset") then
|
||||||
COE_Totem:SwitchToNextSet();
|
COE_Totem:SwitchToNextSet();
|
||||||
|
|
||||||
elseif( msg == "priorset" ) then
|
elseif (msg == "priorset") then
|
||||||
COE_Totem:SwitchToPriorSet();
|
COE_Totem:SwitchToPriorSet();
|
||||||
|
|
||||||
elseif( msg == "throwset" ) then
|
elseif (msg == "throwset") then
|
||||||
COE_Totem:ThrowSet();
|
COE_Totem:ThrowSet();
|
||||||
|
|
||||||
elseif( msg == "restartset" ) then
|
elseif (msg == "restartset") then
|
||||||
COE_Totem:ResetSetCycle();
|
COE_Totem:ResetSetCycle();
|
||||||
|
|
||||||
elseif( msg == "reset" ) then
|
elseif (msg == "reset") then
|
||||||
COE_Totem:ResetTimers();
|
COE_Totem:ResetTimers();
|
||||||
|
|
||||||
elseif( msg == "reload" ) then
|
elseif (msg == "reload") then
|
||||||
COE_Totem:Rescan();
|
COE_Totem:Rescan();
|
||||||
|
|
||||||
elseif( msg == "resetframes" ) then
|
elseif (msg == "resetframes") then
|
||||||
COE_Totem:ResetFrames();
|
COE_Totem:ResetFrames();
|
||||||
|
|
||||||
elseif( msg == "advised" ) then
|
elseif (msg == "advised") then
|
||||||
COE_Totem:ThrowAdvisedTotem();
|
COE_Totem:ThrowAdvisedTotem();
|
||||||
|
|
||||||
elseif( msg == "resetordering" ) then
|
elseif (msg == "resetordering") then
|
||||||
COE_DisplayedTotems = {};
|
COE_DisplayedTotems = {};
|
||||||
COE_Totem:Rescan();
|
COE_Totem:Rescan();
|
||||||
|
|
||||||
elseif( msg == "bestheal" ) then
|
elseif (msg == "bestheal") then
|
||||||
COE_Heal:BestHeal();
|
COE_Heal:BestHeal();
|
||||||
|
|
||||||
elseif( msg == "battleheal" ) then
|
elseif (msg == "battleheal") then
|
||||||
COE_Heal:BattleHeal();
|
COE_Heal:BattleHeal();
|
||||||
|
|
||||||
else
|
else
|
||||||
local _,_,arg = string.find( msg, "set (.*)" );
|
local _, _, arg = string.find(msg, "set (.*)");
|
||||||
if( arg ) then
|
if (arg) then COE_Totem:SwitchToSet(arg); end
|
||||||
COE_Totem:SwitchToSet( arg );
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:DisplayShellCommands
|
METHOD: COE:DisplayShellCommands
|
||||||
|
|
||||||
@@ -223,24 +250,24 @@ end
|
|||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]]
|
||||||
function COE:DisplayShellCommands()
|
function COE:DisplayShellCommands()
|
||||||
|
|
||||||
COE:Message( COESHELL_INTRO );
|
COE:Message(COESHELL_INTRO);
|
||||||
COE:Message( COESHELL_CONFIG );
|
COE:Message(COESHELL_CONFIG);
|
||||||
COE:Message( COESHELL_LIST );
|
COE:Message(COESHELL_LIST);
|
||||||
COE:Message( COESHELL_NEXTSET );
|
COE:Message(COESHELL_NEXTSET);
|
||||||
COE:Message( COESHELL_PRIORSET );
|
COE:Message(COESHELL_PRIORSET);
|
||||||
COE:Message( COESHELL_SET );
|
COE:Message(COESHELL_SET);
|
||||||
COE:Message( COESHELL_RESTARTSET );
|
COE:Message(COESHELL_RESTARTSET);
|
||||||
COE:Message( COESHELL_RESET );
|
COE:Message(COESHELL_RESET);
|
||||||
COE:Message( COESHELL_RESETFRAMES );
|
COE:Message(COESHELL_RESETFRAMES);
|
||||||
COE:Message( COESHELL_RESETORDERING );
|
COE:Message(COESHELL_RESETORDERING);
|
||||||
COE:Message( COESHELL_RELOAD );
|
COE:Message(COESHELL_RELOAD);
|
||||||
COE:Message( COESHELL_MACRONOTE );
|
COE:Message(COESHELL_MACRONOTE);
|
||||||
COE:Message( COESHELL_THROWSET );
|
COE:Message(COESHELL_THROWSET);
|
||||||
COE:Message( COESHELL_ADVISED );
|
COE:Message(COESHELL_ADVISED);
|
||||||
|
COE:Message(COESHELL_DEBUG);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
METHOD: COE:FixSavedVariables
|
METHOD: COE:FixSavedVariables
|
||||||
|
|
||||||
@@ -252,37 +279,37 @@ function COE:FixSavedVariables()
|
|||||||
|
|
||||||
-- is the version stored in the saved variables?
|
-- is the version stored in the saved variables?
|
||||||
-- ----------------------------------------------
|
-- ----------------------------------------------
|
||||||
if( not COE_Config:GetSaved( COEOPT_VERSION ) ) then
|
if (not COE_Config:GetSaved(COEOPT_VERSION)) then
|
||||||
-- this is version <= v1.6
|
-- this is version <= v1.6
|
||||||
-- ------------------------
|
-- ------------------------
|
||||||
COE_Config:SetOption( COEOPT_VERSION, 1.6 );
|
COE_Config:SetOption(COEOPT_VERSION, 1.6);
|
||||||
end
|
end
|
||||||
|
|
||||||
local version = COE_Config:GetSaved( COEOPT_VERSION );
|
local version = COE_Config:GetSaved(COEOPT_VERSION);
|
||||||
|
|
||||||
if( version == 1.6 ) then
|
if (version == 1.6) then
|
||||||
-- fix localized cast order in 1.7
|
-- fix localized cast order in 1.7
|
||||||
-- --------------------------------
|
-- --------------------------------
|
||||||
COE:Fix_CastOrderLocalization();
|
COE:Fix_CastOrderLocalization();
|
||||||
|
|
||||||
COE:Message( COESTR_UDATEDSAVED .. "1.7" );
|
COE:Message(COESTR_UDATEDSAVED .. "1.7");
|
||||||
COE_Config:SetOption( COEOPT_VERSION, 1.7 );
|
COE_Config:SetOption(COEOPT_VERSION, 1.7);
|
||||||
version = COE_Config:GetSaved( COEOPT_VERSION );
|
version = COE_Config:GetSaved(COEOPT_VERSION);
|
||||||
end
|
end
|
||||||
|
|
||||||
if( version == 1.7 ) then
|
if (version == 1.7) then
|
||||||
-- fix cast order again to due to a typo
|
-- fix cast order again to due to a typo
|
||||||
-- --------------------------------------
|
-- --------------------------------------
|
||||||
COE:Fix_CastOrderLocalization();
|
COE:Fix_CastOrderLocalization();
|
||||||
|
|
||||||
COE:Message( COESTR_UDATEDSAVED .. "1.8" );
|
COE:Message(COESTR_UDATEDSAVED .. "1.8");
|
||||||
COE_Config:SetOption( COEOPT_VERSION, 1.8 );
|
COE_Config:SetOption(COEOPT_VERSION, 1.8);
|
||||||
version = COE_Config:GetSaved( COEOPT_VERSION );
|
version = COE_Config:GetSaved(COEOPT_VERSION);
|
||||||
end
|
end
|
||||||
|
|
||||||
-- fix totem set element strings
|
-- fix totem set element strings
|
||||||
-- ------------------------------
|
-- ------------------------------
|
||||||
COE:Fix_CastOrderLocalization2();
|
COE:Fix_CastOrderLocalization2();
|
||||||
|
|
||||||
COE_Config:SetOption( COEOPT_VERSION, 2.1 );
|
COE_Config:SetOption(COEOPT_VERSION, 2.1);
|
||||||
end
|
end
|
||||||
|
|||||||
+90
-88
@@ -1,18 +1,14 @@
|
|||||||
|
|
||||||
--[[ ----------------------------------------------------------------
|
--[[ ----------------------------------------------------------------
|
||||||
|
|
||||||
E N G L I S H
|
E N G L I S H
|
||||||
|
|
||||||
-------------------------------------------------------------------]]
|
-------------------------------------------------------------------]] -- Errors
|
||||||
|
|
||||||
-- Errors
|
|
||||||
-- -------
|
-- -------
|
||||||
COESTR_NOTASHAMAN = "You are not a shaman. Unloading Call Of Elements";
|
COESTR_NOTASHAMAN = "You are not a shaman. Unloading Call Of Elements";
|
||||||
COESTR_NOTOTEM = "No totem available yet";
|
COESTR_NOTOTEM = "No totem available yet";
|
||||||
COESTR_UI_NOTASSIGNED = "<No text assigned>";
|
COESTR_UI_NOTASSIGNED = "<No text assigned>";
|
||||||
COESTR_INVALIDELEMENT = "Invalid element found in totem: ";
|
COESTR_INVALIDELEMENT = "Invalid element found in totem: ";
|
||||||
|
|
||||||
|
|
||||||
-- Notifications
|
-- Notifications
|
||||||
-- --------------
|
-- --------------
|
||||||
COESTR_TOTEMWARNING = "%s expires in %d seconds";
|
COESTR_TOTEMWARNING = "%s expires in %d seconds";
|
||||||
@@ -31,7 +27,6 @@ COESTR_HEALING = "Healing %s with %s (Rank %d)";
|
|||||||
COESTR_HEALLOWERRANK = "Not enough mana. Using rank %d instead";
|
COESTR_HEALLOWERRANK = "Not enough mana. Using rank %d instead";
|
||||||
COESTR_HEALOOM = "Out of mana!";
|
COESTR_HEALOOM = "Out of mana!";
|
||||||
|
|
||||||
|
|
||||||
-- String patterns
|
-- String patterns
|
||||||
-- ----------------
|
-- ----------------
|
||||||
COESTR_SCANTOTEMS = "Totem";
|
COESTR_SCANTOTEMS = "Totem";
|
||||||
@@ -42,8 +37,8 @@ COESTR_MINUTEDURATION = "(%d%.%d%d) min";
|
|||||||
COESTR_MINUTEDURATION_INT = "(%d) min";
|
COESTR_MINUTEDURATION_INT = "(%d) min";
|
||||||
COESTR_SECDURATION = "(%d%d?) sec";
|
COESTR_SECDURATION = "(%d%d?) sec";
|
||||||
COESTR_CASTBYNAME = "%(Rank (%d)%)";
|
COESTR_CASTBYNAME = "%(Rank (%d)%)";
|
||||||
COESTR_TOTEMDAMAGE = { ".+ [crh]+its (.+ Totem) ?%u* for (%d+).*" };
|
COESTR_TOTEMDAMAGE = {".+ [crh]+its (.+ Totem) ?%u* for (%d+).*"};
|
||||||
COESTR_TOTEMHEALTH = { "(%d*) health" };
|
COESTR_TOTEMHEALTH = {"(%d*) health"};
|
||||||
COESTR_SHOCKSPELL = "(%a* Shock)";
|
COESTR_SHOCKSPELL = "(%a* Shock)";
|
||||||
COESTR_HEALINGWAVE = "Healing Wave";
|
COESTR_HEALINGWAVE = "Healing Wave";
|
||||||
COESTR_LESSERWAVE = "Lesser Healing Wave";
|
COESTR_LESSERWAVE = "Lesser Healing Wave";
|
||||||
@@ -51,6 +46,10 @@ COESTR_MINAMOUNT = "(%d*) to";
|
|||||||
COESTR_MAXAMOUNT = "to (%d*)";
|
COESTR_MAXAMOUNT = "to (%d*)";
|
||||||
COESTR_TRINKET = "^.*%[Enamored Water Spirit%].*$";
|
COESTR_TRINKET = "^.*%[Enamored Water Spirit%].*$";
|
||||||
|
|
||||||
|
-- Spell Names and IDs
|
||||||
|
-- ----------------
|
||||||
|
COESTR_TOTEMICRECALL = "Totemic Recall";
|
||||||
|
COESTR_TOTEMICRECALLID = 35;
|
||||||
|
|
||||||
-- Totem Advisor
|
-- Totem Advisor
|
||||||
-- --------------
|
-- --------------
|
||||||
@@ -62,12 +61,12 @@ COESTR_TOTEMTREMOR = "Tremor Totem";
|
|||||||
COESTR_CLEANSINGTOTEM = "Throw %s now!";
|
COESTR_CLEANSINGTOTEM = "Throw %s now!";
|
||||||
|
|
||||||
COESTR_TREMOR = {
|
COESTR_TREMOR = {
|
||||||
"Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar", "Fear",
|
"Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar",
|
||||||
"Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
|
"Fear", "Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
|
||||||
"Howl of Terror", "Intimidating Growl", "Crystalline Slumber", "Druid's Slumber"
|
"Howl of Terror", "Intimidating Growl", "Crystalline Slumber",
|
||||||
|
"Druid's Slumber"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
-- Tools
|
-- Tools
|
||||||
-- ---------
|
-- ---------
|
||||||
COESTR_TOTEMTOOLS_EARTH = "Earth";
|
COESTR_TOTEMTOOLS_EARTH = "Earth";
|
||||||
@@ -75,7 +74,6 @@ COESTR_TOTEMTOOLS_FIRE = "Fire";
|
|||||||
COESTR_TOTEMTOOLS_WATER = "Water";
|
COESTR_TOTEMTOOLS_WATER = "Water";
|
||||||
COESTR_TOTEMTOOLS_AIR = "Air";
|
COESTR_TOTEMTOOLS_AIR = "Air";
|
||||||
|
|
||||||
|
|
||||||
-- Elements
|
-- Elements
|
||||||
-- ---------
|
-- ---------
|
||||||
COESTR_ELEMENT_EARTH = "Earth";
|
COESTR_ELEMENT_EARTH = "Earth";
|
||||||
@@ -83,63 +81,61 @@ COESTR_ELEMENT_FIRE = "Fire";
|
|||||||
COESTR_ELEMENT_WATER = "Water";
|
COESTR_ELEMENT_WATER = "Water";
|
||||||
COESTR_ELEMENT_AIR = "Air";
|
COESTR_ELEMENT_AIR = "Air";
|
||||||
|
|
||||||
|
|
||||||
-- UI elements
|
-- UI elements
|
||||||
-- ------------
|
-- ------------
|
||||||
COEUI_STRINGS = {
|
COEUI_STRINGS = {
|
||||||
COE_ConfigClose = "Close";
|
COE_ConfigClose = "Close",
|
||||||
COE_ConfigTotemTabPanel = "Totem Options";
|
COE_ConfigTotemTabPanel = "Totem Options",
|
||||||
COE_ConfigHealingTabPanel = "Healing Options";
|
COE_ConfigHealingTabPanel = "Healing Options",
|
||||||
COE_ConfigDebuffTabPanel = "Debuff Options";
|
COE_ConfigDebuffTabPanel = "Debuff Options",
|
||||||
COE_ConfigTotemTotemBar = "Totem Bars";
|
COE_ConfigTotemTotemBar = "Totem Bars",
|
||||||
COE_ConfigTotemTotemOptions = "Options";
|
COE_ConfigTotemTotemOptions = "Options",
|
||||||
COE_ConfigTotemTotemSets = "Totem Sets";
|
COE_ConfigTotemTotemSets = "Totem Sets",
|
||||||
COE_OptionEnableTotemBar = "Enable Totem Bar";
|
COE_OptionEnableTotemBar = "Enable Totem Bar",
|
||||||
COE_OptionHideBackdrop = "Hide background when inactive";
|
COE_OptionHideBackdrop = "Hide background when inactive",
|
||||||
COE_OptionEnableTimers = "Enable totem timers";
|
COE_OptionEnableTimers = "Enable totem timers",
|
||||||
COE_OptionEnableTimerNotifications = "Enable notifications";
|
COE_OptionEnableTimerNotifications = "Enable notifications",
|
||||||
COE_OptionTTAlignment = "Tooltip Alignment";
|
COE_OptionTTAlignment = "Tooltip Alignment",
|
||||||
COE_OptionDisplayMode = "Anchor Button";
|
COE_OptionDisplayMode = "Anchor Button",
|
||||||
COE_OptionDisplayAlignment = "Button Alignment";
|
COE_OptionDisplayAlignment = "Button Alignment",
|
||||||
COE_OptionAdvisor = "Enable totem advisor";
|
COE_OptionAdvisor = "Enable totem advisor",
|
||||||
COE_OptionEnableSets = "Enable totem sets";
|
COE_OptionEnableSets = "Enable totem sets",
|
||||||
COE_OptionEnableAutoSwitch = "Autoswitch sets in PVP";
|
COE_OptionEnableAutoSwitch = "Autoswitch sets in PVP",
|
||||||
COE_OptionActiveSet = "Active totem set";
|
COE_OptionActiveSet = "Active totem set",
|
||||||
COE_OptionNewSet = "New set";
|
COE_OptionNewSet = "New set",
|
||||||
COE_OptionDeleteSet = "Delete set";
|
COE_OptionDeleteSet = "Delete set",
|
||||||
COE_OptionConfigureSet = "Configure set";
|
COE_OptionConfigureSet = "Configure set",
|
||||||
COE_OptionStopConfigureSet = "OK";
|
COE_OptionStopConfigureSet = "OK",
|
||||||
COE_OptionCastOrderString = "Cast Order";
|
COE_OptionCastOrderString = "Cast Order",
|
||||||
COE_OptionConfigureBar = "Configure Totems";
|
COE_OptionConfigureBar = "Configure Totems",
|
||||||
COE_OptionFixBar = "Fix totem bar positions";
|
COE_OptionFixBar = "Fix totem bar positions",
|
||||||
COE_OptionConfigureOrder = "Configure Order";
|
COE_OptionConfigureOrder = "Configure Order",
|
||||||
COE_OptionScanTotems = "Reload Totems";
|
COE_OptionScanTotems = "Reload Totems",
|
||||||
COE_OptionCurrentFrame = "Configure Bar";
|
COE_OptionCurrentFrame = "Configure Bar",
|
||||||
COE_OptionDirection = "Direction";
|
COE_OptionDirection = "Direction",
|
||||||
COE_OptionFrameMode = "Bar mode";
|
COE_OptionFrameMode = "Bar mode",
|
||||||
COE_OptionFlexCount = "Static buttons";
|
COE_OptionFlexCount = "Static buttons",
|
||||||
COE_OptionScaling = "Scaling";
|
COE_OptionScaling = "Scaling",
|
||||||
COE_OptionEnableTimerFrame = "Show separate timer frame";
|
COE_OptionEnableTimerFrame = "Show separate timer frame",
|
||||||
COE_OptionGroupBars = "Move bars as group";
|
COE_OptionGroupBars = "Move bars as group",
|
||||||
COE_OptionOverrideRank = "Rank 1 modifier";
|
COE_OptionOverrideRank = "Rank 1 modifier",
|
||||||
COE_OptionFrameTimersOnly = "Show timers ONLY in timer frame";
|
COE_OptionFrameTimersOnly = "Show timers ONLY in timer frame"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
-- Tooltips
|
-- Tooltips
|
||||||
-- ---------
|
-- ---------
|
||||||
COEUI_TOOLTIPS = {
|
COEUI_TOOLTIPS = {
|
||||||
COE_ConfigTotemTab = "Shows the totem options";
|
COE_ConfigTotemTab = "Shows the totem options",
|
||||||
COE_ConfigHealingTab = "Shows the healing options";
|
COE_ConfigHealingTab = "Shows the healing options",
|
||||||
COE_ConfigDebuffTab = "Shows the debuff options";
|
COE_ConfigDebuffTab = "Shows the debuff options",
|
||||||
COE_OptionEnableTotemBar = "Enables and shows the totem bar\nwhich holds all of your available\ntotems for quick use";
|
COE_OptionEnableTotemBar = "Enables and shows the totem bar\nwhich holds all of your available\ntotems for quick use",
|
||||||
COE_OptionHideBackdrop = "Hides the background when the mouse\nis not above the totem bar";
|
COE_OptionHideBackdrop = "Hides the background when the mouse\nis not above the totem bar",
|
||||||
COE_OptionEnableTimers = "Enables the display of\nthe remaining totem time\nshown inside the totem button";
|
COE_OptionEnableTimers = "Enables the display of\nthe remaining totem time\nshown inside the totem button",
|
||||||
COE_OptionEnableTimerNotifications = "Displays warnings when a totem\nexpires or is destroyed";
|
COE_OptionEnableTimerNotifications = "Displays warnings when a totem\nexpires or is destroyed",
|
||||||
COE_OptionAdvisor = "Displays notifications when you\nor a member of your party/raid\nhas a debuff that can be cured\nby one of your totems";
|
COE_OptionAdvisor = "Displays notifications when you\nor a member of your party/raid\nhas a debuff that can be cured\nby one of your totems",
|
||||||
COE_OptionEnableAutoSwitch = "Automatically switches to the\nclass totem set when targetting an\nenemy player";
|
COE_OptionEnableAutoSwitch = "Automatically switches to the\nclass totem set when targetting an\nenemy player",
|
||||||
COE_OptionFixBar = "Fixes the totem bar position\nto prevent dragging it accidentally";
|
COE_OptionFixBar = "Fixes the totem bar position\nto prevent dragging it accidentally",
|
||||||
COE_OptionGroupBars = "When you drag one bar,\nthe other bars will follow";
|
COE_OptionGroupBars = "When you drag one bar,\nthe other bars will follow"
|
||||||
}
|
}
|
||||||
|
|
||||||
COESTR_TRINKET_TOOLTIP = "Enamored Water Spirit";
|
COESTR_TRINKET_TOOLTIP = "Enamored Water Spirit";
|
||||||
@@ -148,31 +144,30 @@ COESTR_TRINKET_TOTEM = "Ancient Mana Spring Totem";
|
|||||||
-- Combo boxes
|
-- Combo boxes
|
||||||
-- ------------
|
-- ------------
|
||||||
COEUI_TTALIGN = {
|
COEUI_TTALIGN = {
|
||||||
{ "ANCHOR_TOPLEFT"; "Top Left" };
|
{"ANCHOR_TOPLEFT", "Top Left"}, {"ANCHOR_LEFT", "Left"},
|
||||||
{ "ANCHOR_LEFT"; "Left" };
|
{"ANCHOR_BOTTOMLEFT", "Bottom Left"}, {"ANCHOR_TOPRIGHT", "Top Right"},
|
||||||
{ "ANCHOR_BOTTOMLEFT"; "Bottom Left" };
|
{"ANCHOR_RIGHT", "Right"}, {"ANCHOR_BOTTOMRIGHT", "Bottom Right"},
|
||||||
{ "ANCHOR_TOPRIGHT"; "Top Right" };
|
{"DISABLED", "Disabled"}
|
||||||
{ "ANCHOR_RIGHT"; "Right" };
|
|
||||||
{ "ANCHOR_BOTTOMRIGHT"; "Bottom Right" };
|
|
||||||
{ "DISABLED"; "Disabled" };
|
|
||||||
}
|
}
|
||||||
|
|
||||||
COEUI_DISPLAYMODE = { "Customize", "Timers Only", "Active Set" }
|
COEUI_DISPLAYMODE = {"Customize", "Timers Only", "Active Set"}
|
||||||
|
|
||||||
COEUI_DISPLAYALIGN = { "Box", "Vertical", "Horizontal" }
|
COEUI_DISPLAYALIGN = {"Box", "Vertical", "Horizontal"}
|
||||||
|
|
||||||
COEUI_PVPSETS = { "[PVP] Druid", "[PVP] Hunter", "[PVP] Mage", "[PVP] Paladin", "[PVP] Priest",
|
COEUI_PVPSETS = {
|
||||||
"[PVP] Rogue", "[PVP] Shaman", "[PVP] Warlock", "[PVP] Warrior" }
|
"[PVP] Druid", "[PVP] Hunter", "[PVP] Mage", "[PVP] Paladin",
|
||||||
|
"[PVP] Priest", "[PVP] Rogue", "[PVP] Shaman", "[PVP] Warlock",
|
||||||
|
"[PVP] Warrior"
|
||||||
|
}
|
||||||
COEUI_DEFAULTSET = "Default";
|
COEUI_DEFAULTSET = "Default";
|
||||||
|
|
||||||
COEUI_OVERRIDERANK = { "No key", "Use SHIFT", "Use ALT", "Use CTRL" };
|
COEUI_OVERRIDERANK = {"No key", "Use SHIFT", "Use ALT", "Use CTRL"};
|
||||||
|
|
||||||
COEUI_CURRENTFRAME = { "Earth", "Fire", "Water", "Air" };
|
COEUI_CURRENTFRAME = {"Earth", "Fire", "Water", "Air"};
|
||||||
|
|
||||||
COEUI_DIRECTION = { "Up", "Down", "Left", "Right" };
|
COEUI_DIRECTION = {"Up", "Down", "Left", "Right"};
|
||||||
|
|
||||||
COEUI_FRAMEMODE = { "Closed", "Open", "Flex", "Hidden" };
|
|
||||||
|
|
||||||
|
COEUI_FRAMEMODE = {"Closed", "Open", "Flex", "Hidden"};
|
||||||
|
|
||||||
-- Key bindings
|
-- Key bindings
|
||||||
-- -------------
|
-- -------------
|
||||||
@@ -208,7 +203,6 @@ BINDING_NAME_TOTEMAIR5 = "Air Totem #5";
|
|||||||
BINDING_NAME_TOTEMAIR6 = "Air Totem #6";
|
BINDING_NAME_TOTEMAIR6 = "Air Totem #6";
|
||||||
BINDING_NAME_TOTEMAIR7 = "Air Totem #7";
|
BINDING_NAME_TOTEMAIR7 = "Air Totem #7";
|
||||||
|
|
||||||
|
|
||||||
-- Key modifiers
|
-- Key modifiers
|
||||||
-- --------------
|
-- --------------
|
||||||
COEMODIFIER_ALT = "ALT";
|
COEMODIFIER_ALT = "ALT";
|
||||||
@@ -220,20 +214,28 @@ COEMODIFIER_SHIFT_SHORT = "S";
|
|||||||
COEMODIFIER_NUMPAD = "Num Pad";
|
COEMODIFIER_NUMPAD = "Num Pad";
|
||||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||||
|
|
||||||
|
|
||||||
-- Shell commands
|
-- Shell commands
|
||||||
-- ---------------
|
-- ---------------
|
||||||
COESHELL_INTRO = "Available shell commands for Call Of Elements:";
|
COESHELL_INTRO = "Available shell commands for Call Of Elements:";
|
||||||
COESHELL_CONFIG = "'/coe' or '/coe config' - Shows the configuration dialog";
|
COESHELL_CONFIG = "'/coe' or '/coe config' - Shows the configuration dialog";
|
||||||
COESHELL_LIST = "'/coe list' - Shows this list";
|
COESHELL_LIST = "'/coe list' or '/coe help' - Shows this list";
|
||||||
COESHELL_NEXTSET = "'/coe nexset' - Switches to the next custom totem set or the default set";
|
COESHELL_NEXTSET =
|
||||||
COESHELL_PRIORSET = "'/coe priorset' - Switches to the prior custom totem set or the default set";
|
"'/coe nexset' - Switches to the next custom totem set or the default set";
|
||||||
COESHELL_SET = "'/coe set <name>' - Switches to set with the specified name. <name> is case-sensitive";
|
COESHELL_PRIORSET =
|
||||||
COESHELL_RESTARTSET = "'/coe restartset' - Next time you throw the active set, it recasts all totems";
|
"'/coe priorset' - Switches to the prior custom totem set or the default set";
|
||||||
|
COESHELL_SET =
|
||||||
|
"'/coe set <name>' - Switches to set with the specified name. <name> is case-sensitive";
|
||||||
|
COESHELL_RESTARTSET =
|
||||||
|
"'/coe restartset' - Next time you throw the active set, it recasts all totems";
|
||||||
COESHELL_RESET = "'/coe reset' - Resets all timers and the active set";
|
COESHELL_RESET = "'/coe reset' - Resets all timers and the active set";
|
||||||
COESHELL_RESETFRAMES = "'/coe resetframes' - Returns all element bars to the screen center";
|
COESHELL_RESETFRAMES =
|
||||||
COESHELL_RESETORDERING = "'/coe resetordering' - Resets the ordering of your totem bars";
|
"'/coe resetframes' - Returns all element bars to the screen center";
|
||||||
|
COESHELL_RESETORDERING =
|
||||||
|
"'/coe resetordering' - Resets the ordering of your totem bars";
|
||||||
COESHELL_RELOAD = "'/coe reload' - Reloads all totems and sets";
|
COESHELL_RELOAD = "'/coe reload' - Reloads all totems and sets";
|
||||||
COESHELL_MACRONOTE = "The following commands only work as macros dragged to your action bars:";
|
COESHELL_MACRONOTE =
|
||||||
|
"The following commands only work as macros dragged to your action bars:";
|
||||||
COESHELL_THROWSET = "'/coe throwset' - Throws the active totem set";
|
COESHELL_THROWSET = "'/coe throwset' - Throws the active totem set";
|
||||||
COESHELL_ADVISED = "'/coe advised' - Throws the next advised totem";
|
COESHELL_ADVISED = "'/coe advised' - Throws the next advised totem";
|
||||||
|
COESHELL_DEBUG =
|
||||||
|
"'/coe debug' - Toggles debug message printing (disable by default)";
|
||||||
|
|||||||
@@ -1,2 +1,7 @@
|
|||||||
# turtle-wow-call-of-elements
|
# turtle-wow-call-of-elements
|
||||||
Shaman totem addon for turtle wow. Based on https://github.com/laytya/CallOfElements, using an older version for vanilla client.
|
Shaman totem addon for turtle wow. Based on https://github.com/laytya/CallOfElements, using an older version for vanilla client.
|
||||||
|
|
||||||
|
To use the addon:
|
||||||
|
* download repo or release
|
||||||
|
* extract folder named "turtle-wow-call-of-elements-xxxx" from zip to turtle wow Interface/Addons folder path
|
||||||
|
* rename folder to "CallOfElements", make sure files are in CallOfElements folder
|
||||||
|
|||||||
Reference in New Issue
Block a user