Beispiel #1
0
    public void Merge()
    {
        List<ColdCell> coldCellsMerge = new List<ColdCell>();
        List<BaseCell> possibleMergers = controller.selectedUnits;
        for (int i = 0; i < possibleMergers.Count; i++)
        {

            if (possibleMergers[i].celltype == CellType.COLD_CELL &&
                possibleMergers[i].GetComponent<ColdCell>().InCold == true &&
               possibleMergers[i] != this)
            {
                coldCellsMerge.Add(possibleMergers[i].GetComponent<ColdCell>());
            }

        }

        if (coldCellsMerge.Count >= 1)
        {
            for (int o = 0; o < coldCellsMerge.Count; o++)
            {
                if (mergingPartner == null || Vector3.Distance(this.transform.position, coldCellsMerge[o].transform.position)
                    < Vector3.Distance(this.transform.position, mergingPartner.transform.position) ||
                    (haveMergingPartner == false && mergingPartner.haveMergingPartner == false))
                {
                    mergingPartner = coldCellsMerge[o];
                    mergingPartner.haveMergingPartner = this;
                    haveMergingPartner = true;
                    mergingPartner.haveMergingPartner = true;

                }
            }

        }
    }
Beispiel #2
0
    void MergingTheCells(ColdCell other)
    {
        float distance = Vector3.Distance(this.transform.position, other.transform.position);
        if (distance <= GetComponent<SphereCollider>().radius * 2.0f)
        {
            Vector3 trackingPos = this.transform.position;
            Quaternion trackingRot = this.transform.rotation;
            GameObject cTier2Cold = Instantiate(Tier2Cold, trackingPos, trackingRot) as GameObject;
            cTier2Cold.GetComponent<CellSplitAnimation>().currentLevel = currentLevel;
            cTier2Cold.GetComponent<CellSplitAnimation>().currentProtein = currentProtein;
            cTier2Cold.GetComponent<CellSplitAnimation>().isAIPossessed = isAIPossessed;
            cTier2Cold.GetComponent<CellSplitAnimation>().originCell = this;
            cTier2Cold.GetComponent<CellSplitAnimation>().originCell1 = other;

            if (!sound_manager.sounds_evolution[6].isPlaying)
            {
                sound_manager.sounds_evolution[6].Play();
            }

            Deactive();
            other.Deactive();

        }
        else
        {

            Move(other.transform.position);

        }
    }