Esempio n. 1
0
        /// <summary>
        /// Draw item type
        /// </summary>
        private static void DrawUsesAmmo()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
            SimpleLayout.BeginHorizontal();
            SimpleLayout.Label("Uses Ammunition" + ":");
            boolFields[3].value = SimpleLayout.BoolField(boolFields[3].value);
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            if (boolFields[3].value)
            {
                SimpleLayout.Space(5);
                SimpleLayout.Line();

                // item type field
                DropDownValues itemList = HeroKitCommon.databaseList(HeroKitCommon.ammunitionTypeDatabase);

                SimpleLayout.BeginHorizontal();
                intFields[2].value = SimpleLayout.DropDownList(intFields[2].value, itemList, 0, HeroKit.Editor.HeroKitCommon.GetWidthForField(60, 200));
                SimpleLayout.Label("Ammunition type");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();

                SimpleLayout.BeginHorizontal();
                intFields[3].value = SimpleLayout.IntField(intFields[3].value);
                SimpleLayout.Label("Range (in meters)");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }

            SimpleLayout.EndVertical();
        }
Esempio n. 2
0
        /// <summary>
        /// Draw exp meter
        /// </summary>
        private static void DrawExpMeter()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            boolFields[6].value = SimpleLayout.BoolField(boolFields[6].value);
            SimpleLayout.Label("Ability has Experience Meter");
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            if (boolFields[6].value)
            {
                SimpleLayout.BeginHorizontal();
                intFields[11].value = SimpleLayout.IntField(intFields[11].value);
                SimpleLayout.Label("Experience gained per use of this ability");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();

                SimpleLayout.BeginHorizontal();
                intFields[10].value = SimpleLayout.IntField(intFields[10].value);
                SimpleLayout.Label("Experience needed to morph ability");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();

                DropDownValues itemList = HeroKitCommon.databaseList(HeroKitCommon.abilityDatabase);
                SimpleLayout.BeginHorizontal();
                intFields[12].value = SimpleLayout.DropDownList(intFields[12].value, itemList, 0, HeroKit.Editor.HeroKitCommon.GetWidthForField(60, 250));
                SimpleLayout.Label("Morph into...");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }

            SimpleLayout.EndVertical();
        }
Esempio n. 3
0
        /// <summary>
        /// Draw item type
        /// </summary>
        private static void DrawTarget2()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
            SimpleLayout.BeginHorizontal();
            SimpleLayout.Label("Uses Ammunition" + ":");
            boolFields[3].value = SimpleLayout.BoolField(boolFields[3].value);
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            if (boolFields[3].value)
            {
                SimpleLayout.Space(5);
                SimpleLayout.Line();

                // item type field
                string[]       items    = { "Another Character", "Caster" };
                DropDownValues itemList = new DropDownValues();
                itemList.setValues("", items);

                SimpleLayout.BeginHorizontal();
                intFields[1].value = SimpleLayout.DropDownList(intFields[1].value, itemList, 0, HeroKit.Editor.HeroKitCommon.GetWidthForField(60, 200));
                SimpleLayout.Label("Target");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();

                SimpleLayout.BeginHorizontal();
                intFields[17].value = SimpleLayout.IntField(intFields[17].value);
                SimpleLayout.Label("Range (in meters)");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }

            SimpleLayout.EndVertical();
        }
Esempio n. 4
0
        private static void DrawTimerEndCond()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            boolFields[0].value = SimpleLayout.BoolField(boolFields[0].value);
            SimpleLayout.Label("Turn off condition with timer");
            SimpleLayout.EndHorizontal();

            if (boolFields[0].value)
            {
                SimpleLayout.Line();

                // list of stat change types
                DropDownValues changeTypeValues = new DropDownValues();
                string[]       changeType       = { "Seconds", "Minutes", "Hours" };
                changeTypeValues.setValues("", changeType);

                SimpleLayout.BeginHorizontal();
                intFields[0].value = SimpleLayout.DropDownList(intFields[0].value, changeTypeValues, 0, 150);
                intFields[1].value = SimpleLayout.IntField(intFields[1].value, 150);
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }


            SimpleLayout.EndVertical();
        }
