Exemple #1
0
    void DrawBuffUI()
    {
        if (Title("Buff Data : ", 10))
        {
            ability.maxLevel = (int)CreateBaseData(typeof(int), "Max Level", ability.maxLevel);
            ability.maxStack = (int)CreateBaseData(typeof(int), "Max Stack", ability.maxStack);
            CreateBuffDataInfo(ref ability.Buff_Data);
        }

        EditorGUILayout.Space(10);
        EditorGUI.indentLevel = 0;
        EditorGUILayout.PropertyField(Buff_Modifiers, new GUIContent("Modifiers : "));
        while (ability.Buff_Modifiers.Count <= Buff_Modifiers.arraySize)
        {
            ability.Buff_Modifiers.Add(new Editor_FModifierData());
        }
        while (ability.Buff_Modifiers.Count > Buff_Modifiers.arraySize)
        {
            ability.Buff_Modifiers.RemoveAt(ability.Buff_Modifiers.Count - 1);
        }

        for (int i = 0; i < Buff_Modifiers.arraySize; i++)
        {
            Editor_FModifierData data = ability.Buff_Modifiers[i];
            data.attributeType  = (EAttributeType)Buff_Modifiers.GetArrayElementAtIndex(i).FindPropertyRelative("attributeType").intValue;
            data.modifierOption = (EBuffModifierOption)Buff_Modifiers.GetArrayElementAtIndex(i).FindPropertyRelative("modifierOption").intValue;
            data.modifierType   = (EBuffModifierType)Buff_Modifiers.GetArrayElementAtIndex(i).FindPropertyRelative("modifierType").intValue;
            SetList("attributeMagnitudeList", i, Buff_Modifiers, ref data.attributeMagnitudeList);
            ability.Buff_Modifiers[i] = data;
        }

        EditorGUILayout.Space(10);
        EditorGUILayout.PropertyField(Buff_MotionModifiers, new GUIContent("MotionModifiers : "));
        while (ability.Buff_MotionModifiers.Count <= Buff_MotionModifiers.arraySize)
        {
            ability.Buff_MotionModifiers.Add(new Editor_FMotionModifierData());
        }
        while (ability.Buff_MotionModifiers.Count > Buff_MotionModifiers.arraySize)
        {
            ability.Buff_MotionModifiers.RemoveAt(ability.Buff_MotionModifiers.Count - 1);
        }
        for (int i = 0; i < Buff_MotionModifiers.arraySize; i++)
        {
            Editor_FMotionModifierData data = ability.Buff_MotionModifiers[i];
            data.priority    = Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("priority").intValue;
            data.moveType    = (EMotionType)Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("moveType").intValue;
            data.direction   = (EDirectType)Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("direction").intValue;
            data.rotateType  = (EMotionType)Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("rotateType").intValue;
            data.rotateAxis  = (EDirectType)Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("rotateAxis").intValue;
            data.moveCurve   = Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("moveCurve").intValue;
            data.rotateCurve = Buff_MotionModifiers.GetArrayElementAtIndex(i).FindPropertyRelative("rotateCurve").intValue;
            SetList("duration", i, Buff_MotionModifiers, ref data.duration);
            SetList("distance", i, Buff_MotionModifiers, ref data.distance);
            SetList("rotateAngle", i, Buff_MotionModifiers, ref data.rotateAngle);
            ability.Buff_MotionModifiers[i] = data;
        }
    }
Exemple #2
0
    public AbilityBuffMotionModifiers(AbilitySystemComponent abilitySystem, Editor_FMotionModifierData data)
    {
        this.abilitySystem = abilitySystem;

        priority    = data.priority;
        duration    = data.duration;
        moveType    = data.moveType;
        distance    = data.distance;
        direction   = data.direction;
        rotateType  = data.rotateType;
        rotateAxis  = data.rotateAxis;
        rotateAngle = data.rotateAngle;
        moveCurve   = AnimationCurveManager.Instance.GetCurve(data.moveCurve);
        rotateCurve = AnimationCurveManager.Instance.GetCurve(data.rotateCurve);
    }