Exemplo n.º 1
0
        public static void DrawTargetEvents(ICECreatureControl _control, TargetObject _target)
        {
            if (_target == null)
            {
                return;
            }

            ICEWorldBehaviour _behaviour = null;

            if (_target.TargetGameObject != null)
            {
                _behaviour = _target.TargetGameObject.GetComponent <ICEWorldBehaviour>();
            }

            CreatureObjectEditor.DrawEventsObject(_behaviour, _target.Events, EditorHeaderType.FOLDOUT_ENABLED, EditorHeaderType.FOLDOUT_ENABLED, Info.TARGET_EVENT, "Target Events");
        }
        /// <summary>
        /// Draws the behaviour mode rule.
        /// </summary>
        /// <param name="_index">_index.</param>
        /// <param name="_list">_list.</param>
        public static void DrawBehaviourModeRule(ICECreatureControl _control, BehaviourModeObject _mode, int _index, List <BehaviourModeRuleObject> _list, string _key)
        {
            BehaviourModeRuleObject _rule = _list[_index];

            if (_rule == null)
            {
                return;
            }

            if (_list.Count > 1)
            {
                EditorGUI.indentLevel++;

                ICEEditorStyle.SplitterByIndent(EditorGUI.indentLevel);

                ICEEditorLayout.BeginHorizontal();
                EditorGUI.BeginDisabledGroup(_rule.Enabled == false);
                _rule.Foldout = EditorGUILayout.Foldout(_rule.Foldout, _key + " Rule #" + (_index + 1), ICEEditorStyle.Foldout);
                EditorGUI.EndDisabledGroup();

                GUILayout.FlexibleSpace();

                ICEEditorLayout.StatusButton("ACTIVE", _rule.Active == false, Color.green);

                if (ICEEditorLayout.CopyButtonMiddle())
                {
                    _list.Add(new BehaviourModeRuleObject(_rule));
                }

                GUILayout.Space(5);
                if (ICEEditorLayout.ListDeleteButton <BehaviourModeRuleObject>(_list, _rule, "Removes this rule."))
                {
                    return;
                }

                if (ICEEditorLayout.ListUpDownButtons <BehaviourModeRuleObject>(_list, _list.IndexOf(_rule)))
                {
                    return;
                }



                _rule.Enabled = ICEEditorLayout.EnableButton("Enables/disables this rule", _rule.Enabled);

                ICEEditorLayout.EndHorizontal(Info.BEHAVIOUR_MODE_RULE);
            }
            else
            {
                _rule.Foldout = true;
                _rule.Enabled = true;
            }

            if (_rule.Foldout)
            {
                EditorHeaderType _header     = EditorHeaderType.FOLDOUT_ENABLED_BOLD;
                EditorHeaderType _sub_header = EditorHeaderType.FOLDOUT_ENABLED_BOLD;

                EditorGUI.BeginDisabledGroup(_rule.Enabled == false);

                // WEIGHTEDRANDOM BEGIN
                if (_list.Count > 1 && _mode.RulesOrderType == SequenceOrderType.WEIGHTEDRANDOM)
                {
                    _rule.Weight = ICEEditorLayout.DefaultSlider("Weight", "Weight Value for WEIGHTEDRANDOM Sequence Type, relative to other rules weight value", _rule.Weight, Init.DECIMAL_PRECISION, 0, 100, 1, Info.BEHAVIOUR_MODE_RULE_WEIGHT);
                }
                // WEIGHTEDRANDOM END

                EditorGUI.indentLevel++;

                // CUSTOM LENGTH BEGIN
                if (_list.Count > 1 || _rule.Link.Enabled)
                {
                    DrawBehaviourCustomLength(_control, _rule, _header);
                }
                // CUSTOM LENGTH END

                CreatureBehaviourEditor.DrawBehaviourAnimation(_control, _mode, _rule, _header);
                CreatureBehaviourEditor.DrawBehaviourMove(_control, _mode, _rule, _header);
                CreatureObjectEditor.DrawInfluenceObject(_mode, _rule.Influences, _header, _control.Creature.Status.UseAdvanced, _control.Creature.Status.InitialDurabilityMax, Info.BEHAVIOUR_INFLUENCES);
                CreatureObjectEditor.DrawInventoryActionObject(_control, _rule.Inventory, _header, Info.BEHAVIOUR_INVENTORY);
                CreatureObjectEditor.DrawAudioObject(_rule.Audio, _header, Info.BEHAVIOUR_AUDIO);
                CreatureObjectEditor.DrawEventsObject(_control, _rule.Events, _header, _sub_header, Info.BEHAVIOUR_EVENTS);
                CreatureObjectEditor.DrawLookDataObject(_rule.Look, _header, Info.BEHAVIOUR_LOOK);
                CreatureObjectEditor.DrawEffectObject(_control, _rule.Effect, _header, Info.BEHAVIOUR_EFFECT);
                CreatureBehaviourEditor.DrawBehaviourModeRuleLinkObject(_control, _list, _rule.Link, _header, Info.BEHAVIOUR_LINK, "", "", _key + "_" + _index);

                EditorGUILayout.Separator();
                EditorGUI.EndDisabledGroup();
                EditorGUI.indentLevel--;
            }

            if (_list.Count > 1)
            {
                EditorGUI.indentLevel--;
            }
        }