54 lines
1.6 KiB
Lua

local ageEvent
for _, child in pairs(script.link.Value:GetChildren()) do
if child:IsA("Model") then
ageEvent = child.AgeEvent
end
end
local currentAge = script.currentAge
local endColor = script.endColor.Value
local midColor
if script.midColor.Value ~= Color3.fromRGB(0, 0, 0) then
midColor = script.midColor.Value
end
local endMaterial = Enum.Material[script.endMaterial.Value]
local ageTillMidColor = script.ageTillMidColor.Value
local ageTillEndColor = script.ageTillEndColor.Value
local ageTillEndMaterial = script.ageTillEndMaterial.Value
local ageTillDeadChildren = script.ageTillDeadChildren.Value
local ageTillDestroy = script.ageTillDestroy.Value
local part = script.Parent
local currentAgeValue
function age(time)
if script:IsDescendantOf(game.ServerStorage) ~= true then
currentAge.Value = currentAge.Value + time
currentAgeValue = currentAge.Value
if midColor ~= nil then
part.Color = part.Color:lerp(midColor, math.min(1, currentAgeValue / ageTillMidColor))
if currentAgeValue >= ageTillMidColor then
part.Color = part.Color:lerp(endColor, math.min(1, currentAgeValue / ageTillEndColor))
end
else
part.Color = part.Color:lerp(endColor, math.min(1, currentAgeValue / ageTillEndColor))
end
if currentAgeValue >= ageTillEndMaterial then
part.Material = endMaterial
end
if currentAgeValue >= ageTillDeadChildren then
for _, child in pairs(part:GetChildren()) do
if child ~= script then
child:Destroy()
end
part.Anchored = false
part.CanCollide = true
end
end
if currentAgeValue >= ageTillDestroy then
part:Destroy()
end
end
end
ageEvent.event:Connect(age)