/// <summary> /// Loads all the setup for the game to play acording to the parameter /// </summary> /// <param name="SelectedMode"></param> /// <returns>Game setup</returns> public static GameSetting LoadGameSetup(string SelectedMode) { #region variables //Validate the Selected game mode GameplayMode _selectedMode = ValidateGameMode(SelectedMode); //Settings to be returned in LoadGame Method GameSettingObj = new GameSetting(); #endregion //Load Gamemode settings switch (_selectedMode) { case GameplayMode.easy: GameSettingObj.xAxis = EasyModeSettings.xAmount; GameSettingObj.yAxis = EasyModeSettings.yAmount; GameSettingObj.mines = EasyModeSettings.mineAmount; break; default: throw new Exception("Error"); } return(GameSettingObj); }
//IEnemyComponent public virtual void Initialize(Player[] players, GameplayMode gameplayMode, PlayArea playArea) { this.players = players; this.gameplayMode = gameplayMode; this.playArea = playArea; //for example initialize movement and weapons }
public void SetCamsToMode(GameplayMode newMode) { GameObject camPoint = GetCorrespondingCamPoint(newMode); gameplayCamContainer.transform.localPosition = camPoint.transform.localPosition; gameplayCamContainer.transform.localRotation = camPoint.transform.localRotation; SyncLevelCamContainer(); }
private GameplayScreen(string levelPath, GameplayMode gameplayMode, int stage) { _gameplayMode = gameplayMode; _levelPath = levelPath; _stage = stage; this.LoadLevel(); }
/// <summary> /// Validate Game mode against the enum /// </summary> /// <param name="selectedMode"></param> /// <returns>String for game mode</returns> private static GameplayMode ValidateGameMode(string selectedMode) { GameplayMode recordType = new GameplayMode(); recordType = (GameplayMode)System.Enum.Parse(typeof(GameplayMode), selectedMode); return(recordType); }
public override void Initialize(Player[] players, GameplayMode mode, PlayArea playArea) { base.Initialize(players, mode, playArea); bulletDirectionScale = GetDirectionScaleVector(); SetAppropriateBulletPool(); chargeEffectPool = ParticleEffectPool.GetPool(ParticleEffectPool.EffectType.CHARGE_ENEMY); initialized = true; }
public override void Initialize(Player[] players, GameplayMode gameplayMode, PlayArea playArea) { base.Initialize(players, gameplayMode, playArea); movement.Initialize(players, gameplayMode, playArea); if (weapon != null) { weapon.Initialize(players, gameplayMode, playArea); } }
private void ReadLevel() { if (dataRecieveds.Count > 0) { if (dataRecieveds[0].Sender == SceneName.LevelEditorCreate || ((dataRecieveds[0].Sender == SceneName.PlayParbaba || dataRecieveds[0].Sender == SceneName.PlayBatuguru || dataRecieveds[0].Sender == SceneName.PlayParapat || dataRecieveds[0].Sender == SceneName.PlayTomok) && Mode == GameplayMode.ValidateLevel)) { Mode = GameplayMode.ValidateLevel; dataLevel = (Level)dataRecieveds[0].Data; if (!dataLevel.HasUndefineBubble()) { RefreshLevel(dataLevel); } else { chooseBubbleController.Show(dataStaticLevel, RefreshBubble); State = GameplayState.ChooseBubble; //RefreshBackground(dataLevel.Place); RefreshRubbish(dataLevel.Rubbishes); RefreshBarrier(dataLevel.Barriers); } } else if (dataRecieveds[0].Sender == SceneName.LevelEditorCreate || ((dataRecieveds[0].Sender == SceneName.PlayParbaba || dataRecieveds[0].Sender == SceneName.PlayBatuguru || dataRecieveds[0].Sender == SceneName.PlayParapat || dataRecieveds[0].Sender == SceneName.PlayTomok) && Mode == GameplayMode.Edited)) { Mode = GameplayMode.Edited; } else if ((dataRecieveds[0].Sender == SceneName.ChooseLevelParbaba || dataRecieveds[0].Sender == SceneName.ChooseLevelBatuguru || dataRecieveds[0].Sender == SceneName.ChooseLevelParapat || dataRecieveds[0].Sender == SceneName.ChooseLevelTomok) || ((dataRecieveds[0].Sender == SceneName.PlayParbaba || dataRecieveds[0].Sender == SceneName.PlayBatuguru || dataRecieveds[0].Sender == SceneName.PlayParapat || dataRecieveds[0].Sender == SceneName.PlayTomok) && Mode == GameplayMode.StaticLevel)) { Mode = GameplayMode.StaticLevel; dataStaticLevel = (StaticLevel)dataRecieveds[0].Data; if (!dataStaticLevel.HasUndefineBubble()) { RefreshLevel(dataStaticLevel); } else { BtnShoot.SetActive(false); chooseBubbleController.Show(dataStaticLevel, RefreshBubble); //RefreshBackground(dataStaticLevel.Place); RefreshRubbish(dataStaticLevel.Rubbishes); RefreshBarrier(dataStaticLevel.Barriers); State = GameplayState.ChooseBubble; /*if (dataStaticLevel.HighScore==0 && dataStaticLevel.Place == "Batuguru" && dataStaticLevel.Level == 11) * { * tutorialPora.SetTrigger("define"); * closeForDefine.SetActive(true); * tutorialAnimator.SetTrigger("Show"); * }*/ } } } }
Vector3 FlattenLocalPointToArea(GameplayMode mode, Vector3 point) { switch (currentMode) { case GameplayMode.TOPDOWN: return(new Vector3(point.x, 0f, point.z)); case GameplayMode.SIDE: return(new Vector3(0f, point.y, point.z)); case GameplayMode.BACK: return(new Vector3(point.x, point.y, 0f)); default: throw GetUnknownModeException(currentMode); } }
Vector3 GetSpawnOffsetVec(GameplayMode mode) { switch (currentMode) { case GameplayMode.TOPDOWN: return(Vector3.left); case GameplayMode.SIDE: return(Vector3.up); case GameplayMode.BACK: return(Vector3.left); default: throw GetUnknownModeException(currentMode); } }
GameObject GetCorrespondingCamPoint(GameplayMode mode) { switch (mode) { case (GameplayMode.TOPDOWN): return(topPosition); case (GameplayMode.SIDE): return(sidePosition); case (GameplayMode.BACK): return(backPosition); default: throw GetUnknownModeException(mode); } }
GameObject GetCorrespondingPlayArea(GameplayMode mode) { switch (mode) { case (GameplayMode.TOPDOWN): return(topArea); case (GameplayMode.SIDE): return(sideArea); case (GameplayMode.BACK): return(backArea); default: throw GetUnknownModeException(mode); } }
protected RigidbodyConstraints GetMovementConstraints(GameplayMode mode) { switch (mode) { case GameplayMode.TOPDOWN: return(RigidbodyConstraints.FreezePositionY); case GameplayMode.SIDE: return(RigidbodyConstraints.FreezePositionX); case GameplayMode.BACK: return(RigidbodyConstraints.FreezePositionZ); default: throw new UnityException("Unknown GameplayMode \"" + mode.ToString() + "\""); } }
public IEnumerator TransitionPlayerToMode(GameObject playerObject, GameplayMode newMode, float transitionDuration) { Vector3 startPos = playerObject.transform.localPosition; Quaternion startRot = playerObject.transform.localRotation; Vector3 normalizedTargetPos = GetNormalizedTargetPoint(startPos, currentMode, newMode); Vector3 endPos = DenormalizePoint(normalizedTargetPos, newMode); Quaternion endRot = Quaternion.identity; float progress = 0f; while (progress < 1f) { progress += (Time.deltaTime / transitionDuration); playerObject.transform.localPosition = Vector3.Lerp(startPos, endPos, progress); playerObject.transform.localRotation = Quaternion.Lerp(startRot, endRot, progress); yield return(null); } playerObject.transform.localPosition = endPos; playerObject.transform.localRotation = endRot; }
IEnumerator WaitForRightConditionsAndTransition(GameplayMode newMode) { bool respawnInProgress = RespawnIsInProgress(); while (respawnInProgress) { yield return(null); respawnInProgress = RespawnIsInProgress(); } StartCoroutine(playArea.TransitionCamerasToMode(newMode, gameplayModeTransitionDuration)); for (int i = 0; i < players.Length; i++) { Player player = players[i]; if (player.IsDead) { playerRespawnStartTimes[i] = Mathf.Infinity; } else { player.SetRegularComponentsActive(false); StartCoroutine(playArea.TransitionPlayerToMode(player.gameObject, newMode, gameplayModeTransitionDuration)); } } yield return(new WaitForSeconds(gameplayModeTransitionDuration)); for (int i = 0; i < players.Length; i++) { Player player = players[i]; if (player.IsDead) { playerRespawnStartTimes[i] = Time.time; } else { player.SetRegularComponentsActive(true); } player.Mode = newMode; } playArea.SetAreaToMode(newMode); playArea.SetMode(newMode); }
public override StandardLevelSO[] GetLevels(GameplayMode gameplayMode) { foreach (var levelCollectionForGameplayMode in _collections) { if (levelCollectionForGameplayMode.gameplayMode == gameplayMode) { var customLevelCollections = levelCollectionForGameplayMode as CustomLevelCollectionForGameplayMode; if (customLevelCollections != null) { var customLevelCollection = customLevelCollections.levelCollection as CustomLevelCollectionSO; if (customLevelCollection != null) { return(customLevelCollection.LevelList.ToArray()); } } return(levelCollectionForGameplayMode.levelCollection.levels); } } return(null); }
private static string GetGameplayModeImage(GameplayMode gameplayMode) { switch (gameplayMode) { case GameplayMode.SoloStandard: return("solo"); case GameplayMode.SoloOneSaber: return("one_saber"); case GameplayMode.SoloNoArrows: return("no_arrows"); case GameplayMode.PartyStandard: return("party"); default: return("solo"); } }
public static string GetGameplayModeName(GameplayMode gameplayMode) { switch (gameplayMode) { case GameplayMode.SoloStandard: return("Solo Standard"); case GameplayMode.SoloOneSaber: return("One Saber"); case GameplayMode.SoloNoArrows: return("No Arrows"); case GameplayMode.PartyStandard: return("Party"); default: return("Solo Standard"); } }
public IEnumerator TransitionCamerasToMode(GameplayMode newMode, float transitionDuration) { Vector3 startPos = gameplayCamContainer.transform.localPosition; Quaternion startRot = gameplayCamContainer.transform.localRotation; GameObject newPoint = GetCorrespondingCamPoint(newMode); Vector3 endPos = newPoint.transform.localPosition; Quaternion endRot = newPoint.transform.localRotation; float progress = 0f; while (progress < 1f) { progress += (Time.deltaTime / transitionDuration); gameplayCamContainer.transform.localPosition = Vector3.Lerp(startPos, endPos, progress); gameplayCamContainer.transform.localRotation = Quaternion.Lerp(startRot, endRot, progress); SyncLevelCamContainer(); yield return(null); } gameplayCamContainer.transform.localPosition = endPos; gameplayCamContainer.transform.localRotation = endRot; SyncLevelCamContainer(); }
public static string GetLeaderboardID(IStandardLevelDifficultyBeatmap difficultyLevel, GameplayMode gameplayMode) { CheckForHiddenBlocks(); string text = "Unknown"; switch (difficultyLevel.difficulty) { case LevelDifficulty.Easy: text = "Easy"; break; case LevelDifficulty.Normal: text = "Normal"; break; case LevelDifficulty.Hard: text = "Hard"; break; case LevelDifficulty.Expert: text = "Expert"; break; case LevelDifficulty.ExpertPlus: text = "ExpertPlus"; break; } string text2 = "Unknown"; switch (gameplayMode) { case GameplayMode.SoloStandard: text2 = "SoloStandard"; break; case GameplayMode.SoloOneSaber: text2 = "SoloOneSaber"; break; case GameplayMode.SoloNoArrows: text2 = "SoloNoArrows"; break; case GameplayMode.PartyStandard: text2 = "PartyStandard"; break; } string leaderboardID = string.Concat(new string[] { difficultyLevel.level.levelID, "_", text, "_", text2 }); if (isHDMod) { leaderboardID += "HD"; } if (Plugin.IsDarthModeOn && Plugin.NoArrowRandLv == 0) { leaderboardID += "DM"; if (Plugin.IsOneHanded) { leaderboardID += "OH"; } } return(leaderboardID); }
Vector3 GetNormalizedTargetPoint(Vector3 origPoint, GameplayMode origMode, GameplayMode targetMode) { Vector3 origAreaScale = GetCorrespondingPlayArea(origMode).transform.localScale; float normX, normY, normZ; switch (origMode) { case GameplayMode.TOPDOWN: normX = origPoint.x / origAreaScale.x; normZ = origPoint.z / origAreaScale.z; if (targetMode.Equals(GameplayMode.TOPDOWN)) { return(new Vector3(normX, 0f, normZ)); } else if (targetMode.Equals(GameplayMode.SIDE)) { return(new Vector3(0f, normX, normZ)); } else if (targetMode.Equals(GameplayMode.BACK)) { return(new Vector3(normX, normZ, 0f)); } else { throw GetUnknownModeException(targetMode); } case GameplayMode.SIDE: normY = origPoint.y / origAreaScale.y; normZ = origPoint.z / origAreaScale.z; if (targetMode.Equals(GameplayMode.TOPDOWN)) { return(new Vector3(normY, 0f, normZ)); } else if (targetMode.Equals(GameplayMode.SIDE)) { return(new Vector3(0f, normY, normZ)); } else if (targetMode.Equals(GameplayMode.BACK)) { return(new Vector3(normZ, normY, 0f)); } else { throw GetUnknownModeException(targetMode); } case GameplayMode.BACK: normX = origPoint.x / origAreaScale.x; normY = origPoint.y / origAreaScale.y; if (targetMode.Equals(GameplayMode.TOPDOWN)) { return(new Vector3(normX, 0f, normY)); } else if (targetMode.Equals(GameplayMode.SIDE)) { return(new Vector3(0f, normY, normX)); } else if (targetMode.Equals(GameplayMode.BACK)) { return(new Vector3(normX, normY, 0f)); } else { throw GetUnknownModeException(targetMode); } default: throw GetUnknownModeException(origMode); } }
protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); // Overlay component, used to draw the pause menu and game over menu overlayComponent = new OverlayComponent(Game, spriteBatch); Game.Components.Add(overlayComponent); projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, GraphicsDevice.Viewport.AspectRatio, 0.1f, 50000); directionalLight = new DirectionalLight( new Vector3(-1.25f, -2f, 5.0f), // Direction new Vector3(.1f, .1f, .1f),//new Vector3(.15f, .14f, .29f), // Ambient new Vector3(.46f, .33f, .75f)); // Diffuse Game.AddService(typeof(DirectionalLight), directionalLight); #region Level terrain generation int heightMapSize = terrainSegmentsCount * terrainSegmentSize + 1; float halfHeightMapSize = heightMapSize / 2f; HeightMap heightmapGenerator = new HeightMap(heightMapSize); var heightMap = heightmapGenerator.Generate(); var roadMap = new float[heightMapSize, heightMapSize]; raceTrack = new RaceTrack(heightMapSize, terrainScale); navMesh = new NavMesh(GraphicsDevice, raceTrack.Curve, //1500, roadWidth, terrainScale); 750, roadWidth, terrainScale); Vector3 lastPosition = raceTrack.Curve.GetPoint(.01f) / terrainScale; for (float t = 0; t < 1; t += .0002f) { var e = raceTrack.Curve.GetPoint(t) / terrainScale; for (float j = -roadFalloff; j <= roadFalloff; j++) { var pos = e + j * Vector3.Normalize(Vector3.Cross(lastPosition - e, Vector3.Up)); // Indices int x = (int)(pos.X + halfHeightMapSize), z = (int)(pos.Z + halfHeightMapSize); float height = e.Y; if (Math.Abs(j) <= roadWidth) { heightMap[x, z] = height; roadMap[x, z] = 1; } else { float amount = (Math.Abs(j) - roadWidth) / (roadFalloff - roadWidth); heightMap[x, z] = MathHelper.Lerp(height, heightMap[x, z], amount); roadMap[x, z] = amount / 10f; } } lastPosition = e; } heightmapGenerator.Smoothen(); heightmapGenerator.Perturb(30f); for (int i = 0; i < 5; i++) { heightmapGenerator.Smoothen(); } terrainEffect = content.Load<Effect>(@"Effects\TerrainShading"); //terrainEffect.Parameters["TextureMap0"].SetValue(content.Load<Texture2D>(@"Terrain\sand")); #region TEXTURE RENDERING //var unprocessedGrassTexture = content.Load<Texture2D>(@"Terrain\grass"); //var grassTexture = new RenderTarget2D(GraphicsDevice, unprocessedGrassTexture.Width, unprocessedGrassTexture.Height); //GraphicsDevice.SetRenderTarget(grassTexture); //spriteBatch.Begin(SpriteSortMode.Deferred, BlendState.AlphaBlend); //spriteBatch.Draw(unprocessedGrassTexture, new Rectangle(0, 0, unprocessedGrassTexture.Width, unprocessedGrassTexture.Height), Color.White); //spriteBatch.Draw(content.Load<Texture2D>(@"Particles\fire"), new Rectangle(0, 0, unprocessedGrassTexture.Width, unprocessedGrassTexture.Height), Color.White); //spriteBatch.End(); //GraphicsDevice.SetRenderTarget(null); //terrainEffect.Parameters["TextureMap1"].SetValue(grassTexture); #endregion terrainEffect.Parameters["TextureMap0"].SetValue(content.Load<Texture2D>(@"Terrain\road")); terrainEffect.Parameters["TextureMap1"].SetValue(content.Load<Texture2D>(@"Terrain\grass")); terrainEffect.Parameters["TextureMap2"].SetValue(content.Load<Texture2D>(@"Terrain\rock")); terrainEffect.Parameters["TextureMap3"].SetValue(content.Load<Texture2D>(@"Terrain\snow")); terrainEffect.Parameters["RoadNormalMap"].SetValue(content.Load<Texture2D>(@"Terrain\road_n")); terrainEffect.Parameters["Projection"].SetValue(projectionMatrix); // Creates a terrainmodel around Vector3.Zero terrainSegments = new TerrainModel[terrainSegmentsCount, terrainSegmentsCount]; float terrainStart = -.5f * heightMapSize; for (int z = 0; z < terrainSegmentsCount; z++) { for (int x = 0; x < terrainSegmentsCount; x++) { terrainSegments[x, z] = new TerrainModel(GraphicsDevice, terrainSegmentSize, terrainSegmentsCount, terrainStart, x * terrainSegmentSize, z * terrainSegmentSize, terrainScale, heightMap, roadMap, terrainEffect, directionalLight); } } #endregion #region Car Car = MakeCar(); gameInstance.AddService(typeof(Car), Car); Player localPlayer = gameInstance.GetService<ServerClient>().LocalPlayer; gameInstance.GetService<CarControlComponent>().Cars[localPlayer] = Car; gameInstance.AddService(typeof(Player), localPlayer); #endregion #region Lights // Load model to represent our lightsources var pointLightModel = content.Load<Model>(@"Models\light"); //spotLightModel = content.Load<Model>(@"Models\Cone"); Vector3 pointLightOffset = new Vector3(0, 250, 0); var cr = new CurveRasterization(raceTrack.Curve, 50); float colorOffset = 0f; foreach (var point in cr.Points) { Random r = UniversalRandom.GetInstance(); Vector3 color = new Vector3(0f,0f,0f); PointLight pl = new PointLight(point.Position + pointLightOffset + Vector3.Transform(50 * Vector3.Up, Matrix.CreateRotationZ(MathHelper.TwoPi * (float)UniversalRandom.GetInstance().NextDouble())), color, 450) { Model = pointLightModel, ColorTimeOffset = colorOffset }; pointLights.Add(pl); GraphicalObjects.Add(pl); colorOffset += 100 / cr.Points.Count; } #endregion dustEmitter = new ParticleEmitter(dustSystem, 150, Car.Position); #region SkySphere skyBoxModel = content.Load<Model>(@"Models/skybox"); skyBoxEffect = content.Load<Effect>(@"Effects/SkyBox"); skyMap = new TextureCube(GraphicsDevice, 2048, false, SurfaceFormat.Color); string[] cubemapfaces = { @"SkyBoxes/PurpleSky/skybox_right1", @"SkyBoxes/PurpleSky/skybox_left2", @"SkyBoxes/PurpleSky/skybox_top3", @"SkyBoxes/PurpleSky/skybox_bottom4", @"SkyBoxes/PurpleSky/skybox_front5", @"SkyBoxes/PurpleSky/skybox_back6_2" }; //cubeMap = new TextureCube(GraphicsDevice, 1024, false, SurfaceFormat.Color); //string[] cubemapfaces = { // @"SkyBoxes/StormyDays/stormydays_ft", // @"SkyBoxes/StormyDays/stormydays_bk", // @"SkyBoxes/StormyDays/stormydays_up", // @"SkyBoxes/StormyDays/stormydays_dn", // @"SkyBoxes/StormyDays/stormydays_rt", // @"SkyBoxes/StormyDays/stormydays_lf" //}; //cubeMap = new TextureCube(GraphicsDevice, 1024, false, SurfaceFormat.Color); //string[] cubemapfaces = { // @"SkyBoxes/Miramar/miramar_ft", // @"SkyBoxes/Miramar/miramar_bk", // @"SkyBoxes/Miramar/miramar_up", // @"SkyBoxes/Miramar/miramar_dn", // @"SkyBoxes/Miramar/miramar_rt", // @"SkyBoxes/Miramar/miramar_lf" //}; for (int i = 0; i < cubemapfaces.Length; i++) LoadCubemapFace(skyMap, cubemapfaces[i], (CubeMapFace)i); skyBoxEffect.Parameters["SkyboxTexture"].SetValue(skyMap); foreach (var mesh in skyBoxModel.Meshes) foreach (var part in mesh.MeshParts) part.Effect = skyBoxEffect; #endregion #region Weather thunderBoltGenerator = new ThunderBoltGenerator(gameInstance, thunderParticleSystem); gameInstance.Components.Add(thunderBoltGenerator); #endregion #region GameObjects OakTree.LoadMaterial(content); BirchTree.LoadMaterial(content); Stone.LoadMaterial(content); int numObjects = 75; for (int i = 0; i < numObjects; i++) { var t = navMesh.triangles[UniversalRandom.GetInstance().Next(navMesh.triangles.Length)]; float v = (float)UniversalRandom.GetInstance().NextDouble(); //float u = (float) (UniversalRandom.GetInstance().NextDouble() - 1/2f); //if (u < 0) // u -= .5f; //else // u += 1.5f; float u = 0; if (UniversalRandom.GetInstance().NextDouble() <= .5) u = -.5f - .3f * (float)(-UniversalRandom.GetInstance().NextDouble()); else u = (float)(1.5f + .3f * UniversalRandom.GetInstance().NextDouble()); var pos = (t.vertices[0] + u * t.ab + v * t.ac) / terrainScale; //var treePos = new Vector3(-halfHeightMapSize + (float)UniversalRandom.GetInstance().NextDouble() * (heightMapSize-50), 0, // -halfHeightMapSize + (float)UniversalRandom.GetInstance().NextDouble() * (heightMapSize-50)); float X = pos.X + heightMapSize / 2f, Z = pos.Z +heightMapSize / 2f; float Xlerp = X % 1f, Zlerp = Z % 1f; int x0 = (int)X, z0 = (int)Z, x1 = x0 + 1, z1 = z0 + 1; float height; float k; if (Xlerp + Zlerp > 1) { float h1 = MathHelper.Lerp(heightMap[x0, z1], heightMap[x1, z1], Xlerp); float h2 = MathHelper.Lerp(heightMap[x1, z0], heightMap[x1, z1], Zlerp); k = h2 / h1; height = MathHelper.Lerp(h1, h2, .5f); } else { float h1 = MathHelper.Lerp(heightMap[x0, z0], heightMap[x1, z0], Xlerp), h2 = MathHelper.Lerp(heightMap[x0, z0], heightMap[x0, z1], Zlerp); k = h2 / h1; height = MathHelper.Lerp(h1, h2, .5f); } pos.Y = height - 0.002f; if (k > 1.02 ) continue; GameObject obj; switch(UniversalRandom.GetInstance().Next(0, 3)) { case 0: obj = new OakTree(gameInstance); obj.Scale = 3 + 3 * (float)UniversalRandom.GetInstance().NextDouble(); FireflyCandidates.Add(obj); break; case 1: obj = new BirchTree(gameInstance); obj.Scale = 3 + 3 * (float)UniversalRandom.GetInstance().NextDouble(); FireflyCandidates.Add(obj); break; default: obj = new Stone(gameInstance); obj.Scale = 0.5f + (float)(.25 * UniversalRandom.GetInstance().NextDouble()); break; } obj.Position = terrainScale * pos; obj.Rotation = new Vector3(0, MathHelper.Lerp(0, MathHelper.Pi * 2, (float)UniversalRandom.GetInstance().NextDouble()), 0); GraphicalObjects.Add(obj); ShadowCasterObjects.Add(obj); } for (int i = 0; i < FireflyCandidates.Count; i+=5) { ParticleEmitter emitter = new ParticleEmitter(fireflySystem, 80, FireflyCandidates[i].Position); emitter.Origin = FireflyCandidates[i].Position + Vector3.Up * 500; fireflyEmitter.Add(emitter); } #endregion //foreach (GameObject obj in GraphicalObjects) //{ // pointLights.Add(new PointLight(obj.Position + Vector3.Up * 500, new Vector3(0.7f, 0.7f, 0.7f), 450) // { // Model = pointLightModel // }); //} //GraphicalObjects.AddRange(pointLights); //List<FireObject> list = new List<FireObject>(); //foreach (PointLight p in pointLights) //{ // FireObject obj = new FireObject(gameInstance, content, p.Position, p.Position + Vector3.Up * 10); // list.Add(obj); //} //pointLights.AddRange(list); //GraphicalObjects.AddRange(list); #region Cameras var input = gameInstance.GetService<InputComponent>(); gameInstance.GetService<CameraComponent>().AddCamera(new DebugCamera(new Vector3(-11800, 3000, -8200), input)); Camera c; gameInstance.GetService<CameraComponent>().AddCamera(c = new ThirdPersonCamera(Car, input)); gameInstance.GetService<CameraComponent>().CurrentCamera = c; #endregion #region DynamicEnvironment // TODO: CARMOVE environmentCubeMap = new RenderTargetCube(this.GraphicsDevice, 256, true, SurfaceFormat.Color, DepthFormat.Depth16); Car.EnvironmentMap = skyMap; #endregion #region PostProcess postProcessingComponent = new PostProcessingComponent(Game); Game.Components.Add(postProcessingComponent); postProcessTexture = new RenderTarget2D(GraphicsDevice, GraphicsDevice.Viewport.Width, GraphicsDevice.Viewport.Height, true, SurfaceFormat.Color, DepthFormat.Depth24); #endregion // Adding a prelighingrenderer as a service prelightingRenderer = new PrelightingRenderer(GraphicsDevice, content); Game.AddService(typeof(PrelightingRenderer), prelightingRenderer); #region ShadowMapEffect shadowMapEffect = content.Load<Effect>(@"Effects\ShadowMap"); #endregion #region Gameplay Trigger Manager (with sample) /// <summary> /// Gets the triggermanager /// Add new PositionTrigger /// Hook up to listener => when hit, use the thunderBoltGenerator and spawn a flash /// Adds it to triggers. /// </summary> //var triggerManager = gameInstance.GetService<TriggerManager>(); //int noOfCheckpoints = 10; //for (int i = 0; i < noOfCheckpoints; i++) //{ // var trigger = new PositionTrigger(raceTrack.CurveRasterization, (int)(((float)i / noOfCheckpoints) * raceTrack.CurveRasterization.Points.Count), true, true); // string cp = "Checkpoint " + i; // trigger.Triggered += (sender, e) => // { // Console.WriteLine(cp); // }; // triggerManager.Triggers.Add("checkpoint"+i, trigger); //} #endregion #region Game Mode if (gameInstance.GetService<ServerClient>().connected) { foreach (var player in gameInstance.GetService<ServerClient>().Players.Values) { gameInstance.GetService<CarControlComponent>().AddCar(player, null, this); } var carList = gameInstance.GetService<CarControlComponent>().Cars.OrderBy(pc => pc.Key.ID).Select(pc => pc.Value).ToList(); SetCarsAtStart(carList); } int cp = 6; if (gameModeChoice == GameModeChoice.SimpleRace) this.mode = new SimpleRaceMode(gameInstance, 3, cp, raceTrack, Car); else if (gameModeChoice == GameModeChoice.Multiplayer) this.mode = new MultiplayerRaceMode(gameInstance, 3, cp, raceTrack, Car); else throw new Exception("Stop choosing weird game modes"); gameInstance.AddService(typeof(GameplayMode), mode); #endregion #region Checkpoint lights for (int i=0; i<cp; i++) { var point = raceTrack.GetCurveRasterization(cp).Points[i]; var pl = new CheckpointLight(point.Position + 500 * Vector3.Up) { Model = pointLightModel }; pointLights.Add(pl); GraphicalObjects.Add(pl); #region Fire int halfnumberoffire = 5; for (int o = -halfnumberoffire + 1; o < halfnumberoffire; o++) { Vector3 side = Vector3.Cross(Vector3.Normalize(raceTrack.Curve.GetPoint((i) / (float)cp + .001f) - point.Position), Vector3.Up); var fire = new FireObject(content, fireSystem, fireSmokeSystem, point.Position + side * 100 * o - Vector3.Up * 400 + Vector3.Up * 650 * (float)Math.Cos(o/(float)halfnumberoffire), Vector3.Up * 10); pointLights.Add(fire); GraphicalObjects.Add(fire); } #endregion } #endregion #region BackgroundSound loopSoundManager.AddNewSound("forestambient"); #endregion prelightingRenderer.GameObjects = GraphicalObjects; init = true; }
public GameplayScreen(string levelPath, GameplayMode gameplayMode) : this(levelPath, gameplayMode, 0) { }
public void SetAreaToMode(GameplayMode newMode) { DeactivateAllPlayAreas(); GetCorrespondingPlayArea(newMode).SetActive(true); }
//other public stuff public void SetTranslationConstraintsFromMode(GameplayMode mode) { rb.constraints = RigidbodyConstraints.FreezeRotation & rb.constraints; //only rotation constraints remain rb.constraints |= GetMovementConstraints(mode); }
//IEnemyComponent public virtual void Initialize(Player[] players, GameplayMode gameplayMode, PlayArea playArea) { this.players = players; this.gameplayMode = gameplayMode; this.playArea = playArea; }
public void TransitionToGameplayMode(GameplayMode newMode) { // enemySpawner.SetMode(newMode); StartCoroutine(WaitForRightConditionsAndTransition(newMode)); }
UnityException GetUnknownModeException(GameplayMode mode) { return(new UnityException("Unknown GameplayMode \"" + mode.ToString() + "\"")); }
public Gameplay(GameplayMode mode) { this.mode = mode; }
public static BeatmapData CreateTransformedBeatmapData(BeatmapData beatmapData, GameplayOptions gameplayOptions, GameplayMode gameplayMode) { BeatmapData beatmapData2 = beatmapData; if (gameplayOptions.mirror) { beatmapData2 = BeatDataMirrorTransform.CreateTransformedData(beatmapData2); } if (gameplayMode == GameplayMode.SoloNoArrows) { beatmapData2 = BeatmapDataNoArrowsTransform.CreateTransformedData(beatmapData2); } if (gameplayOptions.obstaclesOption != GameplayOptions.ObstaclesOption.All) { beatmapData2 = BeatmapDataObstaclesTransform.CreateTransformedData(beatmapData2, gameplayOptions.obstaclesOption); } if (beatmapData2 == beatmapData) { beatmapData2 = beatmapData.GetCopy(); } if (gameplayOptions.staticLights) { BeatmapEventData[] beatmapEventData = new BeatmapEventData[] { new BeatmapEventData(0f, BeatmapEventType.Event0, 1), new BeatmapEventData(0f, BeatmapEventType.Event4, 1) }; beatmapData2 = new BeatmapData(beatmapData2.beatmapLinesData, beatmapEventData); } return(beatmapData2); }
Vector3 DenormalizePoint(Vector3 normedPoint, GameplayMode targetMode) { Vector3 targetAreaScale = GetCorrespondingPlayArea(targetMode).transform.localScale; return(Vector3.Scale(normedPoint, targetAreaScale)); }
public void OnRoundDetails(int roundId, string serverName, string mapName, FactionCountry attackingFaction, FactionCountry defendingFaction, GameplayMode gameplayMode, GameType gameType) { }
public static BeatmapData CreateTransformedBeatmapData(BeatmapData beatmapData, GameplayOptions gameplayOptions, GameplayMode gameplayMode) { BeatmapData newData = (BeatmapData)songDataRedirect.InvokeOriginal(null, beatmapData, gameplayOptions, gameplayMode); if (ShouldApplyModifers()) { //Console.WriteLine("Applying BeatMap modifiers."); newData = ApplyModifiers(newData); } return(newData); }