Exemplo n.º 1
0
    private void OnGUI()
    {
        minSize        = new Vector2(350, 350);
        scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUIStyle.none, GUI.skin.verticalScrollbar);
        EditorGUILayout.LabelField("New Melee Attack", CustomStyles.titles);
        EditorGUILayout.Space();
        attackName = EditorGUILayout.TextField("Attack Name", attackName);
        EditorGUILayout.Space();
        attackDescription = EditorGUILayout.TextField("Attack Description", attackDescription);
        EditorGUILayout.Space();
        baseDamage = EditorGUILayout.FloatField("Base Damage", baseDamage);
        if (baseDamage < 0)
        {
            baseDamage = 0;
        }
        EditorGUILayout.Space();
        isAreaAttack = EditorGUILayout.Toggle("Is Area Attack?", isAreaAttack);
        EditorGUILayout.Space();

        isMultipleAttack = EditorGUILayout.Toggle("Is Multiple Attack?", isMultipleAttack);
        if (isMultipleAttack)
        {
            EditorGUILayout.Space();
            attackQty = EditorGUILayout.IntField("Attacks Quantity", attackQty);
            if (attackQty < 2)
            {
                attackQty = 2;
            }
        }
        else
        {
            attackQty = 1;
        }
        EditorGUILayout.Space();

        levelRequirement = EditorGUILayout.IntField("Level Requirement", levelRequirement);
        if (levelRequirement < 0)
        {
            levelRequirement = 0;
        }
        EditorGUILayout.Space();
        jobRequirement = (JobsEnum.Jobs)EditorGUILayout.EnumPopup("Job Requirement", jobRequirement);
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Add Color"))
        {
            colorList.Add(ColorsEnum.Colors.BLUE);
            colorIndex.Add(colorList.Count);
        }
        if (colorIndex.Count > 0)
        {
            if (GUILayout.Button("Remove Color"))
            {
                colorList.RemoveAt(colorIndex.Count - 1);
                colorIndex.RemoveAt(colorIndex.Count - 1);
            }
        }
        EditorGUILayout.EndHorizontal();
        foreach (int actualColor in colorIndex)
        {
            int index = colorIndex.IndexOf(actualColor);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("color " + actualColor + ":");
            colorList[index] = (ColorsEnum.Colors)EditorGUILayout.EnumPopup(colorList[index]);
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Add Tag"))
        {
            tagList.Add(AttackTagsEnum.Tags.SLASH);
            tagIndex.Add(tagList.Count);
        }
        if (colorIndex.Count > 0)
        {
            if (GUILayout.Button("Remove Tag"))
            {
                tagList.RemoveAt(tagIndex.Count - 1);
                tagIndex.RemoveAt(tagIndex.Count - 1);
            }
        }
        EditorGUILayout.EndHorizontal();
        foreach (int actualTag in tagIndex)
        {
            int index = tagIndex.IndexOf(actualTag);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Tag " + actualTag + ":");
            tagList[index] = (AttackTagsEnum.Tags)EditorGUILayout.EnumPopup(tagList[index]);
            EditorGUILayout.EndHorizontal();
        }
        EditorGUILayout.Space();
        EditorGUILayout.Space();

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Create"))
        {
            if (attackName == null)
            {
                ShowError("Attack must have a name");
            }
            else
            {
                CreateAttack();
            }
        }
        if (GUILayout.Button("Return"))
        {
            AttackWindow.OpenWindow();
            Close();
        }
        EditorGUILayout.EndHorizontal();
        GUILayout.Space(15);
        EditorGUILayout.EndScrollView();
    }
