File Makefile changed (mode: 100644) (index 4380afe..1949d95) |
... |
... |
XMLLINTFLAGS=--nonet --schema ${srcdir}share/FrameXML/UI.xsd |
25 |
25 |
|
|
26 |
26 |
INSTALL=unzip -d ${DESTDIR}Interface/AddOns |
INSTALL=unzip -d ${DESTDIR}Interface/AddOns |
27 |
27 |
|
|
28 |
|
LUAFILES=${srcdir}src/*.lua ${srcdir}test/*.lua |
|
29 |
|
XMLFILES=${srcdir}src/*.xml ${srcdir}test/*.xml |
|
|
28 |
|
LUAFILES= |
|
29 |
|
XMLFILES= |
30 |
30 |
|
|
31 |
31 |
# Use the source directory name as project name, if not yet set. |
# Use the source directory name as project name, if not yet set. |
32 |
|
NAME?=${shell basename ${realpath ${srcdir}}} |
|
|
32 |
|
NAME ?= ${shell basename ${realpath ${srcdir}}} |
|
33 |
|
|
33 |
34 |
# Use `git` to infer the project's current version, if not yet set. |
# Use `git` to infer the project's current version, if not yet set. |
34 |
|
VERSION?=${shell ${GIT} ${GITFLAGS} describe} |
|
|
35 |
|
VERSION ?= ${shell ${GIT} ${GITFLAGS} describe} |
35 |
36 |
|
|
36 |
|
sinclude ${srcdir}local/Makefile |
|
|
37 |
|
# Load the exact list of source snippets from a separate Makefile. |
|
38 |
|
# The order in which files are passed to the command line is important. |
|
39 |
|
# File `src/Chorus.lua` must be loaded first by the tools. |
|
40 |
|
include ${srcdir}src/Makefile |
37 |
41 |
|
|
38 |
42 |
all: | check |
all: | check |
39 |
43 |
|
|
|
... |
... |
${NAME}-${VERSION}.zip: doc/html/index.html doc/html/ldoc.css |
48 |
52 |
|
|
49 |
53 |
html: doc/html/index.html |
html: doc/html/index.html |
50 |
54 |
|
|
|
55 |
|
# WARNING: `ldoc` will only merge files correctly when they are under the same |
|
56 |
|
# parent directory. There is a way to make it work, but the configuration file |
|
57 |
|
# and working directory must be carefully set-up. |
|
58 |
|
|
51 |
59 |
doc/html/index.html: ${LUAFILES} |
doc/html/index.html: ${LUAFILES} |
52 |
60 |
test -d doc/ || mkdir doc/ |
test -d doc/ || mkdir doc/ |
53 |
61 |
test -d doc/html/ || mkdir doc/html/ |
test -d doc/html/ || mkdir doc/html/ |
54 |
62 |
${LDOC} ${LDOCFLAGS} --dir=doc/html/ --all \ |
${LDOC} ${LDOCFLAGS} --dir=doc/html/ --all \ |
|
63 |
|
--merge -X \ |
55 |
64 |
--project=${NAME} \ |
--project=${NAME} \ |
56 |
|
--format=markdown \ |
|
|
65 |
|
--title='${NAME}-${VERSION}' \ |
57 |
66 |
--date=`${GIT} ${GITFLAGS} log --format=%as -n 1` \ |
--date=`${GIT} ${GITFLAGS} log --format=%as -n 1` \ |
58 |
|
$^ |
|
|
67 |
|
${srcdir}src/ $^ |
59 |
68 |
|
|
60 |
69 |
install: ${NAME}-${VERSION}.zip |
install: ${NAME}-${VERSION}.zip |
61 |
70 |
${INSTALL} $^ |
${INSTALL} $^ |
|
... |
... |
check-lua: ${LUAFILES} |
67 |
76 |
${LUACHECK} ${LUACHECKFLAGS} $^ |
${LUACHECK} ${LUACHECKFLAGS} $^ |
68 |
77 |
|
|
69 |
78 |
check: | check-lua check-xml |
check: | check-lua check-xml |
|
79 |
|
|
|
80 |
|
clean: |
|
81 |
|
rm -f doc/html/index.html |
|
82 |
|
rm -f doc/html/ldoc.css |
File README.adoc changed (mode: 100644) (index 02fb2df..25f911d) |
1 |
1 |
= Chorus |
= Chorus |
2 |
2 |
Vladyslav Bondarenko <vladyslavbond@protonmail.com> |
Vladyslav Bondarenko <vladyslavbond@protonmail.com> |
3 |
|
0.7.1 (unstable), 2024-01-27 |
|
|
3 |
|
0.7.1 (unstable), 2024-01-28 |
4 |
4 |
|
|
5 |
5 |
Chorus is a graphical user interface extension for a popular video game World |
Chorus is a graphical user interface extension for a popular video game World |
6 |
6 |
of Warcraft. It adds a custom raid frame. This is a work in progress. |
of Warcraft. It adds a custom raid frame. This is a work in progress. |
7 |
7 |
|
|
8 |
8 |
Features: |
Features: |
9 |
9 |
|
|
10 |
|
- approximate distance to every raid member in yards; |
|
11 |
|
- sort debuffs by relevance; |
|
12 |
|
- generalize raid and party frames; |
|
|
10 |
|
* approximate distance to every raid member in yards; |
|
11 |
|
* sort debuffs by relevance; |
|
12 |
|
* generalize raid and party frames; |
13 |
13 |
|
|
14 |
14 |
Supported game version is legacy 3.3.5a (or interface 30300). |
Supported game version is legacy 3.3.5a (or interface 30300). |
15 |
15 |
|
|
|
... |
... |
game. Unpack the archive that contains the project's sources into |
29 |
29 |
game installation directory. In the end it must look something like this. |
game installation directory. In the end it must look something like this. |
30 |
30 |
|
|
31 |
31 |
---- |
---- |
32 |
|
Interface/Addons/chorus/ |
|
33 |
|
Interface/Addons/chorus/bin/ |
|
34 |
|
Interface/Addons/chorus/etc/ |
|
35 |
|
Interface/Addons/chorus/share/ |
|
36 |
|
Interface/Addons/chorus/src/ |
|
37 |
|
Interface/Addons/chorus/README.adoc |
|
38 |
|
Interface/Addons/chorus/chorus.toc |
|
|
32 |
|
${DESTDIR}/Interface/AddOns/chorus/chorus.toc |
|
33 |
|
${DESTDIR}/Interface/AddOns/chorus/doc/ |
|
34 |
|
${DESTDIR}/Interface/AddOns/chorus/etc/ |
|
35 |
|
${DESTDIR}/Interface/AddOns/chorus/Makefile |
|
36 |
|
${DESTDIR}/Interface/AddOns/chorus/README.adoc |
|
37 |
|
${DESTDIR}/Interface/AddOns/chorus/share/ |
|
38 |
|
${DESTDIR}/Interface/AddOns/chorus/src/ |
|
39 |
|
${DESTDIR}/Interface/AddOns/chorus/target/ |
|
40 |
|
${DESTDIR}/Interface/AddOns/chorus/test/ |
39 |
41 |
---- |
---- |
40 |
42 |
|
|
41 |
43 |
Experienced users may install the add-on with `git`. |
Experienced users may install the add-on with `git`. |
42 |
44 |
|
|
43 |
45 |
---- |
---- |
44 |
|
git clone --branch master https://rocketgit.com/user/vrtc/chorus "${gamedir}/Interface/AddOns/chorus" |
|
|
46 |
|
git clone --branch master -o upstream https://rocketgit.com/user/vrtc/chorus "${DESTDIR}/Interface/AddOns/chorus/" |
45 |
47 |
---- |
---- |
46 |
48 |
|
|
47 |
49 |
== Development |
== Development |
|
... |
... |
tools that may still be applicable. |
54 |
56 |
|
|
55 |
57 |
Build dependencies: |
Build dependencies: |
56 |
58 |
|
|
57 |
|
- luacheck (static analysis for Lua); |
|
58 |
|
- xmllint (XML validator); |
|
59 |
|
- luarocks (packaging and project management for Lua); |
|
60 |
|
- ldoc (generate technical documentation from Lua sources); |
|
|
59 |
|
* `make` (build instrumentation); |
|
60 |
|
* `git` (versioning, packaging, distribution); |
|
61 |
|
* `luacheck` (static analysis for Lua); |
|
62 |
|
* `xmllint` (XML validator); |
|
63 |
|
* `ldoc` (generate technical documentation from Lua sources); |
61 |
64 |
|
|
62 |
65 |
==== Build dependencies for Debian 12 |
==== Build dependencies for Debian 12 |
63 |
66 |
|
|
|
... |
... |
the repository was cloned to, or where the add-on was already installed to. |
83 |
86 |
The build is done with `make` utility. All example commands assume it's |
The build is done with `make` utility. All example commands assume it's |
84 |
87 |
installed. |
installed. |
85 |
88 |
|
|
|
89 |
|
Minimal effort was made to make the `Makefile` adhere to `GNUmakefile` |
|
90 |
|
conventions. |
|
91 |
|
|
86 |
92 |
Validate Lua snippets for sanity. Requires `luacheck`. The configuration is |
Validate Lua snippets for sanity. Requires `luacheck`. The configuration is |
87 |
93 |
loaded from `etc/luacheckrc.lua`. |
loaded from `etc/luacheckrc.lua`. |
88 |
94 |
|
|
|
... |
... |
make check-lua |
91 |
97 |
---- |
---- |
92 |
98 |
|
|
93 |
99 |
Validate Blizzard UI XML snippets for sanity. Requires `xmllint`. The schema is |
Validate Blizzard UI XML snippets for sanity. Requires `xmllint`. The schema is |
94 |
|
loaded from `etc/xml/FrameXML/UI.xsd`. The schema descriptor was exported from |
|
|
100 |
|
loaded from `etc/FrameXML/UI.xsd`. The schema descriptor was exported from |
95 |
101 |
the game client, version 3.3.5a. |
the game client, version 3.3.5a. |
96 |
102 |
|
|
97 |
103 |
---- |
---- |
|
... |
... |
not work if the project's was obtained from a distribution archive. |
111 |
117 |
---- |
---- |
112 |
118 |
make dist |
make dist |
113 |
119 |
---- |
---- |
114 |
|
|
|
115 |
|
Minimal effort was made to make the `Makefile` adhere to `GNUmakefile` |
|
116 |
|
conventions. |
|
File src/Chorus.lua changed (mode: 100644) (index 143e40f..ac8e35a) |
|
1 |
|
--[[-- |
|
2 |
|
This module contains all functions that are accessible from global scope |
|
3 |
|
defined by this project. |
|
4 |
|
|
|
5 |
|
All relevant frames or globals that belong to this project, but for convenience |
|
6 |
|
or necessity are not contained in this module, are allocated with names that |
|
7 |
|
are prefixed with the module's name that is `Chorus`. |
|
8 |
|
|
|
9 |
|
@module chorus |
|
10 |
|
]]-- |
|
11 |
|
|
1 |
12 |
Chorus = {} |
Chorus = {} |
2 |
13 |
|
|
3 |
14 |
Chorus.test = {} |
Chorus.test = {} |
4 |
15 |
|
|
|
16 |
|
--[[-- |
|
17 |
|
Utility function for developers that lists and caches, using SavedVariables |
|
18 |
|
mechanism, all function names that were defined by this project. |
|
19 |
|
|
|
20 |
|
The output is used as a definitive list of all dynamically allocated frames. |
|
21 |
|
|
|
22 |
|
@function Chorus.luacheckrcDump |
|
23 |
|
]] |
5 |
24 |
function Chorus.luacheckrcDump() |
function Chorus.luacheckrcDump() |
6 |
25 |
if not ChorusLuacheckrcDump then |
if not ChorusLuacheckrcDump then |
7 |
26 |
ChorusLuacheckrcDump = {} |
ChorusLuacheckrcDump = {} |
File src/ChorusAuraFrameTemplate.lua changed (mode: 100644) (index dcd8121..2084e66) |
|
1 |
|
--[[-- |
|
2 |
|
`ChorusAuraFrameTemplate` handles subsets of unit auras, individual aura |
|
3 |
|
buttons are handled by `ChorusAuraButtonTemplate`. |
|
4 |
|
@submodule chorus |
|
5 |
|
]] |
|
6 |
|
|
1 |
7 |
local Chorus = Chorus |
local Chorus = Chorus |
2 |
8 |
|
|
3 |
9 |
local auraButtonEventProcessor = Chorus.auraButtonEventProcessor |
local auraButtonEventProcessor = Chorus.auraButtonEventProcessor |
|
... |
... |
local BUFF_MAX_DISPLAY = BUFF_MAX_DISPLAY or 36 |
13 |
19 |
--[[ See `FrameXML/BuffFrame.lua:DEBUFF_MAX_DISPLAY`. ]]-- |
--[[ See `FrameXML/BuffFrame.lua:DEBUFF_MAX_DISPLAY`. ]]-- |
14 |
20 |
local DEBUFF_MAX_DISPLAY = DEBUFF_MAX_DISPLAY or 36 |
local DEBUFF_MAX_DISPLAY = DEBUFF_MAX_DISPLAY or 36 |
15 |
21 |
|
|
16 |
|
--[[ TODO Globalize special spells. ]]-- |
|
17 |
|
local auraWeightMap = { |
|
18 |
|
['Aimed Shot'] = 1, |
|
19 |
|
['Anti-Magic Shell'] = 2, |
|
20 |
|
['Avenging Wrath'] = 3, |
|
21 |
|
['Bladestorm'] = 3, |
|
22 |
|
['Blind'] = 3, |
|
23 |
|
['Chains of Ice'] = 1, |
|
24 |
|
['Cheap Shot'] = 1, |
|
25 |
|
['Concussion Blow'] = 1, |
|
26 |
|
['Cyclone'] = 3, |
|
27 |
|
['Deterrence'] = 3, |
|
28 |
|
['Disarm'] = 2, |
|
29 |
|
['Disarmed'] = 2, |
|
30 |
|
['Divine Plea'] = 1, |
|
31 |
|
['Divine Shield'] = 3, |
|
32 |
|
['Entangling Roots'] = 1, |
|
33 |
|
['Evasion'] = 2, |
|
34 |
|
['Evocation'] = 2, |
|
35 |
|
['Fear'] = 2, |
|
36 |
|
['Freezing Trap'] = 2, |
|
37 |
|
['Gnaw'] = 2, |
|
38 |
|
['Gouge'] = 2, |
|
39 |
|
['Grounding Totem Effect'] = 2, |
|
40 |
|
['Grounding Totem'] = 2, |
|
41 |
|
['Hammer of Justice'] = 1, |
|
42 |
|
['Hamstring'] = 1, |
|
43 |
|
['Hand of Freedom'] = 1, |
|
44 |
|
['Hand of Protection'] = 2, |
|
45 |
|
['Hand of Sacrifice'] = 1, |
|
46 |
|
['Hand of Salvation'] = 1, |
|
47 |
|
['Hex'] = 2, |
|
48 |
|
['Hibernation'] = 2, |
|
49 |
|
['Ice Block'] = 3, |
|
50 |
|
['Icebound Fortitude'] = 3, |
|
51 |
|
['Kidney Shot'] = 1, |
|
52 |
|
['Last Stand'] = 3, |
|
53 |
|
['Mind Control'] = 3, |
|
54 |
|
['Mortal Strike'] = 1, |
|
55 |
|
['Polymorph'] = 2, |
|
56 |
|
['Psychic Scream'] = 2, |
|
57 |
|
['Recklessness'] = 3, |
|
58 |
|
['Sacrifice'] = 2, |
|
59 |
|
['Sap'] = 3, |
|
60 |
|
['Seduction'] = 2, |
|
61 |
|
['Shield Block'] = 2, |
|
62 |
|
['Shield Wall'] = 3, |
|
63 |
|
['Sleep'] = 2, |
|
64 |
|
['Spell Reflection'] = 2, |
|
65 |
|
['Unstable Affliction'] = 2, |
|
66 |
|
['Wounding Poison'] = 1, |
|
67 |
|
} |
|
68 |
|
|
|
69 |
|
Chorus.auraWeightMap = auraWeightMap |
|
|
22 |
|
local auraWeightMap = ChorusAuraWeightMap |
|
23 |
|
|
|
24 |
|
--[[-- |
|
25 |
|
Query the game for a given aura, then compute the weight for it, that is used |
|
26 |
|
in when aura frame is sorted. |
70 |
27 |
|
|
|
28 |
|
The weight is computed using remaining duration, owner of the aura (player |
|
29 |
|
auras take priority), and special exceptions. |
|
30 |
|
|
|
31 |
|
@function getAuraWeight |
|
32 |
|
@see ChorusAuraWeightMap |
|
33 |
|
@string unitDesignation unit as in `function UnitAura` |
|
34 |
|
@int auraIndex sequential number starting from 1 as in `function UnitAura` |
|
35 |
|
@string filter aura filter descriptor, usually either `HELPFUL` or `HARMFUL`, as in `function UnitAura` |
|
36 |
|
@treturn int aura weight in [0,90000], the larger the number the more likely the aura is to be shown first |
|
37 |
|
]] |
71 |
38 |
local function getAuraWeight(unitDesignation, auraIndex, filter) |
local function getAuraWeight(unitDesignation, auraIndex, filter) |
72 |
39 |
local name, _, _, _, _, durationSec, owner = UnitAura(unitDesignation, auraIndex, filter) |
local name, _, _, _, _, durationSec, owner = UnitAura(unitDesignation, auraIndex, filter) |
73 |
40 |
if not name then |
if not name then |
|
... |
... |
local function createEveryAuraButton(auraFrame) |
210 |
177 |
end |
end |
211 |
178 |
end |
end |
212 |
179 |
|
|
|
180 |
|
local function validateAuraWeightMap(t) |
|
181 |
|
assert(t ~= nil) |
|
182 |
|
assert('table' == type(t)) |
|
183 |
|
assert(#t >= 1) |
|
184 |
|
for spellName, weightNumber in pairs(t) do |
|
185 |
|
assert(spellName ~= nil) |
|
186 |
|
assert('string' == type(spellName)) |
|
187 |
|
spellName = strtrim(spellName) |
|
188 |
|
assert(string.len(spellName) >= 1) |
|
189 |
|
assert(string.len(spellName) <= 256) |
|
190 |
|
|
|
191 |
|
assert(weightNumber ~= nil) |
|
192 |
|
assert('number' == type(weightNumber)) |
|
193 |
|
assert(weightNumber >= 1) |
|
194 |
|
assert(weightNumber <= 9) |
|
195 |
|
end |
|
196 |
|
end |
|
197 |
|
|
213 |
198 |
function Chorus.auraFrameMain(self) |
function Chorus.auraFrameMain(self) |
214 |
199 |
assert(self ~= nil) |
assert(self ~= nil) |
215 |
200 |
|
|
|
... |
... |
function Chorus.auraFrameMain(self) |
247 |
232 |
|
|
248 |
233 |
self:SetScript('OnEvent', auraFrameEventProcessor) |
self:SetScript('OnEvent', auraFrameEventProcessor) |
249 |
234 |
self:SetScript('OnShow', auraFrameEventProcessor) |
self:SetScript('OnShow', auraFrameEventProcessor) |
|
235 |
|
|
|
236 |
|
if auraWeightMap then |
|
237 |
|
validateAuraWeightMap(auraWeightMap) |
|
238 |
|
else |
|
239 |
|
print('ChorusAuraFrameTemplate.lua: warning: aura weight map empty or missing') |
|
240 |
|
end |
|
241 |
|
end |
|
242 |
|
|
|
243 |
|
function Chorus.getAuraWeight(...) |
|
244 |
|
return getAuraWeight(...) |
|
245 |
|
end |
|
246 |
|
|
|
247 |
|
function Chorus.getAuraPriorityList(...) |
|
248 |
|
return getAuraPriorityList(...) |
250 |
249 |
end |
end |
File src/ChorusUnitFrameTemplate.lua changed (mode: 100644) (index 1887282..59b3514) |
|
1 |
|
--[[-- |
|
2 |
|
`ChorusUnitFrameTemplate` is the root template for all unit button variations. |
|
3 |
|
|
|
4 |
|
All widgets are conditionally included as children to instances of this |
|
5 |
|
template. For example health bars, power bars, aura frames, combat indicator, |
|
6 |
|
range indicator. These widgets are separated into their own templates. |
|
7 |
|
|
|
8 |
|
The template is further specialized into the following profiles. |
|
9 |
|
|
|
10 |
|
* `ChorusTinyUnitFrameTemplate`; |
|
11 |
|
* `ChorusSmallUnitFrameTemplate`; |
|
12 |
|
* `ChorusLargeUnitFrameTemplate`; |
|
13 |
|
* `ChorusHugeUnitFrameTemplate`; |
|
14 |
|
|
|
15 |
|
When instancing a unit button, one of these specializations is to be used. |
|
16 |
|
|
|
17 |
|
Group frame templates may define further specialized templates. |
|
18 |
|
|
|
19 |
|
@submodule chorus |
|
20 |
|
]] |
|
21 |
|
|
1 |
22 |
local Chorus = Chorus |
local Chorus = Chorus |
2 |
23 |
|
|
3 |
24 |
local UnitExists = Chorus.test.UnitExists or UnitExists |
local UnitExists = Chorus.test.UnitExists or UnitExists |
File src/Makefile added (mode: 100644) (index 0000000..cfa3b5d) |
|
1 |
|
# The order in which Lua snippets are processed is sometimes relevant. |
|
2 |
|
# Specifically, `ldoc` requires `Chorus.lua` file to be first, since it |
|
3 |
|
# contains the master module definition. Hence this list of source files. |
|
4 |
|
|
|
5 |
|
# It is possible to accomplish the same task using `vpath` or `addprefix`. This |
|
6 |
|
# blunt approch is more portable and more easily understood by developers not |
|
7 |
|
# familiar with the `make` tool. |
|
8 |
|
|
|
9 |
|
LUAFILES += \ |
|
10 |
|
${srcdir}src/Chorus.lua \ |
|
11 |
|
${srcdir}src/ChorusTest.lua \ |
|
12 |
|
${srcdir}src/local.lua \ |
|
13 |
|
${srcdir}src/ChorusAuraButtonTemplate.lua \ |
|
14 |
|
${srcdir}src/ChorusAuraFrameTemplate.lua \ |
|
15 |
|
${srcdir}src/ChorusAuraTooltipFrameTemplate.lua \ |
|
16 |
|
${srcdir}src/ChorusCastFrameTemplate.lua \ |
|
17 |
|
${srcdir}src/ChorusProgressFrameTemplate.lua \ |
|
18 |
|
${srcdir}src/ChorusRaidTargetIconFrameTemplate.lua \ |
|
19 |
|
${srcdir}src/ChorusRangeFrameTemplate.lua \ |
|
20 |
|
${srcdir}src/ChorusThreatFrameTemplate.lua \ |
|
21 |
|
${srcdir}src/ChorusUnitAffectingCombatFrameTemplate.lua \ |
|
22 |
|
${srcdir}src/ChorusUnitBackdropTemplate.lua \ |
|
23 |
|
${srcdir}src/ChorusUnitButtonTemplate.lua \ |
|
24 |
|
${srcdir}src/ChorusUnitFrameTemplate.lua \ |
|
25 |
|
${srcdir}src/ChorusUnitGroupRoleFrameTemplate.lua \ |
|
26 |
|
${srcdir}src/ChorusUnitLevelFrameTemplate.lua \ |
|
27 |
|
${srcdir}src/ChorusUnitNameFrameTemplate.lua \ |
|
28 |
|
${srcdir}src/ChorusRaidFrame.lua \ |
|
29 |
|
${srcdir}src/ChorusPartyFrame.lua \ |
|
30 |
|
${srcdir}src/ChorusGroupFrame.lua \ |
|
31 |
|
${srcdir}src/ChorusFrame.lua |
|
32 |
|
|
|
33 |
|
XMLFILES += \ |
|
34 |
|
${srcdir}src/Chorus.xml \ |
|
35 |
|
${srcdir}src/ChorusFont.xml \ |
|
36 |
|
${srcdir}src/ChorusAuraButtonTemplate.xml \ |
|
37 |
|
${srcdir}src/ChorusAuraFrameTemplate.xml \ |
|
38 |
|
${srcdir}src/ChorusAuraTooltipFrameTemplate.xml \ |
|
39 |
|
${srcdir}src/ChorusCastFrameTemplate.xml \ |
|
40 |
|
${srcdir}src/ChorusHealthFrameTemplate.xml \ |
|
41 |
|
${srcdir}src/ChorusHugeUnitFrameTemplate.xml \ |
|
42 |
|
${srcdir}src/ChorusLargeUnitFrameTemplate.xml \ |
|
43 |
|
${srcdir}src/ChorusPowerFrameTemplate.xml \ |
|
44 |
|
${srcdir}src/ChorusProgressFrameTemplate.xml \ |
|
45 |
|
${srcdir}src/ChorusRaidTargetIconFrameTemplate.xml \ |
|
46 |
|
${srcdir}src/ChorusRangeFrameTemplate.xml \ |
|
47 |
|
${srcdir}src/ChorusSmallUnitFrameTemplate.xml \ |
|
48 |
|
${srcdir}src/ChorusThreatFrameTemplate.xml \ |
|
49 |
|
${srcdir}src/ChorusTinyUnitFrameTemplate.xml \ |
|
50 |
|
${srcdir}src/ChorusUnitAffectingCombatFrameTemplate.xml \ |
|
51 |
|
${srcdir}src/ChorusUnitBackdropTemplate.xml \ |
|
52 |
|
${srcdir}src/ChorusUnitButtonTemplate.xml \ |
|
53 |
|
${srcdir}src/ChorusUnitFrameTemplate.xml \ |
|
54 |
|
${srcdir}src/ChorusUnitGroupRoleFrameTemplate.xml \ |
|
55 |
|
${srcdir}src/ChorusUnitLevelFrameTemplate.xml \ |
|
56 |
|
${srcdir}src/ChorusUnitNameFrameTemplate.xml \ |
|
57 |
|
${srcdir}src/ChorusFocusFrame.xml \ |
|
58 |
|
${srcdir}src/ChorusPlayerFrame.xml \ |
|
59 |
|
${srcdir}src/ChorusTargetFrame.xml \ |
|
60 |
|
${srcdir}src/ChorusPartyFrame.xml \ |
|
61 |
|
${srcdir}src/ChorusRaidFrame.xml \ |
|
62 |
|
${srcdir}src/ChorusGroupFrame.xml \ |
|
63 |
|
${srcdir}src/ChorusFrame.xml |
File src/local.lua added (mode: 100644) (index 0000000..09903a4) |
|
1 |
|
--[[-- |
|
2 |
|
@submodule chorus |
|
3 |
|
]] |
|
4 |
|
|
|
5 |
|
--[[-- |
|
6 |
|
Local preferences for Chorus. |
|
7 |
|
@section local |
|
8 |
|
]] |
|
9 |
|
|
|
10 |
|
--[[-- |
|
11 |
|
This map contains auras that are prioritized to be shown first in the aura |
|
12 |
|
frames. |
|
13 |
|
|
|
14 |
|
Every key is a localized aura name, that `function UnitAura` will accept. |
|
15 |
|
|
|
16 |
|
Every value is a positive integer in [1,9], that is the weight. The larger the |
|
17 |
|
weight, the higher the priority the given aura will be shown before others. |
|
18 |
|
|
|
19 |
|
This map should be overriden for every game client localization. Only localized |
|
20 |
|
aura names are accepted by the game API. It is much more convenient to list |
|
21 |
|
human-readable aura names, than every integer identifier for every aura rank. |
|
22 |
|
|
|
23 |
|
Additionally, users may override this map in accordance with their personal |
|
24 |
|
preference. The default values aim to give reasonable preset for all abilities |
|
25 |
|
usable by player characters in the English version of the game. |
|
26 |
|
|
|
27 |
|
@table ChorusAuraWeightMap |
|
28 |
|
@see getAuraWeight |
|
29 |
|
]] |
|
30 |
|
ChorusAuraWeightMap = { |
|
31 |
|
['Aimed Shot'] = 1, |
|
32 |
|
['Anti-Magic Shell'] = 2, |
|
33 |
|
['Avenging Wrath'] = 3, |
|
34 |
|
['Bladestorm'] = 3, |
|
35 |
|
['Blind'] = 3, |
|
36 |
|
['Chains of Ice'] = 1, |
|
37 |
|
['Cheap Shot'] = 1, |
|
38 |
|
['Concussion Blow'] = 1, |
|
39 |
|
['Cyclone'] = 3, |
|
40 |
|
['Deterrence'] = 3, |
|
41 |
|
['Disarm'] = 2, |
|
42 |
|
['Disarmed'] = 2, |
|
43 |
|
['Divine Plea'] = 1, |
|
44 |
|
['Divine Shield'] = 3, |
|
45 |
|
['Entangling Roots'] = 1, |
|
46 |
|
['Evasion'] = 2, |
|
47 |
|
['Evocation'] = 2, |
|
48 |
|
['Fear'] = 2, |
|
49 |
|
['Freezing Trap'] = 2, |
|
50 |
|
['Gnaw'] = 2, |
|
51 |
|
['Gouge'] = 2, |
|
52 |
|
['Grounding Totem Effect'] = 2, |
|
53 |
|
['Grounding Totem'] = 2, |
|
54 |
|
['Hammer of Justice'] = 1, |
|
55 |
|
['Hamstring'] = 1, |
|
56 |
|
['Hand of Freedom'] = 1, |
|
57 |
|
['Hand of Protection'] = 2, |
|
58 |
|
['Hand of Sacrifice'] = 1, |
|
59 |
|
['Hand of Salvation'] = 1, |
|
60 |
|
['Hex'] = 2, |
|
61 |
|
['Hibernation'] = 2, |
|
62 |
|
['Ice Block'] = 3, |
|
63 |
|
['Icebound Fortitude'] = 3, |
|
64 |
|
['Kidney Shot'] = 1, |
|
65 |
|
['Last Stand'] = 3, |
|
66 |
|
['Mind Control'] = 3, |
|
67 |
|
['Mortal Strike'] = 1, |
|
68 |
|
['Polymorph'] = 2, |
|
69 |
|
['Psychic Scream'] = 2, |
|
70 |
|
['Recklessness'] = 3, |
|
71 |
|
['Sacrifice'] = 2, |
|
72 |
|
['Sap'] = 3, |
|
73 |
|
['Seduction'] = 2, |
|
74 |
|
['Shield Block'] = 2, |
|
75 |
|
['Shield Wall'] = 3, |
|
76 |
|
['Sleep'] = 2, |
|
77 |
|
['Spell Reflection'] = 2, |
|
78 |
|
['Unstable Affliction'] = 2, |
|
79 |
|
['Wounding Poison'] = 1, |
|
80 |
|
} |