Skip to content

Instantly share code, notes, and snippets.

@spotco
Created December 29, 2016 09:30
Show Gist options
  • Select an option

  • Save spotco/c348910d48ed4d4d988a37f66e0701d2 to your computer and use it in GitHub Desktop.

Select an option

Save spotco/c348910d48ed4d4d988a37f66e0701d2 to your computer and use it in GitHub Desktop.
SparkleStarEffectObject.lua
local ConfigAnimEffect = require(game.ReplicatedStorage.Effects.ConfigAnimEffect)
local SPUtil = require(game.ReplicatedStorage.Shared.SPUtil)
local FlashEvery = require(game.ReplicatedStorage.Shared.FlashEvery)
local SparkleStarEffectObject = {}
SparkleStarEffectObject.Type = "SparkleStarEffectObject"
function SparkleStarEffectObject:add_sparkle_at(_game, pos)
_game._effects:add_effect(
ConfigAnimEffect:new(SparkleStarEffectObject:new(_game)))
:set_position(pos.X,pos.Y,pos.Z)
:set_velocity(
SPUtil:rand_rangef(-0.15,0.15),
SPUtil:rand_rangef(0.25,0.45),
SPUtil:rand_rangef(-0.15,0.15))
:set_alpha(0.85,0)
:set_scale(
SPUtil:rand_rangef(0.25,1),
SPUtil:rand_rangef(0.5,1.25))
:set_rotation(
SPUtil:rand_rangef(-45,45))
:set_vrotation(
SPUtil:rand_rangef(-3,3))
:set_acceleration(0,-0.0075,0)
:set_duration_seconds(SPUtil:rand_rangef(0.35,0.55))
end
function SparkleStarEffectObject:new(_game)
local self = ConfigAnimEffect.EffectObject:new()
self.Type = SparkleStarEffectObject.Type
local _obj = nil
function self:cons()
_obj = _game._object_pool:depool(self.Type)
if _obj == nil then
_obj = game.ReplicatedStorage.ElementProtos.SparkleStarEffectProto:Clone()
end
_obj:SetPrimaryPartCFrame(
CFrame.new(_obj.PrimaryPart.Position, workspace.CurrentCamera.CFrame.p)
)
end
--[[Override--]] function self:set_position(x,y,z)
_obj.PrimaryPart.Position = Vector3.new(x,y,z)
end
--[[Override--]] function self:set_alpha(alpha)
_obj.PrimaryPart.SurfaceGui.ImageLabel.ImageTransparency = (1 - alpha)
end
--[[Override--]] function self:set_rotation(rotation)
_obj.PrimaryPart.SurfaceGui.ImageLabel.Rotation = rotation
end
--[[Override--]] function self:set_scale(scale)
_obj.PrimaryPart.Size = Vector3.new(2,2,0.5) * scale
end
--[[Override--]] function self:add_to_parent(parent, _game)
_obj.Parent = parent
end
--[[Override--]] function self:do_remove(_game)
_game._object_pool:repool(self.Type,_obj)
_obj = nil
end
self:cons()
return self
end
return SparkleStarEffectObject
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment