protected void Damaged(object[] storage) { try { Debug.Log("Rececived " + (int)storage[0] + " damage"); fHP -= (int)storage[0]; HealthBarHandler.OnDamaged(fHP); Debug.Log("Enemy HP =" + fHP); Debug.Log("storage = " + storage); Debug.Log("storage[0] = " + storage[0]); Debug.Log("storage[1] = " + storage[1]); if (storage[1] != null) { GameObject temp = (GameObject)storage[1]; Debug.Log("player =" + temp); if (temp.GetComponent <Player>() != null && fHP <= 0) { Debug.Log("Enemy died, exp should have went to " + temp); EventAggregator.GetInstance().Publish <OnEnemyKilledEvent>(new OnEnemyKilledEvent(temp.GetComponent <Player>().playerNumber, 100)); } if (playerTarget == null && Vector3.Distance(temp.transform.position, gameObject.transform.position) < fVisionDistance) { Debug.Log("Detected that " + temp.name + " shot at enemy"); playerTarget = temp; aiMvmt = MovementTypeEnum.Chase; } else { Debug.Log("Was shot at but distance [" + Vector3.Distance(temp.transform.position, gameObject.transform.position) + "] was too far"); } } } catch (System.InvalidCastException e) { Debug.Log("Cast exception in enemy's damaged function"); } }
//message[0] = damage //message[1] = player who shot at it (might be null) protected void Damaged(object[] message) { fHP -= (int)message[0]; HealthBarHandler.OnDamaged(fHP); }