public void PreserveViewModels([NotNull] IDataContext context)
        {
            Should.NotBeNull(context, "context");
            context.Remove(ViewModelState);
            if (ItemsSource.Count == 0)
            {
                return;
            }
            var states = new StateList {
                State = new List <IDataContext>()
            };

            for (int index = 0; index < ItemsSource.Count; index++)
            {
                var viewModel = ItemsSource[index];
                states.State.Add(ViewModelProvider.PreserveViewModel(viewModel, DataContext.Empty));
                if (ReferenceEquals(viewModel, SelectedItem))
                {
                    context.AddOrUpdate(SelectedIndex, index);
                }
            }
            if (states.State.Count != 0)
            {
                context.AddOrUpdate(ViewModelState, states);
            }
        }
Esempio n. 2
0
        public CommandViewModel()
        {
            this.StateList  = new ObservableCollection <StateViewModel>();
            CurrentStateNum = 0;

            DeleteStateCommand = new RelayCommand <StateViewModel>((state) =>
            {
                StateList.Remove(state);
            });

            AddSuccessStateCommand = new RelayCommand(() =>
            {
                var vm  = new SuccessStateViewModel();
                vm.Name = "State" + GetStateMaxNum();
                this.StateList.Add(vm);
            });

            AddScriptStateCommand = new RelayCommand(() =>
            {
                var vm  = new ScriptStateViewModel();
                vm.Name = "State" + GetStateMaxNum();
                this.StateList.Add(vm);
            });

            AddProtocolStateCommand = new RelayCommand(() =>
            {
                var vm  = new ProtocolStateViewModel();
                vm.Name = "State" + GetStateMaxNum();
                this.StateList.Add(vm);
            });

            UniqueId = Guid.NewGuid().ToString();
        }
    private void GetCurrentRess()
    {
        Ress = new StateList <Res>();

        if (_excellent == null)
        {
            _excellent             = new Excellent();
            _excellent.DateCreated = DateTime.Now.AddHours(-TrainSettings.Instance.Timezone);
        }
        foreach (Res item in _excellent.Ress)
        {
            Ress.Add(item);
        }


        //foreach (Res titem in _excellent.TempAddRess.Keys)
        //{
        //    if (_excellent.TempAddRess[titem] == "add")
        //    {
        //        Ress.Add(titem);

        //    }
        //    else
        //    {
        //        Ress.Remove(titem);

        //    }
        //}
        //Ress = _excellent.Ress;
    }
Esempio n. 4
0
 /**
  * Initialize combo box values
  */
 private void MainForm_Load(object sender, EventArgs e)
 {
     try
     {
         _presenter = new OrganizationSearchPresenter(this);
         pdgvResults.PagedDataProvider = _presenter;
         OrganizationTypeList orgTypes = _presenter.GetOrganizationTypes().Result;
         cmbOrgType.Items.Add("All Organization Types");
         foreach (OrganizationType orgType in orgTypes.OrganizationTypes)
         {
             cmbOrgType.Items.Add(orgType);
         }
         cmbOrgType.SelectedIndex = 0;
         StateList states = _presenter.GetStates().Result;
         cmbState.Items.Add("All States");
         foreach (State state in states.States)
         {
             cmbState.Items.Add(state);
         }
         cmbState.SelectedIndex = 0;
     }
     catch (AggregateException aex)
     {
         HandleAggregateException(aex);
     }
     catch (Exception ex)
     {
         HandleGeneralException(ex);
     }
 }
Esempio n. 5
0
 public List<string> LoadContactStatesFromString(StateList contactStates, string dataString)
 {
     List<string> errorMsg = new List<string>();
     char[] separator = new char[] { ' ', '\n', '\r', '\t' };
     string[] strArray = dataString.Split(separator, StringSplitOptions.RemoveEmptyEntries);
     this.ContactStates.Clear();
     try
     {
         foreach (string str in strArray)
         {
             State gameObject = contactStates.GetGameObject(int.Parse(str)) as State;
             if (gameObject != null)
             {
                 this.ContactStates.Add(gameObject);
             }
             else
             {
                 errorMsg.Add("州域ID" + str + "不存在");
             }
         }
     }
     catch
     {
         errorMsg.Add("连接州域一栏应为半型空格分隔的州域ID");
     }
     return errorMsg;
 }
        /// <summary>
        /// Initialize a new quality table which contains all game stats.
        /// </summary>
        public QualityTable()
        {
            this.Epsilon = 0.2;
            this.Alpha   = 0.1;
            this.Gamma   = 0.1;

            this.StateList = new List <State>();

            //fill state list for hard hands
            for (int playerValue = 4; playerValue <= 22; playerValue++)
            {
                for (int dealerValue = 2; dealerValue <= 22; dealerValue++)
                {
                    StateList.Add(new State(playerValue, dealerValue, false));
                }
            }

            //fill state list for soft hands
            for (int playerValue = 12; playerValue <= 22; playerValue++)
            {
                for (int dealerValue = 2; dealerValue <= 22; dealerValue++)
                {
                    StateList.Add(new State(playerValue, dealerValue, true));
                }
            }
        }
    public SummaryFilterInfo()
    {
        var stateList = new StateList();

        States         = new List <State>();
        StateSelection = stateList.GetAllStates();
    }
