Ejemplo n.º 1
0
 protected virtual void OnPlayerMoved(Position newPlayerPosition)
 {
     PlayerMoved?.Invoke(this, new PlayerEventArgs()
     {
         NewPlayerPosition = newPlayerPosition
     });
 }
Ejemplo n.º 2
0
    void FixedUpdate()
    {
        if (FreezeTime.i.timeFroze)
        {
            return;
        }
        if (tutorialFreeze)
        {
            return;
        }

        float horizontalInput = Input.GetAxis("Horizontal");

        if (horizontalInput != 0 && !tutorialMoved)
        {
            tutorialMoved = true;
            StartCoroutine(TutorialMoved());
        }

        rb.velocity = new Vector2(horizontalInput * movementSpeed, rb.velocity.y);

        if (Input.GetKey(KeyCode.Space) && isGrounded && !tutorialJumpFreeze)
        {
            if (!tutorialJumped)
            {
                tutorialJumped = true;
                PlayerMoved?.Invoke();
            }
            isGrounded  = false;
            rb.velocity = new Vector2(rb.velocity.x, Time.deltaTime * JumpSpeed);
            PlayerJumped?.Invoke();
        }
    }
Ejemplo n.º 3
0
 private void UpdatePlayerView(PlayerMoved playerMoved)
 {
     _playerViews[playerMoved.PlayerId]?.transform.SetPositionAndRotation(
         anchorObject.transform.position + playerMoved.Position,
         playerMoved.Rotation * anchorObject.rotation
         );
 }
Ejemplo n.º 4
0
 void PerformSegment()
 {
     points[pointA].State = GamePoint.PointState.UsedByPlayer;
     points[pointB].State = GamePoint.PointState.UsedByPlayer;
     state = FieldState.Free;
     AddSegment(pointA, pointB, ColorBank.Yellow);
     PlayerMoved?.Invoke(fieldData.segmentID[pointA, pointB]);
 }
Ejemplo n.º 5
0
        public void Move(int x, int y)
        {
            int      xPos          = Game.PlayerRef.Position.X + x;
            int      yPos          = Game.PlayerRef.Position.Y + y;
            int      oldPlayerPosX = int.Parse(Game.PlayerRef.Position.X.ToString());
            int      oldPlayerPosY = int.Parse(Game.PlayerRef.Position.Y.ToString());
            Position pos           = new Position(xPos, yPos);
            Position previousPos   = new Position(oldPlayerPosX, oldPlayerPosY);

            if (PositionIsValid(xPos, yPos))
            {
                if (Map.MapTiles[yPos][xPos] is TreasureChestTile)
                {
                    TreasureChestTile chest = TreasureChestTile.TreasureChests.Find(item => item.ChestRight == pos || item.ChestLeft == pos);
                    if (chest != null && chest.IsOpened)
                    {
                        chest.Touch();
                        ItemTouched?.Invoke();
                    }
                    chest.Interact(pos);
                    NeedRefresh?.Invoke();
                    QuestItemInteracted?.Invoke(chest);
                }
                else if (Map.MapTiles[yPos][xPos] is NextLevelTile)
                {
                    LoadNewMap();
                }
                else if (Map.MapTiles[yPos][xPos] is QuestGiver)
                {
                    QuestGiver quest = QuestGiver.Quests.Find(q => q.Position == pos);
                    quest.Interact(pos);
                }
                else
                {
                    if (Map.MapTiles[yPos][xPos] is BonusLifeTile)
                    {
                        Position      futurePos = new Position(pos.X, pos.Y);
                        BonusLifeTile bonus     = BonusLifeTile.Bonuses.Find(b => b.Position == futurePos);
                        bonus.Interact(pos);
                        QuestItemInteracted?.Invoke(bonus);
                    }
                    Map.MapTiles[yPos][xPos] = Game.PlayerRef;
                    Map.MapTiles[Game.PlayerRef.Position.Y][Game.PlayerRef.Position.X] = new EmptySpaceTile();
                    Game.PlayerRef.Position.X += x;
                    Game.PlayerRef.Position.Y += y;
                }
            }
            else
            {
                if (Map.MapTiles[yPos][xPos] is ITouchable)
                {
                    ((ITouchable)Map.MapTiles[yPos][xPos]).Touch();
                }
            }

            MonsterAttackOnPlayerProximity(yPos, xPos);
            PlayerMoved?.Invoke(previousPos);
        }
        public void MoveTo(XY newLocation)
        {
            VerifyIsNotDead();

            var previousLocation = Location;

            Location = newLocation;

            PlayerMoved?.Invoke(previousLocation, this);
        }
