// Use this for initialization
        void Start()
        {
            _player               = FindObjectOfType <Player_Movement>();
            _playerBoxCollider    = _player.GetComponent <BoxCollider2D>();
            _playerCircleCollider = _player.GetComponentInChildren <CircleCollider2D>();
            _boxCollider          = GetComponent <BoxCollider2D>();
            _circleCollider       = GetComponentInChildren <CircleCollider2D>();

            Physics2D.IgnoreCollision(_boxCollider, _playerBoxCollider, true);
            Physics2D.IgnoreCollision(_boxCollider, _playerCircleCollider, true);
            Physics2D.IgnoreCollision(_circleCollider, _playerBoxCollider, true);
            Physics2D.IgnoreCollision(_circleCollider, _playerCircleCollider, true);
        }
Пример #2
0
    public void Hited(Vector3 HitingEntity, bool Lethal = false, bool PlayerInvolved = true, bool needsBlood = true)
    {
        myNavMesh.enabled = false;
        transform.LookAt(new Vector3(HitingEntity.x, transform.position.y, HitingEntity.z));

        MoveTime = 0;
        myAction = Action.Paralysed;
        myAnimator.SetTrigger("Hited");

        if (needsBlood)
        {
            for (int i = 0; i < 3; i++)
            {
                GameObject Sang = Instantiate(Resources.Load <GameObject>("Bloods"), new Vector3(transform.position.x + Random.Range(-1f, 1f), transform.position.y, transform.position.z + Random.Range(-1f, 1f)), transform.rotation);
            }
        }

        List <IAMovement> theEnnemies = new List <IAMovement>();

        foreach (IAMovement item in actualRoom.Population.Keys)
        {
            theEnnemies.Add(item);
        }

        bool NotSeen = true;

        for (int i = 0; i < theEnnemies.Count; i++)
        {
            if (theEnnemies[i] != this && theEnnemies[i].myAction != Action.Paralysed && Vector3.Distance(transform.position, theEnnemies[i].transform.position) <= 10)
            {
                if (theEnnemies[i].myType == Type.Civilian)
                {
                    theEnnemies[i].Fuite();
                }
                else
                {
                    if (PlayerInvolved)
                    {
                        NotSeen = false;
                        if (theEnnemies[i].myAction != Action.Attack && theEnnemies[i].myAction != Action.Found)
                        {
                            theEnnemies[i].Found();
                        }
                    }
                }
            }
        }

        if (Lethal && myType == Type.Civilian)
        {
            if (NotSeen && IAM.Poursuivants.Count == 0)
            {
                if (PlayerInvolved)
                {
                    PM.GetComponentInChildren <aSkin>().LoadSkin(PM, SkinChemin);
                }
                if (IAM.theRedAlert)
                {
                    IAM.EndAlert();
                }
            }
            else if (!NotSeen && !IAM.theRedAlert)
            {
                IAM.RedAlert();
            }

            Mort();
        }
    }