예제 #1
0
 private void map_ViewChangeEnd(object sender, MapEventArgs e)
 {
     //to workaround the issue
     // https://connect.microsoft.com/VisualStudio/feedback/details/643990/wp7-bing-maps-control-throwing-unspecified-error-with-mapitemscontrol
     //
     (DataContext as MainViewModel).MapViewChangedCommand.Execute(map.BoundingRectangle);
 }
예제 #2
0
 public void OnActorChangeEmotion(Actor aActor, MapEventArgs args)
 {
     ChatArg arg = (ChatArg)args;
     Packets.Server.SSMG_CHAT_EMOTION p = new SagaMap.Packets.Server.SSMG_CHAT_EMOTION();
     p.ActorID = aActor.ActorID;
     p.Emotion = arg.emotion;
     this.Client.netIO.SendPacket(p);
 }
예제 #3
0
 /// <summary>
 /// Handles the map event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="Artem.Google.UI.MapEventArgs"/> instance containing the event data.</param>
 protected void HandleMapEvent(object sender, MapEventArgs e)
 {
     _bounds = e.Bounds;
     GoogleMap1.Center = e.Center;
     GoogleMap1.MapType = e.MapType;
     GoogleMap1.Zoom = e.Zoom;
     GoogleMarkers1.DataBind();
 }
 public void MapTest()
 {
     BaseMap map = null; // TODO: 初始化为适当的值
     MapEventArgs target = new MapEventArgs( map ); // TODO: 初始化为适当的值
     BaseMap actual;
     actual = target.Map;
     Assert.Inconclusive( "验证此测试方法的正确性。" );
 }
예제 #5
0
        private void map_ViewChangeOnFrame(object sender, MapEventArgs e)
        {
            if (bingMap.ZoomLevel < 12 && previousFrameCenter != null) {
                bingMap.SetView(previousFrameCenter, 12);

                e.Handled = true; // Do we need it???
            } else {
                previousFrameCenter = bingMap.Center;
            }
        }
예제 #6
0
        private void MapViewChangeEnd(object sender, MapEventArgs e)
        {
            var vm = DataContext as BusesViewModel;

            if (vm == null)
            {
                return;
            }

            var targetBoundingRectangle = this.Map.TargetBoundingRectangle;

            vm.LoadBusStopsInExtents(targetBoundingRectangle);
        }
예제 #7
0
 void mapControl_ViewChangeEnd(object sender, MapEventArgs e)
 {
     endH = this.mapControl.BoundingRectangle.Height;
     endW = this.mapControl.BoundingRectangle.Width;
     
     if (startH != endH || startW != endW)
     {
         var layer = this.mapControl.Children[1] as MapLayer;
         if (layer != null)
         {
             Image img = layer.Children[0] as Image;
             img.RenderTransform = new ScaleTransform { ScaleX = startW / endW, ScaleY = startH / endH };
         }
     }
 }
예제 #8
0
 /// <summary>
 /// When user zooms out enough, the information box disappears
 /// </summary>
 /// <param name="sender">Map</param>
 /// <param name="e">N/A</param>
 private void ThisMap_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     if (sender is Map map)
     {
         if (maplayer.Children.Contains(border))
         {
             if (map.ZoomLevel < 11)
             {
                 border.Visibility = Visibility.Hidden;
             }
             else
             {
                 border.Visibility = Visibility.Visible;
             }
         }
     }
 }
예제 #9
0
 private void MapManager_OnMapChanged(object sender, MapEventArgs e)
 {
     if (e.Current.Name == MapContainedIn)
     {
         if (ContainingMapActive != null)
         {
             ContainingMapActive(this, new MapLocatorEventArgs(e, owner));
         }
     }
     else
     {
         if (ContainingMapChanged != null)
         {
             ContainingMapChanged(this, new MapLocatorEventArgs(e, owner));
         }
     }
 }
