public IEnumerable <RedisKey> Keys(int database = 0, RedisValue pattern = default(RedisValue), int pageSize = CursorUtils.DefaultPageSize, long cursor = CursorUtils.Origin, int pageOffset = 0, CommandFlags flags = CommandFlags.None)
        {
            if (pageSize <= 0)
            {
                throw new ArgumentOutOfRangeException("pageSize");
            }
            if (CursorUtils.IsNil(pattern))
            {
                pattern = RedisLiterals.Wildcard;
            }

            if (multiplexer.CommandMap.IsAvailable(RedisCommand.SCAN))
            {
                var features = server.GetFeatures();

                if (features.Scan)
                {
                    return(new KeysScanEnumerable(this, database, pattern, pageSize, cursor, pageOffset, flags));
                }
            }

            if (cursor != 0 || pageOffset != 0)
            {
                throw ExceptionFactory.NoCursor(RedisCommand.KEYS);
            }
            Message msg = Message.Create(database, flags, RedisCommand.KEYS, pattern);

            return(ExecuteSync(msg, ResultProcessor.RedisKeyArray));
        }
 protected override Message CreateMessage(long cursor)
 {
     if (CursorUtils.IsNil(pattern))
     {
         if (pageSize == CursorUtils.DefaultPageSize)
         {
             return(Message.Create(db, flags, RedisCommand.SCAN, cursor));
         }
         else
         {
             return(Message.Create(db, flags, RedisCommand.SCAN, cursor, RedisLiterals.COUNT, pageSize));
         }
     }
     else
     {
         if (pageSize == CursorUtils.DefaultPageSize)
         {
             return(Message.Create(db, flags, RedisCommand.SCAN, cursor, RedisLiterals.MATCH, pattern));
         }
         else
         {
             return(Message.Create(db, flags, RedisCommand.SCAN, cursor, RedisLiterals.MATCH, pattern, RedisLiterals.COUNT, pageSize));
         }
     }
 }
        private void OnDragOver(object sender, DragEventArgs e)
        {
            e.Effect = DragDropEffects.Copy;
            string str = e.Data.GetData(typeof(String)) as String;

            SizeF size;
            Font  f = new Font("Segoe UI", 10, FontStyle.Regular);

            using (Bitmap tmpBmp = new Bitmap(1, 1))
                using (Graphics g = Graphics.FromImage(tmpBmp))
                    size = g.MeasureString(str, f);

            size.Height += 4;
            size.Width  += 4;

            Bitmap bitmap = new Bitmap((int)Math.Ceiling(size.Width),
                                       (int)Math.Ceiling(size.Height));

            using (Graphics g = Graphics.FromImage(bitmap))
            {
                g.SmoothingMode     = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
                g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
                g.FillRectangle(SystemBrushes.Control, 0, 0, size.Width, size.Height);
                g.DrawString(str, f, SystemBrushes.ControlText, 2, 2);
                g.DrawRectangle(Pens.Black, 0, 0, size.Width - 1, size.Height - 1);
            }

            Cursor.Current = CursorUtils.CreateCursor(bitmap, 0, 0);

            bitmap.Dispose();
            f.Dispose();
        }
Example #4
0
    private void PlaceUnitOnMap()
    {
        var pickedUnit = Instantiate(_pickedUnit, CursorUtils.GetMouseWorldPosition(), Quaternion.identity);

        pickedUnit.transform.localScale = _unitScale;
        pickedUnit.transform.position   = GridUtils.SetUnitOnTileCenter(pickedUnit.gameObject);
        GameController_GridCombatSystem
        .Instance
        .GetGrid()
        .GetGridObject(pickedUnit.GetPosition())
        .SetUnitGridCombat(pickedUnit);
        _pickedUnit = null;
    }
        public override void OnUpdate(float dt)
        {
            if (Mouse.current != null && Mouse.current.middleButton.wasPressedThisFrame)
            {
                CursorUtils.ToggleMouseCursor();
                _controls.InputEnabled = !_controls.InputEnabled;
            }

            if (_interactions.GetCurrentGame() != null && ((Keyboard.current != null && Keyboard.current.eKey.wasPressedThisFrame) || (Gamepad.current != null && Gamepad.current.rightStickButton.wasPressedThisFrame)))
            {
                _stateController.TransitionTo <GameFocusState>();
            }
        }
Example #6
0
        private static async Task Main()
        {
            var appManager = ServiceProvider.GetRequiredService <AppManager>();

            appManager.RunApp();

            var overlayManager = ServiceProvider.GetRequiredService <OverlayManager>();
            await overlayManager.InitializeAsync();

            CursorUtils.ToggleMouseCursorVisibility();

            await WaitForExitAsync();

            overlayManager.Dispose();
            appManager.Dispose();
        }
