local this = {}

function this:checkCondition(entity, param)
  return true
end

function this:executeInteract(entity, param)
  local paramTable = string.split(param, ",")
  local value2 = tonumber(paramTable[2])
  local curDungeon = L_DungeonStore:getDungeonCampaignInfoCSData()
  local curDungeonSceneDatas = curDungeon.sceneDatas
  local nextSceneId, nextPointId
  if value2 == -1 then
    for i = curDungeonSceneDatas.Count - 1, 1, -1 do
      local sceneData = curDungeonSceneDatas[i]
      if sceneData ~= nil and sceneData.sceneId == curDungeon.curSceneId then
        nextSceneId = curDungeonSceneDatas[i - 1].sceneId
        break
      end
    end
    print("\229\137\175\230\156\172\229\136\135\230\141\162\229\156\186\230\153\175", "\229\142\187\229\190\128\228\184\138\228\184\128\228\184\170\233\152\182\230\174\181\231\154\132\229\156\186\230\153\175 scene_id = ", nextSceneId)
  elseif value2 == 1 then
    for i = 0, curDungeonSceneDatas.Count - 2 do
      local sceneData = curDungeonSceneDatas[i]
      if sceneData ~= nil and sceneData.sceneId == curDungeon.curSceneId then
        nextSceneId = curDungeonSceneDatas[i + 1].sceneId
        break
      end
    end
    print("\229\137\175\230\156\172\229\136\135\230\141\162\229\156\186\230\153\175", "\229\142\187\229\190\128\228\184\139\228\184\128\228\184\170\233\152\182\230\174\181\231\154\132\229\156\186\230\153\175 scene_id = ", nextSceneId)
  elseif value2 == 0 then
    print("\229\137\175\230\156\172\229\136\135\230\141\162\229\156\186\230\153\175", "\233\128\128\229\135\186\229\137\175\230\156\172")
  else
    local pointTpl = L_GameTpl:getWorldBorthposTpl()
    local pointId = value2
    local tpl = pointTpl:getTplById(pointId)
    if tpl == nil then
      error("\229\137\175\230\156\172\229\136\135\230\141\162\229\156\186\230\153\175", "pointId\230\156\170\230\137\190\229\136\176", pointId)
    else
      local sceneId = pointTpl:getCityId(tpl)
      print("\229\137\175\230\156\172\229\136\135\230\141\162\229\156\186\230\153\175", "\229\142\187\229\190\128\228\184\139\228\184\128\228\184\170\233\152\182\230\174\181\231\154\132\229\156\186\230\153\175 sceneId = ", sceneId, "pointId = ", pointId)
      AzurWorld.proxyCenter:RequestTransfer(sceneId, pointId)
    end
    return
  end
  if nextSceneId ~= nil then
    L_DungeonStore:req_enterDungeonScene(nextSceneId, nextPointId, nil)
  else
    L_DungeonManager:exitDungeon(true)
  end
end

function this:getDisplayName(entity, param)
  local paramTable = string.split(param, ",")
  return paramTable[1]
end

return this
