
function onTalk()
  disableMovement()
  player.Facing = getEnum("Celeste.Facings", "Right")
  local level = getLevel()
  coroutine.yield(level:ZoomTo(vector2(220, 87), 2, 0.5))
  say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start")
  wait(0.125)
  choiceDialog({
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Hints",
              repeatable = true,
              onChosen = function ()
                say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start_Hints")
                choiceDialog({
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_Egg",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_Egg")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_Depths",
                            repeatable = true,
                            requires = function ()
                               return getFlag("AbyssNotClear")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_Depths")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_DepthsCleared",
                            repeatable = true,
                            requires = function ()
                               return getFlag("AbyssClear")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_Depths")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_Multitask",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_Multitask")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_Collapse",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_Collapse")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_CollapseB",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_CollapseB")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_HintsChoice_CollapseExtras",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Hints_CollapseExtras")              
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
                            repeatable = true,
                            onChosen = function ()
                              local level = getLevel()
                              coroutine.yield(level:ZoomBack(0.5))
                              closeChoiceDialog()             
                        end
                    }
                })

          end
      },
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_RiftMaps",
              repeatable = true,
              onChosen = function ()
                say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start_RiftMaps")
                choiceDialog({
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_Skips",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_Skips")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_BrokenLamps",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_BrokenLamps")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_Depths",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_Depths")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_NewGame",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_NewGame")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_Residents",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_Residents")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_RiftsChoice_Snatcher",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Rifts_Snatcher")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
                            repeatable = true,
                            onChosen = function ()
                              local level = getLevel()
                              coroutine.yield(level:ZoomBack(0.5))
                              closeChoiceDialog()             
                        end
                    }
                })

          end
      },
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_OtherMaps",
              repeatable = true,
              requires = function ()
                 return getFlag("AllowOtherMaps")
              end,
              onChosen = function ()
                say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start_OtherMaps")
                choiceDialog({
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Netscape",
                            repeatable = true,
                            requires = function ()
                               return getFlag("NetscapeNavigator_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Netscape")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_BrutalOrchestra",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Brutal_Orchestra_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_BrutalOrchestra")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Catbird",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Catbird_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Catbird")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Dadish",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Dadish_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Dadish")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Deltarune",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Inferno__heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Deltarune")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Earthblade",
                            repeatable = true,
                            requires = function ()
                               return getFlag("earthblade_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Earthblade")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_GeometryDash",
                            repeatable = true,
                            requires = function ()
                               return getFlag("GeometryDash_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_GeometryDash")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_HatInTime",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Flamecrafter113_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_HatInTime")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_HollowKnight",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Knight_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_HollowKnight")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_ItSteals",
                            repeatable = true,
                            requires = function ()
                               return getFlag("LastLocationUnknown_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_ItSteals")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_KingThieves",
                            repeatable = true,
                            requires = function ()
                               return getFlag("QueenOfThievesNew_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_KingThieves")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Minecraft",
                            repeatable = true,
                            requires = function ()
                               return getFlag("CatAndComparator_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Minecraft")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Omori",
                            repeatable = true,
                            requires = function ()
                               return getFlag("ashleybl_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Omori")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Portal",
                            repeatable = true,
                            requires = function ()
                               return getFlag("evaPortal_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Portal")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_SubnauticaInt",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Echo_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_SubnauticaInt")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_SubnauticaGM",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Ghajestis_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_SubnauticaGM")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_SuperMario",
                            repeatable = true,
                            requires = function ()
                               return getFlag("probanana_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_SuperMario")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Terraria",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Terraria_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Terraria")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Tetris",
                            repeatable = true,
                            requires = function ()
                               return getFlag("evaCelestris_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Tetris")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_VVVVVV",
                            repeatable = true,
                            requires = function ()
                               return getFlag("vvvvvv_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_VVVVVV")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Fusion_Dadbird",
                            repeatable = true,
                            requires = function ()
                               return getFlag("CatbirDadish_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Fusion_Dadbird")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Fusion_Portris",
                            repeatable = true,
                            requires = function ()
                               return getFlag("evaFusion_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Fusion_Portris")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Fusion_Terracraft",
                            repeatable = true,
                            requires = function ()
                               return getFlag("Terracraft_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Fusion_Terracraft")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMapsChoice_Pointside",
                            repeatable = true,
                            requires = function ()
                               return getFlag("pointside_heart")
                            end,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_OtherMaps_Pointside")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
                            repeatable = true,
                            onChosen = function ()
                              local level = getLevel()
                              coroutine.yield(level:ZoomBack(0.5))
                              closeChoiceDialog()             
                        end
                    }
                })

          end
      },
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Chatting",
              repeatable = true,
              onChosen = function ()
              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start_Chatting")
                choiceDialog({
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Comox",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Comox")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Stress",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Stress")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Celeste",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Celeste")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Journeys",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Journeys")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Research",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Research")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Alex",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Alex")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Theo",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Theo")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Celia",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Celia")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Oshiro",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Oshiro")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Bird",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Bird")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Games",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Games")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Blog",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Blog")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_ChattingChoice_Journal",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Chatting_Journal")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
                            repeatable = true,
                            onChosen = function ()
                              local level = getLevel()
                              coroutine.yield(level:ZoomBack(0.5))
                              closeChoiceDialog()             
                        end
                    }
                })

          end
      },
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Meta",
              requires = function ()
                  return getFlag("AllMapsClear")
              end,
              onChosen = function ()
              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Start_Meta")
                choiceDialog({
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Lore",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Lore")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Beginnings",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Beginnings")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_ASide",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_ASide")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Peace",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Peace")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Deathwish",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Deathwish")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_BSide",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_BSide")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Fusion",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Fusion")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Polish",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Polish")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Scope",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Scope")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Cut",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Cut")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_DebugMap",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_DebugMap")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_MetaChoice_Emoji",
                            repeatable = true,
                            onChosen = function ()
                              say("CC_Flamecrafter113_TemporalRift_BadelineHangout_Meta_Emoji")             
                        end
                    },
                    {
                        "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
                            repeatable = true,
                            onChosen = function ()
                              local level = getLevel()
                              coroutine.yield(level:ZoomBack(0.5))
                              closeChoiceDialog()             
                        end
                    }
                })

          end
      },
      {
          "CC_Flamecrafter113_TemporalRift_BadelineHangout_StartChoice_Nevermind",
              repeatable = true,
              onChosen = function ()
                local level = getLevel()
                coroutine.yield(level:ZoomBack(0.5))
                closeChoiceDialog()
          end
      }
  })

end


function onEnd()
  local level = getLevel()
  level:ResetZoom()
  enableMovement()
end