コード例 #1
0
    // Handles update for normal pins
    private void PinUpdate(long thisTick)
    {
        if (thisTick > m_pinLastTick + m_pinTick)
        {
            int     thisCount = 0;
            Vector2 pos       = OnlineMapsLocationService.instance.position;
            for (int i = 0 + m_lastPlace; i < PinUtilities.PointDatas.Count && thisCount < pinsPerUpdate; ++i, ++m_lastPlace, ++thisCount)
            {
                int index = i;
                if (PinUtilities.PointDatas[index]._Pin.enabled == true &&
                    !PinUtilities.PointDatas[index].DeltasActiveNow((long)thisTick, PinUtilities.pinDeltas[PinUtilities.PointDatas[index]._Label]) &&
                    !PinUtilities.PointDatas[index].ActiveNow())
                {
                    PinUtilities.PointDatas[index].RemovePin();
                    continue;
                }
                else if (PinUtilities.PointDatas[index]._Pin.enabled == false &&
                         PinUtilities.PointDatas[index].DeltasActiveNow((long)thisTick, PinUtilities.pinDeltas[PinUtilities.PointDatas[index]._Label]) &&
                         PinUtilities.PointDatas[index].ActiveNow())
                {
                    AddPin(PinUtilities.PointDatas[index]);
                    continue;
                }

                double pinDist = PinUtilities.DistanceInMeters(pos.y, pos.x, PinUtilities.PointDatas[index]._Position.Latitude, PinUtilities.PointDatas[index]._Position.Longitude);
                if (PinUtilities.PointDatas[index]._Pin.texture.name != PinUtilities.PointDatas[index]._Icon.name &&
                    (PinUtilities.PointDatas[index]._Pin.enabled == false ||
                     !PinUtilities.PointDatas[index].DeltasActiveNow((long)thisTick, PinUtilities.pinDeltas[PinUtilities.PointDatas[index]._Label]) ||
                     !PinUtilities.PointDatas[index].ActiveNow() ||
                     pinDist > pinRadius))
                {
                    PinUtilities.PointDatas[index]._Pin.texture = PinUtilities.PointDatas[index]._Icon;
                    PinUtilities.PointDatas[index]._Pin.Init();
                    OnlineMaps.instance.Redraw();
                    continue;
                }
                else if (PinUtilities.PointDatas[index]._Pin.texture.name != PinUtilities.PointDatas[index]._ActiveIcon.name &&
                         PinUtilities.PointDatas[index]._Pin.enabled == true &&
                         PinUtilities.PointDatas[index].DeltasActiveNow((long)thisTick, PinUtilities.pinDeltas[PinUtilities.PointDatas[index]._Label]) &&
                         PinUtilities.PointDatas[index].ActiveNow() &&
                         pinDist < pinRadius)
                {
                    PinUtilities.PointDatas[index]._Pin.texture = PinUtilities.PointDatas[index]._ActiveIcon;
                    PinUtilities.PointDatas[index]._Pin.Init();
                    OnlineMaps.instance.Redraw();
                    continue;
                }

                if (m_lastPlace >= PinUtilities.PointDatas.Count - 1)
                {
                    m_lastPlace = 0;
                }
            }
            m_pinLastTick = (long)thisTick;
        }
    }