Ejemplo n.º 7
0
    void MoveToPoint()
    {
        Ray        ray = Camera.main.ScreenPointToRay(mouse.position.ReadValue());
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, groundLayer))
        {
            PlayerMoved?.Invoke(hit.point);
        }
    }
Ejemplo n.º 8
0
    private void SetCurrentVertex(Vertex nextVertex)
    {
        CurrentVertex = nextVertex;
        //transform.position = CurrentVertex.Coordinates;

        if (!_isDying)
        {
            PlayerMoved?.Invoke();
        }
    }
Ejemplo n.º 9
0
 public TicTacToePlayer(ITicTacToeInput input)
 {
     _input            = input;
     _input.InputSent += (sender, args) =>
     {
         if (CanMove)
         {
             PlayerMoved?.Invoke(this, args);
         }
     };
 }
Ejemplo n.º 10
0
        private void DoMovement()
        {
            if (notMovedSet.Count == 0)
            {
                NextTurn();
                return;
            }

            while (notMovedSet.Count > 0)
            {
                var objToMove = notMovedSet.First();
                foreach (var moveCmp in notMovedSet)
                {
                    if (moveCmp.Initiative > objToMove.Initiative)
                    {
                        objToMove = moveCmp;
                    }
                }

                var decision = objToMove.MakeDecision();
                if (decision == Decision.NotDecided)
                {
                    break;
                }

                var dirVector = decision.ToDirection();

                var moveComp = objToMove as Component;
                if (dirVector != Point2.Zero)
                {
                    moveComp.GameObj.GetComponent <DiscreteTransform> ().MoveBy(dirVector);
                }
                if (decision != Decision.NotDecided)
                {
                    notMovedSet.Remove(objToMove);
                    if (decision == Decision.Fight)
                    {
                        IsInCombat        = true;
                        nextMovementQuery = Time.GameTimer + TimeSpan.FromSeconds(FightWaitTime);
                        break;
                    }
                }
                if (moveComp.GameObj.GetComponent <PlayerMovement> () != null)
                {
                    PlayerMoved?.Invoke();
                }
            }
        }
Ejemplo n.º 11
0
        private void Update()
        {
#if !UNTITY_EDITOR && (UNITY_ANDROID || UNITY_IOS)
            if (Input.touchCount > 0)
            {
                _move = AllowInput;
            }
#else
            _move = Input.GetMouseButton(MouseButton) && AllowInput;
#endif

            if (_move)
            {
                PlayerMoved.Invoke();
            }
        }
Ejemplo n.º 12
0
        public void Apply(PlayerMoved incomingEvent)
        {
            if (!this.CanPlayerGo(incomingEvent.Direction))
            {
                throw new SeekerException("the player cannot go there");
            }

            if (this.Movements == 0)
            {
                this.SaveInitialScenario();
            }

            var newPlayerPosition = this.Player.MoveTo(incomingEvent.Direction);

            this.RemoveTargetIfNeeded(newPlayerPosition);

            this.items.Remove(this.Player);
            this.items.Add(newPlayerPosition);
            this.Movements++;
        }
