Skip to content

Commit

Permalink
Merge pull request #1 from Sonaza/legion
Browse files Browse the repository at this point in the history
Legion Update
  • Loading branch information
Sonaza authored Jul 25, 2016
2 parents 200ba8c + 4d1fa2a commit 1ce132f
Show file tree
Hide file tree
Showing 40 changed files with 2,393 additions and 7,970 deletions.
13 changes: 13 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## 2.0.0
* Legion update
* The addon has been practically rewritten and previously configured settings are unfortunately lost. You can reconfigure settings by right clicking the Experiencer bar.
* Keybindings have changed:
* Control left-click now toggles visiblity.
* Shift left-click and shift control left-click send current stats to chat.
* Holding control while using mousewheel will scroll through available bars in following order: experience, reputation, artifact power and honor.
* Added support for Honor and Artifact Power.
* You can now choose custom bar color from the options. This color will be shared globally across all of your characters.
* Options menu has been restructured; now each bar has its own submenu.
* The visual look of the bar has been improved with flashier animations and more.
* Added a DataBroker module for the display of current text. Right clicking the DataBroker module will open options menu.
* Disclaimer: honor and artifact power modules have not actually been tested (because I do not have beta).
12 changes: 9 additions & 3 deletions Experiencer.toc
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
## Interface: 60200
## Interface: 70000
## Title: Experiencer
## Notes: Simple and Advanced Experience and Reputation Progress Bar
## Author: Sonaza
## Version: 1.2.1
## Version: 2.0.0
## OptionalDeps: Ace3
## SavedVariables: ExperiencerDB
## SavedVariables: ExperiencerDB, ExperiencerDB_module_experience, ExperiencerDB_module_reputation, ExperiencerDB_module_artifact, ExperiencerDB_module_honor

#@no-lib-strip@
libs\LibStub\LibStub.lua
Expand All @@ -13,8 +13,14 @@ libs\AceAddon-3.0\AceAddon-3.0.xml
libs\AceDB-3.0\AceDB-3.0.xml
libs\AceEvent-3.0\AceEvent-3.0.xml
libs\AceHook-3.0\AceHook-3.0.xml
libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
#@end-no-lib-strip@

core.lua
modules\experience.lua
modules\reputation.lua
modules\artifact.lua
modules\honor.lua
events.lua
databroker.lua
Frame.xml
206 changes: 135 additions & 71 deletions Frame.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<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/
..\FrameXML\UI.xsd">

<Font name="ExperiencerFont" font="Interface/AddOns/Experiencer/Media/DORISPP.TTF" outline="NORMAL" virtual="true">
<Font name="ExperiencerFont" font="Interface\AddOns\Experiencer\Media\DORISPP.TTF" outline="NORMAL" virtual="true">
<Shadow>
<Offset>
<AbsDimension x="0" y="-2"/>
Expand All @@ -12,7 +12,7 @@
<AbsValue val="10"/>
</FontHeight>
</Font>
<Font name="ExperiencerBigFont" font="Interface/AddOns/Experiencer/Media/DORISPP.TTF" outline="NORMAL" virtual="true">
<Font name="ExperiencerBigFont" font="Interface\AddOns\Experiencer\Media\DORISPP.TTF" outline="NORMAL" virtual="true">
<Shadow>
<Offset>
<AbsDimension x="0" y="-2"/>
Expand All @@ -24,19 +24,29 @@
</FontHeight>
</Font>

<StatusBar name="ExperiencerBarTemplate" virtual="true">
<StatusBar name="ExperiencerAnimatedBarTemplate" inherits="AnimatedStatusBarTemplate" enableMouse="false" virtual="true">
<Anchors>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="4" y="2"/>
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="-4" y="-2"/>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="2" y="2"/>
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="-2" y="-2"/>
</Anchors>
<BarTexture file="Interface/AddOns/Experiencer/Media/BarTexture"/>
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture"/>
<BarColor r="1" g="1" b="1"/>
</StatusBar>

