Esempio n. 1
0
        /// <summary>
        /// Get a value from a field in a script and save this value on a hero kit object.
        /// </summary>
        /// <param name="title">Title for action field.</param>
        /// <param name="actionParams">Action field parameters.</param>
        /// <param name="actionFieldA">Action field.</param>
        /// <param name="actionFieldB">Action field.</param>
        /// <param name="script">The script.</param>
        public static void BuildFieldB(string title, HeroActionParams actionParams, HeroActionField actionFieldA, HeroActionField actionFieldB, MonoScript script)
        {
            // create the fields
            FieldInfoFieldData data = CreateFieldData(title, actionFieldA, actionParams.heroObject);

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

            //-----------------------------------------
            // Get the list you want to work with.
            //-----------------------------------------
            FieldInfo[] fields = GetFields(script);
            data = BuildItemFieldList(data, fields);

            if (fields != null && fields.Length != 0 && data.fieldID > 0)
            {
                FieldInfo field = fields[data.fieldID - 1];
                SetFieldOnHero(field, actionParams, actionFieldB);
            }

            //-----------------------------------------
            // assign values back to hero object fields
            //-----------------------------------------
            actionFieldA.ints[0] = data.fieldID;
        }
Esempio n. 2
0
        // --------------------------------------------------------------
        // Initialize Action Field
        // --------------------------------------------------------------

        /// <summary>
        /// Create the subfields that we need for this action field.
        /// </summary>
        /// <param name="title">The title of the action.</param>
        /// <param name="actionField">The action field.</param>
        /// <param name="heroObject">The hero object that contains this action field.</param>
        /// <returns>The data for this action field.</returns>
        private static FieldInfoFieldData CreateFieldData(string title, HeroActionField actionField, HeroObject heroObject)
        {
            FieldInfoFieldData data = new FieldInfoFieldData();

            data.Init(ref actionField);
            data.title   = title;
            data.fieldID = actionField.ints[0];
            data.startID = actionField.ints[1];
            data.endID   = actionField.ints[2];
            return(data);
        }
Esempio n. 3
0
        /// <summary>
        /// Create a drop-down list of script fields in the action field.
        /// </summary>
        /// <param name="data">Current data for this action field.</param>
        /// <param name="items">A list of script fields.</param>
        /// <returns>The data for this action field.</returns>
        private static FieldInfoFieldData BuildItemFieldList(FieldInfoFieldData data, FieldInfo[] items)
        {
            // there are no fields in the script.
            if (items.Length == 0)
            {
                data.fieldID = 0;
            }
            // everything looks okay. draw list.
            else
            {
                // if we are referencing a field that no longer exists, reset field.
                if (items.Length < data.fieldID)
                {
                    data.fieldID = 0;
                }

                // draw the list
                data.fieldID = HeroField.FieldInfoListField.SetValues(items, data.fieldID, 0);
            }

            return(data);
        }