void Awake() { tutorialSet = transform.Find("TutorialSet").GetComponent <TutorialSet>(); passNode = GameObject.Find("PassNode").GetComponent <PassNode>(); tutorialSetObject = transform.Find("TutorialSet").gameObject; tutorialSetObject.SetActive(false); firstTimePanel = GameObject.Find("FirstTimePanel"); if (passNode.IsNewGame) { firstTimePanel.SetActive(true); } else { firstTimePanel.SetActive(false); } }
/// <summary> /// Event Handler /// </summary> /// <param name="eventType"></param> /// <param name="Sender"></param> /// <param name="Param"></param> public void OnEvent(EventType eventType, Component Sender, object Param = null) { //select event type switch (eventType) { case EventType.TutorialOpenUI: TutorialSet set = Param as TutorialSet; SetTutorialUI(set); break; case EventType.TutorialCloseUI: CloseTutorialUI(); break; case EventType.TutorialItemOpen: OpenTutorialItem((int)Param); break; default: Debug.LogError(string.Format("Invalid eventType {0}{1}", eventType, "\n")); break; } }
/// <summary> /// Initialises tutorialUI for a specified tutorialSet /// </summary> private void SetTutorialUI(TutorialSet set) { if (set != null) { //populate list with current set tutorial items (indexes match button.buttonInteraction.returnValue) listOfSetItems = set.listOfTutorialItems; if (listOfSetItems != null) { //disable all buttons (default) for (int i = 0; i < listOfButtons.Count; i++) { listOfButtons[i].gameObject.SetActive(false); } //activate and populate a button for each item in set numOfItems = listOfSetItems.Count; if (numOfItems > 0) { //only accept upt to max num of items numOfItems = Mathf.Min(numOfItems, maxNumOfItems); TutorialItem item; for (int i = 0; i < numOfItems; i++) { item = listOfSetItems[i]; if (item != null) { //activate button listOfButtons[i].gameObject.SetActive(true); //button colours ColorBlock buttonColours = listOfButtons[i].colors; //switch off arrow listOfInteractions[i].arrowImage.gameObject.SetActive(false); //assign event to button along with a unique index # listOfInteractions[i].buttonInteraction.SetButton(EventType.TutorialItemOpen, i); //tooltip listOfInteractions[i].tooltip.tooltipHeader = string.Format("<size=120%><b>{0}</b></size>", GameManager.Formatt(item.tag, ColourType.salmonText)); listOfInteractions[i].tooltip.tooltipMain = string.Format("This is a <size=115%><b>{0}</b></size> item", GameManager.Formatt(item.tutorialType.name, ColourType.neutralText)); //type of item switch (item.tutorialType.name) { case "Dialogue": listOfInteractions[i].buttonText.text = "D"; buttonColours.normalColor = colourDialogue; listOfInteractions[i].buttonText.text = string.Format("{0}", GameManager.i.guiScript.tutDialogue); listOfInteractions[i].tooltip.tooltipDetails = "Words of wisdom from your <b>training guide</b>"; break; case "Goal": listOfInteractions[i].buttonText.text = "G"; buttonColours.normalColor = colourGoal; listOfInteractions[i].buttonText.text = string.Format("{0}", GameManager.i.guiScript.tutGoal); listOfInteractions[i].tooltip.tooltipDetails = "A specific training goal that you need to achieve <b>in order to progress</b>"; break; case "Information": listOfInteractions[i].buttonText.text = "I"; buttonColours.normalColor = colourInfo; listOfInteractions[i].buttonText.text = string.Format("{0}", GameManager.i.guiScript.tutInfo); listOfInteractions[i].tooltip.tooltipDetails = "<b>Knowledge is power</b>. A detailed look at a topic"; break; case "Query": listOfInteractions[i].buttonText.text = "?"; buttonColours.normalColor = colourQuestion; listOfInteractions[i].buttonText.text = string.Format("{0}", GameManager.i.guiScript.tutQuestion); listOfInteractions[i].tooltip.tooltipDetails = "There are certain things that HQ <b>needs to know</b>"; break; default: Debug.LogWarningFormat("Unrecognised item.TutorialType \"{0}\"", item.tutorialType.name); break; } listOfButtons[i].colors = buttonColours; } else { Debug.LogWarningFormat("Invalid listOfItems[{0}] (Null) for set \"{1}\"", i, set.name); } } //activate canvas tutorialCanvas.gameObject.SetActive(true); //activate first button if (listOfButtons[0] != null) { EventManager.i.PostNotification(EventType.TutorialItemOpen, this, 0); } else { Debug.LogError("Invalid listOfButtons[0] (Null)"); } } else { Debug.LogErrorFormat("Invalid tutorialSet.listOfItems (Empty) for set \"{0}\"", set.name); } } else { Debug.LogErrorFormat("Invalid TutorialSet.listOfItems (Null) for set \"{0}\"", set.name); } } else { Debug.LogError("Invalid TutorialSet (Null)"); } }