person’s stickynade test

If you liked this item, please rate it up on Steam Workshop page.

Author: personperhaps

Last revision: 23 May, 2023 at 22:37 UTC

File size: 5.63 MB

On Steam Workshop

Description:

practically just the plasma grenade from halo. it works…

so far:
fixed frame drops from too many plasma grenades
added hitmark for sticks

sounds from halo 3
ravenscript (feel free to modify, make it better, whatever)

behaviour("StickyNade")
function StickyNade:Start()
self.stuck = false
self.done = false
self.time = 1.5
self.removalTimer = 2
self.removed = false
end

function StickyNade:Update()
if self.done == false then
if self.stuck == false then
self.colliders = {}
self.colliders = Physics.OverlapSphere(self.targets.grenade.gameObject.transform.position, 0.1, RaycastTarget.ProjectileHit)
if self.colliders ~= nil then
for x, i in ipairs(self.colliders) do
if i.gameObject.transform.root ~= self.targets.grenade.source.gameObject.transform.root then
self.stuck = true
self.targets.grenade.gameObject.transform.parent = i.gameObject.transform
print("stuck!")
self.targets.primeEffect.SetActive(true)
self.actorsnearby = {}
self.actorsnearby = ActorManager.ActorsInRange(self.targets.grenade.gameObject.transform.position, 2)
if self.actorsnearby[1] ~= nil then
print( self.actorsnearby[1].name)
self.actorsnearby[1].Damage(self.targets.grenade.source, 1, 1, false, true)
else
print("stickless")
end
end
end
end

self.colliders = Physics.OverlapSphere(self.targets.grenade.gameObject.transform.position, 0.2, RaycastTarget.OpaqueAndVehicles)
if self.colliders ~= nil then
for x, i in ipairs(self.colliders) do
if i.gameObject.transform.root ~= self.targets.grenade.source.gameObject.transform.root then
self.stuck = true
self.targets.grenade.gameObject.transform.parent = i.gameObject.transform
print("stuck!")
self.targets.primeEffect.SetActive(true)
end
end
end
else
self.targets.grenade.velocity = Vector3.zero
self.targets.grenade.gravityMultiplier = 0
self.time = self.time – Time.deltaTime
if self.time <= 0 then
self.done = true
self.targets.primeEffect.SetActive(false)
self.targets.fireEffect.SetActive(false)
self.targets.explosion.getComponent(ExplodingProjectile).source = self.targets.grenade.source
self.targets.explosion.gameObject.SetActive(true)
self.targets.explosion.getComponent(ExplodingProjectile).Stop(false)

end
end
else

if self.removalTimer <= 0 and self.removed == false then
print("stopped")
GameObject.Destroy(self.script)
GameObject.Destroy(self.gameObject)
self.removed = true
else
print(self.removalTimer)
self.removalTimer = self.removalTimer – Time.deltaTime
end
end

end