mmoSequence
{
	steps
	{
		mmoStepCommand
		{
			command "MessageTo SoftwareStatus LockLevelUp";
		}
		mmoStepCommand
		{
			command "MessageTo Hud LockMode Off";
		}
		mmoStepCommand
		{
			command "MessageTo Hud Tutorial 1";
		}
		mmoStepWait
		{
			duration 1.0
		}
		mmoStepMessage
		{
			id "welcome";
			windowName "tutorial_message";
			text "Welcome to MMORPG Tycoon 2!\n\nPress 'OK' below to begin.  We'll cover basic movement, and then set up a bare bones game.";
		}
		mmoStepLockItems
		{
			lock true
			except Menu
		}
		mmoStepMessage
		{
			id "wasd";
			windowName "tutorial_action";
			type "move"
			text "Let's start with some basics.\n\nUse the WASD or arrow keys to move the camera.";
		}
		mmoStepWait
		{
			duration 1.0
		}
		mmoStepMessage
		{
			id "zoom";
			windowName "tutorial_action";
			type "zoomin"
			text "Next, let's get a closer view.\n\nYou can zoom in and out by scrolling the mouse wheel.\n\nZoom down to ground level, to continue.";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepMessage
		{
			id "rotate";
			windowName "tutorial_action";
			type "rotate"
			text "You can also rotate the camera.\n\nWhile holding the right mouse button, move the mouse to rotate the view.";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepMessage
		{
			id "zoomout";
			windowName "tutorial_action";
			type "zoomout"
			text "Great!  Zoom out to view the whole map again, and we'll start looking at more of the game's interface.";
		}
		mmoStepCommand
		{
			command "MessageTo Hud LockMode \"Tutorial_01\"";
		}
		mmoStepWait
		{
			duration 0.5;
		}
		mmoStepMessage
		{
			id "mainheader";
			windowName "tutorial_message";
			anchorTo "mainheader";
			text "This is the main status display.  It tells you the name of your MMORPG, and some core information about it.\n\nRight now you don't have any subscribers, but we'll fix that soon!";
		}
		mmoStepCommand
		{
			command "MessageTo Hud LockMode \"Tutorial_02\"";
		}
		mmoStepLockItems
		{
			lock true
		}
		mmoStepWait
		{
			duration 0.5;
		}
		mmoStepMessage
		{
			id "pregrid";
			windowName "tutorial_message";
			anchorTo "system_buttons";
			text "These are the system buttons;  they provide information and access to design options, and allow you to save your game.\n\nBy the way, this game autosaves periodically, and when you exit.  You can change that behaviour in the game settings, if you like.";
		}
		mmoStepCommand
		{
			command "MessageTo Hud UnlockMode Overview";
		}
		mmoStepWait
		{
			duration 0.5;
		}
		mmoStepMessage
		{
			id "actionbar";
			windowName "tutorial_message";
			anchorTo "Edit";
			text "This is your main action bar.  Your various tools for interacting with the world will appear here.\n\n(I've locked them all during this tutorial -- sorry about that!)";
		}
		mmoStepLockItems
		{
			lock true
			except OnGrid
			tab Grid
		}
		mmoStepMessage
		{
			id "grid";
			windowName "tutorial_action";
			type "view"
			viewMode "Grid"
			text "Before we can begin designing our world, we'll need to activate one of these regions to become a starting region for new players.\n\nLook around to find a region you'd like to use for that, and then go to the 'Grid' view by clicking the highlighted tab on the action bar.";
		}
		mmoStepLockItems
		{
			id "zone";
			lock true
			except BuyRegion
			tab Grid
		}
		mmoStepMessage
		{
			id "zone_2";
			windowName "tutorial_action";
			type "zoned"
			text "The grid view shows us the current status of the game's region servers.  Right now they're all disabled, so let's activate one as a starting region.\n\nSelect the highlighted 'Activate Region' tool, and click on a region to activate it."
		}
		mmoStepLockItems
		{
			lock true
		}
		mmoStepMessage
		{
			id "postzone";
			windowName "tutorial_message";
			text "The region you bought has turned green, and now has a number '1' in it.  This means that any content we build here will automatically be appropriate for characters of level 1.\n\nClick 'OK' to continue."
		}  
		mmoStepLockItems
		{
			lock true
			tab Interact
		}
		mmoStepMessage
		{
			id "ungrid";
			windowName "tutorial_action";
			type "view";
			viewMode "Map";
			text "Now that a region has been activated, let's go back to the main view.\n\nClick the 'Interact' tab to return to the normal game view.";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			tab Terrain
			except "Terrain 0" "Terrain 1" "Terrain 2" "Terrain 3"
		}
		mmoStepMessage
		{
			id "terrain";
			windowName "tutorial_message";
			text "If you'd like to adjust the terrain of the region, it's easiest to do it now, before we start building things.\n\nEach region has four terrain types that can be mixed within its borders.  Click on the 'Terrain' tab to see them, and feel free to experiment with them now. Click 'OK' when you're ready to continue.";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepMessage
		{
			id "respawn";
			windowName "tutorial_message";
			text "The first thing any region needs is a respawn point.  If a subscriber's character dies in combat, they'll automatically respawn from the closest respawn point.\n\nWhat's more, developers and game masters can move around the game via its respawn points."
		}
		mmoStepLockItems
		{
			lock true
			except "Respawns"
			tab "Buildings";
		}
		mmoStepMessage
		{
			id "respawn_02";
			windowName "tutorial_action";
			type "building";
			buildingFeature "Respawn";
			text "Since developers and game masters travel through respawn points;  having them near trouble spots can help your developers get work done more quickly!\n\nBuild a respawn point now, somewhere near the middle of the region.  You'll find the tool for placing one under the 'Buildings' tab."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			tab "Network";
		}
		mmoStepMessage
		{
			windowName "tutorial_action";
			type "view";
			viewMode "Network";
			text "Notice how the respawn point you placed is flashing red?  That's because it doesn't have a network connection yet!  Let's set one up.\n\nFirst, switch to the 'Network' view."
		}
		mmoStepWait
		{
			duration 1.0;
		}

		# OKAY, here I need to divert people to the 'Network' tab.
		mmoStepLockItems
		{
			lock true
			except "Build Uplink"
			tab "Network";
		}
		mmoStepMessage
		{
			id "uplink";
			windowName "tutorial_action";
			type "networkNode";
			networkType "Uplink";
			text "We have no network connection right now, so let's install a network uplink.  Use the highlighted tool to place one somewhere in this region.\n\nNetwork gear is laid out underneath the terrain.  If you're placing it under large trees, you might need to zoom in if you want a better view."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			except "Build Cable"
			tab "Network";
		}
		mmoStepMessage
		{
			id "cable";
			windowName "tutorial_action";
			text "Now that we have an uplink, we need to distribute the bandwidth it supplies!\n\nPlace a network cable using the highlighted tool, starting from the uplink.  You don't need to connect exactly to the respawn point;  as long as it's in the highlighted region around the cable, it's close enough!  Once bandwidth is running through the cable, it might take a few seconds for the respawn point to power up;  we'll continue once it's powered!"
			type "poweredBuilding";
			buildingFeature "Respawn";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			except "Inns" "Build Cable"
			tab "Buildings";
		}
		mmoStepMessage
		{
			id "inn";
			windowName "tutorial_action";
			type "poweredBuilding";
			buildingFeature "Inn";
			text "Next, let's build an inn somewhere near the respawn point.  Players will want to set a 'home' wherever they go, so you'll need at least one inn in each region you use.  Place one now.\n\nRemember to make sure it has bandwidth available!  You can place more network cables if you need them."
		}
		mmoStepMessage
		{
			id "inn_2";
			windowName "tutorial_message";
			text "Did you notice the little red cursor arrow which travelled to the Inn after you built it?  That was one of your developers, turning it on.  Developers need to visit every building you construct to enable them, and they travel via the nearest respawn point.  If your respawn points are very far away, this can take some time!"
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			except "Shops" "Build Cable"
			tab "Buildings";
		}
		mmoStepMessage
		{
			id "blacksmith";
			windowName "tutorial_action";
			type "poweredBuilding";
			buildingFeature "Blacksmith";
			text "Let's build a blacksmith near the inn.  Once players have some money, they will want to buy better weapons!\n\nAs before, place the blacksmith.  The network cabling controls are still enabled too, if you need to wire more bandwidth over to where you put the blacksmith."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			tab "Buildings";
		}
		mmoStepLockItems
		{
			lock true
			except "Shops" "Build Cable"
			tab "Buildings";
		}
		mmoStepMessage
		{
			id "shop";
			windowName "tutorial_action";
			type "poweredBuilding";
			buildingFeature "Shop";
			text "Finally, let's build a shop.  Most of a player's gold comes from selling the vendor trash they take off defeated monsters.\n\nPlace a shop, and make sure it has bandwidth to continue."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			except "Landmarks" "Build Cable"
			tab "Buildings";
		}
		mmoStepMessage
		{
			id "landmark";
			windowName "tutorial_action";
			type "poweredBuilding";
			buildingFeature "Landmark";
			text "Players only know about places they've seen or heard about, but they can always see landmarks in the region, no matter how far away they are.\n\nPlace a landmark somewhere near your inn, so players can always see their way back home."
		}
		mmoStepLockItems
		{
			lock true
			tab "Buildings";
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepMessage
		{
			id "monsters";
			windowName "tutorial_message";
			text "Now we should create some monster zones!  Monster zones require quite a lot of bandwidth, particularly if they're big.  You may need to run some extra network cabling out through them, to keep them online.  Click 'OK' and we'll get started."
		}
		mmoStepLockItems
		{
			lock true
			except "Zone Monster" "Build Cable"
			tab "NPCs";
		}
		mmoStepMessage
		{
			id "monsters_2";
			windowName "tutorial_action";
			type "monsterZoneArea";
			text "Okay, I've enabled the monster zoning tools for you, under the 'NPCs' tab.  Create a few large monster zones; I recommend each be about as big as three or four map squares, but feel free to go larger if you want!\n\nYou'll need to pick what monster to use, and then paint out regions on the map."
			timesNeeded 100000;
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepMessage
		{
			id "monsters_3";
			windowName "tutorial_message";
			text "Feel free to keep editing monster zones until you feel like you have enough, then click 'Okay' to continue!"
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			except "Place QuestGiver"
			tab "NPCs";
		}
		mmoStepMessage
		{
			id "questgiver";
			windowName "tutorial_action";
			type "npc";
			npcType "QuestGiver";
			timesNeeded 2;
			text "Finally, let's place a few quest giver NPCs.  Quest givers are how you give your subscribers things to do, which helps keep them from feeling lost!\n\nPlace two quest givers a little in front of your Inn, so players are likely to notice them."
		}
		mmoStepMessage
		{
			id "questgiver_2";
			windowName "tutorial_message";
			text "You can edit your quest givers' quests, if you click on them and check their 'Quests' tab.  Feel free to play with that if you like!  Subscribers only have to kill about four monsters to reach level 2.\n\nClick 'OK' to continue."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
			tab "Paths"
			except "Build Road";
		}
		mmoStepMessage
		{
			id "roads";
			windowName "tutorial_message";
			text "Almost done!\n\nLet's think about roads for a minute.  When a subscriber wants to go somewhere, they'll usually just run straight there, and this can send them through dangerous areas.  If you place roads, players will usually follow them, instead of cutting through areas.\n\nTry placing a few roads, using the road-building tool now highlighted."
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock true
		}
		mmoStepMessage
		{
			id "graduation";
			windowName "tutorial_message";
			text "And that's the basics!  You should now have a fully functional starting region, and you're ready to release v1.0.0 of your game.  Click 'OK' to proceed."
		}
		mmoStepCommand
		{
			command "MessageTo SoftwareStatus UnlockLevelUp";
		}
		mmoStepCommand
		{
			command "MessageTo SoftwareStatus TutorialLevelUp";
		}
		mmoStepMessage
		{
			id "graduation";
			windowName "tutorial_action";
			text "Let's release the game and start getting subscribers!\n\nClick the 'Upgrade' button at the top left corner of the screen, and choose the 'Starting Point' perk, so we can let players into the game."
			type "version";
			version
			{
				major 1
				minor 0
				build 0
			}
		}
		mmoStepWait
		{
			duration 1.0;
		}
		mmoStepLockItems
		{
			lock false
		}
		mmoStepMessage
		{
			id "allDone";
			windowName "tutorial_message";
			text "You're all ready to go!  I've unlocked all your editing tools; have fun!\n\nWhen you're ready for subscribers to start joining, place a Starting Point somewhere near your Inn.\n\nPlacing a starting point is a new tool under the 'Buildings' tab."
		}
		mmoStepCommand
		{
			command "MessageTo Hud Tutorial 0";
		}
		mmoStepCommand
		{
			command "MessageTo Game TutorialComplete";
		}
		mmoStepSave
		{
			saveName "tutorial_complete";
		}
	}
}

