Exemple #1
0
    public void Damage(int amount, GameCharacter source, DamageFinishedDelegate finishedCallback = null)
    {
        if (isDead || amount <= 0)
        {
            return;
        }

        // Decrease health by damage and send damage signals
        StartCoroutine(UpdateDamage(amount, source, finishedCallback));

        // Die if no health left
        if (currSize <= 0)
        {
            HandleDeath(source);
        }
    }
Exemple #2
0
    private IEnumerator UpdateDamage(int amount, GameCharacter source, DamageFinishedDelegate finishedCallback = null)
    {
        int count = 0;

        while (count < amount && links.Count > 0)
        {
            RemoveTail();
            count++;
            yield return(new WaitForSeconds(0.1f));
        }

        if (count < amount)
        {
            GameMap.Instance.KillCharacter(_head, source);
        }

        finishedCallback();
    }
 public void Damage(int amount, GameCharacter source, DamageFinishedDelegate finishedCallback = null)
 {
     health.Damage(amount, source, finishedCallback);
 }