Пример #1
0
    private void OnEnable()
    {
        Spawner         = Spawner.Singletone;
        gameObject.name = NicknameGenerator.GenerateOneWordNick();

        CurrentDirVec   = new Vector2(Random.Range(-1f, 1f), Random.Range(-1f, 1f));
        currentBehavior = Behavior.Passive;

        _peopleFinder = Instantiate(peopleFinderFab, transform.position, Quaternion.identity).GetComponent <PeopleFinder>();
        _peopleFinder.SetParent(transform);
        nearPeoplePosition = _peopleFinder.FindNearestObject();
    }
Пример #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (IsNotFlicker)
        {
            #region PeopleCollision
            if (collision.CompareTag("People"))
            {
                AddScore();

                if (collision.name != "D_People")
                {
                    collision.transform.position = Spawner.NewPeoplePosition();
                }

                if (collision.name == "D_People")
                {
                    Destroy(collision.gameObject);
                }

                nearPeoplePosition = _peopleFinder.FindNearestObject();
            }
            #endregion

            #region VirusCollision
            if (collision.GetComponent <Tail>() != null && collision.name != gameObject.name)
            {
                var colliedTail = collision.GetComponent <Tail>();

                if (colliedTail.head.IsNotFlicker)
                {
                    if (colliedTail.head is PlayerVirusHead)
                    {
                        DeathSoundPlay();
                        PlayerVirusHead.Singletone.OnKillingVirusInvoke();
                    }

                    Death();
                }
            }

            if (collision.GetComponent <VirusHead>() != null && collision.name != gameObject.name)
            {
                var colliedVirusHead = collision.GetComponent <VirusHead>();

                if (colliedVirusHead.Wide >= Wide && colliedVirusHead.IsNotFlicker)
                {
                    if (colliedVirusHead is PlayerVirusHead)
                    {
                        if (colliedVirusHead.Wide != Wide)
                        {
                            DeathSoundPlay();
                        }

                        PlayerVirusHead.Singletone.OnKillingVirusInvoke();
                    }

                    Death();
                }
            }
            #endregion
        }

        if (collision.name == "PlayArea")
        {
            Stun(collision);
            nearPeoplePosition = _peopleFinder.FindNearestObject();
        }
    }