public virtual void SpawnPlayer(PlayerController player, List <PlayerSpawnPosition> spawnPositions) { if (player.ControlledPlayer.NumLives - player.ControlledPlayer.NumDeaths <= 0) { player.InitializeForStartLevel(JailTransform.position, true); return; } int index = (int)(Random.value * (spawnPositions.Count - 1)); PlayerSpawnPosition position = spawnPositions[index]; spawnPositions.RemoveAt(index); player.InitializeForStartLevel(position.gameObject.transform.position, false); position.Spawn(player); }
protected override void OnAttach() { base.OnAttach(); //To load the HUD screen hudControl = ControlDeclarationManager.Instance.CreateControl("Gui\\AKActionHUD.gui"); Controls.Add(hudControl); //not working very well. remove it -- iNCIN AK bug? InitCameraViewFromTarget(); //Load target reticules textureGood = TextureManager.Instance.Load("Assault Knights\\Huds\\targetGood"); textureBad = TextureManager.Instance.Load("Assault Knights\\Huds\\targetBad"); textureWhite = TextureManager.Instance.Load("Assault Knights\\Huds\\targetWhite"); missileLockClose = TextureManager.Instance.Load("Assault Knights\\Huds\\Hud2"); missileLockDone = TextureManager.Instance.Load("Assault Knights\\Huds\\Hud3"); missileLockStarted = TextureManager.Instance.Load("Assault Knights\\Huds\\Hud4"); goodRadarTarget = TextureManager.Instance.Load("Assault Knights\\Huds\\FriendlyRadarDot"); badRadarTarget = TextureManager.Instance.Load("Assault Knights\\Huds\\EnemyRadarDot"); //CutSceneManager specific if (CutSceneManager.Instance != null) { CutSceneManager.Instance.CutSceneEnableChange += delegate(CutSceneManager manager) { if (manager.CutSceneEnable) { //Cut scene activated. All keys and buttons need to reset. EngineApp.Instance.KeysAndMouseButtonUpAll(); GameControlsManager.Instance.DoKeyUpAll(); } }; } //fill observeCameraRegions list foreach (Entity entity in Map.Instance.Children) { ObserveCameraArea area = entity as ObserveCameraArea; if (area != null) observeCameraAreas.Add(area); } FreeCameraEnabled = cameraType == CameraType.Free; lastCameraType = cameraType; //add game specific console command EngineConsole.Instance.AddCommand("movePlayerUnitToCamera", ConsoleCommand_MovePlayerUnitToCamera); EngineConsole.Instance.AddCommand("ChatCommand", ConsoleCommand_ChatCommand); EngineConsole.Instance.AddCommand("ToggleNightVision", ConsoleCommand_ToggleNightVision); EngineConsole.Instance.AddCommand("ToggleHeatVision", ConsoleCommand_ToggleHeatVision); EngineConsole.Instance.AddCommand("ChangeCamera", ConsoleCommand_ChangeCamera); EngineConsole.Instance.AddCommand("LoadBuyWindow", ConsoleCommand_LoadBuyWindow); //add Xanders Debug console command //EngineConsole.Instance.AddCommand("Xander", // ConsoleCommand_Xander); //EngineConsole.Instance.AddCommand("ZoomInOut", // ConsoleCommand_ZoomInOut); //accept commands of the player GameControlsManager.Instance.GameControlsEvent += GameControlsManager_GameControlsEvent; //MotionBlur for a player unit contusion { Compositor compositor = CompositorManager.Instance.GetByName("MotionBlur"); if (compositor != null && compositor.IsSupported()) RendererWorld.Instance.DefaultViewport.AddCompositor("MotionBlur"); } {//heat vision Compositor compositor = CompositorManager.Instance.GetByName("HeatVision"); if (compositor != null && compositor.IsSupported()) RendererWorld.Instance.DefaultViewport.AddCompositor("HeatVision"); } {//night vision Compositor compositor = CompositorManager.Instance.GetByName("NightVision"); if (compositor != null && compositor.IsSupported()) RendererWorld.Instance.DefaultViewport.AddCompositor("NightVision"); } //chat stuff //for chat support GameNetworkServer server = GameNetworkServer.Instance; if (server != null) server.ChatService.ReceiveText += Server_ChatService_ReceiveText; GameNetworkClient client = GameNetworkClient.Instance; if (client != null) client.ChatService.ReceiveText += Client_ChatService_ReceiveText; //get the list of flags foreach (Entity entity in Map.Instance.Children) { SpawnPoint sp = entity as SpawnPoint; if (sp != null && !spawnPoints.Contains(sp)) { PlayerSpawnPosition psp = new PlayerSpawnPosition(); psp.spawnPoint = sp; playerSpawnPositions.Add(psp); } } }
private void DrawRoomBaseButton(SORoomBase roomBase, Color defColor, out bool nowClicked) { nowClicked = false; bool isNowSelectedRoom = (_nowRoomIndex == _selectedRoomIndex); GUIContent roomText = new GUIContent(roomBase.name); Rect roomTextRect = GUILayoutUtility.GetRect(roomText, sceneTextStyle); if (isNowSelectedRoom) { if (focusedWindow == this) { GUI.color = EditorGUIUtility.isProSkin ? proSelectBackground : stdSelectBackground; } else { GUI.color = EditorGUIUtility.isProSkin ? proLostFocusSelectBackground : stdLostFocusSelectBackground; } GUI.DrawTexture(roomTextRect, EditorGUIUtility.whiteTexture); } GUI.color = (EditorGUIUtility.isProSkin ? proTextColor : (isNowSelectedRoom ? stdSelectTextColor : stdTextColor)); GUIStyle nowSceneTextStyle = isNowSelectedRoom ? sceneSelectedTextStyle : sceneTextStyle; nowSceneTextStyle.fontStyle = FontStyle.Bold; GUI.Label(roomTextRect, roomText, nowSceneTextStyle); #region when click Event e = Event.current; if (roomTextRect.Contains(e.mousePosition)) { if (e.type == EventType.MouseDown) { nowClicked = true; _selectedRoomIndex = _nowRoomIndex; } else if (e.type == EventType.MouseUp) { if (e.button == 0) { if (_lastClickedScene == _nowRoomIndex && Time.realtimeSinceStartup - _lastClickTime <= DoubleClickDelay) { var editor = GameObject.Find("LevelEditor").GetComponent <LevelEditor.TilemapEditorScript>(); if (EditorUtility.DisplayDialog("Are you sure?", "Importing this room will overlap the current one without saving it.", "Okay", "Cancel")) { string pathBase = "Assets/ForEditor/"; EnemySpawnPosition enemyPointPrefab = AssetDatabase.LoadAssetAtPath(pathBase + "EnemySpawnPosition.prefab", typeof(EnemySpawnPosition)) as EnemySpawnPosition; PlayerSpawnPosition playerPointPrefab = AssetDatabase.LoadAssetAtPath(pathBase + "PlayerSpawnPosition.prefab", typeof(PlayerSpawnPosition)) as PlayerSpawnPosition; PlatformController movingPlatformPrefab = AssetDatabase.LoadAssetAtPath(pathBase + "MovingPlatform.prefab", typeof(PlatformController)) as PlatformController; Water waterPrefab = AssetDatabase.LoadAssetAtPath(pathBase + "Water/Water.prefab", typeof(Water)) as Water; editor.Import(roomBase, enemyPointPrefab, playerPointPrefab, movingPlatformPrefab, waterPrefab); LevelEditor.TilemapInspectorEditor.RoomNumber = roomBase.roomNumber; } } else { _lastClickedScene = _nowRoomIndex; _lastClickTime = Time.realtimeSinceStartup; } } } } #endregion _nowRoomIndex++; GUI.color = defColor; }