-- TimeSpace Script generated by friends111's python script. Replace all %TODO% values accordingly, check for errors (packet-generation isn't perfect), and modify things if needed.
local Map = require('Map')
local Monster = require('Monster')
local Event = require('Event')
local MapObject = require('MapObject')
local MapNpc = require('MapNpc')
local Portal = require('Portal')
local Location = require('Location')
local TimeSpace = require('TimeSpace')
local PortalType = require("PortalType")
local PortalMinimapOrientation = require('PortalMinimapOrientation')
local TimeSpaceObjective = require('TimeSpaceObjective')
local TimeSpaceTaskType = require('TimeSpaceTaskType')
local TimeSpaceTask = require('TimeSpaceTask')

local objectives = TimeSpaceObjective.Create()
    .WithGoToExit()
    .WithConversations(1)
    .WithProtectNPC()

-- Grid min:(2, 6) ~ max:(7, 9) (width: 5, height: 3)
--     [ 0][ 1][ 2][ 3][ 4][ 5][ 6][ 7][ 8][ 9][10]
-- [ 0][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 1][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 2][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 3][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 4][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 5][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]
-- [ 6][  ][  ][  ][  ][  ][XX][XX][XX][  ][  ][  ]
-- [ 7][  ][  ][OO][XX][OO][XX][  ][XX][  ][  ][  ]
-- [ 8][  ][  ][XX][OO][XX][  ][  ][XX][  ][  ][  ]
-- [ 9][  ][  ][  ][  ][OO][XX][OO][OO][  ][  ][  ]
-- [10][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ][  ]

local map_6_9 = Map.Create().WithMapId(5203).SetMapCoordinates(6, 9).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
) -- start
local map_5_9 = Map.Create().WithMapId(5203).SetMapCoordinates(5, 9).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithOnStartDialog(6114).WithOnFinishShout("TS_22_TEXT_0")
)
local map_4_9 = Map.Create().WithMapId(5203).SetMapCoordinates(4, 9).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
)
local map_4_8 = Map.Create().WithMapId(5203).SetMapCoordinates(4, 8).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6114)
)
local map_3_8 = Map.Create().WithMapId(5203).SetMapCoordinates(3, 8).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
)
local map_2_8 = Map.Create().WithMapId(5203).SetMapCoordinates(2, 8).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6114)
)
local map_2_7 = Map.Create().WithMapId(5203).SetMapCoordinates(2, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
)
local map_3_7 = Map.Create().WithMapId(5203).SetMapCoordinates(3, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6115)
)
local map_4_7 = Map.Create().WithMapId(5203).SetMapCoordinates(4, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None)
)
local map_5_7 = Map.Create().WithMapId(5203).SetMapCoordinates(5, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithOnFinishDialog(6116)
)
local map_5_6 = Map.Create().WithMapId(5203).SetMapCoordinates(5, 6).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES").WithOnStartDialog(6117, true)
)
local map_6_6 = Map.Create().WithMapId(5203).SetMapCoordinates(6, 6).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES")
)
local map_7_6 = Map.Create().WithMapId(5203).SetMapCoordinates(7, 6).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES")
)
local map_7_7 = Map.Create().WithMapId(5203).SetMapCoordinates(7, 7).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES")
)
local map_7_8 = Map.Create().WithMapId(5203).SetMapCoordinates(7, 8).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.KillAllMonsters).WithTaskText("TS_GENERIC_TEXT_KILL_ALL_ENEMIES")
)
local map_7_9 = Map.Create().WithMapId(5203).SetMapCoordinates(7, 9).WithTask(
    TimeSpaceTask.Create(TimeSpaceTaskType.None).WithOnStartDialog(6118)
)

