private void startLab02Tutorial ()
	{
		_lab02Visited = false;

		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "labvisit_02_dialogue_01_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -1.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.objectsToHighLight = new List < GameObject > ();

		foreach ( FLStorageContainerClass contatiner in FLFactoryRoomManager.getInstance ().storageContainersOnLevel )
		{
			if ( contatiner.type == FLStorageContainerClass.STORAGE_TYPE_PLASTIC )
			{
				tutorialStep.objectsToHighLight.Add ( contatiner.containerObject );
				break;
			}
		}
		tutorialStep.turnOffPreviousHeighlightOnEnd = true;
		tutorialStep.delayShowTutorialBox = 1.5f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "labvisit_02_dialogue_02_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -1.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.objectsToHighLight = new List < GameObject > ();
		
		foreach ( FLStorageContainerClass contatiner in FLFactoryRoomManager.getInstance ().storageContainersOnLevel )
		{
			if ( contatiner.type == FLStorageContainerClass.STORAGE_TYPE_VINES )
			{
				tutorialStep.objectsToHighLight.Add ( contatiner.containerObject );
				break;
			}
		}
		tutorialStep.turnOffPreviousHeighlightOnEnd = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "labvisit_02_dialogue_03_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -1.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.objectsToHighLight = new List < GameObject > ();
		
		foreach ( FLStorageContainerClass contatiner in FLFactoryRoomManager.getInstance ().storageContainersOnLevel )
		{
			if ( contatiner.type == FLStorageContainerClass.STORAGE_TYPE_RECHARGEOCORE )
			{
				tutorialStep.objectsToHighLight.Add ( contatiner.containerObject );
				break;
			}
		}
		tutorialStep.turnOffPreviousHeighlightOnEnd = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_MINER_1_IDLE;
		tutorialStep.frameTextKey = "labvisit_02_dialogue_04_Miner";
		tutorialStep.framePosition = new Vector3 ( 0f, -1.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		tutorialStep.customLineLength = 28;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "labvisit_02_dialogue_05_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -1.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		if (! GameGlobalVariables.CUT_DOWN_GAME ) tutorialStep.triggerLabVisit02AfterACtions = true;
		//Daves Step
		//tutorialStep.type = TUTORIAL_OBJECT_TYPE_REMOVE_MAP_ARROW;
		if(GameObject.Find ("jumpingArrowMap(Clone)") != null)
		{
			Destroy (GameObject.Find ("jumpingArrowMap(Clone)"));
		}
		//Daves Step
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		FLGlobalVariables.TUTORIAL_MENU = true;
	}
	private void startLab01Tutorial ()
	{
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_1_faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.delayShowTutorialBox = 2.5f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_2_general";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT_UI;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.tapObject = FLUIControl.getInstance ().transform.Find ( "FactoryRoomButton" ).gameObject;
		tutorialStep.arrowBigFactor = 2f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 03
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_3_faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 04
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_4_faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, 3.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.arrowBigFactor = 2f;
		tutorialStep.objectsToHighLight = new List < GameObject > ();
		
		tutorialStep.objectsToHighLight.Add ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject );

		_currentTutorialSteps.Add ( tutorialStep );
		tutorialStep.tapObject = FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject;
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 05
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_5_general";
		tutorialStep.framePosition = new Vector3 ( 0f, 3f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_DRAG_MOM_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.arrowBigFactor = 2f;
		tutorialStep.fromTutorial = true;
		List < int[] > targetTiles = new List<int[]> ();
		targetTiles.Add ( new int[2] { Mathf.RoundToInt ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.position.x ), Mathf.RoundToInt ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.position.z + 2f )});
		tutorialStep.targetTiles = targetTiles;	
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 06
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_6_general";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT_UI_THAT_ACTIVATES_WHEN_SHOW_UP;
		tutorialStep.arrowBigFactor = 2f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 07
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_7_general";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP_FIRST_READY_MOM_OBJECT;
		tutorialStep.closeMoMPanel = true;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.arrowBigFactor = 2f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 08
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_8_faradaydo";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT_UI;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		//tutorialStep.type = TUTORIAL_OBJECT_TYPE_CLOSE_MOM_UI;
		tutorialStep.tapObject = FLUIControl.getInstance ().transform.Find ( "MissionRoomButton" ).gameObject;
		tutorialStep.arrowBigFactor = 2f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 09
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_9_general";
		tutorialStep.framePosition = new Vector3 ( 0f, 3.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT_LAB;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;
		tutorialStep.arrowBigFactor = 2f;
		tutorialStep.arrowFromAbove = false;
		tutorialStep.customLineLength = 60;
		//Daves Step
		//tutorialStep.type = TUTORIAL_OBJECT_TYPE_REMOVE_MAP_ARROW;
		if(GameObject.Find ("jumpingArrowMap(Clone)") != null)
		{
			Destroy (GameObject.Find ("jumpingArrowMap(Clone)"));
		}
		//Daves Step
		tutorialStep.tapObject = FLMissionRoomManager.getInstance ().missionTableOnLevel;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		FLGlobalVariables.TUTORIAL_MENU = true;
	}
	public void triggerGeneralDialogForMiningTutorial ()
	{
		_currentTutorialSteps = new List < TutorialStepsClass > ();
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_MINER_1_IDLE;
		tutorialStep.frameTextKey = "minelevel_01_tutorialdialogue_03_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 3.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT02;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;
		
		tutorialStep.objectsToHighLight = new List < GameObject > ();
		tutorialStep.objectsToHighLight.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][6][1] );
		tutorialStep.objectsToHighLight.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][10][0] );
		tutorialStep.objectsToHighLight.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][9][2] );
		tutorialStep.objectsToHighLight.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][9][4] );

		tutorialStep.heighLightWithArrow = true;
		tutorialStep.fromMiningTutorial = true;

		tutorialStep.maximumCameraZoom = true;
		tutorialStep.customNumberOfCharsInTheLine = 75;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_MINER_1_IDLE;
		tutorialStep.frameTextKey = "minelevel_01_tutorialdialogue_04_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 3.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT02;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;

		tutorialStep.heighLightWithArrow = true;

		tutorialStep.objectsToHighLight = new List < GameObject > ();
		tutorialStep.objectsToHighLight.Add ( GameObject.Find ( "Background" ).transform.Find ( "exitArea" ).gameObject );
		tutorialStep.maximumCameraZoom = true;
		tutorialStep.customNumberOfCharsInTheLine = 75;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		MNGlobalVariables.TUTORIAL_MENU = true;
		_currentTutorialStepID = 0;
		_turnOnTriggerGEneralDialgoButton = true;
	}
	public void triggerGeneralDialogForMining02Tutorial ()
	{
		_currentTutorialSteps = new List < TutorialStepsClass > ();
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_BOZ_1_IDLE;
		tutorialStep.frameTextKey = "minelevel_02_tutorialdialogue_01_Boz";
		tutorialStep.framePosition = new Vector3 ( 0f, 2.5f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		MNGlobalVariables.TUTORIAL_MENU = true;
		_currentTutorialStepID = 0;
		_turnOnTriggerGEneralDialgoButton = true;
	}
	void Update () 
	{
		if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.RESCUE && ! GlobalVariables.TUTORIAL_MENU ) return;
		if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.LABORATORY && ! FLGlobalVariables.TUTORIAL_MENU ) return;
		if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.MINING && ! MNGlobalVariables.TUTORIAL_MENU) return;

		if ( _countTimeStarted )
		{
			_countTimeToStartTutorialBox -= Time.deltaTime;
			if ( _countTimeToStartTutorialBox <= 0f )
			{
				_countTimeStarted = false;
				_waitUntilSomeTimeBeforeNextStep = true;
				createTutorialObject ( _currentTutorialSteps[_currentTutorialStepID] );
				_currentTutorialStep = _currentTutorialSteps[_currentTutorialStepID];
				
				if ( _currentTutorialStep.type == TUTORIAL_OBJECT_TYPE_DUMMY )
				{
					if ( _currentTutorialStep.fromTutorial )
					{
						TimerControl.getInstance ().startTimer ( true );
					}
				}
				
				StartCoroutine ( "waitUntilSomeTimeBeforeNextStep" );
			}
		}

		if ( ! _waitUntilSomeTimeBeforeNextStep && ! _waitUntilThisUIComboIsOff && _currentTutorialStepID < _currentTutorialSteps.Count && _currentTutorialSteps[_currentTutorialStepID] != _currentTutorialStep )
		{
			if ( ! _countTimeStarted && _currentTutorialSteps[_currentTutorialStepID].delayShowTutorialBox != 0f )
			{
				_countTimeToStartTutorialBox = _currentTutorialSteps[_currentTutorialStepID].delayShowTutorialBox;
				_countTimeStarted = true;
			}
			else if ( _currentTutorialSteps[_currentTutorialStepID].delayShowTutorialBox == 0f )
			{
				_waitUntilSomeTimeBeforeNextStep = true;
				createTutorialObject ( _currentTutorialSteps[_currentTutorialStepID] );
				_currentTutorialStep = _currentTutorialSteps[_currentTutorialStepID];

				if ( _currentTutorialStep.type == TUTORIAL_OBJECT_TYPE_DUMMY )
				{
					if ( _currentTutorialStep.fromTutorial == true )
					{
						TimerControl.getInstance ().startTimer ( true );
					}
				}

				StartCoroutine ( "waitUntilSomeTimeBeforeNextStep" );
			}
		}
		else if ( _currentTutorialStepID >= _currentTutorialSteps.Count )
		{
			if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.RESCUE )
			{
				GlobalVariables.TUTORIAL_MENU = false;
				TimerControl.getInstance ().startTimer ( true );

				TriggerDialogueControl.getInstance ().turnOn ();
			}
			else if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.LABORATORY )
			{
				if ( _currentTutorialSteps[_currentTutorialSteps.Count - 1].triggerLabVisit02AfterACtions && ! _lab02Visited )
				{
					_lab02Visited = true;
					FLUIControl.getInstance ().triggerActionOnLab02VistTutorial ();
				}
				
				FLGlobalVariables.TUTORIAL_MENU = false;
			}
			else if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.MINING )
			{
				MNGlobalVariables.TUTORIAL_MENU = false;
				MNSpawningEnemiesManager.getInstance ().startSpawn = true;

				if ( _turnOnTriggerGEneralDialgoButton )
				{
					_turnOnTriggerGEneralDialgoButton = false;
					MNTriggerDialogControl.getInstance ().turnOn ();
				}
			}
		}
	}
	public void triggerDialogForMiningTutorialTooMuchVines ()
	{
		_currentTutorialSteps = new List < TutorialStepsClass > ();
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_MINER_1_IDLE;
		tutorialStep.frameTextKey = "mine_level_storage_full_vines";
		tutorialStep.framePosition = new Vector3 ( 0f, 0f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;
		tutorialStep.customNumberOfCharsInTheLine = 75;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		MNGlobalVariables.TUTORIAL_MENU = true;
		_currentTutorialStepID = 0;
	}
	private void createTutorialObject ( TutorialStepsClass tutorialStep )
	{
		GameObject tutorialUIComboObject = null;
		if ( tutorialStep.type != TUTORIAL_OBJECT_TYPE_DESTROY_OBJECTS && tutorialStep.type != TUTORIAL_OBJECT_TYPE_DUMMY && ! tutorialStep.preservePreviousTutorialBox )
		{
			tutorialUIComboObject = ( GameObject ) Instantiate ( tutorialComboUIPrefabs[tutorialStep.tutorialBoxType], Vector3.zero, tutorialComboUIPrefabs[0].transform.rotation );

			//tutorialUIComboObject.GetComponent < ScaleUIElementControl > ().scalePosition = true;

			tutorialUIComboObject.transform.parent = Camera.main.transform;
			tutorialUIComboObject.transform.localPosition = new Vector3 ( 0f, tutorialStep.framePosition.y, tutorialStep.framePosition.z ) + Vector3.forward * 3f;
			if ( tutorialStep.textureAfterText != null )
			{
				tutorialUIComboObject.transform.Find ( "textureAfterText" ).renderer.material.mainTexture = tutorialStep.textureAfterText;
				tutorialUIComboObject.transform.Find ( "textureAfterText" ).renderer.enabled = true;
			}

			if ( tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ()) tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().myKey = tutorialStep.frameTextKey;
			
			switch ( tutorialStep.tutorialBoxType )
			{
				case TUTORIAL_COMBO_UI_CHARACTER_01:
				case TUTORIAL_COMBO_UI_CHARACTER_02:
					tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().lineLength = 35;
					break;
				case TUTORIAL_COMBO_UI_DEMI:
				case TUTORIAL_COMBO_UI_FULL:
					if ( tutorialStep.customNumberOfCharsInTheLine != 0 ) tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().lineLength = tutorialStep.customNumberOfCharsInTheLine;
					else tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().lineLength = 50;
					break;
				case TUTORIAL_COMBO_UI_DEMI_WITH_TEXTURES:
					tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().lineLength = 50;
					tutorialUIComboObject.transform.Find ( "texture01" ).renderer.material.mainTexture = tutorialStep.texture01;
					tutorialUIComboObject.transform.Find ( "texture02" ).renderer.material.mainTexture = tutorialStep.texture02;
					break;
			}

			if ( tutorialStep.customLineLength != 0 )
			{
				tutorialUIComboObject.transform.Find ( "frameText" ).GetComponent < GameTextControl > ().lineLength = tutorialStep.customLineLength;
			}

			
			if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.RESCUE )
			{
				if ( tutorialUIComboObject.transform.Find ( "speaker" ) != null ) 
				{
					tutorialUIComboObject.transform.Find ( "speaker" ).renderer.material.mainTexture = LevelControl.getInstance ().gameElements[tutorialStep.characterID];
					if ( tutorialStep.characterID == GameElements.CHAR_CORA_1_IDLE )
					{
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale *= 1.5f;
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.position += Vector3.forward * 0.7f;
					}
				}
			}
			else if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.LABORATORY )
			{
				if ( tutorialUIComboObject.transform.Find ( "speaker" ) != null ) 
				{
					tutorialUIComboObject.transform.Find ( "speaker" ).renderer.material.mainTexture = FLLevelControl.getInstance ().gameElements[tutorialStep.characterID];
					if ( tutorialStep.characterID == GameElements.CHAR_CORA_1_IDLE )
					{
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale *= 1.5f;
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.position += Vector3.forward * 0.7f;
					}
				}
			}
		
			else if ( GameGlobalVariables.CURRENT_GAME_PART == GameGlobalVariables.MINING )
			{
				if ( tutorialUIComboObject.transform.Find ( "speaker" ) != null ) 
				{
					tutorialUIComboObject.transform.Find ( "speaker" ).renderer.material.mainTexture = MNLevelControl.getInstance ().gameElements[tutorialStep.characterID];
					if ( tutorialStep.characterID == GameElements.CHAR_CORA_1_IDLE )
					{
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale *= 1.5f;
						//tutorialUIComboObject.transform.Find ( "speaker" ).transform.position += Vector3.forward * 0.7f;
					}
				}

				if ( tutorialUIComboObject.transform.Find ( "speaker" ) != null ) 
				{
					tutorialUIComboObject.transform.Find ( "speaker" ).renderer.material.mainTexture = MNLevelControl.getInstance ().gameElements[tutorialStep.characterID];
					if ( tutorialStep.characterID == GameElements.CHAR_BOZ_1_IDLE )
					{
						tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale = new Vector3 ( tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale.x * 1.2f, tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale.y, tutorialUIComboObject.transform.Find ( "speaker" ).transform.localScale.z );
					}
				}
			}
			
			setAlphaToZero ( tutorialUIComboObject );
			
			//iTween.MoveFrom ( tutorialUIComboObject, iTween.Hash ( "time", 0.6f, "easetype", iTween.EaseType.easeOutExpo, "position", tutorialUIComboObject.transform.position + Vector3.forward * 10f ));
		}
		else if ( tutorialStep.preservePreviousTutorialBox )
		{
			tutorialUIComboObject = getCurrentTutorialUICombo ();
		}

		if ( tutorialStep.refillTile != null )
		{
			LevelControl.getInstance ().levelGrid[LevelControl.GRID_LAYER_NORMAL][tutorialStep.refillTile[0]][tutorialStep.refillTile[1]] = GameElements.EMPTY;
			LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][tutorialStep.refillTile[0]][tutorialStep.refillTile[1]] = null;
			tutorialStep.refillTile = null;
		}
		
		switch ( tutorialStep.type )
		{
			case TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT:
				tutorialUIComboObject.transform.Find ( "frame" ).gameObject.AddComponent < TutorialFrameTapControl > ();
				_currentHighlightedSelectedComponenents = new List < SelectedComponenent > ();
				foreach ( GameObject toHighlightObject in tutorialStep.objectsToHighLight )
				{
					_currentHighlightedSelectedComponenents.Add ( toHighlightObject.transform.Find ( "tile" ).GetComponent < SelectedComponenent > ());
				}
			
				foreach ( SelectedComponenent toHighlightObjectsSelectedComponent in _currentHighlightedSelectedComponenents )
				{
					toHighlightObjectsSelectedComponent.setSelectedForTutorial ( true, true, true, true );
				}
			
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = true;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = true;
				break;
			case TUTORIAL_OBJECT_TYPE_TAP_AND_HIGHLIGHT02:
				tutorialUIComboObject.transform.Find ( "frame" ).gameObject.AddComponent < TutorialFrameTapControl > ();
				_currentHighlightedSelectedComponenents = new List < SelectedComponenent > ();
				foreach ( GameObject toHighlightObject in tutorialStep.objectsToHighLight )
				{
				//======================================Daves Edit========================================
					if(toHighlightObject != null)
					{
						if (  toHighlightObject.transform.Find ( "tile" ) != null )
						{
							_currentHighlightedSelectedComponenents.Add ( toHighlightObject.transform.Find ( "tile" ).GetComponent < SelectedComponenent > ());
						}
						else
						{
							_currentHighlightedSelectedComponenents.Add ( toHighlightObject.GetComponent < SelectedComponenent > ());
						}
					}
				//======================================Daves Edit========================================
				}

			if ( tutorialStep.fromMiningTutorial )
			{
				for ( int i = 0; i < MNLevelControl.LEVEL_WIDTH; i++ )
				{
					for ( int j = 0; j < MNLevelControl.LEVEL_HEIGHT; j++ )
					{
						switch ( MNLevelControl.getInstance ().levelGrid[MNLevelControl.GRID_LAYER_NORMAL][i][j] )
						{
						case GameElements.ENVI_PLASTIC_1_ALONE:
						case GameElements.ENVI_METAL_1_ALONE:
						case GameElements.ENVI_TECHNOEGG_1_ALONE:
							if (  MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][i][j].transform.Find ( "tile" ) != null )
							{
								_currentHighlightedSelectedComponenents.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][i][j].transform.Find ( "tile" ).GetComponent < SelectedComponenent > ());
							}
							else
							{
								_currentHighlightedSelectedComponenents.Add ( MNLevelControl.getInstance ().gameElementsOnLevel[MNLevelControl.GRID_LAYER_NORMAL][i][j].GetComponent < SelectedComponenent > ());
							}
							break;
						}
						
					}
				}
			}
				
				foreach ( SelectedComponenent toHighlightObjectsSelectedComponent in _currentHighlightedSelectedComponenents )
				{
					if(toHighlightObjectsSelectedComponent != null)
					{
						toHighlightObjectsSelectedComponent.setSelectedForUIHighlight ( true, 1f, tutorialStep.heighLightWithArrow );
					}
				}
				
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = true;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = true;
				break;		
			case TUTORIAL_OBJECT_TYPE_JUST_TAP_AND_REPEAT:
			case TUTORIAL_OBJECT_TYPE_JUST_TAP:
			case TUTORIAL_OBJECT_TYPE_WIN_LEVEL:
				if ( tutorialStep.fillTileForAMoment != null )
				{
					LevelControl.getInstance ().levelGrid[LevelControl.GRID_LAYER_NORMAL][tutorialStep.fillTileForAMoment[0]][tutorialStep.fillTileForAMoment[1]] = GameElements.UNWALKABLE;
					LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][tutorialStep.fillTileForAMoment[0]][tutorialStep.fillTileForAMoment[1]] = LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_RESCUEZONE][0][0];
					tutorialStep.fillTileForAMoment = null;
				}

				TutorialFrameTapControl current = tutorialUIComboObject.transform.Find ( "frame" ).gameObject.AddComponent < TutorialFrameTapControl > ();
				current.showHandOnCenter = tutorialStep.showHandInTheCenter;

				if ( tutorialStep.waitBeforeShowHandAnttaptoContinue == 0f ) 
				{
					if ( !tutorialStep.doNotShowTapAnwyaherTextcompletly ) tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = true;
					else tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				}
				else
				{
					tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
					StartCoroutine ( "waitBeoreTurnOnTapText", tutorialUIComboObject );
				}		

				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = true;
				GlobalVariables.TUTORIAL_MENU = true;
			break;
			case TUTORIAL_OBJECT_TYPE_TAP_OBJECT:
				tutorialStep.tapObject.transform.Find ( "tile" ).gameObject.AddComponent < TutorialObjectTapComponent > ();
				tutorialStep.tapObject.transform.Find ( "tile" ).collider.enabled = true;
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;			
			case TUTORIAL_OBJECT_TYPE_JUST_TAP_FIRST_READY_MOM_OBJECT:
			case TUTORIAL_OBJECT_TYPE_TAP_OBJECT_UI_THAT_ACTIVATES_WHEN_SHOW_UP:
			case TUTORIAL_OBJECT_TYPE_TAP_ATTACK_BUTTON:
				if ( tutorialStep.closeMoMPanel )
				{
					Destroy ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].myMomPanelControl.gameObject );
				}

				if ( tutorialStep.refillTile != null )
				{
					LevelControl.getInstance ().levelGrid[LevelControl.GRID_LAYER_NORMAL][tutorialStep.refillTile[0]][tutorialStep.refillTile[1]] = GameElements.EMPTY;
					LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][tutorialStep.refillTile[0]][tutorialStep.refillTile[1]] = null;
					tutorialStep.refillTile = null;
				}
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_TAP_SCREEN:
				tutorialUIComboObject.transform.Find ( "frame" ).gameObject.AddComponent < TutorialFrameTapControl > ().screenTap = true;
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_DESTROY_OBJECTS_WITH_FRAME_TEXT:
			case TUTORIAL_OBJECT_TYPE_DESTROY_OBJECTS:
				foreach ( GameObject objectToBeDestroyed in tutorialStep.objectsToBeDestroyed )
				{
					objectToBeDestroyed.transform.Find ( "tile" ).gameObject.AddComponent < TutorialObjectToBeDestoryedComponent > ();
				}
				if ( tutorialUIComboObject != null )
				{
					tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
					tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				}
				break;
			case TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER:
				TutorialMoveCharacterComponent currentTutorialMoveCharacterComponent = tutorialStep.characterObject.transform.Find ( "tile" ).gameObject.AddComponent < TutorialMoveCharacterComponent > ();
				currentTutorialMoveCharacterComponent.ifNoMoveAfterSecShowHand = tutorialStep.ifNoMoveAfterSecShowHand;
				
			print ( currentTutorialMoveCharacterComponent.ifNoMoveAfterSecShowHand + " | " + tutorialStep.ifNoMoveAfterSecShowHand );

			currentTutorialMoveCharacterComponent.targetIsRescueToy = tutorialStep.targetIsRescueToy;
				currentTutorialMoveCharacterComponent.targetTiles = tutorialStep.targetTiles;
				currentTutorialMoveCharacterComponent.showTargetTiles = tutorialStep.showTargetTiles;
				currentTutorialMoveCharacterComponent.startPosition = tutorialStep.startPosition;

				currentTutorialMoveCharacterComponent.targetTiles02 = tutorialStep.targetTiles02;
				currentTutorialMoveCharacterComponent.showTargetTiles02 = tutorialStep.showTargetTiles02;
				currentTutorialMoveCharacterComponent.startPosition02 = tutorialStep.startPosition02;

				_currentHighlightedSelectedComponenents = new List < SelectedComponenent > ();
				foreach ( GameObject toHighlightObject in tutorialStep.objectsToHighLight )
				{
					_currentHighlightedSelectedComponenents.Add ( toHighlightObject.transform.Find ( "tile" ).gameObject.AddComponent < SelectedComponenent > ());
				}
				
				foreach ( SelectedComponenent toHighlightObjectsSelectedComponent in _currentHighlightedSelectedComponenents )
				{
					toHighlightObjectsSelectedComponent.setSelectedForPulsingCharacterMark ( true, 1.5f );
				}

				if ( tutorialStep.dontTurnOnTutorialMode )
				{
					GlobalVariables.TUTORIAL_MENU = false;
				}

				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER_BY_TAP:
				TutorialMoveCharacterByTapComponent currentTutorialMoveCharacterByTapComponent = tutorialStep.characterObject.transform.Find ( "tile" ).gameObject.AddComponent < TutorialMoveCharacterByTapComponent > ();
				currentTutorialMoveCharacterByTapComponent.targetTiles = tutorialStep.targetTiles;
				
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_SELECT_CHARACTER_AND_TAP_OBJECT:
				tutorialStep.characterObject.transform.Find ( "tile" ).GetComponent < SelectedComponenent > ().setSelectedCharacter ( true );
				tutorialStep.characterObject.transform.Find ( "tile" ).SendMessage ( "handleTouched" );

				if ( tutorialStep.tapObject != null )
				{
					TutorialObjectTapComponent currentTutorialObjectTapComponent = null;
					if ( tutorialStep.tapObject.transform.Find ( "tile" ) != null ) currentTutorialObjectTapComponent = tutorialStep.tapObject.transform.Find ( "tile" ).gameObject.AddComponent < TutorialObjectTapComponent > ();
					else currentTutorialObjectTapComponent = tutorialStep.tapObject.AddComponent < TutorialObjectTapComponent > ();

					currentTutorialObjectTapComponent.arrowFromAbove = tutorialStep.arrowFromAbove;
				}
				else
				{
					Destroy ( tutorialUIComboObject );
					TriggerDialogueControl.getInstance ().turnOn ();
					GlobalVariables.TUTORIAL_MENU = false;
				}

				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_TAP_AND_SHOW_OBJECT:
				TutorialObjectTapComponent currentTutorialObjectTapComponent02 = tutorialStep.tapObject.AddComponent < TutorialObjectTapComponent > ();
				currentTutorialObjectTapComponent02.arrowFromAbove = tutorialStep.arrowFromAbove;
				currentTutorialObjectTapComponent02.doNotInteract = true;

				TutorialFrameTapControl current02 = tutorialUIComboObject.transform.Find ( "frame" ).gameObject.AddComponent < TutorialFrameTapControl > ();
				current02.showHandOnCenter = tutorialStep.showHandInTheCenter;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = true;

				if ( tutorialStep.moveColliderHighgt != 0f )
				{
					tutorialUIComboObject.transform.Find ( "frame" ).GetComponent < BoxCollider > ().center = new Vector3 ( 0f, tutorialStep.moveColliderHighgt, 0f );
				}

				if ( tutorialStep.waitBeforeShowHandAnttaptoContinue == 0f ) 
				{
					if ( !tutorialStep.doNotShowTapAnwyaherTextcompletly ) tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = true;
					else tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;

					tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = true;
				}
				else
				{
					tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
					StartCoroutine ( "waitBeoreTurnOnTapText", tutorialUIComboObject );
				}		
				
				break;
			case TUTORIAL_OBJECT_TYPE_TAP_OBJECT_UI:
				tutorialStep.tapObject.AddComponent < TutorialUIObjectTapComponent > ();
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_TAP_OBJECT_LAB:
				TutorialLaboratoryObjectTapComponent currentTutorialLaboratoryObjectTapComponent = tutorialStep.tapObject.transform.Find ( "tile" ).gameObject.AddComponent < TutorialLaboratoryObjectTapComponent > ();
				currentTutorialLaboratoryObjectTapComponent.arrowFromAbove = tutorialStep.arrowFromAbove;
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				FLMissionScreenMapDialogManager.getInstance ().trunOffButton ();
				break;
			case TUTORIAL_OBJECT_TYPE_DRAG_MOM_OBJECT:
				FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.Find ( "tile" ).SendMessage ( "handleTouched" );
				FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.Find ( "tile" ).GetComponent < SelectedComponenent > ().setSelected ( false );

				StartCoroutine ( "waitBeforeAddingTutorialScript" );
				
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_BUILD_REDIRECTOR:
				RedirectorButton.getInstance ().currentRedirectorOnLevel.transform.Find ( "tile" ).gameObject.AddComponent < TutorialCheckIfRediretorBuildedComponent > ();
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_DRAG_REDIRECTOR_BEFORE_ROTATE:
				TutorialDragRedirectorBeforeRotateComponenet currentTutorialDragRedirectorBeforeRotateComponenet = RedirectorButton.getInstance ().currentRedirectorOnLevel.transform.Find ( "tile" ).gameObject.AddComponent < TutorialDragRedirectorBeforeRotateComponenet > ();
				currentTutorialDragRedirectorBeforeRotateComponenet.targetTiles = tutorialStep.targetTiles;
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_ROTATE_REDIRECTOR:
				RedirectorButton.getInstance ().currentRedirectorOnLevel.transform.Find ( "tile" ).gameObject.AddComponent < TutorialCheckIfRedirectorRotatedComponent > ();
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_SWIPE_TO_ROOM:
				TutorialChangeRoomComponenet currentTutorialChangeRoomComponenet = tutorialStep.tapObject.AddComponent < TutorialChangeRoomComponenet > ();
				currentTutorialChangeRoomComponenet.targetTiles = tutorialStep.targetTiles;
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				break;
			case TUTORIAL_OBJECT_TYPE_STAY_SIGN_TILL_WIN_LEVEL:
				tutorialUIComboObject.transform.Find ( "tapText" ).renderer.enabled = false;
				tutorialUIComboObject.transform.Find ( "frame" ).collider.enabled = false;
				GlobalVariables.TUTORIAL_MENU = false;
				break;
			case TUTORIAL_OBJECT_TYPE_DUMMY:
				if ( tutorialStep.fromTutorial == false )
			    {
					FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.Find ( "tile" ).SendMessage ( "handleTouched" );
					FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.Find ( "tile" ).GetComponent < SelectedComponenent > ().setSelected ( false );
					
					StartCoroutine ( "waitBeforeAddingTutorialScript" );

					FLGlobalVariables.TUTORIAL_MENU = false;
				}

				GlobalVariables.TUTORIAL_MENU = false;
				break;
			case TUTORIAL_OBJECT_TYPE_CLOSE_MOM_UI:
				FLUIControl.currentSelectedGameElement = null;
				//FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.Find ( "tile" ).SendMessage ( "ToggleFocus", false );
				print ("This happened now ");
				break;
			//Daves Step
			case TUTORIAL_OBJECT_TYPE_REMOVE_MAP_ARROW:
				if(GameObject.Find ("jumpingArrowMap(Clone)") != null)
				{
					Destroy (GameObject.Find ("jumpingArrowMap(Clone)"));
				}
				break;
			//Daves Step
			default:
				TriggerDialogueControl.getInstance ().turnOn ();
				break;
		}
		
		_currentTutorialUICombo = tutorialUIComboObject;
	}
	private void startLevel03Tutorial ()
	{
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_3_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, 2.9f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "NULL";
		tutorialStep.framePosition = new Vector3 ( 0f, 0.0f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_SHOW_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI_USE_ONLY_MOVES;

		tutorialStep.tapObject = UIControl.getInstance ().getFirstCharacterButton ().transform.Find ( "powerBar" ).gameObject;
		tutorialStep.arrowFromAbove = false;
		tutorialStep.arrowBigFactor = 2.0f;

		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_3_text_2_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 3f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_STAY_SIGN_TILL_WIN_LEVEL;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_3_text_3_condition_True_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, 2.9f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.dontShowNextStep = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_3_text_3_condition_False_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, 2.9f, 0.11f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	private void startLevel12Tutorial ()
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "level_12_text_1_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_12_text_2_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "level_12_text_3_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		if ( _firstRunOfTutorial12 )
		{
			_firstRunOfTutorial12 = false;

			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
			tutorialStep.frameTextKey = "level_12_text_1_General";
			tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			tutorialStep.tapObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_FARADAYDO_1_IDLE );
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
			//*************************************************************//

			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
			tutorialStep.frameTextKey = "level_12_text_2_General";
			tutorialStep.framePosition = new Vector3 ( 0f, -2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_SELECT_CHARACTER_AND_TAP_OBJECT;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			tutorialStep.characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_FARADAYDO_1_IDLE );
			tutorialStep.tapObject = RedirectorButton.getInstance ().gameObject;
			tutorialStep.arrowFromAbove = false;
			tutorialStep.arrowBigFactor = 2.0f;
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
			//*************************************************************//
			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
			tutorialStep.frameTextKey = "level_12_text_3_General";
			tutorialStep.framePosition = new Vector3 ( 0f, 2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_DRAG_REDIRECTOR_BEFORE_ROTATE;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			tutorialStep.targetTiles.Add ( new int[2] { 1, 2 });
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
			//*************************************************************//
			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
			tutorialStep.frameTextKey = "level_12_text_4_General";
			tutorialStep.framePosition = new Vector3 ( 0f, 2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_ROTATE_REDIRECTOR;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
			//*************************************************************//
			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
			tutorialStep.frameTextKey = "level_12_text_5_General";
			tutorialStep.framePosition = new Vector3 ( 0f, 2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_BUILD_REDIRECTOR;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
		}
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "level_12_text_4_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_12_text_5_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	private void startLevel25Tutorial ()
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_25_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "level_25_text_2_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_25_text_3_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	public void StartSmallTutorial () 
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "rescue_tutorial_general_01";
		tutorialStep.framePosition = new Vector3 ( -3f, 3.5f, 0f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_SHOW_OBJECT;
		tutorialStep.tapObject = LevelControl.getInstance ().toBeRescuedOnLevel;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		if ( LevelControl.getInstance ().coresAreOnLevel )
		{
			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
			tutorialStep.frameTextKey = "rescue_tutorial_general_02";
			tutorialStep.framePosition = new Vector3 ( -3f, 3.5f, 0f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_SHOW_OBJECT;
			tutorialStep.tapObject = LevelControl.getInstance ().lightOnLevel;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_BIG;
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
		}
		GlobalVariables.TUTORIAL_MENU = true;
		_turnOnTriggerGEneralDialgoButton = true;
	}
	private void startLevel05Tutorial ()
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_5_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "level_5_text_2_Faradaydo";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 03
		//*************************************************************//
		if ( LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][5][0] != null )
		{
			tutorialStep = new TutorialStepsClass ();
			ID++;
			tutorialStep.myID = ID;
			tutorialStep.frameTextKey = "level_5_text_1_General";
			tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
			tutorialStep.type = TUTORIAL_OBJECT_TYPE_SELECT_CHARACTER_AND_TAP_OBJECT;
			tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
			tutorialStep.characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_FARADAYDO_1_IDLE );
			tutorialStep.tapObject = LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][5][0];
			_currentTutorialSteps.Add ( tutorialStep );
			_currentTutorialRepeatSteps.Add ( null );
		}
		//*************************************************************//
		// step 04
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	private void startLevel04Tutorial ()
	{
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_4_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_4_text_2_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_MADRA_1_IDLE;
		tutorialStep.frameTextKey = "level_4_text_3_Madra";
		tutorialStep.framePosition = new Vector3 ( 0f, -2.0f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_02;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	public void turnOnDragMomObjectTutorial ()
	{
		_currentTutorialSteps = new List < TutorialStepsClass > ();
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_FARADAYDO_1_IDLE;
		tutorialStep.frameTextKey = "laboratory_tutorial_1_text_5_general";
		tutorialStep.framePosition = new Vector3 ( 0f, 3f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_DUMMY;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.arrowBigFactor = 2f;
		tutorialStep.fromTutorial = false;
		tutorialStep.delayShowTutorialBox = 2.0f;
		List < int[] > targetTiles = new List<int[]> ();
		targetTiles.Add ( new int[2] { Mathf.RoundToInt ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.position.x ), Mathf.RoundToInt ( FLFactoryRoomManager.getInstance ().momsOnLevel[0].momObject.transform.position.z + 2f )});
		tutorialStep.targetTiles = targetTiles;	
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		_currentTutorialStepID = 0;

		_waitUntilSomeTimeBeforeNextStep = false;
		_waitUntilThisUIComboIsOff = false ;

		//*************************************************************//
		FLGlobalVariables.TUTORIAL_MENU = true;
	}
	public void invokeRepeatStep ()
	{
		_waitUntilThisUIComboIsOff = true;
		createTutorialObject ( _currentTutorialRepeatSteps[_currentTutorialStepID + 1] );
		_currentTutorialStep = _currentTutorialRepeatSteps[_currentTutorialStepID + 1];
	}
	private void startLevel01Tutorial ()
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( -3f, 0.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.waitBeforeShowHandAnttaptoContinue = 4f;
		tutorialStep.doNotShowTapAnwyaherTextcompletly = true;
		tutorialStep.showHandInTheCenter = true;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 02
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_1_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_CONTROLS;
		tutorialStep.highLightWithHand = true;
		tutorialStep.handMove = 1.0f;
		tapObject = null;
		tapObject = LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][9][3];
		tutorialStep.tapObject = tapObject;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 06
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_2_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 2.2f, 3.99f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_AND_SHOW_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_MOVES;
		tutorialStep.waitBeforeShowHandAnttaptoContinue = 3f;
		tutorialStep.tapObject = UIControl.getInstance ().getFirstCharacterButton ().transform.Find ( "powerBar" ).gameObject;
		tutorialStep.moveColliderHighgt = 2f;
		tutorialStep.doNotShowTapAnwyaherTextcompletly = true;
		tutorialStep.showHandInTheCenter = true;
		tutorialStep.arrowFromAbove = false;
		tutorialStep.arrowBigFactor = 2.0f;
		
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_3_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_CONTROLS;
		characterObject = null;
		characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.characterObject = characterObject;
		tutorialStep.targetTiles.Add ( new int[2] { 7, 3 } );
		tutorialStep.targetIsRescueToy = true;
		tutorialStep.showTargetTiles.Add ( new int[2] { 7, 3 } );
		tutorialStep.startPosition = new int[2] { 9, 3 };
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 7
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_4_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 3.3f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_FULL_CHALLENGE;
		characterObject = null;
		characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.characterObject = characterObject;
		tutorialStep.targetTiles.Add ( new int[2] { 7, 2 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 7, 1 } );
		tutorialStep.startPosition = new int[2] { 7, 3 };
		tutorialStep.dontDestroyThisTutorialBox = true;
		tutorialStep.dontTurnOnTutorialMode = true;
		tutorialStep.ifNoMoveAfterSecShowHand = 5f;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 8
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		characterObject = null;
		characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.characterObject = characterObject;
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_DUMMY;
		tutorialStep.preservePreviousTutorialBox = true;
		tutorialStep.destroyThisPreservedTutorialBoxOnEnd = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}
	private void startLevel02Tutorial ()
	{
		GameObject tapObject = null;
		GameObject characterObject = null;
		TutorialStepsClass tutorialStep = null;
		int ID = -1;
		//*************************************************************//
		// step 01
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_1_Cora";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_JUST_TAP;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_CHARACTER_01;
		tutorialStep.fillTileForAMoment = new int[2] { 6, 1 }; 
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 03
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_1_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.highLightWithHand = true;
		tutorialStep.handMove = 1f;
		tapObject = null;
		tapObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_MADRA_1_IDLE );
		tutorialStep.tapObject = tapObject;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 04
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_2_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tapObject = null;
		tapObject = LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][6][2];
		tutorialStep.tapObject = tapObject;
		tutorialStep.highLightWithHand = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		// step 05
		//*************************************************************//
		/*
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_3_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_ATTACK_BUTTON;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.refillTile = new int[2] { 6, 1 }; 
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		*/
		//*************************************************************//
		// step 06
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_4_General";
		tutorialStep.framePosition = new Vector3 ( 0f, 1.5f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_TAP_OBJECT;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.forcePositionOnEnd = new int[2];
		tutorialStep.forcePositionOnEnd[0] = 8;
		tutorialStep.forcePositionOnEnd[1] = 3;

		tutorialStep.delayShowTutorialBox = 2.1f;

		tapObject = null;
		tapObject = LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_NORMAL][9][3];
		tutorialStep.tapObject = tapObject;
		tutorialStep.highLightWithHand = true;
		tutorialStep.refillTile = new int[2] { 6, 1 }; 
		tutorialStep.characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_2_text_5_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		tutorialStep.characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.targetTiles.Add ( new int[2] { 7, 3 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 6, 3 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 6, 0 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 0, 0 } );
		tutorialStep.startPosition = new int[2] { 9, 3 };
		tutorialStep.waitBeforeShowSlideArrow = 5f;
		tutorialStep.textureAfterText = LevelControl.getInstance ().gameElements[GameElements.ENVI_RESCUEZONE_1];
		tutorialStep.dontDestroyThisTutorialBox = true;
		tutorialStep.objectsToHighLight.Add ( LevelControl.getInstance ().gameElementsOnLevel[LevelControl.GRID_LAYER_RESCUEZONE][0][0] );
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_5_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		characterObject = null;
		characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.characterObject = characterObject;
		tutorialStep.waitBeforeShowSlideArrow = 5f;
		tutorialStep.targetTiles.Add ( new int[2] { 6, 1 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 6, 0 } ); 
		tutorialStep.showTargetTiles.Add ( new int[2] { 0, 0 } );
		tutorialStep.startPosition = new int[2] { 6, 3 };
		tutorialStep.preservePreviousTutorialBox = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		tutorialStep = new TutorialStepsClass ();
		ID++;
		tutorialStep.myID = ID;
		tutorialStep.characterID = GameElements.CHAR_CORA_1_IDLE;
		tutorialStep.frameTextKey = "level_1_text_5_General";
		tutorialStep.framePosition = new Vector3 ( -3f, 2.2f, 2f );
		tutorialStep.type = TUTORIAL_OBJECT_TYPE_MOVE_CHARACTER;
		tutorialStep.tutorialBoxType = TUTORIAL_COMBO_UI_DEMI;
		characterObject = null;
		characterObject = LevelControl.getInstance ().getCharacterObjectFromLevel ( GameElements.CHAR_CORA_1_IDLE );
		tutorialStep.characterObject = characterObject;
		tutorialStep.waitBeforeShowSlideArrow = 5f;
		tutorialStep.targetTiles.Add ( new int[2] { 1, 0 } );
		tutorialStep.showTargetTiles.Add ( new int[2] { 0, 0 } );
		tutorialStep.startPosition = new int[2] { 6, 0 };
		tutorialStep.preservePreviousTutorialBox = true;
		tutorialStep.destroyThisPreservedTutorialBoxOnEnd = true;
		_currentTutorialSteps.Add ( tutorialStep );
		_currentTutorialRepeatSteps.Add ( null );
		//*************************************************************//
		GlobalVariables.TUTORIAL_MENU = true;
	}