Example #1
0
        public static bool UsesTriggerData(ActionTriggerType type)
        {
            switch (type)
            {
            case ActionTriggerType.Action:
                return(true);

            case ActionTriggerType.Combat:
                return(false);

            case ActionTriggerType.Death:
                return(false);

            case ActionTriggerType.Engage:
                return(false);

            case ActionTriggerType.Entry:
                return(false);

            case ActionTriggerType.Exit:
                return(false);

            case ActionTriggerType.ObjectInRoom:
                return(true);

            case ActionTriggerType.PlayerEntry:
                return(false);

            case ActionTriggerType.PlayerExit:
                return(true);

            case ActionTriggerType.Random:
                return(false);

            case ActionTriggerType.ReceiveItem:
                return(true);

            case ActionTriggerType.ReceiveMoney:
                return(true);

            case ActionTriggerType.Speech:
                return(true);

            case ActionTriggerType.Weekday:
                return(true);

            case ActionTriggerType.Hour:
                return(true);

            case ActionTriggerType.Month:
                return(true);

            default:
                return(false);
            }
        }
Example #2
0
        public static String WhenString(ActionTriggerType type)
        {
            switch (type)
            {
            case ActionTriggerType.Action:
                return("When someone performs the action");

            case ActionTriggerType.Combat:
                return("When in combat");

            case ActionTriggerType.Death:
                return("When killled or destroyed");

            case ActionTriggerType.Engage:
                return("When combat is initiated");

            case ActionTriggerType.Entry:
                return("When entering a room");

            case ActionTriggerType.Exit:
                return("When exiting a room");

            case ActionTriggerType.ObjectInRoom:
                return("When room contains object");

            case ActionTriggerType.PlayerEntry:
                return("When a player enters the room");

            case ActionTriggerType.PlayerExit:
                return("When a player leaves the room");

            case ActionTriggerType.Random:
                return("A random chance");

            case ActionTriggerType.ReceiveItem:
                return("When receiving an item");

            case ActionTriggerType.ReceiveMoney:
                return("When receiving money");

            case ActionTriggerType.Speech:
                return("When someone says");

            case ActionTriggerType.Weekday:
                return("When the day of the week is");

            case ActionTriggerType.Hour:
                return("When the hour is");

            case ActionTriggerType.Month:
                return("When the month is");

            default:
                return("(invalid)");
            }
        }
Example #3
0
        private async ValueTask <ActionRuleResult> ExecuteActionForRuleResult(RuleResultTree resultTree, bool includeRuleResults = false)
        {
            ActionTriggerType triggerType = resultTree?.IsSuccess == true ? ActionTriggerType.onSuccess : ActionTriggerType.onFailure;

            if (resultTree?.Rule?.Actions != null && resultTree.Rule.Actions.ContainsKey(triggerType))
            {
                var actionInfo     = resultTree.Rule.Actions[triggerType];
                var action         = _actionFactory.Get(actionInfo.Name);
                var ruleParameters = resultTree.Inputs.Select(kv => new RuleParameter(kv.Key, kv.Value)).ToArray();
                return(await action.ExecuteAndReturnResultAsync(new ActionContext(actionInfo.Context, resultTree), ruleParameters, includeRuleResults));
            }
            else
            {
                //If there is no action,return output as null and return the result for rule
                return(new ActionRuleResult
                {
                    Output = null,
                    Results = includeRuleResults ? new List <RuleResultTree>()
                    {
                        resultTree
                    }: null
                });
            }
        }
Example #4
0
 public static String WhenString(ActionTriggerType type)
 {
     switch( type )
     {
         case ActionTriggerType.Action:
             return "When someone performs the action";
         case ActionTriggerType.Combat:
             return "When in combat";
         case ActionTriggerType.Death:
             return "When killled or destroyed";
         case ActionTriggerType.Engage:
             return "When combat is initiated";
         case ActionTriggerType.Entry:
             return "When entering a room";
         case ActionTriggerType.Exit:
             return "When exiting a room";
         case ActionTriggerType.ObjectInRoom:
             return "When room contains object";
         case ActionTriggerType.PlayerEntry:
             return "When a player enters the room";
         case ActionTriggerType.PlayerExit:
             return "When a player leaves the room";
         case ActionTriggerType.Random:
             return "A random chance";
         case ActionTriggerType.ReceiveItem:
             return "When receiving an item";
         case ActionTriggerType.ReceiveMoney:
             return "When receiving money";
         case ActionTriggerType.Speech:
             return "When someone says";
         case ActionTriggerType.Weekday:
             return "When the day of the week is";
         case ActionTriggerType.Hour:
             return "When the hour is";
         case ActionTriggerType.Month:
             return "When the month is";
         default:
             return "(invalid)";
     }
 }
Example #5
0
 public static bool UsesTriggerData(ActionTriggerType type)
 {
     switch (type)
     {
         case ActionTriggerType.Action:
             return true;
         case ActionTriggerType.Combat:
             return false;
         case ActionTriggerType.Death:
             return false;
         case ActionTriggerType.Engage:
             return false;
         case ActionTriggerType.Entry:
             return false;
         case ActionTriggerType.Exit:
             return false;
         case ActionTriggerType.ObjectInRoom:
             return true;
         case ActionTriggerType.PlayerEntry:
             return false;
         case ActionTriggerType.PlayerExit:
             return true;
         case ActionTriggerType.Random:
             return false;
         case ActionTriggerType.ReceiveItem:
             return true;
         case ActionTriggerType.ReceiveMoney:
             return true;
         case ActionTriggerType.Speech:
             return true;
         case ActionTriggerType.Weekday:
             return true;
         case ActionTriggerType.Hour:
             return true;
         case ActionTriggerType.Month:
             return true;
         default:
             return false;
     }
 }