Exemplo n.º 2
0
    private void OnGUI()
    {
        minSize        = new Vector2(350, 350);
        scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUIStyle.none, GUI.skin.verticalScrollbar);
        EditorGUILayout.LabelField("Edit Melee Attack", CustomStyles.titles);
        EditorGUILayout.Space();
        if (baseAttack != null)
        {
            EditorGUILayout.LabelField(baseAttack.attackName, CustomStyles.subtitles);
            EditorGUILayout.Space();
            EditorGUILayout.Space();
            baseAttack.attackDescription = EditorGUILayout.TextField("Attack Description", baseAttack.attackDescription);
            EditorGUILayout.Space();
            baseAttack.baseDamage = EditorGUILayout.FloatField("Base Damage", baseAttack.baseDamage);
            if (baseAttack.baseDamage < 0)
            {
                baseAttack.baseDamage = 0;
            }
            EditorGUILayout.Space();
            baseAttack.isAreaAttack = EditorGUILayout.Toggle("Is Area Attack?", baseAttack.isAreaAttack);
            EditorGUILayout.Space();

            isMultiple = EditorGUILayout.Toggle("Is Multiple Attack?", isMultiple);
            if (isMultiple)
            {
                EditorGUILayout.Space();
                baseAttack.attackQty = EditorGUILayout.IntField("Attacks Quantity", baseAttack.attackQty);
                if (baseAttack.attackQty < 2)
                {
                    baseAttack.attackQty = 2;
                }
            }
            else
            {
                baseAttack.attackQty = 1;
            }
            EditorGUILayout.Space();

            baseAttack.levelRequirement = EditorGUILayout.IntField("Level Requirement", baseAttack.levelRequirement);
            if (baseAttack.levelRequirement < 0)
            {
                baseAttack.levelRequirement = 0;
            }
            EditorGUILayout.Space();
            baseAttack.jobsRequirement = (JobsEnum.Jobs)EditorGUILayout.EnumPopup("Job Requirement", baseAttack.jobsRequirement);
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Add Color"))
            {
                baseAttack.listOfColors.Add(ColorsEnum.Colors.BLUE);
                colorIndex.Add(baseAttack.listOfColors.Count);
            }
            if (colorIndex.Count > 0)
            {
                if (GUILayout.Button("Remove Color"))
                {
                    baseAttack.listOfColors.RemoveAt(colorIndex.Count - 1);
                    colorIndex.RemoveAt(colorIndex.Count - 1);
                }
            }
            EditorGUILayout.EndHorizontal();

            foreach (int actualColor in colorIndex)
            {
                int index = colorIndex.IndexOf(actualColor);
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("color" + actualColor + ":");
                baseAttack.listOfColors[index] = (ColorsEnum.Colors)EditorGUILayout.EnumPopup(baseAttack.listOfColors[index]);
                EditorGUILayout.EndHorizontal();
            }

            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Add Tag"))
            {
                baseAttack.listOfTags.Add(AttackTagsEnum.Tags.SLASH);
                tagIndex.Add(baseAttack.listOfTags.Count);
            }
            if (colorIndex.Count > 0)
            {
                if (GUILayout.Button("Remove Tag"))
                {
                    baseAttack.listOfTags.RemoveAt(tagIndex.Count - 1);
                    tagIndex.RemoveAt(tagIndex.Count - 1);
                }
            }
            EditorGUILayout.EndHorizontal();

            foreach (int actualTag in tagIndex)
            {
                int index = tagIndex.IndexOf(actualTag);
                EditorGUILayout.BeginHorizontal();
                EditorGUILayout.LabelField("Tag " + actualTag + ":");
                baseAttack.listOfTags[index] = (AttackTagsEnum.Tags)EditorGUILayout.EnumPopup(baseAttack.listOfTags[index]);
                EditorGUILayout.EndHorizontal();
            }
            EditorGUILayout.Space();
            EditorGUILayout.Space();

            EditorGUILayout.BeginHorizontal();
            if (GUILayout.Button("Save Changes"))
            {
                Save();
            }
            if (GUILayout.Button("Cancel"))
            {
                AttackWindow.OpenWindow();
                Close();
            }
            EditorGUILayout.EndHorizontal();
            GUILayout.Space(15);
        }
        EditorGUILayout.EndScrollView();
    }
