summaryrefslogtreecommitdiff
path: root/SurvivalTest/Assets/Scripts/Equips/Equip_GrenadeLauncher.cs
blob: cd020a04d5fc1129e5329b9c3f15f63058d589b6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

/// <summary>
/// Áñµ¯·¢ÉäÆ÷
/// </summary>
public class Equip_GrenadeLauncher : EquipBase
{

	public override string name => "Áñµ¯·¢ÉäÆ÷";

	public override string iconPath => "art/ui/equipicon/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);

	}
}