private void HandleOnAttack(ZMInputEventArgs args) { if (IsValidInputControl(args.input)) { if (args.input.Pressed) { var dotX = Vector2.Dot(_movement, Vector2.right); var dotY = Vector2.Dot(_movement, Vector2.up); var notifyArgs = new IntEventArgs(0); if (dotY < -DOT_THRESHOLD) { // Excepting plunge case. _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnPlungeEvent); } else if (dotX > DOT_THRESHOLD) { notifyArgs.value = 1; _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs); } else if (dotX < -DOT_THRESHOLD) { notifyArgs.value = -1; _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs); } else { // Default lunge case. _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnAttackEvent, notifyArgs); } } } }
private void BroadcastDigitalGamepadEvents(InputDevice device, int userIndex) { var startInput = new ZMInput(device.MenuWasPressed, userIndex); var startArgs = new ZMInputEventArgs(startInput); Notifier.SendEventNotification(OnAction1, GetInputForControl(device.Action1, userIndex)); Notifier.SendEventNotification(OnAction2, GetInputForControl(device.Action2, userIndex)); Notifier.SendEventNotification(OnAction3, GetInputForControl(device.Action3, userIndex)); Notifier.SendEventNotification(OnAction4, GetInputForControl(device.Action4, userIndex)); Notifier.SendEventNotification(OnLeftBumper, GetInputForControl(device.LeftBumper, userIndex)); Notifier.SendEventNotification(OnLeftTrigger, GetInputForControl(device.LeftTrigger, userIndex)); Notifier.SendEventNotification(OnRightBumper, GetInputForControl(device.RightBumper, userIndex)); Notifier.SendEventNotification(OnRightTrigger, GetInputForControl(device.RightTrigger, userIndex)); Notifier.SendEventNotification(OnLeftAnalogStickButton, GetInputForControl(device.LeftStickButton, userIndex)); Notifier.SendEventNotification(OnRightAnalogStickButton, GetInputForControl(device.RightStickButton, userIndex)); Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.AnyButton, userIndex)); Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.LeftBumper, userIndex)); Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.LeftTrigger, userIndex)); Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.RightBumper, userIndex)); Notifier.SendEventNotification(OnAnyButton, GetInputForControl(device.RightTrigger, userIndex)); Notifier.SendEventNotification(OnAnyButton, startArgs); Notifier.SendEventNotification(OnStartButton, startArgs); }
private ZMInputEventArgs GetInputForControl(InputControl control, int userIndex) { var state = GetStateForControl(control); var input = new ZMInput(state, userIndex); var args = new ZMInputEventArgs(input); return(args); }
// Private methods. private void HandleOnSelect(ZMInputEventArgs args) { var input = args.input; if (input.Pressed && IsValidInputControl(input) && gameObject.activeSelf) { HandleMenuSelection(); } }
private void HandleOnJump(ZMInputEventArgs args) { if (IsValidInputControl(args.input)) { if (args.input.Pressed) { _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnJumpEvent); } } }
private void HandleOnAnyButton(ZMInputEventArgs args) { var input = args.input; if (input.Pressed) { var outArgs = new IntEventArgs(input.ID); Notifier.SendEventNotification(AnyInputEvent, outArgs); } }
private void CheckKey(KeyCode code, KeyAction action, ZMInput.State state, EventHandler <ZMInputEventArgs> eventHandler) { if (action(code)) { var input = GetInputForKeyCode(code, state); var args = new ZMInputEventArgs(input); Notifier.SendEventNotification(eventHandler, args); Notifier.SendEventNotification(OnAnyKeyPressed, args); } }
protected virtual void HandleOnMoveDown(ZMInputEventArgs args) { var input = args.input; if (IsValidInputControl(input)) { Vector2EventArgs notifyArgs; if (input.Pressed || input.Held) { _movement.y = -1.0f; _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveDownEvent); } else if (input.Released) { _movement.y = 0.0f; } notifyArgs = new Vector2EventArgs(_movement); _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveEvent, notifyArgs); } }
private void HandleOnMoveRight(ZMInputEventArgs args) { var input = args.input; if (IsValidInputControl(input)) { Vector2EventArgs notifyArgs; if (input.Pressed || input.Held) { _movement.x = 1.0f; _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveRightEvent); } else if (input.Released) { _movement.x = 0.0f; } notifyArgs = new Vector2EventArgs(_movement); _inputEventNotifier.TriggerEvent(_inputEventNotifier.OnMoveEvent, notifyArgs); } }
protected override void HandleOnMoveDown(ZMInputEventArgs args) { base.HandleOnMoveDown(args); HandleOnAttack(args); }
// Handlers. protected override void HandleOnMoveUp(ZMInputEventArgs args) { base.HandleOnMoveUp(args); HandleOnJump(args); }