Example #7
0
        static async Task Main(string[] args)
        {
            var services = new ServiceCollection()
                           .AddLogging(x =>
            {
                x.ClearProviders();
                x.AddConsole();
            })
                           .BuildServiceProvider();

            var serviceDescriptor = new ServiceDiscoveryMessage()
            {
                IpAddress  = ByteString.CopyFrom(IPUtils.GetLocalIpAddress().GetAddressBytes()),
                Port       = 8765,
                ServerName = Environment.MachineName
            };

            var logger       = services.GetRequiredService <ILogger <PhoneRemoteServiceBroadcaster <IMessage> > >();
            var serverLogger = services.GetRequiredService <ILogger <PhoneRemoteServer <IMessage> > >();

            var serializer  = new ProtobufMessageSerializer();
            var broadcaster = new PhoneRemoteServiceBroadcaster <IMessage>(serializer, serviceDescriptor, logger);
            var server      = new PhoneRemoteServer <IMessage>(serializer, new IPEndPoint(new IPAddress(serviceDescriptor.IpAddress.Span), serviceDescriptor.Port), serverLogger);

            broadcaster.StartListenForClients();

            Console.WriteLine("Listening on local..");
            await server.WaitForConnectionAsync(CancellationToken.None);

            Console.WriteLine("Got connection. Listening for messages..");

            var cursor = CursorUtils.GetCursorInfo();

            await foreach (var action in server.WaitForMessageAsync <CursorAction>(CancellationToken.None))
            {
                //Console.SetCursorPosition(0, 2);

                //cursor.ptScreenPos.x += pos.DX;
                //cursor.ptScreenPos.y += pos.DY;

                //Console.WriteLine($"dx,dy={pos.DX},{pos.DY}");

                CursorUtils.DispatchMouseEvent(action);
            }
        }
Example #8
0
    private void Update()
    {
        if (!_teamsState.areTeamsReady)
        {
            return;
        }
        switch (_state)
        {
        case State.Normal:
            if (Input.GetKeyDown(KeyCode.Space))
            {
                Debug.Log("Force turn over.");
                ForceTurnOver();
            }

            if (Input.GetMouseButtonDown(0))
            {
                var grid       = GameController_GridCombatSystem.Instance.GetGrid();
                var gridObject = grid.GetGridObject(CursorUtils.GetMouseWorldPosition());
                // Check if clicking on a unit position
                if (gridObject == null)
                {
                    return;
                }
                if (gridObject.GetUnitGridCombat() != null)     // Clicked on top of a Unit
                {
                    if (_unitCombatSystem.IsEnemy(gridObject.GetUnitGridCombat()))
                    {
                        if (_unitCombatSystem.CanMeleeAttack(gridObject.GetUnitGridCombat()) &&
                            _unitCombatSystem.unitStats.unitType == UnitTypeEnum.Melee)
                        {
                            if (_canAttackThisTurn)
                            {
                                _canAttackThisTurn = false;
                                _state             = State.Normal;
                                _unitCombatSystem.AttackUnit(gridObject.GetUnitGridCombat(), () => {
                                    _state = State.Normal;
                                    ForceTurnOver();
                                });
                            }
                        }

                        if (_unitCombatSystem.CanDistanceAttack(gridObject.GetUnitGridCombat()) &&
                            _unitCombatSystem.unitStats.unitType == UnitTypeEnum.Distance)
                        {
                            if (_canAttackThisTurn)
                            {
                                _canAttackThisTurn = false;
                                _state             = State.Normal;
                                _unitCombatSystem.AttackUnit(gridObject.GetUnitGridCombat(), () => {
                                    _state = State.Normal;
                                    ForceTurnOver();
                                });
                            }
                        }

                        break;
                    }
                }

                if (gridObject.GetIsValidMovePosition())
                {
                    if (_canMoveThisTurn)
                    {
                        _canMoveThisTurn = false;
                        grid.GetGridObject(_unitCombatSystem.GetPosition()).ClearUnitGridCombat();
                        gridObject.SetUnitGridCombat(_unitCombatSystem);

                        ClearMovementGridVisualization();
                        _state = State.Waiting;
                        _unitCombatSystem.MoveTo(CursorUtils.GetMouseWorldPosition(),
                                                 () => {
                            UpdateValidMovePositionsAndAttackRange(true);
                            _state = State.Normal;
                        });
                    }
                }
            }

            break;
        }
    }
        public override void OnUpdate(float dt)
        {
            if (Mouse.current != null && Mouse.current.middleButton.wasPressedThisFrame)
            {
                CursorUtils.ToggleMouseCursor();
                _currentGame.InputEnabled = !_currentGame.InputEnabled;
            }

            if (!Cursor.visible)
            {
                if ((Keyboard.current != null && Keyboard.current.eKey.wasPressedThisFrame) || (Gamepad.current != null && Gamepad.current.rightStickButton.wasPressedThisFrame))
                {
                    _stateController.TransitionTo <NormalState>();
                }

                if (Keyboard.current != null && _currentGame != null)
                {
                    if (Keyboard.current.pKey.wasPressedThisFrame)
                    {
                        if (_currentGame.Running)
                        {
                            _currentGame.Pause();
                        }
                        else
                        {
                            _currentGame.Resume();
                        }
                    }

                    if (Keyboard.current.f5Key.wasPressedThisFrame && _currentGame.SaveState(0))
                    {
                        Debug.Log("State saved to slot 0");
                    }
                    if (Keyboard.current.f6Key.wasPressedThisFrame && _currentGame.SaveState(1))
                    {
                        Debug.Log("State saved to slot 1");
                    }
                    if (Keyboard.current.f7Key.wasPressedThisFrame && _currentGame.SaveState(2))
                    {
                        Debug.Log("State saved to slot 2");
                    }
                    if (Keyboard.current.f8Key.wasPressedThisFrame && _currentGame.SaveState(3))
                    {
                        Debug.Log("State saved to slot 3");
                    }

                    if (Keyboard.current.f9Key.wasPressedThisFrame && _currentGame.LoadState(0))
                    {
                        Debug.Log("State loaded from slot 0");
                    }
                    if (Keyboard.current.f10Key.wasPressedThisFrame && _currentGame.LoadState(1))
                    {
                        Debug.Log("State loaded from slot 1");
                    }
                    if (Keyboard.current.f11Key.wasPressedThisFrame && _currentGame.LoadState(2))
                    {
                        Debug.Log("State loaded from slot 2");
                    }
                    if (Keyboard.current.f12Key.wasPressedThisFrame && _currentGame.LoadState(3))
                    {
                        Debug.Log("State loaded from slot 3");
                    }

                    _currentGame.Rewind(Keyboard.current.backspaceKey.isPressed);
                }
            }
        }
 private void Start()
 {
     CursorUtils.HideMouseCursor();
     _stateController.TransitionTo <NormalState>();
 }
