Why am I getting to Particle Systems?

So I have a game where if I hit a bomb, I get a certain type of explosion, and if I hit the enemy, I get a different type of explosion. Problem is, for some reason, whenever I hit the bomb, it instantiates 2 particle systems instead of 1. Any reason why?
Code:

using UnityEngine;
using System.Collections;

public class PlayerLives : MonoBehaviour {

	public float slowScore;
	static public int Score = 0;
	public Object EnemyCube;
	static public int lives = 5;
	public int toSubtract = 1;
	public ParticleSystem EnemyExplosion;
	public ParticleSystem BombBlast;
	public GUISkin MyGUI;
	public int size;

	void Start () {
		int Score = 0;
		int lives = 5;
	}

	public void OnGUI() {
		int size = scriptFont.GetSizeFromResolution();
		float sizeX2 = size * 2;
		float sizeX3 = size * 3;
		float boxWidth = size * 30.0f;
		float boxHeight = size * 20.0f;
		float left = (boxWidth / 2.0f) - (size * 3.0f);
		float spacer = size + 5;
		float buttonWidth = size * 10.0f;
		float buttonHeight = size * 3f;
		GUI.BeginGroup(new Rect(Screen.width / 2 - (boxWidth / 2), 
		                        Screen.height / 2 - (boxHeight / 2), 
		                        boxWidth, boxHeight));
		GUI.skin = MyGUI;
		GUI.Label(new Rect(left - sizeX3 - sizeX3, 10, Screen.width/2, Screen.height/4), "Lives= "+lives);
		GUI.Label(new Rect(left, 10, Screen.width/2, Screen.height/4), "Score= "+Score);
	}
	public void OnTriggerEnter(Collider collider) {


		EnemyCube = GameObject.FindGameObjectWithTag("Enemy");

		Vector3 enemy_position = collider.transform.position;
		
		Destroy(collider.gameObject);

		
		Vector3 explosionForce = transform.position;
		Collider[] colliding = Physics.OverlapSphere(explosionForce, 500.0f);
		if (collider.gameObject.CompareTag("Enemy")) {
			lives = lives - toSubtract;
			Score = Score + 1;
		}
		
		foreach (Collider hit in colliding) {

			if (hit && hit.collider.CompareTag("Bomb")){
				ParticleSystem bombexplosion = (ParticleSystem)Instantiate(BombBlast,enemy_position,Quaternion.Euler(100,0,0));
				bombexplosion.Play(withChildren:false);
				hit.rigidbody.AddExplosionForce(75000.0f, explosionForce, 1000.0f);
				
			}

			if (hit && hit.collider.gameObject.CompareTag("Enemy")) {
				ParticleSystem explosion = (ParticleSystem)Instantiate(EnemyExplosion,enemy_position,Quaternion.Euler(100,0,0));
				explosion.Play(withChildren:false);
				hit.rigidbody.AddExplosionForce(900.0f, explosionForce, 500.0f);
			}
		}
	}
	void Update () {
		slowScore += Time.deltaTime;
		Vector3 replay = new Vector3(0,13,0);
		if(lives >= 0){
			if(slowScore >= 1){
				Score = Score + 1;
				slowScore = 0;
			}
		}
		if (lives <= 0){
			lives = 5;
			Destroy(this.gameObject);
			Application.LoadLevel("GameOver");

		}
	}
}

On line 49, you get a list of colliders within a range of 500 units. That list evidently contains multiple colliders, at least 1 for the bomb and a 2nd one for the enemy. On line 58, you instantiate the system for the bomb, and on line 65, you instantiate the system for the enemy.

If you only want to instantiate the bomb particle system for the thing you collide with if that thing is a bomb, you should not do a foreach loop and generate multiple particle systems but instead use the collider variable.

Or, if you only want to produce 1 and only one particle system on the first collider in the list from the OverlapSphere, you should just add a “break;” statement after lines 60 and 67 to get out of the for loop.