Beispiel #1
0
    private void Shuffle()
    {
        gameState.PlayerDeck.Shuffle(new System.Random());
        animQueue.EnqueueAction(ShuffleStarts());

        foreach (CardGameobject card in gameState.PlayerDeck)
        {
            animQueue.EnqueueAction(ShuffleAnimation(card));
        }
        animQueue.EnqueueWait(1f);
    }
Beispiel #2
0
    // Update is called once per frame
    void Update()
    {
        if (finished)
        {
            return;
        }
        secondSinceLastTip   += Time.deltaTime;
        rotationSinceLastTip += Input.gyro.rotationRateUnbiased.y;
        if (check())
        {
            if (tips.Count > 0)
            {
                lastTip    = currentTip;
                currentTip = tips.Pop();
                Debug.Log("Acceleration: current tip " + currentTip);
                rotationSinceLastTip = 0.0f;
                secondSinceLastTip   = 0.0f;
                if (lastTip == currentTip)
                {
                    queue.EnqueueAction(TypeText("Sorry, I need you to " + tipString [(int)currentTip] + " again"));
                }
                else
                {
                    queue.EnqueueAction(TypeText("Sorry, I need you to " + tipString [(int)currentTip]));
                }
                queue.EnqueueWait(sentencePause);
            }
            else
            {
                queue.EnqueueAction(TypeText("you got it! Watch " + spot.GetName()));
                queue.EnqueueWait(sentencePause);
                queue.EnqueueAction(playVideo());
                finished = true;
            }
        }
        else
        {
            if (secondSinceLastTip > 20.0f)
            {
                queue.EnqueueAction(TypeText("I'm still waiting for looking " + tipAgainString [(int)currentTip]));
                queue.EnqueueWait(sentencePause);
                secondSinceLastTip = 0.0f;
                Debug.Log("Acceleration: rotation " + rotationSinceLastTip);
            }
        }
//		textComp.text = "x: " + Input.acceleration.x + "\ny: " + Input.acceleration.y + "\nz: " + Input.acceleration.z;
//		rotationSinceLastTip += Input.gyro.rotationRateUnbiased.y;
//		textComp.text = "" + rotationSinceLastTip;
    }
Beispiel #3
0
    private void LoadPictures(int startingPictureIndex, int numImages)
    {
        Debug.Log(string.Format("------- Texture2DTest: Loading {0} pictures beginning at index {1}. There are {2} pictures in the gallery!",
                                numImages, startingPictureIndex, m_pictureFilePaths.Count));

        Resources.UnloadUnusedAssets();

        int currPictureIndex = startingPictureIndex;

        for (int imageIndex = 0; imageIndex < numImages; imageIndex++, currPictureIndex++)
        {
            if (currPictureIndex < m_pictureFilePaths.Count)
            {
                string filePath = m_pictureFilePaths[currPictureIndex];
                m_coroutineQueue.EnqueueAction(LoadImageInternalPluginCpp(filePath, imageIndex));
                m_coroutineQueue.EnqueueWait(2.0f);
            }
            else
            {
                m_imageDisplays[imageIndex].GetComponent <SelectImage>().Hide();
            }
        }

        Resources.UnloadUnusedAssets();
    }
 internal void AddCard(CardGameobject card)
 {
     gameState.PlayerDiscard.Add(card);
     card.Interactable(false);
     animQueue.EnqueueAction(MoveCardToDiscardAnimation(card));
     animQueue.EnqueueWait(0.1f);
 }
Beispiel #5
0
    // Use this for initialization
    void Start()
    {
        Input.gyro.enabled = true;
        finished           = false;
        spot = GlobalConstants.locations [GlobalConstants.SPOT_NAME];

        textComp = GetComponent <Text>();
        // use "this" monobehaviour as the coroutine owner
        queue = new CoroutineQueue(this);
        queue.StartLoop();

        System.Random rnd = new System.Random(System.DateTime.Now.Millisecond);
        tipTimes = rnd.Next(1, 4);         // 1 2 3

        tips = new Stack <Orientation> ();

        for (int i = 0; i < tipTimes; ++i)
        {
            tips.Push((Orientation)rnd.Next(0, 4));
        }
        lastTip              = Orientation.None;
        currentTip           = tips.Pop();
        rotationSinceLastTip = 0.0f;
        secondSinceLastTip   = 0.0f;
        Debug.Log("Acceleration: current tip " + currentTip);
        queue.EnqueueAction(TypeText(tipString [(int)currentTip]));
        queue.EnqueueWait(sentencePause);
    }
