Quantcast
--[[
##############################################################################
_____/\\\\\\\\\\\____/\\\________/\\\__/\\\________/\\\__/\\\\\\\\\\\_       #
 ___/\\\/////////\\\_\/\\\_______\/\\\_\/\\\_______\/\\\_\/////\\\///__      #
  __\//\\\______\///__\//\\\______/\\\__\/\\\_______\/\\\_____\/\\\_____     #
   ___\////\\\__________\//\\\____/\\\___\/\\\_______\/\\\_____\/\\\_____    #
    ______\////\\\________\//\\\__/\\\____\/\\\_______\/\\\_____\/\\\_____   #
     _________\////\\\______\//\\\/\\\_____\/\\\_______\/\\\_____\/\\\_____  #
      __/\\\______\//\\\______\//\\\\\______\//\\\______/\\\______\/\\\_____ #
       _\///\\\\\\\\\\\/________\//\\\________\///\\\\\\\\\/____/\\\\\\\\\\\_#
        ___\///////////___________\///___________\/////////_____\///////////_#
##############################################################################
S U P E R - V I L L A I N - U I   By: Munglunch                              #
##############################################################################
##########################################################
LOCALIZED LUA FUNCTIONS
##########################################################
]]--
--[[ GLOBALS ]]--
local _G = _G;
local unpack 	= _G.unpack;
local select 	= _G.select;
local math 		= _G.math;
--[[ MATH METHODS ]]--
local random = math.random;
--[[
##########################################################
GET ADDON DATA
##########################################################
]]--
local SVUI_ADDON_NAME, SV = ...
local SVLib = LibStub("LibSuperVillain-1.0")
local L = SVLib:Lang()

local EgoFrame = CreateFrame("Frame", "EgoFrame", UIParent);
--[[
##########################################################
LOCAL VARS
##########################################################
]]--
local animReady = true;
local playerGUID;

--[[
##########################################################
CORE FUNCTIONS
##########################################################
]]--
function EgoFrame:LaunchPopup()
	self.Model:Show()
	self.anim[2]:SetOffset(500, -500)
	self.anim[2]:SetOffset(0, 0)
	self.anim:Play()
	self.Model:SetAnimation(74)
end

local Ego_OnEvent = function(self, event)
	if event == "ACHIEVEMENT_EARNED" then
		self:LaunchPopup()
	else
		self:LaunchPopup()
	end
end

function SV:ToggleEgo()
	if not SV.db.general.ego then
		EgoFrame:UnregisterEvent("ACHIEVEMENT_EARNED")
		EgoFrame:UnregisterEvent("SCREENSHOT_SUCCEEDED")
		EgoFrame:SetScript("OnEvent", nil)
	else
		EgoFrame:RegisterEvent("ACHIEVEMENT_EARNED")
		EgoFrame:RegisterEvent("SCREENSHOT_SUCCEEDED")
		EgoFrame:SetScript("OnEvent", Ego_OnEvent)
	end
end

local EgoPop_OnUpdate = function(self) self.parent:SetAlpha(0) end

local function LoadSVEgo()
	EgoFrame:SetParent(SV.UIParent)
	EgoFrame:SetPoint("BOTTOMRIGHT", UIParent, "BOTTOMRIGHT", 0, 0)
	EgoFrame:SetWidth(500)
	EgoFrame:SetHeight(500)

	local model = CreateFrame("PlayerModel", "EgoFrameModel", EgoFrame)
	model:SetPoint("TOPLEFT",EgoFrame,25,-25)
	model:SetPoint("BOTTOMRIGHT",EgoFrame,-25,25)
	model:SetFrameStrata("DIALOG")
	model:SetPosition(0,0,0)
	model:SetUnit("player")
	model:Hide()

	EgoFrame.Model = model

	SV.Animate:Slide(EgoFrame, 500, -500, true)
	EgoFrame:SetAlpha(0)
	EgoFrame.anim[4]:SetScript("OnFinished", EgoPop_OnUpdate)
end
SVLib:NewScript(LoadSVEgo)