// 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; } }
// 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; }
/// <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); } }
// 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(); }
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; } }