public void Initialize(Vector3 position, DataManager.Team team, DataManager.PieceName pieceName, DataManager.PieceDetail pieceDetail) { Position = position; Team = team; PieceName = pieceName; PieceDetail = pieceDetail; }
public List <GameObject> InstantiateWhite() { List <GameObject> myPieces = new List <GameObject>(); try { int i = 0; for (int z = 7; z > 5; z--) { for (int x = 0; x < 8; x++) { float distance = DataManager.ChessPieceInfo.distance; Quaternion rot = DataManager.ChessPieceInfo.whiteRotation; DataManager.Team team = board[x, z].Team; DataManager.PieceName pieceName = board[x, z].PieceName; GameObject obj = PhotonNetwork.Instantiate ( FindObjectNameByEnum(team, pieceName), new Vector3(x * distance, chessBoardStartHeight, z * distance), rot, (byte)0 ); obj.name = board[x, z].PieceName.ToString(); obj.AddComponent <InputSender_PC>(); // todo ChessPieceState state = obj.GetComponent <ChessPieceState>(); state.Initialize(new Vector3(x * distance, 0, z * distance), (Utility.DataManager.Team)team, (Utility.DataManager.PieceName)pieceName, Utility.DataManager.WhitePiece[i++]); myPieces.Add(obj); } } } catch (ArgumentException) { DoNothing(); } return(myPieces); }
private string FindBlackObjectNameByPieceName(DataManager.PieceName pieceName) { string result = ""; switch (pieceName) { case DataManager.PieceName.King: result = blackKing; break; case DataManager.PieceName.Queen: result = blackQueen; break; case DataManager.PieceName.Rook: result = blackRook; break; case DataManager.PieceName.Knight: result = blackKnight; break; case DataManager.PieceName.Bishop: result = blackBishop; break; case DataManager.PieceName.Pawn: result = blackPawn; break; } return(result); }
private string FindWhiteObjectNameByPieceName(DataManager.PieceName pieceName) { string result = ""; switch (pieceName) { case DataManager.PieceName.King: result = whiteKing; break; case DataManager.PieceName.Queen: result = whiteQueen; break; case DataManager.PieceName.Rook: result = whiteRook; break; case DataManager.PieceName.Knight: result = whiteKnight; break; case DataManager.PieceName.Bishop: result = whiteBishop; break; case DataManager.PieceName.Pawn: result = whitePawn; break; } return(result); }
private string FindObjectNameByEnum(DataManager.Team team, DataManager.PieceName pieceName) { string result = ""; switch (team) { case DataManager.Team.White: result = FindWhiteObjectNameByPieceName(pieceName); break; case DataManager.Team.Black: result = FindBlackObjectNameByPieceName(pieceName); break; case DataManager.Team.None: throw new Exception("Can't return gameobject witch has NONE tag"); } return(result); }
public List <Vector2> GetList(ChessPieceState state, DataManager.Team team) { this.currentTeam = team; this.pieceState = state; DataManager.PieceName name = pieceState.PieceName; Vector3 position = pieceState.Position; int x = (int)(position.x / distance); int z = (int)(position.z / distance); if (position.x % distance >= 0.03f) { x++; } if (position.z % distance >= 0.03f) { z++; } List <Vector2> result = new List <Vector2>(); switch (name) { case DataManager.PieceName.King: result = King(x, z); break; case DataManager.PieceName.Queen: result = Queen(x, z); break; case DataManager.PieceName.Rook: result = Rook(x, z); break; case DataManager.PieceName.Bishop: result = Bishop(x, z); break; case DataManager.PieceName.Knight: result = Knight(x, z); break; case DataManager.PieceName.Pawn: result = Pawn(x, z); break; } #region debugging codes /* * if (result.Count != 0) * Debug.Log("Exist"); * else * Debug.Log("GetList : No Place available"); * int i = 0; * foreach (Vector2 elem in result) * { * Debug.Log($"{++i} : x = {elem.x}, z = {elem.y}"); * } */ #endregion return(result); }
public void ChangeState(Vector3 firstPosition, Vector3 lastPositon) { float distance = DataManager.ChessPieceInfo.distance; // 첫번째 int first_xOffset = (int)(firstPosition.x / distance); int first_zOffset = (int)(firstPosition.z / distance); #region catch bugs float remain_x = firstPosition.x % distance; float remain_z = firstPosition.z % distance; if (remain_x >= 0.03f) { first_xOffset++; } if (remain_z >= 0.03f) { first_zOffset++; } #endregion ChessPieceInformation firstState = board[first_xOffset, first_zOffset]; DataManager.Team first_team = firstState.Team; DataManager.PieceName first_pieceName = firstState.PieceName; // 두번째 int last_xOffset = (int)(lastPositon.x / distance); int last_zOffset = (int)(lastPositon.z / distance); #region catch bugs 2 float re_x = lastPositon.x % distance; float re_z = lastPositon.z % distance; if (re_x >= 0.03f) { last_xOffset++; } if (re_z >= 0.03f) { last_zOffset++; } #endregion ChessPieceInformation lastState = board[last_xOffset, last_zOffset]; DataManager.Team last_team = lastState.Team; DataManager.PieceName last_pieceName = lastState.PieceName; if (firstState.Team != lastState.Team && lastState.Team != DataManager.Team.None) { // kill piece // GameObject.FindGameObjectWithTag("GameManager").GetComponent<NetworkManager>().SetActiveFalseObject(last_team, last_pieceName, last_xOffset, last_zOffset); // GetOrCreateManager<NetworkManager>(). board[first_xOffset, first_zOffset] = new ChessPieceInformation(DataManager.Team.None, DataManager.PieceName.None); board[last_xOffset, last_zOffset] = firstState; } else { // switching board[first_xOffset, first_zOffset] = lastState; board[last_xOffset, last_zOffset] = firstState; } }
public ChessPieceInformation(DataManager.Team team, DataManager.PieceName pieceName) { Team = team; PieceName = pieceName; }