Exemplo n.º 1
0
    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");
        }
    }
Exemplo n.º 2
0
 //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);
 }