Ejemplo n.º 13
0
    private void HandleSocketIoMessage(JArray array)
    {
        switch ((string)array[0])
        {
        case "playerJoined":
        {
            var player = Player.GetPlayer(array[1]["player"]);
            PlayerJoined?.Invoke(player);
            break;
        }

        case "playerLeft":
        {
            var player = Player.GetPlayerById((string)array[1]["user"]);
            PlayerLeft?.Invoke(player);
            break;
        }

        case "gameIsStarting":
        {
            GameIsStarting?.Invoke();
            break;
        }

        case "gameLobbyTimer":
        {
            var remainingSeconds = (int)array[1]["remainingSeconds"];
            GameLobbyTimer?.Invoke(remainingSeconds);
            break;
        }

        case "gameStarted":
        {
            var firstPlayer = Player.GetPlayerById(array[1]["firstPlayer"].ToString());

            GameStarted?.Invoke(firstPlayer);
            break;
        }

        case "playerRolledDice":
        {
            var player = Player.GetPlayerById(array[1]["user"].ToString());
            var dice   = ((JArray)array[1]["dice"]).Select(d => (int)d).ToArray();
            PlayerRolledDice?.Invoke(player, dice);
            break;
        }

        case "playerTurnChanged":
        {
            var player = Player.GetPlayerById(array[1]["user"].ToString());
            PlayerTurnChanged?.Invoke(player);
            break;
        }

        case "playerPlaysAgain":
        {
            var player = Player.GetPlayerById(array[1]["user"].ToString());
            PlayerPlaysAgain?.Invoke(player);
            break;
        }

        case "playerMoved":
        {
            var player   = Player.GetPlayerById(array[1]["user"].ToString());
            var location = (int)array[1]["location"];
            PlayerMoved?.Invoke(player, location);
            break;
        }

        case "playerBalanceChanged":
        {
            var player  = Player.GetPlayerById(array[1]["user"].ToString());
            var balance = (int)array[1]["balance"];
            PlayerBalanceChanged?.Invoke(player, balance);
            break;
        }

        case "playerSteppedOnChance":
        {
            var player = Player.GetPlayerById(array[1]["user"].ToString());
            var text   = array[1]["card"].ToString();
            PlayerSteppedOnChance?.Invoke(player, text);
            break;
        }

        case "playerSteppedOnCommunityChest":
        {
            var player = Player.GetPlayerById(array[1]["user"].ToString());
            var text   = array[1]["card"].ToString();
            PlayerSteppedOnCommunityChest?.Invoke(player, text);
            break;
        }

        case "propertyOwnerChanged":
        {
            var propertyIndex = (int)array[1]["propertyIndex"];
            var ownerId       = array[1]["ownerId"].ToString();
            PropertyOwnerChanged?.Invoke(propertyIndex, ownerId);
            break;
        }
        }
    }
Ejemplo n.º 14
0
 private void PlayerMoveHandler(byte senderIdx, PacketReader packetReader)
 {
     PlayerMoved?.Invoke(senderIdx, packetReader.NextVector2());
 }
Ejemplo n.º 15
0
 public static void OnPlayerMoved(object sender, PlayerEventArgs e)
 {
     PlayerMoved?.Invoke(null, e);
 }
Ejemplo n.º 16
0
    IEnumerator TutorialMoved()
    {
        yield return(new WaitForSeconds(0.5f));

        PlayerMoved?.Invoke();
    }
Ejemplo n.º 17
0
 protected virtual void onPlayerMoved()
 {
     // Note to self: this is just syntactic sugar for first checking if(PlayerMoved =! null)
     PlayerMoved?.Invoke(this);
 }
Ejemplo n.º 18
0
 /// <summary>
 ///     Dispatches the <see cref="PlayerMoved"/> event asynchronously.
 /// </summary>
 /// <param name="eventArgs">the event arguments passed with the event</param>
 /// <returns>a task that represents the asynchronous operation</returns>
 protected virtual Task OnPlayerMovedAsync(PlayerMovedEventArgs eventArgs)
 => PlayerMoved.InvokeAsync(this, eventArgs);
Ejemplo n.º 19
0
 private void When(PlayerMoved playerMoved)
 {
     Players[playerMoved.PlayerId].Move(playerMoved.Position, playerMoved.Rotation);
 }
Ejemplo n.º 20
0
 protected virtual void OnPlayerMoved()
 {
     PlayerMoved?.Invoke(this, EventArgs.Empty);
 }
Ejemplo n.º 21
0
 private void PlayerMoved(PlayerMoved playerMoved)
 {
     this.Animator.SetInteger(SPEED, playerMoved.Value);
 }