예제 #10
0
        public void OnActorSkillUse(Actor sActor, MapEventArgs args)
        {
            Map.SkillArgs sArgs  = (Map.SkillArgs)args;
            Actor         aActor = C.map.GetActor(sArgs.targetActorID);

            if (sArgs.castcancel)
            {
                Packets.Server.SkillCastCancel p3 = new SagaMap.Packets.Server.SkillCastCancel();
                p3.SetSkillType(sArgs.skillType);
                p3.SetSkillID((uint)sArgs.skillID);
                p3.SetActors(sActor.id);
                C.netIO.SendPacket(p3, C.SessionID);
                return;
            }
            switch (sArgs.casting)
            {
            case false:
                if (sArgs.failed == false)
                {
                    Packets.Server.OffensiveSkill p1 = new SagaMap.Packets.Server.OffensiveSkill();
                    p1.SetSkillType(sArgs.skillType);
                    p1.SetIsCritical((byte)sArgs.isCritical);
                    p1.SetSkillID((uint)sArgs.skillID);
                    p1.SetActors(sActor.id, sArgs.targetActorID);
                    p1.SetDamage(sArgs.damage);
                    C.netIO.SendPacket(p1, C.SessionID);
                }
                else
                {
                    Packets.Server.OffensiveSkillFailed p1 = new SagaMap.Packets.Server.OffensiveSkillFailed();
                    p1.SetSkillID((uint)sArgs.skillID);
                    p1.SetActor(sActor.id);
                    C.netIO.SendPacket(p1, C.SessionID);
                }
                break;

            case true:
                Packets.Server.SkillCast p2 = new SagaMap.Packets.Server.SkillCast();
                p2.SetSkillType(sArgs.skillType);
                p2.SetSkillID((uint)sArgs.skillID);
                p2.SetActors(sActor.id, sArgs.targetActorID);
                p2.SetU1(0x10);
                C.netIO.SendPacket(p2, C.SessionID);
                break;
            }
        }
예제 #11
0
        void mapControl_ViewChangeEnd(object sender, MapEventArgs e)
        {
            endH = this.mapControl.BoundingRectangle.Height;
            endW = this.mapControl.BoundingRectangle.Width;

            if (startH != endH || startW != endW)
            {
                var layer = this.mapControl.Children[1] as MapLayer;
                if (layer != null)
                {
                    Image img = layer.Children[0] as Image;
                    img.RenderTransform = new ScaleTransform {
                        ScaleX = startW / endW, ScaleY = startH / endH
                    };
                }
            }
        }
예제 #12
0
파일: Map.cs 프로젝트: yanhan-dev/BNSAtomix
        public override void OnEvent(MapEvents etype, MapEventArgs args, Actor sActor, Actor dActor)
        {
            switch (etype)
            {
            case MapEvents.APPEAR:
            {
                sActor.EventHandler.OnActorAppears(dActor);
            }
            break;

            case MapEvents.DISAPPEAR:
            {
                sActor.EventHandler.OnActorDisappears(dActor);
            }
            break;

            case MapEvents.CHAT:
                if (sActor.ActorType == ActorType.PC)
                {
                    ((ActorEventHandlers.PCEventHandler)sActor.EventHandler).OnChat((ChatArgument)args);
                }
                break;

            case MapEvents.PORTAL_ENTER:
                ((BNSActorEventHandler)sActor.EventHandler).OnActorEnterPortal(dActor);
                break;

            case MapEvents.QUEST_UPDATE:
            {
                Scripting.NPCScriptHandler npc = sActor.EventHandler as Scripting.NPCScriptHandler;
                QuestArgument arg = args as QuestArgument;
                if (npc != null && arg != null && arg.OriginNPC != npc.NpcID)
                {
                    npc.OnQuest(arg.Player, arg.Quest.QuestID, arg.Step, arg.Quest);
                }
            }
            break;

            default:
                if (sActor.ActorType == ActorType.PC)
                {
                    ((ActorEventHandlers.PCEventHandler)sActor.EventHandler).OnBroadcastEvt((UpdateEvent)args);
                }
                break;
            }
        }
