Beispiel #1
0
    private void OnTriggerEnter(Collider other)
    {
        if (other.tag == Tag)
        {
            CharacterAttention OtherAttention = other.gameObject.GetComponent <CharacterAttention>();

            if (OtherAttention.GetOwner().GetAlignment() == Character.TeamAlignment.PLAYERS)
            {
                PlayerEntersAttentionRange(OtherAttention.GetOwner());
            }
            else
            {
                EnemyEntersAttentionRange(OtherAttention.GetOwner());
            }
        }
        else if (other.tag == TagHitObjects || other.tag == TagPlayerHitObjects)
        {
            SkillHitObject OtherHitObject = other.gameObject.GetComponent <SkillHitObject>();

            if ((OtherHitObject.GetAlignment() == Character.TeamAlignment.ALL ||
                 OtherHitObject.GetAlignment() == Character.TeamAlignment.ENEMIES) &&
                OtherHitObject.GetOwnerAlignment() == Character.TeamAlignment.PLAYERS)
            {
                PlayerHitObjectsInRange.Add(OtherHitObject);
                OtherHitObject.AddInCharactersAttention(this);
            }
        }
    }
Beispiel #2
0
    private void OnTriggerExit(Collider other)
    {
        if (other.tag == Tag)
        {
            CharacterAttention OtherAttention = other.gameObject.GetComponent <CharacterAttention>();

            if (OtherAttention.GetOwner().GetAlignment() == Character.TeamAlignment.PLAYERS)
            {
                if (other.gameObject.layer != CharacterDeadLayerID ||
                    Owner.GetAlignment() == Character.TeamAlignment.PLAYERS)
                {
                    PlayerLeavesAttentionRange(OtherAttention.GetOwner());
                }
            }
            else
            {
                EnemyLeavesAttentionRange(OtherAttention.GetOwner());
            }
        }
        else if (other.tag == TagHitObjects)
        {
            SkillHitObject OtherHitObject = other.gameObject.GetComponent <SkillHitObject>();

            if ((OtherHitObject.GetAlignment() == Character.TeamAlignment.ALL ||
                 OtherHitObject.GetAlignment() == Character.TeamAlignment.ENEMIES) &&
                OtherHitObject.GetOwnerAlignment() == Character.TeamAlignment.PLAYERS)
            {
                PlayerHitObjectsInRange.Remove(OtherHitObject);
                OtherHitObject.RemoveInCharactersAttention(this);
            }
        }
    }
Beispiel #3
0
 public void RemoveHitObjectAfterDestroy(SkillHitObject DestroyedHitObject)
 {
     if ((DestroyedHitObject.GetAlignment() == Character.TeamAlignment.ALL ||
          DestroyedHitObject.GetAlignment() == Character.TeamAlignment.ENEMIES) &&
         DestroyedHitObject.GetOwnerAlignment() == Character.TeamAlignment.PLAYERS)
     {
         PlayerHitObjectsInRange.Remove(DestroyedHitObject);
     }
 }