private void HandleInventoryKeys(ResultSet resultSet) { if (RB.ButtonPressed(RB.BTN_SYSTEM)) { resultSet.AddExit(); return; } for (char i = 'a'; i <= 'z'; i++) { if (RB.KeyPressed((KeyCode)i)) { int index = (int)(i - 'a'); if (!mPlayer.isEmpty && mPlayer.e.inventory.items.Length > index && !mPlayer.e.inventory.items[index].isEmpty) { resultSet.AddInventoryIndex(mPlayer, index); RB.SoundPlay(C.SOUND_SELECT_OPTION, 1, RandomUtils.RandomPitch(0.1f)); return; } } } // Check if pointer clicked on any of the items if (RB.ButtonReleased(RB.BTN_POINTER_A)) { int index = mMenuInventory.pointerIndex; if (index >= 0 && !mPlayer.isEmpty && mPlayer.e.inventory.items.Length > index && !mPlayer.e.inventory.items[index].isEmpty) { resultSet.AddInventoryIndex(mPlayer, index); RB.SoundPlay(C.SOUND_SELECT_OPTION, 1, RandomUtils.RandomPitch(0.1f)); return; } } }
private void HandleMenuKeys(ResultSet resultSet) { if (RB.ButtonPressed(RB.BTN_SYSTEM)) { resultSet.AddExit(); return; } // Check keyboard input for (char i = 'a'; i < 'a' + mMenuMain.optionCount; i++) { if (RB.KeyPressed((KeyCode)i)) { int index = (int)(i - 'a'); resultSet.AddMenuIndex(index); RB.SoundPlay(C.SOUND_SELECT_OPTION, 1, RandomUtils.RandomPitch(0.1f)); } } // Check mouse input if (RB.ButtonReleased(RB.BTN_POINTER_A)) { int index = mMenuMain.pointerIndex; if (index >= 0) { resultSet.AddMenuIndex(index); RB.SoundPlay(C.SOUND_SELECT_OPTION, 1, RandomUtils.RandomPitch(0.1f)); } } }
private void HandleMenuKeys(ResultSet resultSet) { var game = (RetroDungeoneerGame)RB.Game; if (RB.ButtonPressed(RB.BTN_SYSTEM)) { resultSet.AddExit(); return; } // Check keyboard input for (char i = 'a'; i < 'a' + mMenuMain.optionCount; i++) { if (RB.KeyPressed((KeyCode)i)) { int index = (int)(i - 'a'); resultSet.AddMenuIndex(index); RB.SoundPlay(game.assets.soundSelectOption, 1, RandomUtils.RandomPitch(0.1f)); } } // Check mouse input if (RB.ButtonReleased(RB.BTN_POINTER_A)) { int index = mMenuMain.pointerIndex; if (index >= 0) { resultSet.AddMenuIndex(index); RB.SoundPlay(game.assets.soundSelectOption, 1, RandomUtils.RandomPitch(0.1f)); } } }
private void HandleLevelUpKeys(ResultSet resultSet) { var game = (RetroDungeoneerGame)RB.Game; if (RB.ButtonPressed(RB.BTN_SYSTEM)) { resultSet.AddExit(); return; } int index = -1; for (char i = 'a'; i <= 'c'; i++) { if (RB.KeyPressed((KeyCode)i)) { index = (int)(i - 'a'); break; } } // Check if pointer clicked on any of the items if (RB.ButtonReleased(RB.BTN_POINTER_A)) { if (mMenuInventory.pointerIndex >= 0 && mMenuInventory.pointerIndex <= 2) { index = mMenuInventory.pointerIndex; } } LevelUp levelUp = LevelUp.None; if (index >= 0 && index <= 2) { switch (index) { case 0: levelUp = LevelUp.Hp; break; case 1: levelUp = LevelUp.Str; break; case 2: levelUp = LevelUp.Def; break; } resultSet.AddLevelUp(levelUp); RB.SoundPlay(game.assets.soundSelectOption, 1, RandomUtils.RandomPitch(0.1f)); } }
private void HandleMenuKeys(ResultSet resultSet) { if (!mShowingMessageBox) { return; } if (RB.ButtonPressed(RB.BTN_SYSTEM)) { resultSet.AddExit(); return; } // Check keyboard input for (char i = 'a'; i < 'a' + mMenuMessageBox.optionCount; i++) { if (RB.KeyPressed((KeyCode)i)) { int index = (int)(i - 'a'); if (mHandlers[index] != null) { mHandlers[index](); } } } // Check mouse input if (RB.ButtonReleased(RB.BTN_POINTER_A)) { int index = mMenuMessageBox.pointerIndex; if (index >= 0) { if (mHandlers[index] != null) { mHandlers[index](); } } } }
/// <summary> /// Update, handles switching to next scene, and quitting the demo /// </summary> public virtual void Update() { var demo = (StressTest)RB.Game; if (RB.KeyPressed(KeyCode.Return) || (UnityEngine.Input.mousePresent && RB.ButtonPressed(RB.BTN_POINTER_A)) || RB.ButtonPressed(RB.BTN_A)) { demo.NextScene(); } if ((UnityEngine.Input.mousePresent && RB.ButtonPressed(RB.BTN_POINTER_B)) || RB.ButtonPressed(RB.BTN_X)) { demo.PreviousScene(); } if (RB.ButtonPressed(RB.BTN_SYSTEM)) { Application.Quit(); } if (!UnityEngine.Input.mousePresent) { if (RB.ButtonReleased(RB.BTN_POINTER_A, RB.PLAYER_ANY)) { mTouchTimestamp[0] = (long)RB.Ticks; } if (RB.ButtonReleased(RB.BTN_POINTER_B, RB.PLAYER_ANY)) { mTouchTimestamp[1] = (long)RB.Ticks; } if (RB.ButtonReleased(RB.BTN_POINTER_C, RB.PLAYER_ANY)) { mTouchTimestamp[2] = (long)RB.Ticks; } if (RB.ButtonReleased(RB.BTN_POINTER_D, RB.PLAYER_ANY)) { mTouchTimestamp[3] = (long)RB.Ticks; } // If all fingers are up then check how many fingers have close timestamps if (!RB.ButtonDown(RB.BTN_POINTER_A, RB.PLAYER_ANY) && !RB.ButtonDown(RB.BTN_POINTER_B, RB.PLAYER_ANY) && !RB.ButtonDown(RB.BTN_POINTER_C, RB.PLAYER_ANY) && !RB.ButtonDown(RB.BTN_POINTER_D, RB.PLAYER_ANY)) { int fingerCount = 0; for (int i = 0; i < 4; i++) { long delta = (long)RB.Ticks - (long)mTouchTimestamp[i]; if (delta >= 0 && delta < 5) { fingerCount++; } } if (fingerCount == 1) { for (int i = 0; i < 4; i++) { mTouchTimestamp[i] = long.MaxValue; } demo.NextScene(); } else if (fingerCount > 1) { for (int i = 0; i < 4; i++) { mTouchTimestamp[i] = long.MaxValue; } demo.PreviousScene(); } } } }
public virtual void Update(bool hasFocus = true) { Vector2i mousePos = RB.PointerPos() + new Vector2i(0, 1); // + 0, 1 is workaround for weird hovering behaviour?! UIObj on = null; List <UIObj> objsNoLongerUnderMouse = new List <UIObj>(); foreach (UIObj obj in objUnderMouse) { if (!obj.IsInBounds(mousePos) || !obj.isVisible) { if (objUnderMouse.Contains(obj)) { objsNoLongerUnderMouse.Add(obj); obj.OnMouseExit(); EventBus.UIMouseExit.Invoke(obj); } } } objUnderMouse.RemoveWhere((obj) => objsNoLongerUnderMouse.Contains(obj)); List <UIObj> uiObjsToUpdate = uiObjs; if (currentMsgBox != null) { uiObjsToUpdate = currentMsgBox.GetUIObjs(); } foreach (UIObj obj in uiObjsToUpdate) { if (obj.HasKeybind() && RB.KeyPressed(obj.GetKeybind())) { if (obj.IsInteractable) { EventBus.UIClick.Invoke(obj); obj.OnClick(); } } if (obj.IsInBounds(mousePos) && obj.isVisible) { if (!objUnderMouse.Contains(obj)) { objUnderMouse.Add(obj); obj.OnMouseEnter(); EventBus.UIMouseEnter.Invoke(obj); } } if (obj.IsInBounds(mousePos) && obj.IsInteractable) // && hasFocus) { { if (obj.currentState != UIObj.State.Hovered) { EventBus.UIHoverStart.Invoke(obj); } obj.currentState = UIObj.State.Hovered; on = obj; } else if (obj.currentState != UIObj.State.Disabled) { if (obj.currentState == UIObj.State.Hovered) { EventBus.UIHoverEnd.Invoke(obj); } obj.currentState = UIObj.State.Enabled; } obj.Update(); } if (RB.ButtonPressed(RB.BTN_POINTER_A) && hasFocus) { if (on != null) { on.currentState = UIObj.State.Pressed; mousePressedOn = on; SetFocus(on); } else { SetFocus(null); } } else if (RB.ButtonReleased(RB.BTN_POINTER_A)) { if (on == mousePressedOn && on != null) { if (on.currentState == UIObj.State.Hovered) { EventBus.UIClick.Invoke(on); } mousePressedOn.OnClick(); } mousePressedOn = null; } else if (RB.ButtonDown(RB.BTN_POINTER_A) && hasFocus) { if (mousePressedOn != null && on == mousePressedOn) { mousePressedOn.currentState = UIObj.State.Pressed; } else if (on != null) { on.currentState = UIObj.State.Enabled; } } }