function()
	local AP = UnitPower("player") --Get astral power and max power
	local maxAP = UnitPowerMax("player")
	local APgains = --Define AP gained by spells
	{
		["New Moon"] = 10,
		["Half Moon"] = 20,
		["Full Moon"] = 40,
		["Lunar Strike"] = 12,
		["Solar Wrath"] = 8
	}
	local buff = UnitBuff("player", "Blessing of Elune") --Find 25% increase if present
	local casting = UnitCastingInfo("player") --Get spell currently being cast if any
	if casting then --If there's a spell being cast
		local plusAP = AP + APgains[casting] --Add AP gained by spell currently cast to current AP to "predict" AP
		if buff then
			if casting == "Lunar Strike" or casting == "Solar Wrath" then --If either spell affected by buff is being cast add 25% to it's ap gained
				local plusAP = AP + APgains[casting]
				plusAP = math.floor(plusAP + APgains[casting] * 0.25) --Get the 25% of 8 or 12 and add it to 8 or 12
			end
		end
		return maxAP - plusAP, maxAP, 1
	end
	if not casting then
		return maxAP - AP, maxAP, 1
	end
end