Esempio n. 5
0
 /// <summary>
 /// Draw item type
 /// </summary>
 private static void DrawIsTwoHanded()
 {
     SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
     SimpleLayout.BeginHorizontal();
     SimpleLayout.Label("Two-Handed Weapon" + ":");
     boolFields[2].value = SimpleLayout.BoolField(boolFields[2].value);
     SimpleLayout.Space();
     SimpleLayout.EndHorizontal();
     SimpleLayout.EndVertical();
 }
Esempio n. 6
0
        private static void DrawCantBeAttacked()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            boolFields[4].value = SimpleLayout.BoolField(boolFields[4].value);
            SimpleLayout.Label("Character can't be attacked");
            SimpleLayout.EndHorizontal();

            SimpleLayout.EndVertical();
        }
Esempio n. 7
0
        /// <summary>
        /// Draw item type
        /// </summary>
        private static void DrawTarget()
        {
            // item type field
            string[]       items    = { "Enemies", "Friends", "Caster", "Enemies and Friends", "All" };
            DropDownValues itemList = new DropDownValues();

            itemList.setValues("", items);

            // item type field
            string[]       scope     = { "All", "Some", "One" };
            DropDownValues scopeList = new DropDownValues();

            scopeList.setValues("", scope);

            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            intFields[1].value = SimpleLayout.DropDownList(intFields[1].value, itemList, 0, HeroKit.Editor.HeroKitCommon.GetWidthForField(60, 250));
            SimpleLayout.Label("Target");
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            SimpleLayout.BeginHorizontal();
            intFields[7].value = SimpleLayout.DropDownList(intFields[7].value, scopeList, 0, HeroKit.Editor.HeroKitCommon.GetWidthForField(60, 250));
            SimpleLayout.Label("Scope");
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            if (intFields[7].value == 2)
            {
                SimpleLayout.BeginHorizontal();
                intFields[8].value = SimpleLayout.IntField(intFields[8].value);
                SimpleLayout.Label("Max number of targets");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();

                SimpleLayout.BeginHorizontal();
                boolFields[4].value = SimpleLayout.BoolField(boolFields[4].value);
                SimpleLayout.Label("Random");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }

            SimpleLayout.EndVertical();
        }
Esempio n. 8
0
        /// <summary>
        /// Fields for the hero property (bools).
        /// </summary>
        private static void DrawBools()
        {
            List <BoolField> items = propertyBlock.itemProperties.bools.items;

            // exit early if there are no values
            if (items == null || items.Count == 0)
            {
                return;
            }

            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.Label(items[i].name + ":");
                items[i].value = SimpleLayout.BoolField(items[i].value);
            }
            SimpleLayout.EndVertical();
        }
Esempio n. 9
0
        /// <summary>
        /// Draw chain attack
        /// </summary>
        private static void DrawChainAttack()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            boolFields[5].value = SimpleLayout.BoolField(boolFields[5].value);
            SimpleLayout.Label("Chain attack (pass attack to others in range of target that is hit)");
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            if (boolFields[5].value)
            {
                SimpleLayout.BeginHorizontal();
                intFields[9].value = SimpleLayout.IntField(intFields[9].value);
                SimpleLayout.Label("Radius around target");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }

            SimpleLayout.EndVertical();
        }
