void SetSpawnRandomObjectsV2DataWithName(SpawnRandomObjectsV2Data data, string uniqueName) { if (data.gameObject == null) { Dev.Log("Warning: " + uniqueName + "'s prefab is null!"); return; } Dev.Log("Added: " + uniqueName + " data to spawnRandomObjectsV2Data!"); spawnRandomObjectsV2Data.Add(uniqueName, data); }
protected virtual IEnumerator Blow() { if (audioSnapshot != null) { audioSnapshot.TransitionTo(1f); } PlayOneShot(audioClips["Hornet_Fight_Death_01"]); PlayOneShot(audioClips["boss_explode_clean"]); GameObject objectToDestroy = GameObject.Find(objectToDestroyName); if (objectToDestroy != null) { Destroy(objectToDestroy); } else { Dev.LogWarning(objectToDestroy + " is null! Cannot destroy!"); } SpawnRandomObjectsV2Data data0 = spawnRandomObjectsV2Data["ControlBlowSpawnRandomObjectsV2"]; DoSpawnRandomObjectsV2(body, data0); SpawnRandomObjectsV2Data data1 = spawnRandomObjectsV2Data["ControlBlowSpawnRandomObjectsV21"]; DoSpawnRandomObjectsV2(body, data1); GameObject.Instantiate <GameObject>(gameObjects["White Wave"], transform.position, Quaternion.identity); DoCameraEffect("AverageShake"); nextState = Launch; yield break; }
//Taken from Playmaker's SpawnRandomObjectsV2.cs FSM Action static protected void DoSpawnRandomObjectsV2(Rigidbody2D body, SpawnRandomObjectsV2Data data) { try { float vectorX = 0f; float vectorY = 0f; bool originAdjusted = false; GameObject value = data.gameObject; if (value != null) { Vector3 a = Vector3.zero; Vector3 zero = Vector3.zero; if (data.spawnPoint != null) { a = data.spawnPoint.transform.position; if (data.position.HasValue) { a += data.position.Value; } } else if (data.position.HasValue) { a = data.position.Value; } int num = UnityEngine.Random.Range(data.spawnMin.Value, data.spawnMax.Value + 1); for (int i = 1; i <= num; i++) { GameObject gameObject = UnityEngine.Object.Instantiate <GameObject>(value, a, Quaternion.Euler(zero)); float x = gameObject.transform.position.x; float y = gameObject.transform.position.y; float z = gameObject.transform.position.z; if (data.originVariationX != null && data.originVariationX.HasValue) { x = gameObject.transform.position.x + UnityEngine.Random.Range(-data.originVariationX.Value, data.originVariationX.Value); originAdjusted = true; } if (data.originVariationY != null && data.originVariationY.HasValue) { y = gameObject.transform.position.y + UnityEngine.Random.Range(-data.originVariationY.Value, data.originVariationY.Value); originAdjusted = true; } if (originAdjusted) { gameObject.transform.position = new Vector3(x, y, z); } float num2 = UnityEngine.Random.Range(data.speedMin.Value, data.speedMax.Value); float num3 = UnityEngine.Random.Range(data.angleMin.Value, data.angleMax.Value); vectorX = num2 * Mathf.Cos(num3 * 0.0174532924f); vectorY = num2 * Mathf.Sin(num3 * 0.0174532924f); Vector2 velocity; velocity.x = vectorX; velocity.y = vectorY; body.velocity = velocity; } } } catch (Exception e) { Dev.Log("Exception: " + e.Source + " " + e.Message + " " + e.StackTrace); } }