Ejemplo n.º 22
0
    private void Start()
    {
        StartCoroutine(Upload("socket.io/?EIO=3&transport=polling", async(response, error) =>
        {
            if (error != null)
            {
                return;
            }

            string sid = (string)response["sid"];

            _websocket = new WebSocket(APIWrapper.WS_PROTOCOL + APIWrapper.URL + "socket.io/?EIO=3&transport=websocket&sid=" + sid);

            _websocket.OnOpen += () =>
            {
                _closed = false;
                Debug.Log("Connection open!");
                _websocket.SendText("2probe");
            };

            _websocket.OnError += (e) =>
            {
                Debug.Log("Error! " + e);
            };

            _websocket.OnClose += (e) =>
            {
                Debug.Log("Connection closed!");
                if (!_closed)
                {
                    Start();
                }
            };

            _websocket.OnMessage += (bytes) =>
            {
                if (_closed)
                {
                    return;
                }

                try
                {
                    var message = Encoding.UTF8.GetString(bytes, 0, bytes.Length);

                    if (message == "3probe")
                    {
                        _websocket.SendText("5");
                        return;
                    }

                    if (message.Length <= 3 || message.Substring(0, 2) != "42")
                    {
                        return;
                    }

                    message   = message.Substring(2);
                    var array = JArray.Parse(message);

                    Debug.Log(array[0]);

                    switch ((string)array[0])
                    {
                    case "playerJoined":
                        {
                            var player = Player.GetPlayer(array[1]["player"]);
                            GetCurrentGame().Players.Add(player);
                            PlayerJoined?.Invoke(player);
                            break;
                        }

                    case "playerLeft":
                        {
                            foreach (var player in GetCurrentGame().Players.ToArray())
                            {
                                if (player.UserId != (string)array[1]["user"])
                                {
                                    continue;
                                }

                                GetCurrentGame().Players.Remove(player);
                                PlayerLeft?.Invoke(player);
                            }
                            break;
                        }

                    case "gameStarted":
                        {
                            var firstPlayer = Player.GetPlayerById(array[1]["firstPlayer"].ToString());
                            GameManager.Instance.Game.UpdateCurrentPlayer(firstPlayer);
                            GameManager.Instance.Game.SetRunning();
                            GameStarted?.Invoke();
                            break;
                        }

                    case "playerRolledDice":
                        {
                            var player = Player.GetPlayerById(array[1]["user"].ToString());
                            var dice   = ((JArray)array[1]["dice"]).Select(d => (int)d).ToArray();

                            PlayerRolledDice?.Invoke(player, dice);
                            break;
                        }

                    case "playerTurnChanged":
                        {
                            var player = Player.GetPlayerById(array[1]["user"].ToString());
                            GameManager.Instance.Game.UpdateCurrentPlayer(player);

                            Debug.Log(player.UserId);

                            PlayerTurnChanged?.Invoke(player);
                            break;
                        }

                    case "playerPlaysAgain":
                        {
                            var player = Player.GetPlayerById(array[1]["user"].ToString());

                            PlayerPlaysAgain?.Invoke(player);
                            break;
                        }

                    case "playerMoved":
                        {
                            var player   = Player.GetPlayerById(array[1]["user"].ToString());
                            var location = (int)array[1]["location"];

                            PlayerMoved?.Invoke(player, location);
                            break;
                        }

                    case "playerBalanceChanged":
                        {
                            var player  = Player.GetPlayerById(array[1]["user"].ToString());
                            var balance = (int)array[1]["balance"];

                            player.Balance = balance;

                            PlayerBalanceChanged?.Invoke(player, balance);
                            break;
                        }

                    case "playerSteppedOnChance":
                        {
                            var player = Player.GetPlayerById(array[1]["user"].ToString());
                            var text   = array[1]["card"].ToString();

                            PlayerSteppedOnChance?.Invoke(player, text);
                            break;
                        }

                    case "playerSteppedOnCommunityChest":
                        {
                            var player = Player.GetPlayerById(array[1]["user"].ToString());
                            var text   = array[1]["card"].ToString();

                            PlayerSteppedOnCommunityChest?.Invoke(player, text);
                            break;
                        }

                    case "propertyOwnerChanged":
                        {
                            var propertyIndex = (int)array[1]["propertyIndex"];
                            var ownerId       = array[1]["ownerId"].ToString();

                            var property     = GameManager.Instance.Game.GetPropertyByIndex(propertyIndex);
                            property.OwnerId = ownerId;

                            PropertyOwnerChanged?.Invoke(propertyIndex, ownerId);
                            break;
                        }
                    }
                }
                catch (Exception e)
                {
                    Debug.Log(e.Message);
                }
            };

            // Keep sending messages every 15s
            InvokeRepeating(nameof(SendWebSocketMessage), 0.0f, 5.0f);

            // Waiting for messages
            await _websocket.Connect();
        }));
    }