private void CreateWalkers(MapWalkersRouter router, MapWalkerData data, Vector2Int position, int count) { for (var i = 0; i < count; i++) { router.CreateWalker(data, position); } }
private void UpdateWalkers(Map map, MapWalkersRouter router) { foreach (var walker in router.Walkers) { TryCreateMapObject(map, walker.Position); walker.MoveRandom(); } router.TryCreateWalker(_data.ChanceSpawnWalker, _data.WalkerData, _data.MaxWalkerCount); router.TryKillWalker(_data.ChanceKillWalker, _data.MinWalkerCount); }
private void CreateStepByStep(Map map) { _readerRouter = new MapWalkersRouter(map.Borders); CreateWalkers(_readerRouter, _readerData, _mapData.StartPosition, 4); var index = 0; foreach (var walker in _readerRouter.Walkers) { walker.Direction = _readerData.AvailableDirections[index]; index++; } StartCoroutine(Create(map)); }
public Map Create() { Random.InitState(10); var size = _data.GetMapSize(); var map = new Map(size); var maxCreatedObjects = _data.GetMaxObjectsCount(); var walkersBorders = new RectInt(Vector2Int.one, size - 2 * Vector2Int.one); var walkersRouter = new MapWalkersRouter(walkersBorders); _mapObjectsFactory = new MapObjectsFactory(_objects, map); CreateWalkers(walkersRouter, _data.WalkerData, _data.StartPosition, _data.InitWalkersCount); while (maxCreatedObjects > _createdObjects) { UpdateWalkers(map, walkersRouter); } return(map); }