added effect visuals
This commit is contained in:
1 parent
6000889ebf
commit
4e29ad0824
1 file changed
+49
-1
+49
-1
@@ -22,6 +22,7 @@ function TrackEnemy:applyEffect(effectName, params)
|
||||
value = params.value,
|
||||
elapsed = 0
|
||||
}
|
||||
self:showEffect(effectName)
|
||||
end
|
||||
|
||||
function TrackEnemy:updateEffects(dt)
|
||||
@@ -32,7 +33,8 @@ function TrackEnemy:updateEffects(dt)
|
||||
self:damage(effect.value)
|
||||
effect.elapsed = effect.elapsed - effect.tick
|
||||
end
|
||||
elseif name == "slow" then
|
||||
end
|
||||
if name == "slow" then
|
||||
self.speed = self.baseSpeed * effect.value
|
||||
elseif name == "freeze" then
|
||||
self.speed = 0
|
||||
@@ -42,6 +44,7 @@ function TrackEnemy:updateEffects(dt)
|
||||
if effect.duration <= 0 then
|
||||
self.effects[name] = nil
|
||||
self.speed = self.baseSpeed
|
||||
self:hideEffect(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -83,3 +86,48 @@ function TrackEnemy:moveToWaypoints(waypoints, dt)
|
||||
end
|
||||
end
|
||||
|
||||
-- Effects Visuals
|
||||
function TrackEnemy:showEffect(effectName)
|
||||
if not self.model.PrimaryPart then return end
|
||||
if effectName == "burn" then
|
||||
if not self.model.PrimaryPart:FindFirstChild("BurnEffect") then
|
||||
local fire = Instance.new("ParticleEmitter")
|
||||
fire.Name = "BurnEffect"
|
||||
fire.Texture = "rbxassetid://243098098"
|
||||
fire.Color = ColorSequence.new(Color3.new(1, 0.5, 0))
|
||||
fire.Parent = self.model.PrimaryPart
|
||||
end
|
||||
elseif effectName == "slow" then
|
||||
if not self.model.PrimaryPart:FindFirstChild("SlowEffect") then
|
||||
local fire = Instance.new("ParticleEmitter")
|
||||
fire.Name = "SlowEffect"
|
||||
fire.Texture = "rbxassetid://243098098"
|
||||
fire.Color = ColorSequence.new(Color3.new(0, 0.9, 1))
|
||||
fire.Parent = self.model.PrimaryPart
|
||||
end
|
||||
elseif effectName == "freeze" then
|
||||
if not self.model.PrimaryPart:FindFirstChild("FreezeEffect") then
|
||||
local gui = Instance.new("BillboardGui")
|
||||
gui.Name = "FreezeEffect"
|
||||
gui.Size = UDim2.new(0, 50, 0, 50)
|
||||
gui.AlwaysOnTop = true
|
||||
gui.Parent = self.model.PrimaryPart
|
||||
local label = Instance.new("TextLabel")
|
||||
label.Size = UDim2.new(1,0,1,0)
|
||||
label.BackgroundTransparency = 1
|
||||
label.Text = "FROZEN"
|
||||
label.TextColor3 = Color3.new(0,1,1)
|
||||
label.Parent = gui
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TrackEnemy:hideEffect(effectName)
|
||||
if not self.model.PrimaryPart then return end
|
||||
local effect = self.model.PrimaryPart:FindFirstChild(effectName == "burn" and "BurnEffect"
|
||||
or effectName == "slow" and "SlowEffect"
|
||||
or effectName == "freeze" and "FreezeEffect")
|
||||
if effect then
|
||||
effect:Destroy()
|
||||
end
|
||||
end
|
||||
Reference in new issue
Block a user