예제 #13
0
        private void imgHexMap_MapDrag(object sender, MapEventArgs e)
        {
            if (_lockControls)
            {
                return;
            }

            if (e.Button == MouseButtons.Left ||
                (e.Button == MouseButtons.Right && _currentDrawingTool == DrawingTools.FogOfWar))
            {
                if (_lastDraggedHex == null || !_lastDraggedHex.Equals(e.HexScreenCoordinate))
                {
                    _lastDraggedHex = e.HexScreenCoordinate;
                    imgHexMap_MapClick(sender, e);
                }
            }
        }
예제 #14
0
        private void Collection_MapRemoved(object sender, MapEventArgs e)
        {
            ListViewItem item = mapsListView.Items.OfType <ListViewItem>().FirstOrDefault(i => i.Tag == e.Map);

            if (item != null)
            {
                //_placeholdBitmap

                UnloadThumbnailForMap(e.Map, item);
                mapsListView.Items.Remove(item);
            }

            if (mapsListView.Items.Count == 0)
            {
                Debug.WriteLine("Cleaned imagelist");
                imageList.Images.Clear(); // Quick cleanup
            }
        }
예제 #15
0
        public void MapOverHandler(object sender, MapEventArgs e)
        {
            int success = -1;

            if (e.gameOver)
            {
                Debug.Log("Game Over");
            }
            else if (objective != null && objective.Success)
            {
                success = 1;
            }
            string info = success == 1 ? "Objective Achieved" : "Objective Failed";

            Debug.Log(info);
            Storage.SaveEncounterInfo(Storage.GetCurrentCredits(), success, Character.GetCurrentCharacters()); // -1 if lvl is failed, 1 if completed successfully
            SceneController.LoadScene("GalaxyMap");
        }
예제 #16
0
        public void OnChangeStatus(Actor sActor, MapEventArgs args)
        {
            Map.StatusArgs arg = (Map.StatusArgs)args;
            switch (arg.type)
            {
            case Map.StatusArgs.EventType.Add:
                foreach (Map.StatusArgs.StatusInfo i in arg.StatusList)
                {
                    Packets.Server.ExchangeAddition p1 = new SagaMap.Packets.Server.ExchangeAddition();
                    p1.SetID(sActor.id);
                    Skill info = SkillFactory.GetSkill(i.SkillID);
                    if (info != null)
                    {
                        p1.SetStatusID(info.addition);
                    }
                    else
                    {
                        p1.SetStatusID(i.SkillID);
                    }
                    p1.SetTime(i.time);
                    this.C.netIO.SendPacket(p1, C.SessionID);
                }
                break;

            case Map.StatusArgs.EventType.Remove:
                foreach (Map.StatusArgs.StatusInfo i in arg.StatusList)
                {
                    Packets.Server.DeleteExchangeAddition p1 = new SagaMap.Packets.Server.DeleteExchangeAddition();
                    p1.SetID(sActor.id);
                    Skill info = SkillFactory.GetSkill(i.SkillID);
                    if (info != null)
                    {
                        p1.SetStatusID(info.addition);
                    }
                    else
                    {
                        p1.SetStatusID(i.SkillID);
                    }
                    this.C.netIO.SendPacket(p1, C.SessionID);
                }
                break;
            }
        }
예제 #17
0
        private void viewMap_ViewChangeOnFrame(object sender, MapEventArgs e)
        {
            // Gets the map object that raised this event.
            Map map = sender as Map;

            // Determine if we have a valid map object.
            if (map != null)
            {
                // Gets the center of the current map view for this particular frame.
                Location mapCenter = map.Center;

                // Updates the latitude and longitude values, in real time,
                // as the map animates to the new location.
                txtLatitude.Text = string.Format(CultureInfo.InvariantCulture,
                                                 "{0:F5}", mapCenter.Latitude);
                txtLongitude.Text = string.Format(CultureInfo.InvariantCulture,
                                                  "{0:F5}", mapCenter.Longitude);
            }
        }
        private static void BaseLayerOnLoaded(object o, MapEventArgs args)
        {
            var layer = (o as Layer);

            if (layer.LoadStatus == LoadStatus.Loaded)
            {
                var map       = args.Map;
                var mapRef    = map.SpatialReference.BaseGeographic;
                var baseLayer = map.Basemap.BaseLayers.FirstOrDefault();
                var baseRef   = baseLayer?.SpatialReference?.BaseGeographic;

                if (mapRef != baseRef)
                {
                    MessageBox.Show(
                        string.Format(Properties.Resources.ErrorSpatialReferencesDoNotMatch, mapRef.Wkid.ToString() ?? "empty", baseRef.Wkid.ToString() ?? "empty"),
                        Properties.Resources.MessageBoxHint, MessageBoxButton.OK, MessageBoxImage.Information);
                }
            }
        }
