public BouncingX(float start, float end, float duration, BaseEntityIA entity) : base(entity, duration) { Start = start; End = end; Length = End - Start; }
public Path(BaseEntityIA entity, float duration, float distance, IEnumerable <Position> positions) : base(entity, duration) { Positions = new List <Position>(positions.Prepend(entity.Position)); Sections = new List <(Position start, Position end, float timeStart, float timeEnd)>(Positions.Count); var previous = 0f; foreach (var(first, second) in EnumerateBy2(Positions.Append(Positions[0]))) { Sections.Add((first, second, previous, (previous += first.DistanceWith(second) / distance * duration))); }
public Circle(BaseEntityIA entity, float duration, Position center) : base(entity, duration) { Center = center; StartPosition = entity.Position; }
public BaseIA(BaseEntityIA entity) { Entity = entity; }
public BaseMovingIA(BaseEntityIA entity, float duration) : base(entity) { TotalDuration = duration; }