protected virtual void OnPlayerMoved(Position newPlayerPosition) { PlayerMoved?.Invoke(this, new PlayerEventArgs() { NewPlayerPosition = newPlayerPosition }); }
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(); } }
private void UpdatePlayerView(PlayerMoved playerMoved) { _playerViews[playerMoved.PlayerId]?.transform.SetPositionAndRotation( anchorObject.transform.position + playerMoved.Position, playerMoved.Rotation * anchorObject.rotation ); }
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]); }
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); }
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); } }
private void SetCurrentVertex(Vertex nextVertex) { CurrentVertex = nextVertex; //transform.position = CurrentVertex.Coordinates; if (!_isDying) { PlayerMoved?.Invoke(); } }
public TicTacToePlayer(ITicTacToeInput input) { _input = input; _input.InputSent += (sender, args) => { if (CanMove) { PlayerMoved?.Invoke(this, args); } }; }
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(); } } }
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(); } }
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++; }
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; } } }
private void PlayerMoveHandler(byte senderIdx, PacketReader packetReader) { PlayerMoved?.Invoke(senderIdx, packetReader.NextVector2()); }
public static void OnPlayerMoved(object sender, PlayerEventArgs e) { PlayerMoved?.Invoke(null, e); }
IEnumerator TutorialMoved() { yield return(new WaitForSeconds(0.5f)); PlayerMoved?.Invoke(); }
protected virtual void onPlayerMoved() { // Note to self: this is just syntactic sugar for first checking if(PlayerMoved =! null) PlayerMoved?.Invoke(this); }
/// <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);
private void When(PlayerMoved playerMoved) { Players[playerMoved.PlayerId].Move(playerMoved.Position, playerMoved.Rotation); }
protected virtual void OnPlayerMoved() { PlayerMoved?.Invoke(this, EventArgs.Empty); }
private void PlayerMoved(PlayerMoved playerMoved) { this.Animator.SetInteger(SPEED, playerMoved.Value); }
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(); })); }