How to deactivate a particle system and then destroy it?

Basically what im making is that when a player collides with the particle system ( I have a box collider on it) it heals him over time, I have that part working but I also don’t want the player to be able to abuse the healing and come back every time he needs healing, I know how to destroy the game object but the problem is that the particles im using(Smoke effect) just gets destroyed and I want it to stop emitting particles a few seconds before the game object gets destroyed (1-2 seconds) so that it looks more natural
Here is the script attached to the system

#pragma strict

function OnTriggerEnter (info : Collider)

	//Some non-related code here

	if (info.tag == "Player")
		yield WaitForSeconds (5);

//Script By BenDy Games /
//Javascript /

var particle : Transform; //Assign your particles here.

function Update (){

Destroy(particle.gameObject,20);//Where the number "20" is, that is where you assign how long before it destroys

I like to keep a simple self-destruct script to slap on any temporary particle systems:

public class SelfDestructingParticles : MonoBehaviour
	// Update is called once per frame
	void Update () {
		// This can be made more efficient by caching a reference to the particleSystem(s)

IsAlive() checks to see whether:

  1. The particle system is currently playing, OR
  2. The particle system has at least one particle still being simulated

When this returns false, it’s safe to destroy the particle system without the player seeing particles pop out of existence.

Now when you want to deactivate your particles, you can call:

// You may also want to do something like:
// healingEffect.enabled = false;
// stop the healing immediately

this will stop spawning new particles, and the script above will handle killing the object once no particles remain.

I prefer this over Destroy(object, delay) because I don’t need to remember to change the delay if the particle system changes.