Esempio n. 10
0
        /// <summary>
        /// Draw the body of the block.
        /// </summary>
        private static void DrawItems()
        {
            // exit early if there are no items
            if (items == null || items.Count == 0)
            {
                HeroKitCommon.DrawNoItemsInList(blockName);
                return;
            }

            SimpleLayout.BeginVertical(Box.StyleCanvasBox);

            // display items (move up, move down, int field,
            for (int i = 0; i < items.Count; i++)
            {
                SimpleLayout.BeginHorizontal();
                HeroKitCommon.DrawListArrows(moveItemUp, moveItemDown, i);
                SimpleLayout.BeginVertical();

                items[i].name  = SimpleLayout.StringListField(items[i].name, HeroKitCommon.GetWidthForField(270, 150));
                items[i].value = SimpleLayout.StringListField(items[i].value, HeroKitCommon.GetWidthForField(270, 150), items[i].useTextField);

                SimpleLayout.BeginHorizontal();
                items[i].useVariables = SimpleLayout.BoolField("Use variables", 80, items[i].useVariables, 20);
                items[i].useTextField = SimpleLayout.BoolField("Use text field", 80, items[i].useTextField, 20);
                SimpleLayout.EndHorizontal();

                SimpleLayout.EndVertical();
                HeroKitCommon.DrawListButtons(addItem, copyItem, pasteItem, deleteItem, i);
                SimpleLayout.EndHorizontal();

                if (i != items.Count - 1)
                {
                    SimpleLayout.Line();
                }
            }

            SimpleLayout.EndVertical();

            SimpleLayout.Space(20);
        }
Esempio n. 11
0
        // --------------------------------------------------------------
        // Action Fields
        // --------------------------------------------------------------

        /// <summary>
        /// Get a bool.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionField">Action field.</param>
        /// <param name="titleToLeft">Show the title on the left?</param>
        /// <returns>The result.</returns>
        public static bool BuildField(string title, HeroActionParams actionParams, HeroActionField actionField, bool titleToLeft = false)
        {
            // create the fields
            BoolValueData data = CreateFieldData(title, actionField);

            //-----------------------------------------
            // Display this title above the field
            //-----------------------------------------
            if (data.title != "" && !titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }
            SimpleLayout.BeginHorizontal();
            if (data.title != "" && titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }

            //-----------------------------------------
            // Get the bool list you want to work with.
            // The bool list is in hero object editor > Variables
            //-----------------------------------------
            data.fieldValue = SimpleLayout.BoolField(data.fieldValue);

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionField.bools[0] = data.fieldValue;

            //-----------------------------------------
            // Visual stuff
            //-----------------------------------------
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();

            // return result
            return(actionField.bools[0]);
        }
Esempio n. 12
0
        private static void DrawAttackEndCond()
        {
            SimpleLayout.BeginVertical(SimpleGUI.Fields.Box.StyleB);

            SimpleLayout.BeginHorizontal();
            boolFields[1].value = SimpleLayout.BoolField(boolFields[1].value);
            SimpleLayout.Label("Turn off condition when character is attacked");
            SimpleLayout.EndHorizontal();

            if (boolFields[1].value)
            {
                SimpleLayout.Line();
                SimpleLayout.BeginHorizontal();
                SimpleLayout.Label("Chance:");
                intFields[1].value = SimpleLayout.IntField(intFields[1].value, 150);
                SimpleLayout.Label("%");
                SimpleLayout.Space();
                SimpleLayout.EndHorizontal();
            }


            SimpleLayout.EndVertical();
        }
