public BABELTOWER_DATA GetBabelTowerData(short _floor, short _subfloor, short _floortype = 1)
 {
     BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = this.GetBabelTowerFloorInfo(_floor, _floortype);
     if (babelTowerFloorInfo == null)
     {
         return(null);
     }
     if (_floortype == 2)
     {
         foreach (BABELTOWER_DATA current in babelTowerFloorInfo.m_listBabelTowerData_Type2)
         {
             if (current.m_nFloor == _floor && current.m_nSubFloor == _subfloor && current.m_nFloorType == _floortype)
             {
                 BABELTOWER_DATA result = current;
                 return(result);
             }
         }
     }
     else
     {
         foreach (BABELTOWER_DATA current2 in babelTowerFloorInfo.m_listBabelTowerData_Type1)
         {
             if (current2.m_nFloor == _floor && current2.m_nSubFloor == _subfloor && current2.m_nFloorType == _floortype)
             {
                 BABELTOWER_DATA result = current2;
                 return(result);
             }
         }
     }
     return(null);
 }
    public short GetMaxSubFloor(short _Floor, short _FloorType)
    {
        BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = this.GetBabelTowerFloorInfo(_Floor, _FloorType);
        if (babelTowerFloorInfo == null)
        {
            return(0);
        }
        short num = 0;

        if (_FloorType == 2)
        {
            foreach (BABELTOWER_DATA current in babelTowerFloorInfo.m_listBabelTowerData_Type2)
            {
                if (current.m_nFloor == _Floor && current.m_nFloorType == _FloorType && num < current.m_nSubFloor)
                {
                    num = current.m_nSubFloor;
                }
            }
        }
        else
        {
            foreach (BABELTOWER_DATA current2 in babelTowerFloorInfo.m_listBabelTowerData_Type1)
            {
                if (current2.m_nFloor == _Floor && current2.m_nFloorType == _FloorType && num < current2.m_nSubFloor)
                {
                    num = current2.m_nSubFloor;
                }
            }
        }
        return(num);
    }
 public BabelTowerManager.BabelTower_Floor GetBabelTowerFloorInfo(short floor, short FloorType)
 {
     BabelTowerManager.BabelTower_Floor babelTower_Floor;
     if (FloorType == 2)
     {
         if (!this.m_DicBabelTowerFloorInfo_Type2.ContainsKey(floor))
         {
             babelTower_Floor = new BabelTowerManager.BabelTower_Floor();
             this.m_DicBabelTowerFloorInfo_Type2.Add(floor, babelTower_Floor);
         }
         else
         {
             babelTower_Floor = this.m_DicBabelTowerFloorInfo_Type2[floor];
         }
     }
     else if (!this.m_DicBabelTowerFloorInfo_Type1.ContainsKey(floor))
     {
         babelTower_Floor = new BabelTowerManager.BabelTower_Floor();
         this.m_DicBabelTowerFloorInfo_Type1.Add(floor, babelTower_Floor);
     }
     else
     {
         babelTower_Floor = this.m_DicBabelTowerFloorInfo_Type1[floor];
     }
     return(babelTower_Floor);
 }
    public bool IsBabelTreasure(short _floor, short floortype)
    {
        BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = NrTSingleton <BabelTowerManager> .Instance.GetBabelTowerFloorInfo(_floor, floortype);

        if (floortype == 2)
        {
            for (short num = 0; num < babelTowerFloorInfo.SubFloorCount_Type2; num += 1)
            {
                if (!this.IsBabelTreasure(_floor, num, floortype))
                {
                    return(false);
                }
            }
        }
        else
        {
            for (short num2 = 0; num2 < babelTowerFloorInfo.SubFloorCount_Type1; num2 += 1)
            {
                if (!this.IsBabelTreasure(_floor, num2, floortype))
                {
                    return(false);
                }
            }
        }
        return(true);
    }
 public void AddBabelTowerData(BABELTOWER_DATA _data)
 {
     if (_data.m_nFloorType == 2 && this.m_LastFloor_Type2 < _data.m_nFloor)
     {
         this.m_LastFloor_Type2 = _data.m_nFloor;
     }
     else if (this.m_LastFloor_Type1 < _data.m_nFloor)
     {
         this.m_LastFloor_Type1 = _data.m_nFloor;
     }
     BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = this.GetBabelTowerFloorInfo(_data.m_nFloor, _data.m_nFloorType);
     babelTowerFloorInfo.AddBabelDataInfo(_data);
 }
 public short GetBabelTowerLastSubFloor(short floor, short floortype)
 {
     BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = this.GetBabelTowerFloorInfo(floor, floortype);
     if (babelTowerFloorInfo == null)
     {
         return(0);
     }
     if (floortype == 2)
     {
         return(babelTowerFloorInfo.LastSubFloor_Type2);
     }
     return(babelTowerFloorInfo.LastSubFloor_Type1);
 }
    public byte GetBabelFloorRankInfo(short floor, short floortype)
    {
        byte b = 0;

        BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = NrTSingleton <BabelTowerManager> .Instance.GetBabelTowerFloorInfo(floor, floortype);

        if (babelTowerFloorInfo == null)
        {
            return(b);
        }
        short num  = 0;
        short num2 = babelTowerFloorInfo.SubFloorCount_Type1;

        if (floortype == 2)
        {
            num2 = babelTowerFloorInfo.SubFloorCount_Type2;
        }
        for (short num3 = 0; num3 < num2; num3 += 1)
        {
            foreach (BABEL_SUBFLOOR_RANKINFO current in this.BabelSubFloor_RankInfo)
            {
                if (current.i16Floor == floor && (short)current.bySubFloor == num3 && current.i16FloorType == floortype)
                {
                    if (b == 0 || b > current.byRank)
                    {
                        b = current.byRank;
                    }
                    num += 1;
                }
            }
        }
        if (floortype == 2)
        {
            if (num < babelTowerFloorInfo.SubFloorCount_Type2)
            {
                return(0);
            }
        }
        else if (num < babelTowerFloorInfo.SubFloorCount_Type1)
        {
            return(0);
        }
        return(b);
    }
 public bool IsClearBabel(short floor, BABEL_CLEARINFO info, short floortype)
 {
     BabelTowerManager.BabelTower_Floor babelTowerFloorInfo = this.GetBabelTowerFloorInfo(floor, floortype);
     return(babelTowerFloorInfo != null && babelTowerFloorInfo.m_Column == info.ColumnNum && (babelTowerFloorInfo.m_ClearInfo & info.ClearInfo) == babelTowerFloorInfo.m_ClearInfo && babelTowerFloorInfo.m_FloorType == (long)info.FloorType);
 }