//~ private static List<int> towerIDList=new List<int>();
	
    // Add menu named "PerkEditor" to the Window menu
    //[MenuItem ("TDTK/PerkEditor")]
    public static void Init () {
        // Get existing open window or if none, make a new one:
        window = (PerkEditorWindow)EditorWindow.GetWindow(typeof (PerkEditorWindow));
		window.minSize=new Vector2(615, 700);
		window.maxSize=new Vector2(615, 701);
		
		InitLabel();
		
		allPerkList=new List<Perk>();
		
		rscList=ResourceEditorWindow.Load();
		LoadTower();
		LoadAbility();
		
		
		Load();
		//~ RefreshIDList();
		
		int i=0;
		foreach(Perk perk in allPerkList){
			//~ perk.SetType(perk.type);
			//~ perk.value=new float[perk.valueCount];
			perk.ID=i;
			i+=1;
		}
		
		NewSelection(0);
    }
    public void VerifyingList()
    {
        Undo.SetSnapshotTarget(pm, "PerkManager");

        List <Perk> list = PerkEditorWindow.Load();

        int n = 0;

        foreach (Perk perk in pm.allPerkList)
        {
            if (perk.enableInlvl)
            {
                n += 1;
            }
        }
        int m = 0;

        foreach (Perk perk in list)
        {
            if (perk.enableInlvl)
            {
                m += 1;
            }
        }

        for (int i = 0; i < list.Count; i++)
        {
            Perk perk = list[i];
            foreach (Perk p in pm.allPerkList)
            {
                if (perk.ID == p.ID)
                {
                    //~ if(perk.name=="CanonTower") Debug.Log(perk.name+"   "+p.unlocked);
                    //~ Debug.Log(p.ID+"  "+p.name+"    "+p.enableInlvl);
                    perk.enableInlvl = p.enableInlvl;
                    perk.unlocked    = p.unlocked;
                }
            }
        }

        pm.allPerkList = list;
        EditorUtility.SetDirty(pm);

        Undo.CreateSnapshot();
        Undo.RegisterSnapshot();
        Undo.ClearSnapshotTarget();
    }
Beispiel #3
0
 public static void OpenPerkEditor()
 {
     PerkEditorWindow.Init();
 }
Beispiel #4
0
        public override void OnInspectorGUI()
        {
            GUI.changed = false;

            EditorGUILayout.Space();

            cont = new GUIContent("Persistant Progress", "Check to use persistantProgress\nThe progress done in this level will be carried to next\nEnable this will cause all the level to use the perk enabled in this instance, perk enabled/disable in subsequent PerkManager instance will be ignored");
            instance.persistantProgress = EditorGUILayout.Toggle(cont, instance.persistantProgress);

            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("", GUILayout.MaxWidth(10));
            showPerkList = EditorGUILayout.Foldout(showPerkList, "Show Perk List");
            EditorGUILayout.EndHorizontal();
            if (showPerkList)
            {
                EditorGUILayout.BeginHorizontal();
                if (GUILayout.Button("EnableAll") && !Application.isPlaying)
                {
                    instance.unavailableIDList = new List <int>();
                }
                if (GUILayout.Button("DisableAll") && !Application.isPlaying)
                {
                    instance.purchasedIDList = new List <int>();

                    instance.unavailableIDList = new List <int>();
                    for (int i = 0; i < perkList.Count; i++)
                    {
                        instance.unavailableIDList.Add(perkList[i].ID);
                    }
                }
                EditorGUILayout.EndHorizontal();


                for (int i = 0; i < perkList.Count; i++)
                {
                    Perk perk = perkList[i];


                    GUILayout.BeginHorizontal();

                    GUILayout.Box("", GUILayout.Width(40), GUILayout.Height(40));
                    Rect rect = GUILayoutUtility.GetLastRect();
                    EditorUtilities.DrawSprite(rect, perk.icon, false);

                    GUILayout.BeginVertical();
                    EditorGUILayout.Space();
                    GUILayout.Label(perk.name, GUILayout.ExpandWidth(false));

                    GUILayout.BeginHorizontal();
                    bool flag = !instance.unavailableIDList.Contains(perk.ID) ? true : false;
                    if (Application.isPlaying)
                    {
                        flag = !flag;                                                                           //switch it around in runtime
                    }
                    EditorGUILayout.LabelField(new GUIContent(" - enabled: ", "check to enable the perk in this level"), GUILayout.Width(70));
                    flag = EditorGUILayout.Toggle(flag);

                    if (!Application.isPlaying)
                    {
                        if (flag)
                        {
                            instance.unavailableIDList.Remove(perk.ID);
                        }
                        else
                        {
                            if (!instance.unavailableIDList.Contains(perk.ID))
                            {
                                instance.unavailableIDList.Add(perk.ID);
                                instance.purchasedIDList.Remove(perk.ID);
                            }
                        }
                    }

                    if (!instance.unavailableIDList.Contains(perk.ID))
                    {
                        flag = instance.purchasedIDList.Contains(perk.ID);
                        EditorGUILayout.LabelField(new GUIContent("- purchased:", "Check to set the perk as purchased right from the start"), GUILayout.Width(75));
                        flag = EditorGUILayout.Toggle(flag);
                        if (!flag)
                        {
                            instance.purchasedIDList.Remove(perk.ID);
                        }
                        else if (!instance.purchasedIDList.Contains(perk.ID))
                        {
                            instance.purchasedIDList.Add(perk.ID);
                        }
                    }

                    GUILayout.EndHorizontal();

                    GUILayout.EndVertical();

                    GUILayout.EndHorizontal();
                }
            }

            EditorGUILayout.Space();

            if (GUILayout.Button("Open PerkEditor"))
            {
                PerkEditorWindow.Init();
            }
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("", GUILayout.MaxWidth(10));
            showDefaultFlag = EditorGUILayout.Foldout(showDefaultFlag, "Show default editor");
            EditorGUILayout.EndHorizontal();
            if (showDefaultFlag)
            {
                DrawDefaultInspector();
            }


            if (GUI.changed)
            {
                EditorUtility.SetDirty(instance);
            }
        }