コード例 #1
0
ファイル: AreaData.cs プロジェクト: c2001324/Leo
    bool ConstructFirstRoom(JAreaConfig areaConfig)
    {
        JAreaConfig.JRoomConfig room = null;
        switch (m_LevelData.levelType)
        {
            case LevelType.Normal:
                room = GetRoomConfig(RoomType.StartRoom);
                break;
            case LevelType.Practice:
                room = GetRoomConfig(RoomType.PracticeRoom);
                break;
            case LevelType.PreCombat:
                room = GetRoomConfig(RoomType.PreCombatRoom);
                break;
        }

        if (room == null)
        {
            Debug.LogError("找不到开始的房间");
            return false;
        }
        else
        {
            AddRoomConstructorData(0, room, true);
            return true;
        }
    }
コード例 #2
0
ファイル: AreaData.cs プロジェクト: c2001324/Leo
 bool Initialize(int index, JAreaConfig areaConfig, System.Random random)
 {
     m_IndexCounter = 0;
     this.index = index;
     deep = areaConfig.deep.GetValue(random);
     name = areaConfig.name;
     GenerateRooms(areaConfig.roomConfigs, random);
     GenerateRoomsFromRoomPool(areaConfig.roomPoolConfigs, random);
     GenerateRoomsFromRoomType(areaConfig.roomTypeConfigs, random);
     return ConstructRoom(areaConfig);
 }
コード例 #3
0
ファイル: AreaData.cs プロジェクト: c2001324/Leo
 public static AreaData Create(LevelData levelData, int index, JAreaConfig areaConfig, System.Random random)
 {
     AreaData data = new AreaData(levelData);
     if (data.Initialize(index, areaConfig, random))
     {
         return data;
     }
     else
     {
         return null;
     }
 }
コード例 #4
0
ファイル: AreaData.cs プロジェクト: c2001324/Leo
 bool ConstructLastRoom(JAreaConfig areaConfig)
 {
     if (m_LevelData.levelType == LevelType.Normal)
     {
         JAreaConfig.JRoomConfig roomConfig = GetRoomConfig(RoomType.BossRoom);
         if (roomConfig == null)
         {
             Debug.LogError("找不到boss房间");
             return false;
         }
         else
         {
             AddRoomConstructorData(deep, roomConfig, true);
             return true;
         }
     }
     else
     {
         return true;
     }
 }
コード例 #5
0
ファイル: AreaData.cs プロジェクト: c2001324/Leo
 bool ConstructRoom(JAreaConfig areaConfig)
 {
     if (ConstructFirstRoom(areaConfig) && ConstructLastRoom(areaConfig))
     {
         if (m_TempRoomConfig.Count > 0)
         {
             List<int> roomIndexList = Untility.Tool.CreateRandomList(0, m_TempRoomConfig.Count - 1);
             int curDeep = 1;
             foreach (int index in roomIndexList)
             {
                 JAreaConfig.JRoomConfig roomConfig = m_TempRoomConfig[index];
                 AddRoomConstructorData(curDeep++, roomConfig, false);
                 curDeep = curDeep > deep - 1 ? 1 : curDeep;
             }
             m_TempRoomConfig.Clear();
         }
         return true;
     }
     else
     {
         return false;
     }
 }