public static void Init(int prefabID = -1)
        {
            // Get existing open window or if none, make a new one:
            window         = (NewFactionAbilityEditorWindow)EditorWindow.GetWindow(typeof(NewFactionAbilityEditorWindow), false, "Faction Ability Editor");
            window.minSize = new Vector2(420, 300);

            LoadDB();

            window.InitLabel();

            //if(prefabID>=0) window.selectID=TDEditor.GetTowerIndex(prefabID)-1;

            window.SetupCallback();
        }
        Vector2 DrawCollectibleConfigurator(float startX, float startY, Collectible item)
        {
            float maxX = startX;

            startY = DrawItemBasicInfo(startX, startY, item) - 10;

            if (GUI.Button(new Rect(startX + spaceX + width - 100, startY += spaceY, 100, height), "Ability Editor"))
            {
                NewFactionAbilityEditorWindow.Init();
            }

            string tooltip = "The ability to cast when the item is triggered";

            tooltip += "\n\nUses ability setup in Faction Ability Editor but does not cost energy";
            tooltip += "\n\n*The ability target setting still applies, the effect will be applied to all unit if the 'require target selection' option is not checked";
            tooltip += "\n\nRandom ability will be chosen when multiple abilities has been assigned, useful for item with random effects";
            cont     = new GUIContent("Trigger Ability:", tooltip);
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, width, height), cont);


            //~ int index=TBEditor.GetFactionAbilityIndex(item.facAbilityID);
            //~ index=EditorGUI.Popup(new Rect(startX+spaceX, startY, width, height), index, fAbilityLabel);
            //~ if(index>0) item.facAbilityID=fAbilityDB.abilityList[index-1].prefabID;
            //~ else item.facAbilityID=-1;

            startY -= spaceY;
            int count = item.facAbilityIDList.Count + 1;

            for (int i = 0; i < count; i++)
            {
                EditorGUI.LabelField(new Rect(startX + spaceX - 10, startY + spaceY, width, height), "-");

                int index = (i < item.facAbilityIDList.Count) ? TBEditor.GetFactionAbilityIndex(item.facAbilityIDList[i]) : 0;
                index = EditorGUI.Popup(new Rect(startX + spaceX, startY += spaceY, width, height), index, fAbilityLabel);
                if (index > 0)
                {
                    int abID = fAbilityDB.abilityList[index - 1].prefabID;
                    if (!item.facAbilityIDList.Contains(abID))
                    {
                        if (i < item.facAbilityIDList.Count)
                        {
                            item.facAbilityIDList[i] = abID;
                        }
                        else
                        {
                            item.facAbilityIDList.Add(abID);
                        }
                    }
                }
                else if (i < item.facAbilityIDList.Count)
                {
                    item.facAbilityIDList.RemoveAt(i); i -= 1;
                }

                if (i < item.facAbilityIDList.Count && GUI.Button(new Rect(startX + width + spaceX + 5, startY, 20, height - 1), "-"))
                {
                    item.facAbilityIDList.RemoveAt(i); i -= 1;
                }
            }



            startY += spaceY;

            startY = DrawEffect(startX, startY + spaceY, item.effect);

            startY += spaceY;

            GUIStyle style = new GUIStyle("TextArea");

            style.wordWrap = true;
            cont           = new GUIContent("Collectible description (for runtime and editor): ", "");
            EditorGUI.LabelField(new Rect(startX, startY += spaceY, 400, 20), cont);
            item.desp = EditorGUI.TextArea(new Rect(startX, startY + spaceY - 3, 270, 100), item.desp, style);

            return(new Vector2(maxX, startY + 120));
        }
Example #3
0
 public static void OpenFactionAbilityEditor()
 {
     //FactionAbilityEditorWindow.Init();
     NewFactionAbilityEditorWindow.Init();
 }