예제 #19
0
파일: MobAI.cs 프로젝트: x3sphiorx/SagaRO2
 public void OnSkillUse(Actor sActor, MapEventArgs args)
 {
     Map.SkillArgs arg = (Map.SkillArgs)args;
     switch (arg.skillID)
     {
     case SagaMap.Skills.SkillIDs.ActDead:
     case SagaMap.Skills.SkillIDs.ActDead2:
     case SagaMap.Skills.SkillIDs.ActDead3:
     case SagaMap.Skills.SkillIDs.ActDead4:
     case SagaMap.Skills.SkillIDs.ActDead5:
         if (this.mob.Hate.ContainsKey(sActor.id))
         {
             if (Global.Random.Next(0, 99) <= 50)
             {
                 this.mob.Hate.Remove(sActor.id);
             }
         }
         break;
     }
 }
예제 #20
0
파일: Map.cs 프로젝트: yanhan-dev/BNSAtomix
        /// <summary>
        /// 广播事件给所有Actor
        /// </summary>
        /// <param name="etype">事件类型</param>
        /// <param name="args">参数</param>
        /// <param name="sActor">触发事件的源Actor</param>
        /// <param name="sendToSourceActor">是否广播给源Actor</param>
        public void SendEventToAllActors(T etype, MapEventArgs args, Actor sActor, bool sendToSourceActor)
        {
            foreach (Actor actor in this.actorsByID.Values)
            {
                if (actor.EventHandler == null)
                {
                    DeleteActor(actor);
                    continue;
                }
                if (sActor != null)
                {
                    if (!sendToSourceActor && (actor.ActorID == sActor.ActorID))
                    {
                        continue;
                    }
                }

                OnEvent(etype, args, actor, sActor);
            }
        }
예제 #21
0
        private void MapEventHappened(object sender, MapEventArgs e)
        {
            switch (e.EventType)
            {
            case MapEventType.MapViewChanged:
            {
                mapStartXY = e.MapStartXY;
                mapDrawSq  = e.MapDrawSq;
                drawPanel.Invalidate();
                break;
            }

            case MapEventType.ToggleBetweenCurrentEntireMapView:
            {
                drawPanel.Invalidate();
                break;
            }

            default: break;
            }
        }
예제 #22
0
 /// <summary>
 /// allt som skickas från map via events.
 /// </summary>
 /// <param name="args"></param>
 private void HandleMap(MapEventArgs args)
 {
     if (args.EventType == MapEventType.Move) //Spelaren ska börja gå till nästa en viss tile.
     {
         player.SetDestination(args.Position);
     }
     else if (args.EventType == MapEventType.ChangeRoom)
     {
         player.SetPosition(args.Position);
         player.RestoreHpAndMana();
     }
     else if (args.EventType == MapEventType.StartCombat)
     {
         GameSettings.gameState = GameState.Battle;
         combat.StartCombat(args.enemy);
     }
     else if (args.EventType == MapEventType.PotionPickup)
     {
         player.UsePotion(args.potionType);
     }
 }
예제 #23
0
        public void OnEditorMouseDown(MouseEventArgs mouseEventArgs, MapEventArgs mapEventArgs)
        {
            var selectedPos = new Vector(mapEventArgs.X, mapEventArgs.Y);

            if (m_npcToolBarButton.Checked)
            {
                using (var form = new NPCDialog())
                {
                    var result = form.ShowDialog();

                    if (result == DialogResult.OK)
                    {
                        form.Selected.Pos = selectedPos;

                        m_mapMeta.AddNPC(form.Selected);
                    }
                }
            }
            else if (m_eventToolBarButton.Checked)
            {
                var input   = Prompt.ShowDialog("Event Id", "Enter an event id");
                var eventId = input.ToInt();
                if (eventId > 0)
                {
                    m_mapMeta.AddEvent(new EventId {
                        Id = eventId, Pos = selectedPos
                    });
                }
            }
            else if (m_eraserToolBarButton.Checked)
            {
                var npc = m_mapMeta.GetNPC(selectedPos);

                if (npc != null)
                {
                    m_mapMeta.RemoveNPC(npc);
                }
            }
        }
