Ejemplo n.º 1
0
    /// <summary>
    /// 绘制星系
    /// </summary>
    /// <param name="currentStarTid"></param>
    private void DrawMap(int currentStarTid)
    {
        int count = m_CfgStarmapProxy.GetFixedStarCount();

        for (int i = 0; i < count; i++)
        {
            EditorFixedStar   data = m_CfgStarmapProxy.GetFixedStarByIndex(i);
            StarGalaxyElement cell =
                (OwnerView as StarGalaxyPanel).CellPrefab.Spawn(m_AreaPointContainer, data.position.ToVector2())
                .GetOrAddComponent <StarGalaxyElement>();

            cell.GetComponent <Toggle>().group = m_AreaPointContainer.GetOrAddComponent <ToggleGroup>();
            cell.transform.localScale          = Vector3.one;
            cell.transform.eulerAngles         = Vector3.zero;
            cell.SetData(data, data.fixedStarId == currentStarTid, data.fixedStarId == m_BeforeID);
            CheckMissionTeamInStar(cell);
            m_PointDic.Add(data.fixedStarId, cell);
            cell.OnSelected = StarPointOnSelected;
            cell.OnClick    = StarPointOnClick;
            if (data.fixedStarId == m_BeforeID)
            {
                m_CurrentCell = cell;
            }
        }
    }
Ejemplo n.º 2
0
    /// <summary>
    /// 星域点击事件
    /// </summary>
    /// <param name="cell"></param>
    private void StarPointOnClick(StarmapPointElementBase cell)
    {
        m_CurrentCell = cell as StarGalaxyElement;
        MsgStarmapPanelState msg = new MsgStarmapPanelState();

        msg.Data      = m_CurrentCell.GetData();
        m_CurrentCell = null;
        UIManager.Instance.OpenPanel(UIPanel.StarPlantPanel, msg);
    }
Ejemplo n.º 3
0
 /// <summary>
 /// 星域划过事件
 /// </summary>
 /// <param name="cell"></param>
 private void StarPointOnSelected(StarmapPointElementBase cell)
 {
     if (m_CurrentCell)
     {
         m_CurrentCell.SetToggleIsOn(false);
     }
     m_CurrentCell = cell as StarGalaxyElement;
     m_CurrentCell.SetToggleIsOn(true);
 }
Ejemplo n.º 4
0
    private void CheckMissionTeamInStar(StarGalaxyElement cell)
    {
        EditorPlanet[]           planetData = cell.GetData().planetList;
        List <EditorStarMapArea> data       = new List <EditorStarMapArea>();

        for (int i = 0; i < planetData?.Length; i++)
        {
            data.AddRange(planetData[i].arealist);
        }

        if (data.Count > 0 && (m_MissionTrackings?.Count > 0 || m_TeamMembers.Count > 0))
        {
            bool        hasMain        = false;
            bool        hasTeamMembers = false;
            List <uint> s = new List <uint>();

            for (int i = 0; i < data.Count; i++)
            {
                for (int j = 0; !hasMain && j < m_MissionTrackings?.Count; j++)
                {
                    if (m_MissionTrackings[j].EndingLeapPointID == data[i].areaId)
                    {
                        hasMain = m_MissionTrackings[j].MissionType == MissionType.Main;
                    }
                }

                for (int k = 0; !hasTeamMembers && k < m_TeamMembers.Count; k++)
                {
                    hasTeamMembers = (ulong)m_TeamMembers[k].AreaId == data[i].areaId;
                }

                if (hasMain && hasTeamMembers)                //检查如果都有了 就不检查了
                {
                    break;
                }
            }

            if (hasMain)
            {
                s.Add(31311);
            }
            if (hasTeamMembers)
            {
                s.Add(31316);
            }
            if (s.Count > 0)
            {
                cell.SetBottomIcon(s.ToArray());
                return;
            }
        }
        cell.SetBottomIcon(null);
    }