So we are making a student video game. And we need to destroy Voxel terrain using bomb. Thing works, but only for the last bomb we threw.
For example. If I throw bombs by turning the camera 360 degrees slowly it will throw, lets say, 50 bombs. But only the last one wil apply damage to the terrain and have explosion particle effect.
So I want every bomb to be applying thoses effects.
Screen shots of the set-up would be helpful here
here are screenshots of our blueprint, I think our biggest problem is that it still takes the position of our latest bomb instance. Can you help us !
my guess is that the bombs arent blueprints and you are doing the apply damage and the particles and all that triggered from another blueprint like the level blueprint or from wherever the bombs are being spawned from. to solve this issue make the bombs their own blueprint and have the apply damage happen from there. so in the bomb event graph you would have something like: on begin play → delay → spawn particle and apply damage.
everytime you press the mouse button to spawn another projectile it overwrites the previous one if the delay hasnt completed. its basically forgetting the first click to make room for the second. thats why the functionality needs to be completed elseware, in the projectile blueprint for example.
Yep, that delay is ruining this code. You can spawn multiple projectiles but then you tell it to wait 6 seconds before spawning the “Explosion” at the same location. Problem is, like @ThompsonN13 said, the second you spawn another projectile while the first is still in a delay it over-writes the “get actor location”. So in essence, what this is saying is
Click…spawn actor 1 wait 6 seconds…
during the wait
Click…spawn actor 2 wait 6 seconds
during the wait
Click…spawn actor 3 wait 6 seconds
(Finally the 6 seconds are completed)
execution will proceed to the right, but the delay prevented the first 2 clicks from executing past so when the next node is told to spawn the explosion it traces back from its transform pin all the way to the “get actor location” pin, which traces back to the initial projectile spawn node and what does it find there? Well, the latest location of the 3rd projectile spawned because that is the current data stored in that output pin. So the data for the first 2 projectiles spawned is lost. Hence only the final click will actually execute the entire script end to end.
We found the Issue. the delay was the problem. we had to create all the code inside the projectile