void projectileDoesDamage(objectHealth target, GameObject projectile, Vector3 impactPoint, Vector3 impactNormal, Vector3 impactRelVelocity)
    {
//		Debug.Log ("projectile made contact with " + gameObject.tag);

        projectileDamage hit = projectile.GetComponent <projectileDamage> ();
        int selfSize         = target.getHealth();
        int hitDamage        = (int)(hit.getDamage());

//		Debug.Log ("projectile damage eoc:  " + hitDamage);

        if (selfSize > hitDamage)
        {
            int foodHealth;
//			Debug.Log ("hit object health1:  " + contacteeHealth.getHealth() + " hit damage: " + hitDamage);
            int newHealth = target.getHealth() - hitDamage;

            if (name == "Boss")
            {
                newHealth = target.getHealth() - (int)(hitDamage * impactDamageMultiplier);
            }

            target.instantiateHealth(newHealth);
//			Debug.Log ("hit object health2:  " + contacteeHealth.getHealth() + "new Health var:  " + newHealth);

            Destroy(projectile);
            int chunks = (int)(hitDamage / 5);
            // making boss not emit any food
            // making boss ANIMATE taking hit!!
            if (name == "Boss")
            {
                chunks = 0;
                Animator [] animArray     = target.GetComponentsInChildren <Animator> ();
                Animator    animActivator = animArray [0];
                animActivator.SetTrigger("takeDamage");

                audioSource = target.GetComponent <AudioSource> ();
                audioSource.PlayOneShot(hitSound, 1f);
            }


            if (target.CompareTag("food"))
            {
//				Debug.Log ("Projectile is trying to look shocked");
                Animator [] animArray     = target.GetComponentsInChildren <Animator> ();
                Animator    animActivator = animArray [0];
                animActivator.SetTrigger("takeDamage");

                audioSource = target.GetComponent <AudioSource> ();
                audioSource.PlayOneShot(takeDamageSound, .7f);
            }              //make food animate

            for (int i = 0; i < chunks; i++)
            {
                foodHealth = (int)(hitDamage / chunks) + 5;                 // adding fudge 5 points to spawn foods health

//				Vector3 startPoint = other.contacts [0].point;
                Vector3 testPoint     = impactPoint;
                Vector3 spawnPosition = impactPoint;

                GameObject food = foodTypes [Random.Range(0, foodTypes.Length)];

                while (impactPoint == spawnPosition)
                {
                    Vector2 randGen   = Random.insideUnitCircle * 2f;
                    Vector3 randPoint = new Vector3(randGen.x, 0, randGen.y);
                    testPoint += randPoint;
//					Debug.Log (testPoint);
                    bool test = testNewObjectPosition(food, testPoint, (food.transform.localScale.x / 2f));                       //assuming base size is 100 here

                    if (test)
                    {
                        spawnPosition = testPoint;
                    }
                }

                Quaternion spawnRotation = Random.rotation;

                GameObject newFood = (GameObject)Instantiate(food, spawnPosition, spawnRotation);
                newFood.GetComponent <objectHealth> ().instantiateHealth(foodHealth);

//				Vector3 direction = other.contacts [0].normal;
                Vector3 dirRandomizor = Random.insideUnitSphere * 2f;
                Vector3 velocityRB    = impactNormal + dirRandomizor + impactRelVelocity;

                Rigidbody foodRB = newFood.GetComponent <Rigidbody> ();
                foodRB.AddForce(-velocityRB * 8f);
            }
        }
        if (selfSize <= hitDamage)
        {
            Destroy(gameObject);
            Destroy(projectile);
        }
    }
	void projectileDoesDamage (objectHealth target, GameObject projectile, Vector3 impactPoint, Vector3 impactNormal, Vector3 impactRelVelocity){
//		Debug.Log ("projectile made contact with " + gameObject.tag);

		projectileDamage hit = projectile.GetComponent<projectileDamage> ();
		int selfSize = target.getHealth ();
		int hitDamage = (int)(hit.getDamage ());

//		Debug.Log ("projectile damage eoc:  " + hitDamage);

		if (selfSize > hitDamage) {
			int foodHealth;
//			Debug.Log ("hit object health1:  " + contacteeHealth.getHealth() + " hit damage: " + hitDamage);
			int newHealth = target.getHealth () - hitDamage;

			if (name == "Boss") {
				newHealth = target.getHealth () - (int)(hitDamage * impactDamageMultiplier);
			}

			target.instantiateHealth (newHealth);
//			Debug.Log ("hit object health2:  " + contacteeHealth.getHealth() + "new Health var:  " + newHealth);

			Destroy (projectile);
			int chunks = (int)(hitDamage / 5);
			// making boss not emit any food
			// making boss ANIMATE taking hit!!
			if (name == "Boss") {
				chunks = 0;
				Animator [] animArray = target.GetComponentsInChildren<Animator> ();
				Animator animActivator = animArray [0];
				animActivator.SetTrigger ("takeDamage"); 

				audioSource = target.GetComponent<AudioSource> ();
				audioSource.PlayOneShot (hitSound, 1f);
			}


			if (target.CompareTag ("food")) {
//				Debug.Log ("Projectile is trying to look shocked");
				Animator [] animArray = target.GetComponentsInChildren<Animator> ();
				Animator animActivator = animArray [0];
				animActivator.SetTrigger ("takeDamage"); 

				audioSource = target.GetComponent<AudioSource> ();
				audioSource.PlayOneShot (takeDamageSound, .7f);
			}  //make food animate

			for (int i = 0; i < chunks; i++) {
				foodHealth = (int)(hitDamage / chunks) + 5; // adding fudge 5 points to spawn foods health

//				Vector3 startPoint = other.contacts [0].point;
				Vector3 testPoint = impactPoint;
				Vector3 spawnPosition = impactPoint;

				GameObject food = foodTypes [Random.Range (0, foodTypes.Length)];

				while (impactPoint == spawnPosition) {
					Vector2 randGen = Random.insideUnitCircle * 2f;
					Vector3 randPoint = new Vector3 (randGen.x, 0, randGen.y);
					testPoint += randPoint;
//					Debug.Log (testPoint);
					bool test = testNewObjectPosition (food, testPoint, (food.transform.localScale.x / 2f));  //assuming base size is 100 here

					if (test) {
						spawnPosition = testPoint;
					}
				}

				Quaternion spawnRotation = Random.rotation;

				GameObject newFood = (GameObject)Instantiate (food, spawnPosition, spawnRotation);
				newFood.GetComponent<objectHealth> ().instantiateHealth (foodHealth);

//				Vector3 direction = other.contacts [0].normal;
				Vector3 dirRandomizor = Random.insideUnitSphere * 2f;
				Vector3 velocityRB = impactNormal + dirRandomizor + impactRelVelocity;

				Rigidbody foodRB = newFood.GetComponent<Rigidbody> ();
				foodRB.AddForce (-velocityRB * 8f);
			}

		}
		if (selfSize <= hitDamage) {
			Destroy (gameObject);
			Destroy (projectile);
		}
	}