Example #1
0
        public void ShowSuccess(NightEventNode successNode, Dictionary <int, int> awards, int money, Vector2 windowPosition)
        {
            SetPosition(windowPosition);
            Background.color = new Color(0, 255f, 0);
            ShowNode(successNode);

            int i = 0;

            foreach (int itemNum in awards.Keys)
            {
                if (awards[itemNum] > 0)
                {
                    AwardsImages[i].gameObject.SetActive(true);
                    AwardsImages[i].sprite = ItemsOptions.Instance.itemsSprites[itemNum];
                    AwardsTexts[i].text    = awards[itemNum].ToString();
                }
                else
                {
                    AwardsImages[i].gameObject.SetActive(false);
                }
                i++;
            }

            for (; i < AwardsImages.Length; i++)
            {
                AwardsImages[i].gameObject.SetActive(false);
            }

            MoneyText.text = money.ToString();
            AwardsAndMoney.SetActive(true);
        }
Example #2
0
        private void ShowNode(NightEventNode eventNode)
        {
            Choice = -1;

            Button0.gameObject.SetActive(false);
            Button1.gameObject.SetActive(false);


            AwardsAndMoney.gameObject.SetActive(false);

            TitleText.text       = eventNode.TitleText;
            DescriptionText.text = eventNode.Description;
            Image.sprite         = NightEventsOptions.GetNightEventSprite(eventNode.SpriteType, eventNode.SpriteId, eventNode.CharSpriteType);

            if (eventNode.Buttons.Count > 0)
            {
                Button0.onClick.RemoveAllListeners();
                Button0.onClick.AddListener(() => { Night.Instance.MakeChoice(0); });
                Button0.onClick.AddListener(CloseWindow);
                Button0Text.text = eventNode.Buttons[0].ButtonText;
                Button0.gameObject.SetActive(true);
            }
            if (eventNode.Buttons.Count > 1)
            {
                Button1.onClick.RemoveAllListeners();
                Button1.onClick.AddListener(() => { Night.Instance.MakeChoice(1); });
                Button1.onClick.AddListener(CloseWindow);
                Button1Text.text = eventNode.Buttons[1].ButtonText;
                Button1.gameObject.SetActive(true);
            }

            gameObject.transform.SetAsLastSibling();
            gameObject.SetActive(true);
        }
Example #3
0
        /// <summary>Get night event tree with random nodes from "NightEventsCollectionData.xml"</summary>
        /// <param name="eventNode">A root node of event in "NightEventsCollectionData.xml"</param>
        public static NightEventNode ParseEventRandomTree(XmlNode eventNode, RobberyType robberyType)
        {
            NightEventNode nightEvent = new NightEventNode();

            foreach (XmlNode info in eventNode)
            {
                switch (info.Name)
                {
                case "text":
                    nightEvent.Description = info.InnerText;
                    break;

                case "sprite":
                    foreach (XmlNode spriteInfo in info)
                    {
                        if (spriteInfo.Name == "spriteType")
                        {
                            switch (spriteInfo.InnerText)
                            {
                            case "people":
                                nightEvent.SpriteType = SpriteType.People;
                                break;

                            case "characters":
                                nightEvent.SpriteType = SpriteType.Characters;
                                break;

                            case "items":
                                nightEvent.SpriteType = SpriteType.Items;
                                break;

                            case "places":
                                nightEvent.SpriteType = SpriteType.Places;
                                break;

                            case "robberies":
                                nightEvent.SpriteType = SpriteType.Robberies;
                                break;

                            default:
                                Debug.LogError("No \"" + spriteInfo.InnerText + "\" sprite type exists! Check NightEventsCollectionData.xml or SpriteType enum");
                                nightEvent.SpriteType = SpriteType.None;
                                break;
                            }
                        }
                        if (spriteInfo.Name == "spriteId")
                        {
                            nightEvent.SpriteId = int.Parse(spriteInfo.InnerText);
                        }
                    }
                    break;

                case "button":
                    if (nightEvent.Buttons == null)
                    {
                        nightEvent.Buttons = new List <NightEventButtonDetails>();
                    }
                    NightEventButtonDetails button = new NightEventButtonDetails();
                    foreach (XmlNode buttonInfo in info)
                    {
                        if (buttonInfo.Name == "text")
                        {
                            button.ButtonText = buttonInfo.InnerText;
                        }
                        if (buttonInfo.Name == "effect")
                        {
                            button.Effect = int.Parse(buttonInfo.InnerText);
                        }
                        if (buttonInfo.Name == "policeEffect")
                        {
                            button.PoliceEffect = int.Parse(buttonInfo.InnerText);
                        }
                        if (buttonInfo.Name == "hospitalEffect")
                        {
                            button.HospitalEffect = int.Parse(buttonInfo.InnerText);
                        }
                        if (buttonInfo.Name == "healthAffect")
                        {
                            button.HealthAffect = int.Parse(buttonInfo.InnerText);
                        }
                        if (buttonInfo.Name == "policeKnowledge")
                        {
                            button.PoliceKnowledge = int.Parse(buttonInfo.InnerText);
                        }
                        if (buttonInfo.Name == "award")
                        {
                            int itemId;
                            if (int.TryParse(buttonInfo.Attributes["itemId"].Value, out itemId))
                            {
                                if (button.Awards == null)
                                {
                                    button.Awards = new Dictionary <int, int>();
                                }
                                {
                                    if (!button.Awards.ContainsKey(itemId))
                                    {
                                        button.Awards.Add(itemId, int.Parse(buttonInfo.InnerText));
                                    }
                                    else
                                    {
                                        button.Awards[itemId] += int.Parse(buttonInfo.InnerText);
                                    }
                                }
                                ;
                            }
                        }
                        if (buttonInfo.Name == "money")
                        {
                            button.Money = int.Parse(buttonInfo.InnerText);
                        }
                    }
                    if (info.SelectSingleNode("./node") != null)                                                                                                             //is button contains next nodes
                    {
                        button.NextEventNode = ParseEventRandomTree(info.SelectNodes("./node")[UnityEngine.Random.Range(0, info.SelectNodes("./node").Count)], robberyType); //Recursion
                    }
                    nightEvent.Buttons.Add(button);
                    break;
                }
                ;
            }
            return(nightEvent);
        }
Example #4
0
 public void ShowChoice(NightEventNode eventNode, Vector2 windowPosition)
 {
     SetPosition(windowPosition);
     Background.color = new Color(216f, 216f, 216f);
     ShowNode(eventNode);
 }
Example #5
0
 public void ShowFail(NightEventNode failNode, Vector2 windowPosition)
 {
     SetPosition(windowPosition);
     Background.color = new Color(255f, 0, 0);
     ShowNode(failNode);
 }