Exemplo n.º 3
0
    private void OnGUI()
    {
        minSize        = new Vector2(350, 350);
        scrollPosition = GUILayout.BeginScrollView(scrollPosition, false, true, GUIStyle.none, GUI.skin.verticalScrollbar);
        EditorGUILayout.LabelField("Edit Combination Attack", CustomStyles.titles);
        EditorGUILayout.Space();
        baseAttack.attackName = EditorGUILayout.TextField("Attack Name", baseAttack.attackName);
        EditorGUILayout.Space();
        baseAttack.attackDescription = EditorGUILayout.TextField("Attack Description", baseAttack.attackDescription);
        EditorGUILayout.Space();

        baseAttack.isBuff = EditorGUILayout.Toggle("Is Buff?", baseAttack.isBuff);
        EditorGUILayout.Space();
        if (!baseAttack.isBuff)
        {
            baseAttack.baseDamage = EditorGUILayout.FloatField("Base Damage", baseAttack.baseDamage);
            if (baseAttack.baseDamage < 0)
            {
                baseAttack.baseDamage = 0;
            }
            EditorGUILayout.Space();
        }

        isMultipleAttack = EditorGUILayout.Toggle("Is Multiple Attack?", isMultipleAttack);
        if (isMultipleAttack)
        {
            EditorGUILayout.Space();
            baseAttack.attackQty = EditorGUILayout.IntField("Attacks Quantity", baseAttack.attackQty);
            if (baseAttack.attackQty < 2)
            {
                baseAttack.attackQty = 2;
            }
        }
        else
        {
            baseAttack.attackQty = 1;
        }
        EditorGUILayout.Space();

        baseAttack.isAreaAttack = EditorGUILayout.Toggle("Is Area Attack?", baseAttack.isAreaAttack);
        EditorGUILayout.Space();

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Add Color"))
        {
            baseAttack.listOfColors.Add(ColorsEnum.Colors.BLUE);
            colorIndex.Add(baseAttack.listOfColors.Count);
        }
        if (colorIndex.Count > 0)
        {
            if (GUILayout.Button("Remove Color"))
            {
                baseAttack.listOfColors.RemoveAt(colorIndex.Count - 1);
                colorIndex.RemoveAt(colorIndex.Count - 1);
            }
        }
        EditorGUILayout.EndHorizontal();

        foreach (int actualColor in colorIndex)
        {
            int index = colorIndex.IndexOf(actualColor);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("color" + actualColor + ":");
            baseAttack.listOfColors[index] = (ColorsEnum.Colors)EditorGUILayout.EnumPopup(baseAttack.listOfColors[index]);
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();

        if (baseAttack.combinationOfAttacks.Count == 2)
        {
            if (GUILayout.Button("Add Attack"))
            {
                attacksIndex.Add(2);
                baseAttack.combinationOfAttacks.Add(null);
            }
        }
        else
        {
            if (baseAttack.combinationOfAttacks.Count == 3)
            {
                if (GUILayout.Button("Remove Attack"))
                {
                    attacksIndex.Remove(2);
                    baseAttack.combinationOfAttacks.RemoveAt(2);
                }
            }
        }

        foreach (int actualAttack in attacksIndex)
        {
            int index = attacksIndex.IndexOf(actualAttack);
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.LabelField("Attack" + actualAttack + ":");
            baseAttack.combinationOfAttacks[index] = (BaseAttack)EditorGUILayout.ObjectField(baseAttack.combinationOfAttacks[index], typeof(BaseAttack), true);;
            EditorGUILayout.EndHorizontal();
        }

        EditorGUILayout.Space();
        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Save Changes"))
        {
            foreach (BaseAttack actualAttack in baseAttack.combinationOfAttacks)
            {
                if (actualAttack == null)
                {
                    ShowError("There´s a null attack");
                    OnGUI();
                }
            }
            Save();
        }
        if (GUILayout.Button("Return"))
        {
            AttackWindow.OpenWindow();
            Close();
        }
        EditorGUILayout.EndHorizontal();
        EditorGUILayout.EndScrollView();
    }