режим предателя + UI референсы и DragonUI
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
MAX_ARENA_BATTLES = 6;
|
||||
NO_ARENA_SEASON = 0;
|
||||
function ArenaFrame_OnLoad (self)
|
||||
self:RegisterEvent("BATTLEFIELDS_SHOW");
|
||||
self:RegisterEvent("BATTLEFIELDS_CLOSED");
|
||||
self:RegisterEvent("UPDATE_BATTLEFIELD_STATUS");
|
||||
self:RegisterEvent("PARTY_LEADER_CHANGED");
|
||||
end
|
||||
|
||||
function ArenaFrame_OnEvent (self, event, ...)
|
||||
if ( IsBattlefieldArena() ) then
|
||||
if ( event == "BATTLEFIELDS_SHOW" ) then
|
||||
ShowUIPanel(ArenaFrame);
|
||||
if ( ((GetNumPartyMembers() > 0) or (GetNumRaidMembers() > 0)) and IsPartyLeader() and GetCurrentArenaSeason()~=NO_ARENA_SEASON) then
|
||||
if ( not ArenaFrame.selection ) then
|
||||
ArenaFrame.selection = 1;
|
||||
end
|
||||
else
|
||||
if ( (not ArenaFrame.selection) or (ArenaFrame.selection < 4) ) then
|
||||
ArenaFrame.selection = 4;
|
||||
end
|
||||
end
|
||||
|
||||
if ( GetCurrentArenaSeason()==NO_ARENA_SEASON ) then
|
||||
ArenaFrameZoneDescription:SetText(ARENA_MASTER_NO_SEASON_TEXT);
|
||||
else
|
||||
ArenaFrameZoneDescription:SetText(ARENA_MASTER_TEXT)
|
||||
end
|
||||
|
||||
if ( not ArenaFrame:IsShown() ) then
|
||||
CloseBattlefield();
|
||||
return;
|
||||
end
|
||||
ArenaFrame_Update(self);
|
||||
elseif ( event == "BATTLEFIELDS_CLOSED" ) then
|
||||
HideUIPanel(ArenaFrame);
|
||||
elseif ( event == "UPDATE_BATTLEFIELD_STATUS" ) then
|
||||
ArenaFrame_Update(self);
|
||||
end
|
||||
if ( event == "PARTY_LEADER_CHANGED" ) then
|
||||
ArenaFrame_Update(self);
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ArenaButton_OnClick(self)
|
||||
local id = self:GetID();
|
||||
_G["ArenaZone"..id]:LockHighlight();
|
||||
ArenaFrame.selection = id;
|
||||
ArenaFrame_Update();
|
||||
end
|
||||
|
||||
function ArenaFrame_Update (self)
|
||||
local ARENA_TEAMS = {};
|
||||
ARENA_TEAMS[1] = {size = 2};
|
||||
ARENA_TEAMS[2] = {size = 3};
|
||||
ARENA_TEAMS[3] = {size = 5};
|
||||
|
||||
local button, battleType, teamSize;
|
||||
|
||||
for i=1, MAX_ARENA_BATTLES, 1 do
|
||||
button = _G["ArenaZone"..i];
|
||||
battleType = ARENA_RATED;
|
||||
teamSize = i;
|
||||
-- if buttons begin a second set of buttons for casual games, change text elements.
|
||||
button:Enable();
|
||||
if ( i > MAX_ARENA_TEAMS ) then
|
||||
teamSize = teamSize - MAX_ARENA_TEAMS;
|
||||
battleType = ARENA_CASUAL;
|
||||
elseif ( GetCurrentArenaSeason()==NO_ARENA_SEASON ) then
|
||||
button:Disable();
|
||||
end
|
||||
-- build text string to populate each element.
|
||||
button:SetText(format(PVP_TEAMTYPE, ARENA_TEAMS[teamSize].size, ARENA_TEAMS[teamSize].size).." "..battleType);
|
||||
-- Set selected instance
|
||||
if ( i == ArenaFrame.selection ) then
|
||||
button:LockHighlight();
|
||||
else
|
||||
button:UnlockHighlight();
|
||||
end
|
||||
end
|
||||
|
||||
if ( ArenaFrame.selection > MAX_ARENA_TEAMS ) then
|
||||
ArenaFrameJoinButton:Enable();
|
||||
else
|
||||
ArenaFrameJoinButton:Disable();
|
||||
end
|
||||
|
||||
if ( CanJoinBattlefieldAsGroup() ) then
|
||||
if ( ((GetNumPartyMembers() > 0) or (GetNumRaidMembers() > 0)) and IsPartyLeader() and GetCurrentArenaSeason()~=NO_ARENA_SEASON) then
|
||||
-- If this is true then can join as a group
|
||||
ArenaFrameGroupJoinButton:Enable();
|
||||
else
|
||||
ArenaFrameGroupJoinButton:Disable();
|
||||
end
|
||||
ArenaFrameGroupJoinButton:Show();
|
||||
else
|
||||
ArenaFrameGroupJoinButton:Hide();
|
||||
end
|
||||
|
||||
-- Enable or disable the group join button
|
||||
if ( CanJoinBattlefieldAsGroup() ) then
|
||||
if ( ((GetNumPartyMembers() > 0) or (GetNumRaidMembers() > 0)) and IsPartyLeader() ) then
|
||||
-- If this is true then can join as a group
|
||||
BattlefieldFrameGroupJoinButton:Enable();
|
||||
else
|
||||
BattlefieldFrameGroupJoinButton:Disable();
|
||||
end
|
||||
BattlefieldFrameGroupJoinButton:Show();
|
||||
else
|
||||
BattlefieldFrameGroupJoinButton:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function ArenaFrameJoinButton_OnClick(self)
|
||||
local GROUPJOIN_BUTTONID = 2;
|
||||
if ( ArenaFrame.selection < 4 ) then
|
||||
JoinBattlefield(ArenaFrame.selection, 1, 1);
|
||||
elseif ( ArenaFrame.selection > 3 and self:GetID() == GROUPJOIN_BUTTONID ) then
|
||||
JoinBattlefield(ArenaFrame.selection - 3, 1);
|
||||
else
|
||||
JoinBattlefield(ArenaFrame.selection - 3);
|
||||
end
|
||||
HideUIPanel(ArenaFrame);
|
||||
end
|
||||
Reference in New Issue
Block a user