summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs
diff options
context:
space:
mode:
Diffstat (limited to 'SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs')
-rw-r--r--SurvivalTest/Assets/Scripts/Weapons/Weapon_GrenadeLauncher.cs49
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