예제 #24
0
        // If view pieces mode is toggled on/off
        private void MapEventHappened(object sender, MapEventArgs e)
        {
            switch (e.EventType)
            {
            case MapEventType.SwitchViewMovePiece:
            {
                if (ViewPieceMode)
                {
                    _movePieceItem.Enabled = true;
                    _viewPieceItem.Enabled = false;
                }
                else
                {
                    _movePieceItem.Enabled = false;
                    _viewPieceItem.Enabled = true;
                }
                break;
            }

            default: break;
            }
        }
예제 #25
0
파일: Map.cs 프로젝트: zNext666/SagaECO
        public void SendEventToAllActors(TOALL_EVENT_TYPE etype, MapEventArgs args, Actor sActor, bool sendToSourceActor)
        {
            foreach (Actor actor in this.actorsByID.Values)
            {
                if (sActor != null)
                {
                    if (!sendToSourceActor && (actor.ActorID == sActor.ActorID))
                    {
                        continue;
                    }
                }

                switch (etype)
                {
                case TOALL_EVENT_TYPE.CHAT:
                    actor.e.OnActorChat(sActor, args);
                    break;

                default:
                    break;
                }
            }
        }
예제 #26
0
파일: MobAI.cs 프로젝트: x3sphiorx/SagaRO2
 public void OnBeenAttacked(Actor sActor, MapEventArgs args)
 {
     Map.SkillArgs arg = (Map.SkillArgs)args;
     if (this.Activated() == false)
     {
         this.Start();
     }
     if (mob.Hate.ContainsKey(sActor.id))
     {
         byte tmp = (byte)(arg.damage / 10);
         if (tmp < 20)
         {
             tmp = 20;
         }
         if (mob.Hate[sActor.id] < tmp)
         {
             mob.Hate[sActor.id] = tmp;
         }
     }
     else
     {
         byte tmp = (byte)(arg.damage / 10);
         if (tmp < 20)
         {
             tmp = 20;
         }
         mob.Hate.Add(sActor.id, tmp);
     }
     if (mob.Damage.ContainsKey(sActor.id))
     {
         mob.Damage[sActor.id] = (ushort)(mob.Damage[sActor.id] + arg.damage);
     }
     else
     {
         mob.Damage.Add(sActor.id, (ushort)(arg.damage));
     }
 }
예제 #27
0
        protected override void ChangeArea(TileType entrance)
        {
            MapEventArgs args = new MapEventArgs(MapEventType.ChangeRoom);

            if (currentLocation == Location.Overworld)
            {
                Point dimensions = new Point(rand.Next(80, 120), rand.Next(80, 120));
                currentLocation = Location.Dungeon;
                if (rooms.ContainsKey(Location.Dungeon))
                {
                    rooms[Location.Dungeon] = new GeneratedDungeon(dimensions, textures, content);
                }
                else
                {
                    rooms.Add(Location.Dungeon, new GeneratedDungeon(dimensions, textures, content));
                }
            }
            else
            {
                currentLocation = Location.Overworld;
            }
            args.Position = rooms[currentLocation].GetTileCenterOfType(entrance);
            OnEvent(args);
        }
예제 #28
0
 public void OnActorSkillUse(Actor sActor, MapEventArgs args)
 {
     throw new NotImplementedException();
 }
