Example #1
0
        protected override void LogTeam(LogItem item)
        {
            CheckEnd(item.Time);

            PhaseTeamInfo pi = new PhaseTeamInfo(item)
            {
                When = item.Appear + item.Before + item.Wait + item.Work
            };

            Info.Add(pi);
        }
Example #2
0
 protected override void OnStart(Random r, LogItem item)
 {
     base.OnStart(r, item);
     item.Reject = false;    // на  нет снятий :)
 }
Example #3
0
 private void AddItem(LogItem item)
 {
     Process.Add(item);
     UpdateNext();
 }
Example #4
0
        // команда реально начала работать
        protected virtual void OnStart(Random r, LogItem item)
        {
            item.Wait = item.Time - item.Appear - item.Before;  // отсечку можно вычислить только по факту

            TimeSpan dur = NextMoment(r, item.Team);

            item.Reject = Times.Max != TimeSpan.Zero && dur > Times.Max;
            if (item.Reject)
                dur = Times.Max;

            item.Work = dur;

            item.evt.Time += dur;
            item.evt.EType = EventType.End;
            AddItem(item);
        }
Example #5
0
        // команда появляется на этапе
        protected virtual void OnAppear(Random r, CPEvent evt)
        {
            CheckStart(evt.Time);
            var item = new LogItem(evt);

            item.Before = Scale(Times.Before, item.Team.Smartness);     // !!!
            evt.EType = EventType.Start;
            evt.Time += item.Before;
            AddItem(item);
        }
Example #6
0
        protected virtual void LogTeam(LogItem item)
        {
            CheckEnd(item.Time);

            PhaseTeamInfo pi = new PhaseTeamInfo(item);
            Info.Add(pi);
        }
Example #7
0
 public void AddPhase(Phase p, LogItem item)
 {
     Info.Add(new TeamPhaseInfo(p, new BaseInfo(item), item.Before + item.After));
 }