Exemple #1
0
        /// <summary> Строит массив матчей, пополняет на их основе конвейер и запускает его. </summary>
        /// <param name="engine"></param>
        /// <param name="trace">
        ///     Если этот параметр выставлен в какой-нибудь не null то все матчи и состояние движка после
        ///     пополнения пайплайна будет скинуто в дебаг.
        /// </param>
        /// <param name="model"></param>
        public virtual void Applay(IGameStateModel model, AbstractPipelineEngine engine, string trace = null)
        {
            Execute(model, engine);
            if (ExtremeCrutch != null)
            {
                trace         = ExtremeCrutch;
                ExtremeCrutch = null;
            }

            engine.PipelineStageExecuted = entity => Array.ForEach(entity, e => model.AddEntity(e));
            // Кинем в трейс всю кучу матчей для общего образования.
            engine.ExecuteAll();
        }
 /// <summary> Само по себе правило новых стэйджей не создаёт </summary>
 public void CreatePipeline(IGameStateModel model, AbstractPipelineEngine engine)
 {
     engine.PipelineStageExecuted = entity => Array.ForEach(entity, e => model.AddEntity(e));
     Childs.Execute(model, engine);
     engine.СonditionExecute(s => Childs.RuleList.Contains(s.Producer));
 }