예제 #29
0
 public void OnActorChangeMotion(Actor aActor, MapEventArgs args)
 {
 }
        private void MapViewChangeOnFrame(object sender, MapEventArgs e)
        {
            if (SliderZoom != null)
            {
                SliderZoom.ValueChanged -= SliderZoomValueChanged;
                SliderZoom.Value = MyMap.ZoomLevel;
                SliderZoom.ValueChanged += SliderZoomValueChanged;

                if (ButtonZoomPlus != null && Math.Abs(SliderZoom.Value - 20) < Double.Epsilon)
                    ButtonZoomPlus.IsEnabled = false;
                else if (ButtonZoomPlus != null)
                    ButtonZoomPlus.IsEnabled = true;

                if (ButtonZoomMinus != null && Math.Abs(SliderZoom.Value - 1) < Double.Epsilon)
                    ButtonZoomMinus.IsEnabled = false;
                else if (ButtonZoomMinus != null)
                    ButtonZoomMinus.IsEnabled = true;
            }
        }
예제 #31
0
 public void OnActorChat(Actor cActor, MapEventArgs args)
 {
 }
예제 #32
0
파일: MobAI.cs 프로젝트: Willyham/SagaRO2
 public void OnSkillUse(Actor sActor, MapEventArgs args)
 {
     Map.SkillArgs arg = (Map.SkillArgs)args;
     switch (arg.skillID)
     {
         case SagaMap.Skills.SkillIDs.ActDead:
         case SagaMap.Skills.SkillIDs.ActDead2:
         case SagaMap.Skills.SkillIDs.ActDead3:
         case SagaMap.Skills.SkillIDs.ActDead4:
         case SagaMap.Skills.SkillIDs.ActDead5:
             if (this.mob.Hate.ContainsKey(sActor.id))
             {
                 if (Global.Random.Next(0, 99) <= 50)
                     this.mob.Hate.Remove(sActor.id);
             }
             break;
     }
 }
예제 #33
0
 public void OnActorSkillUse(Actor sActor, MapEventArgs args)
 {
 }
예제 #34
0
 void map1_ViewChangeEnd(object sender, MapEventArgs e)
 {
     throw new NotImplementedException();
 }
예제 #35
0
 private void Map_ViewChangeEnd(object sender, MapEventArgs e)
 {
     Map_UpdateView(Map.ZoomLevel);
 }