Esempio n. 13
0
        // --------------------------------------------------------------
        // Action Fields
        // --------------------------------------------------------------

        /// <summary>
        /// Get a value from a bool field.
        /// This is for a field that contains Value, Variable, Property, Global.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionField">Action field.</param>
        /// <param name="titleToLeft">Show the title on the left?</param>
        public static void BuildFieldA(string title, HeroActionParams actionParams, HeroActionField actionField, bool titleToLeft = false)
        {
            // create the fields
            BoolFieldData data = CreateFieldData(title, actionField, actionParams.heroObject);

            //-----------------------------------------
            // Display this title above the field
            //-----------------------------------------
            if (data.title != "" && !titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }
            SimpleLayout.BeginHorizontal();
            if (data.title != "" && titleToLeft)
            {
                SimpleLayout.Label(data.title);
            }

            //-----------------------------------------
            // Get the type of field you want to work with.
            //-----------------------------------------
            data.fieldType = new HeroField.ValueTypeField().SetValues(data.fieldType, 0);

            //-----------------------------------------
            // Get the type of game object we are working with
            // Option 1: This game object (game object that this hero object is attached to)
            // Option 2: Another game object (another game object in the scene that has a hero object attached to it)
            //-----------------------------------------
            if (data.fieldType == 2 || data.fieldType == 3)
            {
                data = ActionCommon.GetTargetHeroObject(data);
            }

            //-----------------------------------------
            // Get the integer list you want to work with.
            // The integer list is in hero object editor > Variables
            //-----------------------------------------

            // if this is a field, draw field (1=value)
            if (data.fieldType == 1)
            {
                data.fieldValue = SimpleLayout.BoolField(data.fieldValue);
            }

            // if this is a list, draw ints (2=variables, 3=properties)
            if (data.fieldType != 1)
            {
                data = SetPropertyID(data, -1);
                List <BoolField> items = GetItemsFromList(data, -1);
                data = BuildItemFieldList(data, items);
            }

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionField.ints[0]        = data.objectType;
            actionField.ints[1]        = data.objectID;
            actionField.ints[2]        = data.fieldID;
            actionField.ints[3]        = data.fieldType;
            actionField.ints[4]        = data.heroGUID;
            actionField.ints[5]        = data.propertyID;
            actionField.heroObjects[0] = data.targetHeroObject;
            actionField.strings[0]     = data.objectName;
            actionField.bools[0]       = data.fieldValue;

            //-----------------------------------------
            // Visual stuff
            //-----------------------------------------
            SimpleLayout.Space();
            SimpleLayout.EndHorizontal();
        }
Esempio n. 14
0
        /// <summary>
        /// Get a value from a bool field on an event.
        /// This is for a field that contains Value, Variable, Property, Global.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="boolData">Current data for this action field.</param>
        /// <param name="heroObject">Hero object that is the target of this action.</param>
        public static void BuildEventField(string title, ConditionBoolField boolData, HeroObject heroObject)
        {
            BoolFieldData data = new BoolFieldData();

            data.heroObject       = heroObject;
            data.targetHeroObject = boolData.targetHeroObject;
            data.objectType       = boolData.objectType;
            data.objectID         = boolData.objectID;
            data.fieldID          = boolData.fieldID;
            data.fieldType        = boolData.fieldType;
            data.heroGUID         = boolData.heroGUID;
            data.propertyID       = boolData.propertyID;
            data.objectName       = boolData.objectName;
            data.fieldValue       = boolData.fieldValue;

            SimpleLayout.Label(title);

            //-----------------------------------------
            // Get the type of field you want to work with.
            //-----------------------------------------
            data.fieldType = new HeroField.ValueTypeField().SetValues(data.fieldType, 0);

            //-----------------------------------------
            // Get the type of game object we are working with
            // Option 1: This game object (game object that this hero object is attached to)
            // Option 2: Another game object (another game object in the scene that has a hero object attached to it)
            //-----------------------------------------
            if (data.fieldType == 2 || data.fieldType == 3)
            {
                data = ActionCommon.GetTargetHeroObject(data);
            }

            //-----------------------------------------
            // Get the list you want to work with.
            // The list is in hero object editor > Variables
            //-----------------------------------------

            // if this is a field, draw field (1=value)
            if (data.fieldType == 1)
            {
                data.fieldValue = SimpleLayout.BoolField(data.fieldValue);
            }

            // if this is a list, draw ints (2=variables, 3=properties)
            if (data.fieldType != 1)
            {
                data = SetPropertyID(data, -1);
                List <BoolField> items = GetItemsFromList(data, -1);
                data = BuildItemFieldList(data, items);
            }

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            boolData.objectType       = data.objectType;
            boolData.objectID         = data.objectID;
            boolData.fieldID          = data.fieldID;
            boolData.fieldType        = data.fieldType;
            boolData.heroGUID         = data.heroGUID;
            boolData.propertyID       = data.propertyID;
            boolData.targetHeroObject = data.targetHeroObject;
            boolData.objectName       = data.objectName;
            boolData.fieldValue       = data.fieldValue;
        }