Esempio n. 1
0
 public void SetActive(ColorsConfig colorsConfig, UnityAction SaveEvent, UnityAction CancelEvent)
 {
     // remove possible previous listeners attached to this button
     saveButton.OnClick.RemoveAllListeners();
     // setup our listener
     saveButton.OnClick.AddListener(SaveEvent);
     saveButton.OnClick.AddListener(Close);
     // same for Cancel button
     cancelButton.OnClick.RemoveAllListeners();
     cancelButton.OnClick.AddListener(CancelEvent);
     cancelButton.OnClick.AddListener(Close);
     // loop through all colors in config
     foreach (Color color in colorsConfig.colors)
     {
         // create color toggle
         TextToggle colorToggle = Instantiate(colorToggleTemplate.gameObject, colorsToggleGroup.transform).GetComponent <TextToggle>();
         // set color toggle group
         colorToggle.toggleGroup = colorsToggleGroup;
         // activate toggle
         colorToggle.gameObject.SetActive(true);
         // set color
         colorToggle.GetComponentInChildren <RawImage>().color = color;
     }
     // preselect first toggle by simulating mouse click on it
     colorsToggleGroup.GetComponentsInChildren <TextToggle>()[0].ActOnLeftMouseClick();
     // activate this menu
     gameObject.SetActive(true);
 }
 void SetUniqueAbilitiesActive(bool doActivate)
 {
     // verify if we need to activate or deactivate abilities list
     if (doActivate)
     {
         // loop through all possible unique abilities configs
         foreach (UniqueAbilityConfig uniqueAbilityConfig in ConfigManager.Instance.UniqueAbilityConfigs)
         {
             // verify this ability is applicable only to specific factions
             if (uniqueAbilityConfig.doLimitUsageByFaction)
             {
                 // verify if that ability is allowed for this Faction
                 if (Array.Exists(uniqueAbilityConfig.applicableToFactions, element => element == factionSelectionGroup.GetSelectedFaction()))
                 {
                     TextToggle uniqueAbilityToggle = CreateNewAbilityToggle(uniqueAbilityConfig);
                     // adjust text color and toggle color schema to represent Faction-specific ability
                     uniqueAbilityToggle.GetComponent <Text>().color = factionSpecificAbilityNormalColor;
                     uniqueAbilityToggle.NormalColor      = factionSpecificAbilityNormalColor;
                     uniqueAbilityToggle.HighlightedColor = factionSpecificAbilityHighlightedColor;
                     uniqueAbilityToggle.PressedColor     = factionSpecificAbilityPressedColor;
                 }
             }
             else
             {
                 CreateNewAbilityToggle(uniqueAbilityConfig);
             }
         }
         // preselect first toggle
         uniqueAbilitiesToggleGroup.GetComponentsInChildren <TextToggle>()[0].ActOnLeftMouseClick();
     }
     else
     {
         // remove all previus abilities
         RecycleBin.RecycleChildrenOf(uniqueAbilitiesToggleGroup.gameObject);
         //// loop through all abilities in UI
         //foreach(Transform t in uniqueAbilitiesToggleGroup.transform)
         //{
         //    // move toggle to recycle bin and destroy it (move is required, because actual destroy is being done at the end of the frame,
         //    // but we need to preselect new toggle on reset SetUniqueAbilitiesActive(false/true)
         //    t.SetParent(RecycleBin.Instance.transform);
         //    Debug.Log("Destroy " + t.name);
         //    Destroy(t.gameObject);
         //}
     }
 }