Ejemplo n.º 1
0
    // Methods ////////////////////////////////////////////////////////////////////////////////////

    public static WaitingForClick GetInstance()
    {
        if (StateInstance == null)
        {
            StateInstance = new WaitingForClick();
        }
        return(StateInstance);
    }
Ejemplo n.º 2
0
        public IEnumerator FurtiveBoatMoves()
        {
            // Wait for scene to load
            yield return(null);

            StateManager stateManager = GameObject.FindObjectOfType <StateManager>();
            // Get current player boat
            Boat currentBoat = GameObject.FindObjectsOfType <Boat>().First(boat => boat.Owner == stateManager.CurrentPlayer());

            // Fake roll
            stateManager.LastRollResult = 1;
            stateManager.currentState   = WaitingForClick.GetInstance();

            // Check the furtives have moved to our tile
            Assert.IsFalse(currentBoat.currentTile.nextTile.furtives);
            stateManager.currentState.BoatOnClick(stateManager, null, currentBoat);
            Assert.IsTrue(currentBoat.currentTile.furtives);
        }
Ejemplo n.º 3
0
        public IEnumerator CardIsGivenWhenRolled6()
        {
            // Wait for scene to load
            yield return(null);

            StateManager stateManager = GameObject.FindObjectOfType <StateManager>();
            CardManager  cardManager  = GameObject.FindObjectOfType <CardManager>();
            // Get current player boat
            Boat currentBoat = GameObject.FindObjectsOfType <Boat>().First(boat => boat.Owner == stateManager.CurrentPlayer());

            // Fake roll
            stateManager.LastRollResult = 6;
            stateManager.currentState   = WaitingForClick.GetInstance();

            // Check we receive a card or a card has been played on our boats current tile
            Assert.IsTrue(stateManager.CurrentPlayer().cards.Count == 0);
            stateManager.currentState.BoatOnClick(stateManager, cardManager, currentBoat);
            Assert.IsTrue(stateManager.CurrentPlayer().cards.Count == 1 || stateManager.CurrentPlayer().boats[0].currentTile.passiveCard != null);
        }
Ejemplo n.º 4
0
        public IEnumerator CantMovePlayerBoatIfNotYours()
        {
            // Wait for scene to load
            yield return(null);

            StateManager stateManager = GameObject.FindObjectOfType <StateManager>();
            // Get other player boat
            Boat notMyBoat = GameObject.FindObjectsOfType <Boat>().First(boat => boat.Owner != stateManager.CurrentPlayer());

            // Check were at initial tile
            Assert.IsTrue(notMyBoat.currentTile == stateManager.InitialTile);
            // Fake roll
            stateManager.LastRollResult = 1;
            stateManager.currentState   = WaitingForClick.GetInstance();
            // We cant move
            stateManager.currentState.BoatOnClick(stateManager, null, notMyBoat);
            Assert.IsFalse(notMyBoat.isAnimating);
            Assert.IsFalse(stateManager.currentState == WaitingForAnimation.GetInstance());
            Assert.IsFalse(notMyBoat.currentTile == stateManager.InitialTile.nextTile);
            Assert.IsFalse(notMyBoat.pendingMovements.Count > 0);
        }
Ejemplo n.º 5
0
        public IEnumerator MovePlayerBoat()
        {
            // Wait for scene to load
            yield return(null);

            StateManager stateManager = GameObject.FindObjectOfType <StateManager>();

            // Get current player boat
            Boat currentBoat = GameObject.FindObjectsOfType <Boat>().First(boat => boat.Owner == stateManager.CurrentPlayer());

            // Check theyre at initial tile
            Assert.IsTrue(currentBoat.currentTile == stateManager.InitialTile);
            // fake roll
            stateManager.LastRollResult = 1;
            stateManager.currentState   = WaitingForClick.GetInstance();
            // Move boat
            stateManager.currentState.BoatOnClick(stateManager, null, currentBoat);
            // Check that were moving
            Assert.IsTrue(currentBoat.isAnimating);
            Assert.IsTrue(stateManager.currentState == WaitingForAnimation.GetInstance());
            Assert.IsTrue(currentBoat.currentTile == stateManager.InitialTile.nextTile);
            Assert.IsTrue(currentBoat.pendingMovements.Count > 0);
        }
Ejemplo n.º 6
0
    //---------------------------------------------------------------------------------------------

    void GetDieValue()
    {
        double dotProduct;
        int    lastRollResult;

        if ((dotProduct = Vector3.Dot(transform.forward, Vector3.up)) > 0.6f)
        {
            lastRollResult = 1;
        }
        else if ((dotProduct = Vector3.Dot(-transform.forward, Vector3.up)) > 0.6f)
        {
            lastRollResult = 6;
        }
        else if ((dotProduct = Vector3.Dot(transform.up, Vector3.up)) > 0.6f)
        {
            lastRollResult = 2;
        }
        else if ((dotProduct = Vector3.Dot(-transform.up, Vector3.up)) > 0.6f)
        {
            lastRollResult = 5;
        }
        else if ((dotProduct = Vector3.Dot(transform.right, Vector3.up)) > 0.6f)
        {
            lastRollResult = 3;
        }
        else
        {
            lastRollResult = 4;
        }

        Debug.Log(dotProduct);
        Debug.Log(lastRollResult);

        stateManager.LastRollResult = lastRollResult;
        stateManager.CurrentState   = WaitingForClick.GetInstance();
    }