public static IPayloadProvider Resolve(ActionConditionData conditionData, Member source, Target target, Group group, Scope scope, int amountPaid) { var condition = Create(conditionData); Log.Info($"Checking {conditionData.ConditionType}"); return(condition.Resolve(_beforeCard, source, target, group, scope, amountPaid)); }
public static Condition Create(ActionConditionData conditionData) { var condtionType = conditionData.ConditionType; if (!_createConditionOfType.ContainsKey(condtionType)) { Log.Error($"No EffectType of {condtionType} exists in {nameof(AllConditions)}"); return(_createConditionOfType[ActionConditionType.Nothing](conditionData)); } return(_createConditionOfType[condtionType](conditionData)); }
public static ActionCondition GenerateBy(ActionConditionData data) { int selectionValue = data.selectionValue; if (selectionValue == 1) { return(new FireCondition(data)); } else if (selectionValue == 2) { return(new TouchCondition(data)); } else if (selectionValue == 3) { return(new KeyCodePressedCondition(data)); } else if (selectionValue == 4) { return(new TimeCondition(data)); } return(new ManualCondition(data)); }
public KeyCodePressedCondition(ActionConditionData data) : base(data) { data.selectionValue = 3; }
public ActionConditionData EditCondition(ActionConditionData condition) { if (condition == null) { return(null); } EditorGUI.indentLevel = 1; int selected = condition.selectionValue; string[] options = new string[] { "Manual", "On Mouse Down", "On Touched by", "Key pressed", "Repeating timer" }; EditorGUILayout.BeginHorizontal(); selected = EditorGUILayout.Popup("Condition", selected, options); if (GUILayout.Button("Remove")) { condition = null; } EditorGUILayout.EndHorizontal(); if (condition == null) { return(null); } condition.selectionValue = selected; EditorGUI.indentLevel = 2; if (selected == 2) { int selectedLayer = EditorGUILayout.LayerField("Layer", condition.layer); condition.layer = selectedLayer; } else if (selected == 3) { int keyCodeSelected = 0; String[] keysName = Enum.GetNames(typeof(KeyCode)); for (int i = 0; i < keysName.Length; i++) { if (keysName[i] == condition.keyCode.ToString()) { keyCodeSelected = i; } } keyCodeSelected = EditorGUILayout.Popup("Key", keyCodeSelected, keysName); condition.keyCode = (KeyCode)Enum.Parse(typeof(KeyCode), keysName[keyCodeSelected], true); String[] keysModeName = Enum.GetNames(typeof(KeyMode)); int keyModeSelected = EditorGUILayout.Popup("Key", (int)condition.keyMode, keysModeName); condition.keyMode = (KeyMode)keyModeSelected; } else if (selected == 4) { condition.timeInSeconds = EditorGUILayout.FloatField("Seconds", condition.timeInSeconds); } EditorGUI.indentLevel = 1; return(condition); }
public ActionCondition(ActionConditionData actionData) { data = actionData; }
public ManualCondition(ActionConditionData data) : base(data) { data.selectionValue = 0; }
// Use this for initialization public TimeCondition(ActionConditionData data) : base(data) { data.selectionValue = 4; lastMove = Time.time; }
public FireCondition(ActionConditionData data) : base(data) { data.selectionValue = 1; }
public TouchCondition(ActionConditionData data) : base(data) { data.selectionValue = 2; }