<Frame name="ExperiencerFrame" parent="UIParent" frameStrata="LOW">
<StatusBar name="ExperiencerBarTemplate" enableMouse="false" virtual="true">
<Anchors>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="2" y="2"/>
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="-2" y="-2"/>
</Anchors>
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture"/>
<BarColor r="1" g="1" b="1"/>
</StatusBar>

<Frame name="ExperiencerFrame" parent="UIParent" frameStrata="HIGH" enableMouse="true">
<Size y="10"/>
<Anchors>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="0" y="-1"/>
<Anchor point="TOPRIGHT" relativePoint="BOTTOMRIGHT" x="0" y="9"/>
<Anchor point="BOTTOMRIGHT" relativePoint="BOTTOMRIGHT" x="0" y="-1"/>
</Anchors>
<Layers>
<Layer level="BACKGROUND">
Expand All @@ -46,76 +56,130 @@
</Layer>
</Layers>
<Frames>
<StatusBar name="ExperiencerRestedBar" inherits="ExperiencerBarTemplate"/>
<StatusBar name="ExperiencerVisualizerBar" inherits="ExperiencerBarTemplate" hidden="true">
<Anchors>
<Anchor point="BOTTOMLEFT" relativePoint="BOTTOMLEFT" x="4" y="2"/>
<Anchor point="TOPRIGHT" relativePoint="TOPRIGHT" x="-4" y="-6"/>
</Anchors>
<BarTexture file="Interface/AddOns/Experiencer/Media/BarTexture" alphaMode="ADD"/>
<Scripts>
<OnLoad>
self:SetFrameLevel(ExperiencerRestedBar:GetFrameLevel()+1);
</OnLoad>
</Scripts>
</StatusBar>
<StatusBar name="ExperiencerGainBar" inherits="ExperiencerBarTemplate">
<BarTexture file="Interface/AddOns/Experiencer/Media/BarTexture" alphaMode="ADD"/>
<Scripts>
<OnLoad>
self:SetFrameLevel(ExperiencerVisualizerBar:GetFrameLevel()+1);
</OnLoad>
</Scripts>
</StatusBar>
<StatusBar name="ExperiencerColorBar" inherits="ExperiencerBarTemplate">
<BarTexture file="Interface/AddOns/Experiencer/Media/BarTexture"/>
<Scripts>
<OnLoad>
self:SetFrameLevel(ExperiencerGainBar:GetFrameLevel()+1);
</OnLoad>
</Scripts>
</StatusBar>
<StatusBar name="ExperiencerBar" inherits="ExperiencerBarTemplate">
<BarTexture file="Interface/AddOns/Experiencer/Media/BarTexture" alphaMode="ADD"/>
<Scripts>
<OnLoad>
self:SetFrameLevel(ExperiencerColorBar:GetFrameLevel()+1);
</OnLoad>
<OnShow function="ExperiencerBar_OnShow"/>
</Scripts>
</StatusBar>
<Frame>
<Size x="1500" y="10"/>
<Anchors>
<Anchor point="BOTTOM" relativePoint="BOTTOM" x="0" y="0"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<FontString name="ExperiencerBarText" inherits="ExperiencerFont" hidden="true">
<Size x="1500" y="10"/>
<Anchors>
<Anchor point="BOTTOM" x="0" y="3"/>
</Anchors>
</FontString>
</Layer>
</Layers>
<Scripts>
<OnLoad>
self:SetFrameLevel(ExperiencerBar:GetFrameLevel()+2);
</OnLoad>
</Scripts>
<Frame name="$parentBars" parentKey="bars" setAllPoints="true" hidden="true">
<Frames>
<StatusBar name="$parentRested" parentKey="rested" inherits="ExperiencerBarTemplate" hidden="true"/>
<StatusBar name="$parentVisual" parentKey="visual" inherits="ExperiencerBarTemplate" hidden="true">
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTextureStriped" horizTile="true" alphaMode="ADD"/>
</StatusBar>
<StatusBar name="$parentChange" parentKey="change" inherits="ExperiencerBarTemplate">
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture" alphaMode="ADD"/>
<Animations>
<AnimationGroup parentKey="fadegain" setToFinalAlpha="true">
<Alpha fromAlpha="0" toAlpha="1" duration="0.4" order="1" smoothing="IN_OUT"/>
<Alpha fromAlpha="1" toAlpha="0" duration="0.6" order="2" smoothing="IN_OUT"/>
</AnimationGroup>
<AnimationGroup parentKey="fadeloss" setToFinalAlpha="true">
<Alpha fromAlpha="1" toAlpha="1" duration="0.15" order="1" smoothing="IN_OUT"/>
<Alpha fromAlpha="1" toAlpha="0" duration="0.8" order="2" smoothing="IN_OUT"/>
</AnimationGroup>
</Animations>
</StatusBar>
<StatusBar name="$parentMain" parentKey="main" inherits="ExperiencerAnimatedBarTemplate">
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture"/>
<Frames>
<Frame name="$parentSpark" parentKey="spark">
<Size x="9" y="24"/>
<Anchors>
<Anchor center="CENTER" relativePoint="TOPLEFT" relativeTo="$parent" x="500" y="16"/>
</Anchors>
<Layers>
<Layer level="ARTWORK">
<Texture setAllPoints="true" file="Interface\UNITPOWERBARALT\DeathwingBlood_Horizontal_Spark" alphaMode="ADD">
<Color r="1" g="1" b="1"/>
</Texture>
</Layer>
</Layers>
<Animations>
<AnimationGroup parentKey="fade" setToFinalAlpha="true">
<Alpha fromAlpha="0.5" toAlpha="1" duration="0.2" order="1" smoothing="IN"/>
<Alpha fromAlpha="1" toAlpha="1" duration="0.5" order="2" smoothing="IN_OUT"/>
<Alpha fromAlpha="1" toAlpha="0.5" duration="0.5" order="3" smoothing="OUT"/>
</AnimationGroup>
</Animations>
</Frame>
</Frames>
</StatusBar>
<StatusBar name="$parentColor" parentKey="color" inherits="ExperiencerBarTemplate">
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture" alphaMode="ADD"/>
</StatusBar>
<StatusBar name="$parentHighlight" parentKey="highlight" inherits="ExperiencerBarTemplate" hidden="true">
<BarTexture file="Interface\AddOns\Experiencer\Media\BarTexture" alphaMode="ADD"/>
<Color r="1" g="0.7" b="0"/>
<Animations>
<AnimationGroup parentKey="flash" looping="REPEAT">
<Alpha fromAlpha="0.6" toAlpha="0.1" duration="0.5" smoothing="IN_OUT" order="1"/>
<Alpha fromAlpha="0.1" toAlpha="0.6" duration="0.5" smoothing="IN_OUT" order="2"/>
</AnimationGroup>
<AnimationGroup parentKey="fadein" setToFinalAlpha="true">
<Alpha fromAlpha="0" toAlpha="0.6" duration="0.5" order="1" smoothing="OUT"/>
<Scripts>
<OnPlay>
self:GetParent():Show();
</OnPlay>
<OnFinished>
self:GetParent().flash:Play();
</OnFinished>
</Scripts>
</AnimationGroup>
<AnimationGroup parentKey="fadeout" setToFinalAlpha="true">
<Alpha fromAlpha="0.6" toAlpha="0" duration="0.5" order="1" smoothing="OUT"/>
<Scripts>
<OnFinished>
self:GetParent():Hide();
</OnFinished>
</Scripts>
</AnimationGroup>
</Animations>
</StatusBar>

