Rule:Invoke Node: Difference between revisions

From Intrigues Wiki
No edit summary
No edit summary
Line 7: Line 7:
     public class Demo_Methods : MonoBehaviour
     public class Demo_Methods : MonoBehaviour
     {
     {
         [Scheme("Conspirator Level Up")]
         [IInvoke("Age Check")]
         private IResult LevelUp(Scheme scheme) {
         private IResult AgeCheck(Actor conspirator, Actor target) {
             LevelComponent levelComponent = scheme.Conspirator.GetComponent<LevelComponent>();
             if (conspirator == null || target == null) return IResult.Null;
             if (levelComponent != null) {
 
                levelComponent.LevelUp();
            // Checks the age difference. Returns False if the difference is greater than 7.
                 return IResult.True; // Level is Up.
             if (Math.Abs(conspirator.Age - target.Age) > 7) {
                 return IResult.False;
             }
             }
            return IResult.Null; // LevelComponent not found.
 
        }
             return IResult.True;
       
        [Scheme("Conspirator Level > 5")]
        private IResult LevelGreaterThanFive(Scheme scheme) {
            LevelComponent levelComponent = scheme.Conspirator.GetComponent<LevelComponent>();
             if (levelComponent != null) {
                if (levelComponent.Level > 5) {
                    return IResult.True; // Level greater than 5
                }
                return IResult.False; // Level lesser or equal than 5
            }
            return IResult.Null; // LevelComponent not found.
         }
         }
     }
     }
}
}
</syntaxhighlight>'''- The difference from the default version lies in the parameter used in the method.'''<blockquote>» The <span style="color:#bf7552">'''Invoke'''</span> node runs the <span style="color:#bf7552">'''Method'''</span> and continues the flow based on the <span style="color:#bf7552">'''returned'''</span> value.</blockquote>
</syntaxhighlight>'''- The difference from the default version lies in the parameter used in the method.'''<blockquote>» The <span style="color:#bf7552">'''Invoke'''</span> node runs the <span style="color:#bf7552">'''Method'''</span> and continues the flow based on the <span style="color:#bf7552">'''returned'''</span> value.</blockquote>

Revision as of 18:55, 9 February 2024

Description

If the Age Check method returns true, the Rule completes as success.
This node executes all methods of the IResult type that are marked with the [SchemeAttribute].
using UnityEngine;

namespace Nullframes.Intrigues.Demo
{
    public class Demo_Methods : MonoBehaviour
    {
        [IInvoke("Age Check")]
        private IResult AgeCheck(Actor conspirator, Actor target) {
            if (conspirator == null || target == null) return IResult.Null;

            // Checks the age difference. Returns False if the difference is greater than 7.
            if (Math.Abs(conspirator.Age - target.Age) > 7) {
                return IResult.False;
            }

            return IResult.True;
        }
    }
}

- The difference from the default version lies in the parameter used in the method.

» The Invoke node runs the Method and continues the flow based on the returned value.