private static CardPickByPriority ActionOrder(MyPlayerAction playerAction)
 {
     return new CardPickByPriority(
                 CardAcceptance.For(Cards.FishingVillage, playerAction.ShouldPlayAction),
                 CardAcceptance.For(Cards.PoorHouse, playerAction.ShouldPlayPoorHouse),
                 CardAcceptance.For(Cards.Library, playerAction.ShouldPlayLibraryBeforeCount),
                 CardAcceptance.For(Cards.Count),
                 CardAcceptance.For(Cards.Library, playerAction.ShouldPlayLibrary));
 }
 private static CardPickByPriority ActionOrder(MyPlayerAction playerAction)
 {
     return(new CardPickByPriority(
                CardAcceptance.For(Cards.FishingVillage, playerAction.ShouldPlayAction),
                CardAcceptance.For(Cards.PoorHouse, playerAction.ShouldPlayPoorHouse),
                CardAcceptance.For(Cards.Library, playerAction.ShouldPlayLibraryBeforeCount),
                CardAcceptance.For(Cards.Count),
                CardAcceptance.For(Cards.Library, playerAction.ShouldPlayLibrary)));
 }
Esempio n. 3
0
 void OnEnable()
 {
     // See PlayerActions.cs for this setup.
     characterActions = MyPlayerAction.CreateWithDefaultBindings();
 }
Esempio n. 4
0
    //bind keys to input types
    public static MyPlayerAction CreateWithDefaultBindings()
    {
        var myPlayerAction = new MyPlayerAction();

        #region keyboard
        myPlayerAction.lookLeft.AddDefaultBinding(Mouse.NegativeX);
        myPlayerAction.lookRight.AddDefaultBinding(Mouse.PositiveX);
        myPlayerAction.lookUp.AddDefaultBinding(Mouse.PositiveY);
        myPlayerAction.lookDown.AddDefaultBinding(Mouse.NegativeY);

        myPlayerAction.lookZoomForward.AddDefaultBinding(Mouse.PositiveScrollWheel);
        myPlayerAction.lookZoomBackward.AddDefaultBinding(Mouse.NegativeScrollWheel);


        myPlayerAction.moveLeft.AddDefaultBinding(Key.A);
        myPlayerAction.moveRight.AddDefaultBinding(Key.D);
        myPlayerAction.moveForward.AddDefaultBinding(Key.W);
        myPlayerAction.moveBackward.AddDefaultBinding(Key.S);
        //arrow keys
        myPlayerAction.moveLeft.AddDefaultBinding(Key.LeftArrow);
        myPlayerAction.moveRight.AddDefaultBinding(Key.RightArrow);
        myPlayerAction.moveForward.AddDefaultBinding(Key.UpArrow);
        myPlayerAction.moveBackward.AddDefaultBinding(Key.DownArrow);

        myPlayerAction.jump.AddDefaultBinding(Key.Space);
        myPlayerAction.interact1.AddDefaultBinding(Key.Q);
        myPlayerAction.interact2.AddDefaultBinding(Key.E);
        myPlayerAction.menu.AddDefaultBinding(Key.Escape);
        //myPlayerAction.back.AddDefaultBinding( Key.Escape );
        #endregion

        #region gamepad
        myPlayerAction.lookLeft.AddDefaultBinding(InputControlType.RightStickLeft);
        myPlayerAction.lookRight.AddDefaultBinding(InputControlType.RightStickRight);
        myPlayerAction.lookUp.AddDefaultBinding(InputControlType.RightStickUp);
        myPlayerAction.lookDown.AddDefaultBinding(InputControlType.RightStickDown);

        myPlayerAction.lookZoomForward.AddDefaultBinding(InputControlType.RightTrigger);
        myPlayerAction.lookZoomBackward.AddDefaultBinding(InputControlType.RightBumper);

        myPlayerAction.moveLeft.AddDefaultBinding(InputControlType.LeftStickLeft);
        myPlayerAction.moveRight.AddDefaultBinding(InputControlType.LeftStickRight);
        myPlayerAction.moveForward.AddDefaultBinding(InputControlType.LeftStickUp);
        myPlayerAction.moveBackward.AddDefaultBinding(InputControlType.LeftStickDown);
        //arrow keys
        myPlayerAction.moveLeft.AddDefaultBinding(InputControlType.DPadLeft);
        myPlayerAction.moveRight.AddDefaultBinding(InputControlType.DPadRight);
        myPlayerAction.moveForward.AddDefaultBinding(InputControlType.DPadUp);
        myPlayerAction.moveBackward.AddDefaultBinding(InputControlType.DPadDown);

        myPlayerAction.jump.AddDefaultBinding(InputControlType.LeftBumper);
        myPlayerAction.jump.AddDefaultBinding(InputControlType.LeftTrigger);
        myPlayerAction.jump.AddDefaultBinding(InputControlType.LeftStickButton);
        myPlayerAction.interact1.AddDefaultBinding(InputControlType.Action1);
        myPlayerAction.interact2.AddDefaultBinding(InputControlType.Action2);
        myPlayerAction.menu.AddDefaultBinding(InputControlType.Command);
        //myPlayerAction.back.AddDefaultBinding( InputControlType.Action3 );
        #endregion

        //set options
        myPlayerAction.ListenOptions.IncludeUnknownControllers = true;
        //playerActions.ListenOptions.MaxAllowedBindings = 5;
        myPlayerAction.ListenOptions.IncludeMouseButtons = true;

        myPlayerAction.ListenOptions.OnBindingFound = (action, binding) =>
        {
            if (binding == new KeyBindingSource(Key.Escape))
            {
                action.StopListeningForBinding();
                return(false);
            }
            return(true);
        };

        myPlayerAction.ListenOptions.OnBindingAdded += (action, binding) =>
        {
            Debug.Log("Binding added... " + binding.DeviceName + ": " + binding.Name);
        };

        myPlayerAction.ListenOptions.OnBindingRejected += (action, binding, reason) =>
        {
            Debug.Log("Binding rejected... " + reason);
        };

        return(myPlayerAction);
    }