<Frame name="ExperiencerBarTextFrame" parentKey="textframe" hidden="true">
<Size x="1500" y="20"/>
<Anchors>
<Anchor point="BOTTOM" relativePoint="BOTTOM" relativeTo="$parent" x="0" y="0"/>
</Anchors>
<Animations>
<AnimationGroup parentKey="fadein" setToFinalAlpha="true">
<Alpha fromAlpha="0" toAlpha="1" duration="0.1" order="1" smoothing="IN_OUT"/>
<Scripts>
<OnPlay>
self:GetParent():Show();
</OnPlay>
</Scripts>
</AnimationGroup>
<AnimationGroup parentKey="fadeout" setToFinalAlpha="true">
<Alpha fromAlpha="1" toAlpha="0" duration="0.2" order="1" smoothing="IN_OUT"/>
<Scripts>
<OnFinished>
self:GetParent():Hide();
</OnFinished>
</Scripts>
</AnimationGroup>
</Animations>
<Layers>
<Layer level="ARTWORK">
<FontString name="ExperiencerBarText" inherits="ExperiencerFont" justifyH="CENTER">
<Size x="1500" y="12"/>
<Anchors>
<Anchor point="CENTER" relativePoint="CENTER" relativeTo="$parent" x="0" y="0"/>
</Anchors>
</FontString>
</Layer>
</Layers>
</Frame>
</Frames>
</Frame>
</Frames>

