public void OnPreprocessBuild(BuildReport report)
        {
            PlayerProperties playerPropertiesAsset = Resources.Load <PlayerProperties>(PlayerProperties.ASSET_NAME);

            if (playerPropertiesAsset.RestoreOnBuild)
            {
                playerPropertiesAsset.Restore();
            }

            QuestAsset questAsset = Resources.Load <QuestAsset>(QuestAsset.ASSET_NAME);

            if (questAsset.RestoreOnBuild)
            {
                questAsset.Restore();
            }

            IntroductionAsset introAsset = Resources.Load <IntroductionAsset>(IntroductionAsset.ASSET_NAME);

            if (introAsset.RestoreOnBuild)
            {
                introAsset.Restore();
            }

            MiniGameSettingAsset minigameAsset = Resources.Load <MiniGameSettingAsset>(MiniGameSettingAsset.ASSET_NAME);

            if (minigameAsset.RestoreOnBuild)
            {
                minigameAsset.Restore();
            }

            Debug.Log($"Tried restoring scriptable object assets");
        }
Пример #2
0
    IEnumerator Flip(QuestAsset startImage, QuestAsset endImage, int cardIndex)
    {
        float time = 0f;

        while (time <= 1f)
        {
            float scale = scaleCurve.Evaluate(time);
            time += Time.deltaTime / duration;

            Vector3 localScale = transform.localScale;
            localScale.x         = scale;
            transform.localScale = localScale;

            yield return(new WaitForFixedUpdate());
        }

        if (cardIndex == -1)
        {
            model.ToggleFace(false);
        }
        else
        {
            model.questCardIndex = cardIndex;
            model.ToggleFace(true);
        }
    }
        public void OnQuestAddElement(ReorderableList reorderableList)
        {
            Undo.RecordObject(serializedObject.targetObject, "Add Quest Item");
            ReorderableList.defaultBehaviours.DoAddButton(reorderableList);
            serializedObject.ApplyModifiedProperties();
            QuestAsset p = CreateAsset <QuestAsset>(assetName: GetUniqueQuestName(typeof(QuestAsset).Name));

            reorderableList.serializedProperty.GetArrayElementAtIndex(reorderableList.serializedProperty.arraySize - 1).objectReferenceValue = p;
            serializedObject.ApplyModifiedProperties();
        }
Пример #4
0
        public void OnPreprocessBuild(BuildReport report)
        {
            PlayerPropertiesAsset playerPropertiesAsset = Resources.Load <PlayerPropertiesAsset>(PlayerPropertiesAsset.ASSET_NAME);

            if (playerPropertiesAsset.RestoreOnBuild)
            {
                playerPropertiesAsset.Restore();
            }

            QuestAsset questAsset = Resources.Load <QuestAsset>(QuestAsset.ASSET_NAME);

            if (questAsset.RestoreOnBuild)
            {
                questAsset.Restore();
            }
        }
        private void PrefixNames()
        {
            QuestAsset quest = ((QuestAsset)serializedObject.targetObject);

            if (quest == null)
            {
                return;
            }
            ProgressionPointAsset[] progressionPointArray = quest.GetProgressionPoints();
            for (int i = 0; i < progressionPointArray.Length; i++)
            {
                ProgressionPointAsset p = progressionPointArray[i];
                string intFormat        = new string('0', (progressionPointArray.Length / 10) + 1);
                p.name = quest.name + "_" + i.ToString(intFormat) + "|" + p.name;
            }
            EditorUtility.SetDirty(serializedObject.targetObject);
        }
