public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var dPoint = KeyTranslator.GetDirection(_key); if (dPoint != null) { var newPoint = m_targetPoint + dPoint + m_avatarScreenPoint; if (ContentRct.Contains(newPoint)) { m_targetPoint += dPoint; } } switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: m_act.IsCancelled = true; CloseTopBlock(); break; case ConsoleKey.Enter: case ConsoleKey.M: if (m_path != null) { m_act.AddParameter(m_path); m_act.AddParameter(int.MaxValue); CloseTopBlock(); } return; } //MessageManager.SendMessage(this, WorldMessage.JustRedraw); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if (_modifiers != EKeyModifiers.NONE) return; switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: CloseTopBlock(); return; case ConsoleKey.V: MessageManager.SendMessage(this, new OpenUIBlockMessage(new BackpackUiBlock(Rct))); return; } var presenter = m_presenters.SingleOrDefault(_presenter => _presenter.Key == _key); if (presenter != null) { if (presenter.Item == null) { MessageManager.SendMessage(this, new OpenUIBlockMessage(new SelectToTakeOnUiBlock(Rct, this, presenter))); } else { Intelligent.TakeOff(presenter.Place); Rebuild(); } } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.A: Constants.WORLD_MAP_SIZE = 32; Constants.WORLD_SEED = new Random().Next(10000); //Constants.WORLD_SEED = 2; m_game.Run(); break; case ConsoleKey.B: Constants.WORLD_MAP_SIZE = 100; Constants.WORLD_SEED = new Random().Next(10000); m_game.Run(); break; case ConsoleKey.C: Constants.WORLD_MAP_SIZE = 1; Constants.WORLD_SEED = 1; m_game.Run(); break; case ConsoleKey.D: Constants.WORLD_MAP_SIZE = 1; Constants.WORLD_SEED = 2; m_game.Run(); break; case ConsoleKey.E: Constants.WORLD_MAP_SIZE = 1; Constants.WORLD_SEED = 0; m_game.Run(); break; } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var dPoint = KeyTranslator.GetDirection(_key); if (dPoint != null) { var newPoint = m_targetPoint + dPoint + m_addPoint; if (ContentRct.Contains(newPoint)) { m_targetPoint += dPoint; if (m_targetPoint.Lenght > m_maxDistance) { m_targetPoint *= m_maxDistance / m_targetPoint.Lenght; } } } switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: m_act.IsCancelled = true; CloseTopBlock(); break; case ConsoleKey.OemPlus: if (_modifiers != EKeyModifiers.NONE) { return; } m_currentTarget++; SelectTargetFromList(); break; case ConsoleKey.OemMinus: if (_modifiers != EKeyModifiers.NONE) { return; } m_currentTarget--; SelectTargetFromList(); break; case ConsoleKey.Add: m_currentTarget++; SelectTargetFromList(); break; case ConsoleKey.Subtract: m_currentTarget--; SelectTargetFromList(); break; case ConsoleKey.Enter: case ConsoleKey.T: m_act.AddParameter(m_realTarget); CloseTopBlock(); return; } //MessageManager.SendMessage(this, WorldMessage.JustRedraw); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if (m_turnMessages.Count > 0) { PrepareText(); } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if (_modifiers != EKeyModifiers.NONE) { return; } switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: CloseTopBlock(); return; case ConsoleKey.V: MessageManager.SendMessage(this, new OpenUIBlockMessage(new BackpackUiBlock(Rct))); return; } var presenter = m_presenters.SingleOrDefault(_presenter => _presenter.Key == _key); if (presenter != null) { if (presenter.Item == null) { MessageManager.SendMessage(this, new OpenUIBlockMessage(new SelectToTakeOnUiBlock(Rct, this, presenter))); } else { Intelligent.TakeOff(presenter.Place); Rebuild(); } } }
public virtual void SendKey(ConsoleKey _key, EKeyModifiers _modifiers = EKeyModifiers.NONE) { World.TheWorld.KeyPressed(_key, _modifiers); do { World.TheWorld.GameUpdated(); } while (World.TheWorld.CreatureManager.FirstActiveCreature != Avatar); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: CloseTopBlock(); break; } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.Z: case ConsoleKey.Escape: CloseTopBlock(); break; } }
public void KeyPressed(ConsoleKey _key, EKeyModifiers _modifiers = EKeyModifiers.NONE) { var act = KeyTranslator.TranslateKey(_key, _modifiers); if (act == null) { return; } Avatar.AddActToPool(act); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if (_modifiers != EKeyModifiers.NONE) return; if (_key == ConsoleKey.Y || _key == ConsoleKey.L) { MessageManager.SendMessage(this, new SystemMessage(SystemMessage.ESystemMessage.EXIT_GAME)); } if (_key == ConsoleKey.N || _key == ConsoleKey.Y || _key == ConsoleKey.Escape) { MessageManager.SendMessage(this, new SystemMessage(SystemMessage.ESystemMessage.CLOSE_TOP_UI_BLOCK)); } }
public static Act TranslateKey(ConsoleKey _key, EKeyModifiers _modifiers) { var tuple = new Tuple<ConsoleKey, EKeyModifiers>(_key, _modifiers); Type type; if (!m_acts.TryGetValue(tuple, out type)) { return null; } var act = GetAct(type); act.AddParameter(_key); act.AddParameter(_modifiers); return act; }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.A: MessageManager.SendMessage(this, new OpenUIBlockMessage(new HelpKeyBindingUiBlock(Rct))); break; case ConsoleKey.Z: case ConsoleKey.Escape: CloseTopBlock(); break; } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if (_modifiers != EKeyModifiers.NONE) { return; } if (_key == ConsoleKey.Y || _key == ConsoleKey.L) { MessageManager.SendMessage(this, new SystemMessage(SystemMessage.ESystemMessage.EXIT_GAME)); } if (_key == ConsoleKey.N || _key == ConsoleKey.Y || _key == ConsoleKey.Escape) { MessageManager.SendMessage(this, new SystemMessage(SystemMessage.ESystemMessage.CLOSE_TOP_UI_BLOCK)); } }
public static Act TranslateKey(ConsoleKey _key, EKeyModifiers _modifiers) { var tuple = new Tuple <ConsoleKey, EKeyModifiers>(_key, _modifiers); Type type; if (!m_acts.TryGetValue(tuple, out type)) { return(null); } var act = GetAct(type); act.AddParameter(_key); act.AddParameter(_modifiers); return(act); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var dPoint = KeyTranslator.GetDirection(_key); if (dPoint != null) { var newPoint = m_targetPoint + dPoint + m_addPoint; if (ContentRct.Contains(newPoint)) { m_targetPoint += dPoint; if (m_targetPoint.Lenght > m_maxDistance) { m_targetPoint *= m_maxDistance/m_targetPoint.Lenght; } } } switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: m_act.IsCancelled = true; CloseTopBlock(); break; case ConsoleKey.OemPlus: if (_modifiers != EKeyModifiers.NONE) return; m_currentTarget++; SelectTargetFromList(); break; case ConsoleKey.OemMinus: if (_modifiers != EKeyModifiers.NONE) return; m_currentTarget--; SelectTargetFromList(); break; case ConsoleKey.Add: m_currentTarget++; SelectTargetFromList(); break; case ConsoleKey.Subtract: m_currentTarget--; SelectTargetFromList(); break; case ConsoleKey.Enter: case ConsoleKey.T: m_act.AddParameter(m_realTarget); CloseTopBlock(); return; } //MessageManager.SendMessage(this, WorldMessage.JustRedraw); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var dPoint = KeyTranslator.GetDirection(_key); if (dPoint != null) { m_message.Act.AddParameter(dPoint); CloseTopBlock(); return; } if (_key == ConsoleKey.Escape) { m_message.Act.IsCancelled = true; CloseTopBlock(); } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.Backspace: m_count = m_count.Length > 0 ? (m_count.Substring(0, m_count.Length - 1)) : ""; break; case ConsoleKey.NumPad0: case ConsoleKey.NumPad1: case ConsoleKey.NumPad2: case ConsoleKey.NumPad3: case ConsoleKey.NumPad4: case ConsoleKey.NumPad5: case ConsoleKey.NumPad6: case ConsoleKey.NumPad7: case ConsoleKey.NumPad8: case ConsoleKey.NumPad9: case ConsoleKey.D0: case ConsoleKey.D1: case ConsoleKey.D2: case ConsoleKey.D3: case ConsoleKey.D4: case ConsoleKey.D5: case ConsoleKey.D6: case ConsoleKey.D7: case ConsoleKey.D8: case ConsoleKey.D9: var name = Enum.GetName(typeof(ConsoleKey), _key); if (m_count.Length < m_message.GetFirstParameter <int>().ToString().Length) { m_count += name.Substring(name.Length - 1, 1); } break; case ConsoleKey.Enter: var cnt = Math.Min(int.Parse(m_count), m_message.GetFirstParameter <int>()); m_message.Act.AddParameter(cnt); CloseTopBlock(); break; case ConsoleKey.Escape: m_message.Act.AddParameter(0); CloseTopBlock(); break; } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var tuple = new Tuple<ConsoleKey, EKeyModifiers>(_key, _modifiers); if (new QuitAct().ConsoleKeys.Contains(tuple)) { MessageManager.SendMessage(this, new OpenUIBlockMessage(new ConfirmQuitBlock())); return; } if(m_messages.NeedWait) { m_messages.KeysPressed(_key, _modifiers); return; } World.TheWorld.KeyPressed(_key, _modifiers); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var tuple = new Tuple <ConsoleKey, EKeyModifiers>(_key, _modifiers); if (new QuitAct().ConsoleKeys.Contains(tuple)) { MessageManager.SendMessage(this, new OpenUIBlockMessage(new ConfirmQuitBlock())); return; } if (m_messages.NeedWait) { m_messages.KeysPressed(_key, _modifiers); return; } World.TheWorld.KeyPressed(_key, _modifiers); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { switch (_key) { case ConsoleKey.Backspace: m_count = m_count.Length > 0 ? (m_count.Substring(0, m_count.Length - 1)) : ""; break; case ConsoleKey.NumPad0: case ConsoleKey.NumPad1: case ConsoleKey.NumPad2: case ConsoleKey.NumPad3: case ConsoleKey.NumPad4: case ConsoleKey.NumPad5: case ConsoleKey.NumPad6: case ConsoleKey.NumPad7: case ConsoleKey.NumPad8: case ConsoleKey.NumPad9: case ConsoleKey.D0: case ConsoleKey.D1: case ConsoleKey.D2: case ConsoleKey.D3: case ConsoleKey.D4: case ConsoleKey.D5: case ConsoleKey.D6: case ConsoleKey.D7: case ConsoleKey.D8: case ConsoleKey.D9: var name = Enum.GetName(typeof (ConsoleKey), _key); if (m_count.Length < m_message.GetFirstParameter<int>().ToString().Length) { m_count += name.Substring(name.Length - 1, 1); } break; case ConsoleKey.Enter: var cnt = Math.Min(int.Parse(m_count), m_message.GetFirstParameter<int>()); m_message.Act.AddParameter(cnt); CloseTopBlock(); break; case ConsoleKey.Escape: m_message.Act.AddParameter(0); CloseTopBlock(); break; } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { var dPoint = KeyTranslator.GetDirection(_key); if (dPoint != null) { var newPoint = TargetPoint + dPoint + m_avatarScreenPoint; if (ContentRct.Contains(newPoint)) { TargetPoint += dPoint; } } switch (_key) { case ConsoleKey.Escape: case ConsoleKey.Z: CloseTopBlock(); break; } //MessageManager.SendMessage(this, WorldMessage.JustRedraw); }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if ((m_behavior & ESelectItemDialogBehavior.ALLOW_CHANGE_FILTER) == ESelectItemDialogBehavior.ALLOW_CHANGE_FILTER) { if (_key == ConsoleKey.Multiply || (_key == ConsoleKey.D8 && _modifiers == EKeyModifiers.SHIFT)) { m_currentFilter = '*'; Rebuild(); return; } foreach (var pair in m_filters) { if (pair.Key.Item1 == _key && pair.Key.Item2 == _modifiers) { m_currentFilter = EssenceCategoryAttribute.GetAttribute(pair.Value).C; Rebuild(); return; } } } if (_modifiers != EKeyModifiers.NONE) { return; } switch (_key) { case ConsoleKey.Z: case ConsoleKey.Escape: CloseTopBlock(); return; case ConsoleKey.PageUp: m_currentPage = Math.Max(0, m_currentPage - 1); break; case ConsoleKey.PageDown: m_currentPage = Math.Min(m_pages.Count - 1, m_currentPage + 1); break; case ConsoleKey.Enter: if ((m_behavior & ESelectItemDialogBehavior.SELECT_MULTIPLE) == ESelectItemDialogBehavior.SELECT_MULTIPLE) { CloseTopBlock(_key); } return; } if (m_pages.Count > 0) { foreach (var presenter in m_pages[m_currentPage].OfType <EssencePresenter>()) { if (presenter.Key == _key) { presenter.IsChecked = !presenter.IsChecked; if ((m_behavior & ESelectItemDialogBehavior.SELECT_ONE) == ESelectItemDialogBehavior.SELECT_ONE) { CloseTopBlock(ConsoleKey.Enter); return; } } } } }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { if ((m_behavior & ESelectItemDialogBehavior.ALLOW_CHANGE_FILTER) == ESelectItemDialogBehavior.ALLOW_CHANGE_FILTER) { if (_key == ConsoleKey.Multiply || (_key == ConsoleKey.D8 && _modifiers == EKeyModifiers.SHIFT)) { m_currentFilter = '*'; Rebuild(); return; } foreach (var pair in m_filters) { if (pair.Key.Item1 == _key && pair.Key.Item2 == _modifiers) { m_currentFilter = EssenceCategoryAttribute.GetAttribute(pair.Value).C; Rebuild(); return; } } } if (_modifiers != EKeyModifiers.NONE) return; switch (_key) { case ConsoleKey.Z: case ConsoleKey.Escape: CloseTopBlock(); return; case ConsoleKey.PageUp: m_currentPage = Math.Max(0, m_currentPage - 1); break; case ConsoleKey.PageDown: m_currentPage = Math.Min(m_pages.Count - 1, m_currentPage + 1); break; case ConsoleKey.Enter: if ((m_behavior & ESelectItemDialogBehavior.SELECT_MULTIPLE) == ESelectItemDialogBehavior.SELECT_MULTIPLE) { CloseTopBlock(_key); } return; } if (m_pages.Count > 0) { foreach (var presenter in m_pages[m_currentPage].OfType<EssencePresenter>()) { if (presenter.Key == _key) { presenter.IsChecked = !presenter.IsChecked; if ((m_behavior & ESelectItemDialogBehavior.SELECT_ONE) == ESelectItemDialogBehavior.SELECT_ONE) { CloseTopBlock(ConsoleKey.Enter); return; } } } } }
public EssenceCategoryAttribute(char _char, ConsoleKey _key, EKeyModifiers _modifiers) { C = _char; Key = _key; Modifiers = _modifiers; }
public override void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { throw new NotImplementedException(); }
public void Update(KeyState _keyState) { var keyModifiers = _keyState.KeyModifiers; var downKeys = _keyState.PressedKeys; if (keyModifiers != m_keyModifiers) m_downKeys.Clear(); var pressedKeys = new List<ConsoleKey>(); var prevDownKeys = m_downKeys.ToArray(); foreach (var key in prevDownKeys) { if (downKeys.Contains(key)) continue; pressedKeys.Add(key); m_downKeys.Remove(key); } foreach (var key in downKeys) { if (m_downKeys.Contains(key)) continue; m_moveKeyHoldedSince = DateTime.Now; m_downKeys.Add(key); } m_keyModifiers = keyModifiers; if (m_downKeys.Except(KeyTranslator.MoveKeys).Any() || pressedKeys.Any()) { m_isAutoRepeateMode = false; } else { if (m_downKeys.Intersect(KeyTranslator.MoveKeys).Any()) { var totalMilliseconds = (DateTime.Now - m_moveKeyHoldedSince).TotalMilliseconds; if (m_isAutoRepeateMode) { if (totalMilliseconds > Constants.AUTO_MOVE_REPEAT_MILLISECONDS) { m_moveKeyHoldedSince = DateTime.Now; pressedKeys.AddRange(m_downKeys); } } else { if (totalMilliseconds > Constants.AUTO_MOVE_REPEAT_AFTER) { m_isAutoRepeateMode = true; } } } } foreach (var pressedKey in pressedKeys) { m_pressed.Enqueue(new Tuple<ConsoleKey, EKeyModifiers>(pressedKey, m_keyModifiers)); } if (m_pressed.Count > 0) { if (UiBlocks.Peek() != m_mainUiBlock || World.TheWorld.Avatar.NextAct == null) { var tuple = m_pressed.Dequeue(); UiBlocks.Peek().KeysPressed(tuple.Item1, tuple.Item2); MessageManager.SendMessage(this,WorldMessage.JustRedraw); } } if (UiBlocks.Peek() == m_mainUiBlock) { if (!m_mainUiBlock.NeedWait) { if (!World.TheWorld.CreatureManager.FirstActiveCreature.IsAvatar || World.TheWorld.Avatar.NextAct != null || World.TheWorld.WorldTick==0) { #if DEBUG using (new Profiler()) #endif { World.TheWorld.GameUpdated(); } } } } }
public virtual void KeysPressed(ConsoleKey _key, EKeyModifiers _modifiers) { }
public void Update(KeyState _keyState) { var keyModifiers = _keyState.KeyModifiers; var downKeys = _keyState.PressedKeys; if (keyModifiers != m_keyModifiers) { m_downKeys.Clear(); } var pressedKeys = new List <ConsoleKey>(); var prevDownKeys = m_downKeys.ToArray(); foreach (var key in prevDownKeys) { if (downKeys.Contains(key)) { continue; } pressedKeys.Add(key); m_downKeys.Remove(key); } foreach (var key in downKeys) { if (m_downKeys.Contains(key)) { continue; } m_moveKeyHoldedSince = DateTime.Now; m_downKeys.Add(key); } m_keyModifiers = keyModifiers; if (m_downKeys.Except(KeyTranslator.MoveKeys).Any() || pressedKeys.Any()) { m_isAutoRepeateMode = false; } else { if (m_downKeys.Intersect(KeyTranslator.MoveKeys).Any()) { var totalMilliseconds = (DateTime.Now - m_moveKeyHoldedSince).TotalMilliseconds; if (m_isAutoRepeateMode) { if (totalMilliseconds > Constants.AUTO_MOVE_REPEAT_MILLISECONDS) { m_moveKeyHoldedSince = DateTime.Now; pressedKeys.AddRange(m_downKeys); } } else { if (totalMilliseconds > Constants.AUTO_MOVE_REPEAT_AFTER) { m_isAutoRepeateMode = true; } } } } foreach (var pressedKey in pressedKeys) { m_pressed.Enqueue(new Tuple <ConsoleKey, EKeyModifiers>(pressedKey, m_keyModifiers)); } if (m_pressed.Count > 0) { if (UiBlocks.Peek() != m_mainUiBlock || World.TheWorld.Avatar.NextAct == null) { var tuple = m_pressed.Dequeue(); UiBlocks.Peek().KeysPressed(tuple.Item1, tuple.Item2); MessageManager.SendMessage(this, WorldMessage.JustRedraw); } } if (UiBlocks.Peek() == m_mainUiBlock) { if (!m_mainUiBlock.NeedWait) { if (!World.TheWorld.CreatureManager.FirstActiveCreature.IsAvatar || World.TheWorld.Avatar.NextAct != null || World.TheWorld.WorldTick == 0) { #if DEBUG using (new Profiler()) #endif { World.TheWorld.GameUpdated(); } } } } }