コード例 #1
0
 private void JaguarClicked(object sender, MouseButtonEventArgs e)
 {
     var posId = Current.Instance.JaguarPositon.Id;
     //Current.Instance.JaguarPositon = null; //game over.
     JaguarRequests requests = new JaguarRequests(Constants.BaseApiUrl);
     requests.UpdateWinner(Current.Instance.Username, posId);  //Updatear el que lo encontro
 }
コード例 #2
0
        private bool JaguarClickLogic(Point mousePos)
        {
            //Find the Jaguar Logic
            bool isClickingJaguar = false;

            if (Current.Instance.JaguarGame != null) //esto significa que hay un juego findthejaguar corriendo
            {
                if (Current.Instance.MapControl.Viewport.Resolution <= 2.4)
                {
                    var jaguar = Current.Instance.JaguarGame;
                    var sphericalMid = SphericalMercator.FromLonLat(jaguar.Longitude, jaguar.Latitude);
                    var jaguarPoint = new System.Windows.Point(sphericalMid.x, sphericalMid.y);

                    var mouseSpherical = mapControl.Viewport.ScreenToWorld(mousePos.X, mousePos.Y);
                    var mousePoint = new System.Windows.Point(mouseSpherical.X, mouseSpherical.Y);

                    if (GetDistanceBetweenPoints(mousePoint, jaguarPoint) <= 300)
                    {
                        isClickingJaguar = true;
                        var posId = Current.Instance.JaguarGame.Id;
                        Current.Instance.JaguarGame = null; //game over.
                        JaguarRequests requests = new JaguarRequests(Constants.BaseApiUrl);
                        requests.UpdateWinner(Current.Instance.Earthwatcher.Id, posId, Current.Instance.Earthwatcher.FullName);  //Updatear el que lo encontro

                        Current.Instance.AddScore.Add(new Score(Current.Instance.Earthwatcher.Id, ActionPoints.Action.FoundTheJaguar.ToString(), ActionPoints.Points(ActionPoints.Action.FoundTheJaguar), Current.Instance.Earthwatcher.PlayingRegion, Current.Instance.PrecisionScore));
                        AddPoints(Current.Instance.AddScore);
                        ShowFindTheJaguarCongratsPopUp();
                    }
                }
            }

            return isClickingJaguar;
        }
コード例 #3
0
        private void MapControlMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            //Si movi el mouse mientras apreté entonces es un drag
            var mousePos = e.GetPosition(mapControl);
            if (GetDistanceBetweenPoints(currentMousePos, mousePos) > 5)
            {
                return;
            }

            //Find the Jaguar Logic
            bool isClickingJaguar = false;
            if (Current.Instance.JaguarGame != null) //esto significa que hay un juego findthejaguar corriendo
            {
                if (Current.Instance.MapControl.Viewport.Resolution <= 2.4)
                {
                    var jaguar = Current.Instance.JaguarGame;
                    var sphericalMid = SphericalMercator.FromLonLat(jaguar.Longitude, jaguar.Latitude);
                    var jaguarPoint = new System.Windows.Point(sphericalMid.x, sphericalMid.y);

                    var mouseSpherical = mapControl.Viewport.ScreenToWorld(mousePos.X, mousePos.Y);
                    var mousePoint = new System.Windows.Point(mouseSpherical.X, mouseSpherical.Y);

                    if (GetDistanceBetweenPoints(mousePoint, jaguarPoint) <= 300)
                    {
                        isClickingJaguar = true;
                        var posId = Current.Instance.JaguarGame.Id;
                        Current.Instance.JaguarGame = null; //game over.
                        JaguarRequests requests = new JaguarRequests(Constants.BaseApiUrl);
                        requests.UpdateWinner(Current.Instance.Earthwatcher.Id, posId, Current.Instance.Earthwatcher.FullName);  //Updatear el que lo encontro     

                        Current.Instance.AddScore.Add(new Score { EarthwatcherId = Current.Instance.Earthwatcher.Id, Action = ActionPoints.Action.FoundTheJaguar.ToString(), Points = ActionPoints.Points(ActionPoints.Action.FoundTheJaguar), Published = DateTime.UtcNow });
                        AddPoints(Current.Instance.AddScore);
                        ShowFindTheJaguarCongratsPopUp();
                    }
                }
            }

            if (!isClickingJaguar)
            {
                if (!isScoreAdding) //esto evita que abran el hexagono nuevamente mientras se está guardando un puntaje
                {
                    if (!Current.Instance.TutorialStarted || (Current.Instance.TutorialStarted && (Current.Instance.TutorialCurrentStep == 3 || Current.Instance.TutorialCurrentStep == 4)))
                    {
                        leftMouseButtonDown = true;

                        hexagonInfo.Initialize();

                        //INTERSECT BASECAMPS  
                        if (layerHelper.FindLayer(Constants.BasecampsLayer).Enabled) // si esta activado el layer de basecamps
                        {

                            var bsphericalCoordinate = mapControl.Viewport.ScreenToWorld(mousePos.X, mousePos.Y);
                            var blonLat = SphericalMercator.ToLonLat(bsphericalCoordinate.X, bsphericalCoordinate.Y);

                            var bfeature = hexagonInfo.GetFeature(blonLat.x, blonLat.y, 7);
                            var bhexCode = GeoHex.Encode(blonLat.x, blonLat.y, 7);
                        }
                        if (!layerHelper.FindLayer(Constants.Hexagonlayername).Enabled)
                            return;

                        var sphericalCoordinate = mapControl.Viewport.ScreenToWorld(mousePos.X, mousePos.Y);
                        var lonLat = SphericalMercator.ToLonLat(sphericalCoordinate.X, sphericalCoordinate.Y);

                        // first try on level 7...
                        var feature = hexagonInfo.GetFeature(lonLat.x, lonLat.y, 7);
                        var hexCode = GeoHex.Encode(lonLat.x, lonLat.y, 7);

                        if (feature == null)
                        {
                            // try on level 6...
                            hexCode = GeoHex.Encode(lonLat.x, lonLat.y, 6);
                            feature = hexagonInfo.GetFeature(lonLat.x, lonLat.y, 6);
                            if (feature == null)
                            {
                                hexagonInfo.Visibility = Visibility.Collapsed;
                                return;
                            }
                        }

                        if (Current.Instance.TutorialStarted)
                        {
                            if (selectedLand != null && selectedLand.GeohexKey.Equals(hexCode))
                            {
                                if (Current.Instance.TutorialCurrentStep == 3)
                                {
                                    this.Tutorial5.Visibility = System.Windows.Visibility.Collapsed;
                                }
                                else
                                {
                                    this.Tutorial23.Visibility = System.Windows.Visibility.Collapsed;
                                }
                                this.Tutorial5Arrow.Visibility = System.Windows.Visibility.Collapsed;
                            }
                            else
                                return;
                        }

                        hexagonInfo.ShowInfo(lonLat.x, lonLat.y, hexCode);
                    }
                }
            }

            leftMouseButtonDown = false;
        }