Ejemplo n.º 1
0
 public void RemoveMe()
 {
     if (test)
     {
         test.RemoveMember(gameObject.transform);
         test = null;
     }
 }
Ejemplo n.º 2
0
    public void RemoveMember(GameObject go)
    {
        var index = targetGroup.FindMember(go.transform);

        if (index >= 0)
        {
            targetGroup.RemoveMember(go.transform);
        }
    }
Ejemplo n.º 3
0
    IEnumerator RemoveStartTargetMembers(int waitTime)
    {
        yield return(new WaitForSeconds(waitTime));

        for (int i = 0; i < startTargets.Length; i++)
        {
            targetGroup.RemoveMember(startTargets[i].transform);
        }
    }
Ejemplo n.º 4
0
    private void Awake()
    {
        if (instance == null)
        {
            instance = this;
            Physics2D.IgnoreLayerCollision(8, 8);
            Physics2D.IgnoreLayerCollision(8, 9);

            meteorManager = FindObjectOfType <MeteorManager>();
            targetGroup   = FindObjectOfType <Cinemachine.CinemachineTargetGroup>();

            foreach (Human human in humans)
            {
                human.onDeath.AddListener(new UnityAction(() => {
                    targetGroup.RemoveMember(human.transform);
                }));

                targetGroup.AddMember(human.transform, 1, 2);
            }
        }
    }
Ejemplo n.º 5
0
    void OnBallDestroyed(Ball ball)
    {
        m_cameraTargetGroup.RemoveMember(ball.transform);

        SpawnBall();
    }
Ejemplo n.º 6
0
    void Frenzy()
    {
        frenzied = true;

        Sequence seq = DOTween.Sequence();

        seq.AppendCallback(() => vcam.GetCinemachineComponent <Cinemachine.CinemachineFramingTransposer>().m_GroupFramingMode = Cinemachine.CinemachineFramingTransposer.FramingMode.HorizontalAndVertical);
        seq.AppendInterval(0.3f);

        var colCount = Physics2D.OverlapCircle(transform.position, frenzyRadius.Value, new ContactFilter2D(), frenzyColliders);

        foreach (var col in frenzyColliders)
        {
            if (col.TryGetComponent <NPC>(out var npc))
            {
                cinemachineTargetGroup.AddMember(npc.transform, 1f, 0f);
                npc.StopFollow();
                var npcRb = npc.GetComponent <Rigidbody2D>();
                npcRb.velocity    = Vector2.zero;
                npcRb.isKinematic = true;
                seq.AppendCallback(() =>
                {
                    npc.GetComponent <Rigidbody2D>().isKinematic = false;
                    Time.timeScale = 1f;
                });
                seq.Append(rb.DOMove(npc.transform.position, 0.2f));
                seq.AppendCallback(() =>
                {
                    Time.timeScale = 0.2f;

                    void SpawnClothe(UnityAtoms.SpriteValueList list)
                    {
                        var clothe = Instantiate(clothePrefab, npc.transform.position, Quaternion.Euler(0f, 0f, Random.Range(0f, 360f)));
                        clothe.GetComponent <SpriteRenderer>().sprite = NPC.GetRandomSpriteFromList(list);
                        clothe.GetComponent <Rigidbody2D>().AddForce(new Vector2(Random.Range(-1f, 1f), Random.Range(-1f, 1f)).normalized * 40f, ForceMode2D.Impulse);
                        clothe.GetComponent <Rigidbody2D>().AddTorque(Random.Range(-1f, 1f) * 5f, ForceMode2D.Impulse);
                    };

                    SpawnClothe(npc.topsList);
                    SpawnClothe(npc.hatsList);
                    SpawnClothe(npc.meleeWeaponsList);
                    SpawnClothe(npc.pantsList);
                    SpawnClothe(npc.shieldsList);

                    if (npc.IsNakey())
                    {
                        dressedCount.Value++;
                    }
                    npc.ToggleDress();
                });
                seq.AppendCallback(() => {
                    rb.DOMove(npc.transform.position /* + (npc.transform.position - transform.position).normalized * 0.01f */, 0.1f);
                }).AppendInterval(0.1f);
                seq.AppendCallback(() => cinemachineTargetGroup.RemoveMember(npc.transform));
            }
        }

        // Sequence camSeq = DOTween.Sequence();
        // camSeq.Append(DOTween.To(() => ppc.assetsPPU, (v) => ppc.assetsPPU = v, 128, 0.3f));
        // camSeq.Append(DOTween.To(() => ppc.assetsPPU, (v) => ppc.assetsPPU = v, 16, seq.Duration()));

        seq.AppendCallback(() => vcam.GetCinemachineComponent <Cinemachine.CinemachineFramingTransposer>().m_GroupFramingMode = Cinemachine.CinemachineFramingTransposer.FramingMode.None);

        seq.AppendCallback(() =>
        {
            Time.timeScale = 1f;
            int nakeyCount = 0;
            foreach (var npc in FindObjectsOfType <NPC>())
            {
                if (npc.IsNakey())
                {
                    nakeyCount++;
                }
            }
            Debug.Log("Nakey: " + nakeyCount);
        });
    }