예제 #36
0
파일: Map.cs 프로젝트: yasuhiro91/SagaECO
        public void SendEventToAllActorsWhoCanSeeActor(EVENT_TYPE etype, MapEventArgs args, Actor sActor, bool sendToSourceActor)
        {
            try
            {
                for (short deltaY = -1; deltaY <= 1; deltaY++)
                {
                    for (short deltaX = -1; deltaX <= 1; deltaX++)
                    {
                        uint region = (uint)(sActor.region + (deltaX * 1000000) + deltaY);
                        if (!this.actorsByRegion.ContainsKey(region)) continue;

                        foreach (Actor actor in this.actorsByRegion[region])
                        {
                            try
                            {
                                if (!sendToSourceActor && (actor.ActorID == sActor.ActorID)) continue;

                                if (this.ACanSeeB(actor, sActor))
                                {
                                    switch (etype)
                                    {
                                        case EVENT_TYPE.APPEAR:
                                            actor.e.OnActorAppears(sActor);
                                            break;

                                        case EVENT_TYPE.DISAPPEAR:
                                            actor.e.OnActorDisappears(sActor);
                                            break;

                                        case EVENT_TYPE.EMOTION:
                                            actor.e.OnActorChangeEmotion(sActor, args);
                                            break;

                                        case EVENT_TYPE.MOTION:
                                            actor.e.OnActorChangeMotion(sActor, args);
                                            break;

                                        case EVENT_TYPE.CHAT:
                                            actor.e.OnActorChat(sActor, args);
                                            break;

                                        case EVENT_TYPE.SKILL:
                                            actor.e.OnActorSkillUse(sActor, args);
                                            break;

                                        case EVENT_TYPE.CHANGE_EQUIP:
                                            actor.e.OnActorChangeEquip(sActor, args);
                                            break;
                                        default:
                                            break;
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                Logger.ShowError(ex);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.ShowError(ex);
            }
        }
예제 #37
0
 public void OnActorSelection(ActorPC sActor, MapEventArgs args)
 {
 }
예제 #38
0
 void map_ViewChange(object sender, MapEventArgs e)
 {
     UpdateAccuracyCircle();
 }
예제 #39
0
 /// <summary>
 /// MainMap_ViewChangeEnd(
 ///     this event is triggered by user selection changes in side menu
 /// </summary>
 private void MainMap_ViewChangeEnd(object sender, MapEventArgs e)
 {
     if (MainMap != null)
     {
         ZLText.Text = String.Format("{0,5:0.00} ", MainMap.ZoomLevel);
         ShowLayers();
     }
 }
예제 #40
0
 void mapControl_ViewChangeStart(object sender, MapEventArgs e)
 {
     startH = this.mapControl.BoundingRectangle.Height;
     startW = this.mapControl.BoundingRectangle.Width;
 }
 private void locationMap_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     mapZoomControl.Value = locationMap.ZoomLevel;
 }
        void DetailsMap_TargetViewChanged(object sender, MapEventArgs e)
        {
            GeoCoordinate center = DetailsMap.TargetCenter;
            mapHasMoved = true;

            if (DetailsMap.TargetZoomLevel >= minZoomLevel)
            {
                viewModel.LoadStopsForLocation(center);
            }

#if DEBUG
            cacheRectLayer.Children.Clear();

            int roundingLevel = 2;
            int multiplier = 3;
            double positiveOffset = (Math.Pow(.1, roundingLevel) * 0.5) / multiplier;
            double negativeOffset = (Math.Pow(.1, roundingLevel) * 0.5) / multiplier;

            double lat = Math.Round(center.Latitude * multiplier, roundingLevel) / multiplier;
            double lon = Math.Round(center.Longitude * multiplier, roundingLevel) / multiplier;

            // Round off the extra decimal places to prevent double precision issues
            // from causing multiple cache entires
            GeoCoordinate roundedLocation = new GeoCoordinate(
                Math.Round(lat, roundingLevel + 1),
                Math.Round(lon, roundingLevel + 1)
            );

            MapPolygon cacheSquare = new MapPolygon();
            cacheSquare.Locations = new LocationCollection();
            cacheSquare.Locations.Add(new GeoCoordinate(roundedLocation.Latitude + positiveOffset, roundedLocation.Longitude + positiveOffset));
            cacheSquare.Locations.Add(new GeoCoordinate(roundedLocation.Latitude - negativeOffset, roundedLocation.Longitude + positiveOffset));
            cacheSquare.Locations.Add(new GeoCoordinate(roundedLocation.Latitude - negativeOffset, roundedLocation.Longitude - negativeOffset));
            cacheSquare.Locations.Add(new GeoCoordinate(roundedLocation.Latitude + positiveOffset, roundedLocation.Longitude - negativeOffset));
            
            cacheSquare.Stroke = new SolidColorBrush(Colors.Black);
            cacheSquare.StrokeThickness = 5;

            cacheRectLayer.Children.Add(cacheSquare);

            Pushpin requestCenterPushpin = new Pushpin();
            requestCenterPushpin.Location = roundedLocation;

            cacheRectLayer.Children.Add(requestCenterPushpin);

            CenterControl deadCenter = new CenterControl();
            cacheRectLayer.AddChild(deadCenter, center, PositionOrigin.Center);
#endif
        }
예제 #43
0
 private void Map_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     Map_UpdateView(Map.TargetZoomLevel);
 }
예제 #44
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="eventArgs"></param>
        public void InitMap(object sender, MapEventArgs eventArgs)
        {
            eventArgs.Map.MapRectangle = new Rectangle3D(-17067.0f, -17067.0f, -17067.0f, 17067.0f, 17067.0f, 17067.0f);

            m_CheckDeactivateSlice = TimeSlice.StartTimeSlice(m_CheckDeactivateTimeSpan, m_CheckDeactivateTimeSpan, new TimeSliceCallback(this.CheckDeactivateSpaceNode));
        }
예제 #45
0
파일: MobAI.cs 프로젝트: Willyham/SagaRO2
 public void OnBeenAttacked(Actor sActor, MapEventArgs args)
 {
     Map.SkillArgs arg=(Map.SkillArgs) args ;
     if (this.Activated() == false)
     {
         this.Start();
     }
     if (mob.Hate.ContainsKey(sActor.id))
     {
         byte tmp = (byte)(arg.damage / 10);
         if (tmp < 20) tmp = 20;
         if (mob.Hate[sActor.id] < tmp) mob.Hate[sActor.id] = tmp;
     }
     else
     {
         byte tmp = (byte)(arg.damage / 10);
         if (tmp < 20) tmp = 20;
         mob.Hate.Add(sActor.id, tmp);
     }
     if (mob.Damage.ContainsKey(sActor.id))
     {
         mob.Damage[sActor.id] = (ushort)(mob.Damage[sActor.id] + arg.damage);
     }
     else mob.Damage.Add(sActor.id, (ushort)(arg.damage));
 }
예제 #46
0
 private void MainMap_ViewChangeStart(object sender, MapEventArgs e)
 {
     // not used
 }
예제 #47
0
 private void map_MapLoaded(object sender, MapEventArgs e)
 {
     // GeoCodeToAddressWithOption();
 }
예제 #48
0
 public void OnChangeStatus(Actor sActor, MapEventArgs args)
 {
 }
예제 #49
0
 void parentMap_ViewChangeEnd(object sender, MapEventArgs e)
 {
     UpdatePlotRect();
 }
예제 #50
0
 public void OnActorChangeEquip(Actor sActor, MapEventArgs args)
 {
     throw new NotImplementedException();
 }
예제 #51
0
 /// <summary>
 /// Adjusts buffer thickness for polyline buffer by zoom level
 /// </summary>
 private void MainMap_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     if (drawtools.drawbuffer != null)
     {
         drawtools.drawbuffer.StrokeThickness = drawtools.BufferSlider.Value * 2000 
             / MiscFunctions.GetMapResolution(drawtools.drawbuffer.Locations[0].Latitude, MainMap.ZoomLevel);
     }
 }
예제 #52
0
 private void ViewChangeEndHandler(object sender, MapEventArgs e)
 {
     double newZoomLevel = ClipBounds(ZoomLevel, MinZoomLevel, MaxZoomLevel);
     if (newZoomLevel != ZoomLevel)
         SetView(Center, newZoomLevel);
 }
예제 #53
0
 private void map_MapLoaded(object sender, MapEventArgs e)
 {
     map.ZoomEnded += new EventHandler <MapEventArgs>(map_ZoomChanged);
 }
예제 #54
0
파일: Mob.cs 프로젝트: Willyham/SagaRO2
 public override void OnActorSkillUse( Actor sActor, MapEventArgs args )
 {
     ai.OnSkillUse( sActor, args );
 }
예제 #55
0
파일: Map.cs 프로젝트: yasuhiro91/SagaECO
        public void SendEventToAllActors(TOALL_EVENT_TYPE etype, MapEventArgs args, Actor sActor, bool sendToSourceActor)
        {
            foreach (Actor actor in this.actorsByID.Values)
            {
                if(sActor != null) if (!sendToSourceActor && (actor.ActorID == sActor.ActorID)) continue;

                switch (etype)
                {
                    case TOALL_EVENT_TYPE.CHAT:
                        actor.e.OnActorChat(sActor, args);
                        break;
                    default:
                        break;
                }
            }
        }
예제 #56
0
 private void Map_ViewChangeEnd(object sender, MapEventArgs e)
 {
     Map_UpdateView(Map.ZoomLevel);
 }
예제 #57
0
파일: Mob.cs 프로젝트: Willyham/SagaRO2
 public void BeenAttacked(Actor sActor, MapEventArgs args)
 {
     ai.OnBeenAttacked(sActor, args);
 }
예제 #58
0
 private void Map_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     Map_UpdateView(Map.TargetZoomLevel);
 }
예제 #59
0
 void mapControl_ViewChangeOnFrame(object sender, MapEventArgs e)
 {
     
 }
예제 #60
0
파일: Mob.cs 프로젝트: Willyham/SagaRO2
 public override void OnActorChat( Actor cActor, MapEventArgs args )
 {
 }