Пример #6
0
        public void OnGUI()
        {
            EditorStyles.textField.wordWrap = true;
            TabBar();
            GUILayout.BeginHorizontal();
            switch (tabState)
            {
            case TabState.WEAPONS:
                Weapons();
                break;

            case TabState.CONSUMABLES:
                Consumables();
                break;

            case TabState.QUEST_ITEMS:
                QuestItems();
                break;

            default:
                About();
                break;
            }

            GUILayout.EndHorizontal();
            StatusBar();
            GUILayout.BeginHorizontal();

            if (GUILayout.Button("Create Weapon", EditorStyles.toolbarButton))
            {
                var newAsset = new WeaponAsset(WeaponDatabase.Instance.GetNextId());
                WeaponDatabase.Instance.Add(newAsset);
            }
            if (GUILayout.Button("Create Consumable", EditorStyles.toolbarButton))
            {
                var newAsset = new ConsumableAsset(ConsumableDatabase.Instance.GetNextId());
                ConsumableDatabase.Instance.Add(newAsset);
            }
            if (GUILayout.Button("Create Quest Item", EditorStyles.toolbarButton))
            {
                var newAsset = new QuestAsset(QuestDatabase.Instance.GetNextId());
                QuestDatabase.Instance.Add(newAsset);
            }
            GUILayout.EndHorizontal();
        }
        public void OnDisable()
        {
            QuestAsset quest = (QuestAsset)serializedObject.targetObject;

            if (quest == null)
            {
                return;
            }
            PrefixNames();
            ProgressionPointAsset[] progressionPointArray = quest.GetProgressionPoints();
            for (int i = 0; i < progressionPointArray.Length; i++)
            {
                if (AssetPath != AssetDatabase.GetAssetPath(progressionPointArray[i]))
                {
                    AssetDatabase.AddObjectToAsset(progressionPointArray[i], quest);
                }
            }
            EditorApplication.delayCall += () => AssetDatabase.ImportAsset(AssetPath);
        }
        public void OnQuestElementGUI(Rect rect, int index, bool isActive, bool isFocused)
        {
            SerializedProperty serializedProperty = questsProperty.GetArrayElementAtIndex(index);
            QuestAsset         quest = serializedProperty.objectReferenceValue as QuestAsset;

            serializedProperty.isExpanded = true;
            if (quest == null)
            {
                return;
            }
            if (isActive)
            {
                int original = GUI.skin.textField.fontSize;
                GUI.skin.textField.fontSize = original * 2;
                EditorGUI.BeginChangeCheck();
                GUIStyle style = new GUIStyle(GUI.skin.textField);
                style.fontSize = original * 2;
                GUI.SetNextControlName(quest.GetInstanceID().ToString());
                string newName = EditorGUI.DelayedTextField(rect, "", quest.name, style);
                if (GUI.GetNameOfFocusedControl() == quest.GetInstanceID().ToString())
                {
                    Rect helpRect = new Rect(rect.x, rect.y - EditorGUIUtility.singleLineHeight, rect.width, rect.height / 2);
                    EditorGUI.HelpBox(helpRect, "Press Enter To Submit", MessageType.Warning);
                }
                if (EditorGUI.EndChangeCheck())
                {
                    newName = GetUniqueQuestName(newName);
                    Undo.RecordObject(quest, "Change name from " + quest.name + " to " + newName);

                    quest.name = newName;
                    EditorUtility.SetDirty(quest);
                    serializedObject.ApplyModifiedProperties();
                    questsReorderableList.onSelectCallback(questsReorderableList);
                }
                GUI.skin.textField.fontSize = original;
            }
            else
            {
                EditorGUI.LabelField(rect, quest.name);
            }
        }
Пример #9
0
        public override void OnInspectorGUI()
        {
            DrawDefaultInspector();

            EditorGUILayout.Space(25f);
            GUIStyle style = new GUIStyle(GUI.skin.button)
            {
                alignment = TextAnchor.MiddleCenter, fontSize = 15, fontStyle = FontStyle.Italic, padding = new RectOffset(15, 15, 5, 5)
            };

            EditorGUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();

            if (GUILayout.Button(BUTTON_TEXT, style, GUILayout.ExpandWidth(false)))
            {
                QuestAsset asset = target as QuestAsset;
                asset.Restore();
            }

            GUILayout.FlexibleSpace();
            EditorGUILayout.EndHorizontal();
        }
        public void OnQuestRemoveElement(ReorderableList reorderableList)
        {
            Undo.RecordObject(serializedObject.targetObject, "Delete Quest Item");
            if (questEditor != null)
            {
                DestroyImmediate(questEditor);
            }
            QuestManagerAsset st = ((QuestManagerAsset)serializedObject.targetObject);
            QuestAsset        p  = st.GetQuests()[reorderableList.index];

            ProgressionPointAsset[] progressionPoints = p.GetProgressionPoints();
            for (int i = 0; i < progressionPoints.Length; i++)
            {
                DestroyAsset(progressionPoints[i]);
            }
            reorderableList.serializedProperty.DeleteArrayElementAtIndex(reorderableList.index);
            reorderableList.serializedProperty.MoveArrayElement(reorderableList.index, reorderableList.count - 1);
            reorderableList.serializedProperty.arraySize--;
            if (p != null)
            {
                DestroyAsset(p);
            }
        }
