// damage player
	public void DamagePlayer(float damageAmount, bool ignoreShield) {
		if (!isUsingShield || ignoreShield) {
			currentHealth -= damageAmount;

			// show battleindicator
			if (battleTextIndicatorPrefab) {
				Vector3 position = new Vector3 (transform.position.x, transform.position.y + 1.0f, transform.position.z);
				GameObject obj = (GameObject)Instantiate (battleTextIndicatorPrefab, position, Quaternion.identity);
				obj.transform.parent = gameObject.transform;
				obj.transform.localPosition = battleIndicatorLocation.localPosition;
				BattleTextIndicator battleText = obj.GetComponent<BattleTextIndicator> ();
				battleText.textColor = new Color (1.0f, 0.385f, 0.385f, 1.0f);
				battleText.text = "-" + damageAmount.ToString ("f0");
			}

			// update health text mesh
			if (GlobalControl.Instance != null && GlobalControl.Instance.playerData != null) {
				GlobalControl.Instance.playerData.playerHP -= damageAmount;
				healthTextMesh.text = currentHealth.ToString ("f0") + " / " + GlobalControl.Instance.playerData.playerMAXHP.ToString ("f0");
			} else {
				healthTextMesh.text = currentHealth.ToString ("f0") + " / " + _defaultMaxHealth.ToString ("f0");
			}
				
			_audio.PlayOneShot (hitSFX);


		} else { // did Block
			// show battleindicator
			if (battleTextIndicatorPrefab) {
				Vector3 position = new Vector3 (transform.position.x, transform.position.y + 1.0f, transform.position.z);
				GameObject obj = (GameObject)Instantiate (battleTextIndicatorPrefab, position, Quaternion.identity);
				obj.transform.parent = gameObject.transform;
				obj.transform.localPosition = battleIndicatorLocation.localPosition;
				BattleTextIndicator battleText = obj.GetComponent<BattleTextIndicator> ();
				battleText.textColor = new Color (0.65f, 0.65f, 0.65f, 1.0f);
				battleText.text = "Blocked";
			}

			_audio.PlayOneShot (blockSFX);
		}

	}
    // damage Enemy
    public void DamageEnemy(float damageAmount, bool ignoreShield)
    {
        if (!_isDefending || ignoreShield)
        {
            currentHealth -= damageAmount;

            // show battleindicator
            if (battleTextIndicatorPrefab)
            {
                Vector3             position   = new Vector3(transform.position.x, transform.position.y + 1.0f, transform.position.z);
                GameObject          obj        = (GameObject)Instantiate(battleTextIndicatorPrefab, position, Quaternion.identity);
                BattleTextIndicator battleText = obj.GetComponent <BattleTextIndicator> ();
                battleText.textColor = new Color(1.0f, 0.385f, 0.385f, 1.0f);
                battleText.text      = "-" + damageAmount.ToString("f0");
            }

            healthTextMesh.text = currentHealth.ToString("f0") + " / " + maxHealth.ToString("f0");

            if (currentHealth <= 0)
            {
                currentHealth       = 0.0f;
                healthTextMesh.text = currentHealth.ToString("f0") + " / " + maxHealth.ToString("f0");

                _animator.Play("EnemyStunned", 0, 0);
            }

            _audio.PlayOneShot(hitSFX);
        }
        else
        {
            Vector3             position   = new Vector3(transform.position.x, transform.position.y + 1.0f, transform.position.z);
            GameObject          obj        = (GameObject)Instantiate(battleTextIndicatorPrefab, position, Quaternion.identity);
            BattleTextIndicator battleText = obj.GetComponent <BattleTextIndicator> ();
            battleText.textColor = new Color(0.65f, 0.65f, 0.65f, 1.0f);
            battleText.text      = "Blocked";

            _audio.PlayOneShot(blockSFX);
        }
    }