protected void CreateStats() { GameObject statsPrefab = ResourceCache.getPrefab("prefabs/PieceStats"); GameObject statsObj = Instantiate(statsPrefab, gameObject.transform) as GameObject; Stats = statsObj.GetComponent <PieceStats>(); Stats.transform.localPosition = new Vector3(0, 0, 0); }
//public void InitializeMoving() //{ //} public bool MovePiece()//bool isStarting, bool forward, Board.Direction direction, MoveSet moveSet) { //if (isStarting) InitializeMoves(direction, moveSet); PieceMove move = moveSet.GetMove(); Vector3 moveVector = move.ForwardVector(); float friction = currentBoardLoc.GetFriction(transform.position.x, transform.position.z); moveVector = friction * Speed * Time.deltaTime * moveVector; float remainingDistance = Vector3.Distance(transform.position, move.GetEndLoc()); if (remainingDistance > moveVector.magnitude) { transform.position += moveVector; } else { //PieceMove nextMove = moveSet.GetNextMove(transform.position, this, currentBoardLoc, pieceDirection); if (moveSet.HasNextMove()) { BoardSpace nextSpace = currentBoardLoc.GetSpaceByDirection(pieceDirection); pieceDirection = move.Direction; PieceMove nextMove = moveSet.GetNextMove(transform.position, this, currentBoardLoc, pieceDirection); //currentBoardLoc = nextSpace; move = nextMove; float deltaTime = Time.deltaTime * moveVector.magnitude / remainingDistance; moveVector = move.ForwardVector(); friction = 1; //currentBoardLoc.GetFriction() moveVector = friction * Speed * deltaTime * moveVector; } else { transform.position = move.GetEndLoc(); PieceStat = PieceStats.idle; return(false); } } return(true); }
/// <summary> /// Initialize MoveSet /// </summary> /// <returns><c>true</c>, if piece was moved, <c>false</c> otherwise.</returns> /// <param name="moveSet">Move set.</param> /// <param name="direction">Direction.</param> /// public bool MovePiece(MoveSet moveSet, Board.Direction direction) { InitializeMoves(direction, moveSet); PieceStat = PieceStats.isMoving; return(MovePiece()); }