コード例 #2
0
    // Handles update for token pins
    private void TokenPinUpdate(long thisTick)
    {
        if (thisTick > m_TokenLastPlace + m_pinTick)
        {
            int     thisCount = 0;
            Vector2 pos       = OnlineMapsLocationService.instance.position;
            for (int i = 0 + m_TokenLastPlace; i < PinUtilities.TokenPointDatas.Count && thisCount < pinsPerUpdate; ++i, ++m_TokenLastPlace, ++thisCount)
            {
                int    index   = i;
                double pinDist = PinUtilities.DistanceInMeters(pos.y, pos.x, PinUtilities.TokenPointDatas[index]._Position.Latitude, PinUtilities.TokenPointDatas[index]._Position.Longitude);
                string key     = PinUtilities.TokenPointDatas[index]._Position.Latitude.ToString() + PinUtilities.TokenPointDatas[index]._Position.Longitude.ToString();

                if (PinUtilities.TokenPointDatas[index]._Pin.enabled == false &&
                    PinUtilities.TokenPointDatas[index].TokenDeltasActiveNow((long)thisTick, PinUtilities.tokenPinDeltas[key]) &&
                    PinUtilities.TokenPointDatas[index].ActiveNow())
                {
                    AddTokenPin(PinUtilities.TokenPointDatas[index]);
                    continue;
                }
                else if (pinDist < pinRadius &&
                         PinUtilities.TokenPointDatas[index]._Pin.enabled == true &&
                         PinUtilities.TokenPointDatas[index].TokenDeltasActiveNow((long)thisTick, PinUtilities.tokenPinDeltas[key]) &&
                         PinUtilities.TokenPointDatas[index].ActiveNow())
                {
                    if (PinUtilities.TokenPointDatas[index]._Pin.texture.name != PinUtilities.TokenPointDatas[index]._ActiveIcon.name)
                    {
                        PinUtilities.TokenPointDatas[index]._Pin.texture = PinUtilities.TokenPointDatas[index]._ActiveIcon;
                        PinUtilities.TokenPointDatas[index]._Pin.Init();
                        OnlineMaps.instance.Redraw();
                    }
                    continue;
                }
                else if (pinDist > pinRadius &&
                         PinUtilities.TokenPointDatas[index]._Pin.enabled == true &&
                         PinUtilities.TokenPointDatas[index].TokenDeltasActiveNow((long)thisTick, PinUtilities.tokenPinDeltas[key]) &&
                         PinUtilities.TokenPointDatas[index].ActiveNow())
                {
                    if (PinUtilities.TokenPointDatas[index]._Pin.texture.name != PinUtilities.TokenPointDatas[index]._Icon.name)
                    {
                        PinUtilities.TokenPointDatas[index]._Pin.texture = PinUtilities.TokenPointDatas[index]._Icon;
                        PinUtilities.TokenPointDatas[index]._Pin.Init();
                        OnlineMaps.instance.Redraw();
                    }
                    continue;
                }
            }
            if (m_TokenLastPlace >= PinUtilities.TokenPointDatas.Count - 1)
            {
                m_TokenLastPlace = 0;
            }
        }
        m_tokenPinLastTick = (long)thisTick;
    }
コード例 #3
0
    /// <summary> Handles when a pin is clicked </summary>
    public void Pin_Click(OnlineMapsMarkerBase marker)
    {
        try
        {
            Vector2 pos       = OnlineMapsLocationService.instance.position;
            Vector2 markerPos = marker.position;

            double pinDist = PinUtilities.DistanceInMeters(pos.y, pos.x, markerPos.y, markerPos.x);
            if (pinDist < pinRadius)
            {
                PointData pd = PinUtilities.GetPointData(marker.tags, PinUtilities.PointDatas);

                if (PinUtilities.GetTypeFromTag(marker.tags) != "Tokens")
                {
                    UserUtilities.AllocatePoints(pd._Value);
                    UIManager.Instance.IndicateScore(pd._Value, true);

                    SoundManager.Instance.PlaySound("CoinCollect");

                    long now = (long)(DateTime.UtcNow - epochStart).TotalMilliseconds;
                    PinUtilities.pinDeltas[marker.label] = now;

                    pd.RemovePin();

                    PinUtilities.SavePins();
                    UserUtilities.Save();

                    Organizations pinOrg = (Organizations)Enum.Parse(typeof(Organizations), pd._Type.ToString());

                    if (MinigamePinUnlock.Contains(pinOrg) && MiniGameEnabledOrgs.Contains(pinOrg))
                    {
                        Unlock(pinOrg);
                    }

                    if (TriviaEnabledOrgs.Contains(pinOrg))
                    {
                        TriviaGame.CheckForTrivia(marker.label);
                    }

                    return;
                }
                else
                {
                    pd = PinUtilities.GetPointData(marker.tags, PinUtilities.TokenPointDatas);
                    TokenPinActivate(pd, pd._Position.Latitude.ToString() + pd._Position.Longitude.ToString());
                }
            }
        }
        catch (Exception e)
        {
            Debug.Log("ERROR: " + e.Message);
        }
    }
