Exemplo n.º 1
0
 private IEnumerator UpdateDrag()
 {
     while (this.updateDrag)
     {
         WorkersDragPanel guiPanel = base.GuiService.GetGuiPanel <WorkersDragPanel>();
         if (Input.GetMouseButtonDown(0))
         {
             if (guiPanel.DragInProgress)
             {
                 if (guiPanel.DragMoved)
                 {
                     this.CheckDragTarget(guiPanel);
                 }
                 else
                 {
                     guiPanel.CancelDrag();
                     base.NeedRefresh = true;
                 }
             }
             else if (AgeManager.Instance.ActiveControl != null)
             {
                 WorkerSymbol component = AgeManager.Instance.ActiveControl.GetComponent <WorkerSymbol>();
                 if (component != null)
                 {
                     guiPanel.InitDrag(this.City, component.WorkerType, component.DragQuantity);
                 }
             }
         }
         else if (Input.GetMouseButtonUp(0))
         {
             if (guiPanel.DragInProgress)
             {
                 if (!guiPanel.DragMoved)
                 {
                     guiPanel.StartDrag();
                     base.NeedRefresh = true;
                 }
                 else
                 {
                     guiPanel.DragInProgress = false;
                     this.CheckDragTarget(guiPanel);
                 }
             }
         }
         else if (guiPanel.DragInProgress && !guiPanel.DragMoved && this.previousCursor != AgeManager.Instance.Cursor)
         {
             guiPanel.StartDrag();
             base.NeedRefresh = true;
         }
         this.previousCursor = AgeManager.Instance.Cursor;
         yield return(null);
     }
     yield break;
 }
Exemplo n.º 2
0
 private void CheckDragTarget(WorkersDragPanel workersDragPanel)
 {
     if (AgeManager.Instance.ActiveControl != null)
     {
         WorkersGroup component = AgeManager.Instance.ActiveControl.GetComponent <WorkersGroup>();
         if (component == null)
         {
             WorkerSymbol component2 = AgeManager.Instance.ActiveControl.GetComponent <WorkerSymbol>();
             if (component2 != null)
             {
                 component = component2.AgeTransform.GetParent().GetComponent <WorkersGroup>();
             }
         }
         if (!(component != null))
         {
             workersDragPanel.CancelDrag();
             base.NeedRefresh = true;
             return;
         }
         if (!(workersDragPanel.StartingWorkerType != component.WorkerType))
         {
             workersDragPanel.CancelDrag();
             base.NeedRefresh = true;
             return;
         }
         workersDragPanel.ValidateDrag(this.WorkerGroupsTable, component.WorkerType, new EventHandler <TicketRaisedEventArgs>(this.OnOrderResponse));
         if (TutorialManager.IsActivated)
         {
             IEventService service = Services.GetService <IEventService>();
             Diagnostics.Assert(service != null);
             IGameService service2 = Services.GetService <IGameService>();
             Diagnostics.Assert(service2 != null);
             Diagnostics.Assert(service2.Game as global::Game != null);
             service.Notify(new EventTutorialWorkerDragged(this.City.Empire, workersDragPanel.StartingWorkerType, component.WorkerType));
             return;
         }
     }
     else
     {
         workersDragPanel.CancelDrag();
         base.NeedRefresh = true;
     }
 }