void RandomLaunchDecoy() { float angle = UnityEngine.Random.Range(0, 1f); float rad = angle * 2 * Mathf.PI; Vector3 direction = Get.GetDirection(rad, how_far); Vector3 pos = this.transform.position + direction; my_hitme.setVisuals(MonsterType.SummonDecoy, 0.5f, true); GameObject obj; switch (type) { case DistractorType.Decoy: pos.z++; obj = Peripheral.Instance.zoo.getObject(decoy, false); float degrees = angle * 360f; obj.transform.localEulerAngles = new Vector3(0, 0, degrees); obj.transform.position = this.transform.position; obj.name = obj.name + Peripheral.Instance.IncrementMonsterCount(); obj.transform.SetParent(transform.parent); obj.SetActive(true); obj.GetComponent <Rigidbody2D>().velocity = direction * init_velocity * 2f; if (max_number > 0) { decoys.addByID(obj.GetComponent <Decoy>()); } break; case DistractorType.Monster: Moon.Instance.enemySpawned(my_hitme.my_ai.my_dogtag.wave); HitMe hey = Peripheral.Instance.makeMonster(decoy, my_hitme.my_ai.path, pos, 0f, 0f); if (one_level) { foreach (Modifier tech in hey.enemy_tech) { if (tech.GetType() == typeof(Distractor)) { tech.setActive(false); } } } hey.my_ai.my_dogtag.wave = my_hitme.my_ai.my_dogtag.wave; if (max_number > 0) { decoys.addByID(hey); } break; case DistractorType.Shield: decoy_position.z = 1f; if (my_shield == null) { my_shield = Peripheral.Instance.zoo.getObject(decoy, false).GetComponent <Decoy>(); my_shield.transform.SetParent(transform); my_shield.transform.localPosition = decoy_position; my_shield.transform.localRotation = Quaternion.identity; } my_shield.Init(DistractorType.Shield, my_hitme.my_body); my_shield.gameObject.SetActive(true); break; } }