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); } }
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)"); } }
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 }); } }
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)"; } }
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; } }