magnetic Powerup Timer Problem

Hi there. I need help. I have one magnetic powerup in game after picking it up…player will start attracting coins … And after sometime efffect will go off.Its all working fine. But in one scene it works only for first magnetic powerup…not the next one. Please help.

Here is my script which is put on coin…there is one bool in script which is attached to magnetic powerup icon(to be picked in game).this bool becomes true when player collides.bool is magneticeffect

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

public class Coins_Magnet : MonoBehaviour {

public GameObject char2d;
public static int PlayerScore = 0;
int ScoreInc = 10;
public GameObject Coin;
public AudioClip CoinPickupSound;
public static float timeLimit = 10.0f;

void Start(){
	
}

void Awake()
{
}
void Update ()
{
	if(Vector3.Distance(transform.position, char2d.transform.position) < 5 && MagnetPU.PUEffect == true && timeLimit > 0){

		    timeLimit -=Time.deltaTime;
			transform.position = Vector3.MoveTowards(transform.position, char2d.transform.position, Time.deltaTime *11);
	}

	if (timeLimit <0 ){
		MagnetPU.PUEffect = false;
	}
	
}

void OnTriggerEnter2D(Collider2D other)
{
	if (other.tag == "Player")
	{            
		PlayerScore+=ScoreInc;
		Destroy(this.gameObject);
		if (Mute.clips == true){
		AudioSource.PlayClipAtPoint (CoinPickupSound, transform.position);
		}
	}
}
void OnDisable(){

}
}

Hi,

I think it could solve the problem if you change the code like this:

if (timeLimit <0 ){
MagnetPU.PUEffect = false;
timeLimit = 10.0f; // this line resets the timeLimit instantly when the effect ends
}