| | |
| | |
|
| | | return
|
| | |
|
| | | def __doClickUnOpendGrid(curPlayer, row, col):
|
| | | def __doClickUnOpendGrid(curPlayer, row, col, isBomb=False):
|
| | | ## 执行点击未开启的格子
|
| | | gridState = GetGridState(curPlayer, row, col)
|
| | | if gridState in [GridState_None, GridState_Crack]:
|
| | | __openGridRandEvent(curPlayer, row, col)
|
| | | __openGridRandEvent(curPlayer, row, col, isBomb)
|
| | | else:
|
| | | return
|
| | | return True
|
| | |
|
| | | def __openGridRandEvent(curPlayer, row, col):
|
| | | def __openGridRandEvent(curPlayer, row, col, isBomb=False):
|
| | | ## 执行打开格子随机生成事件
|
| | | eventID = GetGridEventID(curPlayer, row, col)
|
| | | if eventID:
|
| | |
| | | else:
|
| | | eventID = ipyData.GetEventID()
|
| | | awardItemID = ipyData.GetAwardItemID()
|
| | | if awardItemID in IpyGameDataPY.GetFuncEvalCfg("TravelRate", 1) and GetGridState(curPlayer, row, col) == GridState_None:
|
| | | # 炸弹不出裂纹
|
| | | if not isBomb and awardItemID in IpyGameDataPY.GetFuncEvalCfg("TravelRate", 1) and GetGridState(curPlayer, row, col) == GridState_None:
|
| | | GameWorld.DebugLog("必出现裂纹的奖励事件! eventID=%s,awardItemID=%s" % (eventID, awardItemID))
|
| | | SetGridState(curPlayer, row, col, GridState_Crack)
|
| | |
|
| | |
| | | rowMax, colMax = IpyGameDataPY.GetFuncEvalCfg("TravelSet", 3) # 行列
|
| | | # 同行
|
| | | for c in range(1, 1 + colMax):
|
| | | if __doClickUnOpendGrid(curPlayer, row, c):
|
| | | if __doClickUnOpendGrid(curPlayer, row, c, isBomb=True):
|
| | | syncGridList.append([row, c])
|
| | | # 同列
|
| | | for r in range(1, 1 + rowMax):
|
| | | if __doClickUnOpendGrid(curPlayer, r, col):
|
| | | if __doClickUnOpendGrid(curPlayer, r, col, isBomb=True):
|
| | | syncGridList.append([r, col])
|
| | | |
| | | SetGridEventID(curPlayer, row, col, EventID_Blank) # 炸弹消失
|
| | | syncGridList.append([row, col])
|
| | | |
| | | # 传送门
|
| | | elif eventID == EventID_Portal:
|
| | | GameWorld.DebugLog("点击传送门! row=%s,col=%s,eventID=%s" % (row, col, eventID))
|