public AbilityBuffModifiers(AbilitySystemComponent abilitySystem, Editor_FModifierData inData) { this.abilitySystem = abilitySystem; attributeType = inData.attributeType; modifierOption = inData.modifierOption; modifierType = inData.modifierType; attributeMagnitudeList = inData.attributeMagnitudeList; }
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; } }