override public void Explode(GameObject caster) { if (_size != 1) { for (uint i = 0; i < _nbrChild; i++) { Quaternion rotation = new Quaternion(); rotation.eulerAngles = new Vector3(0, 0, 90); AsteroidController.Spawn(this.gameObject, transform.position, rotation, _size - 1); } } Destroy(this.gameObject); caster.SendMessage("AddPoints", _pointsValue); }
private void GenerateEnemy(string name) { Collider backgroundCollider = background.GetComponent <Collider> (); Vector3 max = backgroundCollider.bounds.max; Vector3 min = backgroundCollider.bounds.min; Vector3 spawnPosition = new Vector3(); int side = Random.Range(0, 4); switch (side) // choisit le coté du spawn { case 0: spawnPosition.x = max.x; spawnPosition.y = 0.5f; spawnPosition.z = Random.Range(min.z, max.z); break; case 1: spawnPosition.x = min.x; spawnPosition.y = 0.5f; spawnPosition.z = Random.Range(min.z, max.z); break; case 2: spawnPosition.x = Random.Range(min.x, max.x); spawnPosition.y = 0.5f; spawnPosition.z = max.z; break; case 3: spawnPosition.x = Random.Range(min.x, max.x); spawnPosition.y = 0.5f; spawnPosition.z = min.z; break; } Quaternion spawnRotation = Random.rotation; Dictionary <string, int> stats = new Dictionary <string, int>(); foreach (KeyValuePair <string, int> kvp in _enemyStatsAverage[name]) { stats [kvp.Key] = RandomizeStat(kvp.Value, _randomPercentByStat[kvp.Key]); } switch (name) { case "asteroid": spawnRotation.eulerAngles = new Vector3(0, 0, 90); AsteroidController.Spawn(_enemyNameConverter [name], spawnPosition, spawnRotation, stats["size"], stats["speed"] , stats["life"], stats["pointValue"]); break; case "weak": spawnRotation.eulerAngles = new Vector3(0, 0, 90); WeakEnemyController.Spawn(_enemyNameConverter [name], spawnPosition, spawnRotation, stats["speed"] , stats["life"], stats["pointValue"]); break; case "suicidal": spawnRotation.eulerAngles = new Vector3(0, 0, 90); SuicidalEnemyController.Spawn(_enemyNameConverter [name], spawnPosition, spawnRotation, stats["speed"] , stats["life"], stats["pointValue"]); break; case "medium": spawnRotation.eulerAngles = new Vector3(90, 0, 0); MediumEnemyController.Spawn(_enemyNameConverter [name], spawnPosition, spawnRotation, stats["speed"] , stats["life"], stats["pointValue"]); break; default: break; } }