local p=require((game:GetService("\082\101\112\108\105\099\097\116\101\100\083\116\111\114\097\103\101")):WaitForChild("\078\101\118\101\114\109\111\114\101"))local N=p("\083\117\109\109\101\100\067\097\109\101\114\097")local q={}q.ClassName="\073\110\118\101\114\115\101\070\097\100\101\114"function q.new(p,N)local k=setmetatable({},q)k.Camera=p or error()k.Fader=N or error()return k end function q.__add(q,p)return N.new(q,p)end function q.__index(N,p)if p=="\083\116\097\116\101"or p=="\067\097\109\101\114\097\083\116\097\116\101"or p=="\067\097\109\101\114\097"then return(N.Camera.CameraState or N.Camera)*(1-N.Fader.Value)else return q[p]end end return q
--- Be the inverse of a fading camera (makes scaling in cameras easy).
-- @classmod InverseFader

local require = require(game:GetService("ReplicatedStorage"):WaitForChild("Nevermore"))

local SummedCamera = require("SummedCamera")

local InverseFader = {}
InverseFader.ClassName = "InverseFader"

function InverseFader.new(Camera, Fader)
	local self = setmetatable({}, InverseFader)

	self.Camera = Camera or error()
	self.Fader = Fader or error()

	return self
end

function InverseFader:__add(other)
	return SummedCamera.new(self, other)
end

function InverseFader:__index(index)
	if index == "State" or index == "CameraState" or index == "Camera" then
		return (self.Camera.CameraState or self.Camera)*(1-self.Fader.Value)
	else
		return InverseFader[index]
	end
end

return InverseFader