コード例 #1
0
    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));
    }
コード例 #2
0
    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));
    }
コード例 #3
0
    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));
    }
コード例 #4
0
 public KeyCodePressedCondition(ActionConditionData data) : base(data)
 {
     data.selectionValue = 3;
 }
コード例 #5
0
    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);
    }
コード例 #6
0
 public ActionCondition(ActionConditionData actionData)
 {
     data = actionData;
 }
コード例 #7
0
 public ManualCondition(ActionConditionData data) : base(data)
 {
     data.selectionValue = 0;
 }
コード例 #8
0
 // Use this for initialization
 public TimeCondition(ActionConditionData data) : base(data)
 {
     data.selectionValue = 4;
     lastMove            = Time.time;
 }
コード例 #9
0
ファイル: FireCondition.cs プロジェクト: jbalves/UnityGame01
 public FireCondition(ActionConditionData data) : base(data)
 {
     data.selectionValue = 1;
 }
コード例 #10
0
ファイル: TouchCondition.cs プロジェクト: jbalves/UnityGame01
	public TouchCondition(ActionConditionData data) : base(data)
	{
		data.selectionValue = 2;
	}