void DrawActionList(AbilityEventData abilityEvent)
    {
        var eventActions = abilityEvent.Actions;

        GUILayout.BeginHorizontal();
        abilityEvent.showActionsInEditor = EditorGUILayout.Foldout(abilityEvent.showActionsInEditor, "Actions", _foldout);
        if (GUILayout.Button("+", GUILayout.Width(20)))
        {
            eventActions.Add(new AbilityActionData());
        }
        GUILayout.Space(310);         // hack!
        GUILayout.EndHorizontal();

        if (abilityEvent.showActionsInEditor)
        {
            for (int i = 0; i < eventActions.Count; i++)
            {
                GUILayout.BeginHorizontal();
                eventActions[i].showInEditor = EditorGUILayout.Foldout(eventActions[i].showInEditor, eventActions[i].Type.ToString());

                if (GUILayout.Button("-", GUILayout.Width(20)))
                {
                    eventActions[i].tobeRemoved = true;
                }
                GUILayout.EndHorizontal();

                AbilityActionData action = eventActions[i];

                DrawAction(action);
            }
            eventActions.RemoveAll((a) => a.tobeRemoved);
        }
    }
예제 #2
0
    public Move(AbilityActionData data) : base(data)
    {
        var updateRotationField = this.data.BoolFields.Find((a) => a.Name == "updateRotation");

        if (updateRotationField != null)
        {
            updateRotation = updateRotationField.Value;
        }

        var speedMultiplierField = this.data.FloatFields.Find((a) => a.Name == "speedMultiplier");

        if (speedMultiplierField != null)
        {
            speedMultiplier = speedMultiplierField.Value;
        }

        var forceCompletionField = this.data.BoolFields.Find((a) => a.Name == "forceCompletion");

        if (forceCompletionField != null)
        {
            forceCompletion = forceCompletionField.Value;
        }

        var overrideMovementField = this.data.BoolFields.Find((a) => a.Name == "overrideMovement");

        if (overrideMovementField != null)
        {
            overrideMovement = overrideMovementField.Value;
        }
    }
예제 #3
0
    public PlayEffect(AbilityActionData data) : base(data)
    {
        var originField = this.data.StrFields.Find((a) => a.Name == "origin");

        if (originField != null)
        {
            origin = originField.Value;
        }
    }
 void DrawAction(AbilityActionData eventAction)
 {
     if (eventAction.showInEditor)
     {
         eventAction.Type            = (AbilityActionData.Action)EditorGUILayout.EnumPopup(new GUIContent("Type", eventAction.Type.ToDescription()), eventAction.Type);
         eventAction.Target          = (DataDrivenAbility.Target)EditorGUILayout.EnumPopup("Target", eventAction.Target);
         eventAction.MultipleTargets = EditorGUILayout.Toggle("Multiple Targets", eventAction.MultipleTargets);
         DrawCustomAttributes(eventAction);
     }
 }
 private void DrawCustomAttributes(AbilityActionData actionData)
 {
     actionData.showCustomAttributes = EditorGUILayout.Foldout(actionData.showCustomAttributes, "Custom Attributes");
     if (actionData.showCustomAttributes)
     {
         DrawIntFieldList(actionData.IntFields);
         DrawFloatField(actionData.FloatFields);
         DrawVec3Field(actionData.Vec3Fields);
         DrawVec2Field(actionData.Vec2Fields);
         DrawStrField(actionData.StrFields);
         DrawBoolField(actionData.BoolFields);
     }
 }
예제 #6
0
    public Knockback(AbilityActionData data)
        : base(data)
    {
        var forceField = this.data.IntFields.Find((a) => a.Name == "force");
        if (forceField != null)
        {
            force = forceField.Value;
        }

        var originField = this.data.StrFields.Find((a) => a.Name == "origin");
        if (originField != null)
        {
            origin = originField.Value;
        }
    }
예제 #7
0
    public BaseAction(AbilityActionData data)
    {
        this.data = data;

        var effectPathData = this.data.StrFields.Find((a) => a.Name == "effectPath");

        if (effectPathData != null)
        {
            effectPath = effectPathData.Value;
        }

        var sfxPathData = this.data.StrFields.Find((a) => a.Name == "sfxPath");

        if (sfxPathData != null)
        {
            sfxPath = sfxPathData.Value;
        }
    }
예제 #8
0
 public Blink(AbilityActionData data) : base(data)
 {
 }
예제 #9
0
 public Stun(AbilityActionData data) : base(data)
 {
     duration = data.FloatFields.Find((a) => a.Name == "duration").Value;
 }
예제 #10
0
 public PlaySound(AbilityActionData data) : base(data)
 {
 }
예제 #11
0
 public Heal(AbilityActionData data) : base(data)
 {
     amount = this.data.IntFields.Find((a) => a.Name == "amount").Value;
 }
예제 #12
0
 public AttachEffect(AbilityActionData data) : base(data)
 {
 }
예제 #13
0
 public LinearProjectile(AbilityActionData data) : base(data)
 {
     speed = this.data.IntFields.Find((a) => a.Name == "speed").Value;
 }