コード例 #4
0
    // Event executes when token pins are clicked
    private void TokenPinActivate(PointData pinData, string key)
    {
        if (pinData._Jackpot)
        {
            UserUtilities.AllocatePoints(pinData._Value * jackpotMultiplier);
            UIManager.Instance.IndicateScore(pinData._Value * jackpotMultiplier, true);
        }
        else
        {
            UserUtilities.AllocatePoints(pinData._Value);
            UIManager.Instance.IndicateScore(pinData._Value, true);
        }

        SoundManager.Instance.PlaySound("CoinCollect");

        long now = (long)(DateTime.UtcNow - epochStart).TotalMilliseconds;

        PinUtilities.tokenPinDeltas[key] = now;

        pinData.RemovePin();

        PinUtilities.SaveTokenPins();
        UserUtilities.Save();
    }
コード例 #5
0
    public void EnterState()
    {
        switch (GameManager.Cur_State)
        {
        case GameManager.GameState.Splash:
            Splash_PNL.gameObject.SetActive(true);
            if (Splash_IMGs.Length > 0)
            {
                SplashDisplayImage.sprite = Splash_IMGs[0];
            }
            else
            {
                GameManager.Instance.SetState(GameManager.GameState.StartPage);
            }
            Timer = SplashDuration;
            break;

        case GameManager.GameState.StartPage:
            Start_PNL.SetActive(true);
            break;

        case GameManager.GameState.Login:
            if (gameObject.GetComponent <RawImage>())
            {
                Destroy(gameObject.GetComponent <RawImage>());
            }
            TouchScreenKeyboard.hideInput = true;
            Login_PNL.SetActive(true);
            if (UserUtilities.RememberMeExists())
            {
                RememberMe_TGL.isOn = true;
                UserUtilities.RememberMeRetrieve();
                LoginCard_INPT.text     = UserUtilities.User.CardNumber;
                LoginPassword_INPT.text = UserUtilities.User.Password;
            }
            else
            {
                RememberMe_TGL.isOn = false;
            }
            break;

        case GameManager.GameState.Register:
            TouchScreenKeyboard.hideInput = true;
            Register_PNL.SetActive(true);
            break;

        case GameManager.GameState.CheckIn:
            Main_PNL.SetActive(true);
            CheckIn_PNL.SetActive(true);
            Enable_BTNs();
            Checkin_BTN.interactable = false;
            Products.InitProducts();
            CreateProductList();
            List_BTN.interactable = false;
            List_Tab.SetActive(true);
            Scan_BTN.interactable = true;
            Scan_Tab.SetActive(false);

            break;

        case GameManager.GameState.Map:
            Main_PNL.SetActive(true);
            Map_PNL.SetActive(true);
            Enable_BTNs();
            Map_BTN.interactable     = false;
            OnlineMaps.instance.zoom = 18;
            if (FirstMapLoad)
            {
                FirstMapLoad = false;
                OnlineMaps.instance.RemoveAllMarkers();
                PinUtilities.GetPointData();
                PinUtilities.PinDelta();
                PinUtilities.TokenPinDelta();
                PinUtilities.AddPins();
                PinUtilities.AddTokenPins();
                OnlineMapsLocationService.instance.createMarkerInUserPosition = true;
                OnlineMaps.instance.RedrawImmediately();
            }
            OnlineMaps.instance.position = OnlineMapsLocationService.instance.position;
            break;

        case GameManager.GameState.Games:
            Main_PNL.SetActive(true);
            Games_PNL.SetActive(true);
            Enable_BTNs();
            Games_BTN.interactable = false;
            CreateGameList();
            break;

        case GameManager.GameState.Events:
            Main_PNL.SetActive(true);
            Events_PNL.SetActive(true);
            Enable_BTNs();
            Events_BTN.interactable = false;
            Events.InitEvents();
            CreateEventList();
            break;

        case GameManager.GameState.Profile:
            TouchScreenKeyboard.hideInput = true;
            Main_PNL.SetActive(true);
            Profile_PNL.UpdateProfile();
            Profile_PNL.gameObject.SetActive(true);
            Enable_BTNs();
            Profile_BTN.interactable = false;
            break;

        case GameManager.GameState.Minigame:
            Main_PNL.SetActive(false);
            break;
        }
    }