Esempio n. 8
0
        public void LoadData()
        {
            DeptList        = SharedPreference.Instance.DeptList;
            RankList        = SharedPreference.Instance.RankList;
            StaffName       = SharedPreference.Instance.SelectedStaff.STAFF_NAME;
            StaffAddress    = SharedPreference.Instance.SelectedStaff.STAFF_ADDRESS;
            StaffTel        = SharedPreference.Instance.SelectedStaff.STAFF_TEL;
            StaffJoinDayStr = SharedPreference.Instance.SelectedStaff.STAFF_JOIN_DAY;
            StaffJoinDay    = DateTime.ParseExact(StaffJoinDayStr, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
            if ((SharedPreference.Instance.SelectedStaff.STAFF_RETIREMENT_DAY != "" || SharedPreference.Instance.SelectedStaff.STAFF_RETIREMENT_DAY.Length != 0) && SharedPreference.Instance.SelectedStaff.STAFF_RETIREMENT_DAY != null)
            {
                StaffRetirementDayStr = SharedPreference.Instance.SelectedStaff.STAFF_RETIREMENT_DAY;
                StaffRetirementDay    = DateTime.ParseExact(StaffRetirementDayStr, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
            }
            StaffState = SharedPreference.Instance.SelectedStaff.STAFF_STATE;

            var deptList = SharedPreference.Instance.DeptList.Where(p => p.DEPT_CODE == SharedPreference.Instance.SelectedStaff.STAFF_DEPT).FirstOrDefault();

            SelectedDeptIndex = SharedPreference.Instance.DeptList.IndexOf(deptList);

            var rankList = SharedPreference.Instance.RankList.Where(p => p.RANK_CODE == SharedPreference.Instance.SelectedStaff.STAFF_RANK).FirstOrDefault();

            SelectedRankIndex = SharedPreference.Instance.RankList.IndexOf(rankList);

            var stateList = StateList.Where(p => p == SharedPreference.Instance.SelectedStaff.STAFF_STATE).FirstOrDefault();

            StateIndex = StateList.IndexOf(stateList);
        }
Esempio n. 9
0
        /// <summary>
        /// Adds the new state.
        /// </summary>
        /// <param name="stateName">Name of the state.</param>
        /// <param name="stateIdentifier">The state identifier.</param>
        /// <returns></returns>
        public virtual IStateMachineStateBuilder AddNewState(string stateName, object stateIdentifier)
        {
            var newState = new StateMachineState(this, stateName, stateIdentifier);

            StateList.Add(newState);
            return(newState);
        }
Esempio n. 10
0
    public override StateList Simulate(StateList world, StateList goal)
    {
        StateList simulated = (StateList)world.Clone();

        simulated.SetState("IsPatrolling", 1.0f);
        return(simulated);
    }
Esempio n. 11
0
    protected void StateBind()
    {
        List <WMGoodState> list = WMGoodState.GetList();

        StateList.DataSource = list;
        StateList.DataBind();
    }
Esempio n. 12
0
        public CombatGameState(FusionGame game)
            : base(game)
        {
            InitializeComponent();

            _gameState = StateList.Countdown;
            _wave = 1;
            _playerLives = 3;
            _countdownTimer = 5000;

            var graphics = (GraphicsDeviceManager) game.Services.GetService(typeof (IGraphicsDeviceManager));

            _playerShip = new PlayerShip(game.Services);
            _playerShip.Initialize();
            _playerShip.X = graphics.GraphicsDevice.Viewport.TitleSafeArea.Width/2.0F;
            _playerShip.Y = graphics.GraphicsDevice.Viewport.TitleSafeArea.Height - 200;

            Components.Add(_playerShip);

            var input = (InputManager) game.Services.GetService(typeof (IInputService));
            input.GetKeyboard().KeyPressed += KeyPressed;
            input.GetKeyboard().KeyReleased += KeyReleased;

            _combatPlayerDialog.SetPlayerLives(_playerLives);
        }
Esempio n. 13
0
        /// <summary>
        /// Transition to a new state
        /// </summary>
        /// <param name="transition"></param>
        protected virtual void ExecuteTransition(Transition transition)
        {
            // Default checking, if this is a valid transition.
            if (CurrentState.StateName != transition.SourceStateName)
            {
                var message = string.Format(
                    "Transition has wrong source state {0}, when system is in {1}",
                    transition.SourceStateName, CurrentState.StateName);
                RaiseStateMachineSystemEvent(
                    "State machine: Default guard execute transition.",
                    message);
                return;
            }
            if (StateList.ContainsKey(transition.TargetStateName) == false)
            {
                var message = string.Format(
                    "Transition has wrong target state {0}, when system is in {1}. State not in global state list",
                    transition.SourceStateName, CurrentState.StateName);
                RaiseStateMachineSystemEvent(
                    "State machine: Default guard execute transition.",
                    message);
                return;
            }

            // Run all exit actions of the old state
            CurrentState.ExitActions.ForEach(a => a.Execute());

            // Run all guards of the transition
            transition.GuardList.ForEach(g => g.Execute());
            string info =
                transition.GuardList.Count + " guard actions executed!";

            RaiseStateMachineSystemEvent(
                "State machine: ExecuteTransition", info);

            // Run all actions of the transition
            transition.TransitionActionList.ForEach(a => a.Execute());

            //////////////////
            // Stage change
            //////////////////
            info = transition.TransitionActionList.Count +
                   " transition actions executed!";
            RaiseStateMachineSystemEvent(
                "State machine: Begin state change!", info);

            // First resolve the target state with the help of its name
            var targetState =
                GetStateFromStateList(transition.TargetStateName);

            // Transition successful - Change state
            PreviousState = CurrentState;
            CurrentState  = targetState;

            // Run all entry actions of new state
            CurrentState.EntryActions.ForEach(a => a.Execute());
            RaiseStateMachineSystemEvent(
                "State machine: State change completed successfully!",
                $"Previous state: {PreviousState.StateName} - New state = {CurrentState.StateName}");
        }
Esempio n. 14
0
        public EmployeeInfoViewModel(EmployeeInformationEdit employeeInfo)
        {
            Employee  = employeeInfo;
            IsEditing = false;

            States = StateList.GetStateList();
        }
Esempio n. 15
0
        ///--------------------------------------------------------------------------------
        /// <summary>This method disposes of resources in the model.</summary>
        ///--------------------------------------------------------------------------------
        protected override void OnDispose()
        {
            if (ReverseInstance != null)
            {
                ReverseInstance.Dispose();
                ReverseInstance = null;
            }
            if (ForwardInstance != null)
            {
                ForwardInstance.Dispose();
                ForwardInstance = null;
            }
            Entity   = null;
            Solution = null;
            if (_stateList != null)
            {
                foreach (State item in StateList)
                {
                    item.Dispose();
                }
                StateList.Clear();
                StateList = null;
            }

            #region protected
            #endregion protected

            base.OnDispose();
        }
Esempio n. 16
0
 public EventHandler(IForm form, Image image)
 {
     figureManager  = new VectorEditorCore.FigureManager(form, image);
     stateContainer = new StateContainer();
     stateList      = new StateList(stateContainer, figureManager);
     command        = new Command(stateList, stateContainer, figureManager);
 }
        public List <string> LoadStatesFromString(StateList states, string dataString)
        {
            List <string> errorMsg = new List <string>();

            char[]   separator = new char[] { ' ', '\n', '\r', '\t' };
            string[] strArray  = dataString.Split(separator, StringSplitOptions.RemoveEmptyEntries);
            this.States.Clear();
            try
            {
                foreach (string str in strArray)
                {
                    State gameObject = states.GetGameObject(int.Parse(str)) as State;
                    if (gameObject != null)
                    {
                        this.States.Add(gameObject);
                        gameObject.LinkedRegion = this;
                    }
                    else
                    {
                        errorMsg.Add("州域ID" + str + "不存在");
                    }
                }
            }
            catch
            {
                errorMsg.Add("州域一栏应为半型空格分隔的州域ID");
            }
            return(errorMsg);
        }
Esempio n. 18
0
    public override IEnumerable DoAction(StateList world, StateList goal, GameObject actor)
    {
        // Find the nearest patrol point
        int   nextPatrolIdx         = 0;
        float closestPatrolDistance = Mathf.Infinity;

        for (int i = 0; i < PatrolPositions.Length; ++i)
        {
            float sqDist = Vector3.Distance(actor.transform.position, PatrolPositions[i]);
            if (sqDist < closestPatrolDistance)
            {
                closestPatrolDistance = sqDist;
                nextPatrolIdx         = i;
            }
        }

        while (goal.GetState("IsPatrolling") != 0.0f)
        {
            // Walk to the next patrol point in order
            Vector3 position = PatrolPositions[nextPatrolIdx];
            actor.GetComponent <NavMeshAgent>().SetDestination(position);
            yield return(new WaitUntil(() =>
                                       goal.GetState("IsPatrolling") != 0.0f ||
                                       actor.GetComponent <NavMeshAgent>().remainingDistance < 1.0f));
        }

        yield return(null);
    }
Esempio n. 19
0
        /// <summary>
        /// コンストラクタ
        /// 使用するステートクラスをここで先に生成しておき、最初のステートを設定する
        /// (unityで複数のオブジェクトにアタッチされることを考慮して、シングルトンを使用せずに実装)
        /// </summary>
        public Character()
        {
            StateList.Add(new leftState());
            StateList.Add(new rightState());

            ChangeState(StateList[(int)EState.EState_leftState]);
        }
Esempio n. 20
0
        /// <summary>
        /// MExchangeテーブルの設定内容で初期化する
        /// </summary>
        public void InitializeExchange()
        {
            // 初期化
            // 資産情報
            CollateralList = InitializeDictionary(CollateralList);

            // 注文情報
            ParentOrderList = InitializeDictionary(ParentOrderList);
            ChildOrderList  = InitializeDictionary(ChildOrderList);

            // 建玉情報
            PositionList = InitializeDictionary(PositionList);

            // 取引所状態情報
            StateList = InitializeDictionary(StateList);

            // テクニカル管理
            TechnicalList = InitializeDictionary(TechnicalList);

            // クライアント
            Client = InitializeDictionary(Client);

            // パラメータ読み込み
            using (var db = new MExchangeDbContext(DbContextOptions))
            {
                // データを取得
                var mExchange = db.MExchange;

                foreach (var item in mExchange)
                {
                    if (item.Enabled == Enabled)
                    {
                        // 資産情報
                        CollateralList.Add(item.Id, new Collateral(new RawCollateral()));

                        // 注文情報
                        ParentOrderList.Add(item.Id, new List <Order>());
                        ChildOrderList.Add(item.Id, new List <Order>());

                        // 建玉情報
                        PositionList.Add(item.Id, new List <Position>());

                        // 取引所状態情報
                        StateList.Add(item.Id, new RawBoardState());

                        // テクニカル管理生成
                        Dictionary <int, PubnubManager> pubnub = null;
                        if (PubnubList.ContainsKey(item.Id))
                        {
                            pubnub = PubnubList[item.Id];
                        }
                        TechnicalList.Add(item.Id, new TechnicalManager(item.Id, pubnub, TimeScaleList, DbContextOptions, TechnicalList));

                        // 通信用クライアント生成
                        Client.Add(item.Id, new BitflyerClient(item.Id, DbContextOptions));
                    }
                }
            }
        }
Esempio n. 21
0
 // Use this for initialization
 void Start()
 {
     if (instance != this)
     {
         Destroy(instance);
     }
     instance = this;
 }
Esempio n. 22
0
 public StateChange(StateListItem fromS, StateListItem toS, StateList li, bool a)
 {
     if (fromS.name == "" || toS.name == "") throw new Exception("cannot change to empty states");
                 fromState = fromS;
                 toState = toS;
                 list = li;
                 allowed = a;
 }
Esempio n. 23
0
 public HumanStateMachine(AbsEntity entity) : base(entity)
 {
     StateList.Add(new IdleState(this));
     StateList.Add(new MoveState(this));
     StateList.Add(new SkillState(this));
     StateList.Add(new SpecialState(this));
     StateList.Add(new DeadState(this));
 }
Esempio n. 24
0
        private void InitStateMachine()
        {
            PreviouState = _initialState;

            var state = StateList.FirstOrDefault(t => t.Value.IsDefaultState);

            CurrenState = state.Value;
            RaiseStateMachineSystemCommand("OnInit", "StateMachineInitialized");
        }
Esempio n. 25
0
            public void ReplaceAt(UInt32 tag, WireType wireType, IReader reader, bool shouldNotify)
            {
                switch (tag)
                {
                case 0: this.LogEntries = this.MaybeNotify(0, StateList <Byte> .Deserialize(reader, this.Path.GetNested(0)), this.LogEntries, OnLogEntriesUpdate, shouldNotify); break;

                default: reader.SkipField(wireType); break;
                }
            }
Esempio n. 26
0
            public void ReplaceAt(UInt16 tag, WireType wireType, Reader reader, bool shouldNotify)
            {
                switch (tag)
                {
                case 0: this.LogEntries = this.Notify(StateList <Byte> .Deserialize(reader.Nested(), this.Path.Nested(0)), this.LogEntries, shouldNotify, logEntriesListeners); break;

                default: reader.SkipWireTyped(wireType); break;
                }
            }
Esempio n. 27
0
        public override void SetUpImages()
        {
            //StateList.Add(0,StaticSpriteCache.sprites[17]);
            //StateList.Add(1,StaticSpriteCache.sprites[19]);
            //StateList.Add(2,StaticSpriteCache.sprites[18]);

            StateList.Add(0, StaticSpriteCache.sprites[75]);
            StateList.Add(1, StaticSpriteCache.sprites[77]);
            StateList.Add(2, StaticSpriteCache.sprites[79]);
        }
Esempio n. 28
0
    // Use this for initialization
    void Start()
    {
        //Утсановка параметров для актера
        acterManager   = GetComponent <ActerManager>();
        raycastManager = GetComponent <RaycastManager>();

        acterManager.SetSpeed = speed;
        state = StateList.inactivity;

        StartCoroutine(StateRandom());
    }
Esempio n. 29
0
        public void ReplaceAt(UInt16 tag, WireType wireType, Reader reader, bool shouldNotify)
        {
            switch (tag)
            {
            case 0: this.Numbers = this.Notify(StateList <Int32> .Deserialize(reader.Nested(), this.Path.Nested(0)), this.Numbers, shouldNotify, numbersListeners); break;

            case 1: this.Others = this.Notify(FixedList <Int32> .Deserialize(reader.Nested(), this.Path.Nested(1)), this.Others, shouldNotify, othersListeners); break;

            default: reader.SkipWireTyped(wireType); break;
            }
        }
Esempio n. 30
0
 public ActionResult GetStateList(StateList model)
 {
     try
     {
         return(Json((new StateModel()).GetStateList(model), JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(new { error = ex.Message }, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 31
0
 public ActionResult BuildPaganationStateList(StateList model)
 {
     try
     {
         return(Json(new { NOP = (new StateModel()).BuildPaganationStateList(model) }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception ex)
     {
         return(Json(new { error = ex.Message }, JsonRequestBehavior.AllowGet));
     }
 }
Esempio n. 32
0
 public int FindStateIndex(int att, int phase)
 {
     for (int i = 0; i < StateList.Count(); i++)
     {
         if (StateList[i].Att == att && StateList[i].Phase == phase)
         {
             return(i);
         }
     }
     return(-1);
 }
Esempio n. 33
0
        public void ReplaceAt(UInt32 tag, WireType wireType, IReader reader, bool shouldNotify)
        {
            switch (tag)
            {
            case 0: this.Numbers = this.MaybeNotify(0, StateList <Int32> .Deserialize(reader, this.Path.GetNested(0)), this.Numbers, OnNumbersUpdate, shouldNotify); break;

            case 1: this.Others = this.MaybeNotify(1, Vector <Int32> .Deserialize(reader, this.Path.GetNested(1)), this.Others, OnOthersUpdate, shouldNotify); break;

            default: reader.SkipField(wireType); break;
            }
        }
Esempio n. 34
0
 // Update is called once per frame
 void OnTriggerEnter(Collider _oth)
 {
     if (_oth.CompareTag("Player") == true && State != StateList.Picked)
     {
         State = StateList.Picked;
         Player pl = _oth.GetComponent<Player>();
         pl.lootStack(stackValue);
         pl._levMan.tools.lootStack(stackValue);
         pl._levMan.tools.checkLevelCompletion();
         pl.triggerNotification(stackValue * 1);
         Fade();
     }
 }
Esempio n. 35
0
 public void LoadStatesFromString(StateList states, string dataString)
 {
     char[] separator = new char[] { ' ', '\n', '\r' };
     string[] strArray = dataString.Split(separator, StringSplitOptions.RemoveEmptyEntries);
     this.States.Clear();
     foreach (string str in strArray)
     {
         State gameObject = states.GetGameObject(int.Parse(str)) as State;
         if (gameObject != null)
         {
             this.States.Add(gameObject);
             gameObject.LinkedRegion = this;
         }
     }
 }
Esempio n. 36
0
 public void checkFloor()
 {
     if (currFloor != null)
     {
         if (currFloor.objOnFloor.Contains(_plr.gameObject))
         {
             State = StateList.Chasing;
             target = _levman.plr.transform.position;
         }
         else
         {
             State = StateList.Patrolling;
             target = Vector3.zero;
         }
     }
 }
Esempio n. 37
0
    internal static StateList[][] ReturnRectangularStateListArray(int Size1, int Size2)
    {
        StateList[][] Array;
        if (Size1 > -1)
        {
            Array = new StateList[Size1][];
            if (Size2 > -1)
            {
                for (int Array1 = 0; Array1 < Size1; Array1++)
                {
                    Array[Array1] = new StateList[Size2];
                }
            }
        }
        else
            Array = null;

        return Array;
    }
Esempio n. 38
0
				public StateListItem (string n, StateList l)
				{
						name = n;
						list = l;
				}
Esempio n. 39
0
 private void Respawn()
 {
     if (this != null)
     {
         State = StateList.Unpicked;
         GetComponent<BoxCollider>().enabled = true;
         spr.alpha = 1f;
         spr.speed = 1f;
         spr.looping = true;
         spr.Play("static");
     }
 }
Esempio n. 40
0
 void setRun()
 {
     stopTimer = 0;
     State = StateList.Running;
     maxSpeed = 4f;
     Anims.Play("run");
     Parts.Play();
 }
Esempio n. 41
0
 void setStop()
 {
     stopTimer = 0;
     State = StateList.Stopped;
     maxSpeed = 0f;
     Anims.Play("idle");
     Parts.Stop();
     Recovering = true;
 }
Esempio n. 42
0
 public State(string name, string itemName)
 {
     list = StateList.GetList (name);
                 myState = list.Item (itemName);
 }
Esempio n. 43
0
 public State(string name)
 {
     list = StateList.GetList (name);
                 myState = list.First ();
 }
Esempio n. 44
0
 void setWalk()
 {
     stopTimer = 0;
     State = StateList.Walking;
     maxSpeed = 2f;
     Anims.Play("walk");
     Parts.Play();
 }
Esempio n. 45
0
 private void GameOver()
 {
     State = StateList.CutScene;
     CancelInvoke("randomSpawn");
 }
Esempio n. 46
0
 internal StateListNode(State q, StateList sl)
 {
     this.q = q;
     this.Sl = sl;
     if (sl.Size++ == 0)
     {
         sl.First = sl.Last = this;
     }
     else
     {
         sl.Last.Next = this;
         Prev = sl.Last;
         sl.Last = this;
     }
 }
Esempio n. 47
0
        /// <summary>
        /// Minimizes the given automaton using Hopcroft's algorithm.
        /// </summary>
        public static void MinimizeHopcroft(Automaton a)
        {
            a.Determinize();
            if (a.Initial.numTransitions == 1)
            {
                Transition t = a.Initial.TransitionsArray[0];
                if (t.To == a.Initial && t.Min_Renamed == Character.MIN_CODE_POINT && t.Max_Renamed == Character.MAX_CODE_POINT)
                {
                    return;
                }
            }
            a.Totalize();

            // initialize data structures
            int[] sigma = a.StartPoints;
            State[] states = a.NumberedStates;
            int sigmaLen = sigma.Length, statesLen = states.Length;
            List<State>[,] reverse = new List<State>[statesLen, sigmaLen];
            HashSet<State>[] partition = new HashSet<State>[statesLen];
            List<State>[] splitblock = new List<State>[statesLen];
            int[] block = new int[statesLen];
            StateList[,] active = new StateList[statesLen, sigmaLen];
            StateListNode[,] active2 = new StateListNode[statesLen, sigmaLen];
            LinkedList<IntPair> pending = new LinkedList<IntPair>();
            BitArray pending2 = new BitArray(sigmaLen * statesLen);
            BitArray split = new BitArray(statesLen), refine = new BitArray(statesLen), refine2 = new BitArray(statesLen);
            for (int q = 0; q < statesLen; q++)
            {
                splitblock[q] = new List<State>();
                partition[q] = new HashSet<State>();
                for (int x = 0; x < sigmaLen; x++)
                {
                    active[q, x] = new StateList();
                }
            }
            // find initial partition and reverse edges
            for (int q = 0; q < statesLen; q++)
            {
                State qq = states[q];
                int j = qq.accept ? 0 : 1;
                partition[j].Add(qq);
                block[q] = j;
                for (int x = 0; x < sigmaLen; x++)
                {
                    //List<State>[] r = reverse[qq.Step(sigma[x]).number];
                    var r = qq.Step(sigma[x]).number;
                    if (reverse[r, x] == null)
                    {
                        reverse[r, x] = new List<State>();
                    }
                    reverse[r, x].Add(qq);
                }
            }
            // initialize active sets
            for (int j = 0; j <= 1; j++)
            {
                for (int x = 0; x < sigmaLen; x++)
                {
                    foreach (State qq in partition[j])
                    {
                        if (reverse[qq.number, x] != null)
                        {
                            active2[qq.number, x] = active[j, x].Add(qq);
                        }
                    }
                }
            }
            // initialize pending
            for (int x = 0; x < sigmaLen; x++)
            {
                int j = (active[0, x].Size <= active[1, x].Size) ? 0 : 1;
                pending.AddLast(new IntPair(j, x));
                pending2.Set(x * statesLen + j, true);
            }
            // process pending until fixed point
            int k = 2;
            while (pending.Count > 0)
            {
                IntPair ip = pending.First.Value;
                pending.RemoveFirst();
                int p = ip.N1;
                int x = ip.N2;
                pending2.Set(x * statesLen + p, false);
                // find states that need to be split off their blocks
                for (StateListNode m = active[p, x].First; m != null; m = m.Next)
                {
                    List<State> r = reverse[m.q.number, x];
                    if (r != null)
                    {
                        foreach (State s in r)
                        {
                            int i = s.number;
                            if (!split.Get(i))
                            {
                                split.Set(i, true);
                                int j = block[i];
                                splitblock[j].Add(s);
                                if (!refine2.Get(j))
                                {
                                    refine2.Set(j, true);
                                    refine.Set(j, true);
                                }
                            }
                        }
                    }
                }
                // refine blocks
                for (int j = Number.NextSetBit(refine, 0); j >= 0; j = Number.NextSetBit(refine, j + 1))
                {
                    List<State> sb = splitblock[j];
                    if (sb.Count < partition[j].Count)
                    {
                        HashSet<State> b1 = partition[j];
                        HashSet<State> b2 = partition[k];
                        foreach (State s in sb)
                        {
                            b1.Remove(s);
                            b2.Add(s);
                            block[s.number] = k;
                            for (int c = 0; c < sigmaLen; c++)
                            {
                                StateListNode sn = active2[s.number, c];
                                if (sn != null && sn.Sl == active[j, c])
                                {
                                    sn.Remove();
                                    active2[s.number, c] = active[k, c].Add(s);
                                }
                            }
                        }
                        // update pending
                        for (int c = 0; c < sigmaLen; c++)
                        {
                            int aj = active[j, c].Size, ak = active[k, c].Size, ofs = c * statesLen;
                            if (!pending2.Get(ofs + j) && 0 < aj && aj <= ak)
                            {
                                pending2.Set(ofs + j, true);
                                pending.AddLast(new IntPair(j, c));
                            }
                            else
                            {
                                pending2.Set(ofs + k, true);
                                pending.AddLast(new IntPair(k, c));
                            }
                        }
                        k++;
                    }
                    refine2.Set(j, false);
                    foreach (State s in sb)
                    {
                        split.Set(s.number, false);
                    }
                    sb.Clear();
                }
                refine.SetAll(false);
            }
            // make a new state for each equivalence class, set initial state
            State[] newstates = new State[k];
            for (int n = 0; n < newstates.Length; n++)
            {
                State s = new State();
                newstates[n] = s;
                foreach (State q in partition[n])
                {
                    if (q == a.Initial)
                    {
                        a.Initial = s;
                    }
                    s.accept = q.accept;
                    s.number = q.number; // select representative
                    q.number = n;
                }
            }
            // build transitions and set acceptance
            for (int n = 0; n < newstates.Length; n++)
            {
                State s = newstates[n];
                s.accept = states[s.number].accept;
                foreach (Transition t in states[s.number].Transitions)
                {
                    s.AddTransition(new Transition(t.Min_Renamed, t.Max_Renamed, newstates[t.To.number]));
                }
            }
            a.ClearNumberedStates();
            a.RemoveDeadTransitions();
        }
    private void GetCurrentRess()
    {
        Ress = new StateList<Res>();

        if (_excellent == null)
        {
            _excellent = new Excellent();
            _excellent.DateCreated = DateTime.Now.AddHours(-TrainSettings.Instance.Timezone);

        }
        foreach (Res item in _excellent.Ress)
        {
            Ress.Add(item);
        }

        //foreach (Res titem in _excellent.TempAddRess.Keys)
        //{
        //    if (_excellent.TempAddRess[titem] == "add")
        //    {
        //        Ress.Add(titem);

        //    }
        //    else
        //    {
        //        Ress.Remove(titem);

        //    }
        //}
        //Ress = _excellent.Ress;
    }
Esempio n. 49
0
 private void SetSectionAIDetail_OLD()
 {
     Faction faction;
     int num2;
     int threat;
     GameObjectList sectionNoOrientationAutoAIDetailsByConditions;
     int num5;
     GameObjectList list5;
     if (this.SectionCount <= 1)
     {
         num5 = ((this.FirstSection.ArchitectureScale / 2) - (this.FirstSection.ArchitectureCount / 2)) + 1;
         if (this.ArmyScale < (num5 * 6))
         {
             if (!this.Capital.IsOK())
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.无, true, false, false, false, false);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             else
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(false, true);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             return;
         }
         if (this.ArmyScale < (num5 * 12))
         {
             if (!this.Capital.IsOK())
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.无, true, false, false, false, false);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             else
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(false, true);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             return;
         }
         if (this.ArmyScale < (num5 * 20))
         {
             if (!this.Capital.IsOK())
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.无, true, false, false, false, false);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             else
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(true, true);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
             }
             return;
         }
         if (this.ArmyScale >= (num5 * 30))
         {
             if (!this.Capital.IsGood())
             {
                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(true, false);
                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                 {
                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                 }
                 return;
             }
             faction = null;
             num2 = -2147483648;
             foreach (Faction faction2 in base.Scenario.Factions.GetRandomList())
             {
                 if (((faction2 != this) && !this.IsFriendly(faction2)) && (faction2.Capital != null))
                 {
                     threat = this.GetThreat(faction2);
                     if ((threat > num2) || GameObject.Chance(20))
                     {
                         num2 = threat;
                         faction = faction2;
                     }
                 }
             }
             if ((faction != null) && (this.FirstSection.OrientationFaction != faction))
             {
                 foreach (Architecture architecture in this.Architectures)
                 {
                     if (architecture.HasFactionInClose(faction, 1))
                     {
                         sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.势力, true, true, true, false, true);
                         if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                         {
                             this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                             this.FirstSection.OrientationFaction = faction;
                         }
                         break;
                     }
                 }
             }
             list5 = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
             if (list5.Count > 0)
             {
                 this.FirstSection.AIDetail = list5[GameObject.Random(list5.Count)] as SectionAIDetail;
                 if (this.Capital.LocationState.GetFactionScale(this) < 100)
                 {
                     this.FirstSection.OrientationState = this.Capital.LocationState;
                 }
                 else
                 {
                     this.FirstSection.OrientationState = this.Capital.LocationState.ContactStates[GameObject.Random(this.Capital.LocationState.ContactStates.Count)] as State;
                 }
             }
             return;
         }
         if (!this.Capital.IsGood())
         {
             sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(true, false);
             if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
             {
                 this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
             }
             return;
         }
         faction = null;
         num2 = -2147483648;
         foreach (Faction faction2 in this.GetUnderZeroDiplomaticRelationFactions().GetRandomList())
         {
             threat = this.GetThreat(faction2);
             if ((threat > num2) || GameObject.Chance(20))
             {
                 num2 = threat;
                 faction = faction2;
             }
         }
         if ((faction != null) && (this.FirstSection.OrientationFaction != faction))
         {
             foreach (Architecture architecture in this.Architectures)
             {
                 if (architecture.HasFactionInClose(faction, 1))
                 {
                     sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.势力, true, true, true, false, true);
                     if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                     {
                         this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                         this.FirstSection.OrientationFaction = faction;
                     }
                     break;
                 }
             }
         }
     }
     else
     {
         int num = (this.ArmyScale / 60) - (int)this.Leader.StrategyTendency;
         if (num <= 0)
         {
             foreach (Section section in this.Sections)
             {
                 if (section.AIDetail.OrientationKind == SectionOrientationKind.无)
                 {
                     Section section2;
                     num5 = this.FirstSection.ArchitectureScale - (this.FirstSection.ArchitectureCount / 2);
                     if (section.GetHostileScale() > 0)
                     {
                         if (section.ArmyScale > (num5 * 6))
                         {
                             foreach (Architecture architecture in section.Architectures)
                             {
                                 section2 = null;
                                 if (architecture.HasOffensiveSectionInClose(out section2, 1))
                                 {
                                     sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.军区, true, false, false, true, true);
                                     if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                                     {
                                         section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                                         section.OrientationSection = section2;
                                     }
                                     break;
                                 }
                             }
                             if (section.OrientationSection == null)
                             {
                                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(true, true);
                                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                                 {
                                     this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                                 }
                             }
                         }
                         else
                         {
                             sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(false, true);
                             if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                             {
                                 this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                             }
                         }
                     }
                     else if ((section.GetFrontScale() > 0) && (section.ArmyScale < (num5 * 6)))
                     {
                         sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(true, false);
                         if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                         {
                             this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                         }
                     }
                     else
                     {
                         foreach (Architecture architecture in section.Architectures)
                         {
                             section2 = null;
                             if (architecture.HasOffensiveSectionInClose(out section2, 1))
                             {
                                 sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.军区, true, false, false, false, false);
                                 if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                                 {
                                     section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                                     section.OrientationSection = section2;
                                 }
                                 break;
                             }
                         }
                         if (section.OrientationSection == null)
                         {
                             sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionNoOrientationAutoAIDetailsByConditions(false, false);
                             if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                             {
                                 this.FirstSection.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                             }
                         }
                     }
                 }
             }
             return;
         }
         faction = null;
         num2 = -2147483648;
         int num3 = 0;
         foreach (Faction faction2 in this.GetUnderZeroDiplomaticRelationFactions().GetRandomList())
         {
             threat = this.GetThreat(faction2);
             if ((threat > num2) || GameObject.Chance(20))
             {
                 num2 = threat;
                 faction = faction2;
             }
         }
         GameObjectList list = this.Sections.GetList();
         list.PropertyName = "ArmyScale";
         list.IsNumber = true;
         list.ReSort();
         if (faction != null)
         {
             foreach (Section section in list)
             {
                 if (section.ArmyScale < 0x19)
                 {
                     break;
                 }
                 foreach (Architecture architecture in section.Architectures)
                 {
                     if (architecture.HasFactionInClose(faction, 1))
                     {
                         sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.势力, true, true, true, false, true);
                         if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                         {
                             section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                             section.OrientationFaction = faction;
                             num3++;
                         }
                         break;
                     }
                 }
                 if (num3 >= num)
                 {
                     break;
                 }
             }
             return;
         }
         if (this.Capital.LocationState.GetFactionScale(this) < 100)
         {
             foreach (Section section in list)
             {
                 if (section.ArmyScale < 0x19)
                 {
                     break;
                 }
                 if (this.Capital.LocationState.GetSectionScale(section) >= 60)
                 {
                     sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
                     if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                     {
                         section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                         section.OrientationState = this.Capital.LocationState;
                         num3++;
                     }
                     if (num3 >= num)
                     {
                         break;
                     }
                 }
             }
             return;
         }
         if (this.Capital.LocationState.LinkedRegion.GetFactionScale(this) < 100)
         {
             foreach (Section section in list)
             {
                 if (section.ArmyScale < 0x19)
                 {
                     break;
                 }
                 if (this.Capital.LocationState.LinkedRegion.GetSectionScale(section) >= 60)
                 {
                     sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
                     if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                     {
                         section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                         foreach (Architecture architecture in section.Architectures)
                         {
                             if (architecture.LocationState.LinkedRegion == this.Capital.LocationState.LinkedRegion)
                             {
                                 section.OrientationState = architecture.LocationState;
                                 break;
                             }
                         }
                         num3++;
                     }
                     if (num3 >= num)
                     {
                         break;
                     }
                 }
             }
             return;
         }
         StateList list3 = new StateList();
         foreach (State state in this.Capital.LocationState.LinkedRegion.States)
         {
             foreach (State state2 in state.ContactStates)
             {
                 if ((state2.LinkedRegion != this.Capital.LocationState.LinkedRegion) && (state2.GetFactionScale(this) < 100))
                 {
                     list3.Add(state2);
                 }
             }
         }
         if (list3.Count > 0)
         {
             foreach (Section section in list)
             {
                 if (section.ArmyScale < 0x19)
                 {
                     break;
                 }
                 if (this.Capital.LocationState.LinkedRegion.GetSectionScale(section) >= 60)
                 {
                     sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
                     if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                     {
                         section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                         section.OrientationState = list3[GameObject.Random(list3.Count)] as State;
                         num3++;
                     }
                     if (num3 >= num)
                     {
                         break;
                     }
                 }
             }
         }
         if (num3 < num)
         {
             foreach (Section section in list)
             {
                 if (section.ArmyScale < 0x19)
                 {
                     return;
                 }
                 if (this.Capital.LocationState.LinkedRegion.GetSectionScale(section) <= 0)
                 {
                     Architecture maxPopulationArchitecture = section.MaxPopulationArchitecture;
                     if (maxPopulationArchitecture != null)
                     {
                         StateList list4 = new StateList();
                         foreach (State state3 in maxPopulationArchitecture.LocationState.ContactStates)
                         {
                             if ((state3.LinkedRegion != this.Capital.LocationState.LinkedRegion) && (state3.GetFactionScale(this) < 100))
                             {
                                 list4.Add(state3);
                             }
                         }
                         if (list4.Count > 0)
                         {
                             sectionNoOrientationAutoAIDetailsByConditions = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
                             if (sectionNoOrientationAutoAIDetailsByConditions.Count > 0)
                             {
                                 section.AIDetail = sectionNoOrientationAutoAIDetailsByConditions[GameObject.Random(sectionNoOrientationAutoAIDetailsByConditions.Count)] as SectionAIDetail;
                                 section.OrientationState = list4[GameObject.Random(list4.Count)] as State;
                                 num3++;
                             }
                             if (num3 >= num)
                             {
                                 return;
                             }
                         }
                     }
                 }
             }
         }
         return;
     }
     list5 = base.Scenario.GameCommonData.AllSectionAIDetails.GetSectionAIDetailsByConditions(SectionOrientationKind.州域, true, true, true, false, true);
     if (list5.Count > 0)
     {
         this.FirstSection.AIDetail = list5[GameObject.Random(list5.Count)] as SectionAIDetail;
         if (this.Capital.LocationState.GetFactionScale(this) < 100)
         {
             this.FirstSection.OrientationState = this.Capital.LocationState;
         }
         else
         {
             this.FirstSection.OrientationState = this.Capital.LocationState.ContactStates[GameObject.Random(this.Capital.LocationState.ContactStates.Count)] as State;
         }
     }
 }
 public void PreserveViewModels([NotNull] IDataContext context)
 {
     Should.NotBeNull(context, nameof(context));
     context.Remove(ViewModelState);
     if (ItemsSource.Count == 0)
         return;
     var states = new StateList { State = new List<IDataContext>() };
     for (int index = 0; index < ItemsSource.Count; index++)
     {
         var viewModel = ItemsSource[index];
         states.State.Add(ViewModelProvider.PreserveViewModel(viewModel, DataContext.Empty));
         if (ReferenceEquals(viewModel, SelectedItem))
             context.AddOrUpdate(SelectedIndex, index);
     }
     if (states.State.Count != 0)
         context.AddOrUpdate(ViewModelState, states);
 }
Esempio n. 51
0
 private void UpdateGameState(GameTime gametime)
 {
     switch(_gameState)
     {
         case StateList.Countdown:
             _countdownTimer -= gametime.ElapsedGameTime.Milliseconds;
             if(_countdownTimer <= 0)
             {
                 _gameState = StateList.Action;
             }
             break;
         case StateList.Action:
             break;
         case StateList.Shop:
             break;
         case StateList.Pause:
             break;
     }
 }