public void CharacterMovesInSegmentedMode_CharacterMovesEachSegmentBasedOnTotalMovementPerTurnDividedByTwelve() { Run.Inches = 18; RunManuever.SegmentMovementMode = true; SequenceTimer watchEachSeqgmentforRunning = new SequenceTimer (DurationUnit.Segment, 1, Sequence, Timing.Start, 6); int segmentWatching = 0; RunManuever.InchesMovingThisPhase = 18; int inchesPerSegment = RunManuever.InchesMovingThisPhase * Character.SPD.CurrentValue / Character.NextPhase.SegmentPartOf.Number; int next = 2; watchEachSeqgmentforRunning.TimerAction += delegate(SequenceTimer seq) { segmentWatching++; Assert.AreEqual(segmentWatching, Sequence.ActiveSegment.Number); // Assert.AreEqual(inchesPerSegment * segmentWatching, Run.InchesMovingThisPhase - Run.InchesMovingThisPhaseNotYetUsed); if (segmentWatching == next) { seq.KillTimer(); } }; watchEachSeqgmentforRunning.StartTimer(); RunManuever.Perform(); Run.RaceForward(); }
private void startTimerThatMovesCharacterEachSegment() { int segmentsUntilnextPhase = Character.NextPhase.SegmentPartOf.Number - Character.ActivePhase.SegmentPartOf.Number; SequenceTimer timer = new SequenceTimer (DurationUnit.Segment, segmentsUntilnextPhase, Character.CombatSequence); timer.TimerAction += delegate(SequenceTimer t) { move(); updateMovementAllowanceAndNotifyMovementManueverOfCompletion(); }; timer.StartTimer(); }
public ListDialogBase(ConsoleApplication app, IEnumerable <T> source) { timer = new SequenceTimer(SetFilterstringCore); InsertControl(0, list = CreateListView()); InsertControl(1, filter = new ReadLineOverlay() { ForegroundColor = ConsoleColor.Yellow, BackgroundColor = ConsoleColor.DarkBlue }); list.Source = source; filter.CursorChanged += Filter_CursorChanged; filter.TextChanged += Filter_TextChanged; Filter_CursorChanged(filter, EventArgs.Empty); Application = app ?? throw new ArgumentNullException(nameof(app)); } // ctor