Example #11
0
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            var        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit))
            {
                Debug.Log($"RAYCAST HIT: {hit.transform.name}");
            }
        }

        if (!Input.GetMouseButtonDown(0) || _pickedUnit == null)
        {
            return;
        }
        var gridObject = _grid.GetGridObject(CursorUtils.GetMouseWorldPosition());

        if (_pickedUnit == null || gridObject == null || gridObject.GetRespawn() == null)
        {
            return;
        }

        // TODO nice to have removed duplicates
        if (_teamPicking == UnitCombatSystem.Team.Left)
        {
            if (gridObject.GetRespawn().CompareTag("RightRespawn"))
            {
                return;
            }
            var pickedUnit = Instantiate(_pickedUnit, CursorUtils.GetMouseWorldPosition(), Quaternion.identity);
            pickedUnit.transform.localScale = _unitScale;
            pickedUnit.transform.position   = GridUtils.SetUnitOnTileCenter(pickedUnit.gameObject);
            _unitStatsControllerUI.HidePanelPlayerPanel(_teamPicking, GameModeEnum.DraftPick);

            _teamsState.leftTeam.Add(pickedUnit);
            _teamsState.allUnitsInBothTeams.Add(pickedUnit);

            _pickButtonSelected.SetActive(false);
            _pickedUnit = null;
            _draftPickPoint++;

            if (
                _draftPickPoint == 1 ||
                _draftPickPoint == 5 ||
                _draftPickPoint == 9
                )
            {
                HideRespawn();
                _teamPicking = UnitCombatSystem.Team.Right;
                _unitStatsControllerUI.HidePanelPlayerPanel(_teamPicking, GameModeEnum.DraftPick);
                Debug.Log($"DRAFT PICK POINT: {_draftPickPoint} NEXT PICK: {_teamPicking}");
                return;
            }
        }

        if (_teamPicking == UnitCombatSystem.Team.Right)
        {
            if (gridObject.GetRespawn().CompareTag("LeftRespawn"))
            {
                return;
            }
            var pickedUnit = Instantiate(_pickedUnit, CursorUtils.GetMouseWorldPosition(), Quaternion.identity);
            pickedUnit.transform.localScale = _unitScale;
            pickedUnit.transform.position   = GridUtils.SetUnitOnTileCenter(pickedUnit.gameObject);

            _teamsState.rightTeam.Add(pickedUnit);
            _teamsState.allUnitsInBothTeams.Add(pickedUnit);

            _pickedUnit = null;
            _pickButtonSelected.SetActive(false);

            if (_teamsState.rightTeam.Count == _numberOfUnitsInTeam)
            {
                Debug.Log($"{_teamsState.rightTeam} is FULL");

                _leftTeamRespawn.SetActive(false);
                _rightTeamRespawn.SetActive(false);
                _gridCombatSystem._teamsState = _teamsState;
                _gridCombatSystem.SetupGame();
                return;
            }

            _draftPickPoint++;
            if (_draftPickPoint == 3 || _draftPickPoint == 7)
            {
                HideRespawn();
                _teamPicking = UnitCombatSystem.Team.Left;
                _unitStatsControllerUI.HidePanelPlayerPanel(_teamPicking, GameModeEnum.DraftPick);
                Debug.Log($"DRAFT PICK POINT: {_draftPickPoint} NEXT PICK: {_teamPicking}");
            }
        }
    }