Browse Source

Added locked articles

James Peret 2 years ago
parent
commit
667d5544e8

+ 1 - 0
Runtime/Encyclopedia/DefaultEncyclopediaCategory.cs

@@ -31,6 +31,7 @@ namespace KairoEngine.UI.Encyclopedia
             {
                 var article = item.article.GetArticle();
                 article.id = id + "_" + article.id;
+                article.unlocked = item.unlocked;
                 data.Add(article);
             }
         }

+ 1 - 0
Runtime/Encyclopedia/EncyclopediaArticle.cs

@@ -13,6 +13,7 @@ namespace KairoEngine.UI.Encyclopedia
         public string title;
         public string description;
         public Sprite icon;
+        public bool unlocked = true;
         public Dictionary<string,string> content = new Dictionary<string, string>();
         public Dictionary<string,Sprite> images = new Dictionary<string, Sprite>();
         public Dictionary<string,int> integers = new Dictionary<string, int>();

+ 7 - 0
Runtime/Encyclopedia/EncyclopediaUi.cs

@@ -110,6 +110,13 @@ namespace KairoEngine.UI.Encyclopedia
                 if(selectedButton != null) subMenuButtonSelection.Add(selectedButton);
                 var contentDataViews = obj.GetComponentsInChildren<IEncyclopediaArticleDataView>(true);
                 foreach (var item in contentDataViews) item.Setup(article);
+                if(article.unlocked == false)
+                {
+                    var btn = obj.GetComponent<Button>();
+                    if(btn != null) btn.interactable = false;
+                    selectedButton.isInteractable = false;
+                }
+                else selectedButton.isInteractable = true;
                 counter += 1;
             }
             if(controller.subMenuIndex < subMenuButtonSelection.Count && menuIndex == currentMenuIndex)

+ 4 - 1
Runtime/InteractionHandler/SelectedButton.cs

@@ -17,6 +17,8 @@ namespace KairoEngine.UI.InteractionHandler
         [SerializeField] private Sprite selectedSprite;
         [SerializeField] private Sprite disabledSprite;
 
+        [SerializeField] public bool isInteractable = true;
+
         private void Start()
         {
             if(defaultSprite == null) defaultSprite = image.sprite;
@@ -31,6 +33,7 @@ namespace KairoEngine.UI.InteractionHandler
             var btnStates = button.spriteState;
             btnStates.disabledSprite = selectedSprite;
             button.spriteState = btnStates;
+            isInteractable = button.interactable;
             button.interactable = false;
             
         }
@@ -43,7 +46,7 @@ namespace KairoEngine.UI.InteractionHandler
             var btnStates = button.spriteState;
             btnStates.disabledSprite = disabledSprite;
             button.spriteState = btnStates;
-            button.interactable = true;
+            button.interactable = isInteractable;
         }
     }
 }