<Scripts>
<OnLoad>
-- self:EnableMouse(true);
-- self:RegisterForClicks("LeftButton", "RightButton", "MiddleButton");
self:EnableMouse(true);
self:EnableMouseWheel(true);
</OnLoad>
<OnMouseDown function="Experiencer_OnMouseDown"/>
<OnUpdate function="Experiencer_OnUpdate"/>
<OnEnter function="Experiencer_OnEnter"/>
<OnLeave function="Experiencer_OnLeave"/>
<OnMouseDown function="Experiencer_OnMouseDown"/>
<OnMouseWheel function="Experiencer_OnMouseWheel"/>
<OnUpdate function="Experiencer_OnUpdate"/>
</Scripts>
</Frame>

Expand Down
Binary file added Media/BarTextureStriped.tga
Binary file not shown.
27 changes: 25 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,30 @@
Experience bar replacement for World of Warcraft.

## Description
Experiencer is a simple minimum configuration required experience bar addon. It adds dual purpose experience and reputation progress bar to the bottom or the top of the screen.
Experiencer is a minimum configuration required experience bar addon. It adds multi purpose experience, reputation, artifact power and honor progress bar to the bottom or the top of the screen.

Note that because the Experiencer bar can **only be anchored to top or the bottom of the screen** it may overlap with other frames positioned in those places.

When tracking experience the addon will display your current rested percentage, remaining xp required to level and percentage of the same value. Once you start gaining experience it will display the total sum gained during the active session, experience per hour value, estimated time and number of quests to level. Additionally the number of experience points player will gain after turning in all completed quests (and optionally incomplete quests) is displayed with an accompanying visualizer bar. Session values are saved even when you log out, to reset them you must do so from the options menu.

Once you have reached the maximum level experiencer will change to displaying reputation progress. It displays the current level, reputation required to next level and percentage of the same value. By default the Experiencer will also attempt to automatically track the faction with whom you have last gained reputation.

If available Experiencer can also track artifact power and honor. Artifact power tracking will unlock at level 100 if you also have the Legion expansion. Honor will unlock upon reaching level 110.

**Note!** Experiencer *will not* hide the existing experience bar by Blizzard and you need to use a separate addon to do that. Usually an action bar replacement addon (Dominos or Bartender) will allow you to hide it and using one with this addon is recommended anyway.

By default the bar is colored the class color of the character you are playing but it can be changed in the options.

Experiencer also adds a DataBroker module that displays current text if you wish to place it elsewhere. To freely place it anywhere check out my DataBroker display addon [Candy](http://www.curse.com/addons/wow/candy).

### Usage and Shortcuts

Experiencer options can be accessed by right clicking the bar or the DataBroker module. In order to make things smoother there are a few useful shortcuts.

* Control left-click toggles bar visiblity. There will always be a slightly translucent black bar where the bar is anchored.
* Middle click toggles text visibility if text is not set to be always hidden.
* Holding control while scrolling with mouse wheel lets you browse through available bars in following order: experience, reputation, artifact power and honor.
* Shift left-click pastes current statistics to chat editbox. Shift control left-click for quick paste.

## Dependencies
Experiencer uses Ace3 which is included in the /libs directory.
Experiencer uses Ace3 and LibDataBroker which are included in the /libs directory.
Loading

0 comments on commit 1ce132f

Please sign in to comment.