Esempio n. 1
0
    /// <summary>
    /// 初始化战场的道路连接数据
    /// </summary>
    public void InitFieldMap()
    {
        m_MapRoadStations.Clear();
        for (int i = 0; i < 12; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                FieldRoadStation roadStation = new FieldRoadStation();
                roadStation.point = new ChessPoint(j, i);
                if (ChessAgainst.InRailArea(roadStation.point))
                {
                    roadStation.type = FieldRoadStationType.Rail;
                }
                else if (ChessAgainst.IsBarrack(roadStation.point))
                {
                    roadStation.type = FieldRoadStationType.Barrack;
                }
                roadStation.id = m_MapRoadStations.Count;
                m_MapRoadStations.Add(roadStation);
            }
        }
        List <int> connetedIds = new List <int>();

        for (int i = 0; i < m_MapRoadStations.Count; i++)
        {
            connetedIds.Clear();
            for (int j = 0; j < m_MapRoadStations.Count; j++)
            {
                if (i != j)
                {
                    if (ChessAgainst.IsConnected(m_MapRoadStations[i], m_MapRoadStations[j]))
                    {
                        connetedIds.Add(j);
                        //Debugger.Warn(m_MapRoadStations[i].point.ToString()+" => "+ m_MapRoadStations[j].point.ToString());
                    }
                }
            }
            m_MapRoadStations[i].connectedPointIds = connetedIds.ToArray();
        }
    }