local portal_6_9_to_5_9 = Portal.Create(PortalType.TsNormal).From(map_6_9, 1, 12).To(map_5_9, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_5_9_to_6_9 = Portal.Create(PortalType.Locked).From(map_5_9, 23, 12).To(map_6_9, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_5_9_to_4_9 = Portal.Create(PortalType.Locked).From(map_5_9, 1, 12).To(map_4_9, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_4_9_to_4_8 = Portal.Create(PortalType.TsNormal).From(map_4_9, 12, 1).To(map_4_8, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_4_9_to_5_9 = Portal.Create(PortalType.Locked).From(map_4_9, 23, 12).To(map_5_9, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_4_8_to_4_9 = Portal.Create(PortalType.Locked).From(map_4_8, 12, 23).To(map_4_9, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_4_8_to_3_8 = Portal.Create(PortalType.Locked).From(map_4_8, 1, 12).To(map_3_8, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_3_8_to_4_8 = Portal.Create(PortalType.TsNormal).From(map_3_8, 23, 12).To(map_4_8, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_3_8_to_2_8 = Portal.Create(PortalType.TsNormal).From(map_3_8, 1, 12).To(map_2_8, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_2_8_to_2_7 = Portal.Create(PortalType.Locked).From(map_2_8, 12, 1).To(map_2_7, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_2_8_to_3_8 = Portal.Create(PortalType.Locked).From(map_2_8, 23, 12).To(map_3_8, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_2_7_to_3_7 = Portal.Create(PortalType.TsNormal).From(map_2_7, 23, 12).To(map_3_7, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_2_7_to_2_8 = Portal.Create(PortalType.TsNormal).From(map_2_7, 12, 23).To(map_2_8, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_3_7_to_4_7 = Portal.Create(PortalType.Locked).From(map_3_7, 23, 12).To(map_4_7, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_3_7_to_2_7 = Portal.Create(PortalType.Locked).From(map_3_7, 1, 12).To(map_2_7, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_4_7_to_5_7 = Portal.Create(PortalType.TsNormal).From(map_4_7, 23, 12).To(map_5_7, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_4_7_to_3_7 = Portal.Create(PortalType.TsNormal).From(map_4_7, 1, 12).To(map_3_7, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_5_7_to_5_6 = Portal.Create(PortalType.Locked).From(map_5_7, 12, 1).To(map_5_6, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_5_7_to_4_7 = Portal.Create(PortalType.Locked).From(map_5_7, 1, 12).To(map_4_7, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_5_6_to_6_6 = Portal.Create(PortalType.Locked).From(map_5_6, 23, 12).To(map_6_6, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_5_6_to_5_7 = Portal.Create(PortalType.Locked).From(map_5_6, 12, 23).To(map_5_7, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_6_6_to_7_6 = Portal.Create(PortalType.Locked).From(map_6_6, 23, 12).To(map_7_6, 1, 12).MinimapOrientation(PortalMinimapOrientation.East)
local portal_6_6_to_5_6 = Portal.Create(PortalType.Locked).From(map_6_6, 1, 12).To(map_5_6, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_7_6_to_7_7 = Portal.Create(PortalType.Locked).From(map_7_6, 12, 23).To(map_7_7, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_7_6_to_6_6 = Portal.Create(PortalType.Locked).From(map_7_6, 1, 12).To(map_6_6, 23, 12).MinimapOrientation(PortalMinimapOrientation.West)
local portal_7_7_to_7_6 = Portal.Create(PortalType.Locked).From(map_7_7, 12, 1).To(map_7_6, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_7_7_to_7_8 = Portal.Create(PortalType.Locked).From(map_7_7, 12, 23).To(map_7_8, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_7_8_to_7_7 = Portal.Create(PortalType.Locked).From(map_7_8, 12, 1).To(map_7_7, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_7_8_to_7_9 = Portal.Create(PortalType.Locked).From(map_7_8, 12, 23).To(map_7_9, 12, 1).MinimapOrientation(PortalMinimapOrientation.South)
local portal_7_9_to_7_8 = Portal.Create(PortalType.Locked).From(map_7_9, 12, 1).To(map_7_8, 12, 23).MinimapOrientation(PortalMinimapOrientation.North)
local portal_7_9_to_UNKNOWN = Portal.Create(PortalType.TSEndClosed).From(map_7_9, 12, 23).To(map_7_9, 12, 23).MinimapOrientation(PortalMinimapOrientation.South)

map_6_9.AddPortal(portal_6_9_to_5_9)
map_5_9.AddPortal(portal_5_9_to_6_9)
map_5_9.AddPortal(portal_5_9_to_4_9)
map_4_9.AddPortal(portal_4_9_to_4_8)
map_4_9.AddPortal(portal_4_9_to_5_9)
map_4_8.AddPortal(portal_4_8_to_4_9)
map_4_8.AddPortal(portal_4_8_to_3_8)
map_3_8.AddPortal(portal_3_8_to_4_8)
map_3_8.AddPortal(portal_3_8_to_2_8)
map_2_8.AddPortal(portal_2_8_to_2_7)
map_2_8.AddPortal(portal_2_8_to_3_8)
map_2_7.AddPortal(portal_2_7_to_3_7)
map_2_7.AddPortal(portal_2_7_to_2_8)
map_3_7.AddPortal(portal_3_7_to_4_7)
map_3_7.AddPortal(portal_3_7_to_2_7)
map_4_7.AddPortal(portal_4_7_to_5_7)
map_4_7.AddPortal(portal_4_7_to_3_7)
map_5_7.AddPortal(portal_5_7_to_5_6)
map_5_7.AddPortal(portal_5_7_to_4_7)
map_5_6.AddPortal(portal_5_6_to_6_6)
map_5_6.AddPortal(portal_5_6_to_5_7)
map_6_6.AddPortal(portal_6_6_to_7_6)
map_6_6.AddPortal(portal_6_6_to_5_6)
map_7_6.AddPortal(portal_7_6_to_7_7)
map_7_6.AddPortal(portal_7_6_to_6_6)
map_7_7.AddPortal(portal_7_7_to_7_6)
map_7_7.AddPortal(portal_7_7_to_7_8)
map_7_8.AddPortal(portal_7_8_to_7_7)
map_7_8.AddPortal(portal_7_8_to_7_9)
map_7_9.AddPortal(portal_7_9_to_7_8)
map_7_9.AddPortal(portal_7_9_to_UNKNOWN)

--- Map 6_9
map_6_9.OnMapJoin({
    Event.TryStartTaskForMap(map_6_9),
})
---

--- Map 5_9
map_5_9.AddMonsters({
    Monster.CreateWithVnum(114).At(15, 21).Facing(4), -- Rookie Koaren Sword Fighter [16:26:35]
    Monster.CreateWithVnum(114).At(15, 12).Facing(7), -- Rookie Koaren Sword Fighter [16:26:35]
    Monster.CreateWithVnum(120).At(15, 9).Facing(1), -- Rookie Koaren Warrior [16:26:35]
    Monster.CreateWithVnum(120).At(13, 17).Facing(6), -- Rookie Koaren Warrior [16:26:35]
    Monster.CreateWithVnum(114).At(10, 12).Facing(1), -- Rookie Koaren Sword Fighter [16:26:35]
    Monster.CreateWithVnum(114).At(6, 12).Facing(2).SpawnAfterMobsKilled(1), -- Rookie Koaren Sword Fighter [16:26:42]
    Monster.CreateWithVnum(114).At(9, 13).Facing(3).SpawnAfterMobsKilled(1), -- Rookie Koaren Sword Fighter [16:26:42]
    Monster.CreateWithVnum(114).At(9, 17).Facing(1).SpawnAfterMobsKilled(1), -- Rookie Koaren Sword Fighter [16:26:42]
    Monster.CreateWithVnum(120).At(6, 14).Facing(1).SpawnAfterMobsKilled(3), -- Rookie Koaren Warrior [16:26:44]
    Monster.CreateWithVnum(120).At(9, 15).Facing(6).SpawnAfterMobsKilled(3), -- Rookie Koaren Warrior [16:26:44]
})
map_5_9.AddNpcs({
    MapNpc.CreateNpcWithVnum(311).At(15, 22).Facing(6), -- Lord Cuarry's Knight [16:26:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 19).Facing(5), -- Lord Cuarry's Knight [16:26:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 14).Facing(2), -- Lord Cuarry's Knight [16:26:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 11).Facing(6), -- Lord Cuarry's Knight [16:26:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 8).Facing(6), -- Lord Cuarry's Knight [16:26:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 7).Facing(5), -- Lord Cuarry's Knight [16:26:34]
})
map_5_9.OnMapJoin({
    Event.TryStartTaskForMap(map_5_9),
})
map_5_9.OnTaskFinish({
    Event.OpenPortal(portal_5_9_to_4_9),
    Event.OpenPortal(portal_5_9_to_6_9),
})
---

--- Map 4_9
map_4_9.OnMapJoin({
    Event.TryStartTaskForMap(map_4_9),
})
---

--- Map 4_8
map_4_8.AddMonsters({
    Monster.CreateWithVnum(120).At(15, 20).Facing(1), -- Rookie Koaren Warrior [16:27:14]
    Monster.CreateWithVnum(120).At(15, 13).Facing(0), -- Rookie Koaren Warrior [16:27:14]
    Monster.CreateWithVnum(120).At(15, 9).Facing(3), -- Rookie Koaren Warrior [16:27:14]
    Monster.CreateWithVnum(117).At(11, 17).Facing(3), -- Rookie Koaren Archer [16:27:14]
    Monster.CreateWithVnum(114).At(11, 8).Facing(3), -- Rookie Koaren Sword Fighter [16:27:14]
    Monster.CreateWithVnum(114).At(10, 20).Facing(1), -- Rookie Koaren Sword Fighter [16:27:14]
    Monster.CreateWithVnum(117).At(9, 23).Facing(7), -- Rookie Koaren Archer [16:27:14]
    Monster.CreateWithVnum(114).At(9, 10).Facing(4), -- Rookie Koaren Sword Fighter [16:27:14]
    Monster.CreateWithVnum(117).At(9, 6).Facing(3), -- Rookie Koaren Archer [16:27:14]
    Monster.CreateWithVnum(114).At(8, 17).Facing(3), -- Rookie Koaren Sword Fighter [16:27:14]
    Monster.CreateWithVnum(117).At(8, 12).Facing(0), -- Rookie Koaren Archer [16:27:14]
})
map_4_8.AddNpcs({
    MapNpc.CreateNpcWithVnum(311).At(14, 23).Facing(6), -- Lord Cuarry's Knight [16:27:13]
    MapNpc.CreateNpcWithVnum(311).At(14, 20).Facing(5), -- Lord Cuarry's Knight [16:27:13]
    MapNpc.CreateNpcWithVnum(311).At(14, 16).Facing(3), -- Lord Cuarry's Knight [16:27:13]
    MapNpc.CreateNpcWithVnum(311).At(14, 13).Facing(6), -- Lord Cuarry's Knight [16:27:13]
    MapNpc.CreateNpcWithVnum(311).At(14, 9).Facing(0), -- Lord Cuarry's Knight [16:27:13]
    MapNpc.CreateNpcWithVnum(311).At(14, 6).Facing(4), -- Lord Cuarry's Knight [16:27:13]
})
map_4_8.OnMapJoin({
    Event.TryStartTaskForMap(map_4_8),
})
map_4_8.OnTaskFinish({
    Event.OpenPortal(portal_4_8_to_4_9),
    Event.OpenPortal(portal_4_8_to_3_8),
    Event.AddTime(150),
})
---

--- Map 3_8
map_3_8.OnMapJoin({
    Event.TryStartTaskForMap(map_3_8),
})
---

--- Map 2_8
map_2_8.AddMonsters({
    Monster.CreateWithVnum(120).At(14, 19).Facing(7), -- Rookie Koaren Warrior [16:27:35]
    Monster.CreateWithVnum(120).At(14, 11).Facing(7), -- Rookie Koaren Warrior [16:27:35]
    Monster.CreateWithVnum(114).At(11, 22).Facing(0), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(114).At(11, 21).Facing(7), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(114).At(11, 17).Facing(0), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(114).At(11, 14).Facing(4), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(114).At(11, 10).Facing(3), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(114).At(11, 7).Facing(4), -- Rookie Koaren Sword Fighter [16:27:35]
    Monster.CreateWithVnum(120).At(8, 17).Facing(6), -- Rookie Koaren Warrior [16:27:35]
    Monster.CreateWithVnum(120).At(8, 15).Facing(5), -- Rookie Koaren Warrior [16:27:35]
    Monster.CreateWithVnum(120).At(8, 11).Facing(5), -- Rookie Koaren Warrior [16:27:35]
    Monster.CreateWithVnum(117).At(6, 8).Facing(2), -- Rookie Koaren Archer [16:27:35]
    Monster.CreateWithVnum(117).At(5, 13).Facing(0), -- Rookie Koaren Archer [16:27:35]
    Monster.CreateWithVnum(117).At(5, 11).Facing(0), -- Rookie Koaren Archer [16:27:35]
    Monster.CreateWithVnum(117).At(4, 13).Facing(6), -- Rookie Koaren Archer [16:27:35]
})
map_2_8.AddNpcs({
    MapNpc.CreateNpcWithVnum(311).At(15, 23).Facing(3), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 22).Facing(7), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 21).Facing(2), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 18).Facing(1), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 14).Facing(1), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 9).Facing(6), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 7).Facing(2), -- Lord Cuarry's Knight [16:27:34]
    MapNpc.CreateNpcWithVnum(311).At(15, 6).Facing(6), -- Lord Cuarry's Knight [16:27:34]
})
map_2_8.OnMapJoin({
    Event.TryStartTaskForMap(map_2_8),
})
map_2_8.OnTaskFinish({
    Event.OpenPortal(portal_2_8_to_3_8),
    Event.OpenPortal(portal_2_8_to_2_7),
    Event.AddTime(100),
})
---

--- Map 2_7
map_2_7.OnMapJoin({
    Event.TryStartTaskForMap(map_2_7),
})
---

--- Map 3_7
map_3_7.AddMonsters({
    Monster.CreateWithVnum(114).At(22, 13).Facing(4), -- Rookie Koaren Sword Fighter [16:28:03]
    Monster.CreateWithVnum(114).At(22, 12).Facing(2), -- Rookie Koaren Sword Fighter [16:28:03]
    Monster.CreateWithVnum(114).At(22, 10).Facing(5), -- Rookie Koaren Sword Fighter [16:28:03]
    Monster.CreateWithVnum(114).At(20, 13).Facing(6), -- Rookie Koaren Sword Fighter [16:28:03]
    Monster.CreateWithVnum(117).At(19, 12).Facing(0), -- Rookie Koaren Archer [16:28:03]
    Monster.CreateWithVnum(117).At(14, 23).Facing(0), -- Rookie Koaren Archer [16:28:03]
    Monster.CreateWithVnum(120).At(14, 21).Facing(7), -- Rookie Koaren Warrior [16:28:03]
    Monster.CreateWithVnum(120).At(14, 19).Facing(4), -- Rookie Koaren Warrior [16:28:03]
    Monster.CreateWithVnum(120).At(14, 15).Facing(6), -- Rookie Koaren Warrior [16:28:03]
    Monster.CreateWithVnum(120).At(14, 12).Facing(0), -- Rookie Koaren Warrior [16:28:03]
    Monster.CreateWithVnum(120).At(14, 8).Facing(6), -- Rookie Koaren Warrior [16:28:03]
    Monster.CreateWithVnum(117).At(14, 8).Facing(0), -- Rookie Koaren Archer [16:28:03]
    Monster.CreateWithVnum(117).At(14, 6).Facing(7), -- Rookie Koaren Archer [16:28:03]
})
map_3_7.AddNpcs({
    MapNpc.CreateNpcWithVnum(311).At(12, 16).Facing(1), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(11, 13).Facing(1), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(10, 23).Facing(3), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(10, 6).Facing(3), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(9, 21).Facing(3), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(9, 18).Facing(7), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(9, 15).Facing(7), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(9, 11).Facing(7), -- Lord Cuarry's Knight [16:28:02]
    MapNpc.CreateNpcWithVnum(311).At(9, 8).Facing(0), -- Lord Cuarry's Knight [16:28:02]
})
map_3_7.AddObjects({
    MapObject.CreateOldBox().At(8, 16), -- [16:28:02]
})
map_3_7.OnMapJoin({
    Event.TryStartTaskForMap(map_3_7),
})
map_3_7.OnTaskFinish({
    Event.OpenPortal(portal_3_7_to_2_7),
    Event.OpenPortal(portal_3_7_to_4_7),
    Event.AddTime(150),
})
---

--- Map 4_7
map_4_7.OnMapJoin({
    Event.TryStartTaskForMap(map_4_7),
})
---

--- Map 5_7
map_5_7.AddMonsters({
    Monster.CreateWithVnum(120).At(22, 13).Facing(3), -- Rookie Koaren Warrior [16:28:25]
    Monster.CreateWithVnum(120).At(17, 13).Facing(2), -- Rookie Koaren Warrior [16:28:25]
    Monster.CreateWithVnum(120).At(11, 7).Facing(6), -- Rookie Koaren Warrior [16:28:25]
    Monster.CreateWithVnum(120).At(12, 21).Facing(7), -- Rookie Koaren Warrior [16:28:25]
    Monster.CreateWithVnum(120).At(9, 14).Facing(6), -- Rookie Koaren Warrior [16:28:25]
})
map_5_7.AddNpcs({
    MapNpc.CreateNpcWithVnum(311).At(23, 14).Facing(5), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(20, 13).Facing(0), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(15, 18).Facing(6), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(14, 23).Facing(0), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(14, 21).Facing(5), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(12, 6).Facing(7), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(10, 19).Facing(2), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(7, 14).Facing(5), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(8, 13).Facing(6), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(10, 5).Facing(0), -- Lord Cuarry's Knight [16:28:25]
    MapNpc.CreateNpcWithVnum(311).At(9, 6).Facing(4), -- Lord Cuarry's Knight [16:28:25]
})
map_5_7.OnMapJoin({
    Event.TryStartTaskForMap(map_5_7),
})
map_5_7.OnTaskFinish({
    Event.OpenPortal(portal_5_7_to_5_6),
})
---

--- Map 5_6
map_5_6.AddMonsters({
    Monster.CreateWithVnum(338).At(14, 19).Facing(2).WithCustomLevel(30), -- Knight [16:28:38]
    Monster.CreateWithVnum(338).At(14, 18).Facing(3).WithCustomLevel(30), -- Knight [16:28:38]
    Monster.CreateWithVnum(338).At(14, 10).Facing(6).WithCustomLevel(30), -- Knight [16:28:38]
    Monster.CreateWithVnum(338).At(13, 16).Facing(5).WithCustomLevel(30), -- Knight [16:28:38]
    Monster.CreateWithVnum(338).At(13, 14).Facing(0).WithCustomLevel(30), -- Knight [16:28:38]
    Monster.CreateWithVnum(338).At(13, 12).Facing(2).WithCustomLevel(30), -- Knight [16:28:38]
})
map_5_6.AddNpcs({
    MapNpc.CreateNpcWithVnum(318).At(10, 15).Facing(3).WithMustProtectAura().WithFollowPlayer(), -- Tom [16:28:36]
})
map_5_6.OnMapJoin({
    Event.TryStartTaskForMap(map_5_6),
})
map_5_6.OnTaskFinish({
    Event.OpenPortal(portal_5_6_to_6_6),
    Event.AddTime(150),
})
---

--- Map 6_6
map_6_6.AddMonsters({
    Monster.CreateWithVnum(338).At(12, 22).Facing(4).WithCustomLevel(30), -- Knight [16:28:52]
    Monster.CreateWithVnum(338).At(12, 20).Facing(6).WithCustomLevel(30), -- Knight [16:28:52]
    Monster.CreateWithVnum(338).At(12, 16).Facing(3).WithCustomLevel(30), -- Knight [16:28:52]
    Monster.CreateWithVnum(338).At(12, 12).Facing(3).WithCustomLevel(30), -- Knight [16:28:52]
    Monster.CreateWithVnum(338).At(12, 9).Facing(2).WithCustomLevel(30), -- Knight [16:28:52]
})
map_6_6.OnMapJoin({
    Event.TryStartTaskForMap(map_6_6),
})
map_6_6.OnTaskFinish({
    Event.OpenPortal(portal_6_6_to_7_6),
})
---

--- Map 7_6
map_7_6.AddMonsters({
    Monster.CreateWithVnum(338).At(13, 16).Facing(7).WithCustomLevel(30), -- Knight [16:29:04]
    Monster.CreateWithVnum(338).At(15, 11).Facing(2).WithCustomLevel(30), -- Knight [16:29:04]
    Monster.CreateWithVnum(338).At(10, 21).Facing(4).WithCustomLevel(30), -- Knight [16:29:04]
    Monster.CreateWithVnum(338).At(12, 12).Facing(5).WithCustomLevel(30), -- Knight [16:29:04]
    Monster.CreateWithVnum(338).At(12, 13).Facing(6).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:08]
    Monster.CreateWithVnum(338).At(12, 21).Facing(1).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:08]
    Monster.CreateWithVnum(338).At(13, 17).Facing(4).SpawnAfterMobsKilled(4).WithCustomLevel(30), -- Knight [16:29:10]
})
map_7_6.OnMapJoin({
    Event.TryStartTaskForMap(map_7_6),
})
map_7_6.OnTaskFinish({
    Event.OpenPortal(portal_7_6_to_7_7),
    Event.AddTime(100),
})
---

--- Map 7_7
map_7_7.AddMonsters({
    Monster.CreateWithVnum(338).At(14, 21).Facing(0).WithCustomLevel(30), -- Knight [16:29:18]
    Monster.CreateWithVnum(338).At(11, 18).Facing(0).WithCustomLevel(30), -- Knight [16:29:18]
    Monster.CreateWithVnum(338).At(10, 21).Facing(3).WithCustomLevel(30), -- Knight [16:29:18]
    Monster.CreateWithVnum(338).At(7, 16).Facing(5).WithCustomLevel(30), -- Knight [16:29:18]
    Monster.CreateWithVnum(338).At(15, 18).Facing(2).SpawnAfterMobsKilled(2).WithCustomLevel(30), -- Knight [16:29:21]
    Monster.CreateWithVnum(338).At(19, 11).Facing(7).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:22]
    Monster.CreateWithVnum(338).At(20, 13).Facing(1).SpawnAfterMobsKilled(4).WithCustomLevel(30), -- Knight [16:29:24]
    Monster.CreateWithVnum(338).At(23, 12).Facing(6).SpawnAfterMobsKilled(5).WithCustomLevel(30), -- Knight [16:29:25]
    Monster.CreateWithVnum(338).At(23, 13).Facing(6).SpawnAfterMobsKilled(5).WithCustomLevel(30), -- Knight [16:29:25]
})
map_7_7.OnMapJoin({
    Event.TryStartTaskForMap(map_7_7),
})
map_7_7.OnTaskFinish({
    Event.OpenPortal(portal_7_7_to_7_8),
})
---

--- Map 7_8
map_7_8.AddMonsters({
    Monster.CreateWithVnum(338).At(13, 17).Facing(1).WithCustomLevel(30), -- Knight [16:29:35]
    Monster.CreateWithVnum(338).At(9, 20).Facing(4).WithCustomLevel(30), -- Knight [16:29:35]
    Monster.CreateWithVnum(338).At(9, 17).Facing(0).WithCustomLevel(30), -- Knight [16:29:35]
    Monster.CreateWithVnum(338).At(13, 20).Facing(3).SpawnAfterMobsKilled(2).WithCustomLevel(30), -- Knight [16:29:38]
    Monster.CreateWithVnum(338).At(17, 12).Facing(0).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:40]
    Monster.CreateWithVnum(338).At(18, 13).Facing(2).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:40]
    Monster.CreateWithVnum(338).At(21, 12).Facing(1).SpawnAfterMobsKilled(3).WithCustomLevel(30), -- Knight [16:29:40]
    Monster.CreateWithVnum(338).At(23, 12).Facing(1).SpawnAfterMobsKilled(5).WithCustomLevel(30), -- Knight [16:29:43]
})
map_7_8.AddObjects({
    MapObject.CreateOldBox().At(11, 15), -- [16:29:35]
})
map_7_8.OnMapJoin({
    Event.TryStartTaskForMap(map_7_8),
})
map_7_8.OnTaskFinish({
    Event.OpenPortal(portal_7_8_to_7_9),
})
---

--- Map 7_9
map_7_9.OnMapJoin({
    Event.TryStartTaskForMap(map_7_9),
})
map_7_9.OnTaskFinish({
    Event.OpenPortal(portal_7_9_to_UNKNOWN),
})
---

local ts = TimeSpace.Create(22)  -- TimeSpace ID
    .SetMaps({map_6_9, map_5_9, map_4_9, map_4_8, map_3_8, map_2_8, map_2_7, map_3_7, map_4_7, map_5_7, map_5_6, map_6_6, map_7_6, map_7_7, map_7_8, map_7_9})
    .SetSpawn(Location.InMap(map_6_9).At(12, 9))
    .SetLives(3)
    .SetObjectives(objectives)
    .SetDurationInSeconds(300)
    .SetBonusPointItemDropChance(5000)
    .SetObtainablePartner(318) -- Tom
return ts
