Add files via upload
Updated totemdata.lua to ignore spellname "Totemic Recall" when building the totems.
This commit is contained in:
+141
@@ -0,0 +1,141 @@
|
||||
<!--
|
||||
|
||||
CALL OF ELEMENTS
|
||||
The All-In-One Shaman Addon
|
||||
|
||||
by Wyverex (2006)
|
||||
|
||||
|
||||
Key Bindings
|
||||
|
||||
-->
|
||||
|
||||
<Bindings>
|
||||
<!-- Configuration dialog -->
|
||||
<Binding name="COESHOWCONFIG" header="CALLOFELEMENTS">
|
||||
if( COE.Initialized ) then
|
||||
COE:ToggleConfigFrame();
|
||||
end
|
||||
</Binding>
|
||||
|
||||
<!-- Healing functions -->
|
||||
<Binding name="COEBESTHEAL">
|
||||
if( COE.Initialized ) then
|
||||
COE_Heal:BestHeal();
|
||||
end
|
||||
</Binding>
|
||||
<Binding name="COEBATTLEHEAL">
|
||||
if( COE.Initialized ) then
|
||||
COE_Heal:BattleHeal();
|
||||
end
|
||||
</Binding>
|
||||
|
||||
<!-- Throw suggested totem -->
|
||||
<Binding name="COETHROWADVISED">
|
||||
if( COE.Initialized ) then
|
||||
COE_Totem:ThrowAdvisedTotem();
|
||||
end
|
||||
</Binding>
|
||||
|
||||
<!-- Throw suggested totem -->
|
||||
<Binding name="COETHROWADVISED">
|
||||
if( COE.Initialized ) then
|
||||
COE_Totem:ThrowAdvisedTotem();
|
||||
end
|
||||
</Binding>
|
||||
|
||||
<!-- Totem sets -->
|
||||
<Binding name="COENEXTSET">
|
||||
if( COE.Initialized ) then
|
||||
COE_Totem:SwitchToNextSet();
|
||||
end
|
||||
</Binding>
|
||||
<Binding name="COETHROWSET">
|
||||
if( COE.Initialized ) then
|
||||
COE_Totem:ThrowSet();
|
||||
end
|
||||
</Binding>
|
||||
<Binding name="COERESTARTSET">
|
||||
if( COE.Initialized ) then
|
||||
COE_Totem:ResetSetCycle();
|
||||
end
|
||||
</Binding>
|
||||
|
||||
<!-- Earth totems -->
|
||||
<Binding name="TOTEMEARTH1" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Earth", 1 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMEARTH2" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Earth", 2 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMEARTH3" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Earth", 3 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMEARTH4" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Earth", 4 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMEARTH5" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Earth", 5 );
|
||||
</Binding>
|
||||
|
||||
<!-- Fire totems -->
|
||||
<Binding name="TOTEMFIRE1" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Fire", 1 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMFIRE2" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Fire", 2 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMFIRE3" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Fire", 3 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMFIRE4" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Fire", 4 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMFIRE5" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Fire", 5 );
|
||||
</Binding>
|
||||
|
||||
<!-- Water totems -->
|
||||
<Binding name="TOTEMWATER1" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 1 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMWATER2" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 2 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMWATER3" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 3 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMWATER4" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 4 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMWATER5" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 5 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMWATER6" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Water", 6 );
|
||||
</Binding>
|
||||
|
||||
<!-- Air totems -->
|
||||
<Binding name="TOTEMAIR1" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 1 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR2" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 2 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR3" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 3 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR4" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 4 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR5" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 5 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR6" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 6 );
|
||||
</Binding>
|
||||
<Binding name="TOTEMAIR7" header="CALLOFELEMENTS">
|
||||
COE_Totem:ThrowTotem( "Air", 7 );
|
||||
</Binding>
|
||||
|
||||
</Bindings>
|
||||
+1412
File diff suppressed because it is too large
Load Diff
+565
@@ -0,0 +1,565 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="COE_Config.lua"/>
|
||||
<Include file="COE_ConfigTemplates.xml"/>
|
||||
|
||||
<Frame name="COE_ConfigFrame" frameStrata="MEDIUM" parent="UIParent" hidden="true" movable="true" enableMouse="true">
|
||||
<Size>
|
||||
<AbsDimension x="416" y="480" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER" />
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnFrameLoad();
|
||||
</OnLoad>
|
||||
<OnDragStart>
|
||||
this:StartMoving();
|
||||
</OnDragStart>
|
||||
<OnDragStop>
|
||||
this:StopMovingOrSizing();
|
||||
</OnDragStop>
|
||||
</Scripts>
|
||||
<Backdrop name="COE_ConfigFrameBackdrop" bgFile="Interface\Tooltips\UI-Tooltip-Background" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
|
||||
<EdgeSize>
|
||||
<AbsValue val="16"/>
|
||||
</EdgeSize>
|
||||
<TileSize>
|
||||
<AbsValue val="16"/>
|
||||
</TileSize>
|
||||
<BackgroundInsets>
|
||||
<AbsInset left="5" right="5" top="5" bottom="5"/>
|
||||
</BackgroundInsets>
|
||||
</Backdrop>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<Texture name="COE_ConfigFrameHeader" file="Interface\ChatFrame\ChatFrameTab">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="30" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="28" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
<FontString name="COE_ConfigFrameHeaderText" inherits="GameFontNormal" text="Call Of Elements">
|
||||
<Anchors>
|
||||
<Anchor point="CENTER" relativeTo="COE_ConfigFrameHeader" relativePoint="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
|
||||
<!-- Totem tab -->
|
||||
<CheckButton name="COE_ConfigTotemTab" inherits="COE_ConfigPanelButtonTemplate" checked="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="COE_ConfigFrame" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-8" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<NormalTexture file="Interface\Icons\INV_Misc_Idol_03.blp"/>
|
||||
<PushedTexture file="Interface\Icons\INV_Misc_Idol_03.blp"/>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="COE_ConfigTotemTabPanel" inherits="COE_ConfigPanelTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="COE_ConfigTotemTab" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-2" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Frames>
|
||||
<!-- master switch for the totem bar -->
|
||||
<CheckButton name="COE_OptionEnableTotemBar" inherits="COE_ConfigCheckButtonTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="$parentTitleBox" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<!-- sub panel buttons -->
|
||||
<CheckButton name="COE_ConfigTotemTotemOptions" inherits="COE_ConfigSubPanelButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="CENTER" relativeTo="$parentTitleBox" relativePoint="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-70"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_ConfigTotemTotemBar" inherits="COE_ConfigSubPanelButtonTemplate" checked="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="COE_ConfigTotemTotemOptions" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_ConfigTotemTotemSets" inherits="COE_ConfigSubPanelButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_ConfigTotemTotemOptions" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="5" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<!-- sub panels -->
|
||||
<Frame name="COE_ConfigTotemTotemBarPanel" inherits="COE_ConfigSubPanelTemplate">
|
||||
<Frames>
|
||||
<CheckButton name="COE_OptionFixBar" inherits="COE_ConfigCheckButtonTemplate" id="12">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-8"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_OptionGroupBars" inherits="COE_ConfigCheckButtonTemplate" id="22">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionFixBar" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<Button name="COE_OptionTTAlignment" inherits="COE_ConfigComboBoxTemplate" id="5">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionGroupBars" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionDisplayMode" inherits="COE_ConfigComboBoxTemplate" id="6">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionTTAlignment" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionConfigureBar" inherits="COE_ConfigSetButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionDisplayMode" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:ConfigureBar();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<Button name="COE_OptionConfigureOrder" inherits="COE_ConfigSetButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionConfigureBar" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="10" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:ConfigureOrder();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
|
||||
<Button name="COE_OptionCurrentFrame" inherits="COE_ConfigComboBoxTemplate" id="15">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionConfigureBar" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-8" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionDirection" inherits="COE_ConfigComboBoxTemplate" id="16">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionCurrentFrame" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionFrameMode" inherits="COE_ConfigComboBoxTemplate" id="17">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionDirection" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Slider name="COE_OptionFlexCount" inherits="COE_ConfigSliderTemplate" id="18">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionFrameMode" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="12" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Slider>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<Frame name="COE_ConfigTotemTotemOptionsPanel" inherits="COE_ConfigSubPanelTemplate" hidden="true">
|
||||
<Frames>
|
||||
<CheckButton name="COE_OptionEnableTimers" inherits="COE_ConfigCheckButtonTemplate" id="3">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-8"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_OptionEnableTimerNotifications" inherits="COE_ConfigCheckButtonTemplate" id="4">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionEnableTimers" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_OptionEnableTimerFrame" inherits="COE_ConfigCheckButtonTemplate" id="20">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionEnableTimerNotifications" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<Button name="COE_OptionDisplayAlignment" inherits="COE_ConfigComboBoxTemplate" id="7">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionEnableTimerFrame" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<CheckButton name="COE_OptionFrameTimersOnly" inherits="COE_ConfigCheckButtonTemplate" id="23">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionDisplayAlignment" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-8"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<CheckButton name="COE_OptionAdvisor" inherits="COE_ConfigCheckButtonTemplate" id="8">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionFrameTimersOnly" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-15"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
|
||||
<Button name="COE_OptionOverrideRank" inherits="COE_ConfigComboBoxTemplate" id="21">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionAdvisor" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
|
||||
<Button name="COE_OptionScanTotems" inherits="COE_ConfigSetButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionOverrideRank" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-30"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Totem:Rescan();
|
||||
COE:Message( COESTR_TOTEMSRELOADED );
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
|
||||
<Slider name="COE_OptionScaling" inherits="COE_ConfigSliderTemplate" id="19">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionScanTotems" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnUpdate>
|
||||
if( this.tooltipShown ) then
|
||||
local value = math.floor( COE_Config:GetSaved( COEOPT_SCALING ) * 100 ) / 100;
|
||||
GameTooltip:SetText( value );
|
||||
end
|
||||
</OnUpdate>
|
||||
<OnEnter>
|
||||
GameTooltip:SetOwner( this, "TOPRIGHT" );
|
||||
local value = math.floor( COE_Config:GetSaved( COEOPT_SCALING ) * 100 ) / 100;
|
||||
GameTooltip:SetText( value );
|
||||
this.tooltipShown = true;
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
GameTooltip:Hide();
|
||||
this.tooltipShown = false;
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
</Slider>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<Frame name="COE_ConfigTotemTotemSetsPanel" inherits="COE_ConfigSubPanelTemplate" hidden="true">
|
||||
<Frames>
|
||||
<CheckButton name="COE_OptionEnableSets" inherits="COE_ConfigCheckButtonTemplate" id="9">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="-8"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COE_OptionEnableAutoSwitch" inherits="COE_ConfigCheckButtonTemplate" id="11">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionEnableSets" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<Button name="COE_OptionActiveSet" inherits="COE_ConfigComboBoxTemplate" id="10">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionEnableAutoSwitch" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionConfigureSet" inherits="COE_ConfigSetButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionActiveSet" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:ConfigureSet();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<Button name="COE_OptionDeleteSet" inherits="COE_ConfigSetButtonTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionConfigureSet" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="10" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:DeleteTotemSet();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<Button name="COE_OptionNewSet" inherits="COE_ConfigSetButtonTemplate" disabled="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionConfigureSet" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:NewTotemSet();
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<EditBox name="COE_OptionSetName" inherits="COE_ConfigEditTemplate" letters="20">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionNewSet" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="20" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnTextChanged>
|
||||
COE_Config:NewSetTextChanged();
|
||||
</OnTextChanged>
|
||||
</Scripts>
|
||||
</EditBox>
|
||||
|
||||
<Button name="COE_OptionCastOrder1" inherits="COE_ConfigOrderTemplate" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionNewSet" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="60" y="-10"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionCastOrder2" inherits="COE_ConfigOrderTemplate" id="2">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionCastOrder1" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionCastOrder3" inherits="COE_ConfigOrderTemplate" id="3">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionCastOrder2" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Button name="COE_OptionCastOrder4" inherits="COE_ConfigOrderTemplate" id="4">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionCastOrder3" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Button>
|
||||
<Frame name="COE_OptionCastOrderString">
|
||||
<Size>
|
||||
<AbsDimension x="100" y="16"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_OptionCastOrder2" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="15" y="-13"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="$parentText" inherits="GameFontNormal"/>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( getglobal( this:GetName() .. "Text" ) );
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<!-- Healing tab -->
|
||||
<CheckButton name="COE_ConfigHealingTab" inherits="COE_ConfigPanelButtonTemplate" hidden="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_ConfigTotemTab" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<NormalTexture file="Interface\Icons\Spell_Nature_HealingWaveGreater.blp"/>
|
||||
<PushedTexture file="Interface\Icons\Spell_Nature_HealingWaveGreater.blp"/>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="COE_ConfigHealingTabPanel" hidden="true" inherits="COE_ConfigPanelTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="COE_ConfigTotemTab" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-2" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Frame>
|
||||
|
||||
<!-- Debuff tab -->
|
||||
<CheckButton name="COE_ConfigDebuffTab" inherits="COE_ConfigPanelButtonTemplate" hidden="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT" relativeTo="COE_ConfigHealingTab" relativePoint="BOTTOMLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<NormalTexture file="Interface\Icons\Spell_Nature_NullifyPoison.blp"/>
|
||||
<PushedTexture file="Interface\Icons\Spell_Nature_NullifyPoison.blp"/>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="COE_ConfigDebuffTabPanel" hidden="true" inherits="COE_ConfigPanelTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPRIGHT" relativeTo="COE_ConfigTotemTab" relativePoint="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-2" y="3"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Frame>
|
||||
|
||||
<!-- close button -->
|
||||
<Button name="COE_ConfigClose" inherits="GameMenuButtonTemplate" text="Close">
|
||||
<Anchors>
|
||||
<Anchor point="CENTER" relativePoint="BOTTOM">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="20"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetText( COEUI_STRINGS[this:GetName()] );
|
||||
</OnLoad>
|
||||
<OnClick>
|
||||
COE_Config:CloseDialog();
|
||||
PlaySound( "igMainMenuOption" );
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
</Ui>
|
||||
@@ -0,0 +1,340 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
<Script file="COE_Config.lua"/>
|
||||
|
||||
<!-- config panel template -->
|
||||
<Frame name="COE_ConfigPanelTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="360" y="440"/>
|
||||
</Size>
|
||||
<Backdrop name="$parentBackdrop" bgFile="Interface\Tooltips\UI-Tooltip-Background" edgeFile="Interface\Tooltips\UI-Tooltip-Border" tile="true">
|
||||
<EdgeSize>
|
||||
<AbsValue val="16"/>
|
||||
</EdgeSize>
|
||||
<TileSize>
|
||||
<AbsValue val="16"/>
|
||||
</TileSize>
|
||||
<BackgroundInsets>
|
||||
<AbsInset left="5" right="5" top="5" bottom="5"/>
|
||||
</BackgroundInsets>
|
||||
</Backdrop>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor( 1, 1, 1 );
|
||||
this:SetBackdropColor( 0.1, 0.1, 0.1 );
|
||||
COE_Config:OnConfigElementLoad( getglobal( this:GetName().."TitleBoxText" ) );
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frames>
|
||||
<Frame name="$parentTitleBox" inherits="OptionFrameBoxTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="5" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="BOTTOMRIGHT" relativePoint="TOPRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="-45"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="$parentText" inherits="GameFontNormalLarge" text="Blah">
|
||||
<Anchors>
|
||||
<Anchor point="TOP" relativeTo="$parentTitleBox" relativePoint="TOP">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="BOTTOM" relativeTo="$parentTitleBox" relativePoint="BOTTOM">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0" />
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
<!-- config sub panel template -->
|
||||
<Frame name="COE_ConfigSubPanelTemplate" inherits="OptionFrameBoxTemplate" virtual="true">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="5" y="-115"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
<Anchor point="BOTTOMRIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="-5" y="5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetBackdropBorderColor( 0.5, 0.5, 0.5 );
|
||||
this:SetBackdropColor( 0.1, 0.1, 0.1 );
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<!-- config tab button -->
|
||||
<CheckButton name="COE_ConfigPanelButtonTemplate" inherits="ActionButtonTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="40" y="40"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:OnTabButtonClick();
|
||||
</OnClick>
|
||||
<OnEnter>
|
||||
COE_Config:OnConfigElementEnter();
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
COE_Config:OnConfigElementLeave();
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- config sub tab button -->
|
||||
<CheckButton name="COE_ConfigSubPanelButtonTemplate" inherits="GameMenuButtonTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="100" y="30"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( this );
|
||||
</OnLoad>
|
||||
<OnClick>
|
||||
COE_Config:OnSubTabButtonClick( this );
|
||||
</OnClick>
|
||||
<OnEnter>
|
||||
COE_Config:OnConfigElementEnter();
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
COE_Config:OnConfigElementLeave();
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- check button template -->
|
||||
<CheckButton name="COE_ConfigCheckButtonTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="32" y="32"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( getglobal( this:GetName() .. "Text" ) );
|
||||
</OnLoad>
|
||||
<OnShow>
|
||||
COE_Config:OnCheckBoxShow();
|
||||
</OnShow>
|
||||
<OnClick>
|
||||
COE_Config:OnCheckBoxClick();
|
||||
</OnClick>
|
||||
<OnEnter>
|
||||
COE_Config:OnConfigElementEnter();
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
COE_Config:OnConfigElementLeave();
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="$parentText" inherits="GameFontNormalSmall" text="">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<NormalTexture file="Interface\Buttons\UI-CheckBox-Up"/>
|
||||
<PushedTexture file="Interface\Buttons\UI-CheckBox-Down"/>
|
||||
<HighlightTexture file="Interface\Buttons\UI-CheckBox-Highlight" alphaMode="ADD"/>
|
||||
<CheckedTexture file="Interface\Buttons\UI-CheckBox-Check"/>
|
||||
<DisabledCheckedTexture file="Interface\Buttons\UI-CheckBox-Check-Disabled"/>
|
||||
</CheckButton>
|
||||
|
||||
<Frame name="COE_ConfigComboBoxTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="180" y="20"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( getglobal( this:GetName() .. "LeftText" ) );
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
<Frames>
|
||||
<Button name="$parentCB" inherits="UIDropDownMenuTemplate">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-8" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetID( this:GetParent():GetID() );
|
||||
</OnLoad>
|
||||
<OnShow>
|
||||
COE_Config:OnComboBoxShow();
|
||||
</OnShow>
|
||||
<OnEnter>
|
||||
COE_Config:OnConfigElementEnter();
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
COE_Config:OnConfigElementLeave();
|
||||
</OnLeave>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<Frame name="$parentLeft">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="20"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT" relativeTo="$parentCB" relativePoint="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="120" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Layers>
|
||||
<Layer level="OVERLAY">
|
||||
<FontString name="$parentText" inherits="GameFontNormal" text="">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</Frame>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
<!-- totem set config button -->
|
||||
<CheckButton name="COE_ConfigSetButtonTemplate" inherits="GameMenuButtonTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="150" y="30"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( this );
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</CheckButton>
|
||||
|
||||
<!-- totem set edit box -->
|
||||
<EditBox name="COE_ConfigEditTemplate" historyLines="0" multiline="false" autoFocus="false" numeric="false" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="124" y="32"/>
|
||||
</Size>
|
||||
<Layers>
|
||||
<Layer level="BACKGROUND">
|
||||
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Left">
|
||||
<Size>
|
||||
<AbsDimension x="70" y="32"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-8" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
<Texture file="Interface\ChatFrame\UI-ChatInputBorder-Right">
|
||||
<Size>
|
||||
<AbsDimension x="70" y="32"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="8" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<FontString inherits="ChatFontNormal"/>
|
||||
</EditBox>
|
||||
|
||||
<!-- cast order template -->
|
||||
<Button name="COE_ConfigOrderTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="120" y="25"/>
|
||||
</Size>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<FontString name="$parentText" justifyH="LEFT" inherits="ChatFontNormal">
|
||||
<Anchors>
|
||||
<Anchor point="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="10" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
<Frames>
|
||||
<Button name="$parentMoveDown" inherits="UIPanelScrollDownButtonTemplate" hidden="false">
|
||||
<Anchors>
|
||||
<Anchor point="RIGHT">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:DoCastOrder( false );
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
<Button name="$parentMoveUp" inherits="UIPanelScrollUpButtonTemplate" hidden="false">
|
||||
<Anchors>
|
||||
<Anchor point="RIGHT" relativeTo="$parentMoveDown" relativePoint="LEFT">
|
||||
<Offset>
|
||||
<AbsDimension x="-2" y="0"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnClick>
|
||||
COE_Config:DoCastOrder( true );
|
||||
</OnClick>
|
||||
</Scripts>
|
||||
</Button>
|
||||
</Frames>
|
||||
</Button>
|
||||
|
||||
<!-- cast order template -->
|
||||
<Slider name="COE_ConfigSliderTemplate" inherits="OptionsSliderTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="130" y="15"/>
|
||||
</Size>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Config:OnConfigElementLoad( getglobal( this:GetName() .. "Text" ) );
|
||||
</OnLoad>
|
||||
<OnShow>
|
||||
COE_Config:OnSliderShow();
|
||||
</OnShow>
|
||||
<OnValueChanged>
|
||||
COE_Config:OnSliderChange();
|
||||
</OnValueChanged>
|
||||
</Scripts>
|
||||
</Slider>
|
||||
|
||||
</Ui>
|
||||
+356
@@ -0,0 +1,356 @@
|
||||
--[[
|
||||
|
||||
CALL OF ELEMENTS
|
||||
The All-In-One Shaman Addon
|
||||
|
||||
by Wyverex (2006)
|
||||
|
||||
Healing Module
|
||||
]]
|
||||
|
||||
if( not COE_Heal ) then
|
||||
COE_Heal = {};
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE_Heal.Thresholds stores different healing thresholds
|
||||
|
||||
HealingNeeded - A target is only healed if it has less than
|
||||
this health ratio
|
||||
|
||||
OverrideTarget - If a friendly target is active and a heal is
|
||||
attempted, this target is only healed if no party/raid
|
||||
member is below this health ration threshold
|
||||
-------------------------------------------------------------------]]
|
||||
COE_Heal["Thresholds"] = { HealingNeeded = 0.85, OverrideTarget = 0.5 };
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:Init
|
||||
|
||||
PURPOSE: Registers events
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:Init()
|
||||
|
||||
-- addon loaded?
|
||||
-- --------------
|
||||
if( not COE.Initialized ) then
|
||||
return;
|
||||
end
|
||||
|
||||
this:RegisterEvent( "PLAYER_ENTERING_WORLD" );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:OnEvent
|
||||
|
||||
PURPOSE: Handles In-Game events
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:OnEvent( event )
|
||||
|
||||
if( event == "PLAYER_ENTERING_WORLD" ) then
|
||||
-- load healing spells
|
||||
-- --------------------
|
||||
COE:ScanHealingSpells();
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
--[[ =============================================================================================
|
||||
|
||||
P U B L I C H E A L I N G F U N C T I O N S
|
||||
|
||||
================================================================================================]]
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:BestHeal
|
||||
|
||||
PURPOSE: Determines the party/raid member with the lowest
|
||||
health ratio and attempts to heal him with the best
|
||||
possible heal spell but still tries to be as mana
|
||||
efficient as possible
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:BestHeal()
|
||||
|
||||
COE_Heal:Heal( "best" );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:BattleHeal
|
||||
|
||||
PURPOSE: Determines the party/raid member with the lowest
|
||||
health ratio and attempts to heal him with the heal spell
|
||||
that has the shortest possible cast time but still heals
|
||||
him a good amount.
|
||||
If Nature's Swiftness is active, it uses BestHeal instead
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:BattleHeal()
|
||||
|
||||
COE_Heal:Heal( "battle" );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:Heal
|
||||
|
||||
PURPOSE: Performs the healing logic
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:Heal( type )
|
||||
|
||||
-- first determine the target to be healed
|
||||
-- ----------------------------------------
|
||||
local target = COE_Heal:DetermineHealTarget();
|
||||
|
||||
if( target.ratio > COE_Heal.Thresholds.HealingNeeded ) then
|
||||
-- no healing needed
|
||||
-- -------------------
|
||||
COE:Message( COESTR_NOHEALING );
|
||||
return;
|
||||
end
|
||||
|
||||
COE:DebugMessage( "Attempting to heal " .. target.target .. " with health ratio: " .. target.ratio ..
|
||||
" (missing: " .. target.max - target.current .. ")" );
|
||||
|
||||
-- then determine the right spell and rank to use
|
||||
-- -----------------------------------------------
|
||||
local id, spell, rank;
|
||||
if( type == "best" ) then
|
||||
id, spell, rank = COE_Heal:DetermineBestSpell( COE.HealData.Sorted, target.max - target.current );
|
||||
else
|
||||
id, spell, rank = COE_Heal:DetermineBattleSpell( target.max - target.current );
|
||||
end
|
||||
|
||||
if( not id ) then
|
||||
return;
|
||||
end
|
||||
|
||||
COE:DebugMessage( "Using " .. spell .. " (Rank " .. rank .. ")" );
|
||||
|
||||
-- is the spell usable?
|
||||
-- ---------------------
|
||||
local start, duration = GetSpellCooldown( id, BOOKTYPE_SPELL );
|
||||
if( start > 0 or duration > 0 ) then
|
||||
COE:Message( spell .. COESTR_HEALCOOLDOWN );
|
||||
return;
|
||||
end
|
||||
|
||||
-- is the target in range?
|
||||
-- ------------------------
|
||||
|
||||
-- cast spell
|
||||
-- -----------
|
||||
COE:Message( string.format( COESTR_HEALING, UnitName( target.target ), spell, rank ) );
|
||||
CastSpell( id, BOOKTYPE_SPELL );
|
||||
SpellTargetUnit( target.target );
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ =============================================================================================
|
||||
|
||||
H E A L I N G L O G I C
|
||||
|
||||
================================================================================================]]
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:DetermineHealTarget
|
||||
|
||||
PURPOSE: Determines the party/raid member with
|
||||
the lowest health ratio which can also be the player himself
|
||||
If a friendly non-party/non-raid target is active,
|
||||
it will return this target instead, if no party/raid
|
||||
member falls below the OverrideTarget threshold
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:DetermineHealTarget()
|
||||
|
||||
local toBeHealed = { target = nil, ratio = 1.0, current = 0, max = 0 };
|
||||
|
||||
-- first check the player
|
||||
-- -----------------------
|
||||
local curHealth = UnitHealth( "player" );
|
||||
local maxHealth = UnitHealthMax( "player" )
|
||||
local curRatio = curHealth / maxHealth;
|
||||
|
||||
toBeHealed.target = "player";
|
||||
toBeHealed.ratio = curRatio;
|
||||
toBeHealed.current = curHealth;
|
||||
toBeHealed.max = maxHealth;
|
||||
|
||||
-- then check the party
|
||||
-- ---------------------
|
||||
local i;
|
||||
for i = 1, GetNumPartyMembers() do
|
||||
curHealth = UnitHealth( "party" .. i );
|
||||
maxHealth = UnitHealthMax( "party" .. i )
|
||||
curRatio = curHealth / maxHealth;
|
||||
|
||||
if( curRatio < toBeHealed.ratio and curHealth ~= 0 ) then
|
||||
toBeHealed.target = "party" .. i;
|
||||
toBeHealed.ratio = curRatio;
|
||||
toBeHealed.current = curHealth;
|
||||
toBeHealed.max = maxHealth;
|
||||
end
|
||||
end
|
||||
|
||||
-- finally check the raid
|
||||
-- -----------------------
|
||||
for i = 1, GetNumRaidMembers() do
|
||||
curHealth = UnitHealth( "raid" .. i );
|
||||
maxHealth = UnitHealthMax( "raid" .. i )
|
||||
curRatio = curHealth / maxHealth;
|
||||
|
||||
if( curRatio < toBeHealed.ratio and curHealth ~= 0 ) then
|
||||
toBeHealed.target = "raid" .. i;
|
||||
toBeHealed.ratio = curRatio;
|
||||
toBeHealed.current = curHealth;
|
||||
toBeHealed.max = maxHealth;
|
||||
end
|
||||
end
|
||||
|
||||
-- do we have a friendly target?
|
||||
-- ------------------------------
|
||||
if( UnitExists( "target" ) and UnitIsFriend( "player", "target" ) ) then
|
||||
local _,class = UnitClass( "target" );
|
||||
local scale = ( COE.DefClassHealth[class].L60 - COE.DefClassHealth[class].L1 ) / 59;
|
||||
|
||||
if( UnitInParty( "target" ) or UnitInRaid( "target" ) ) then
|
||||
curHealth = UnitHealth( "target" );
|
||||
maxHealth = UnitHealthMax( "target" );
|
||||
else
|
||||
-- estimate the target's real health
|
||||
-- ----------------------------------
|
||||
maxHealth = scale * UnitLevel( "target" ) + COE.DefClassHealth[class].L1;
|
||||
curHealth = maxHealth * UnitHealth( "target" ) / 100;
|
||||
COE:DebugMessage( curHealth .. " / " .. maxHealth );
|
||||
end
|
||||
curRatio = curHealth / maxHealth;
|
||||
|
||||
if( curRatio < toBeHealed.ratio and curHealth ~= 0 ) then
|
||||
-- if target is party or raid member heal it
|
||||
-- and don't care about the override threshold.
|
||||
-- the player supposedly knows what he's doing
|
||||
-- ---------------------------------------------
|
||||
if( UnitInParty( "target" ) or UnitInRaid( "target" ) ) then
|
||||
toBeHealed.target = "target";
|
||||
toBeHealed.ratio = curRatio;
|
||||
toBeHealed.current = curHealth;
|
||||
toBeHealed.max = maxHealth;
|
||||
|
||||
else
|
||||
-- only heal the target if no party or raid member
|
||||
-- is below the override threshold
|
||||
-- ------------------------------------------------
|
||||
if( toBeHealed.ratio > COE_Heal.Thresholds.OverrideTarget ) then
|
||||
COE:DebugMessage( curHealth .. "/" .. maxHealth );
|
||||
toBeHealed.target = "target";
|
||||
toBeHealed.ratio = curRatio;
|
||||
toBeHealed.current = curHealth;
|
||||
toBeHealed.max = maxHealth;
|
||||
else
|
||||
COE:DebugMessage( "Overriding target due to OverrideTarget threshold" );
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
-- round ratio to 2 digits
|
||||
-- ------------------------
|
||||
toBeHealed.ratio = math.floor( toBeHealed.ratio * 100 ) / 100;
|
||||
|
||||
return toBeHealed;
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:DetermineBestSpell
|
||||
|
||||
PURPOSE: Determines the the spell to be used to heal possibly
|
||||
healmount of health but uses least possible mana
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:DetermineBestSpell( spelltable, healamount )
|
||||
|
||||
local lowerRank = false;
|
||||
local i, spell;
|
||||
for i = table.getn( spelltable ), 1, -1 do
|
||||
spell = spelltable[i];
|
||||
local avg = spell.AvgAmount;
|
||||
|
||||
if( avg <= healamount ) then
|
||||
-- found a suitable spell
|
||||
-- do we have enough mana?
|
||||
-- ------------------------
|
||||
if( UnitMana( "player" ) < spell.Mana ) then
|
||||
lowerRank = true;
|
||||
else
|
||||
if( lowerRank ) then
|
||||
COE:Message( string.format( COESTR_HEALLOWERRANK, spell.Rank ) );
|
||||
end
|
||||
return spell.SpellID, spell.Type, spell.Rank;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if( lowerRank ) then
|
||||
-- out of mana
|
||||
-- ------------
|
||||
COE:Message( COESTR_HEALOOM );
|
||||
return nil;
|
||||
end
|
||||
|
||||
-- if we got here, the target is below threshold but misses
|
||||
-- less health than our rank 1 spell can heal at minimum
|
||||
-- use rank 1 explicitly, we want to heal after all...
|
||||
-- ---------------------------------------------------------
|
||||
spell = spelltable[1];
|
||||
|
||||
if( UnitMana( "player" ) < spell.Mana ) then
|
||||
-- out of mana
|
||||
-- ------------
|
||||
COE:Message( COESTR_HEALOOM );
|
||||
return nil;
|
||||
else
|
||||
return spell.SpellID, spell.Type, 1;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE_Heal:DetermineBattleSpell
|
||||
|
||||
PURPOSE: Determines the the spell to be used to heal possibly
|
||||
healmount of health but uses the least casting time
|
||||
possible. That is, we use Lesser Healing Wave whenever
|
||||
possible
|
||||
If Nature's Swiftness is active, switch to
|
||||
DetermineBestSpell instead to receive most out of our heal
|
||||
-------------------------------------------------------------------]]
|
||||
function COE_Heal:DetermineBattleSpell( healamount )
|
||||
|
||||
-- do we possess the lesser wave?
|
||||
-- -------------------------------
|
||||
if( table.getn( COE.HealData.Lesser ) == 0 ) then
|
||||
return COE_Heal:DetermineBestSpell( COE.HealData.Sorted, healamount );
|
||||
end
|
||||
|
||||
-- check for nature's swiftness
|
||||
-- -----------------------------
|
||||
|
||||
-- use lesser healing wave
|
||||
-- ------------------------
|
||||
return COE_Heal:DetermineBestSpell( COE.HealData.Lesser, healamount );
|
||||
|
||||
end
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
<script file="COE_HealData.lua"/>
|
||||
<script file="COE_Heal.lua"/>
|
||||
|
||||
<!-- Invisible HealFrame for script loading -->
|
||||
<Frame name="COEHealFrame" frameStrata="LOW" enableMouse="false" hidden="true">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Heal:Init();
|
||||
</OnLoad>
|
||||
<OnEvent>
|
||||
COE_Heal:OnEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
|
||||
</Ui>
|
||||
@@ -0,0 +1,171 @@
|
||||
--[[
|
||||
|
||||
CALL OF ELEMENTS
|
||||
The All-In-One Shaman Addon
|
||||
|
||||
by Wyverex (2006)
|
||||
|
||||
Healing Module Data
|
||||
]]
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.HealData contains a list of all heal spells that the
|
||||
player possesses
|
||||
-------------------------------------------------------------------]]
|
||||
COE["HealData"] = {};
|
||||
COE.HealData["Wave"] = { };
|
||||
COE.HealData["Lesser"] = { };
|
||||
COE.HealData["Sorted"] = {};
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.DefClassHealth contains a an estimation of average player
|
||||
health by class. Stolen directly from PaladinAssistant :)
|
||||
Shaman added with a first estimation
|
||||
-------------------------------------------------------------------]]
|
||||
COE["DefClassHealth"] = {
|
||||
["WARRIOR"] = { L1=30, L60=4100 },
|
||||
["SHAMAN"] = { L1=30, L60=3500 },
|
||||
["ROGUE"] = { L1=30, L60=3100 },
|
||||
["HUNTER"] = { L1=30, L60=3100 },
|
||||
["DRUID"] = { L1=30, L60=3100 },
|
||||
["WARLOCK"] = { L1=30, L60=2300 },
|
||||
["MAGE"] = { L1=30, L60=2200 },
|
||||
["PRIEST"] = { L1=30, L60=2100 }
|
||||
};
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:CreateHealingSpell
|
||||
|
||||
PURPOSE: Creates a new healing spell object with default values
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:CreateHealingSpell()
|
||||
|
||||
return { SpellID = 0, Type = "", Rank = 0, Mana = 0, MinAmount = 0,
|
||||
MaxAmount = 0, AvgAmount = 0 };
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:LocalizedSpell
|
||||
|
||||
PURPOSE: Returns the english name for a healing spell
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:LocalizedSpell( spellname )
|
||||
|
||||
if( spellname == COESTR_HEALINGWAVE ) then
|
||||
return "Wave";
|
||||
elseif( spellname == COESTR_LESSERWAVE ) then
|
||||
return "Lesser";
|
||||
else
|
||||
return spellname;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COEAvgHealComparator
|
||||
|
||||
PURPOSE: Comparator for sorting the healing spells for BestHeal
|
||||
Spells are sorted by average amount of healing
|
||||
-------------------------------------------------------------------]]
|
||||
function COEAvgHealComparator( x, y )
|
||||
|
||||
return x.AvgAmount < y.AvgAmount;
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:ScanHealingSpells
|
||||
|
||||
PURPOSE: Scans the spellbook for available healing spells and
|
||||
populates the COE.HealData list
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:ScanHealingSpells()
|
||||
|
||||
COE:DebugMessage( "Scanning Healing Spells..." );
|
||||
|
||||
-- delete existing healing spells
|
||||
-- -------------------------------
|
||||
COE.HealData = {};
|
||||
COE.HealData.Wave = { };
|
||||
COE.HealData.Lesser = { };
|
||||
COE.HealData.Sorted = {};
|
||||
|
||||
-- iterate over all spells in the spellbook
|
||||
-- -----------------------------------------
|
||||
local i = 1;
|
||||
while true do
|
||||
|
||||
local SpellName, SpellRank = GetSpellName( i, BOOKTYPE_SPELL );
|
||||
if not SpellName then
|
||||
do break end;
|
||||
end
|
||||
|
||||
-- is this a healing spell?
|
||||
-- -------------------------
|
||||
if( string.find( SpellName, COESTR_HEALINGWAVE ) ~= nil or
|
||||
string.find( SpellName, COESTR_LESSERWAVE ) ~= nil ) then
|
||||
|
||||
local valid = true;
|
||||
local heal = COE:CreateHealingSpell();
|
||||
heal.SpellID = i;
|
||||
heal.Type = SpellName;
|
||||
|
||||
-- extract mana cost and amount of healing from the tooltip
|
||||
-- ---------------------------------------------------------
|
||||
COETotemTT:SetSpell( i, BOOKTYPE_SPELL );
|
||||
|
||||
local text = COETotemTTTextLeft2:GetText();
|
||||
local _,_,value = string.find( text, COESTR_TOTEMMANA );
|
||||
if( value ) then
|
||||
heal.Mana = tonumber( value );
|
||||
else
|
||||
valid = false;
|
||||
end
|
||||
|
||||
text = COETotemTTTextLeft4:GetText();
|
||||
_,_,value = string.find( text, COESTR_MINAMOUNT );
|
||||
if( value ) then
|
||||
heal.MinAmount = tonumber( value );
|
||||
else
|
||||
valid = false;
|
||||
end
|
||||
|
||||
_,_,value = string.find( text, COESTR_MAXAMOUNT );
|
||||
if( value ) then
|
||||
heal.MaxAmount = tonumber( value );
|
||||
else
|
||||
valid = false;
|
||||
end
|
||||
|
||||
-- valid spell?
|
||||
-- -------------
|
||||
if( valid ) then
|
||||
heal.AvgAmount = heal.MinAmount + (heal.MaxAmount - heal.MinAmount) / 2;
|
||||
|
||||
local spell = COE:LocalizedSpell( SpellName );
|
||||
table.insert( COE.HealData[spell], heal );
|
||||
table.insert( COE.HealData.Sorted, heal );
|
||||
|
||||
heal.Rank = table.getn( COE.HealData[spell] );
|
||||
|
||||
COE:DebugMessage( "Found healing spell: " .. SpellName .. " (Rank " .. table.getn( COE.HealData[spell] ) .. ")" );
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
i = i + 1;
|
||||
|
||||
end
|
||||
|
||||
-- sort the list for BestHeal
|
||||
-- ---------------------------
|
||||
table.sort( COE.HealData.Sorted, COEAvgHealComparator );
|
||||
|
||||
end
|
||||
+283
@@ -0,0 +1,283 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
<script file="COE_TotemData.lua"/>
|
||||
<script file="COE_TotemVisual.lua"/>
|
||||
<script file="COE_TotemLogic.lua"/>
|
||||
|
||||
<!-- Template for the totem buttons -->
|
||||
<CheckButton name="COETotemButtonTemplate" inherits="ActionButtonTemplate" virtual="true">
|
||||
<Size>
|
||||
<AbsDimension x="36" y="36"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:OnTotemButtonLoad();
|
||||
</OnLoad>
|
||||
<OnEvent>
|
||||
COE_Totem:OnTotemButtonEvent( event );
|
||||
</OnEvent>
|
||||
<OnClick>
|
||||
COE_Totem:OnTotemButtonClick();
|
||||
</OnClick>
|
||||
<OnEnter>
|
||||
COE_Totem:OnEnterTotemButton();
|
||||
</OnEnter>
|
||||
<OnLeave>
|
||||
COE_Totem:OnLeaveTotemButton();
|
||||
</OnLeave>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateTotemButton( arg1 );
|
||||
</OnUpdate>
|
||||
<OnDragStart>
|
||||
COE_Totem:ButtonStartDrag();
|
||||
</OnDragStart>
|
||||
<OnDragStop>
|
||||
COE_Totem:ButtonStopDrag();
|
||||
</OnDragStop>
|
||||
</Scripts>
|
||||
<Layers>
|
||||
<Layer level="ARTWORK">
|
||||
<Texture name="$parentOverlayTex" file="Interface\Tooltips\UI-Tooltip-Background" hidden="true">
|
||||
<Size>
|
||||
<AbsDimension x="34" y="16"/>
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
</Texture>
|
||||
</Layer>
|
||||
<Layer level="OVERLAY">
|
||||
<FontString name="$parentText" inherits="GameFontNormalLarge" text="">
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="0" y="-5"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
<Color r="1" g="1" b="1"/>
|
||||
</FontString>
|
||||
</Layer>
|
||||
</Layers>
|
||||
</CheckButton>
|
||||
|
||||
|
||||
<!-- Totem EarthFrame -->
|
||||
<Frame name="COEEarthFrame" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="-75" y="75"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitFrame();
|
||||
this.Element = "Earth";
|
||||
</OnLoad>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateFrame( arg1 );
|
||||
</OnUpdate>
|
||||
<OnEvent>
|
||||
COE_Totem:OnFrameEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
|
||||
<Frames>
|
||||
<!-- Create earth totem placeholders -->
|
||||
<CheckButton name="COETotemEarth1" inherits="COETotemButtonTemplate" hidden="true" id="1">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COETotemEarth2" inherits="COETotemButtonTemplate" hidden="true" id="2"/>
|
||||
<CheckButton name="COETotemEarth3" inherits="COETotemButtonTemplate" hidden="true" id="3"/>
|
||||
<CheckButton name="COETotemEarth4" inherits="COETotemButtonTemplate" hidden="true" id="4"/>
|
||||
<CheckButton name="COETotemEarth5" inherits="COETotemButtonTemplate" hidden="true" id="5"/>
|
||||
<CheckButton name="COETotemEarthNone" inherits="COETotemButtonTemplate" hidden="true" id="6"/>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
<!-- Totem FireFrame -->
|
||||
<Frame name="COEFireFrame" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="75" y="75"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitFrame();
|
||||
this.Element = "Fire";
|
||||
</OnLoad>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateFrame( arg1 );
|
||||
</OnUpdate>
|
||||
<OnEvent>
|
||||
COE_Totem:OnFrameEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
|
||||
<Frames>
|
||||
<!-- Create Fire totem placeholders -->
|
||||
<CheckButton name="COETotemFire1" inherits="COETotemButtonTemplate" hidden="true" id="11">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COETotemFire2" inherits="COETotemButtonTemplate" hidden="true" id="12"/>
|
||||
<CheckButton name="COETotemFire3" inherits="COETotemButtonTemplate" hidden="true" id="13"/>
|
||||
<CheckButton name="COETotemFire4" inherits="COETotemButtonTemplate" hidden="true" id="14"/>
|
||||
<CheckButton name="COETotemFire5" inherits="COETotemButtonTemplate" hidden="true" id="15"/>
|
||||
<CheckButton name="COETotemFireNone" inherits="COETotemButtonTemplate" hidden="true" id="16"/>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
<!-- Totem WaterFrame -->
|
||||
<Frame name="COEWaterFrame" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="-75" y="-75"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitFrame();
|
||||
this.Element = "Water";
|
||||
</OnLoad>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateFrame( arg1 );
|
||||
</OnUpdate>
|
||||
<OnEvent>
|
||||
COE_Totem:OnFrameEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
|
||||
<Frames>
|
||||
<!-- Create Water totem placeholders -->
|
||||
<CheckButton name="COETotemWater1" inherits="COETotemButtonTemplate" hidden="true" id="21">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COETotemWater2" inherits="COETotemButtonTemplate" hidden="true" id="22"/>
|
||||
<CheckButton name="COETotemWater3" inherits="COETotemButtonTemplate" hidden="true" id="23"/>
|
||||
<CheckButton name="COETotemWater4" inherits="COETotemButtonTemplate" hidden="true" id="24"/>
|
||||
<CheckButton name="COETotemWater5" inherits="COETotemButtonTemplate" hidden="true" id="25"/>
|
||||
<CheckButton name="COETotemWater6" inherits="COETotemButtonTemplate" hidden="true" id="26"/>
|
||||
<CheckButton name="COETotemWater7" inherits="COETotemButtonTemplate" hidden="true" id="27"/>
|
||||
<CheckButton name="COETotemWaterNone" inherits="COETotemButtonTemplate" hidden="true" id="28"/>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
<!-- Totem AirFrame -->
|
||||
<Frame name="COEAirFrame" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER">
|
||||
<Offset>
|
||||
<AbsDimension x="75" y="-75"/>
|
||||
</Offset>
|
||||
</Anchor>
|
||||
</Anchors>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitFrame();
|
||||
this.Element = "Air";
|
||||
</OnLoad>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateFrame( arg1 );
|
||||
</OnUpdate>
|
||||
<OnEvent>
|
||||
COE_Totem:OnFrameEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
|
||||
<Frames>
|
||||
<!-- Create Air totem placeholders -->
|
||||
<CheckButton name="COETotemAir1" inherits="COETotemButtonTemplate" hidden="true" id="31">
|
||||
<Anchors>
|
||||
<Anchor point="TOPLEFT"/>
|
||||
</Anchors>
|
||||
</CheckButton>
|
||||
<CheckButton name="COETotemAir2" inherits="COETotemButtonTemplate" hidden="true" id="32"/>
|
||||
<CheckButton name="COETotemAir3" inherits="COETotemButtonTemplate" hidden="true" id="33"/>
|
||||
<CheckButton name="COETotemAir4" inherits="COETotemButtonTemplate" hidden="true" id="34"/>
|
||||
<CheckButton name="COETotemAir5" inherits="COETotemButtonTemplate" hidden="true" id="35"/>
|
||||
<CheckButton name="COETotemAir6" inherits="COETotemButtonTemplate" hidden="true" id="36"/>
|
||||
<CheckButton name="COETotemAir7" inherits="COETotemButtonTemplate" hidden="true" id="37"/>
|
||||
<CheckButton name="COETotemAirNone" inherits="COETotemButtonTemplate" hidden="true" id="38"/>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
<!-- Totem MainFrame -->
|
||||
<Frame name="COETotemFrame" frameStrata="LOW" hidden="true" parent="UIParent">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitMainFrame();
|
||||
</OnLoad>
|
||||
<OnEvent>
|
||||
COE_Totem:OnMainFrameEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<!-- TimerFrame -->
|
||||
<Frame name="COETimerFrame" frameStrata="LOW" enableMouse="true" movable="true" hidden="true" parent="UIParent">
|
||||
<Size>
|
||||
<AbsDimension x="50" y="50" />
|
||||
</Size>
|
||||
<Anchors>
|
||||
<Anchor point="CENTER" relativeTo="UIParent"/>
|
||||
</Anchors>
|
||||
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE_Totem:InitTimerFrame();
|
||||
</OnLoad>
|
||||
<OnUpdate>
|
||||
COE_Totem:UpdateTimerFrame( arg1 );
|
||||
</OnUpdate>
|
||||
</Scripts>
|
||||
|
||||
<Frames>
|
||||
<!-- Create Air totem placeholders -->
|
||||
<CheckButton name="COETimerEarth" inherits="COETotemButtonTemplate" hidden="true" id="1"/>
|
||||
<CheckButton name="COETimerFire" inherits="COETotemButtonTemplate" hidden="true" id="2"/>
|
||||
<CheckButton name="COETimerWater" inherits="COETotemButtonTemplate" hidden="true" id="3"/>
|
||||
<CheckButton name="COETimerAir" inherits="COETotemButtonTemplate" hidden="true" id="4"/>
|
||||
</Frames>
|
||||
</Frame>
|
||||
|
||||
|
||||
</Ui>
|
||||
@@ -0,0 +1,827 @@
|
||||
--[[
|
||||
|
||||
CALL OF ELEMENTS
|
||||
The All-In-One Shaman Addon
|
||||
|
||||
by Wyverex (2006)
|
||||
|
||||
|
||||
Totem Module Data
|
||||
|
||||
]]
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.TotemData contains a list of totem classes that are
|
||||
returned by COE:CreateTotem
|
||||
For every available totem the player has, one object is
|
||||
added to this list
|
||||
-------------------------------------------------------------------]]
|
||||
COE["TotemData"] = {};
|
||||
COE["TotemCount"] = 0;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.MaxTotems stores the maximum number of totems per element
|
||||
This is taken right from the current game content
|
||||
-------------------------------------------------------------------]]
|
||||
COE["MaxTotems"] = { Earth = 5, Fire = 5, Water = 7, Air = 7 };
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.TotemsAvailable contains the number of totems available
|
||||
of each element
|
||||
-------------------------------------------------------------------]]
|
||||
COE["TotemsAvailable"] = {};
|
||||
COE.TotemsAvailable["Earth"] = 0;
|
||||
COE.TotemsAvailable["Fire"] = 0;
|
||||
COE.TotemsAvailable["Water"] = 0;
|
||||
COE.TotemsAvailable["Air"] = 0;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.ActiveTotems contains a pointer to the active totem of
|
||||
each element
|
||||
|
||||
COE.TotemPending contains a pointer to the last totem spell
|
||||
that was initiated but not yet completed. This lets COE check
|
||||
whether something went wrong while casting (sitting etc.) by
|
||||
activating the timer first when SPELLCAST_STOP is fired
|
||||
After the timeout a pending totem timer is automatically removed
|
||||
to prevent actions that trigger SPELLCAST_STOP and are not
|
||||
hooked from activating the timer accidentally
|
||||
-------------------------------------------------------------------]]
|
||||
COE["ActiveTotems"] = { Earth = nil, Fire = nil, Water = nil, Air = nil };
|
||||
COE["TotemPending"] = { Totem = nil, UseRank = 0, Timeout = 0.75 };
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.CleansingTotems stores pointers to the buttons and totems
|
||||
that are able to cleanse poisons, diseases and sleep, charm
|
||||
or fear effects
|
||||
-------------------------------------------------------------------]]
|
||||
COE["CleansingTotems"] = {
|
||||
Poison = { Totem = nil, Button = nil, Warn = false },
|
||||
Disease = { Totem = nil, Button = nil, Warn = false },
|
||||
Tremor = { Totem = nil, Button = nil, Warn = false } };
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.TotemSets contains the totem pointers for each set and
|
||||
element
|
||||
-------------------------------------------------------------------]]
|
||||
COE["TotemSetCount"] = 0;
|
||||
COE["TotemSets"] = { }
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.SetCycle stores which totem of the active set have
|
||||
already been thrown
|
||||
-------------------------------------------------------------------]]
|
||||
COE["SetCycle"] = { Earth = false, Fire = false, Water = false, Air = false };
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
COE.NoTotem is a placeholder for an empty anchor button
|
||||
-------------------------------------------------------------------]]
|
||||
COE["NoTotem"] = { SpellName = "", 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
|
||||
|
||||
PURPOSE: Returns the totem class for a new totem
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:CreateTotem()
|
||||
return { SpellName = "", Element = "", Texture = "",
|
||||
ToolPresent = false, Ranks = {}, MaxRank = 0, isActive = false,
|
||||
CurDuration = 0, CurHealth = 0, CurCooldown = 0,
|
||||
isTrinket = false, TrinketSlot = nil };
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:CreateTotemRank
|
||||
|
||||
PURPOSE: Returns the class for a new totem rank
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:CreateTotemRank()
|
||||
return { SpellID = 0, Mana = 0, Duration = 0, Health = 0, Cooldown = 0 };
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:ElementFromTool
|
||||
|
||||
PURPOSE: Returns the element corresponding to a totem tool.
|
||||
This is needed for the french version to work. In the
|
||||
english and german versions it just returns the input
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:ElementFromTool( element )
|
||||
|
||||
if element == COESTR_TOTEMTOOLS_EARTH then
|
||||
return COESTR_ELEMENT_EARTH;
|
||||
elseif element == COESTR_TOTEMTOOLS_FIRE then
|
||||
return COESTR_ELEMENT_FIRE;
|
||||
elseif element == COESTR_TOTEMTOOLS_WATER then
|
||||
return COESTR_ELEMENT_WATER;
|
||||
elseif element == COESTR_TOTEMTOOLS_AIR then
|
||||
return COESTR_ELEMENT_AIR;
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:LocalizedElement
|
||||
|
||||
PURPOSE: Translates a localized element name into english
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:LocalizedElement( element )
|
||||
|
||||
if( element == COESTR_ELEMENT_EARTH ) then
|
||||
return "Earth";
|
||||
elseif( element == COESTR_ELEMENT_FIRE ) then
|
||||
return "Fire";
|
||||
elseif( element == COESTR_ELEMENT_WATER ) then
|
||||
return "Water";
|
||||
elseif( element == COESTR_ELEMENT_AIR ) then
|
||||
return "Air";
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:ScanTotems
|
||||
|
||||
PURPOSE: Scans the spellbook for available totems and
|
||||
populates the COE.TotemData list
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:ScanTotems()
|
||||
|
||||
COE:DebugMessage( "Scanning Totems..." );
|
||||
|
||||
-- delete existing totem objects
|
||||
-- ------------------------------
|
||||
COE.TotemData = {};
|
||||
COE.TotemCount = 0;
|
||||
COE.TotemsAvailable.Earth = 0;
|
||||
COE.TotemsAvailable.Fire = 0;
|
||||
COE.TotemsAvailable.Water = 0;
|
||||
COE.TotemsAvailable.Air = 0;
|
||||
|
||||
-- iterate over all spells in the spellbook
|
||||
-- -----------------------------------------
|
||||
local i, k = 1;
|
||||
while true do
|
||||
|
||||
local SpellName, SpellRank = GetSpellName( i, BOOKTYPE_SPELL );
|
||||
if not SpellName or SpellName == "Totemic Recall" then
|
||||
do break end;
|
||||
end
|
||||
|
||||
-- is this a totem?
|
||||
-- -----------------
|
||||
if( string.find( SpellName, COESTR_SCANTOTEMS ) ~= nil ) then
|
||||
|
||||
local newtotem = true;
|
||||
local totem = nil;
|
||||
|
||||
-- get the rank value
|
||||
-- -------------------
|
||||
local _,_,rank = string.find( SpellRank, COESTR_TOTEMRANK );
|
||||
if( not rank ) then
|
||||
rank = 1;
|
||||
else
|
||||
rank = tonumber( rank );
|
||||
end
|
||||
|
||||
-- =======================================================================
|
||||
-- check if totem already exists with another rank in the list
|
||||
-- =======================================================================
|
||||
for k = 1, COE.TotemCount do
|
||||
if( SpellName == COE.TotemData[k].SpellName ) then
|
||||
-- use existing totem object
|
||||
-- --------------------------
|
||||
totem = COE.TotemData[k];
|
||||
newtotem = false;
|
||||
break;
|
||||
end
|
||||
end
|
||||
|
||||
COETotemTT:SetSpell( i, BOOKTYPE_SPELL );
|
||||
|
||||
-- =======================================================================
|
||||
-- create new totem object if not found
|
||||
-- =======================================================================
|
||||
if( not totem ) then
|
||||
totem = COE:CreateTotem();
|
||||
|
||||
-- set totem spell name
|
||||
-- ---------------------
|
||||
totem.SpellName = SpellName;
|
||||
|
||||
-- get totem school from tooltip
|
||||
-- ------------------------------
|
||||
local text = COETotemTTTextLeft4;
|
||||
if( text and text:GetText() ) then
|
||||
|
||||
local _,_, element = string.find( text:GetText(), COESTR_TOTEMTOOLS );
|
||||
if( element ) then
|
||||
|
||||
-- if element starts with a |, the player does
|
||||
-- not possess the needed totem for this spell
|
||||
-- extract the color code before using the element
|
||||
-- ------------------------------------------------
|
||||
if( string.sub( element, 1, 1 ) == "|" ) then
|
||||
element = string.sub( element, 11 );
|
||||
end
|
||||
|
||||
-- get element from tool
|
||||
-- ----------------------
|
||||
element = COE:ElementFromTool( element );
|
||||
|
||||
-- translate element to english
|
||||
-- -----------------------------
|
||||
element = COE:LocalizedElement( element );
|
||||
-- valid element?
|
||||
-- ---------------
|
||||
if( COE.TotemsAvailable[element] ~= nil ) then
|
||||
totem.Element = element;
|
||||
COE.TotemsAvailable[element] = COE.TotemsAvailable[element] + 1;
|
||||
else
|
||||
COE:Message( COESTR_INVALIDELEMENT .. SpellName );
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- get totem texture
|
||||
-- ------------------
|
||||
totem.Texture = GetSpellTexture( i, BOOKTYPE_SPELL );
|
||||
|
||||
-- get tool presence
|
||||
-- ------------------
|
||||
totem.ToolPresent = COE:IsToolPresent( i );
|
||||
end
|
||||
|
||||
-- =======================================================================
|
||||
-- create new totem rank
|
||||
-- =======================================================================
|
||||
local totemrank = COE:CreateTotemRank();
|
||||
|
||||
-- set totem spell id
|
||||
-- -------------------
|
||||
totemrank.SpellID = i;
|
||||
|
||||
-- get totem mana cost from tooltip
|
||||
-- ---------------------------------
|
||||
text = COETotemTTTextLeft2;
|
||||
if( text and text:GetText() ) then
|
||||
|
||||
local _,_, mana = string.find( text:GetText(), COESTR_TOTEMMANA );
|
||||
if( mana ) then
|
||||
totemrank.Mana = tonumber( mana );
|
||||
end
|
||||
end
|
||||
|
||||
-- get totem duration and health
|
||||
-- ------------------------------
|
||||
totemrank.Duration, totemrank.Health, totemrank.Cooldown = COE:GetTotemDurationAndHealth( i );
|
||||
|
||||
-- store rank in totem
|
||||
-- --------------------
|
||||
totem.Ranks[rank] = totemrank;
|
||||
if( rank > totem.MaxRank ) then
|
||||
totem.MaxRank = rank;
|
||||
end
|
||||
|
||||
-- is this a new totem?
|
||||
-- ---------------------
|
||||
if( newtotem ) then
|
||||
-- store totem
|
||||
-- ------------
|
||||
COE.TotemCount = COE.TotemCount + 1;
|
||||
COE.TotemData[COE.TotemCount] = totem;
|
||||
|
||||
|
||||
-- check if it's a cleansing totem
|
||||
-- --------------------------------
|
||||
if( SpellName == COESTR_TOTEMPOISON ) then
|
||||
COE.CleansingTotems.Poison.Totem = totem;
|
||||
elseif( SpellName == COESTR_TOTEMDISEASE ) then
|
||||
COE.CleansingTotems.Disease.Totem = totem;
|
||||
elseif( SpellName == COESTR_TOTEMTREMOR ) then
|
||||
COE.CleansingTotems.Tremor.Totem = totem;
|
||||
end
|
||||
|
||||
COE:DebugMessage( "Found totem: " .. SpellName );
|
||||
end
|
||||
|
||||
-- =======================================================================
|
||||
-- check visibility options
|
||||
-- =======================================================================
|
||||
|
||||
if( COE_DisplayedTotems[SpellName] == nil ) then
|
||||
-- perhaps a new totem. set it to default visible
|
||||
-- and reorder it when the element count is known
|
||||
-- -----------------------------------------------
|
||||
COE_DisplayedTotems[SpellName] = { Order = 0, Element = totem.Element, Visible = true };
|
||||
else
|
||||
-- update old saved variables versions by adding the element
|
||||
-- ----------------------------------------------------------
|
||||
COE_DisplayedTotems[SpellName]["Element"] = totem.Element;
|
||||
end
|
||||
end
|
||||
|
||||
i = i + 1;
|
||||
end
|
||||
|
||||
-- ====================================
|
||||
-- Trinket support
|
||||
-- ====================================
|
||||
|
||||
-- create the trinket totem even if the player doesn't have it.
|
||||
-- this makes handling it much simpler and the player can choose
|
||||
-- to make it invisible anyway
|
||||
-- the player needs to have at least one water totem though
|
||||
-- --------------------------------------------------------------
|
||||
if( COE.TotemsAvailable.Water > 0 ) then
|
||||
local trinket = COE:CreateTotem();
|
||||
trinket.SpellName = "Trinket";
|
||||
trinket.Element = "Water";
|
||||
trinket.Texture = "Interface\\Icons\\INV_Wand_01";
|
||||
trinket.isTrinket = true;
|
||||
trinket.ToolPresent, trinket.TrinketSlot = COE:IsTrinketPresent();
|
||||
trinket.Ranks[0] = COE:CreateTotemRank();
|
||||
trinket.Ranks[0].Duration = 24;
|
||||
trinket.Ranks[0].Health = 5;
|
||||
trinket.Ranks[0].Cooldown = 180;
|
||||
|
||||
-- store totem
|
||||
-- ------------
|
||||
COE.TotemsAvailable.Water = COE.TotemsAvailable.Water + 1;
|
||||
COE.TotemCount = COE.TotemCount + 1;
|
||||
COE.TotemData[COE.TotemCount] = trinket;
|
||||
|
||||
if( COE_DisplayedTotems[trinket.SpellName] == nil ) then
|
||||
-- perhaps a new totem. set it to default visible
|
||||
-- and reorder it when the element count is known
|
||||
-- -----------------------------------------------
|
||||
COE_DisplayedTotems[trinket.SpellName] = { Order = 0, Visible = true };
|
||||
end
|
||||
end
|
||||
|
||||
-- ===================================
|
||||
-- Finish
|
||||
-- ===================================
|
||||
|
||||
COE:DebugMessage( "Found " .. COE.TotemCount .. " totems in spellbook" ..
|
||||
"(" .. COE.TotemsAvailable.Earth .. " Earth, " ..
|
||||
COE.TotemsAvailable.Fire .. " Fire, " .. COE.TotemsAvailable.Water .. " Water, " ..
|
||||
COE.TotemsAvailable.Air .. " Air)" );
|
||||
|
||||
-- reorder new totems
|
||||
-- -------------------
|
||||
COE:ReorderNewTotems();
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:GetTotemDurationAndHealth
|
||||
|
||||
PURPOSE: Extracts the duration of the totem out of the tooltip
|
||||
When there is more than one time specification present,
|
||||
the one with the longer duration is used since this is the
|
||||
totem duration then
|
||||
Also the health and the cooldown of the totem are returned
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:GetTotemDurationAndHealth( spellid )
|
||||
|
||||
COETotemTTTextRight3:SetText( nil );
|
||||
COETotemTT:SetSpell( spellid, BOOKTYPE_SPELL );
|
||||
text = COETotemTTTextLeft5:GetText();
|
||||
|
||||
if( not text ) then
|
||||
COE:DebugMessage( "nil text with id: " .. spellid );
|
||||
return 0, 0;
|
||||
end
|
||||
|
||||
local duration = 0;
|
||||
local health = 0;
|
||||
local cooldown = 0;
|
||||
|
||||
-- ===============================================================
|
||||
-- Duration
|
||||
-- ===============================================================
|
||||
|
||||
-- first search for a minute specification
|
||||
-- if we find one it is surely the totem duration
|
||||
-- -----------------------------------------------
|
||||
local _,_,minutetext = string.find( text, COESTR_MINUTEDURATION );
|
||||
if( minutetext ) then
|
||||
-- calculate the duration in seconds
|
||||
-- ----------------------------------
|
||||
local min = tonumber( string.sub( minutetext, 1, 1 ) );
|
||||
local sec = tonumber( string.sub( minutetext, 3, 4 ) ) / 100 * 60;
|
||||
|
||||
duration = min * 60 + sec;
|
||||
else
|
||||
_,_,minutetext = string.find( text, COESTR_MINUTEDURATION_INT );
|
||||
if( minutetext ) then
|
||||
duration = tonumber( minutetext ) * 60;
|
||||
else
|
||||
-- now test for a duration in seconds
|
||||
-- -----------------------------------
|
||||
local _,b,sectext1 = string.find( text, COESTR_SECDURATION );
|
||||
if( sectext1 ) then
|
||||
|
||||
-- look if there are two second specifications
|
||||
-- if so, take the greate one
|
||||
-- --------------------------------------------
|
||||
local _,_,sectext2 = string.find( string.sub( text, b ), COESTR_SECDURATION );
|
||||
|
||||
if( sectext2 ) then
|
||||
duration = math.max( tonumber( sectext1 ), tonumber( sectext2 ) );
|
||||
else
|
||||
duration = tonumber( sectext1 );
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- ===============================================================
|
||||
-- Health
|
||||
-- ===============================================================
|
||||
|
||||
for num, regex in COESTR_TOTEMHEALTH do
|
||||
local match = { string.gfind( text, regex )() };
|
||||
if ( table.getn(match) >= 1 ) then
|
||||
|
||||
health = tonumber( match[1] );
|
||||
break;
|
||||
end
|
||||
end
|
||||
|
||||
-- ===============================================================
|
||||
-- Cooldown
|
||||
-- ===============================================================
|
||||
|
||||
text = COETotemTTTextRight3:GetText();
|
||||
|
||||
if( not text ) then
|
||||
cooldown = 0;
|
||||
else
|
||||
_,_,cooldown = string.find( text, COESTR_SECDURATION );
|
||||
if( cooldown ) then
|
||||
cooldown = tonumber( cooldown );
|
||||
else
|
||||
_,_,cooldown = string.find( text, COESTR_MINUTEDURATION_INT );
|
||||
if( cooldown ) then
|
||||
cooldown = tonumber( cooldown ) * 60;
|
||||
else
|
||||
cooldown = 0;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return duration, health, cooldown;
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:IsToolPresent
|
||||
|
||||
PURPOSE: Checks if the player has the totem of the specified
|
||||
element in his inventory
|
||||
|
||||
This is done by testing the color of the "Tools:" section
|
||||
in the totem tooltip
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:IsToolPresent( spellid )
|
||||
|
||||
-- get totem tooltip
|
||||
-- ------------------
|
||||
COETotemTT:SetSpell( spellid, BOOKTYPE_SPELL );
|
||||
|
||||
-- test for presence of the totem tool
|
||||
-- ------------------------------------
|
||||
local text = COETotemTTTextLeft4;
|
||||
if( text and text:GetText() ) then
|
||||
|
||||
local _,_, element = string.find( text:GetText(), COESTR_TOTEMTOOLS );
|
||||
if( element ) then
|
||||
|
||||
-- if element doesn't start with a |, the player
|
||||
-- possesses the needed totem for this spell
|
||||
-- ------------------------------------------------
|
||||
if( string.sub( element, 1, 1 ) ~= "|" ) then
|
||||
return true;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return false;
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:IsTrinketPresent
|
||||
|
||||
PURPOSE: Checks if the player has the enamored water spirit
|
||||
trinket equipped and returns the trinket slot
|
||||
|
||||
RETURNS: equipped, slot
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:IsTrinketPresent()
|
||||
|
||||
for i = 0, 1 do
|
||||
local slot = GetInventorySlotInfo( "Trinket" .. i .. "Slot" );
|
||||
local item = GetInventoryItemLink( "player", slot );
|
||||
|
||||
if( item ) then
|
||||
local itemname = string.find( item, COESTR_TRINKET );
|
||||
if( itemname ) then
|
||||
-- trinket is equipped
|
||||
-- --------------------
|
||||
return true, slot;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return false, nil;
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:ReorderNewTotems
|
||||
|
||||
PURPOSE: Assigns each COE_DisplayedTotems entry with a zero
|
||||
order a valid order depending on the number of available
|
||||
totems in this element
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:ReorderNewTotems()
|
||||
|
||||
local nextslot = { Earth = COE.TotemsAvailable.Earth, Fire = COE.TotemsAvailable.Fire,
|
||||
Water = COE.TotemsAvailable.Water, Air = COE.TotemsAvailable.Air };
|
||||
|
||||
local used = { Earth = {}, Fire = {}, Water = {}, Air = {} };
|
||||
local bError = false;
|
||||
|
||||
local k;
|
||||
for k = 1, COE.TotemCount do
|
||||
|
||||
local totem = COE.TotemData[k];
|
||||
if( COE_DisplayedTotems[totem.SpellName] ~= nil ) then
|
||||
if( COE_DisplayedTotems[totem.SpellName].Order == 0 ) then
|
||||
|
||||
-- this totem has just been added
|
||||
-- assign the currently free slot
|
||||
-- -------------------------------
|
||||
COE_DisplayedTotems[totem.SpellName].Order = nextslot[totem.Element];
|
||||
nextslot[totem.Element] = nextslot[totem.Element] - 1;
|
||||
end
|
||||
|
||||
-- register that this slot of the element is now in use
|
||||
-- mark as error if already in use
|
||||
-- -----------------------------------------------------
|
||||
if( used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] == nil ) then
|
||||
used[totem.Element][COE_DisplayedTotems[totem.SpellName].Order] = true;
|
||||
else
|
||||
bError = true;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- are there multiple entries for one slot?
|
||||
-- -----------------------------------------
|
||||
if( bError ) then
|
||||
-- there is something wrong with the saved variables
|
||||
-- reset all ordering and reassign it
|
||||
-- --------------------------------------------------
|
||||
for k = 1, COE.TotemCount do
|
||||
|
||||
local totem = COE.TotemData[k];
|
||||
if( COE_DisplayedTotems[totem.SpellName] ~= nil ) then
|
||||
COE_DisplayedTotems[totem.SpellName].Order = 0;
|
||||
end
|
||||
end
|
||||
|
||||
COE:ReorderNewTotems();
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:InitTotemSets
|
||||
|
||||
PURPOSE: Fills the COE.TotemSets list with the totem objects
|
||||
corresponding to the spell names saved in COEOPT_TOTEMSETS
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:InitTotemSets()
|
||||
|
||||
local indices = { "Earth", "Fire", "Water", "Air" };
|
||||
|
||||
COE.TotemSets = {};
|
||||
|
||||
-- for each standard set
|
||||
-- ----------------------
|
||||
local set;
|
||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
||||
|
||||
COE.TotemSets[set] = { Earth = nil, Fire = nil, Water = nil, Air = nil,
|
||||
CastOrder = COE_SavedTotemSets[set].CastOrder };
|
||||
|
||||
-- for each element
|
||||
-- -----------------
|
||||
local k, totem;
|
||||
for k = 1,4 do
|
||||
|
||||
if( COE_SavedTotemSets[set][indices[k]] ~= "" ) then
|
||||
|
||||
-- iterate over all totems
|
||||
-- ------------------------
|
||||
for totem in COE.TotemData do
|
||||
|
||||
if( COE.TotemData[totem].SpellName == COE_SavedTotemSets[set][indices[k]] ) then
|
||||
COE.TotemSets[set][indices[k]] = COE.TotemData[totem];
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- for each custom set
|
||||
-- --------------------
|
||||
for set = 1, table.getn( COE_CustomTotemSets ) do
|
||||
|
||||
COE.TotemSets[COESET_DEFAULT + set] = { Earth = nil, Fire = nil, Water = nil, Air = nil,
|
||||
CastOrder = COE_CustomTotemSets[set].CastOrder };
|
||||
|
||||
-- for each element
|
||||
-- -----------------
|
||||
local k, totem;
|
||||
for k = 1,4 do
|
||||
|
||||
if( COE_CustomTotemSets[set][indices[k]] ~= "" ) then
|
||||
|
||||
-- iterate over all totems
|
||||
-- ------------------------
|
||||
for totem in COE.TotemData do
|
||||
|
||||
if( COE.TotemData[totem].SpellName == COE_CustomTotemSets[set][indices[k]] ) then
|
||||
COE.TotemSets[COESET_DEFAULT + set][indices[k]] = COE.TotemData[totem];
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
COE.TotemSetCount = table.getn( COE.TotemSets );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ =============================================================================================
|
||||
|
||||
F I X E S
|
||||
|
||||
================================================================================================]]
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Fix_CastOrderLocalization
|
||||
|
||||
PURPOSE: Correctly localizes the element names in the
|
||||
cast order in COE_SavedTotemSets
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Fix_CastOrderLocalization()
|
||||
|
||||
-- for each standard set
|
||||
-- ----------------------
|
||||
local set, k;
|
||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
||||
|
||||
for k = 1, 4 do
|
||||
if( COE_SavedTotemSets[set].CastOrder[k] == "Earth" ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Fire" ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Water" ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == "Air" ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- notify user
|
||||
-- ------------
|
||||
COE:Message( COESTR_FIXEDSETS );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Fix_DisplayedTotems
|
||||
|
||||
PURPOSE: Fixes errors in the COE_DisplayedTotems array
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Fix_DisplayedTotems()
|
||||
|
||||
local i;
|
||||
local fixed = false;
|
||||
foreach( COE_DisplayedTotems, function( index, value )
|
||||
|
||||
-- is this an old-style entry?
|
||||
-- ----------------------------
|
||||
if( type( value ) == "boolean" ) then
|
||||
COE_DisplayedTotems[index] = { Order = 0, Visible = value };
|
||||
fixed = true;
|
||||
|
||||
elseif( type( value ) == "table" ) then
|
||||
if( COE_DisplayedTotems[index].Visible == nil ) then
|
||||
COE_DisplayedTotems[index].Visible = true;
|
||||
fixed = true;
|
||||
end
|
||||
|
||||
if( COE_DisplayedTotems[index].Order == nil ) then
|
||||
COE_DisplayedTotems[index].Order = 0;
|
||||
fixed = true;
|
||||
end
|
||||
|
||||
else
|
||||
COE_DisplayedTotems[index] = { Order = 0, Visible = value };
|
||||
fixed = true;
|
||||
end
|
||||
|
||||
end );
|
||||
|
||||
-- notify user
|
||||
-- ------------
|
||||
if( fixed ) then
|
||||
COE:Message( COESTR_FIXEDDISPLAY );
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Fix_CastOrderLocalization2
|
||||
|
||||
PURPOSE: Correctly localizes the element names in the
|
||||
cast order in COE_SavedTotemSets
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Fix_CastOrderLocalization2()
|
||||
|
||||
-- for each standard set
|
||||
-- ----------------------
|
||||
local set, k;
|
||||
for set = 1, table.getn( COE_SavedTotemSets ) do
|
||||
|
||||
for k = 1, 4 do
|
||||
if( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_FIRE ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_WATER ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||
|
||||
elseif( COE_SavedTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_AIR ) then
|
||||
COE_SavedTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- for each custom set
|
||||
-- --------------------
|
||||
for set = 1, table.getn( COE_CustomTotemSets ) do
|
||||
|
||||
for k = 1, 4 do
|
||||
if( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_EARTH ) then
|
||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_EARTH;
|
||||
|
||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_FIRE ) then
|
||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_FIRE;
|
||||
|
||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_WATER ) then
|
||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_WATER;
|
||||
|
||||
elseif( COE_CustomTotemSets[set].CastOrder[k] == COESTR_TOTEMTOOLS_AIR ) then
|
||||
COE_CustomTotemSets[set].CastOrder[k] = COESTR_ELEMENT_AIR;
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
+1200
File diff suppressed because it is too large
Load Diff
+1740
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,288 @@
|
||||
--[[
|
||||
|
||||
CALL OF ELEMENTS
|
||||
The All-In-One Shaman Addon
|
||||
|
||||
by Wyverex (2006)
|
||||
|
||||
]]
|
||||
|
||||
if( not COE ) then
|
||||
COE = {};
|
||||
end
|
||||
|
||||
COE_VERSION = 2.6
|
||||
|
||||
COECOL_TOTEMWARNING = 1;
|
||||
COECOL_TOTEMDESTROYED = 2;
|
||||
COECOL_TOTEMCLEANSING = 3;
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
When DebugMode is set to true, all DebugMessage calls will
|
||||
write a debug message into the chat frame
|
||||
-------------------------------------------------------------------]]
|
||||
COE["DebugMode"] = false;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
These variables control frame updates
|
||||
UpdateInterval sets the interval in seconds after which a
|
||||
frame is updated
|
||||
ForceUpdate can be used as input into Update handlers to force
|
||||
an update regardless of the current timer
|
||||
-------------------------------------------------------------------]]
|
||||
COE["UpdateInterval"] = 0.1;
|
||||
COE["ForceUpdate"] = COE.UpdateInterval * 2;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
The AdvisorInterval controls how often the party/raid is
|
||||
scanned for debuffs that are curable by totems
|
||||
The AdvisorWarningInterval controls how often the player is
|
||||
notified about existing debuffs
|
||||
-------------------------------------------------------------------]]
|
||||
COE["AdvisorInterval"] = 1;
|
||||
COE["AdvisorWarningInterval"] = 7;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Init
|
||||
|
||||
PURPOSE: Loads submodules and initializes data
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Init()
|
||||
COE:Message( "Call of Elements v" .. COE_VERSION );
|
||||
|
||||
-- load only for shamans
|
||||
-- ----------------------
|
||||
local _, EnglishClass = UnitClass( "player" );
|
||||
if( EnglishClass ~= "SHAMAN" ) then
|
||||
COE:Message( COESTR_NOTASHAMAN );
|
||||
COE.Initialized = false;
|
||||
else
|
||||
COE.Initialized = true;
|
||||
|
||||
this:RegisterEvent( "VARIABLES_LOADED" );
|
||||
|
||||
-- register shell command
|
||||
-- -----------------------
|
||||
SlashCmdList["COE"] = COEProcessShellCommand;
|
||||
SLASH_COE1="/coe";
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:OnEvent
|
||||
|
||||
PURPOSE: Handles frame events
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:OnEvent( event )
|
||||
|
||||
if( event == "VARIABLES_LOADED" ) then
|
||||
-- fix saved variables if this update has to do so
|
||||
-- ------------------------------------------------
|
||||
COE:FixSavedVariables();
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Message
|
||||
|
||||
PURPOSE: Adds a message to the default chat frame
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Message( msg )
|
||||
DEFAULT_CHAT_FRAME:AddMessage( "[COE] " .. msg, 0.93, 0.83, 0.45 );
|
||||
end;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:DebugMessage
|
||||
|
||||
PURPOSE: Adds a debug message to the default chat frame if
|
||||
debug mode is enabled
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:DebugMessage( msg )
|
||||
if( COE.DebugMode ) then
|
||||
DEFAULT_CHAT_FRAME:AddMessage( "[COE] " .. msg, 0.5, 0.5, 0.5 );
|
||||
end
|
||||
end;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:Notification
|
||||
|
||||
PURPOSE: Adds a message to the error frame in the upper
|
||||
screen center
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:Notification( msg, color )
|
||||
|
||||
local col;
|
||||
|
||||
-- choose color
|
||||
-- -------------
|
||||
if( color == COECOL_TOTEMWARNING ) then
|
||||
col = { r = 0, g = 0.6, b = 1 };
|
||||
elseif( color == COECOL_TOTEMDESTROYED ) then
|
||||
col = { r = 1, g = 0.4, b = 0 };
|
||||
elseif( color == COECOL_TOTEMCLEANSING ) then
|
||||
col = { r = 0, g = 1, b = 0.4 };
|
||||
else
|
||||
col = { r = 1, g = 1, b = 1 };
|
||||
end
|
||||
|
||||
-- add message
|
||||
-- ------------
|
||||
UIErrorsFrame:AddMessage( msg, col.r, col.g, col.b, 1.0, UIERRORS_HOLD_TIME );
|
||||
|
||||
end;
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:ToggleConfigFrame
|
||||
|
||||
PURPOSE: Toggles the configuration dialog
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:ToggleConfigFrame()
|
||||
|
||||
if( COE_ConfigFrame:IsVisible() ) then
|
||||
COE_Config:CloseDialog()
|
||||
else
|
||||
COE_ConfigFrame:Show();
|
||||
end
|
||||
|
||||
PlaySound( "igMainMenuOption" );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COEProcessShellCommand
|
||||
|
||||
PURPOSE: Executes the entered shell command
|
||||
-------------------------------------------------------------------]]
|
||||
function COEProcessShellCommand( msg )
|
||||
|
||||
if( msg == "" or msg == "config" ) then
|
||||
COE:ToggleConfigFrame();
|
||||
|
||||
elseif( msg == "list" ) then
|
||||
COE:DisplayShellCommands();
|
||||
|
||||
elseif( msg == "nextset" ) then
|
||||
COE_Totem:SwitchToNextSet();
|
||||
|
||||
elseif( msg == "priorset" ) then
|
||||
COE_Totem:SwitchToPriorSet();
|
||||
|
||||
elseif( msg == "throwset" ) then
|
||||
COE_Totem:ThrowSet();
|
||||
|
||||
elseif( msg == "restartset" ) then
|
||||
COE_Totem:ResetSetCycle();
|
||||
|
||||
elseif( msg == "reset" ) then
|
||||
COE_Totem:ResetTimers();
|
||||
|
||||
elseif( msg == "reload" ) then
|
||||
COE_Totem:Rescan();
|
||||
|
||||
elseif( msg == "resetframes" ) then
|
||||
COE_Totem:ResetFrames();
|
||||
|
||||
elseif( msg == "advised" ) then
|
||||
COE_Totem:ThrowAdvisedTotem();
|
||||
|
||||
elseif( msg == "resetordering" ) then
|
||||
COE_DisplayedTotems = {};
|
||||
COE_Totem:Rescan();
|
||||
|
||||
elseif( msg == "bestheal" ) then
|
||||
COE_Heal:BestHeal();
|
||||
|
||||
elseif( msg == "battleheal" ) then
|
||||
COE_Heal:BattleHeal();
|
||||
|
||||
else
|
||||
local _,_,arg = string.find( msg, "set (.*)" );
|
||||
if( arg ) then
|
||||
COE_Totem:SwitchToSet( arg );
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:DisplayShellCommands
|
||||
|
||||
PURPOSE: Shows a list of all shell commands
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:DisplayShellCommands()
|
||||
|
||||
COE:Message( COESHELL_INTRO );
|
||||
COE:Message( COESHELL_CONFIG );
|
||||
COE:Message( COESHELL_LIST );
|
||||
COE:Message( COESHELL_NEXTSET );
|
||||
COE:Message( COESHELL_PRIORSET );
|
||||
COE:Message( COESHELL_SET );
|
||||
COE:Message( COESHELL_RESTARTSET );
|
||||
COE:Message( COESHELL_RESET );
|
||||
COE:Message( COESHELL_RESETFRAMES );
|
||||
COE:Message( COESHELL_RESETORDERING );
|
||||
COE:Message( COESHELL_RELOAD );
|
||||
COE:Message( COESHELL_MACRONOTE );
|
||||
COE:Message( COESHELL_THROWSET );
|
||||
COE:Message( COESHELL_ADVISED );
|
||||
|
||||
end
|
||||
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
METHOD: COE:FixSavedVariables
|
||||
|
||||
PURPOSE: If this addon version is higher than the one in
|
||||
the saved variables, check if we have to fix the
|
||||
saved variables due to fixed bugs
|
||||
-------------------------------------------------------------------]]
|
||||
function COE:FixSavedVariables()
|
||||
|
||||
-- is the version stored in the saved variables?
|
||||
-- ----------------------------------------------
|
||||
if( not COE_Config:GetSaved( COEOPT_VERSION ) ) then
|
||||
-- this is version <= v1.6
|
||||
-- ------------------------
|
||||
COE_Config:SetOption( COEOPT_VERSION, 1.6 );
|
||||
end
|
||||
|
||||
local version = COE_Config:GetSaved( COEOPT_VERSION );
|
||||
|
||||
if( version == 1.6 ) then
|
||||
-- fix localized cast order in 1.7
|
||||
-- --------------------------------
|
||||
COE:Fix_CastOrderLocalization();
|
||||
|
||||
COE:Message( COESTR_UDATEDSAVED .. "1.7" );
|
||||
COE_Config:SetOption( COEOPT_VERSION, 1.7 );
|
||||
version = COE_Config:GetSaved( COEOPT_VERSION );
|
||||
end
|
||||
|
||||
if( version == 1.7 ) then
|
||||
-- fix cast order again to due to a typo
|
||||
-- --------------------------------------
|
||||
COE:Fix_CastOrderLocalization();
|
||||
|
||||
COE:Message( COESTR_UDATEDSAVED .. "1.8" );
|
||||
COE_Config:SetOption( COEOPT_VERSION, 1.8 );
|
||||
version = COE_Config:GetSaved( COEOPT_VERSION );
|
||||
end
|
||||
|
||||
-- fix totem set element strings
|
||||
-- ------------------------------
|
||||
COE:Fix_CastOrderLocalization2();
|
||||
|
||||
COE_Config:SetOption( COEOPT_VERSION, 2.1 );
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
## Interface: 11200
|
||||
## Title: Call Of Elements
|
||||
## Notes: The All-In-One Shaman Addon
|
||||
## OptionalDeps:
|
||||
## Dependencies: Chronos
|
||||
## SavedVariables: COE_Saved
|
||||
## SavedVariablesPerCharacter: COE_SavedTotemSets, COE_CustomTotemSets, COE_DisplayedTotems, COE_TotemBars
|
||||
CallOfElements.xml
|
||||
COE_ConfigTemplates.xml
|
||||
COE_Config.xml
|
||||
COE_Totem.xml
|
||||
COE_Heal.xml
|
||||
@@ -0,0 +1,28 @@
|
||||
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/">
|
||||
<script file="Localization.lua"/>
|
||||
<script file="Localization.de.lua"/>
|
||||
<script file="Localization.fr.lua"/>
|
||||
<script file="Localization.cn.lua"/>
|
||||
<script file="Localization.ko.lua"/>
|
||||
<script file="CallOfElements.lua"/>
|
||||
|
||||
<!-- Invisible MainFrame for script loading -->
|
||||
<Frame name="COEMainFrame" frameStrata="LOW" enableMouse="false" hidden="true">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
COE:Init();
|
||||
</OnLoad>
|
||||
<OnEvent>
|
||||
COE:OnEvent( event );
|
||||
</OnEvent>
|
||||
</Scripts>
|
||||
</Frame>
|
||||
|
||||
<GameTooltip name="COETotemTT" inherits="GameTooltipTemplate" frameSTRATA="TOOLTIP">
|
||||
<Scripts>
|
||||
<OnLoad>
|
||||
this:SetOwner(UIParent, "ANCHOR_NONE");
|
||||
</OnLoad>
|
||||
</Scripts>
|
||||
</GameTooltip>
|
||||
</Ui>
|
||||
@@ -0,0 +1,246 @@
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
|
||||
简 体 中 文
|
||||
|
||||
-------------------------------------------------------------------]]
|
||||
|
||||
if( GetLocale() == "zhCN" ) then
|
||||
|
||||
-- Errors
|
||||
-- -------
|
||||
COESTR_NOTASHAMAN = "你不是一个萨满祭司。无法加载COE";
|
||||
COESTR_NOTOTEM = "无可用图腾";
|
||||
COESTR_UI_NOTASSIGNED = "<无赋值文本>";
|
||||
COESTR_INVALIDELEMENT = "图腾中的不完整元素: ";
|
||||
|
||||
|
||||
-- Notifications
|
||||
-- --------------
|
||||
COESTR_TOTEMWARNING = "%s将在%d秒后到期";
|
||||
COESTR_TOTEMEXPIRED = "%s到期了";
|
||||
COESTR_TOTEMDESTROYED = "%s被摧毁了";
|
||||
COESTR_SWITCHTOSET = "%s图腾组合被激活";
|
||||
COESTR_FIXEDSETS = "你的图腾阵施放顺序已固定";
|
||||
COESTR_UDATEDSAVED = "存档变量已更新版本 ";
|
||||
COESTR_FIXEDDISPLAY = "存档变量中的错误已被修正。";
|
||||
COESTR_TOTEMSRELOADED = "图腾已被重置";
|
||||
COESTR_RESTARTINGSET = "动态图腾组合重置";
|
||||
COESTR_RESET = "计时器已被重置";
|
||||
COESTR_HEALCOOLDOWN = " 还没有准备好!";
|
||||
COESTR_NOHEALING = "不需要治疗";
|
||||
COESTR_HEALING = "治疗%s,法术为%s(等级%d)";
|
||||
COESTR_HEALLOWERRANK = "魔法不足。使用等级%d代替";
|
||||
COESTR_HEALOOM = "魔法不足!";
|
||||
|
||||
|
||||
-- String patterns
|
||||
-- ----------------
|
||||
COESTR_SCANTOTEMS = "图腾";
|
||||
COESTR_TOTEMTOOLS = "工具:(.*)图腾";
|
||||
COESTR_TOTEMMANA = "(%d*)法力值";
|
||||
COESTR_TOTEMRANK = "等级 (%d)";
|
||||
COESTR_MINUTEDURATION = "(%d%.%d%d)分钟";
|
||||
COESTR_MINUTEDURATION_INT = "(%d)分钟";
|
||||
COESTR_SECDURATION = "(%d%d?)秒";
|
||||
COESTR_CASTBYNAME = "%(等级 (%d)%)";
|
||||
COESTR_TOTEMDAMAGE = { ".+击中(.+图腾) ?%u*造成(%d+)点",
|
||||
".+对(.+图腾) ?%u*造成(%d+)的致命一击伤害",
|
||||
".+击中(.+ 图腾)造成(%d+)点",
|
||||
".+对(.+图腾)造成(%d+)的致命一击伤害" };
|
||||
COESTR_TOTEMHEALTH = { "生命值为(%d*)的", "生命值为(%d*)点的" };
|
||||
COESTR_SHOCKSPELL = {"(%a*震击)", "地震术" };
|
||||
COESTR_HEALINGWAVE = "治疗波";
|
||||
COESTR_LESSERWAVE = "次级治疗波";
|
||||
COESTR_MINAMOUNT = "(%d*)到";
|
||||
COESTR_MAXAMOUNT = "到(%d*)";
|
||||
COESTR_TRINKET = "^.*%[被迷惑的水之魂%].*$";
|
||||
|
||||
|
||||
-- Totem Advisor
|
||||
-- --------------
|
||||
COESTR_POISON = "中毒";
|
||||
COESTR_DISEASE = "疾病";
|
||||
COESTR_TOTEMPOISON = "清毒图腾";
|
||||
COESTR_TOTEMDISEASE = "祛病图腾";
|
||||
COESTR_TOTEMTREMOR = "战栗图腾";
|
||||
COESTR_CLEANSINGTOTEM = "立即施放%s!";
|
||||
|
||||
COESTR_TREMOR = {
|
||||
"睡眠", "恐吓", "心灵尖啸", "精神控制", "低沉咆哮", "恐惧",
|
||||
"破胆怒吼", "恐慌", "恐吓尖啸", "诱惑",
|
||||
"恐惧嚎叫", "破胆怒吼", "水晶沉睡"
|
||||
}
|
||||
|
||||
|
||||
-- Tools
|
||||
-- ---------
|
||||
COESTR_TOTEMTOOLS_EARTH = "大地";
|
||||
COESTR_TOTEMTOOLS_FIRE = "火焰";
|
||||
COESTR_TOTEMTOOLS_WATER = "水之";
|
||||
COESTR_TOTEMTOOLS_AIR = "空气";
|
||||
|
||||
|
||||
-- Elements
|
||||
-- ---------
|
||||
COESTR_ELEMENT_EARTH = "大地";
|
||||
COESTR_ELEMENT_FIRE = "火焰";
|
||||
COESTR_ELEMENT_WATER = "水";
|
||||
COESTR_ELEMENT_AIR = "空气";
|
||||
|
||||
|
||||
-- UI elements
|
||||
-- ------------
|
||||
COEUI_STRINGS = {
|
||||
COE_ConfigClose = "关闭";
|
||||
COE_ConfigTotemTabPanel = "图腾设定";
|
||||
COE_ConfigHealingTabPanel = "治疗设定";
|
||||
COE_ConfigDebuffTabPanel = "Debuff设定";
|
||||
COE_ConfigTotemTotemBar = "图腾栏";
|
||||
COE_ConfigTotemTotemOptions = "设定";
|
||||
COE_ConfigTotemTotemSets = "图腾组合";
|
||||
COE_OptionEnableTotemBar = "开启图腾栏";
|
||||
COE_OptionHideBackdrop = "不活动时隐藏背景";
|
||||
COE_OptionEnableTimers = "开启图腾计时器";
|
||||
COE_OptionEnableTimerNotifications = "开启信息通知";
|
||||
COE_OptionTTAlignment = "图腾注释定位";
|
||||
COE_OptionDisplayMode = "图腾栏默认图腾";
|
||||
COE_OptionDisplayAlignment = "计时器框体形状";
|
||||
COE_OptionAdvisor = "开启图腾顾问";
|
||||
COE_OptionEnableSets = "开启图腾组合";
|
||||
COE_OptionEnableAutoSwitch = "PVP时自动激活图腾组合";
|
||||
COE_OptionActiveSet = "动态图腾组合";
|
||||
COE_OptionNewSet = "新组合";
|
||||
COE_OptionDeleteSet = "删除组合";
|
||||
COE_OptionConfigureSet = "配置组合";
|
||||
COE_OptionStopConfigureSet = "决定";
|
||||
COE_OptionCastOrderString = "施放顺序";
|
||||
COE_OptionConfigureBar = "配置所需图腾";
|
||||
COE_OptionFixBar = "固定图腾栏";
|
||||
COE_OptionConfigureOrder = "配置图腾顺序";
|
||||
COE_OptionScanTotems = "重新扫描图腾";
|
||||
COE_OptionCurrentFrame = "选择要配制的图腾系";
|
||||
COE_OptionDirection = "该系图腾栏弹出方向";
|
||||
COE_OptionFrameMode = "该系图腾栏模式";
|
||||
COE_OptionFlexCount = "该系静态按钮数量";
|
||||
COE_OptionScaling = "放缩比例";
|
||||
COE_OptionEnableTimerFrame = "使用单独的计时器框体";
|
||||
COE_OptionGroupBars = "移动全部图腾栏";
|
||||
COE_OptionOverrideRank = "设定1级图腾组合键";
|
||||
COE_OptionFrameTimersOnly = "只在计时器框体中显示图腾计时";
|
||||
}
|
||||
|
||||
|
||||
-- Tooltips
|
||||
-- ---------
|
||||
COEUI_TOOLTIPS = {
|
||||
COE_ConfigTotemTab = "显示图腾设定";
|
||||
COE_ConfigHealingTab = "显示治疗设定";
|
||||
COE_ConfigDebuffTab = "显示debuff设定";
|
||||
COE_OptionEnableTotemBar = "开启并显示你的图腾栏";
|
||||
COE_OptionHideBackdrop = "当鼠标不在图腾栏上时隐藏背景";
|
||||
COE_OptionEnableTimers = "在图腾按钮中显示图腾残余时间";
|
||||
COE_OptionEnableTimerNotifications = "当图腾到期或被摧毁时显示警告";
|
||||
COE_OptionAdvisor = "当你或你的队友有一个可被图腾解除的debuff时提示你";
|
||||
COE_OptionEnableAutoSwitch = "当目标转向一个敌方玩家时自动激活相应职业的图腾组合";
|
||||
COE_OptionFixBar = "固定图腾栏以防止意外移动";
|
||||
COE_OptionGroupBars = "当你移动一个图腾栏的时候,其他图腾栏也一起移动";
|
||||
}
|
||||
|
||||
COESTR_TRINKET_TOOLTIP = "被迷惑的水之魂";
|
||||
COESTR_TRINKET_TOTEM = "上古法力之泉图腾";
|
||||
|
||||
-- Combo boxes
|
||||
-- ------------
|
||||
COEUI_TTALIGN = {
|
||||
{ "ANCHOR_TOPLEFT"; "左上" };
|
||||
{ "ANCHOR_LEFT"; "左" };
|
||||
{ "ANCHOR_BOTTOMLEFT"; "左下" };
|
||||
{ "ANCHOR_TOPRIGHT"; "右上" };
|
||||
{ "ANCHOR_RIGHT"; "右" };
|
||||
{ "ANCHOR_BOTTOMRIGHT"; "右下" };
|
||||
{ "DISABLED"; "不可用" };
|
||||
}
|
||||
|
||||
COEUI_DISPLAYMODE = { "自定义", "最新施放的", "动态图腾组合" }
|
||||
|
||||
COEUI_DISPLAYALIGN = { "方形", "垂直", "水平" }
|
||||
|
||||
COEUI_PVPSETS = { "[PVP] 德鲁伊", "[PVP] 猎人", "[PVP] 法师", "[PVP] 圣骑士", "[PVP] 牧师",
|
||||
"[PVP] 盗贼", "[PVP] 萨满祭司", "[PVP] 术士", "[PVP] 战士" }
|
||||
COEUI_DEFAULTSET = "默认";
|
||||
|
||||
COEUI_OVERRIDERANK = { "无按键", "使用SHIFT", "使用ALT", "使用CTRL" };
|
||||
|
||||
COEUI_CURRENTFRAME = { "大地", "火焰", "水", "空气" };
|
||||
|
||||
COEUI_DIRECTION = { "上", "下", "左", "右" };
|
||||
|
||||
COEUI_FRAMEMODE = { "关闭", "打开", "弹出", "隐藏" };
|
||||
|
||||
|
||||
-- Key bindings
|
||||
-- -------------
|
||||
BINDING_HEADER_CALLOFELEMENTS = "Call Of Elements";
|
||||
BINDING_NAME_COESHOWCONFIG = "显示设置菜单";
|
||||
BINDING_NAME_COEBESTHEAL = "最佳等级治疗波";
|
||||
BINDING_NAME_COEBATTLEHEAL = "最佳等级次级治疗波";
|
||||
BINDING_NAME_COETHROWADVISED = "施放下一个建议图腾";
|
||||
BINDING_NAME_COENEXTSET = "激活下一组图腾组合";
|
||||
BINDING_NAME_COETHROWSET = "施放动态图腾组合";
|
||||
BINDING_NAME_COERESTARTSET = "重启动态图腾组合";
|
||||
BINDING_NAME_TOTEMEARTH1 = "大地图腾#1";
|
||||
BINDING_NAME_TOTEMEARTH2 = "大地图腾#2";
|
||||
BINDING_NAME_TOTEMEARTH3 = "大地图腾#3";
|
||||
BINDING_NAME_TOTEMEARTH4 = "大地图腾#4";
|
||||
BINDING_NAME_TOTEMEARTH5 = "大地图腾#5";
|
||||
BINDING_NAME_TOTEMFIRE1 = "火焰图腾#1";
|
||||
BINDING_NAME_TOTEMFIRE2 = "火焰图腾#2";
|
||||
BINDING_NAME_TOTEMFIRE3 = "火焰图腾#3";
|
||||
BINDING_NAME_TOTEMFIRE4 = "火焰图腾#4";
|
||||
BINDING_NAME_TOTEMFIRE5 = "火焰图腾#5";
|
||||
BINDING_NAME_TOTEMWATER1 = "水之图腾#1";
|
||||
BINDING_NAME_TOTEMWATER2 = "水之图腾#2";
|
||||
BINDING_NAME_TOTEMWATER3 = "水之图腾#3";
|
||||
BINDING_NAME_TOTEMWATER4 = "水之图腾#4";
|
||||
BINDING_NAME_TOTEMWATER5 = "水之图腾#5";
|
||||
BINDING_NAME_TOTEMWATER6 = "水之图腾#6";
|
||||
BINDING_NAME_TOTEMAIR1 = "空气图腾#1";
|
||||
BINDING_NAME_TOTEMAIR2 = "空气图腾#2";
|
||||
BINDING_NAME_TOTEMAIR3 = "空气图腾#3";
|
||||
BINDING_NAME_TOTEMAIR4 = "空气图腾#4";
|
||||
BINDING_NAME_TOTEMAIR5 = "空气图腾#5";
|
||||
BINDING_NAME_TOTEMAIR6 = "空气图腾#6";
|
||||
BINDING_NAME_TOTEMAIR7 = "空气图腾#7";
|
||||
|
||||
|
||||
-- Key modifiers
|
||||
-- --------------
|
||||
COEMODIFIER_ALT = "ALT";
|
||||
COEMODIFIER_ALT_SHORT = "A";
|
||||
COEMODIFIER_CTRL = "CTRL";
|
||||
COEMODIFIER_CTRL_SHORT = "C";
|
||||
COEMODIFIER_SHIFT = "SHIFT";
|
||||
COEMODIFIER_SHIFT_SHORT = "S";
|
||||
COEMODIFIER_NUMPAD = "Num Pad";
|
||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||
|
||||
|
||||
-- Shell commands
|
||||
-- ---------------
|
||||
COESHELL_INTRO = "Call Of Elements的命令行指令:";
|
||||
COESHELL_CONFIG = "'/coe' or '/coe config' - 显示设置窗口";
|
||||
COESHELL_LIST = "'/coe list' - 显示这份列表";
|
||||
COESHELL_NEXTSET = "'/coe nexset' - 切换到下一组自定义图腾组合或默认图腾组合";
|
||||
COESHELL_PRIORSET = "'/coe priorset' - 切换到前一组自定义图腾组合或默认图腾组合";
|
||||
COESHELL_SET = "'/coe set <名字>' - 切换到指定名字的图腾组合。";
|
||||
COESHELL_RESTARTSET = "'/coe restartset' - 你下次施放图腾组合时重置所有图腾";
|
||||
COESHELL_RESET = "'/coe reset' - 重置所有计时器和动态图腾组合";
|
||||
COESHELL_RESETFRAMES = "'/coe resetframes' - 移动各系图腾栏到屏幕中央";
|
||||
COESHELL_RESETORDERING = "'/coe resetordering' - 重置你的图腾栏顺序";
|
||||
COESHELL_RELOAD = "'/coe reload' - 重置所有图腾和图腾组合";
|
||||
COESHELL_MACRONOTE = "下面的命令只有当你把它作为宏拖曳到动作条上时才会起作用:";
|
||||
COESHELL_THROWSET = "'/coe throwset' - 施放动态图腾组合";
|
||||
COESHELL_ADVISED = "'/coe advised' - 施放下一个建议图腾";
|
||||
|
||||
end
|
||||
@@ -0,0 +1,244 @@
|
||||
--[[ ----------------------------------------------------------------
|
||||
|
||||
G E R M A N
|
||||
|
||||
-------------------------------------------------------------------]]
|
||||
|
||||
if( GetLocale() == "deDE" ) then
|
||||
|
||||
-- Errors
|
||||
-- -------
|
||||
COESTR_NOTASHAMAN = "Ihr seid kein Schamane. Entlade Call Of Elements";
|
||||
COESTR_NOTOTEM = "Noch kein Totem verf\195\188gbar";
|
||||
COESTR_UI_NOTASSIGNED = "<Kein Text zugewiesen>";
|
||||
COESTR_INVALIDELEMENT = "Unbekannter Elementname im Totem gefunden: ";
|
||||
|
||||
|
||||
-- Notifications
|
||||
-- --------------
|
||||
COESTR_TOTEMWARNING = "%s l\195\164uft in %d Sekunden ab";
|
||||
COESTR_TOTEMEXPIRED = "%s ist abgelaufen";
|
||||
COESTR_TOTEMDESTROYED = "%s wurde ZERST\195\150RT";
|
||||
COESTR_SWITCHTOSET = "%s Totemset aktiviert";
|
||||
COESTR_FIXEDSETS = "Die Lokalisierung der Elementreihenfolgen Eurer Totemsets wurden korrigiert.";
|
||||
COESTR_UDATEDSAVED = "Gespeicherte Einstellungen aktualisiert auf Version ";
|
||||
COESTR_FIXEDDISPLAY = "Es wurden Fehler in den gespeicherten Einstellungen behoben.";
|
||||
COESTR_TOTEMSRELOADED = "Totems wurden neu geladen";
|
||||
COESTR_RESTARTINGSET = "Aktives Set wurde erneuert";
|
||||
COESTR_RESET = "Timer wurden zur\195\188ckgesetzt";
|
||||
COESTR_HEALCOOLDOWN = " ist noch nicht bereit!";
|
||||
COESTR_NOHEALING = "Keine Heilung n\195\182tig";
|
||||
COESTR_HEALING = "Heile %s mit %s (Rang %d)";
|
||||
COESTR_HEALLOWERRANK = "Nicht genug Mana. Benutze stattdessen Rang %d";
|
||||
COESTR_HEALOOM = "Kein Mana mehr!";
|
||||
|
||||
|
||||
-- String patterns
|
||||
-- ----------------
|
||||
COESTR_SCANTOTEMS = "Totem";
|
||||
COESTR_TOTEMTOOLS = "Werkzeuge: (.*)totem";
|
||||
COESTR_TOTEMMANA = "(%d*) Mana";
|
||||
COESTR_TOTEMRANK = "Rang (%d)";
|
||||
COESTR_MINUTEDURATION = "(%d[%.,]%d%d) Min";
|
||||
COESTR_MINUTEDURATION_INT = "(%d) Min";
|
||||
COESTR_SECDURATION = "(%d%d?) Sek";
|
||||
COESTR_CASTBYNAME = "%(Rang (%d)%)";
|
||||
COESTR_TOTEMDAMAGE = { ".+ trifft (Totem .-) ?%u*%.? kritisch f\195\188r (%d+).",
|
||||
".+ trifft (Totem .-) ?%u*%.? f\195\188r (%d+)." };
|
||||
COESTR_TOTEMHEALTH = { "(%d*) Punkt%(en%) Gesundheit"; "(%d*) Gesundheit" };
|
||||
COESTR_SHOCKSPELL = "(%a*schock)";
|
||||
COESTR_HEALINGWAVE = "Welle der Heilung";
|
||||
COESTR_LESSERWAVE = "Geringe Welle der Heilung";
|
||||
COESTR_MINAMOUNT = "(%d*) bis";
|
||||
COESTR_MAXAMOUNT = "bis (%d*)";
|
||||
COESTR_TRINKET = "^.*%[Entz\195\188ckter Wassergeist%].*$";
|
||||
|
||||
|
||||
-- Totem Advisor
|
||||
-- --------------
|
||||
COESTR_POISON = "Gift";
|
||||
COESTR_DISEASE = "Krankheit";
|
||||
COESTR_TOTEMPOISON = "Totem der Giftreinigung";
|
||||
COESTR_TOTEMDISEASE = "Totem der Krankheitsreinigung";
|
||||
COESTR_TOTEMTREMOR = "Totem des Erdsto\195\159es";
|
||||
COESTR_CLEANSINGTOTEM = "Jetzt %s werfen!";
|
||||
|
||||
COESTR_TREMOR = {
|
||||
"Schlaf", "Terrify", "Psychic Scream", "Mind Control", "Dr\195\182hnendes Gebr\195\188ll", "Fear",
|
||||
"Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
|
||||
"Howl of Terror", "Einsch\195\188chterndes Knurren"
|
||||
}
|
||||
|
||||
|
||||
-- Tools
|
||||
-- ---------
|
||||
COESTR_TOTEMTOOLS_EARTH = "Erd";
|
||||
COESTR_TOTEMTOOLS_FIRE = "Feuer";
|
||||
COESTR_TOTEMTOOLS_WATER = "Wasser";
|
||||
COESTR_TOTEMTOOLS_AIR = "Luft";
|
||||
|
||||
|
||||
-- Elements
|
||||
-- ---------
|
||||
COESTR_ELEMENT_EARTH = "Erde";
|
||||
COESTR_ELEMENT_FIRE = "Feuer";
|
||||
COESTR_ELEMENT_WATER = "Wasser";
|
||||
COESTR_ELEMENT_AIR = "Luft";
|
||||
|
||||
|
||||
-- UI elements
|
||||
-- ------------
|
||||
COEUI_STRINGS = {
|
||||
COE_ConfigClose = "Schlie\195\159en";
|
||||
COE_ConfigTotemTabPanel = "Totemoptionen";
|
||||
COE_ConfigHealingTabPanel = "Heilungsoptionen";
|
||||
COE_ConfigDebuffTabPanel = "Debuff-Optionen";
|
||||
COE_ConfigTotemTotemBar = "Totemleisten";
|
||||
COE_ConfigTotemTotemOptions = "Optionen";
|
||||
COE_ConfigTotemTotemSets = "Totem Sets";
|
||||
COE_OptionEnableTotemBar = "Totemleiste aktivieren";
|
||||
COE_OptionHideBackdrop = "Hintergrund verbergen wenn inaktiv";
|
||||
COE_OptionEnableTimers = "Totem Timer aktivieren";
|
||||
COE_OptionEnableTimerNotifications = "Warnungen anzeigen";
|
||||
COE_OptionTTAlignment = "Tooltip Ausrichtung";
|
||||
COE_OptionDisplayMode = "Ankerbutton";
|
||||
COE_OptionDisplayAlignment = "Anordnung";
|
||||
COE_OptionAdvisor = "Totemvorschl\195\164ge aktivieren";
|
||||
COE_OptionEnableSets = "Totem Sets aktivieren";
|
||||
COE_OptionEnableAutoSwitch = "Sets im PVP automatisch wechseln";
|
||||
COE_OptionActiveSet = "Aktives Totemset";
|
||||
COE_OptionNewSet = "Neues Set";
|
||||
COE_OptionDeleteSet = "Set l\195\182schen";
|
||||
COE_OptionConfigureSet = "Set konfigurieren";
|
||||
COE_OptionStopConfigureSet = "OK";
|
||||
COE_OptionCastOrderString = "Reihenfolge";
|
||||
COE_OptionConfigureBar = "Totems konfigurieren";
|
||||
COE_OptionFixBar = "Totemleisten fixieren";
|
||||
COE_OptionConfigureOrder = "Totemreihenfolge";
|
||||
COE_OptionScanTotems = "Totems neu laden";
|
||||
COE_OptionCurrentFrame = "Leiste konfigurieren";
|
||||
COE_OptionDirection = "Ausrichtung";
|
||||
COE_OptionFrameMode = "Modus";
|
||||
COE_OptionFlexCount = "Statische Buttons";
|
||||
COE_OptionScaling = "Skalierung";
|
||||
COE_OptionEnableTimerFrame = "Separates Timerfenster anzeigen";
|
||||
COE_OptionOverrideRank = "Rang 1 Taste";
|
||||
COE_OptionGroupBars = "Leisten als Gruppe ziehen";
|
||||
COE_OptionFrameTimersOnly = "Timer NUR im Timerfenster anzeigen";
|
||||
}
|
||||
|
||||
|
||||
-- Tooltips
|
||||
-- ---------
|
||||
COEUI_TOOLTIPS = {
|
||||
COE_ConfigTotemTab = "Zeigt die Totemoptionen an";
|
||||
COE_ConfigHealingTab = "Zeigt die Heilungs-Optionen an";
|
||||
COE_ConfigDebuffTab = "Zeigt die Debuff-Optionen an";
|
||||
COE_OptionEnableTotemBar = "Aktiviert die Totemleiste,\ndie alle verf\195\188gbaren Totems\nzur schnellen Benutzung anzeigt";
|
||||
COE_OptionHideBackdrop = "Verbirgt den Hintergrund wenn sich\ndie Maus nicht über der Totemleiste befindet";
|
||||
COE_OptionEnableTimers = "Aktiviert die Anzeige der noch\nverbleibenden Totemzeit in den Totembuttons";
|
||||
COE_OptionEnableTimerNotifications = "Zeigt Warnungen an, wenn ein Totem\nabl\195\164uft oder zerst\195\182rt wird";
|
||||
COE_OptionAdvisor = "Benachrichtigt Euch wenn Ihr oder ein Mitglied\nEurer Gruppe einen Debuff hat,\nder mit einem eurer Totems heilbar ist";
|
||||
COE_OptionEnableAutoSwitch = "Aktiviert automatisch das passende Totemset,\nwenn ein feindlicher Spieler angew\195\164hlt wird";
|
||||
COE_OptionFixBar = "Fixiert die Totemleiste, so dass sie nicht mehr\nversehentlich verschoben werden kann";
|
||||
COE_OptionGroupBars = "Wenn Ihr eine Leiste zieht,\nfolgen die anderen Leisten der Bewegung";
|
||||
}
|
||||
|
||||
COESTR_TRINKET_TOOLTIP = "Entz\195\188ckter Wassergeist";
|
||||
COESTR_TRINKET_TOTEM = "Uraltes Totem der Manaquelle";
|
||||
|
||||
|
||||
-- Combo boxes
|
||||
-- ------------
|
||||
COEUI_TTALIGN = {
|
||||
{ "ANCHOR_TOPLEFT"; "Oben links" };
|
||||
{ "ANCHOR_LEFT"; "Links" };
|
||||
{ "ANCHOR_BOTTOMLEFT"; "Unten links" };
|
||||
{ "ANCHOR_TOPRIGHT"; "Oben rechts" };
|
||||
{ "ANCHOR_RIGHT"; "Rechts" };
|
||||
{ "ANCHOR_BOTTOMRIGHT"; "Unten rechts" };
|
||||
{ "DISABLED"; "Deaktiviert" };
|
||||
}
|
||||
|
||||
COEUI_DISPLAYMODE = { "Benutzerdefiniert", "Nur Timer", "Aktives Set" }
|
||||
|
||||
COEUI_DISPLAYALIGN = { "Box", "Vertikal", "Horizontal" }
|
||||
|
||||
COEUI_PVPSETS = { "[PVP] Druide", "[PVP] Hexer", "[PVP] J\195\164ger", "[PVP] Krieger", "[PVP] Magier",
|
||||
"[PVP] Paladin", "[PVP] Priester", "[PVP] Schamane", "[PVP] Schurke" }
|
||||
COEUI_DEFAULTSET = "Standardset";
|
||||
|
||||
COEUI_OVERRIDERANK = { "Keine Taste", "Mit SHIFT", "Mit ALT", "Mit STRG" };
|
||||
|
||||
COEUI_CURRENTFRAME = { "Erde", "Feuer", "Wasser", "Luft" };
|
||||
|
||||
COEUI_DIRECTION = { "Hoch", "Runter", "Links", "Rechts" };
|
||||
|
||||
COEUI_FRAMEMODE = { "Geschlossen", "Offen", "Flex", "Unsichtbar" };
|
||||
|
||||
|
||||
-- Key bindings
|
||||
-- -------------
|
||||
BINDING_HEADER_CALLOFELEMENTS = "Call Of Elements";
|
||||
BINDING_NAME_COESHOWCONFIG = "Konfigurationsdialog anzeigen";
|
||||
BINDING_NAME_COEBESTHEAL = "Beste Heilung";
|
||||
BINDING_NAME_COEBATTLEHEAL = "Kampf-Heilung";
|
||||
BINDING_NAME_COETHROWADVISED = "Vorgeschlagenen Totem werfen";
|
||||
BINDING_NAME_COENEXTSET = "Zum n\195\164chsten Totemset wechseln ";
|
||||
BINDING_NAME_COETHROWSET = "Das aktive Totemset werfen";
|
||||
BINDING_NAME_COERESTARTSET = "Das aktive Totemset erneuern";
|
||||
BINDING_NAME_TOTEMEARTH1 = "Erdtotem #1";
|
||||
BINDING_NAME_TOTEMEARTH2 = "Erdtotem #2";
|
||||
BINDING_NAME_TOTEMEARTH3 = "Erdtotem #3";
|
||||
BINDING_NAME_TOTEMEARTH4 = "Erdtotem #4";
|
||||
BINDING_NAME_TOTEMEARTH5 = "Erdtotem #5";
|
||||
BINDING_NAME_TOTEMFIRE1 = "Feuertotem #1";
|
||||
BINDING_NAME_TOTEMFIRE2 = "Feuertotem #2";
|
||||
BINDING_NAME_TOTEMFIRE3 = "Feuertotem #3";
|
||||
BINDING_NAME_TOTEMFIRE4 = "Feuertotem #4";
|
||||
BINDING_NAME_TOTEMFIRE5 = "Feuertotem #5";
|
||||
BINDING_NAME_TOTEMWATER1 = "Wassertotem #1";
|
||||
BINDING_NAME_TOTEMWATER2 = "Wassertotem #2";
|
||||
BINDING_NAME_TOTEMWATER3 = "Wassertotem #3";
|
||||
BINDING_NAME_TOTEMWATER4 = "Wassertotem #4";
|
||||
BINDING_NAME_TOTEMWATER5 = "Wassertotem #5";
|
||||
BINDING_NAME_TOTEMWATER6 = "Wassertotem #6";
|
||||
BINDING_NAME_TOTEMAIR1 = "Lufttotem #1";
|
||||
BINDING_NAME_TOTEMAIR2 = "Lufttotem #2";
|
||||
BINDING_NAME_TOTEMAIR3 = "Lufttotem #3";
|
||||
BINDING_NAME_TOTEMAIR4 = "Lufttotem #4";
|
||||
BINDING_NAME_TOTEMAIR5 = "Lufttotem #5";
|
||||
BINDING_NAME_TOTEMAIR6 = "Lufttotem #6";
|
||||
BINDING_NAME_TOTEMAIR7 = "Lufttotem #7";
|
||||
|
||||
|
||||
-- Key modifiers
|
||||
-- --------------
|
||||
COEMODIFIER_ALT = "ALT";
|
||||
COEMODIFIER_ALT_SHORT = "A";
|
||||
COEMODIFIER_CTRL = "STRG";
|
||||
COEMODIFIER_CTRL_SHORT = "ST";
|
||||
COEMODIFIER_SHIFT = "SHIFT";
|
||||
COEMODIFIER_SHIFT_SHORT = "S";
|
||||
COEMODIFIER_NUMPAD = "Num Pad";
|
||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||
|
||||
|
||||
-- Shell commands
|
||||
-- ---------------
|
||||
COESHELL_INTRO = "Verf\195\188gbare Befehle f\195\188r Call Of Elements:";
|
||||
COESHELL_CONFIG = "'/coe' oder '/coe config' - Zeigt den Konfigurationsdialog an";
|
||||
COESHELL_LIST = "'/coe list' - Zeigt diese Liste an";
|
||||
COESHELL_NEXTSET = "'/coe nexset' - Wechselt zum n\195\164chsten Benutzerset oder zum Standardset";
|
||||
COESHELL_PRIORSET = "'/coe priorset' - Wechselt zum vorherigen Benutzerset oder zum Standardset";
|
||||
COESHELL_SET = "'/coe set <name>' - Wechselt zum Set mit dem angegebenen Namen. Gro\195\159-/Kleinschreibung ist wichtig";
|
||||
COESHELL_RESTARTSET = "'/coe restartset' - Totems werden neu geworfen, wenn das aktive Set das n\195\164chste Mal geworfen wird";
|
||||
COESHELL_RESET = "'/coe reset' - Setzt alle Timer und das aktive Set zurück";
|
||||
COESHELL_RESETFRAMES = "'/coe resetframes' - Alle Leisten kehren zur Mitte des Bildschirms zurück";
|
||||
COESHELL_RESETORDERING = "'/coe resetordering' - Setzt die Reihenfolgen der Totems zurück";
|
||||
COESHELL_RELOAD = "'/coe reload' - Lädt alle Totems und Sets neu";
|
||||
COESHELL_MACRONOTE = "Die folgenden Befehle funktionieren nur als Makros auf einem Action Button:";
|
||||
COESHELL_THROWSET = "'/coe throwset' - Wirft den n\195\164chsten Totem des aktiven Totemsets";
|
||||
COESHELL_ADVISED = "'/coe advised' - Wirft den n\195\164chsten vorgeschlagenen Totem";
|
||||
|
||||
end
|
||||
@@ -0,0 +1,261 @@
|
||||
--[[ ----------------------------------------------------------------
|
||||
|
||||
F R E N C H by mcaoua
|
||||
|
||||
-------------------------------------------------------------------]]
|
||||
if( GetLocale() == "frFR" ) then
|
||||
|
||||
|
||||
-- Errors
|
||||
-- -------
|
||||
COESTR_NOTASHAMAN = "Vous n'\195\70tes pas un chaman. Call Of Elements d\195\169sactiv\195\169";
|
||||
COESTR_NOTOTEM = "Aucun totem n'est disponible";
|
||||
COESTR_UI_NOTASSIGNED = "<Pas assign\195\169>";
|
||||
COESTR_INVALIDELEMENT = "El\195\169ment invalide dans le totem: ";
|
||||
|
||||
|
||||
-- Notifications
|
||||
-- --------------
|
||||
COESTR_TOTEMWARNING = "%s expire dans %d secondes";
|
||||
COESTR_TOTEMEXPIRED = "%s a expir\195\169";
|
||||
COESTR_TOTEMDESTROYED = "%s a \195\169t\195\169 DETRUIT";
|
||||
COESTR_SWITCHTOSET = "%s set activ\195\169";
|
||||
COESTR_FIXEDSETS = "Corrig\195\169 l'ordre de cast des sets.";
|
||||
COESTR_UDATEDSAVED = "Param\195\168tres sauvegard\195\169s actualis\195\169s pour cette version ";
|
||||
COESTR_FIXEDDISPLAY = "Corrig\195\169 les erreurs dans les param\195\168tres.";
|
||||
COESTR_TOTEMSRELOADED = "Totems relanc\195\169";
|
||||
COESTR_RESTARTINGSET = "Modifi\195\169 le set actif ";
|
||||
COESTR_RESET = "Timers remis à z\195\169ro";
|
||||
COESTR_HEALCOOLDOWN = " n'est pas encore pr\195\170t!";
|
||||
COESTR_NOHEALING = "Pas besoin de soins";
|
||||
COESTR_HEALING = "Soigne %s avec %s (Rang %d)";
|
||||
COESTR_HEALLOWERRANK = "Pas assez de mana. Utilise le rang %d";
|
||||
COESTR_HEALOOM = "Pas assez de mana!";
|
||||
|
||||
|
||||
-- String patterns
|
||||
-- ----------------
|
||||
COESTR_SCANTOTEMS = "Totem";
|
||||
COESTR_TOTEMTOOLS = "Outils..:.Totem.(.*)";
|
||||
COESTR_TOTEMMANA = "Mana.:.(%d*)";
|
||||
COESTR_TOTEMRANK = "Rang (%d)";
|
||||
COESTR_MINUTEDURATION = "(%d%.%d%d) min";
|
||||
COESTR_MINUTEDURATION_INT = "(%d) min";
|
||||
COESTR_SECDURATION = "(%d%d?) sec";
|
||||
COESTR_CASTBYNAME = "%(Rang (%d)%)";
|
||||
COESTR_TOTEMDAMAGE = { ".+ [crh]+touche (.+ Totem) ?%u* pour (%d+).*" };
|
||||
COESTR_TOTEMHEALTH = { "(%d*) points de vie" };
|
||||
COESTR_SHOCKSPELL = "(Horion de %a*)";
|
||||
COESTR_HEALINGWAVE = "Vague de soins";
|
||||
COESTR_LESSERWAVE = "Vague de soins inf\195\169rieurs";
|
||||
COESTR_MINAMOUNT = "(%d*).\195\160";
|
||||
COESTR_MAXAMOUNT = "\195\160.(%d*)";
|
||||
COESTR_TRINKET = "^.*%[Esprit de l\039eau amoureux%].*$";
|
||||
|
||||
|
||||
-- Totem Advisor
|
||||
-- --------------
|
||||
COESTR_POISON = "Poison";
|
||||
COESTR_DISEASE = "Maladie"
|
||||
COESTR_TOTEMPOISON = "Totem de Purification du poison";
|
||||
COESTR_TOTEMDISEASE = "Totem de Purification des maladies";
|
||||
COESTR_TOTEMTREMOR = "Totem de S\195\169isme";
|
||||
COESTR_CLEANSINGTOTEM = "Lance %s maintenant!";
|
||||
|
||||
COESTR_TREMOR = {
|
||||
"Sommeil", "Terrifier", "Cri psychique", "Contr\195\180le mental", "Rugissement", "Peur",
|
||||
"Cri d'intimidation", "Panique", "Hurlement strident", "S\195\169duction",
|
||||
"Hurlement de terreur", "Grondement d'intimidation", "L\195\169thargie cristalline"
|
||||
}
|
||||
|
||||
-- Tools
|
||||
-- ---------
|
||||
COESTR_TOTEMTOOLS_EARTH = "de terre";
|
||||
COESTR_TOTEMTOOLS_FIRE = "de feu";
|
||||
COESTR_TOTEMTOOLS_WATER = "d'eau";
|
||||
COESTR_TOTEMTOOLS_AIR = "d'air";
|
||||
|
||||
|
||||
-- Elements
|
||||
-- ---------
|
||||
COESTR_ELEMENT_EARTH = "Terre";
|
||||
COESTR_ELEMENT_FIRE = "Feu";
|
||||
COESTR_ELEMENT_WATER = "Eau";
|
||||
COESTR_ELEMENT_AIR = "Air";
|
||||
|
||||
|
||||
-- UI elements
|
||||
-- ------------
|
||||
COEUI_STRINGS = {
|
||||
COE_ConfigClose = "Fermer";
|
||||
COE_ConfigTotemTabPanel = "Options Totem";
|
||||
COE_ConfigHealingTabPanel = "Options Soins";
|
||||
COE_ConfigDebuffTabPanel = "Options Debuff";
|
||||
COE_ConfigTotemTotemBar = "Barres";
|
||||
COE_ConfigTotemTotemOptions = "Options";
|
||||
COE_ConfigTotemTotemSets = "Sets";
|
||||
COE_OptionEnableTotemBar = "Activer";
|
||||
COE_OptionHideBackdrop = "Cacher le fond quand inactif";
|
||||
COE_OptionEnableTimers = "Activer l'affichage des dur\195\169es (Timers)";
|
||||
COE_OptionEnableTimerNotifications = "Activer les notifications";
|
||||
COE_OptionTTAlignment = "Alignement Tooltip";
|
||||
COE_OptionDisplayMode = "Bouton d'ancre";
|
||||
COE_OptionDisplayAlignment = "Alignement";
|
||||
COE_OptionAdvisor = "Activer l'Advisor";
|
||||
COE_OptionEnableSets = "Activer les sets";
|
||||
COE_OptionEnableAutoSwitch = "Changement automatique en PVP";
|
||||
COE_OptionActiveSet = "Activer set";
|
||||
COE_OptionNefdwSet = "Nouveau set";
|
||||
COE_OptionDeleteSet = "Effacer set";
|
||||
COE_OptionConfigureSet = "Configurer set";
|
||||
COE_OptionStopConfigureSet = "OK";
|
||||
COE_OptionCastOrderString = "Ordre de cast";
|
||||
COE_OptionConfigureBar = "Configurer Totems";
|
||||
COE_OptionFixBar = "V\195\169rouiller la position";
|
||||
COE_OptionConfigureOrder = "Configurer Ordre";
|
||||
COE_OptionScanTotems = "Relancer";
|
||||
COE_OptionCurrentFrame = "Configurer Barre";
|
||||
COE_OptionDirection = "Direction";
|
||||
COE_OptionFrameMode = "Mode";
|
||||
COE_OptionFlexCount = "Boutons Statiques";
|
||||
COE_OptionScaling = "Echelle";
|
||||
COE_OptionEnableTimerFrame = "Affichage des dur\195\169es dans des boutons s\195\169par\195\169s";
|
||||
COE_OptionGroupBars = "D\195\169placement group\195\169";
|
||||
COE_OptionOverrideRank = "Forcer le Rang 1";
|
||||
COE_OptionFrameTimersOnly = "Montrer les dur\195\169es QUE dans les boutons s\195\169par\195\169s";
|
||||
}
|
||||
|
||||
|
||||
-- Tooltips
|
||||
-- ---------
|
||||
COEUI_TOOLTIPS = {
|
||||
COE_ConfigTotemTab = "Montrer les option de Totem";
|
||||
COE_ConfigHealingTab = "Montrer les options de soins";
|
||||
COE_ConfigDebuffTab = "Montrer les options de debuff";
|
||||
COE_OptionEnableTotemBar = "Activer et afficher la barre qui contient\nles totems disponibles que vous pouvez utiliser";
|
||||
COE_OptionHideBackdrop = "Cache le fond lorsque la souris\nn'est pas sur la barre";
|
||||
COE_OptionEnableTimers = "Active l'affichage du temps restant des totems";
|
||||
COE_OptionEnableTimerNotifications = "Affiche un avertissement lorsqu'un\ntotem expire ou est d\195\169truit";
|
||||
COE_OptionAdvisor = "Affiche un message lorsqu'un debuff peut \195\170tre enlev\195\169 par un de vos totems";
|
||||
COE_OptionEnableAutoSwitch = "Active automatiquement le set en fontion\nde la classe de l'ennemi cibl\195\169";
|
||||
COE_OptionFixBar = "V\195\169rouille la position de la barre\nafin d'\195\169viter un d\195\169placement accidentel";
|
||||
COE_OptionGroupBars = "Lorsque vous d\195\169placer une barre,\nles autres sont d\195\169plac\195\169es en m\195\170me temps";
|
||||
}
|
||||
|
||||
COESTR_TRINKET_TOOLTIP = "Esprit de l\039eau amoureux";
|
||||
COESTR_TRINKET_TOTEM = "Ressort Antique De Mana";
|
||||
|
||||
|
||||
-- Combo boxes
|
||||
-- ------------
|
||||
COEUI_TTALIGN = {
|
||||
{ "ANCHOR_TOPLEFT"; "Haut gauche" };
|
||||
{ "ANCHOR_LEFT"; "Gauche" };
|
||||
{ "ANCHOR_BOTTOMLEFT"; "Bas gauche" };
|
||||
{ "ANCHOR_TOPRIGHT"; "Haut droite" };
|
||||
{ "ANCHOR_RIGHT"; "Droite" };
|
||||
{ "ANCHOR_BOTTOMRIGHT"; "Bas droite" };
|
||||
{ "DISABLED"; "D\195\169sactiv\195\169" };
|
||||
}
|
||||
|
||||
COEUI_DISPLAYMODE = { "Customize", "Timers", "Set actif" }
|
||||
|
||||
COEUI_DISPLAYALIGN = { "Box", "Vertical", "Horizontal" }
|
||||
|
||||
COEUI_PVPSETS = { "[PVP] Druide", "[PVP] Chasseur", "[PVP] Mage", "[PVP] Paladin", "[PVP] Pr\195\170tre",
|
||||
"[PVP] Voleur", "[PVP] Chaman", "[PVP] D\195\169moniste", "[PVP] Guerrier" }
|
||||
COEUI_DEFAULTSET = "D\195\169faut";
|
||||
|
||||
COEUI_OVERRIDERANK = { "Aucune", "Avec SHIFT", "Avec ALT", "Avec CTRL" };
|
||||
|
||||
COEUI_CURRENTFRAME = { "Terre", "Feu", "Eau", "Air" };
|
||||
|
||||
COEUI_DIRECTION = { "Haut", "Bas", "Gauche", "Droite" };
|
||||
|
||||
COEUI_FRAMEMODE = { "Ferm\195\169", "Ouvert", "Flex", "Cach\195\169" };
|
||||
|
||||
|
||||
-- Key bindings
|
||||
-- -------------
|
||||
BINDING_HEADER_CALLOFELEMENTS = "Call Of Elements";
|
||||
BINDING_NAME_COESHOWCONFIG = "Afficher configuration";
|
||||
BINDING_NAME_COEBESTHEAL = "Meilleur soin";
|
||||
BINDING_NAME_COEBATTLEHEAL = "BattleHeal";
|
||||
BINDING_NAME_COETHROWADVISED = "Lancer le Totem propos\195\169";
|
||||
BINDING_NAME_COENEXTSET = "Activer le set suivant";
|
||||
BINDING_NAME_COETHROWSET = "Lancer le set actif";
|
||||
BINDING_NAME_COERESTARTSET = "Relancer le set actif";
|
||||
BINDING_NAME_TOTEMEARTH1 = "Totem de terre #1";
|
||||
BINDING_NAME_TOTEMEARTH2 = "Totem de terre #2";
|
||||
BINDING_NAME_TOTEMEARTH3 = "Totem de terre #3";
|
||||
BINDING_NAME_TOTEMEARTH4 = "Totem de terre #4";
|
||||
BINDING_NAME_TOTEMEARTH5 = "Totem de terre #5";
|
||||
BINDING_NAME_TOTEMFIRE1 = "Totem de feu #1";
|
||||
BINDING_NAME_TOTEMFIRE2 = "Totem de feu #2";
|
||||
BINDING_NAME_TOTEMFIRE3 = "Totem de feu #3";
|
||||
BINDING_NAME_TOTEMFIRE4 = "Totem de feu #4";
|
||||
BINDING_NAME_TOTEMFIRE5 = "Totem de feu #5";
|
||||
BINDING_NAME_TOTEMWATER1 = "Totem d'eau #1";
|
||||
BINDING_NAME_TOTEMWATER2 = "Totem d'eau #2";
|
||||
BINDING_NAME_TOTEMWATER3 = "Totem d'eau #3";
|
||||
BINDING_NAME_TOTEMWATER4 = "Totem d'eau #4";
|
||||
BINDING_NAME_TOTEMWATER5 = "Totem d'eau #5";
|
||||
BINDING_NAME_TOTEMWATER6 = "Totem d'eau #6";
|
||||
BINDING_NAME_TOTEMAIR1 = "Totem d'air #1";
|
||||
BINDING_NAME_TOTEMAIR2 = "Totem d'air #2";
|
||||
BINDING_NAME_TOTEMAIR3 = "Totem d'air #3";
|
||||
BINDING_NAME_TOTEMAIR4 = "Totem d'air #4";
|
||||
BINDING_NAME_TOTEMAIR5 = "Totem d'air #5";
|
||||
BINDING_NAME_TOTEMAIR6 = "Totem d'air #6";
|
||||
BINDING_NAME_TOTEMAIR7 = "Totem d'air #7";
|
||||
|
||||
|
||||
-- Key modifiers
|
||||
-- --------------
|
||||
COEMODIFIER_ALT = "ALT";
|
||||
COEMODIFIER_ALT_SHORT = "A";
|
||||
COEMODIFIER_CTRL = "CTRL";
|
||||
COEMODIFIER_CTRL_SHORT = "C";
|
||||
COEMODIFIER_SHIFT = "SHIFT";
|
||||
COEMODIFIER_SHIFT_SHORT = "S";
|
||||
COEMODIFIER_NUMPAD = "Num Pad";
|
||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||
|
||||
|
||||
-- Shell commands
|
||||
-- ---------------
|
||||
COESHELL_INTRO = "Commandes disponibles pour Call Of Elements:";
|
||||
COESHELL_CONFIG = "'/coe' or '/coe config' - Affiche l'\195\169cran de configuration";
|
||||
COESHELL_LIST = "'/coe list' - Affiche cette liste";
|
||||
COESHELL_NEXTSET = "'/coe nexset' - Active le prochain set ou au set par d\195\169faut";
|
||||
COESHELL_PRIORSET = "'/coe priorset' -Active le set pr\195\169c\195\169dent ou au set par d\195\169faut";
|
||||
COESHELL_SET = "'/coe set <name>' - Active le set sp\195\169cifi\195\169. <name> est case-sensitive";
|
||||
COESHELL_RESTARTSET = "'/coe restartset' - Au prochain lancement du set, tous les totems seront relanc\195\169s";
|
||||
COESHELL_RESET = "'/coe reset' - Initialisation des timers et du set actif";
|
||||
COESHELL_RESETFRAMES = "'/coe resetframes' - Affiche toutes les barres au centre de l'\195\169cran";
|
||||
COESHELL_RESETORDERING = "'/coe resetordering' - Initialise l'ordre des totems";
|
||||
COESHELL_RELOAD = "'/coe reload' - Recharge tous les totems et les sets";
|
||||
COESHELL_MACRONOTE = "les commandes suivantes ne fonctionnent qu'avec des macros dans les barres d'action:";
|
||||
COESHELL_THROWSET = "'/coe throwset' - Lance le set actif";
|
||||
COESHELL_ADVISED = "'/coe advised' - lance le totem propos\195\169";
|
||||
|
||||
|
||||
end
|
||||
-- ß \195\159
|
||||
-- ö \195\182
|
||||
-- é \195\169
|
||||
-- â \195\162
|
||||
-- ä \195\164
|
||||
-- à \195\160
|
||||
-- ç \195\167
|
||||
-- ê \195\170
|
||||
-- ë \195\171
|
||||
-- è \195\168
|
||||
-- ï \195\175
|
||||
-- î \195\174
|
||||
-- ô \195\180
|
||||
-- ö \195\182
|
||||
-- ù \195\185
|
||||
-- ß \195\159
|
||||
-- DEFAULT_CHAT_FRAME:AddMessage(element);
|
||||
-- COE:DebugMessage( "mcaoua:"..);
|
||||
@@ -0,0 +1,246 @@
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
|
||||
K O R E A N
|
||||
|
||||
-------------------------------------------------------------------]]
|
||||
|
||||
if( GetLocale() == "koKR" ) then
|
||||
|
||||
-- Errors
|
||||
-- -------
|
||||
COESTR_NOTASHAMAN = "주술사가 아닙니다. Call of Elements를 끕니다.";
|
||||
COESTR_NOTOTEM = "아직 사용가능한 토템이 없습니다.";
|
||||
COESTR_UI_NOTASSIGNED = "<할당된 텍스트가 없습니다>";
|
||||
COESTR_INVALIDELEMENT = "토템에서 유효하지 않은 요소가 있습니다.: ";
|
||||
|
||||
|
||||
-- Notifications
|
||||
-- --------------
|
||||
COESTR_TOTEMWARNING = "%s|1이;가; %d초 남았습니다.";
|
||||
COESTR_TOTEMEXPIRED = "%s|1이;가; 사라졌습니다.";
|
||||
COESTR_TOTEMDESTROYED = "%s|1이;가; 파괴되었습니다.";
|
||||
COESTR_SWITCHTOSET = "%s 토템 셋이 활성화되었습니다.";
|
||||
COESTR_FIXEDSETS = "토템셋의 시전순서 배치가 정정되었습니다.";
|
||||
COESTR_UDATEDSAVED = "저장된 변수가 업데이트 되었습니다. 버전 ";
|
||||
COESTR_FIXEDDISPLAY = "SavedVariables에 있던 에러가 정정되었습니다.";
|
||||
COESTR_TOTEMSRELOADED = "토템을 다시 읽어들였습니다.";
|
||||
COESTR_RESTARTINGSET = "활성화셋을 재시작했습니다.";
|
||||
COESTR_RESET = "타이머를 초기화하였습니다.";
|
||||
COESTR_HEALCOOLDOWN = " - 아직 준비되지 않았습니다!";
|
||||
COESTR_NOHEALING = "치유할 필요가 없습니다.";
|
||||
COESTR_HEALING = "%s에게 %s(%d레벨)|1을;를; 시전합니다.";
|
||||
COESTR_HEALLOWERRANK = "마나가 충분하지 않습니다. 대신에 %d레벨을 사용하십시오.";
|
||||
COESTR_HEALOOM = "마나가 부족합니다!";
|
||||
|
||||
|
||||
-- String patterns
|
||||
-- ----------------
|
||||
COESTR_SCANTOTEMS = "토템";
|
||||
COESTR_TOTEMTOOLS = "도구: (.+)의 토템";
|
||||
COESTR_TOTEMMANA = "마나 (%d*)";
|
||||
COESTR_TOTEMRANK = "(%d) 레벨";
|
||||
COESTR_MINUTEDURATION = "(%d%.%d%d)분";
|
||||
COESTR_MINUTEDURATION_INT = "(%d)분";
|
||||
COESTR_SECDURATION = "(%d%d?)초";
|
||||
COESTR_CASTBYNAME = "%((%d) 레벨%)";
|
||||
COESTR_TOTEMDAMAGE = { ".+|1이;가; (.+ 토템) ?%u*|1을;를; 공격하여 (%d+)의 .*[치명상피해을를] 입혔습니다.*", ".+|1이;가; .+|1으로;로; (.+ 토템) ?%u*에게 (%d+)의 .*[치명상피해을를] 입혔습니다.*" };
|
||||
COESTR_TOTEMHEALTH = { "생명력 (%d*)", "(%d*)의 생명력" };
|
||||
COESTR_SHOCKSPELL = "(.* 충격)";
|
||||
COESTR_HEALINGWAVE = "치유의 물결";
|
||||
COESTR_LESSERWAVE = "하급 치유의 물결";
|
||||
COESTR_MINAMOUNT = "(%d*)~";
|
||||
COESTR_MAXAMOUNT = "~(%d*)";
|
||||
COESTR_TRINKET = "^.*%[사로잡힌 물의 정령%].*$";
|
||||
|
||||
|
||||
|
||||
-- Totem Advisor
|
||||
-- --------------
|
||||
COESTR_POISON = "독";
|
||||
COESTR_DISEASE = "질병";
|
||||
COESTR_TOTEMPOISON = "독 정화 토템";
|
||||
COESTR_TOTEMDISEASE = "질병 정화 토템";
|
||||
COESTR_TOTEMTREMOR = "진동의 토템";
|
||||
COESTR_CLEANSINGTOTEM = "%s - 지금 사용 하세요!";
|
||||
|
||||
COESTR_TREMOR = {
|
||||
"수면", "공포", "영혼의 절규", "정신 지배", "우레와같은 울부짖음",
|
||||
"위협의 외침", "공황", "공포의 비명소리", "현혹",
|
||||
"공포의 울부짖음", "위협의 포효", "수정의 자장가", "드루이드의 동면"
|
||||
}
|
||||
|
||||
|
||||
-- Tools
|
||||
-- ---------
|
||||
COESTR_TOTEMTOOLS_EARTH = "대지";
|
||||
COESTR_TOTEMTOOLS_FIRE = "불";
|
||||
COESTR_TOTEMTOOLS_WATER = "물";
|
||||
COESTR_TOTEMTOOLS_AIR = "바람";
|
||||
|
||||
|
||||
-- Elements
|
||||
-- ---------
|
||||
COESTR_ELEMENT_EARTH = "대지";
|
||||
COESTR_ELEMENT_FIRE = "불";
|
||||
COESTR_ELEMENT_WATER = "물";
|
||||
COESTR_ELEMENT_AIR = "바람";
|
||||
|
||||
|
||||
|
||||
-- UI elements
|
||||
-- ------------
|
||||
COEUI_STRINGS = {
|
||||
COE_ConfigClose = "닫기";
|
||||
COE_ConfigTotemTabPanel = "토템 옵션";
|
||||
COE_ConfigHealingTabPanel = "치유 옵션";
|
||||
COE_ConfigDebuffTabPanel = "디버프 옵션";
|
||||
COE_ConfigTotemTotemBar = "토템바";
|
||||
COE_ConfigTotemTotemOptions = "옵션";
|
||||
COE_ConfigTotemTotemSets = "토템셋";
|
||||
COE_OptionEnableTotemBar = "토템바 켜기";
|
||||
COE_OptionHideBackdrop = "비활성화 상태일 때 배경 숨기기";
|
||||
COE_OptionEnableTimers = "토템 타이머 켜기";
|
||||
COE_OptionEnableTimerNotifications = "알림 켜기";
|
||||
COE_OptionTTAlignment = "툴팁 정렬";
|
||||
COE_OptionDisplayMode = "앵커 버튼";
|
||||
COE_OptionDisplayAlignment = "버튼 정렬";
|
||||
COE_OptionAdvisor = "토템 도우미 켜기";
|
||||
COE_OptionEnableSets = "토템셋 켜기";
|
||||
COE_OptionEnableAutoSwitch = "PVP시 토템셋 자동전환";
|
||||
COE_OptionActiveSet = "토템셋 활성화";
|
||||
COE_OptionNewSet = "새 토템셋";
|
||||
COE_OptionDeleteSet = "토템셋 삭제";
|
||||
COE_OptionConfigureSet = "토템셋 설정";
|
||||
COE_OptionStopConfigureSet = "확인";
|
||||
COE_OptionCastOrderString = "시전 순저";
|
||||
COE_OptionConfigureBar = "토템 설정";
|
||||
COE_OptionFixBar = "토템바 위치 고정";
|
||||
COE_OptionConfigureOrder = "순서 설정";
|
||||
COE_OptionScanTotems = "토템 다시 읽기";
|
||||
|
||||
COE_OptionCurrentFrame = "바 설정";
|
||||
COE_OptionDirection = "방향";
|
||||
COE_OptionFrameMode = "바 모드";
|
||||
COE_OptionFlexCount = "고정 버튼";
|
||||
COE_OptionScaling = "크기";
|
||||
COE_OptionEnableTimerFrame = "타이머 프레임을 분리 상태로 보여주기";
|
||||
COE_OptionGroupBars = "그룹으로 바 움직이기";
|
||||
COE_OptionOverrideRank = "1레벨 사용";
|
||||
COE_OptionFrameTimersOnly = "타이머를 타이머 프레임에만 나타내기";
|
||||
}
|
||||
|
||||
|
||||
-- Tooltips
|
||||
-- ---------
|
||||
COEUI_TOOLTIPS = {
|
||||
COE_ConfigTotemTab = "토템 옵션을 보여줍니다.";
|
||||
COE_ConfigHealingTab = "치유 옵션을 보여줍니다.";
|
||||
COE_ConfigDebuffTab = "디버프 옵션을 보여줍니다.";
|
||||
COE_OptionEnableTotemBar = "토템바를 보이도록 설정합니다.";
|
||||
COE_OptionHideBackdrop = "마우스가 토템바위에 없을 때 배경을 감춥니다.";
|
||||
COE_OptionEnableTimers = "토템버튼 안쪽에 토템의 남은 시간을 표시합니다.";
|
||||
COE_OptionEnableTimerNotifications = "토템의 유효시간이 지나거나 파괴되었을 때 경고를 표시합니다.";
|
||||
COE_OptionAdvisor = "파티나 공격대에 토템으로 치유할 수 있는 디버프에 걸린 플레이어가 있을 경우 알림을 표시합니다.";
|
||||
COE_OptionEnableAutoSwitch = "적 플레이어에 따라 자동으로 직업 토템셋을 변경합니다.";
|
||||
COE_OptionFixBar = "토템바의 위치를 고정시킵니다. 이 기능은 갑자기 토템바를 드래그하는 경우를 방지합니다.";
|
||||
COE_OptionGroupBars = "하나의 바를 움직이면 다른 바들도 같이 움직입니다.";
|
||||
}
|
||||
|
||||
COESTR_TRINKET_TOOLTIP = "사로잡힌 물의 정령";
|
||||
COESTR_TRINKET_TOTEM = "고대의 마나셈 토템";
|
||||
|
||||
-- Combo boxes
|
||||
-- ------------
|
||||
COEUI_TTALIGN = {
|
||||
{ "ANCHOR_TOPLEFT"; "좌 상단" };
|
||||
{ "ANCHOR_LEFT"; "좌" };
|
||||
{ "ANCHOR_BOTTOMLEFT"; "좌 하단" };
|
||||
{ "ANCHOR_TOPRIGHT"; "우 상단" };
|
||||
{ "ANCHOR_RIGHT"; "우" };
|
||||
{ "ANCHOR_BOTTOMRIGHT"; "우 하단" };
|
||||
{ "DISABLED"; "끄기" };
|
||||
}
|
||||
|
||||
COEUI_DISPLAYMODE = { "사용자 설정", "타이머만", "활성화된 셋" }
|
||||
|
||||
COEUI_DISPLAYALIGN = { "상자", "세로", "가로" }
|
||||
|
||||
COEUI_PVPSETS = { "[PVP] 드루이드", "[PVP] 사냥꾼", "[PVP] 마법사", "[PVP] 성기사", "[PVP] 사제",
|
||||
"[PVP] Rogue", "[PVP] 주술사", "[PVP] 흑마법사", "[PVP] 전사" }
|
||||
COEUI_DEFAULTSET = "Default";
|
||||
|
||||
COEUI_OVERRIDERANK = { "키없음", "SHIFT키 사용", "ALT키 사용", "CTRL키 사용" };
|
||||
|
||||
COEUI_CURRENTFRAME = { "대지", "불", "물", "바람" };
|
||||
|
||||
COEUI_DIRECTION = { "위", "아래", "왼쪽", "오른쪽" };
|
||||
|
||||
COEUI_FRAMEMODE = { "닫힘", "열림", "수축", "감춤" };
|
||||
|
||||
|
||||
-- Key bindings
|
||||
-- -------------
|
||||
BINDING_HEADER_CALLOFELEMENTS = "Call Of Elements";
|
||||
BINDING_NAME_COESHOWCONFIG = "설정 대화상자 보기";
|
||||
BINDING_NAME_COEBESTHEAL = "최적 치유";
|
||||
BINDING_NAME_COEBATTLEHEAL = "전투 치유";
|
||||
BINDING_NAME_COETHROWADVISED = "토템도우미가 알려준 토템 놓기";
|
||||
BINDING_NAME_COENEXTSET = "다음 토템셋 활성화";
|
||||
BINDING_NAME_COETHROWSET = "활성화된 토템셋 놓기";
|
||||
BINDING_NAME_COERESTARTSET = "활성화된 토템셋 재시작";
|
||||
BINDING_NAME_TOTEMEARTH1 = "대지의 토템 #1";
|
||||
BINDING_NAME_TOTEMEARTH2 = "대지의 토템 #2";
|
||||
BINDING_NAME_TOTEMEARTH3 = "대지의 토템 #3";
|
||||
BINDING_NAME_TOTEMEARTH4 = "대지의 토템 #4";
|
||||
BINDING_NAME_TOTEMEARTH5 = "대지의 토템 #5";
|
||||
BINDING_NAME_TOTEMFIRE1 = "불의 토템 #1";
|
||||
BINDING_NAME_TOTEMFIRE2 = "불의 토템 #2";
|
||||
BINDING_NAME_TOTEMFIRE3 = "불의 토템 #3";
|
||||
BINDING_NAME_TOTEMFIRE4 = "불의 토템 #4";
|
||||
BINDING_NAME_TOTEMFIRE5 = "불의 토템 #5";
|
||||
BINDING_NAME_TOTEMWATER1 = "물의 토템 #1";
|
||||
BINDING_NAME_TOTEMWATER2 = "물의 토템 #2";
|
||||
BINDING_NAME_TOTEMWATER3 = "물의 토템 #3";
|
||||
BINDING_NAME_TOTEMWATER4 = "물의 토템 #4";
|
||||
BINDING_NAME_TOTEMWATER5 = "물의 토템 #5";
|
||||
BINDING_NAME_TOTEMWATER6 = "물의 토템 #6";
|
||||
BINDING_NAME_TOTEMAIR1 = "바람의 토템 #1";
|
||||
BINDING_NAME_TOTEMAIR2 = "바람의 토템 #2";
|
||||
BINDING_NAME_TOTEMAIR3 = "바람의 토템 #3";
|
||||
BINDING_NAME_TOTEMAIR4 = "바람의 토템 #4";
|
||||
BINDING_NAME_TOTEMAIR5 = "바람의 토템 #5";
|
||||
BINDING_NAME_TOTEMAIR6 = "바람의 토템 #6";
|
||||
BINDING_NAME_TOTEMAIR7 = "바람의 토템 #7";
|
||||
|
||||
|
||||
-- Key modifiers
|
||||
-- --------------
|
||||
COEMODIFIER_ALT = "ALT";
|
||||
COEMODIFIER_ALT_SHORT = "A";
|
||||
COEMODIFIER_CTRL = "CTRL";
|
||||
COEMODIFIER_CTRL_SHORT = "C";
|
||||
COEMODIFIER_SHIFT = "SHIFT";
|
||||
COEMODIFIER_SHIFT_SHORT = "S";
|
||||
COEMODIFIER_NUMPAD = "Num Pad";
|
||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||
|
||||
|
||||
-- Shell commands
|
||||
-- ---------------
|
||||
COESHELL_INTRO = "Call Of Elements에서 사용가능한 쉘 명령어:";
|
||||
COESHELL_CONFIG = "'/coe' or '/coe config' - 설정 대화상자를 엽니다.";
|
||||
COESHELL_LIST = "'/coe list' - 이 목록을 보여줍니다.";
|
||||
COESHELL_NEXTSET = "'/coe nexset' - 다음 사용자정의 토템셋 또는 기본토템셋을 전환합니다.";
|
||||
COESHELL_PRIORSET = "'/coe priorset' - 기본 토템셋과 사용자정의 우선토템셋을 전환합니다.";
|
||||
COESHELL_SET = "'/coe set <name>' - 지정된 이름의 토템셋으로 전환합니다. <name>은 (영문)대소문자를 구분합니다.";
|
||||
COESHELL_RESTARTSET = "'/coe restartset' - 다음 번에 토템셋을 박을 때, 현재 활성화된 토템셋의 모든 토템을 처음부터 다시 시전합니다.";
|
||||
COESHELL_RESET = "'/coe reset' - 모든 타이머와 활성화된 토템셋을 초기화합니다.";
|
||||
COESHELL_RESETFRAMES = "'/coe resetframes' - 모든 엘리먼트바를 화면 중간으로 위치시킵니다.";
|
||||
COESHELL_RESETORDERING = "'/coe resetordering' - 토템바의 순서를 초기화합니다.";
|
||||
COESHELL_RELOAD = "'/coe reload' - 모든 토템과 토템셋의 설정을 다시 읽어들입니다.";
|
||||
COESHELL_MACRONOTE = "다음 명령어들은 액션바에 있을 때 매크로로써만 작동합니다.:";
|
||||
COESHELL_THROWSET = "'/coe throwset' - 활성화된 토템셋을 박습니다.";
|
||||
COESHELL_ADVISED = "'/coe advised' - 다음 제안된 토템을 박습니다.";
|
||||
|
||||
end
|
||||
@@ -0,0 +1,239 @@
|
||||
|
||||
--[[ ----------------------------------------------------------------
|
||||
|
||||
E N G L I S H
|
||||
|
||||
-------------------------------------------------------------------]]
|
||||
|
||||
-- Errors
|
||||
-- -------
|
||||
COESTR_NOTASHAMAN = "You are not a shaman. Unloading Call Of Elements";
|
||||
COESTR_NOTOTEM = "No totem available yet";
|
||||
COESTR_UI_NOTASSIGNED = "<No text assigned>";
|
||||
COESTR_INVALIDELEMENT = "Invalid element found in totem: ";
|
||||
|
||||
|
||||
-- Notifications
|
||||
-- --------------
|
||||
COESTR_TOTEMWARNING = "%s expires in %d seconds";
|
||||
COESTR_TOTEMEXPIRED = "%s has expired";
|
||||
COESTR_TOTEMDESTROYED = "%s has been DESTROYED";
|
||||
COESTR_SWITCHTOSET = "%s totem set activated";
|
||||
COESTR_FIXEDSETS = "Fixed the cast order localization of your totem sets.";
|
||||
COESTR_UDATEDSAVED = "Saved variables have been updated to version ";
|
||||
COESTR_FIXEDDISPLAY = "Errors in the SavedVariables have been corrected.";
|
||||
COESTR_TOTEMSRELOADED = "Totems reloaded";
|
||||
COESTR_RESTARTINGSET = "Active set restarted";
|
||||
COESTR_RESET = "Timers have been reset";
|
||||
COESTR_HEALCOOLDOWN = " is not ready yet!";
|
||||
COESTR_NOHEALING = "No healing needed";
|
||||
COESTR_HEALING = "Healing %s with %s (Rank %d)";
|
||||
COESTR_HEALLOWERRANK = "Not enough mana. Using rank %d instead";
|
||||
COESTR_HEALOOM = "Out of mana!";
|
||||
|
||||
|
||||
-- String patterns
|
||||
-- ----------------
|
||||
COESTR_SCANTOTEMS = "Totem";
|
||||
COESTR_TOTEMTOOLS = "Tools: (.*) Totem";
|
||||
COESTR_TOTEMMANA = "(%d*) Mana";
|
||||
COESTR_TOTEMRANK = "Rank (%d)";
|
||||
COESTR_MINUTEDURATION = "(%d%.%d%d) min";
|
||||
COESTR_MINUTEDURATION_INT = "(%d) min";
|
||||
COESTR_SECDURATION = "(%d%d?) sec";
|
||||
COESTR_CASTBYNAME = "%(Rank (%d)%)";
|
||||
COESTR_TOTEMDAMAGE = { ".+ [crh]+its (.+ Totem) ?%u* for (%d+).*" };
|
||||
COESTR_TOTEMHEALTH = { "(%d*) health" };
|
||||
COESTR_SHOCKSPELL = "(%a* Shock)";
|
||||
COESTR_HEALINGWAVE = "Healing Wave";
|
||||
COESTR_LESSERWAVE = "Lesser Healing Wave";
|
||||
COESTR_MINAMOUNT = "(%d*) to";
|
||||
COESTR_MAXAMOUNT = "to (%d*)";
|
||||
COESTR_TRINKET = "^.*%[Enamored Water Spirit%].*$";
|
||||
|
||||
|
||||
-- Totem Advisor
|
||||
-- --------------
|
||||
COESTR_POISON = "Poison";
|
||||
COESTR_DISEASE = "Disease";
|
||||
COESTR_TOTEMPOISON = "Poison Cleansing Totem";
|
||||
COESTR_TOTEMDISEASE = "Disease Cleansing Totem";
|
||||
COESTR_TOTEMTREMOR = "Tremor Totem";
|
||||
COESTR_CLEANSINGTOTEM = "Throw %s now!";
|
||||
|
||||
COESTR_TREMOR = {
|
||||
"Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar", "Fear",
|
||||
"Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
|
||||
"Howl of Terror", "Intimidating Growl", "Crystalline Slumber", "Druid's Slumber"
|
||||
}
|
||||
|
||||
|
||||
-- Tools
|
||||
-- ---------
|
||||
COESTR_TOTEMTOOLS_EARTH = "Earth";
|
||||
COESTR_TOTEMTOOLS_FIRE = "Fire";
|
||||
COESTR_TOTEMTOOLS_WATER = "Water";
|
||||
COESTR_TOTEMTOOLS_AIR = "Air";
|
||||
|
||||
|
||||
-- Elements
|
||||
-- ---------
|
||||
COESTR_ELEMENT_EARTH = "Earth";
|
||||
COESTR_ELEMENT_FIRE = "Fire";
|
||||
COESTR_ELEMENT_WATER = "Water";
|
||||
COESTR_ELEMENT_AIR = "Air";
|
||||
|
||||
|
||||
-- UI elements
|
||||
-- ------------
|
||||
COEUI_STRINGS = {
|
||||
COE_ConfigClose = "Close";
|
||||
COE_ConfigTotemTabPanel = "Totem Options";
|
||||
COE_ConfigHealingTabPanel = "Healing Options";
|
||||
COE_ConfigDebuffTabPanel = "Debuff Options";
|
||||
COE_ConfigTotemTotemBar = "Totem Bars";
|
||||
COE_ConfigTotemTotemOptions = "Options";
|
||||
COE_ConfigTotemTotemSets = "Totem Sets";
|
||||
COE_OptionEnableTotemBar = "Enable Totem Bar";
|
||||
COE_OptionHideBackdrop = "Hide background when inactive";
|
||||
COE_OptionEnableTimers = "Enable totem timers";
|
||||
COE_OptionEnableTimerNotifications = "Enable notifications";
|
||||
COE_OptionTTAlignment = "Tooltip Alignment";
|
||||
COE_OptionDisplayMode = "Anchor Button";
|
||||
COE_OptionDisplayAlignment = "Button Alignment";
|
||||
COE_OptionAdvisor = "Enable totem advisor";
|
||||
COE_OptionEnableSets = "Enable totem sets";
|
||||
COE_OptionEnableAutoSwitch = "Autoswitch sets in PVP";
|
||||
COE_OptionActiveSet = "Active totem set";
|
||||
COE_OptionNewSet = "New set";
|
||||
COE_OptionDeleteSet = "Delete set";
|
||||
COE_OptionConfigureSet = "Configure set";
|
||||
COE_OptionStopConfigureSet = "OK";
|
||||
COE_OptionCastOrderString = "Cast Order";
|
||||
COE_OptionConfigureBar = "Configure Totems";
|
||||
COE_OptionFixBar = "Fix totem bar positions";
|
||||
COE_OptionConfigureOrder = "Configure Order";
|
||||
COE_OptionScanTotems = "Reload Totems";
|
||||
COE_OptionCurrentFrame = "Configure Bar";
|
||||
COE_OptionDirection = "Direction";
|
||||
COE_OptionFrameMode = "Bar mode";
|
||||
COE_OptionFlexCount = "Static buttons";
|
||||
COE_OptionScaling = "Scaling";
|
||||
COE_OptionEnableTimerFrame = "Show separate timer frame";
|
||||
COE_OptionGroupBars = "Move bars as group";
|
||||
COE_OptionOverrideRank = "Rank 1 modifier";
|
||||
COE_OptionFrameTimersOnly = "Show timers ONLY in timer frame";
|
||||
}
|
||||
|
||||
|
||||
-- Tooltips
|
||||
-- ---------
|
||||
COEUI_TOOLTIPS = {
|
||||
COE_ConfigTotemTab = "Shows the totem options";
|
||||
COE_ConfigHealingTab = "Shows the healing 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_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_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_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_OptionGroupBars = "When you drag one bar,\nthe other bars will follow";
|
||||
}
|
||||
|
||||
COESTR_TRINKET_TOOLTIP = "Enamored Water Spirit";
|
||||
COESTR_TRINKET_TOTEM = "Ancient Mana Spring Totem";
|
||||
|
||||
-- Combo boxes
|
||||
-- ------------
|
||||
COEUI_TTALIGN = {
|
||||
{ "ANCHOR_TOPLEFT"; "Top Left" };
|
||||
{ "ANCHOR_LEFT"; "Left" };
|
||||
{ "ANCHOR_BOTTOMLEFT"; "Bottom Left" };
|
||||
{ "ANCHOR_TOPRIGHT"; "Top Right" };
|
||||
{ "ANCHOR_RIGHT"; "Right" };
|
||||
{ "ANCHOR_BOTTOMRIGHT"; "Bottom Right" };
|
||||
{ "DISABLED"; "Disabled" };
|
||||
}
|
||||
|
||||
COEUI_DISPLAYMODE = { "Customize", "Timers Only", "Active Set" }
|
||||
|
||||
COEUI_DISPLAYALIGN = { "Box", "Vertical", "Horizontal" }
|
||||
|
||||
COEUI_PVPSETS = { "[PVP] Druid", "[PVP] Hunter", "[PVP] Mage", "[PVP] Paladin", "[PVP] Priest",
|
||||
"[PVP] Rogue", "[PVP] Shaman", "[PVP] Warlock", "[PVP] Warrior" }
|
||||
COEUI_DEFAULTSET = "Default";
|
||||
|
||||
COEUI_OVERRIDERANK = { "No key", "Use SHIFT", "Use ALT", "Use CTRL" };
|
||||
|
||||
COEUI_CURRENTFRAME = { "Earth", "Fire", "Water", "Air" };
|
||||
|
||||
COEUI_DIRECTION = { "Up", "Down", "Left", "Right" };
|
||||
|
||||
COEUI_FRAMEMODE = { "Closed", "Open", "Flex", "Hidden" };
|
||||
|
||||
|
||||
-- Key bindings
|
||||
-- -------------
|
||||
BINDING_HEADER_CALLOFELEMENTS = "Call Of Elements";
|
||||
BINDING_NAME_COESHOWCONFIG = "Show configuration dialog";
|
||||
BINDING_NAME_COEBESTHEAL = "BestHeal";
|
||||
BINDING_NAME_COEBATTLEHEAL = "BattleHeal";
|
||||
BINDING_NAME_COETHROWADVISED = "Throw next advised totem";
|
||||
BINDING_NAME_COENEXTSET = "Activate next totem set";
|
||||
BINDING_NAME_COETHROWSET = "Throw the active totem set";
|
||||
BINDING_NAME_COERESTARTSET = "Restart the active set";
|
||||
BINDING_NAME_TOTEMEARTH1 = "Earth Totem #1";
|
||||
BINDING_NAME_TOTEMEARTH2 = "Earth Totem #2";
|
||||
BINDING_NAME_TOTEMEARTH3 = "Earth Totem #3";
|
||||
BINDING_NAME_TOTEMEARTH4 = "Earth Totem #4";
|
||||
BINDING_NAME_TOTEMEARTH5 = "Earth Totem #5";
|
||||
BINDING_NAME_TOTEMFIRE1 = "Fire Totem #1";
|
||||
BINDING_NAME_TOTEMFIRE2 = "Fire Totem #2";
|
||||
BINDING_NAME_TOTEMFIRE3 = "Fire Totem #3";
|
||||
BINDING_NAME_TOTEMFIRE4 = "Fire Totem #4";
|
||||
BINDING_NAME_TOTEMFIRE5 = "Fire Totem #5";
|
||||
BINDING_NAME_TOTEMWATER1 = "Water Totem #1";
|
||||
BINDING_NAME_TOTEMWATER2 = "Water Totem #2";
|
||||
BINDING_NAME_TOTEMWATER3 = "Water Totem #3";
|
||||
BINDING_NAME_TOTEMWATER4 = "Water Totem #4";
|
||||
BINDING_NAME_TOTEMWATER5 = "Water Totem #5";
|
||||
BINDING_NAME_TOTEMWATER6 = "Water Totem #6";
|
||||
BINDING_NAME_TOTEMAIR1 = "Air Totem #1";
|
||||
BINDING_NAME_TOTEMAIR2 = "Air Totem #2";
|
||||
BINDING_NAME_TOTEMAIR3 = "Air Totem #3";
|
||||
BINDING_NAME_TOTEMAIR4 = "Air Totem #4";
|
||||
BINDING_NAME_TOTEMAIR5 = "Air Totem #5";
|
||||
BINDING_NAME_TOTEMAIR6 = "Air Totem #6";
|
||||
BINDING_NAME_TOTEMAIR7 = "Air Totem #7";
|
||||
|
||||
|
||||
-- Key modifiers
|
||||
-- --------------
|
||||
COEMODIFIER_ALT = "ALT";
|
||||
COEMODIFIER_ALT_SHORT = "A";
|
||||
COEMODIFIER_CTRL = "CTRL";
|
||||
COEMODIFIER_CTRL_SHORT = "C";
|
||||
COEMODIFIER_SHIFT = "SHIFT";
|
||||
COEMODIFIER_SHIFT_SHORT = "S";
|
||||
COEMODIFIER_NUMPAD = "Num Pad";
|
||||
COEMODIFIER_NUMPAD_SHORT = "NP";
|
||||
|
||||
|
||||
-- Shell commands
|
||||
-- ---------------
|
||||
COESHELL_INTRO = "Available shell commands for Call Of Elements:";
|
||||
COESHELL_CONFIG = "'/coe' or '/coe config' - Shows the configuration dialog";
|
||||
COESHELL_LIST = "'/coe list' - Shows this list";
|
||||
COESHELL_NEXTSET = "'/coe nexset' - Switches to the next custom totem set or the default set";
|
||||
COESHELL_PRIORSET = "'/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_RESETFRAMES = "'/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_MACRONOTE = "The following commands only work as macros dragged to your action bars:";
|
||||
COESHELL_THROWSET = "'/coe throwset' - Throws the active totem set";
|
||||
COESHELL_ADVISED = "'/coe advised' - Throws the next advised totem";
|
||||
+536
@@ -0,0 +1,536 @@
|
||||
v2.6
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Korean localization
|
||||
LeeEui-ho recently sent me the Korean translation and thus completed the
|
||||
currently supported languages (at least until WoW is available in Spain as well ;-) )
|
||||
|
||||
CHANGES:
|
||||
|
||||
- Performance upgrade
|
||||
There were some major memory leaks and COE consumed too much overall processor
|
||||
time. I changed the way the element frames are updated and now they should no
|
||||
longer use up a noticeable amount of memory and call the update routines only
|
||||
when really necessary.
|
||||
|
||||
FIXES:
|
||||
|
||||
- Disappearing element frames
|
||||
Whenever the totems were reloaded in "Timers Only" mode, depending on the currently
|
||||
active totems, a totem frame could have disappeared and would only show up again when
|
||||
throwing a totem of the same element from your spellbook.
|
||||
This has been fixed and the timers will now reset properly when your totems are reloaded.
|
||||
Note that this means, that you will lose active timers upon zoning but in most cases
|
||||
you wouldn't need them anymore anyway.
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.5
|
||||
|
||||
IMPORTANT NOTE:
|
||||
Please use http://coe.wyverex-cave.net/ for further bug reports and suggestions.
|
||||
Thank you
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Chinese (simplified) localization
|
||||
Thanks to windger a chinese translation is available as well.
|
||||
Note though, that I have no way to test if it is correct or if it even
|
||||
works at all! Please drop a comment at http://coe.wyverex-cave.net/ if
|
||||
there are any issues
|
||||
|
||||
- Totems sets for named targets
|
||||
Whenever you target a hostile unit, COE will now check if there is a
|
||||
custom set with this unit's name available. If it finds one, that set
|
||||
is activated. That also takes precedence over the PVP sets.
|
||||
NOTE: The check is case-sensitive, so make sure you spell the name right.
|
||||
|
||||
- Tremor totem advisor
|
||||
Added Druid's Slumber (need translations, though)
|
||||
|
||||
- Change anchor totem with CTRL
|
||||
When pressing the CTRL-key while clicking a totem button, this totem replaces
|
||||
the anchor totem for this element if it isn't already the anchor totem and
|
||||
you have the Customize or Active Set mode activated. Furthermore, in Active Set
|
||||
mode, it will also make the clicked totem part of the current set.
|
||||
|
||||
CHANGES:
|
||||
|
||||
- Prevent trinket pickup
|
||||
You can no longer pickup the trinket by shift-dragging the totem button.
|
||||
This didn't work in 2.4 and wasn't meant to be available anyway, since
|
||||
the trinket doesn't have spell slot like a totem.
|
||||
|
||||
- Removed set restart modifier key
|
||||
Until 2.4 you could assign a modifier key to automatically restart a set
|
||||
while clicking a totem and pressing that key. This feature didn't work well
|
||||
in most cases and it's also quite uselesse since you can also create a
|
||||
/coe restartset macro (and most players already do this).
|
||||
|
||||
- When expanding a flex bar by mousing over it, currently docked totems
|
||||
(i.e. active or advised totems or those in cooldown) will now show first
|
||||
independent of their actual ordering. This makes it possible to mouse over
|
||||
a docked totem and click it right away. Before, if the docked totem had a
|
||||
high ordering, it would suddenly change its position when opening the bar
|
||||
and you had to move the mouse again.
|
||||
|
||||
FIXES:
|
||||
|
||||
- /coe restartset
|
||||
Due to a change in the last release this command didn't work anymore
|
||||
This has been fixed
|
||||
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.4
|
||||
|
||||
IMPORTANT NOTE:
|
||||
Please use http://coe.wyverex-cave.net/ for further bug reports and suggestions.
|
||||
Thank you
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Added trinket support
|
||||
The Enamored Water Spirit trinket is now supported as part of the water element bar.
|
||||
It behaves just like any other totem with the exception that you have to equip the
|
||||
trinket to actually make it usable. Note that the trinket button will always show
|
||||
up in the water element bar as long as you possess at least one water totem
|
||||
but you can choose to make it invisible like any other totem until you got the trinket.
|
||||
|
||||
- French localization
|
||||
Thanks to mcoaua a french localization is finally available now and will be continued
|
||||
in further releases
|
||||
Also thanks to Foussa for previous efforts
|
||||
|
||||
|
||||
CHANGES:
|
||||
|
||||
- Lag-dependent timer activation
|
||||
In order to decide whether to really activate a totem timer after trying to
|
||||
throw a totem, COE will now take the current network lag value into account.
|
||||
Timers would not activate properly with lag values of 1000ms or more before.
|
||||
This should now work as expected
|
||||
|
||||
- Still active totem timers will now reset when you die
|
||||
|
||||
|
||||
FIXES:
|
||||
|
||||
- When in Customize mode, a set element would not be properly reset after expiration,
|
||||
if it was a dynamic button (i.e. when inactive only showing up when mousing over the bar).
|
||||
First when opening the bar again, COE would notice that this element in the current
|
||||
set had already expired and should be thrown again.
|
||||
This has been fixed
|
||||
|
||||
- When switching totem sets, sometimes only the currently active totems would be thrown
|
||||
again when issuing the next throwset command. This has been fixed
|
||||
|
||||
- When switching totem sets using the Customization Dialog, the currently active set
|
||||
was not reset. The current set will now reset upon switching
|
||||
|
||||
- When switching from Customize to Timers Only or Active Set mode while totems were
|
||||
active, sometimes an active totem showed up twice in its bar afterwards. This will
|
||||
no longer happen
|
||||
|
||||
- The healing module didn't do anything in the german version because the healing spell
|
||||
localizations were wrong. This has been fixed
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.3
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- The "/coe priorset" command lets you cycle backwards through your configured sets now
|
||||
|
||||
- Added the option to show the active timers ONLY in the separate timer frame
|
||||
Note that this means you get no timers at all if you choose to disable the timer frame
|
||||
|
||||
|
||||
CHANGES:
|
||||
|
||||
- When the "Autoswitch sets in PVP" option is enabled, COE will automatically switch
|
||||
back to the last active non-pvp set upon targeting an enemy mob
|
||||
This should make switching between PVP and PVE more convenient
|
||||
|
||||
- COE should no longer try to heal dead or offline targets
|
||||
|
||||
|
||||
FIXES:
|
||||
|
||||
- Fixed the german timers. Yes, really :)
|
||||
|
||||
- Fixed another one of those niggling typos with the disease totem advisor
|
||||
|
||||
- On some systems there was a COE_TotemData:485 nil error
|
||||
Since this error never appeared on my own system I cannot tell for sure but
|
||||
it should be more unlikely now that this error appears again.
|
||||
If it should, please drop a comment for me
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.2
|
||||
|
||||
NOTES:
|
||||
- This is merely a hotfix for 1.10 and is taken right out of development
|
||||
Chances are that you encounter some problems related to the healing module.
|
||||
Also, there are features missing I promised for the next release and the
|
||||
french localization is also not included yet.
|
||||
But I guess for everyone of you it is more important that COE works again
|
||||
than getting the new features :)
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Added a basic healing module
|
||||
A very basic form of healing module has finally found its way into COE.
|
||||
There are two healing modes that you can trigger by assigning a key binding
|
||||
in your key bindings dialog.
|
||||
BATTLE HEAL
|
||||
When hitting the battle heal key, COE will target the party member with the
|
||||
lowest health ratio and heal him with the most appropriate spell using as
|
||||
less casting time as possible (which always results in using the Lesser
|
||||
Healing Wave actually)
|
||||
It will only use the rank it really needs and thus helps conserving mana
|
||||
|
||||
BEST HEAL
|
||||
Works just like battle heal but also uses the Healing Wave if it has a better
|
||||
mana/effect efficiency. So, outside of combat, use best heal and when in combat
|
||||
use battle heal if healing must be quick or you are in danger of losing casting time
|
||||
|
||||
NOTE
|
||||
I am totally aware that the chain heal and effects like Nature's Swiftness
|
||||
are not taken into account yet. This primarily results of the fact that I don't
|
||||
possess any of those spells with my shaman yet. Furthermore I don't have an idea
|
||||
yet when to use the chain heal in an automated way.
|
||||
I am grateful for every kind of input regarding possible options and enhancements
|
||||
to the healing module.
|
||||
Just drop a comment at http://ui.worldofwar.net/ui.php?id=2126 or
|
||||
http://www.curse-gaming.com/mod.php?addid=3407
|
||||
|
||||
|
||||
FIXES:
|
||||
|
||||
- Fixed COE for 1.10
|
||||
As far as I have tested, COE should now work properly with patch 1.10
|
||||
Fortunately, Blizzard didn't prevent any of the functions COE uses from
|
||||
being called in contrast to some unlucky mods out there...
|
||||
|
||||
- German timers
|
||||
Hopefully, the german timers should now display the correct totem durations
|
||||
Drop a comment for me if not
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.11
|
||||
|
||||
FIXES:
|
||||
|
||||
- COE_TotemVisual:167 nil error
|
||||
Errors in the COE_DisplayedTotems structure will now mostly be
|
||||
fixed when entering the game. This should eliminate that niggling
|
||||
error.
|
||||
I have still no clue, why it happens in the first place, though.
|
||||
I have ideas but nothing that really explains it.
|
||||
Basically it seems that the error occurs only when training a totem
|
||||
skill and don't already possess the corresponding totem.
|
||||
|
||||
If you get that error again, you can either relog or reset the
|
||||
whole totem ordering with the "/coe resetordering" command
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.1
|
||||
|
||||
NOTES:
|
||||
|
||||
- Thanks to Foussa of Hyjal, a french translation is in progress
|
||||
and will hopefully be available soon
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Rank 1 totems
|
||||
You can now define a key modifier that throws the rank 1 totem
|
||||
instead of the maximum rank when you click on a totem button.
|
||||
Possible modifiers are Shift, Alt and Ctrl
|
||||
|
||||
- Added slash command "/coe reload"
|
||||
This command does the same as the button in the configuration dialog,
|
||||
i.e. it reloads all totems and sets
|
||||
|
||||
- Added slash command "/coe reset"
|
||||
Resets all currently active timers and sets. While "/coe restartset"
|
||||
only resets the active set so you can throw the same totems again,
|
||||
"/coe reset" will also deactivate all active timers, i.e. you won't
|
||||
be notified when still active totems expire
|
||||
|
||||
- Added slash command "/coe resetframes"
|
||||
Returns all element bars to the screen center. This is quite handy
|
||||
if you somehow accidentally moved one of your bars out of the screen
|
||||
|
||||
- Added bar grouping
|
||||
Upon enabling the "Move bars as group" option, all element bars will
|
||||
retain their relative positions when you drag one of them
|
||||
I know you've all desperately waited for this one :)
|
||||
|
||||
- Spell pickup
|
||||
When dragging a totem button with the Shift key held down, you will
|
||||
pickup the spell instead and can drag it to one of your standard
|
||||
action buttons
|
||||
If you hold down the Ctrl key additionally, you will pick up the
|
||||
corresponding rank 1 totem
|
||||
|
||||
|
||||
CHANGES:
|
||||
|
||||
- When configuring the active set in "Active Set" bar mode, the active
|
||||
totem of an element is now immediately made the first totem when you
|
||||
click it. In v2.0 this was done only when you exited the configuration
|
||||
mode and that caused a little confusion
|
||||
|
||||
- Advisor pet scanning
|
||||
The totem advisor now also scans your party member's pets for debuffs
|
||||
that can be cured by one of your totems
|
||||
|
||||
- When the next totem that would be thrown in your active set is still
|
||||
in cooldown, COE will skip to the next totem of the active set instead
|
||||
of giving a "Spell not ready yet" error message
|
||||
|
||||
- All messages from COE in the chat frame will now begin with [COE] and
|
||||
will have their own color
|
||||
|
||||
|
||||
FIXES:
|
||||
|
||||
- When setting the scale to the maximum of 1.2, opening the configuration
|
||||
dialog decreased the scale by 0.01 up to a somehow arbitrary maximum
|
||||
value where the scale rested then
|
||||
This has been fixed
|
||||
|
||||
- When you didn't have all totem elements yet, the empty element bars
|
||||
were nevertheless "visible" and prevented interaction with game elements
|
||||
behind them. Empty bars will now be invisible
|
||||
|
||||
- Sometimes an expiring totem gave a nil-error message when also using the
|
||||
separate timer frame. This should be fixed now
|
||||
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v2.0
|
||||
|
||||
CHANGES:
|
||||
|
||||
- I separated the visual and logical parts of the totem module and rewrote the
|
||||
whole visual part. It now has much more customization options than before.
|
||||
Each element now has its own totem bar and each totem bar is fully customizable
|
||||
on its own. The former "Display Mode" now controls which totem is shown in the
|
||||
"anchor button" of each totem bar, which is either your choice ("Customize"),
|
||||
the (last) active totem ("Timers Only") or the member of the active set ("Active Set").
|
||||
|
||||
The bar extends from the anchor button in the direction you choose (Up, Down, Left, Right).
|
||||
Furthermore, with the bar mode you can control whether only the anchor button ("Closed")
|
||||
or all configured totems ("Open") should be shown. If you choose the "Flex" mode, only
|
||||
the anchor button is shown until you mouse over it which will temporarily show all
|
||||
other totems as well and hide them again after a short delay when the mouse leaves.
|
||||
By setting the static button count to a value of greater than one, you can also have
|
||||
a mix of the "Open" and the "Flex" mode, showing a number of totems by default and the
|
||||
rest when mousing over.
|
||||
Finally, you can also hide the whole element bar by setting "Hidden" as the bar mode.
|
||||
|
||||
Note, that you can still adjust which totems each element bar possesses and in which
|
||||
order they appear. The anchor totem is always shown, though, thus removing it from the
|
||||
bar while in "Configure Bar" mode has no effect as long as it is the anchor totem.
|
||||
The configured totem order is retained whenever possible, that is, when a totem becomes the
|
||||
anchor totem, e.g. by switching the active set in "Active Set" mode, it is now the first
|
||||
totem in the bar but all other totems retain their relative ordering.
|
||||
|
||||
Also note that while in "Flex" or "Closed" mode, active and advised totems and totems
|
||||
with an active cooldown will be temporarily shown just as if you were mousing over the bar.
|
||||
|
||||
- Made the configuration dialog draggable with the mouse
|
||||
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- You can now activate a separate timer window that only shows totems that are currently active
|
||||
and drag it where you want it on your screen. I added this feature because I noticed that
|
||||
although having the timers in the bar and the notifications on the screen, it can happen in
|
||||
instances that you lose track of your active totems. By dragging the timer frame somewhere
|
||||
to your screen center you just need a quick look to see how long each of your totems will
|
||||
be active.
|
||||
In the configuration dialog you can choose the totem alignment (2x2 Box, Vertical, Horizontal).
|
||||
|
||||
- COE now has a scaling bar separate from the rest of your UI so that you can adjust the totem
|
||||
bar sizes to your likings. The default value of 1.0 means COE scales just as the rest of your
|
||||
UI does.
|
||||
|
||||
FIXES:
|
||||
|
||||
- Fixed a typo in the advisor output for the Disease Cleansing Totem
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.82
|
||||
|
||||
NOTE:
|
||||
|
||||
- When assigning a new talent point you should reload the totems in the
|
||||
configuration dialog if this talent changed mana cost or totem durations.
|
||||
There is no way to know ingame when you assign a talent point so you
|
||||
have to do this manually.
|
||||
When you log in next time, reload your interface or learn a new skill,
|
||||
the changes are automatically updated, though.
|
||||
|
||||
FIXES:
|
||||
|
||||
- Throwing the mana tide totem resulted in an error since the introduction of the
|
||||
cooldown timers. This should be fixed now
|
||||
|
||||
- Fixed a typo in the disease totem advisor
|
||||
The advisor should now correctly suggest throwing the Disease Cleansing Totem
|
||||
|
||||
- Fixed some more issues with the German localization
|
||||
All totems should now properly keep track of their health and notify you when
|
||||
they are destroyed by enemies
|
||||
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.81
|
||||
|
||||
FIXES:
|
||||
|
||||
- Hotfix for non-shaman classes
|
||||
I accidentally made the totem bar visible for other classes in the last release
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.8
|
||||
|
||||
ADDITIONS:
|
||||
|
||||
- Totems with a cooldown now display it in red digits when their timer is
|
||||
no longer active but they are still cooling down.
|
||||
This should give you more exact information on when you can cast the
|
||||
totem again than the default cooldown texture. For better readability
|
||||
I also removed the cooldown texture for those totems
|
||||
|
||||
- You now can restart casting of the active set at any time while in the previous
|
||||
version you could only throw the set again when one or all of its totems
|
||||
had already timed out.
|
||||
Either assign a key binding or create a macro with the command "/coe restartset"
|
||||
or assign a "Restart set modifier" in the configuration dialog. If you press
|
||||
this modifier key while attempting to throw the active set, it will first restart
|
||||
the set.
|
||||
Note, that this only really works if you click a throwset macro or have the key
|
||||
binding on your mouse because WOW thinks that the modifier you pressed belongs
|
||||
to the key binding you want to execute. So if you bound throwing the active set to
|
||||
your T key for example, you won't be able to restart the set by assigning the ALT
|
||||
modifier and pressing ALT+T because WOW thinks you want to execute the ALT+T key binding.
|
||||
Don't know if there is any way to bypass this yet.
|
||||
|
||||
CHANGES:
|
||||
|
||||
- Removed the totem bar backdrop and the config button
|
||||
I guess most users didn't use the button anyway and the always
|
||||
popping in backdrop got on people's nerves :)
|
||||
You can now drag the totem bar by dragging any of the totem buttons
|
||||
|
||||
- Put the totem bar on a lower frame layer to minimize impact on mods
|
||||
which rely on getting themselves on top of the rest like bag mods, for example
|
||||
|
||||
- The totem advisor no longer checks the raid group for debuffs now.
|
||||
Since totems only have an effect on members of your party and not the
|
||||
whole raid as I initially supposed, it is just wasted time and misleading
|
||||
to check the raid as well
|
||||
|
||||
FIXES:
|
||||
|
||||
- Fixed a bug with the key binding display on the totem buttons.
|
||||
All totem buttons should now display their appropriate key binding
|
||||
|
||||
- While in "Active Set" mode and configuring the active set, the red
|
||||
borders around the set totems didn't show. This has been fixed
|
||||
|
||||
- There seemed to be a typo bug in the SavedVariables repair function of v1.7
|
||||
Your saved variables will be once again repaired when your first load v1.8
|
||||
|
||||
- The mana costs of different ranks of the same totem were not read properly and
|
||||
thus the totem bar sometimes showed a "usable" totem while the player still
|
||||
didn't have enough mana. This has been fixed
|
||||
|
||||
- Fixed some issues with the German localization
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.7
|
||||
|
||||
- Added an option to fix the totem bar position to prevent dragging it accidentally
|
||||
|
||||
- The shell command "/coe list" now shows all available shell commands
|
||||
|
||||
- In the German version the default totem set and the class sets could not be thrown
|
||||
due to a localization bug. Also the cast order was not localized.
|
||||
This has been fixed. Your saved variables should be fixed automatically when first
|
||||
loading v1.7
|
||||
Thanks to Shinzhu for pointing me in the right direction
|
||||
|
||||
- In "Customize" display mode, the totem order is now customizable for each
|
||||
element separately. Just click on the "Configure Order" button and swap two
|
||||
totems of the same element by clicking them one after the other. You cannot
|
||||
swap totems of different elements, though, and this won't be implemented in
|
||||
a further release because that would break the whole structure of the mod,
|
||||
so don't bother asking :)
|
||||
Note, that upon first loading v1.7 all totems appear in reverse order due to
|
||||
an internal change in the ordering data structures
|
||||
|
||||
- In "Customize"/"Horizontal" and "Customize"/"Vertical" display modes, a small
|
||||
gap is inserted between totems of different elements to group them visually
|
||||
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.6
|
||||
|
||||
- Added some more spells for the tremor totem advisor
|
||||
Still need the german translations though
|
||||
|
||||
- The totem frame should now have the proper width when not all totems are
|
||||
shown in "Customize"/"Box" mode
|
||||
|
||||
- Added the "Disabled" option in the "Tooltip Alignment" drop down menu.
|
||||
This disables the tooltips for the totem buttons
|
||||
|
||||
- The currently active set did no longer show the red borders in the totem bar
|
||||
This has been fixed
|
||||
|
||||
- When disabling autoswitching sets in PVP, configuration did not work properly
|
||||
This has been fixed
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.5
|
||||
|
||||
- "All Totems" mode has been renamed to "Customize" mode.
|
||||
You can now customize which totems should be displayed in "Customize" mode
|
||||
To start configuration click the "Configure Bar" button in the config dialog.
|
||||
Configuration works exactly like the totem set configuration. Each totem that
|
||||
should be visible has a green border while configuring.
|
||||
|
||||
- Totem button alignment now also works in "Customize" mode. You can align the
|
||||
buttons either in a box, where totems of one element occupy a single row, or
|
||||
you can display all totems horizontally or vertically
|
||||
|
||||
- By adding the seventh air totem in the last patch I accidentally removed the
|
||||
sixth water totem :)
|
||||
The "COE_Totem.lua:199" error should be fixed now
|
||||
|
||||
=============================================================================================
|
||||
|
||||
v1.4
|
||||
|
||||
- Added a seventh air totem button. Must have missed this one before.
|
||||
COE should now load properly when having all seven air totems
|
||||
|
||||
+333
@@ -0,0 +1,333 @@
|
||||
CALL OF ELEMENTS v2.5
|
||||
by Wyverex
|
||||
|
||||
|
||||
This is an All-In-One Shaman class addon for World Of Warcraft.
|
||||
Currently, it features a complete totem module to simplify totem usage
|
||||
and increase your efficiency in party and in PVP.
|
||||
Yet to come are a healing module and some miscellanous options that
|
||||
help with different tasks.
|
||||
|
||||
The totem module provides you with customizable frames that hold all
|
||||
of your totems separated by element and work just like a standard action bars.
|
||||
In addition, each totem has its own timer that displays how long the totem
|
||||
will still be active. When there are only 10 or 5 seconds left or when
|
||||
the totem expires, a notification is shown in the screen center.
|
||||
Furthermore you are able to create your own totem sets which hold a totem
|
||||
of each element that can be cast using only one command or button.
|
||||
There is also one predefined set for each class that is automatically
|
||||
activated in pvp when you target a hostile player of the corresponding class.
|
||||
|
||||
Also in development is the healing module that helps conserving mana
|
||||
and healing the right group member at the right time more efficiently
|
||||
than doing this manually.
|
||||
|
||||
|
||||
CONTACT
|
||||
================
|
||||
http://coe.wyverex-cave.net
|
||||
|
||||
coe@wyverex-cave.net
|
||||
|
||||
"Grimhoof" on "Kult der Verdammten" (German RP-PVP Server)
|
||||
|
||||
|
||||
KNOWN ISSUES
|
||||
================
|
||||
|
||||
Since this addon is still under construction and I am currently testing with
|
||||
a level 35 shaman, I don't rule out that I have forgotten one or the other
|
||||
special case that occurs first with higher levels.
|
||||
|
||||
At least I know that there is a trinket that also throws a totem.
|
||||
This trinket will not display a timer or use some other totem bar option
|
||||
until I have access to it and can test it.
|
||||
|
||||
Also, the totem advisor will advise the tremor totem only for few
|
||||
spell effects yet. See the next section
|
||||
|
||||
|
||||
Things YOU can help me with
|
||||
==============================
|
||||
I still need help with the following issues:
|
||||
|
||||
- Totem advisor
|
||||
The tremor totem counters fear, charm and sleep effects but, unfortunately,
|
||||
I have no complete list of all spells that can be countered. The
|
||||
currently very short list known to me is shown below.
|
||||
If you come across another effect that can be countered by the tremor totem,
|
||||
please contact me.
|
||||
|
||||
"Sleep", "Terrify", "Psychic Scream", "Mind Control", "Bellowing Roar", "Fear",
|
||||
"Intimidating Shout", "Panic", "Terrifying Screech", "Seduction",
|
||||
"Howl of Terror", "Intimidating Growl", "Crystalline Slumber", "Druid's Slumber"
|
||||
|
||||
Furthermore, I need the German translations since I only have the english client.
|
||||
|
||||
|
||||
THINGS YET TO COME
|
||||
==============================
|
||||
|
||||
This is a list of features that came to my mind yet. Presumably
|
||||
there will come more ;-)
|
||||
|
||||
- Healing module
|
||||
Possibly, the healing module will be enhanced in numerous ways
|
||||
It's very basic at the moment
|
||||
|
||||
|
||||
INSTALLATION
|
||||
================
|
||||
|
||||
Just unzip the CallOfElements folder and the Chronos folder
|
||||
to your Interface\AddOns\ directory and restart WOW.
|
||||
It should automatically be loaded when you log into the game.
|
||||
|
||||
Note, that COE needs the Chronos addon for all timer functionality and
|
||||
won't work without it.
|
||||
|
||||
Also note, that COE does only really load for shaman classes, since it offers
|
||||
no use for the other classes. An appropriate message is displayed in this case.
|
||||
|
||||
|
||||
To display the configuration dialog and configure COE, you can either:
|
||||
- add a key binding or
|
||||
- use the /coe slash command or
|
||||
|
||||
|
||||
|
||||
TOTEM MODULE
|
||||
=================
|
||||
|
||||
Totem Bars
|
||||
------------
|
||||
There is one totem bar for each totem element you possess which can be Earth, Fire,
|
||||
Water and Air. Each totem bar is fully customizable on its own and holds a number of
|
||||
totem buttons which work just like standard action bar buttons complete with cooldown and
|
||||
usability/out-of-mana display. In addition, if totem timers are activated, each
|
||||
button shows the time left for its totem, if active.
|
||||
The bar itself centers around a so-called "anchor button" or "anchor totem".
|
||||
Which of your totems is taken as the anchor totem for each element is either your
|
||||
choice ("Customize"), the (last) active totem ("Timers Only") or the member of the
|
||||
active set ("Active Set").
|
||||
|
||||
The bar extends from the anchor button in the direction you choose (Up, Down, Left, Right).
|
||||
Furthermore, with the bar mode you can control whether only the anchor button ("Closed")
|
||||
or all configured totems ("Open") should be shown. If you choose the "Flex" mode, only
|
||||
the anchor button is shown until you mouse over it which will temporarily show all
|
||||
other totems as well and hide them again after a short delay when the mouse leaves.
|
||||
By setting the static button count to a value of greater than one, you can also have
|
||||
a mix of the "Open" and the "Flex" mode, showing a number of totems by default and the
|
||||
rest when mousing over.
|
||||
Finally, you can also hide the whole element bar by setting "Hidden" as the bar mode.
|
||||
|
||||
You can customize which totems should actually be displayed, by clicking
|
||||
on the "Configure Bar" button. While in bar configuration mode,
|
||||
the totem bar will show all available totems. Just click on a totem to toggle its visibility.
|
||||
Visible totems will have a green border around them while in configuration mode.
|
||||
The anchor totem is always shown, though, thus removing it from the bar while in
|
||||
"Configure Bar" mode has no effect as long as it is the anchor totem.
|
||||
Upon leaving the configuration mode, the last bar mode will be restored.
|
||||
|
||||
Apart from customizing which totems to display, you can also change the ordering of
|
||||
the totems for each bar separately. Just click on the "Configure Order" button
|
||||
and swap two totems of the same element by clicking them one after the other.
|
||||
You cannot swap totems of different elements, though.
|
||||
The configured totem order is retained whenever possible, that is, when a totem becomes the
|
||||
anchor totem, e.g. by switching the active set in "Active Set" mode, it is now the first
|
||||
totem in the bar but all other totems retain their relative ordering.
|
||||
|
||||
Also note that while in "Flex" or "Closed" mode, active and advised totems and totems
|
||||
with an active cooldown will be temporarily docked to the bar just as if you were mousing
|
||||
over the bar. Those totems will also be shown first in the bar if you mouse over the
|
||||
bar independent of their actual ordering. This makes re-throwing them easier.
|
||||
|
||||
You can also set the tooltip alignment to prevent partially hidden tooltips
|
||||
depending on where you position the totem bar on your screen or disable them at all.
|
||||
|
||||
If you want to throw the rank 1 totem instead of the maximum rank, you can assign a
|
||||
key modifier in the configuration dialog and hold down this modifier while clicking
|
||||
the desired button. Note, that this only works when clicking a totem.
|
||||
|
||||
While holding down the Shift key you can also pickup a totem and drag it one of your
|
||||
standard action buttons. When additionally holding down the Ctrl key, you will pickup
|
||||
the corresponding rank 1 totem.
|
||||
|
||||
When pressing the CTRL-key while clicking a totem button, this totem replaces
|
||||
the anchor totem for this element if it isn't already the anchor totem and
|
||||
you have the Customize or Active Set mode activated. Furthermore, in Active Set
|
||||
mode, it will also make the clicked totem part of the current set.
|
||||
|
||||
|
||||
Totem Advisor
|
||||
----------------
|
||||
Tired of constantly checking your party member's and pets' debuffs for poison, diseases and
|
||||
other effects that can be countered by your tremor totem? Then enable the
|
||||
totem advisor and you will be notified when one of your party members has a
|
||||
debuff that you are able to cure with one of your totems!
|
||||
The notification will be displayed in the center of the screen and will be
|
||||
periodically redisplayed until the debuffs are cured (either by a cure spell/totem
|
||||
or by timing out). Additionally, the corresponding totem button will flash.
|
||||
|
||||
To throw the advised totem you can either use your preferred method of throwing
|
||||
totems or you can use the "Throw next advised totem" key binding which automatically
|
||||
figures out if there is any advised totem and throws it.
|
||||
Or create a macro with the slash command "/coe advised" and drag it onto one of your
|
||||
action buttons.
|
||||
|
||||
|
||||
Totem Timers
|
||||
----------------
|
||||
Each totem button has its own timer that is displayed when the associated totem
|
||||
is active. The timer shows the time in seconds that the totem remains active if
|
||||
it isn't destroyed before.
|
||||
When there are only 10 or 5 seconds left, respectively, a notification is shown in
|
||||
the screen center, if you chose to enable this option. This helps you to plan
|
||||
the next totem ahead in time.
|
||||
When a totem expires or is destroyed by an enemy, there is also a notification.
|
||||
|
||||
Totems with a cooldown display it in red digits when their timer is no longer
|
||||
active but they are still cooling down. This should give you more exact information
|
||||
on when you can cast the totem again than the default cooldown texture.
|
||||
|
||||
|
||||
Totem Sets
|
||||
----------------
|
||||
In most situations you throw the same totems over and over again, e.g. Stoneskin
|
||||
and Healing Stream when facing more than one mob at the same time. So why should
|
||||
you repeat the same steps all over again if they can be automated? This is why
|
||||
there are totem sets.
|
||||
A totem set consists of up to four totems, one of each element, that can be thrown
|
||||
in any desired order using just one action button or key binding. Just press the
|
||||
key once for each totem, COE will take care of which totem to throw automatically.
|
||||
To conserve mana, it will only throw totems that aren't active yet. If the totem that
|
||||
would be thrown next is still in cooldown, COE will skip to the next totem.
|
||||
|
||||
You can restart casting of the active set at any time though.
|
||||
Either assign a key binding or create a macro with the command "/coe restartset"
|
||||
or "/coe reset". The latter one also resets the timers.
|
||||
|
||||
There are 10 predefined totem sets: one default set and 9 PVP class sets, one for each
|
||||
available player class. In addition, you can create your own custom named sets for
|
||||
every situation you can think of.
|
||||
To configure a set, make it the active set by using the drop down menu in the configuration
|
||||
dialog and the click the "Configure Set" button. While in set configuration mode,
|
||||
the totem bars will show all available totems. Just click on a totem to add it to the set
|
||||
or remove it. Note, that you can only have one totem per element per set.
|
||||
Upon leaving the configuration mode, the last display mode will be restored.
|
||||
Finally, you can adjust the order in which the totems will be thrown for this set.
|
||||
|
||||
If you enabled the "Autoswitch sets in PVP" option and target an enemy player,
|
||||
COE will automatically switch to the set corresponding to this player's class because
|
||||
you usually use different totems when fighting different classes. This should
|
||||
improve your PVP efficiency since you don't have to worry much about which totems
|
||||
to throw if you have them preconfigured and just use the key binding for set throwing.
|
||||
As soon as you target a PVE mob, it will switch back to the last active non-PVP set again.
|
||||
|
||||
If you target a hostile unit, and you have a custom set configured that has exactly the
|
||||
same name as that unit, COE will activate that set. This makes it possible to create
|
||||
sets for specific encounters (e.g. a "Nefarian" set). Note, that the test is case-sensitive,
|
||||
though.
|
||||
|
||||
There is also the "Activate next totem set" key binding which switches between the
|
||||
default set and your custom sets and thus provides a fast method to switch between sets.
|
||||
|
||||
Note, that there are also slash commands available to use as macros for your action
|
||||
bars if you desire:
|
||||
"/coe throwset" throws the active set
|
||||
"/coe priorset" switches to the prior set
|
||||
"/coe nextset" switches to the next set
|
||||
"/coe set <name>" switches to the set with the specified name. Note that <name> is case-sensitive.
|
||||
"/coe restartset" restarts the active set
|
||||
|
||||
|
||||
HEALING MODULE
|
||||
=================
|
||||
|
||||
COE also helps you with healing your party and raid. Instead of manually selecting a
|
||||
target and the right healing spell, just assign a key binding for the battle and best heal
|
||||
and press the key.
|
||||
COE will heal the party or raid member with the lowest health ratio using the most
|
||||
appropriate spell. Depending on which healing mode you triggered, the spell selection
|
||||
will be different:
|
||||
|
||||
Battle Heal
|
||||
--------------
|
||||
When hitting the battle heal key, COE will target the party member with the
|
||||
lowest health ratio and heal him with the most appropriate spell using as
|
||||
less casting time as possible (which always results in using the Lesser
|
||||
Healing Wave actually)
|
||||
It will only use the rank it really needs and thus helps conserving mana
|
||||
|
||||
Best Heal
|
||||
--------------
|
||||
Works just like battle heal but also uses the Healing Wave if it has a better
|
||||
mana/effect efficiency. So, outside of combat, use best heal and when in combat
|
||||
use battle heal if healing must be quick or you are in danger of losing casting time
|
||||
|
||||
|
||||
COMPLETE LIST OF COMMANDS
|
||||
==========================
|
||||
/coe
|
||||
/coe config
|
||||
- shows the config dialog
|
||||
|
||||
/coe list
|
||||
- shows the list of slash commands
|
||||
|
||||
/coe priorset
|
||||
- switches to the prior set
|
||||
|
||||
/coe nextset
|
||||
- switches to the next set
|
||||
|
||||
/coe set <name>
|
||||
- switches to the set with the specified name. Note that <name> is case-sensitive
|
||||
|
||||
/coe restartset
|
||||
- restarts the active set
|
||||
|
||||
/coe reset
|
||||
- resets all timers and the active set
|
||||
|
||||
/coe reload
|
||||
- reloads all totems and sets
|
||||
|
||||
/coe resetframes
|
||||
- returns all element bars to the screen center
|
||||
|
||||
/coe resetordering
|
||||
- resets the ordering of your totem bars
|
||||
|
||||
The next commands only work as macros dragged to one of your
|
||||
action buttons, since Blizzard prevents spells being cast
|
||||
from the command line:
|
||||
|
||||
/coe throwset
|
||||
- throws the active set
|
||||
|
||||
/coe advised
|
||||
- throws the next advised totem
|
||||
|
||||
|
||||
CREDITS
|
||||
=================
|
||||
I would like to thank the authors of the following addons for providing me
|
||||
with some of my ideas through their own addons. Actually I took their ideas
|
||||
and refined them into an all-in-one addon and made it smooth at one or the other
|
||||
edge ;-)
|
||||
|
||||
- Totem Timers
|
||||
- Frowning Circle
|
||||
- Totem Menu
|
||||
- Gypsy Mod
|
||||
- CTRaid
|
||||
- Healer / Nuker
|
||||
|
||||
And a special thanks to the authors of Chronos since COE relies heavily on the
|
||||
accurate timing functions of Chronos.
|
||||
|
||||
Last but certainly not least, I'd like to thank all the people using COE and
|
||||
giving me feedback. A mod can only evolve and get better when being supported
|
||||
by the community.
|
||||
Thank You!
|
||||
Reference in New Issue
Block a user