Beispiel #6
0
    // Update is called once per frame
    void Update()
    {
        if (mState == LocationState.Enabled)
        {
            mLatitude  = Input.location.lastData.latitude;
            mLongitude = Input.location.lastData.longitude;

            float tempDistance = Haversine();
            if (tempDistance * KM_2_FOOT <= 100.0f)
            {
                queue.EnqueueAction(TypeText("congratulations! you made it!!!"));
                queue.EnqueueWait(sentencePause);
                queue.EnqueueAction(ChangeScene("GeoCamera"));                   // this need to change scene
                Input.location.Stop();
                mState = LocationState.Stopped;
            }
            else if (tempDistance < mDistance * 0.5f)
            {
                mDistance = tempDistance;
                queue.EnqueueAction(TypeText("you are getting closer now"));
                queue.EnqueueWait(sentencePause);
            }
        }
    }
Beispiel #7
0
    // [update location, check distance]

    // #1 >= 20 miles
    // you are too far... [change text]
    // get ready for a journey [change text]
    // see you in [city] [change text]
    // [return to MainUI]

    // #2 < 20 miles
    // see you in [location]
    // #3 < 5 miles
    // put on your running shoes or hop on your bike [change text, update location]
    // [update location, check distance in a loop, when half than initialized distance]
    // you are getting closer now
    // [update location, check distance in a loop, when < 100 feet]
    // congratulations! you made it!!! [change scene, open camera]

    // #4 < 100 feet
    // Be ready to see [spot]!!!

    IEnumerator Start()
    {
        textComp = GetComponent <Text>();
        // use "this" monobehaviour as the coroutine owner
        queue = new CoroutineQueue(this);
        queue.StartLoop();

        mState     = LocationState.Disabled;
        mLatitude  = 0.0f;
        mLongitude = 0.0f;
        mDistance  = 0.0f;

        spot = GlobalConstants.locations [GlobalConstants.SPOT_NAME];

        if (Input.location.isEnabledByUser)
        {
            // Start service before querying location
            Input.location.Start();
            // Wait until service initializes
            int maxWait = 20;
            while (Input.location.status == LocationServiceStatus.Initializing && maxWait > 0)
            {
                yield return(new WaitForSeconds(1));

                maxWait--;
            }
            // Service didn't initialize in 20 seconds
            if (maxWait < 1)
            {
                mState = LocationState.TimedOut;
            }
            else if (Input.location.status == LocationServiceStatus.Failed)
            {
                mState = LocationState.Failed;
            }
            else
            {
                mState     = LocationState.Enabled;
                mLatitude  = Input.location.lastData.latitude;
                mLongitude = Input.location.lastData.longitude;
//				mHorizontalAccuracy = Input.location.lastData.horizontalAccuracy;
//				mTimestamp = Input.location.lastData.timestamp;
                mDistance = Haversine();
            }
        }

        if (mState == LocationState.Enabled)
        {
            float mileTemp = mDistance * KM_2_MILE;
            float footTemp = mDistance * KM_2_FOOT;
            if (mileTemp > 20.0f)
            {
                queue.EnqueueAction(TypeText("you are too far..."));
                queue.EnqueueWait(sentencePause);
                queue.EnqueueAction(TypeText("get ready for a journey"));
                queue.EnqueueWait(sentencePause);
                queue.EnqueueAction(TypeText("see you in " + spot.GetCity()));
                Input.location.Stop();
                mState = LocationState.Stopped;
            }
            else if (mileTemp > 5.0f)
            {
                queue.EnqueueAction(TypeText("see you in " + spot.GetMuseum()));
                queue.EnqueueWait(sentencePause);
            }
            else if (footTemp > 100.0f)
            {
                queue.EnqueueAction(TypeText("put on your running shoes or hop on your bike"));
                queue.EnqueueWait(sentencePause);
            }
            else
            {
                queue.EnqueueAction(TypeText("Be ready to see " + spot.GetName()));
                queue.EnqueueWait(sentencePause);
                queue.EnqueueAction(ChangeScene("GeoCamera"));                   // this need to change scene
                Input.location.Stop();
                mState = LocationState.Stopped;
            }
        }
        else if (mState == LocationState.Disabled)
        {
            queue.EnqueueAction(TypeText("Location service not enabled"));
        }
        else if (mState == LocationState.Failed)
        {
            queue.EnqueueAction(TypeText("Unable to determine device location"));
        }
        else if (mState == LocationState.TimedOut)
        {
            queue.EnqueueAction(TypeText("Sorry! Timed out"));
        }
    }
Beispiel #8
0
 private void SocketIoOnPlayerRolledDice(Player player, int[] dice)
 {
     _queue.EnqueueAction(diceContainer.RollTheDice(dice));
     _queue.EnqueueWait(1f);
 }
Beispiel #9
0
 internal void AddCard(CardGameobject card)
 {
     gameState.PlayerHand.Add(card);
     animQueue.EnqueueAction(MoveCardToHandAnimation(card));
     animQueue.EnqueueWait(0.3f);
 }