public IEnumerator FollowPath(IList <Vector3> path, MapDimensions dimensions) { var pathIndex = 0; var previousPoint = MathUtils.Round(transform.position); _view.State = CombatantState.Running; while (pathIndex < path.Count) { var currentDestination = MathUtils.Round(path[pathIndex]); _view.Facing = MathUtils.DirectionTo(previousPoint, currentDestination); var secondsPerSquare = _view.SecondsPerSquare; yield return(transform .DOMove(currentDestination, secondsPerSquare) .SetEase(Ease.Linear) .WaitForCompletion()); var mapPosition = dimensions.GetGridPositionForWorldPosition(currentDestination); SquareReachedSignal.Dispatch(mapPosition); pathIndex++; previousPoint = currentDestination; } _view.State = CombatantState.Idle; }
public MapConfiguration(MapDimensions dimensions, IMap map, ICombatantDatabase combatantDatabase, int chapterNumber, string id) { Dimensions = dimensions; Map = map; Combatants = combatantDatabase; ChapterNumber = chapterNumber; Id = id; }