internal async ValueTask StartedAsync() { if (GameState == GameStates.Starting) { for (var i = 0; i < _players.Values.Count; i++) { var player = _players.Values.ElementAt(i); await player.Character !.NetworkTransform.SetPositionAsync(player, MapSpawn.Maps[Options.Map].GetSpawnLocation(i, PlayerCount, true), Vector2.Zero); } GameState = GameStates.Started; await _eventManager.CallAsync(new GameStartedEvent(this)); } }
internal async ValueTask StartedAsync() { if (GameState == GameStates.Starting) { foreach (var player in _players.Values) { player.Character?.NetworkTransform.OnPlayerSpawn(); await player.Character !.NetworkTransform.SetPositionAsync(player, GameNet.ShipStatus !.GetSpawnLocation(player.Character, PlayerCount, true), Vector2.Zero); } GameState = GameStates.Started; await _eventManager.CallAsync(new GameStartedEvent(this)); } }