Exemple #1
0
    public void Merge()
    {
        List<BaseCell> heatCellsMerge;
        List<BaseCell> possibleMergers = controller.selectedUnits;
        heatCellsMerge = possibleMergers.FindAll(item => item.celltype == CellType.HEAT_CELL && item.GetComponent<HeatCell>().Inheat == true &&
               item != this);

        if (heatCellsMerge.Count >= 1)
        {
            for (int o = 0; o < heatCellsMerge.Count; o++)
            {
                if (mergePartner == null || Vector3.Distance(this.transform.position, heatCellsMerge[o].transform.position)
                    < Vector3.Distance(this.transform.position, mergePartner.transform.position) ||
                    (haveMergePartner == false && mergePartner.haveMergePartner == false))
                {
                    mergePartner = heatCellsMerge[o].GetComponent<HeatCell>();
                    mergePartner.mergePartner = this;
                    haveMergePartner = true;
                    mergePartner.haveMergePartner = true;

                }
            }

        }
    }
Exemple #2
0
    void MergingTheCells(HeatCell 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 kTier2Heat = Instantiate(Tier2Heat, trackingPos, trackingRot) as GameObject;
            kTier2Heat.GetComponent<CellSplitAnimation>().currentLevel = currentLevel;
            kTier2Heat.GetComponent<CellSplitAnimation>().currentProtein = currentProtein;
            kTier2Heat.GetComponent<CellSplitAnimation>().isAIPossessed = isAIPossessed;
            kTier2Heat.GetComponent<CellSplitAnimation>().originCell = this;
            kTier2Heat.GetComponent<CellSplitAnimation>().originCell1 = other;

            if (!sound_manager.sounds_evolution[5].isPlaying)
            {
                sound_manager.sounds_evolution[5].Play();
            }
            Deactive();
            other.Deactive();

        }
        else
        {

            Move(other.transform.position);

        }
    }
Exemple #3
0
    public void InitMapWithInitializeTemperature_Zero()
    {
        Heatmap = new HeatCell[Heatmapsize_row][];
        for (int i = 0; i < Heatmapsize_row; i++)
        {
            HeatCell[] tempz = new HeatCell[Heatmapsize_column];

            for (int j = 0; j < Heatmapsize_column; j++)
            {
                tempz[j] = new HeatCell();
                Vector2 m_center = CaluPosition(i, j);
                tempz[j].SetCenterPosition(m_center);
                //if(i< Heatmapsize_column-j)
                //{
                //    tempz[j].defaultheatvalue = 3f;
                //    tempz[j].SetHeat(3f);
                //}
                //else
                //{
                //    tempz[j].defaultheatvalue = 6f;
                //    tempz[j].SetHeat(6f);
                //}

                tempz[j].defaultheatvalue = 20f;
                tempz[j].SetHeat(20f);
                Vector3 m_3Dpositon;
                m_3Dpositon.x = m_center.x;
                m_3Dpositon.y = 2;
                m_3Dpositon.z = m_center.y;
                /////////////////////ceshi
                //if (i > Heatmapsize_column - j)
                //{
                    float m_value = this.FindHeatValueForCell(m_3Dpositon);
                    if (m_value != 0)
                    {
                        tempz[j].SetHeat(m_value);
                        tempz[j].IsHeatSourceOrNot = true;
                        tempz[j].defaultheatvalue = m_value;
                    }
                //}
                /////////////////////////////

            }

            this.Heatmap[i] = tempz;
        }
    }