54 lines
1.9 KiB
C#
54 lines
1.9 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
|
|
public class Skill_Frozen : ProjectileBase
|
|
{
|
|
public GameObject[] gos; // 0 날아가는 거, 1 터지는 거
|
|
[Header("날아가는 속도")]
|
|
public float speed = 4f;
|
|
[Header("얼리는 범위")]
|
|
public Vector3 v3_freezescale = Vector3.one * 1.5f;
|
|
|
|
SkillListTableData awaken3_skilldata = new SkillListTableData();
|
|
|
|
public override void Set(ProjectileData _data)
|
|
{
|
|
_data.eStartPos = eProjectileStartPos.ShooterCenter;
|
|
base.Set(_data);
|
|
gos[1].transform.localScale = v3_freezescale + (v3_freezescale * (IsStep(1) ? Get_AwakenData(1, 1) : 0f));
|
|
_data.CC_AddTime = IsStep(2) ? Get_AwakenData(2, 1) : 0;
|
|
|
|
awaken3_skilldata.e_SkillExtraType = eSkillExtraType.Frost;
|
|
awaken3_skilldata.f_ExtraValue1 = Get_AwakenData(3, 1);
|
|
awaken3_skilldata.f_ExtraValue2 = Get_AwakenData(3, 2);
|
|
awaken3_skilldata.f_ExtraValue3 = Get_AwakenData(3, 3);
|
|
awaken3_skilldata.f_ExtraValue4 = 1f;
|
|
act_afterFreezing = IsStep(3) ? hitter =>
|
|
{
|
|
var copydinfo = Get_DamageInfo();
|
|
copydinfo.Set_Extra(eSkillExtraType.Frost);
|
|
copydinfo.Beater_pd.m_SkillListTableData = awaken3_skilldata;
|
|
hitter.Check_Extra(copydinfo);
|
|
} : null;
|
|
StartCoroutine(Co_Update());
|
|
}
|
|
|
|
IEnumerator Co_Update()
|
|
{
|
|
DSUtil.InActivateGameObjects(gos, 0);
|
|
while (true)
|
|
{
|
|
var targetPos = m_ProjecTileData.target.Get_Center_position();
|
|
transform.position = Vector3.MoveTowards(transform.position, targetPos, Time.deltaTime * speed);
|
|
if (Vector3.Distance(transform.position, targetPos) < 0.2f)
|
|
break;
|
|
yield return null;
|
|
}
|
|
|
|
DSUtil.InActivateGameObjects(gos, 1);
|
|
gos[1].transform.position = m_ProjecTileData.target.Get_position();
|
|
|
|
yield return new WaitForSeconds(1f);
|
|
Off(true);
|
|
}
|
|
} |