Ejemplo n.º 1
0
 private void serialPortStateIsChanged(object sender, ChangeStateEventArgs e)
 {
     buttonOpenClose.Text              = e.IsOpen ? "Закрыть" : "Открыть";
     comboBoxAvailableSpeeds.Enabled   = !e.IsOpen;
     comboBoxAvailablePortList.Enabled = !e.IsOpen;
     timer10ms.Enabled = e.IsOpen;
 }
Ejemplo n.º 2
0
        private void OnChangeState(object sender, ChangeStateEventArgs args)
        {
            var selected = (TaskStateBaseNames)sender;

            _taskService.UpdateState(args.TaskId, selected);
            LoadData();
        }
Ejemplo n.º 3
0
 private void serialPortStateIsChanged(object sender, ChangeStateEventArgs e)
 {
     DebugBox.Text = DebugBox.Text + (e.IsOpen ? "Serial port was opened\r\n" :
                                      "Serial port was closed\r\n");
     timer10ms.Enabled = e.IsOpen;
     if (e.IsOpen && !_serial_modbus.IsActive())
     {
         _serial_modbus.StartCommunication();
     }
 }
Ejemplo n.º 4
0
        private void onLearnTech(object sender, GameEventArgs e)
        {
            var msg = e as NetDataEvent.LearnTechEvent;

            if (msg == null)
            {
                return;
            }

            GameCore.Setting.SetInt(Constant.SettingKey.CultureTreeCollectTechID, msg.TechID);

            // 收取當前研發完成之新科技並前往文明樹頁面檢視
            // 關閉建築清單,前往文明樹介面,並且焦點為對應的文明樹ID
            GameCore.Event.Fire(null, ChangeStateEventArgs.Create(typeof(WorldMapCultureTree), UIBuildingCard.RequireUnlockTechID));
        }
Ejemplo n.º 5
0
        private void serialPortStateIsChanged(object sender, ChangeStateEventArgs e)
        {
            this.Invoke(new some_action(() =>
            {
                DebugBox.Text = DebugBox.Text + (e.IsOpen ? "Последовательный порт удачно открыт\r\n" :
                                                 "Последовательный порт удачно закрыт\r\n");

                buttonOpenClose.Text = e.IsOpen ? "Закрыть" : "Открыть";
                timer10ms.Enabled    = e.IsOpen;
            }));


            if (e.IsOpen && !_serial_modbus.IsActive())
            {
                _serial_modbus.StartCommunication();
            }
        }
Ejemplo n.º 6
0
            public void RefreshButtons(UIBuildingCardPreset preset)
            {
                infoBtn.onClick.AddListener(() =>
                {
                    selectedToggle.isOn = true;
                    curDisplayMode      = DisplayMode.Info;
                });

                infoBackBtn.onClick.AddListener(() =>
                {
                    selectedToggle.isOn = true;
                    curDisplayMode      = DisplayMode.Normal;
                });

                // 選擇該建築進行建設
                selectBtn.onClick.AddListener(() =>
                {
                    selectedToggle.isOn = true;

                    if (buildData.IsMainBuilding)
                    {
                        if (CheckBuildCondition(buildData, preset.totalCost, preset.nonUsingCost))
                        {
                            GameCore.Event.Fire(this, ChangeStateEventArgs.Create(typeof(WorldMapSelectSubBuilding), new WorldMapSelectSubBuilding.Preset()
                            {
                                posIndex = preset.posIndex, position = preset.position, masterTid = buildData.Id, isMainBuildingProcess = true
                            }));
                        }
                    }
                    else if (buildData.IsSubBuilding)
                    {
                        if (preset.selectAction != null)
                        {
                            preset.selectAction(buildData);
                        }
                    }
                });
            }
Ejemplo n.º 7
0
 public void HandleStateSwitchEvent(object sender, ChangeStateEventArgs e)
 {
     State.SwitchState(e.State);
 }
Ejemplo n.º 8
0
        // 主建築檢查所需「文明樹、人口、最大數量」
        // 副建築檢查所需「文明樹、人口」
        public static bool CheckBuildCondition(BuildingData buildData, int buildCost, int nonUsingCost)
        {
            if (buildData != null)
            {
                if (!buildData.IsUnlocked)
                {
                    RequireUnlockTechID = buildData.culture_tree_id;
                    var cultrueTreeData = GameCore.DataTable.GetDataTable <CultureTreeData>().GetDataRow(buildData.culture_tree_id);
                    var remainTime      = GameCore.NetData.GetRemainTime(NetDataComponent.TechEnchantID);
                    if (remainTime == null || remainTime.Value > 0)
                    {
                        // 無待採收科技
                        UIComfirm.ShowComfirm(GameCore.Localization.GetString(300014),
                                              Utility.Text.Format(GameCore.Localization.GetString(300015), GameCore.Localization.GetString(cultrueTreeData.string_id)),
                                              (cultureTreeID) =>
                        {
                            // check remain time again
                            var remainTime2 = GameCore.NetData.GetRemainTime(NetDataComponent.TechEnchantID);
                            if (remainTime2 == null || remainTime2.Value > 0)
                            {
                                // 關閉建築清單,前往文明樹介面,並且焦點為對應的文明樹ID
                                GameCore.Event.Fire(null, ChangeStateEventArgs.Create(typeof(WorldMapCultureTree), cultureTreeID));
                            }
                            else
                            {
                                // 採收科技
                                GameCore.NetData.SendLearnTech((int)cultureTreeID, NE_LearnTechC.Types.EOperate.EGet);
                            }
                        },
                                              cultrueTreeData.Id,
                                              null, null,
                                              GameCore.Localization.GetString(20),
                                              GameCore.Localization.GetString(21));
                        return(false);
                    }
                    else
                    {
                        // 有已經完成的科技待採收
                        UIComfirm.ShowComfirm(GameCore.Localization.GetString(300014),
                                              Utility.Text.Format(GameCore.Localization.GetString(300016), GameCore.Localization.GetString(cultrueTreeData.string_id)),
                                              (cultureTreeID) =>
                        {
                            // 採收科技, 收取後前往文明樹頁面檢視
                            GameCore.NetData.SendLearnTech((int)cultureTreeID, NE_LearnTechC.Types.EOperate.EGet);
                        },
                                              cultrueTreeData.Id,
                                              null, null,
                                              GameCore.Localization.GetString(300017),
                                              GameCore.Localization.GetString(21));
                        return(false);
                    }
                }

                if (buildCost > nonUsingCost)
                {
                    // 人口需求超出上限,文明樹的研發可提昇人口數量
                    WorldSystems.MsgSys.AddPersonalMsg(GameCore.Localization.GetString(300056));
                    return(false);
                }

                if (buildData.IsMainBuilding)
                {
                    // check 當前建物建築最大數量
                    if (GameCore.NetData.GetBuildingCount(buildData.Id) >= buildData.max)
                    {
                        // 已達最大可建設數量
                        WorldSystems.MsgSys.AddPersonalMsg(GameCore.Localization.GetString(300010));
                        return(false);
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 9
0
        public static ChangeStateEventArgs <T> GetArgs(T Entity, State <T> NewState, bool TrackPrevious, bool ExitPrevious)
        {
            var args = new ChangeStateEventArgs <T>(Entity, NewState, TrackPrevious, ExitPrevious);

            return(args);
        }