public void CallLerpPosition() { // Arrange PlayerSync playerSync = new PlayerSync(); var playerSyncInterface = GetPlayerSyncMock(); playerSync.SetPlayerSync(playerSyncInterface); Vector3 testVector = new Vector3(1, 1, 1); // Act playerSync.CallLerpPosition(testVector); // Assert playerSyncInterface.Received().LerpPosition(testVector, 15f); }
public void CallLerpRotation() { // Arrange PlayerSync playerSync = new PlayerSync(); var playerSyncInterface = GetPlayerSyncMock(); playerSync.SetPlayerSync(playerSyncInterface); Quaternion testRot = new Quaternion(0, 0, 0, 0); // Act playerSync.CallLerpRotation(testRot); // Assert playerSyncInterface.Received().LerpRotation(testRot, 15f); }
public void HasMovedRotTrue() { // Arrange PlayerSync playerSync = new PlayerSync(); var playerSyncInterface = GetPlayerSyncMock(); playerSync.SetPlayerSync(playerSyncInterface); Vector3 lastPos = new Vector3(1, 1, 1); Quaternion lastRot = new Quaternion(0, 0, 0, 0); playerSync.SetLastPositionRotation(lastPos, lastRot); // Act bool result = playerSync.HasMoved(lastPos, new Quaternion(1, 1, 1, 1)); // Assert Assert.AreEqual(true, result); }
void Start() { ps = gameObject.transform.GetComponent <PlayerSync>(); useAbility = false; }
void OnTriggerEnter(Collider coll) { //List of players ingame. if (coll.CompareTag("Player")) { PlayerSync player = coll.transform.parent.parent.parent.parent.parent.parent.parent.parent.GetComponent <PlayerSync>(); if (!playersInTheMiddle.Contains(player)) { playersInTheMiddle.Add(player); } //Win check if (playersInTheMiddle.Count == GameObject.Find("Players").GetComponentsInChildren <PlayerSync>().Length) { GameObject.Find("HUD").gameObject.SetActive(false); NetworkVariables nvs = GameObject.FindObjectOfType <NetworkVariables>(); Vector3 walkTo = new Vector3(transform.position.x, player.getController().transform.position.y, transform.position.z); player.getController().Walk(walkTo); int startTime = nvs.startTimestamp; nvs.finishTime = getCurrentTimestamp(); int userTime = nvs.finishTime - startTime; string formattedTime = string.Format("{0:00}:{1:00}:{2:00}", userTime / 3600, (userTime / 60) % 60, userTime % 60); int openedRooms = -2; //Not counting the start and end room int allRooms = -1; //This one will not count the start room, but the end room. int puzzleRooms = 0; int puzzleFinished = 0; foreach (RoomController rc in GameObject.FindObjectsOfType <RoomController>()) { if (rc.displayRoom) { openedRooms++; } if (rc.cameFrom != -1) { allRooms++; //rc.displayRoom = true; } if (rc.getRoomCategory() != RoomObject.RoomCategory.DeadEnd && rc.getRoomCategory() != RoomObject.RoomCategory.End && rc.getRoomCategory() != RoomObject.RoomCategory.Start && rc.getRoomCategory() != RoomObject.RoomCategory.Nothing) { puzzleRooms++; } if (rc.puzzleComplete) { puzzleFinished++; } } GameObject ws = Instantiate(winScreen, Vector3.zero, Quaternion.identity) as GameObject; WinScreen screen = ws.GetComponent <WinScreen>(); screen.timeInSeconds = userTime; screen.roomsOpened = openedRooms; screen.roomCount = allRooms; screen.puzzlesCompleted = puzzleFinished; screen.puzzleCount = puzzleRooms; screen.sizeX = Mathf.RoundToInt(nvs.mazeSize.x); screen.sizeY = Mathf.RoundToInt(nvs.mazeSize.y); screen.mazeSeed = nvs.seed; Destroy(GetComponent <BoxCollider>()); Destroy(this); } } }
private void Update() { // Check for null references if (playerTransform == null) { playerTransform = transform; } // Set identity if it is not set yet if (playerTransform.name == "" || playerTransform.name.Contains("Clone")) { SetNetIdentity(); } // Check if player is match server if (isServer) { // Check for null references if (multiplayerManager == null) { multiplayerManager = GameObject.FindWithTag("MultiplayerManager").GetComponent<MultiplayerManager>(); } // Set the match time SetServerTime(multiplayerManager.LeftTime); } else { // Check for null references if (serverSync == null) { players = GameObject.FindGameObjectsWithTag("Player"); for (int i = 0; i < players.Length; i++) { if (players[i].name.Contains("host")) { serverSync = players[i].GetComponent<PlayerSync>(); break; } } } if (multiplayerManager == null) { multiplayerManager = GameObject.FindWithTag("MultiplayerManager").GetComponent<MultiplayerManager>(); } // If player is not match server, read match left time from server sync multiplayerManager.LeftTime = serverSync.serverTime; } // Update player score TransmitScore(); }
public virtual void TransportPlayer(PlayerSync player) { //push player to the next tile player?.Push(position.To2Int()); }
private void TransportPlayer(PlayerSync player) { //push player to the next tile player?.Push(position.To2Int()); }
public abstract void UpdateFromServer(PlayerSync sync);
public static void ReadMessage(byte[] message) { Envelope envelope = SerializationHandler.Deserialize <Envelope>(message); if (envelope == null) { throw new NotAnEnvelopeException(); } switch (envelope.PacketType) { case Packets.None: Debug.Log("None"); break; case Packets.String: string stringVal = SerializationHandler.Deserialize <string>(envelope.Packet); Debug.Log(stringVal); break; case Packets.AckLogin: AckLogin ackLogin = SerializationHandler.Deserialize <AckLogin>(envelope.Packet); HandleAckLogin(ackLogin); break; case Packets.AckJoinTeam: AckJoinTeam ackJoinTeam = SerializationHandler.Deserialize <AckJoinTeam>(envelope.Packet); HandleAckJoinTeam(ackJoinTeam); break; case Packets.DestroyObject: DestroyObject destroyObject = SerializationHandler.Deserialize <DestroyObject>(envelope.Packet); HandleDestroyObject(destroyObject); break; case Packets.PlayerSync: PlayerSync playerSync = SerializationHandler.Deserialize <PlayerSync>(envelope.Packet); HandlePlayerSync(playerSync); break; case Packets.SnowballSync: SnowballSync snowballSync = SerializationHandler.Deserialize <SnowballSync>(envelope.Packet); HandleSnowballSync(snowballSync); break; case Packets.SnowPileSync: SnowPileSync snowPileSync = SerializationHandler.Deserialize <SnowPileSync>(envelope.Packet); HandleSnowPileSync(snowPileSync); break; case Packets.LeaderboardData: LeaderboardDataEntry leaderboardDataResponse = SerializationHandler.Deserialize <LeaderboardDataEntry>(envelope.Packet); HandleLeaderboardDataEntry(leaderboardDataResponse); break; case Packets.EndLeaderboardResponse: HandleEndLeaderboardResponse(); break; case Packets.AckConnection: HandleAckConnection(); break; default: break; } }
void OnEnable() { playerSync = new PlayerSync(); playerSync.SetPlayerSync(this); }
public int GameTime;//剩余总时间. public void SyncPlayer(FrameCommand fmd) { //不同步自己的信息,因为客户端是最新数据,服务器的是旧数据 if (fmd.playerId == PlayerId) { return; } //同步角色的位置,旋转,动作,速度,武器,气血,模型,怒气,buff if (fmd.command == MeteorMsg.Command.ServerSync) { MeteorUnit unit = U3D.GetUnit((int)fmd.playerId); if (unit != null) { unit.synced = true; System.IO.MemoryStream ms = new System.IO.MemoryStream(fmd.Data); PlayerSync sync = ProtoBuf.Serializer.Deserialize <PlayerSync>(ms); unit.ShadowPosition = new Vector3(sync.position.x / 1000.0f, sync.position.y / 1000.0f, sync.position.z / 1000.0f); unit.ShadowRotation = new Quaternion(sync.rotation.x / 1000.0f, sync.rotation.y / 1000.0f, sync.rotation.z / 1000.0f, sync.rotation.w / 1000.0f); unit.ActionMgr.SetAction(sync.action); unit.angle = sync.ang; unit.Attr.hpCur = (int)sync.hp; if (unit.ModelId != sync.model) { ModelItem m = null; if (GameStateMgr.Ins.gameStatus.IsModelInstalled((int)sync.model, ref m)) { U3D.ChangePlayerModel(unit, (int)sync.model); } else { //模型不一样,但是未安装此模型 } } unit.SyncWeapon((int)sync.weapon, (int)sync.weapon1); List <int> buffs = new List <int>(); foreach (var each in BuffMng.Ins.BufDict) { if (each.Value.Units.ContainsKey(unit)) { buffs.Add(each.Key); } } //把我不该有的buff删除 for (int i = 0; i < buffs.Count; i++) { if (!sync.buff.Contains((uint)buffs[i])) { BuffMng.Ins.BufDict[buffs[i]].ClearBuff(unit); } } //把我没有的buff加上 for (int i = 0; i < sync.buff.Count; i++) { if (!buffs.Contains((int)sync.buff[i])) { Option opt = MenuResLoader.Ins.GetItemInfo((int)sync.buff[i]); if (opt != null && opt.IsItem()) { unit.AddBuf(opt); } } } } } }