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 }
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; }
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; }