vrtc / chorus (public) (License: CC0) (since 2023-08-12) (hash sha1)
World of Warcraft add-on stub. The overall goal is to create a specialized raid frame.
List of commits:
Subject Hash Author Date (UTC)
feat!: Add general threat situation widget a002db1c9c810f21fe1e1c042a435875bbe5f317 Vladyslav Bondarenko 2023-08-19 22:20:58
fix!: Highlight offline players 7c28b6efa34f6e5450d2999acfd5a54880aa6df0 Vladyslav Bondarenko 2023-08-19 21:06:38
fix!: Change aura sorting ba249c7309ccbcb14fea727b347c3dd532af73ee Vladyslav Bondarenko 2023-08-19 20:40:31
feat: Show player in party 198e8c86b9b93dd9c3edf7045d5bbcb9142d76d6 Vladyslav Bondarenko 2023-08-19 20:38:40
feat(doc)!: Add project description 4b406a549e83dda3845104e8a6a233eae481a3c8 Vladyslav Bondarenko 2023-08-19 05:58:50
fix: Typo in ChorusRaidFrame 61fb4f93c227e3b94a52df26eeffece12fe86e55 Vladyslav Bondarenko 2023-08-18 21:00:34
feat(build): Document build validation scripts d19d03c4a20c8c02fee8b4c1c00241c58baa12eb Vladyslav Bondarenko 2023-08-18 20:57:35
feat: Update raid frame ff5ad9619c6af14f7e1719cbaaf34fa0465c1f12 Vladyslav Bondarenko 2023-08-18 20:54:29
feat: Update add-on loading mechanism 2d8df81c17fbfcaf8d0bb966a3373503bb32a585 Vladyslav Bondarenko 2023-08-18 19:59:39
feat: Update progress frames on demand only 7c18488e61b5889eca4b057602fbc41883fc53f1 Vladyslav Bondarenko 2023-08-18 19:50:41
feat: Add basic font customization 321c2e6251e2e619101f8d57b4d4b1ef10a79694 Vladyslav Bondarenko 2023-08-18 17:29:12
fix: Improve range indicator accuracy 17ee7011ae6bdd3e28bae4694d40a68ea799d001 Vladyslav Bondarenko 2023-08-17 23:52:43
feat!: Add target range indicator 83b3fae1f675042b7d9e89c09aedc864e8fcaa27 Vladyslav Bondarenko 2023-08-17 22:41:08
feat: Add class color code to target frame 990cdf1d9f44c9916948697e74f86d6490d83304 Vladyslav Bondarenko 2023-08-17 20:59:28
feat: Add solo unit buttons 4658af2b5142ff2ca86c2c4b48577879117a9ecc Vladyslav Bondarenko 2023-08-17 20:38:10
feat: Add power bar to raid unit button b25bd8d28c30cb003bf8cfe2886e2cfd8442d32f Vladyslav Bondarenko 2023-08-17 18:48:29
feat!: Add basic raid frame stub 66e27810a396b564cf7cd737e1f402f4f433b879 Vladyslav Bondarenko 2023-08-17 17:40:08
feat: Add raid frame stub 5fd737cef8e3fc700bab1e6a89ceb68c21495eea Vladyslav Bondarenko 2023-08-16 02:35:08
fix: Show auras correctly at startup 54136c9cedf83fa2a8559b879ab8410a6e28646c Vladyslav Bondarenko 2023-08-15 19:15:48
fix!: Shadowing correct functions 53991b2f7093e765993f8423377602ca22e234da Vladyslav Bondarenko 2023-08-15 18:22:56
Commit a002db1c9c810f21fe1e1c042a435875bbe5f317 - feat!: Add general threat situation widget
For every raid unit button add an indicator that flashes red when the
corresponding player gains threat on any monster enemy.