Пример #11
0
        public void QuestItems()
        {
            scrollPosition = GUILayout.BeginScrollView(scrollPosition);

            for (int i = 0; i < QuestDatabase.GetAssetCount(); i++)
            {
                QuestAsset asset = QuestDatabase.GetAt(i);
                if (asset != null)
                {
                    GUILayout.BeginHorizontal(EditorStyles.toolbar);
                    GUILayout.Label(string.Format("ID: {0}", asset.ID.ToString("D3")), GUILayout.Width(60));

                    bool clicked = GUILayout.Toggle(asset.ID == activeID, asset.Name, ToggleButtonStyle);

                    if (clicked != (asset.ID == activeID))
                    {
                        if (clicked)
                        {
                            activeID = asset.ID;
                            GUI.FocusControl(null);
                        }
                        else
                        {
                            activeID = -1;
                        }
                    }

                    if (GUILayout.Button("x", EditorStyles.toolbarButton, GUILayout.Width(30)) && EditorUtility.DisplayDialog("Delete Quest Item", "Are you sure you want to delete " + asset.Name + " Consumable?", "Delete", "Cancel"))
                    {
                        QuestDatabase.Instance.RemoveAt(i);
                    }

                    GUILayout.EndHorizontal();

                    if (activeID == asset.ID)
                    {
                        EditorGUI.BeginChangeCheck();

                        GUILayout.BeginVertical("Box");

                        GUILayout.BeginHorizontal();
                        //ITEM SPRITE
                        GUILayout.BeginVertical(GUILayout.Width(75)); //begin vertical
                        asset.Icon = (Sprite)EditorGUILayout.ObjectField(asset.Icon, typeof(Sprite), false, GUILayout.Width(72), GUILayout.Height(72));
                        GUILayout.Label("Item Sprite", GUILayout.Width(72));
                        GUILayout.EndVertical();   //end vertical

                        //ITEM CLASS
                        GUILayout.BeginVertical(); //begin vertical
                        GUILayout.Label("Item Class: " + asset.IType.ToString(), EditorStyles.boldLabel);

                        //NAME
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Name", GUILayout.Width(80));
                        asset.Name = EditorGUILayout.TextField(asset.Name);
                        GUILayout.EndHorizontal();

                        //DESCRIPTION
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Description", GUILayout.Width(80));
                        asset.Description = EditorGUILayout.TextArea(asset.Description, GUILayout.MinHeight(30));
                        GUILayout.EndHorizontal();

                        //COST
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Cost", GUILayout.Width(80));
                        asset.Cost = EditorGUILayout.IntField(asset.Cost);
                        GUILayout.EndHorizontal();

                        //STACKABLE
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Stackable", GUILayout.Width(80));
                        GUILayout.BeginVertical();
                        asset.Stackable = EditorGUILayout.BeginToggleGroup("Enabled", asset.Stackable);
                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Stack Size", GUILayout.Width(80));
                        asset.StackSize = EditorGUILayout.IntSlider(asset.StackSize, 2, 64);
                        GUILayout.EndHorizontal();
                        GUILayout.EndVertical();
                        GUILayout.EndHorizontal();
                        EditorGUILayout.EndToggleGroup();

                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Level", GUILayout.Width(80));
                        asset.Level = EditorGUILayout.IntSlider(asset.Level, 1, 99);
                        GUILayout.EndHorizontal();

                        GUILayout.BeginHorizontal();
                        GUILayout.Label("Weight", GUILayout.Width(80));
                        asset.Weight = EditorGUILayout.IntSlider(asset.Weight, 0, 99);
                        GUILayout.EndHorizontal();

                        GUILayout.Label("QuestItem Variables", EditorStyles.boldLabel);

                        GUILayout.EndVertical();

                        GUILayout.EndHorizontal();

                        GUILayout.EndVertical();
                        if (EditorGUI.EndChangeCheck())
                        {
                            EditorUtility.SetDirty(QuestDatabase.Instance);
                        }
                    }
                }
            }
            GUILayout.EndScrollView();
        }
Пример #12
0
 public void FlipCard(QuestAsset startImage, QuestAsset endImage, int cardIndex)
 {
     StopCoroutine(Flip(startImage, endImage, cardIndex));
     StartCoroutine(Flip(startImage, endImage, cardIndex));
 }