package Intro

// public function startIntroFor(PlayerData pd)
// 	// cinematicModeForPlayer(true, pd.p, 0.)
// 	printTimedToPlayerClear("not yet implemented...", 5, pd.p)
// 	return
// 	// if isBuilder(pd.p)
// 	// 	CameraSetupApplyForPlayer(true, gg_cam_IntroBuilderCam, pd.p, 3.)
// 	// 	getTimer()..start(3, function startBuilderIntro)
// 	// 				..setData(pd castTo int)
// 	// else
// 	// 	CameraSetupApplyForPlayer(true, gg_cam_IntroEscaperCam, pd.p, 3.)
// 	// 	getTimer()..start(3, function startEscaperIntro)
// 	// 				..setData(pd castTo int)

// function startBuilderIntro()1
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("You are a |cff088CE6Builder|r. Thats means your job is to |cff0D8CE6build |cffFFCC00mazes |ringame, which the|cffFFCC00 Escapers |rwill be running through."
// 						+ "\n\nSo it is up to |cff088CC9you |rto make this game fun and challenging for both teams!", 10, pd.p)
// 	expt.start(10, function bintro0)

// function bintro0()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("It might seem |cffFFCC00a bit overhelming|r at first glance,\nto build a |cffFFCC00full-fletched escape map|r inside here,\nbut once you get the hang of it it's easy and fun!\n\nAnd |cffFFCC00yes|r, you are able to reconstruct almost all features from other escape-maps inside |cff0894DEEBR|r, and even more!", 10, pd.p)
// 	expt.start(10, function bintro1)

// function bintro1()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_BuilderSetupCam, pd.p, 5.)
// 	printTimedToPlayerClear("|cffFF7B29Let's get started!\n|rThe first thing you have to do in order to |cffFFCC00start building|r is to |cffFFCC00aquire/buy a region|r.\n\nYou buy |cffFFCC00regions |rby buying the |cffFFCC00terrain-item|r of your choice from the |cff6BC54ASetup-Building|r in the middle of the region.\n\nYou can see the |cff6BC54ASetup-Building |rhere.\n\nEach |cffFFCC00Region|r has |cff6BAE3Bone |runtil a builder buys it.\nYou can see the different |cffFFCC00regions |rmarked with a |cffFFCC00letter |ron your |cffFFCC00minimap |rat the bottom left of your screen.", 15, pd.p)
// 	expt.start(15, function bintro2)

// function bintro2()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_BuilderBuilderCam, pd.p, 5.)
// 	pd.p.selectSingle(pd.builder.actor)
// 	printTimedToPlayerClear("To buy a |cffFFCC00terrain-item|r you first have to move your |cff087BDEBuilder |rnear the |cff63C552Setup-Building|r!\n\nYou do this buy selectSingleing your |cff087BCEBuilder |r(the idle-worker symbol is a shortcut) and|cff087BCE |cffFFCC00rightclicking |rnear the|cff087BCE |cff08BD52Setup-Building\n|rand then selectSingleing the |cff3AAD4ASetup-Building|r.\n\nIt works like a normal |cffFFCC00wc3-Shop|r.\nNow you can |cffFFCC00choose |ryour desired |cffFFCC00terrain|r.\nThe chosen |cffFFCC00Terrain |rdetermines the |cffFFCC00tile- |rand |cffFFCC00killer-types|r of the region.\n", 15, pd.p)
// 	expt.start(15, function bintro3)

// function bintro3()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("Once you bought a |cffFFCC00region |ryou can now |cffFFCC00build inside|r it.\n\nTo keep things organized, building is split into |cffFFCC003 parts|r:\n	� |cff4AC552Terraining\n|r	� |cffFFAD6BUnit Producing\n|r	� |cff0884DEObject Building", 10, pd.p)
// 	expt.start(10, function bintro4)

// function bintro4()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_BuilderTilesCam, pd.p, 5.)
// 	printTimedToPlayerClear("Usually the first thing to do is Terraining!\nTerraining means changing the tiles inside your region to a maze structure.\nThere are two basic Terraintypes:\n	� |cff299C42Walkable |r(Escapers |cff42A542can walk|r on here)\n	� |cffCE2119Unwalkable |r(Escapers |cffCE3119die |rwhen they step on here)\n\nAs well as some additional terraintypes like:\n	� |cff2194EFIce|r, |cff08528CReverse Ice|r, |cff941908Lava|r, |cff3AC55APoison", 15, pd.p)
// 	expt.start(15, function bintro5_1)

// function bintro5_1()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	pd.p.selectSingle(pd.tmod.actor)
// 	CameraSetupApplyForPlayer(true, gg_cam_BlackCam, pd.p, 0.)
// 	if GetLocalPlayer() == pd.p
// 		ClearTextMessages()
// 	expt.start(1., function bintro5_2)

// function bintro5_2()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n<==\n\nTo place these |cffFFCC00tiles|r, you have to |cffFFCC00selectSingle |rthe according Hero and |cffFFCC00rightclick the area|r where you want the terrain to be changed!\nselectSingle the |cffFFCC00Terrain-Heroes |rvia their|cffFFCC00 Icons|r on the|cffFFCC00 left side of your screen!", 10, pd.p)
// 	expt.start(10, function bintro6)

// function bintro6()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	pd.p.selectSingle(pd.prod.actor)
// 	printTimedToPlayerClear("Next to the |cff29943Afour Terrain-Heroes|r you also have a |cffF75A29UnitProducer-Hero|r.\n\nThe |cffDE6321Unit-Producer |rallows yout to |cffFFCC00spawn |rvarious units into your region.\nIn order to produce a unit, you have to:\n	� |cffFFCC00selectSingle |rthe Producer\n	� |cffFFCC00Rightclick |rin your region to set a Rally-Point\n	� |cffFFCC00Cast |rthe spell for the unit you want to spawn", 15, pd.p)
// 	expt.start(15, function bintro7)

// function bintro7()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_BuilderBuilderCam, pd.p, 0.)
// 	pd.p.selectSingle(pd.builder.actor)
// 	printTimedToPlayerClear("Lastly there is the |cff087BD6Builder|r, which can |cffFFCC00build |rvarious |cffFFCC00Objects |rfrom 4 different |cffFFCC00menues|r.\n\nYou change the |cffFFCC00buildmenu |rby |cffFFCC00casting |rthe change-spells and then opening the |cffFFCC00buildmenu |ragain.\nBuilding works just like building in |cffFFD66Bmelee/standard games|r.", 10, pd.p)
// 	expt.start(10, function bintro8)

// function bintro8()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	let pos = pd.builder.getPos()
// 	CameraSetupApplyForPlayer(true, gg_cam_StdCam, pd.p, 0.)
// 	PanCameraToTimedForPlayer(pd.p, pos.x, pos.y, 0.)
// 	cinematicModeForPlayer(false, pd.p, 0.)
// 	printTimedToPlayerClear("The intro ends now.\n\n|cffFFCC00Use |ryour aquired |cffFFCC00knowledge |rto |cffFFCC00build |ra maze for the escapers!\n\nStart by |cffFFCC00buying |ra region of your choice...", 10, pd.p)
// 	expt.release()

// function startEscaperIntro()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("You are an |cff087BC5Escaper|r.\nFor you this map functions like an |cffFFCC00always different Escape/Maze Game|r.\n\nAfter you went through some |cffFFCC00pre-made mazes|r to give the builders some |cff7B9CE6time |rto build,\nyou will be running through |cffFFCC00mazes |rthat the other team, the |cff086BBDBuilders|r, built for |cff089442you|r!\n\n|cffFF5A29Everything is done ingame!\n|rIf you |cffFFCC00can't progress|r at a maze or have a |cffFFCC00suggestion|r, |cffFFF708feel free to chat|r with the |cffFFCC00builders |rusing |cffC55A10[ALL]|r chat (Shift + Enter)", 15, pd.p)
// 	expt.start(15, function eintro1)

// function eintro1()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	printTimedToPlayerClear("The|cffFFCC00 most basic element|r of escapes are different |cffFFCC00tiles|r,\nthat's why this introduction is gonna tell you the |cffFFCC00different tiles and their effects|r.\n", 7, pd.p)
// 	expt.start(7, function eintro2)

// function eintro2()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam00, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cffCE2919UNWALKABLE |rTile.\nIt differs from region to region depending on the type.\n\nYour |cff086BA5Escaper |cffFFCC00dies |ras soon as he steps onto it.", 7, pd.p)
// 	expt.start(7, function eintro3)

// function eintro3()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam01, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cff4ACE52WALKABLE |rTile.\nIt differs from region to region depending on the type.\n\nYour |cff086BA5Escaper |rcan |cffFFCC00walk |ron these tiles.", 7, pd.p)
// 	expt.start(7, function eintro4)


// function eintro4()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam02, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cff21C5FFICE |rTile.\n\nWhen stepping on this tile your |cff1084E6Escaper |rstarts to |cff08ADFFslide|r.\nWhile |cff29ADF7sliding|r, |cffFFCC00rightclicking |rcontrols your |cffFFCC00rotation|r.", 7, pd.p)
// 	expt.start(7, function eintro5)

// function eintro5()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam03, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cff085284DARK ICE|cff21C5FF |rTile.\n\nWhen steeping on it the |cff0873CEEscaper |rwill |cff52ADF7slide |rlike on normal ice,\nbut you |cffFFCC00lose |rthe ability to |cffFFCC00steer|r.", 7, pd.p)
// 	expt.start(7, function eintro6)

// function eintro6()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam04, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cff08A5BDREVERSE ICE|cff21C5FF |rTile.\n\nBasically the same like the |cff0894E6ICE |rtile,\nbut the steering is|cff0894E6 |cff0894B5reversed|r.", 7, pd.p)
// 	expt.start(7, function eintro7)

// function eintro7()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam05, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cffF72929LAVA |rTile.\n\nWhile walking on |cffDE3A21lava|r, your |cff0873BDEscaper |cffFFCC00loses Hitpoints|r over time.", 7, pd.p)
// 	expt.start(7, function eintro8)

// function eintro8()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_ECam06, pd.p, 0.)
// 	printTimedToPlayerClear("This is the |cff5A9429POISON |rTile.\n\nAfter |cffFFCC00stepping |ronto |cff5ABD4Apoison |cffFFCC00once|r, your |cff086BB5Escaper |rgets |cff21AD4Ainfected|r.\nThe |cff3AC552infection |rlasts |cffFFCC00until |ryour |cff085AA5Escaper |rgets |cffFFCC00cured |rat a fountain |cffB5B5B5or|r |cffFFCC00dies|r,\nand does |cffFFCC00damage over time|r.", 7, pd.p)
// 	expt.start(7, function eintro9)

// function eintro9()
// 	let expt = GetExpiredTimer()
// 	let pd = expt.getData() castTo PlayerData
// 	CameraSetupApplyForPlayer(true, gg_cam_StdCam, pd.p, 0.)
// 	PanCameraToTimedForPlayer(pd.p, pd.escaper.getPos().x,pd.escaper.getPos().y,3.)
// 	cinematicModeForPlayer(false, pd.p, 0.)
// 	printTimedToPlayerClear("The introduction ends now.\nThere |cffFFCC00are a lot of objects|r in the game like |cff84CE4Adoors, keys, monsters, teleporters, etc.\n|rwhich you will |cffFFCC00encounter |ron along your path to |cffFFCC00victory|r.\n\nYou now |cffFF6331understand |rthe basic game mechanics and can |cffFFCC00discover |rthe rest on your own...", 7, pd.p)
// 	expt.release()
