Esempio n. 1
0
 public void QueueUnit(SidePanel a_sidePanel, UnitArgs a_events)
 {
     if (a_events.create)
     {
         QueuedUnit unit = new QueuedUnit();
         unit.prefab = a_events.prefab;
         unit.buildTime = a_events.prefab.buildTime;
         unit.percentage = 0f;
         m_queue.Add(unit);
     }
     else
     {
         for (int i = m_queue.Count - 1; i >= 0; --i)
         {
             if (m_queue[i].prefab.ID == a_events.prefab.ID)
             {
                 m_queue.Remove(m_queue[i]);
                 break;
             }
         }
     }
 }
Esempio n. 2
0
        public void Update()
        {
            if (Main.m_res.buildings.Count != m_buildingCount)
            {
                m_buildingCount = Main.m_res.buildings.Count;
                if (m_display == Type.Building)
                    ListBuildings();
                else if (m_display == Type.Unit)
                    ListUnits();
            }

            // Update buttons
            if (Main.m_event != null)
            {
                // Left & Right Arrows
                if (m_index > 0)
                {
                    if (m_buttonLeft.Process(Main.m_event) == Button.MOUSE1UP)
                    {
                        --m_index;
                    }
                }
                if (m_index < m_prefabButtons.Count / 8)
                {
                    if (m_buttonRight.Process(Main.m_event) == Button.MOUSE1UP)
                    {
                        ++m_index;
                    }
                }

                // Update main buttons
                for (int i = 0; i < 8; ++i)
                {
                    int index = i + (m_index * 8);
                    if (index >= m_prefabButtons.Count)
                        break;

                    // Check if we can afford the building or unit.
                    m_buttons[index].Lock(Main.m_res.funds < m_prefabButtons[index].cost && m_prefabButtons[index].count < 20);

                    // Process buttons
                    int eventType = m_buttons[index].Process(Main.m_event);
                    if (eventType == Button.MOUSE1UP)
                    {
                        if (m_prefabButtons[index].type == Type.Building)
                        {
                            if (BuildingEvent != null)
                            {
                                BuildingArgs args = new BuildingArgs();
                                args.prefab = m_prefabButtons[index].building;
                                BuildingEvent(this, args);
                                break;
                            }
                        }
                        else
                        {
                            if (UnitEvent != null)
                            {
                                UnitArgs args = new UnitArgs();
                                args.prefab = m_prefabButtons[index].unit;
                                args.create = true;
                                UnitEvent(this, args);

                                PrefabButton button = m_prefabButtons[index];
                                ++button.count;
                                m_prefabButtons[index] = button;

                                break;
                            }
                        }
                    }
                    else if (eventType == Button.MOUSE2UP)
                    {
                        if (m_prefabButtons[index].type == Type.Unit && m_prefabButtons[index].count > 0)
                        {
                            UnitArgs args = new UnitArgs();
                            args.prefab = m_prefabButtons[index].unit;
                            args.create = false;
                            UnitEvent(this, args);

                            PrefabButton button = m_prefabButtons[index];
                            --button.count;
                            m_prefabButtons[index] = button;

                            break;
                        }
                    }
                }
            }
        }