ID:2904211
 
Resolved
Particles with negative growth would continue to grow into the negatives and flip their icons. Now they will disappear when their scale reaches zero on either axis.
BYOND Version:515.1621
Operating System:Windows 11 Home 64-bit
Web Browser:Firefox 120.0
Applies to:Dream Seeker
Status: Resolved (515.1622)

This issue has been resolved.
Descriptive Problem Summary:
When particles are given negative growth values, their size starts to increase after it has shrunk down to its limit. I can understand why this happens, and it's not difficult to calculate how long it would take for a set of particles to reach their minimum size and then set the lifespan accordingly.
But is this really how it was intended to work? I feel like more often than not, people are not going to want their particles to increase in size when given a negative growth value. So, it would be more convenient if that were the default behavior.

Code Snippet (if applicable) to Reproduce Problem:
particles/test
width = 160
height = 160
count = 1
spawning = 1
lifespan = 50
grow = list(-0.2,-0.15)
position = list(0,0,0)
icon = 'ball.dmi'

mob/verb/test_particle()
var/obj/emitter = new(get_step(src,dir)) ; emitter.particles = new/particles/test()


Expected Results:
Continuously shrink down the particles until they disappears
Actual Results:
The particles start to expand once they reach their minimum size
When does the problem occur:
Every time.

When does the problem NOT occur?
It doesn't occur when the lifespan value of the particles is less or equal to the time it takes for the particles to shrink to it's limit
Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)
No.

Workarounds:
calculate how long it would take for a set of particles to reach their minimum size and then set the lifespan accordingly.
Lummox JR resolved issue with message:
Particles with negative growth would continue to grow into the negatives and flip their icons. Now they will disappear when their scale reaches zero on either axis.