/// <summary> /// When you click a square this code is called. Code checks if a square contains a piece you have or if a square clicked is an allowed move. /// </summary> /// <param name="square"></param> public void SquareClicked(SquareBehaviour square) { if (square.Square.PieceContainer != null && square.Square.PieceContainer.Propietary.Equals(GameController.Instance.ActualPlayer) && (activeSquare == null || activeSquare.Square.PieceContainer.Propietary.Equals(square.Square.PieceContainer.Propietary)) && square.Square.PieceContainer.Propietary.Type == Player.PlayerType.HUMAN) { ResetMoves(); activeSquare = square; possibleMovesActive = activeSquare.Square.PieceContainer.PossibleMoves; for (int i = 0; i < possibleMovesActive.Count; i++) { possibleMovesActive[i].Square.RelatedBehaviour.MarkPossible(); } } else if (activeSquare != null && square.BlockColor) { activeSquare.Square.PieceContainer.Move(square); GetMoveFromPossibles(square.Square).RunCallback(); activeSquare = null; ResetMoves(); GameController.Instance.ChangeTurns(); GameController.Instance.EvaluatePlayers(); } }
private void CommanderEnteredHandler(SquareBehaviour s, Commander c) { if (s.getSerialNr() > highestNr) { highestNr = s.getSerialNr(); } }
public virtual void Move(SquareBehaviour destiny) { this.Move(destiny.Square); if (behaviour != null) { this.behaviour.transform.DOMove(new Vector3(destiny.transform.position.x, this.behaviour.transform.position.y, destiny.transform.position.z), 1); } }
//to be called by level builder to make sure each new square connects to the previous public void LinkToPrevious(SquareBehaviour prev) { // we need to match our entrance with the previous exit: Vector3 move = prev.exit.position - this.entrance.position; //now move the whole square this.transform.position += move; }
private SquareBehaviour GenerateSquare() { SquareBehaviour result = Instantiate <SquareBehaviour>(prefabs[prefabIndex++]); result.transform.SetParent(this.transform); result.CommanderEnteredEvent += CommanderEnteredHandler; result.LinkToPrevious(connectSquare); BuildFollowers(result.transform); return(result); }
public void AddSquareFromTutorial(SquareBehaviour s) { if (s.getSerialNr() < connectSquare.getSerialNr()) { Debug.LogError("squares from tutorial have been added in the wrong sequence; this would have them destroyed in the wrong order"); } else { this.connectSquare = s; } s.CommanderEnteredEvent += CommanderEnteredHandler; levels.Enqueue(s); }
private void Update() { while (connectSquare.getSerialNr() < (highestNr + SquaresAhead)) { connectSquare = GenerateSquare(); levels.Enqueue(connectSquare); } while (levels.Count > SquaresTotal) { SquareBehaviour trail = levels.Dequeue(); trail.Dissolve(); levels.Peek().CloseStart(); } }
private void Start() { levels = new Queue <SquareBehaviour>(); //connectSquare = Instantiate<SquareBehaviour>(prefabs[Random.Range(0, prefabs.Length)]); //connectSquare.transform.position = Vector3.zero; SquareBehaviour lastSquare = connectSquare; for (int i = 0; i < fixedSequence.Length; ++i) { var t = fixedSequence[i]; SquareBehaviour n = Instantiate <SquareBehaviour>(t); n.transform.SetParent(this.transform); n.LinkToPrevious(lastSquare); BuildFollowers(n.transform, ((float)fixedSequence.Length) / i, i); levels.Enqueue(n); lastSquare = n; } }
/// <summary> /// Instantiate a Piece of the given Type in a given square of the board. /// </summary> /// <param name="type"></param> /// <param name="squareBehaviour"></param> /// <param name="player"></param> public void InstantiatePiece(PieceType type, SquareBehaviour squareBehaviour, Player player) { GameObject prefab = null; switch (type) { case PieceType.PAWN: prefab = pawnPrefab; break; case PieceType.QUEEN: prefab = queenPrefab; break; case PieceType.ROOK: prefab = rookPrefab; break; case PieceType.KNIGHT: prefab = knightPrefab; break; case PieceType.KING: prefab = kingPrefab; break; case PieceType.BISHOP: prefab = bishopPrefab; break; } var piece = ((GameObject)Instantiate(prefab)).GetComponent <PieceBehaviour>(); piece.InitGraphics(player.ID); piece.ChangeMaterial(player.AsignedMaterial); piece.transform.position = new Vector3(squareBehaviour.transform.position.x, piece.transform.position.y, squareBehaviour.transform.position.z); squareBehaviour.Square.SetNewPiece(piece.Piece); piece.Piece.SetPropietary(player); }
public override void Move(SquareBehaviour destiny) { base.Move(destiny); positionInitial = false; }
public override void Move(SquareBehaviour destiny) { base.Move(destiny); isMoved = true; }