internal void SpawnBaddie(EnemyFunction.EnemyID id, Vector3?spawnPos = null) //Quick setup for objects { GameObject GridPieceTemp = Grid[UnityEngine.Random.Range(0, 21), 22]; //one less than the grid size spawnPos = spawnPos ?? new Vector3(GridPieceTemp.transform.position.x + (GridPieceTemp.GetComponent <Renderer>().bounds.size.x / 2), GridPieceTemp.transform.position.y, GridPieceTemp.transform.position.z + (GridPieceTemp.GetComponent <Renderer>().bounds.size.y / 2)); GameObject tempMesh = GameObject.CreatePrimitive(PrimitiveType.Cube); //grab a cube mesh GameObject Enemy = GameManager.AssignComponents(id.ToString(), tempMesh.GetComponent <MeshFilter>().mesh, new Material(Shader.Find("Unlit/Color")), true); Destroy(tempMesh); Enemy.transform.position = (Vector3)spawnPos + Vector3.up; Enemy.transform.SetParent(gameObject.transform); //Orderliness Enemy.AddComponent <EnemyFunction>(); Enemy.GetComponent <EnemyFunction>().EnemyType(id); AudioSource.PlayClipAtPoint(spawnsound, GameObject.Find("Main Camera").transform.position, 0.02f); GameManager.PushToEventLog("Spawning " + Enemy.name); }
private EnemyFunction.EnemyID[] GenerateStage() { LevelDifficulty = (int)((5 * Mathf.Sin((2 * Mathf.PI * OnStage) / -3)) + (5 * OnStage) + 3); //kwikmaffs int totalLevelSet = 0; List <EnemyFunction.EnemyID> temp = new List <EnemyFunction.EnemyID>(); while (totalLevelSet < LevelDifficulty) //build level selecing enemies on the fly to fufill the levels difficulty cap { int tempint = UnityEngine.Random.Range(1, 12); switch (tempint) { default: temp.Add(EnemyFunction.EnemyID.Default); break; case 2: temp.Add(EnemyFunction.EnemyID.Charger); break; case 3: temp.Add(EnemyFunction.EnemyID.Teleport); break; case 4: temp.Add(EnemyFunction.EnemyID.Regenerator); break; case 5: temp.Add(EnemyFunction.EnemyID.Shielded); break; case 6: temp.Add(EnemyFunction.EnemyID.Phasing); break; case 9: temp.Add(EnemyFunction.EnemyID.Mother); break; case 8: temp.Add(EnemyFunction.EnemyID.Knight); break; case 10: temp.Add(EnemyFunction.EnemyID.Undead); break; case 11: temp.Add(EnemyFunction.EnemyID.Assasin); break; case 7: temp.Add(EnemyFunction.EnemyID.Support); break; } totalLevelSet += tempint; } EnemyFunction.EnemyID[] temparray = new EnemyFunction.EnemyID[temp.Count]; for (int i = 0; i < temp.Count; i++) { temparray[i] = temp[i]; } return(temparray); //code for spawning specific stages, tutorial stage? or just bugtesting //EnemyFunction.EnemyID[] Stage0 = new EnemyFunction.EnemyID[] {EnemyFunction.EnemyID.Assasin,EnemyFunction.EnemyID.Bonus, EnemyFunction.EnemyID.Boss, EnemyFunction.EnemyID.Charger, EnemyFunction.EnemyID.Default, EnemyFunction.EnemyID.Knight, EnemyFunction.EnemyID.Mother, EnemyFunction.EnemyID.Phasing, EnemyFunction.EnemyID.Regenerator, EnemyFunction.EnemyID.Shielded, EnemyFunction.EnemyID.Teleport, EnemyFunction.EnemyID.Undead}; Stages.Add(Stage0); //Planned Stages }