Does not display detailed numerical threat on any target. This is out of
scope of raid frames. Maybe add support for it in the future as an
optional feature.
Author: Vladyslav Bondarenko
Author date (UTC): 2023-08-19 22:20
Committer name: Vladyslav Bondarenko
Committer date (UTC): 2023-08-19 22:20
Parent(s): 7c28b6efa34f6e5450d2999acfd5a54880aa6df0
Signer:
Signing key: EFF9624877D25D02
Signing status: E
Tree: 864d1710cf2abb75dcc12d6c1c02ed10fdf416a4
File Lines added Lines deleted
etc/luacheckrc.lua 2 0
src/Chorus.xml 2 1
src/ChorusRaidUnitButtonTemplate.lua 1 2
src/ChorusRaidUnitButtonTemplate.xml 18 9
src/ChorusThreatFrameTemplate.lua 54 0
src/ChorusThreatFrameTemplate.xml 17 0
File etc/luacheckrc.lua changed (mode: 100644) (index 4656708..e094554)
... ... stds.wow = {
6 6 'GetPlayerInfoByGUID', 'GetPlayerInfoByGUID',
7 7 'GetSpellInfo', 'GetSpellInfo',
8 8 'GetSpellTexture', 'GetSpellTexture',
9 'GetThreatStatusColor',
9 10 'GetTime', 'GetTime',
10 11 'IsSpellInRange', 'IsSpellInRange',
11 12 'PowerBarColor', 'PowerBarColor',
 
... ... stds.wow = {
28 29 'UnitPower', 'UnitPower',
29 30 'UnitPowerMax', 'UnitPowerMax',
30 31 'UnitPowerType', 'UnitPowerType',
32 'UnitThreatSituation',
31 33 'date', 'date',
32 34 'strtrim', 'strtrim',
33 35 'tContains', 'tContains',
File src/Chorus.xml changed (mode: 100644) (index 0caa6a7..7bc96db)
8 8 <Include file="ChorusHealthFrameTemplate.xml"/> <Include file="ChorusHealthFrameTemplate.xml"/>
9 9 <Include file="ChorusPowerFrameTemplate.xml"/> <Include file="ChorusPowerFrameTemplate.xml"/>
10 10 <Include file="ChorusUnitNameFrameTemplate.xml"/> <Include file="ChorusUnitNameFrameTemplate.xml"/>
11 <Include file="ChorusRaidUnitButtonTemplate.xml"/>
12 11 <Include file="ChorusRangeFrameTemplate.xml"/> <Include file="ChorusRangeFrameTemplate.xml"/>
12 <Include file="ChorusThreatFrameTemplate.xml"/>
13 <Include file="ChorusRaidUnitButtonTemplate.xml"/>
13 14 <Include file="ChorusRaidFrame.xml"/> <Include file="ChorusRaidFrame.xml"/>
14 15 <Include file="ChorusTestFrame.xml"/> <Include file="ChorusTestFrame.xml"/>
15 16 </Ui> </Ui>
File src/ChorusRaidUnitButtonTemplate.lua changed (mode: 100644) (index b8d47a1..8a951ca)
... ... function Chorus.raidUnitButtonMain(self)
52 52
53 53 Chorus.raidUnitButtonAttributeChangedProcessor(self, 'unit', self:GetAttribute('unit')) Chorus.raidUnitButtonAttributeChangedProcessor(self, 'unit', self:GetAttribute('unit'))
54 54 --[[ TODO Add menu popup for unit frames ]]-- --[[ TODO Add menu popup for unit frames ]]--
55 --[[ TODO Add range indicator ]]--
56 --[[ TODO Add threat indicator ]]--
57 55 --[[ TODO Add role indicator ]]-- --[[ TODO Add role indicator ]]--
56 --[[ TODO Add raid mark indicator ]]--
58 57 end end
File src/ChorusRaidUnitButtonTemplate.xml changed (mode: 100644) (index 5ff787e..19db816)
41 41 </Anchor> </Anchor>
42 42 </Anchors> </Anchors>
43 43 </StatusBar> </StatusBar>
44 <Frame name="$parentRangeFrame" inherits="ChorusRangeFrameTemplate">
44 <StatusBar name="$parentPowerFrame" inherits="ChorusPowerFrameTemplate">
45 45 <Anchors> <Anchors>
46 <Anchor point="BOTTOMRIGHT" relativeTo="$parentHealthFrame" relativePoint="BOTTOMRIGHT">
46 <Anchor point="TOPLEFT" relativeTo="$parentHealthFrame" relativePoint="BOTTOMLEFT">
47 47 <Offset> <Offset>
48 48 <AbsDimension x="0" y="0"/> <AbsDimension x="0" y="0"/>
49 49 </Offset> </Offset>
50 50 </Anchor> </Anchor>
51 <Anchor point="BOTTOMRIGHT" relativeTo="$parentHealthFrame" relativePoint="BOTTOMRIGHT">
52 <Offset>
53 <AbsDimension x="0" y="-6"/>
54 </Offset>
55 </Anchor>
51 56 </Anchors> </Anchors>
52 </Frame>
53 <StatusBar name="$parentPowerFrame" inherits="ChorusPowerFrameTemplate">
57 </StatusBar>
58 <Frame name="$parentThreatFrame" inherits="ChorusThreatFrameTemplate">
54 59 <Anchors> <Anchors>
55 <Anchor point="TOPLEFT" relativeTo="$parentHealthFrame" relativePoint="BOTTOMLEFT">
60 <Anchor point="TOPLEFT" relativeTo="$parentPowerFrame" relativePoint="BOTTOMLEFT">
56 61 <Offset> <Offset>
57 62 <AbsDimension x="0" y="0"/> <AbsDimension x="0" y="0"/>
58 63 </Offset> </Offset>
59 64 </Anchor> </Anchor>
60 <Anchor point="BOTTOMRIGHT" relativeTo="$parentHealthFrame" relativePoint="BOTTOMRIGHT">
65 </Anchors>
66 </Frame>
67 <Frame name="$parentRangeFrame" inherits="ChorusRangeFrameTemplate">
68 <Anchors>
69 <Anchor point="TOPRIGHT" relativeTo="$parentPowerFrame" relativePoint="BOTTOMRIGHT">
61 70 <Offset> <Offset>
62 <AbsDimension x="0" y="-6"/>
71 <AbsDimension x="0" y="0"/>
63 72 </Offset> </Offset>
64 73 </Anchor> </Anchor>
65 74 </Anchors> </Anchors>
66 </StatusBar>
75 </Frame>
67 76 <Frame name="$parentBuffFrame" inherits="ChorusAuraFrameTemplate"> <Frame name="$parentBuffFrame" inherits="ChorusAuraFrameTemplate">
68 77 <Size> <Size>
69 78 <AbsDimension x="144" y="24"/> <AbsDimension x="144" y="24"/>
70 79 </Size> </Size>
71 80 <Anchors> <Anchors>
72 <Anchor point="TOPLEFT" relativeTo="$parentPowerFrame" relativePoint="BOTTOMLEFT">
81 <Anchor point="TOPLEFT" relativeTo="$parentThreatFrame" relativePoint="BOTTOMLEFT">
73 82 <Offset> <Offset>
74 83 <AbsDimension x="0" y="0"/> <AbsDimension x="0" y="0"/>
75 84 </Offset> </Offset>
File src/ChorusThreatFrameTemplate.lua added (mode: 100644) (index 0000000..762666c)
1 local GetThreatStatusColor = GetThreatStatusColor
2 local UnitThreatSituation = UnitThreatSituation
3
4 local Chorus = Chorus
5
6 local function threatFrameEventProcessor(self)
7 assert(self ~= nil)
8
9 local unitButton = self:GetParent()
10 assert(unitButton ~= nil)
11
12 local u = self.unit or self:GetAttribute('unit')
13 if not u and unitButton then
14 u = unitButton.unit or unitButton:GetAttribute('unit')
15 end
16 u = u or 'none'
17 assert(u ~= nil)
18
19 if UnitExists(u) and UnitIsConnected(u) then
20 self:Show()
21 else
22 self:Hide()
23 return
24 end
25
26 local r = 0
27 local g = 0
28 local b = 0
29 local a = 0
30 local threatStatus = UnitThreatSituation(u)
31 if threatStatus then
32 r, g, b = GetThreatStatusColor(threatStatus)
33 a = 1
34 end
35 local artwork = self.artwork
36 assert (artwork ~= nil)
37 artwork:SetVertexColor(r, g, b, a)
38 end
39
40 local function threatFrameMain(self)
41 assert(self ~= nil)
42
43 local artwork = _G[self:GetName() .. 'Artwork']
44 assert(artwork ~= nil)
45 self.artwork = artwork
46
47 self:RegisterEvent('UNIT_THREAT_SITUATION_UPDATE')
48 self:RegisterEvent('PLAYER_ENTERING_WORLD')
49 self:SetScript('OnEvent', threatFrameEventProcessor)
50 end
51
52 Chorus.threatFrameMain = function(...)
53 return threatFrameMain(...)
54 end
File src/ChorusThreatFrameTemplate.xml added (mode: 100644) (index 0000000..d55b8c4)
1 <?xml version="1.0" encoding="UTF-8"?>
2 <Ui xmlns="http://www.blizzard.com/wow/ui/">
3 <Script file="ChorusThreatFrameTemplate.lua"/>
4 <Frame name="ChorusThreatFrameTemplate" virtual="true">
5 <Size>
6 <AbsDimension x="16" y="16" />
7 </Size>
8 <Layers>
9 <Layer level="ARTWORK">
10 <Texture name="$parentArtwork" file="Interface\RaidFrame\UI-RaidFrame-Threat" setAllPoints="true"/>
11 </Layer>
12 </Layers>
13 <Scripts>
14 <OnLoad>Chorus.threatFrameMain(self);</OnLoad>
15 </Scripts>
16 </Frame>
17 </Ui>
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/vrtc/chorus

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/vrtc/chorus

Clone this repository using git:
git clone git://git.rocketgit.com/user/vrtc/chorus

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main