diff options
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs')
-rw-r--r-- | SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs b/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs new file mode 100644 index 0000000..3a4457a --- /dev/null +++ b/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs @@ -0,0 +1,49 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +/// <summary> +/// Áñµ¯·¢ÉäÆ÷ +/// </summary> +public class Weapon_GrenadeLauncher : WeaponBase +{ + + public override string name => "Áñµ¯·¢ÉäÆ÷"; + + public override string iconPath => "art/ui/weaponicon/grenade"; + + public override AutoMode autoMode => AutoMode.Interval; + + public override float interval => 0.5f; + + private string prefabPath = "prefabs/grenade/grenade_v1"; + + // ÌØÐ§vfx + private string vfxPath = "prefabs/effect/eff_launch"; + + Vector3 GetRandomLaunchGrenadeDirection(CrewScript crew) + { + Vector3 dirOnPlane = Quaternion.Euler(0, 0, Random.Range(-15f, 15f)) * new Vector3(crew.aimDirection.x, crew.aimDirection.y, 0); + dirOnPlane = dirOnPlane.normalized; + Vector3 dir = new Vector3(dirOnPlane.x, dirOnPlane.y, Random.Range(0f, 1f)).normalized; + return dir.normalized; + } + + + public override void OnTrigger(GameObject owner) + { + CrewScript crew = owner.GetComponent<CrewScript>(); + + // grenade + TestPeaceMakerGrenade grenade = UnityEngine.Object.Instantiate<TestPeaceMakerGrenade>(ResourceManager.Instance.Load<TestPeaceMakerGrenade>(prefabPath)); + Vector3 position = owner.GetComponent<TopDownTransform>().position + new Vector3(0, 0, 1.8f); + grenade.Set(position, GetRandomLaunchGrenadeDirection(crew), Random.Range(8f, 10f)); + grenade.gameObject.SetActive(true); + + // vfx + GameObject eff = UnityEngine.Object.Instantiate<GameObject>(ResourceManager.Instance.Load<UnityEngine.GameObject>(vfxPath), crew.transform); + eff.transform.position = crew.launchPoint.position; + eff.SetActive(true); + + } +}
\ No newline at end of file |