Exemplo n.º 1
0
 private static string GetCommandText(SetMoveRouteCommand command, MapInstance map)
 {
     if (command.Route.Target == Guid.Empty)
     {
         return(Strings.EventCommandList.moveroute.ToString(Strings.EventCommandList.moverouteplayer));
     }
     else
     {
         if (map.LocalEvents.ContainsKey(command.Route.Target))
         {
             return(Strings.EventCommandList.moveroute.ToString(
                        Strings.EventCommandList.moverouteevent.ToString(map.LocalEvents[command.Route.Target].Name)
                        ));
         }
         else
         {
             return(Strings.EventCommandList.moveroute.ToString(Strings.EventCommandList.deletedevent));
         }
     }
 }
        public EventMoveRouteDesigner(
            FrmEvent eventEditor,
            MapBase currentMap,
            EventBase currentEvent,
            EventMoveRoute editingRoute,
            SetMoveRouteCommand editingCommand = null
            )
        {
            InitializeComponent();
            InitLocalization();

            foreach (var item in lstCommands.Nodes)
            {
                var parentNode = new TreeNode(((TreeNode)item).Text)
                {
                    Name = ((TreeNode)item).Name,
                    Tag  = ((TreeNode)item).Tag
                };

                foreach (var childItem in ((TreeNode)item).Nodes)
                {
                    var childNode = new TreeNode(((TreeNode)childItem).Text)
                    {
                        Name = ((TreeNode)childItem).Name,
                        Tag  = ((TreeNode)childItem).Tag
                    };

                    parentNode.Nodes.Add(childNode);
                }

                mOrigItems.Add(parentNode);
            }

            //Grab event editor reference
            mEventEditor    = eventEditor;
            mEditingEvent   = currentEvent;
            mEditingCommand = editingCommand;
            mCurrentMap     = currentMap;

            //Generate temp route to edit
            mTmpMoveRoute = new EventMoveRoute();
            mTmpMoveRoute.CopyFrom(editingRoute);
            mEditingRoute = editingRoute;

            //Setup form
            chkIgnoreIfBlocked.Checked = mTmpMoveRoute.IgnoreIfBlocked;
            chkRepeatRoute.Checked     = mTmpMoveRoute.RepeatRoute;

            cmbTarget.Items.Clear();
            if (!mEditingEvent.CommonEvent)
            {
                if (mEditingCommand != null)
                {
                    cmbTarget.Items.Add(Strings.EventMoveRoute.player);
                    if (mEditingCommand.Route.Target == Guid.Empty)
                    {
                        cmbTarget.SelectedIndex = 0;
                    }
                }

                foreach (var evt in mCurrentMap.LocalEvents)
                {
                    cmbTarget.Items.Add(
                        evt.Key == mEditingEvent.Id ? Strings.EventMoveRoute.thisevent.ToString() : "" + evt.Value.Name
                        );

                    if (mEditingCommand != null)
                    {
                        if (mEditingCommand.Route.Target == evt.Key)
                        {
                            cmbTarget.SelectedIndex = cmbTarget.Items.Count - 1;
                        }
                    }
                    else
                    {
                        if (mEditingRoute.Target == evt.Key || mEditingRoute.Target == Guid.Empty)
                        {
                            cmbTarget.SelectedIndex = cmbTarget.Items.Count - 1;
                        }
                    }
                }
            }

            if (cmbTarget.SelectedIndex == -1 && cmbTarget.Items.Count > 0)
            {
                cmbTarget.SelectedIndex = 0;
            }

            ListMoveRoute();
            lstCommands.ExpandAll();
        }