함정 설치 버그 수정 및 버튼 재터치 시 터지게, 일정 시간 지나면 터지게
This commit is contained in:
parent
14b7c32b97
commit
656862c48a
File diff suppressed because one or more lines are too long
|
|
@ -9775,7 +9775,7 @@ Transform:
|
|||
m_GameObject: {fileID: 2454357183881295607}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalPosition: {x: 0, y: 0.35, z: 0}
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
|
|
@ -29404,8 +29404,8 @@ MonoBehaviour:
|
|||
TrapHitChecker: {fileID: 8525280398112683876}
|
||||
ExplosionHitChecker: {fileID: 455100633965361467}
|
||||
go_danger: {fileID: 7461121852154914100}
|
||||
go_explosion: {fileID: 5139915522768684219}
|
||||
offset: {x: 0, y: 0.35, z: 0}
|
||||
m_distance: 5
|
||||
--- !u!1001 &7462156808509186558
|
||||
PrefabInstance:
|
||||
m_ObjectHideFlags: 0
|
||||
|
|
|
|||
|
|
@ -12,11 +12,11 @@ public class MagicMissile : ProjectileBase
|
|||
{
|
||||
base.Set(_data);
|
||||
hitmobs.Clear();
|
||||
hitmobs.Add(m_ProjectTileData.target);
|
||||
if (m_ProjectTileData.shooter.Get_SelectSkill(eEffect.Select_Bounce))
|
||||
hitmobs.Add(m_ProjecTileData.target);
|
||||
if (m_ProjecTileData.shooter.Get_SelectSkill(eEffect.Select_Bounce))
|
||||
{
|
||||
BounceCount = 4;
|
||||
if (m_ProjectTileData.shooter.Get_SelectSkill(eEffect.Select_Bounce2))
|
||||
if (m_ProjecTileData.shooter.Get_SelectSkill(eEffect.Select_Bounce2))
|
||||
BounceCount = 7;
|
||||
//m_ProjectTileData.SkillDamage *= table_selectskill.Ins.Get_Data(eEffect.Select_Bounce).ValueBase;
|
||||
}
|
||||
|
|
@ -26,7 +26,7 @@ public class MagicMissile : ProjectileBase
|
|||
|
||||
void Update()
|
||||
{
|
||||
if (m_ProjectTileData.target == null)
|
||||
if (m_ProjecTileData.target == null)
|
||||
{
|
||||
Off();
|
||||
return;
|
||||
|
|
@ -39,17 +39,17 @@ public class MagicMissile : ProjectileBase
|
|||
Off(true);
|
||||
}
|
||||
|
||||
var targetpos = m_ProjectTileData.target.Get_Center_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjectTileData.Speed);
|
||||
var targetpos = m_ProjecTileData.target.Get_Center_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjecTileData.Speed);
|
||||
var dist = Vector3.Distance(transform.position, targetpos);
|
||||
if (dist < 0.2f)
|
||||
{
|
||||
--BounceCount;
|
||||
hitmobs.Add(m_ProjectTileData.target);
|
||||
if (m_ProjectTileData.IsSkill())
|
||||
m_ProjectTileData.target.Get_Damage(Get_DamageInfo());
|
||||
hitmobs.Add(m_ProjecTileData.target);
|
||||
if (m_ProjecTileData.IsSkill())
|
||||
m_ProjecTileData.target.Get_Damage(Get_DamageInfo());
|
||||
else
|
||||
m_ProjectTileData.target.Get_Damage(m_ProjectTileData.shooter.Get_DamageInfo(m_ProjectTileData, m_ProjectTileData.HitDamage));
|
||||
m_ProjecTileData.target.Get_Damage(m_ProjecTileData.shooter.Get_DamageInfo(m_ProjecTileData, m_ProjecTileData.HitDamage));
|
||||
|
||||
if (BounceCount > 0)
|
||||
{
|
||||
|
|
@ -58,8 +58,8 @@ public class MagicMissile : ProjectileBase
|
|||
{
|
||||
if (hitmobs.Find(f => f == enemies[i]) == null)
|
||||
{
|
||||
m_ProjectTileData.target = enemies[i];
|
||||
m_LifeTime = m_ProjectTileData.LifeTime;
|
||||
m_ProjecTileData.target = enemies[i];
|
||||
m_LifeTime = m_ProjecTileData.LifeTime;
|
||||
Show_HitEffect(false, enemies[i]);
|
||||
return;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@ public class ProjectileHitChecker : MonoBehaviour
|
|||
}
|
||||
private void ProcessCollider(Collider other)
|
||||
{
|
||||
if (DSUtil.CheckNull(m_ProjectileBase)) return;
|
||||
if (m_ProjectileBase.ProcessCollider(other, !Off_OnlyThisObj_byHit, NoDMG) && Off_OnlyThisObj_byHit)
|
||||
gameObject.SetActive(false);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ public class Projectile_JustFoward : ProjectileBase
|
|||
|
||||
private void Update()
|
||||
{
|
||||
transform.Translate(m_ProjectTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
transform.Translate(m_ProjecTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
transform.position = new Vector3(transform.position.x, yPos, transform.position.z);
|
||||
m_LifeTime -= Time.deltaTime;
|
||||
if (m_LifeTime <= 0f)
|
||||
|
|
|
|||
|
|
@ -14,11 +14,11 @@ public class Projectile_Keepmove : ProjectileBase
|
|||
|
||||
IEnumerator Co_Move()
|
||||
{
|
||||
while (m_ProjectTileData.LifeTime > 0f)
|
||||
while (m_ProjecTileData.LifeTime > 0f)
|
||||
{
|
||||
transform.Translate(m_ProjectTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
transform.Translate(m_ProjecTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
yield return null;
|
||||
m_ProjectTileData.LifeTime -= Time.deltaTime;
|
||||
m_ProjecTileData.LifeTime -= Time.deltaTime;
|
||||
}
|
||||
|
||||
var anim = GetComponent<Animation>();
|
||||
|
|
|
|||
|
|
@ -6,6 +6,6 @@ public class Projectile_Stop : ProjectileBase
|
|||
{
|
||||
base.Set(_data);
|
||||
transform.eulerAngles = Vector3.zero; // 근접 공격 판정은 회전 x
|
||||
StartCoroutine(Co_Off(m_ProjectTileData.LifeTime));
|
||||
StartCoroutine(Co_Off(m_ProjecTileData.LifeTime));
|
||||
}
|
||||
}
|
||||
|
|
@ -40,10 +40,10 @@ public class Projectile_Suriken : ProjectileBase
|
|||
|
||||
while (m_LifeTime > 0f)
|
||||
{
|
||||
if (DSUtil.CheckNull(m_ProjectTileData.shooter)) break;
|
||||
if (DSUtil.CheckNull(m_ProjecTileData.shooter)) break;
|
||||
|
||||
for (int i = 0; i < list_suriken.Count; i++)
|
||||
list_suriken[i].Translate(m_ProjectTileData.Speed * Time.deltaTime * list_suriken[i].forward);
|
||||
list_suriken[i].Translate(m_ProjecTileData.Speed * Time.deltaTime * list_suriken[i].forward);
|
||||
|
||||
m_LifeTime -= Time.deltaTime;
|
||||
yield return null;
|
||||
|
|
|
|||
|
|
@ -18,12 +18,12 @@ public class Projectile_WaveMove : ProjectileBase
|
|||
float totalDistance = Vector3.Distance(start, end);
|
||||
Vector3 direction = (end - start).normalized; // 목표 지점으로의 방향
|
||||
|
||||
while (elapsedTime * m_ProjectTileData.Speed < totalDistance)
|
||||
while (elapsedTime * m_ProjecTileData.Speed < totalDistance)
|
||||
{
|
||||
elapsedTime += Time.deltaTime;
|
||||
|
||||
// 현재 직선상의 위치
|
||||
Vector3 linearPosition = start + direction * (elapsedTime * m_ProjectTileData.Speed);
|
||||
Vector3 linearPosition = start + direction * (elapsedTime * m_ProjecTileData.Speed);
|
||||
|
||||
// 사인파로 X축 좌우 흔들림 추가
|
||||
float waveOffsetX = Mathf.Sin(elapsedTime * waveFrequency + wavePhase) * waveAmplitude;
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ public class ProjectileBase : MonoBehaviour
|
|||
public bool m_Pierce;
|
||||
public string str_HitEffect;
|
||||
protected bool bFirstLoad = true;
|
||||
protected ProjectileData m_ProjectTileData;
|
||||
protected ProjectileData m_ProjecTileData;
|
||||
protected float m_LifeTime;
|
||||
protected Vector3 v3_scale;
|
||||
protected Action<double> act_returnDmg;
|
||||
|
|
@ -114,38 +114,38 @@ public class ProjectileBase : MonoBehaviour
|
|||
public virtual void Set(ProjectileData _data)
|
||||
{
|
||||
_data.AddDmgPercent = _data.CC_AddTime = _data.CC_AddDmg = _data.CC_AddVal1 = _data.CC_AddVal2 = 0f;
|
||||
m_ProjectTileData = _data;
|
||||
m_ProjectTileData.m_ProjectileBase = this;
|
||||
m_ProjecTileData = _data;
|
||||
m_ProjecTileData.m_ProjectileBase = this;
|
||||
m_DamageInfo = Get_NewDamageInfo();
|
||||
|
||||
var isNullTarget = DSUtil.CheckNull(m_ProjectTileData.target);
|
||||
var isNullTarget = DSUtil.CheckNull(m_ProjecTileData.target);
|
||||
|
||||
if (m_ProjectTileData.IsSkill())
|
||||
if (m_ProjecTileData.IsSkill())
|
||||
{
|
||||
var skillData = m_ProjectTileData.m_SkillListTableData;
|
||||
if (m_ProjectTileData.SetSkillExtraType)
|
||||
m_ProjectTileData.e_SkillExtraType = skillData.e_SkillExtraType;
|
||||
var skillData = m_ProjecTileData.m_SkillListTableData;
|
||||
if (m_ProjecTileData.SetSkillExtraType)
|
||||
m_ProjecTileData.e_SkillExtraType = skillData.e_SkillExtraType;
|
||||
}
|
||||
else
|
||||
{
|
||||
transform.localScale = v3_scale;
|
||||
var statinfo = m_ProjectTileData.shooter.Get_StatInfo();
|
||||
var statinfo = m_ProjecTileData.shooter.Get_StatInfo();
|
||||
if (!DSUtil.CheckNull(statinfo))
|
||||
{
|
||||
m_ProjectTileData.Speed += (float)statinfo.Get_Stat(eStat.ProjectileSpeed_Up);
|
||||
m_ProjecTileData.Speed += (float)statinfo.Get_Stat(eStat.ProjectileSpeed_Up);
|
||||
transform.localScale += v3_scale * (float)statinfo.Get_Stat(eStat.ProjectileSize_Up);
|
||||
}
|
||||
}
|
||||
|
||||
m_ProjectTileData.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(m_ProjectTileData.e_SkillExtraType);
|
||||
if (!isNullTarget && !DSUtil.CheckNull(m_ProjectTileData.m_skillTypeConfigTable) &&
|
||||
m_ProjectTileData.m_skillTypeConfigTable.e_SkillExtraTiming == eSkillExtraTiming.Start)
|
||||
m_ProjectTileData.target.Check_Extra(m_DamageInfo);
|
||||
m_ProjecTileData.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(m_ProjecTileData.e_SkillExtraType);
|
||||
if (!isNullTarget && !DSUtil.CheckNull(m_ProjecTileData.m_skillTypeConfigTable) &&
|
||||
m_ProjecTileData.m_skillTypeConfigTable.e_SkillExtraTiming == eSkillExtraTiming.Start)
|
||||
m_ProjecTileData.target.Check_Extra(m_DamageInfo);
|
||||
|
||||
if (m_ProjectTileData.CheckOptionWhenStart)
|
||||
if (m_ProjecTileData.CheckOptionWhenStart)
|
||||
{
|
||||
m_ProjectTileData.CheckOptionWhenStart = false;
|
||||
m_ProjectTileData.shooter.Check_EnchantOption(m_DamageInfo, false);
|
||||
m_ProjecTileData.CheckOptionWhenStart = false;
|
||||
m_ProjecTileData.shooter.Check_EnchantOption(m_DamageInfo, false);
|
||||
}
|
||||
|
||||
Set_Checkers();
|
||||
|
|
@ -188,7 +188,7 @@ public class ProjectileBase : MonoBehaviour
|
|||
|
||||
protected void LookAt_ShooterFoward()
|
||||
{
|
||||
transform.rotation = m_ProjectTileData.shooter.transform.rotation;
|
||||
transform.rotation = m_ProjecTileData.shooter.transform.rotation;
|
||||
transform.eulerAngles = new Vector3(0f, transform.eulerAngles.y);
|
||||
}
|
||||
|
||||
|
|
@ -198,7 +198,7 @@ public class ProjectileBase : MonoBehaviour
|
|||
protected void Set_ReduceCoolTime_byStep(int step)
|
||||
{
|
||||
if (IsStep(step))
|
||||
m_ProjectTileData.shooter.Set_SkillCoolTime(false, m_ProjectTileData.m_SkillListTableData.n_SkillID,
|
||||
m_ProjecTileData.shooter.Set_SkillCoolTime(false, m_ProjecTileData.m_SkillListTableData.n_SkillID,
|
||||
Get_AwakenData(step, 1));
|
||||
}
|
||||
|
||||
|
|
@ -207,71 +207,71 @@ public class ProjectileBase : MonoBehaviour
|
|||
/// </summary>
|
||||
public void Show_Effect(Actor target, float effectLifeTime = 5f, CCData ccdata = null)
|
||||
{
|
||||
InGameInfo.Ins.Show_SkillTypeEffect(m_ProjectTileData, target, effectLifeTime, ccdata);
|
||||
InGameInfo.Ins.Show_SkillTypeEffect(m_ProjecTileData, target, effectLifeTime, ccdata);
|
||||
}
|
||||
public virtual void Set_Shooter(Actor _shoter) { if (m_ProjectTileData != null) m_ProjectTileData.shooter = _shoter; }
|
||||
public virtual void Set_Shooter(Actor _shoter) { if (m_ProjecTileData != null) m_ProjecTileData.shooter = _shoter; }
|
||||
protected void Check_TargetBoss()
|
||||
{
|
||||
if (m_ProjectTileData != null)
|
||||
if (m_ProjecTileData != null)
|
||||
{
|
||||
if (!m_ProjectTileData.target.IsRole(eRole.Boss) || m_ProjectTileData.target.transform.localScale.x <= 2f)
|
||||
if (!m_ProjecTileData.target.IsRole(eRole.Boss) || m_ProjecTileData.target.transform.localScale.x <= 2f)
|
||||
{
|
||||
var enemies = Get_Enemies(transform, 8f);
|
||||
var boss = enemies.Find(f => f.IsRole(eRole.Boss) || f.transform.localScale.x > 2f);
|
||||
if (boss != null)
|
||||
m_ProjectTileData.target = boss;
|
||||
m_ProjecTileData.target = boss;
|
||||
}
|
||||
}
|
||||
}
|
||||
public ProjectileData Get_ProjectTileData() { return m_ProjectTileData; }
|
||||
public ProjectileData Get_ProjectTileData() { return m_ProjecTileData; }
|
||||
DamageInfo Get_SkillDamage()
|
||||
{
|
||||
var dinfo = m_ProjectTileData.shooter.Get_DamageInfo(m_ProjectTileData, m_ProjectTileData.Get_SkillDamagePercent(),
|
||||
m_ProjectTileData.CC_AddVal2 > 0 && m_ProjectTileData.m_SkillListTableData.e_Skill == eEffect.Skill_IceBolt &&
|
||||
m_ProjectTileData.target.IsSkillExtraStatus(eSkillExtraType.Frost));
|
||||
var dinfo = m_ProjecTileData.shooter.Get_DamageInfo(m_ProjecTileData, m_ProjecTileData.Get_SkillDamagePercent(),
|
||||
m_ProjecTileData.CC_AddVal2 > 0 && m_ProjecTileData.m_SkillListTableData.e_Skill == eEffect.Skill_IceBolt &&
|
||||
m_ProjecTileData.target.IsSkillExtraStatus(eSkillExtraType.Frost));
|
||||
dinfo.act_returnLastDmg = act_returnDmg;
|
||||
dinfo.act_AfterFreezing = act_afterFreezing;
|
||||
return dinfo;
|
||||
}
|
||||
protected DamageInfo Get_NewDamageInfo()
|
||||
{
|
||||
return m_ProjectTileData.IsSkill() ? Get_SkillDamage() : m_ProjectTileData.shooter.Get_DamageInfo(m_ProjectTileData);
|
||||
return m_ProjecTileData.IsSkill() ? Get_SkillDamage() : m_ProjecTileData.shooter.Get_DamageInfo(m_ProjecTileData);
|
||||
}
|
||||
protected DamageInfo Get_DamageInfo(bool extradmg = false, bool calcri = true)
|
||||
{
|
||||
m_DamageInfo.Damage = m_DamageInfo.BaseDmg;
|
||||
m_DamageInfo.bExtraDmg = extradmg;
|
||||
if (calcri) m_DamageInfo.Cal_Cri(m_ProjectTileData.shooter.m_AttackType, m_ProjectTileData.shooter.Get_StatInfo());
|
||||
if (calcri) m_DamageInfo.Cal_Cri(m_ProjecTileData.shooter.m_AttackType, m_ProjecTileData.shooter.Get_StatInfo());
|
||||
return m_DamageInfo;
|
||||
}
|
||||
protected bool IsStep(int _step)
|
||||
{
|
||||
var sdata = m_ProjectTileData.shooter.Get_ServerData();
|
||||
var sdata = m_ProjecTileData.shooter.Get_ServerData();
|
||||
if (!DSUtil.CheckNull(sdata))
|
||||
{
|
||||
if (m_ProjectTileData.shooter.IsRole(eRole.PC))
|
||||
return sdata.Get_SkillAwakenLv(m_ProjectTileData.m_SkillListTableData.n_SkillID) >= _step;
|
||||
if (m_ProjecTileData.shooter.IsRole(eRole.PC))
|
||||
return sdata.Get_SkillAwakenLv(m_ProjecTileData.m_SkillListTableData.n_SkillID) >= _step;
|
||||
else
|
||||
return sdata.Get_PetSkillAwakenLv(m_ProjectTileData.shooter.Get_ID()) >= _step;
|
||||
return sdata.Get_PetSkillAwakenLv(m_ProjecTileData.shooter.Get_ID()) >= _step;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
protected Actor Get_NearstEnemy(float dist = 20f)
|
||||
{ return ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjectTileData.shooter.IsEnemy(), transform.position, dist); }
|
||||
{ return ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjecTileData.shooter.IsEnemy(), transform.position, dist); }
|
||||
protected List<Actor> Get_Enemies()
|
||||
{ return ActorInfo.Ins.Get_EnemyActors(m_ProjectTileData.shooter.IsEnemy(), transform.position); }
|
||||
{ return ActorInfo.Ins.Get_EnemyActors(m_ProjecTileData.shooter.IsEnemy(), transform.position); }
|
||||
protected List<Actor> Get_Enemies(Transform tf, float dist)
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
if (UnityEngine.SceneManagement.SceneManager.GetActiveScene().name == "StatTest")
|
||||
return new List<Actor> { MainToStatTest.Ins.actors[1] };
|
||||
#endif
|
||||
return ActorInfo.Ins.Get_EnemyActors(m_ProjectTileData.shooter.IsEnemy(), tf.position, dist);
|
||||
return ActorInfo.Ins.Get_EnemyActors(m_ProjecTileData.shooter.IsEnemy(), tf.position, dist);
|
||||
}
|
||||
|
||||
protected void Show_HitEffect(bool effectbyHit, Actor target)
|
||||
{
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData) && !string.IsNullOrEmpty(str_HitEffect))
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData) && !string.IsNullOrEmpty(str_HitEffect))
|
||||
InGameInfo.Ins.Show_Effect(str_HitEffect, Get_HitEffectPos(effectbyHit, target));
|
||||
}
|
||||
Vector3 Get_HitEffectPos(bool effectbyHit, Actor target)
|
||||
|
|
@ -321,15 +321,15 @@ public class ProjectileBase : MonoBehaviour
|
|||
}
|
||||
protected IEnumerator Co_Move_Strait(eProjectileStrait direction)
|
||||
{
|
||||
while (m_ProjectTileData.LifeTime > 0f)
|
||||
while (m_ProjecTileData.LifeTime > 0f)
|
||||
{
|
||||
if (DSUtil.CheckNull(m_ProjectTileData.shooter)) break;
|
||||
if (DSUtil.CheckNull(m_ProjecTileData.shooter)) break;
|
||||
if (direction == eProjectileStrait.Forward)
|
||||
transform.Translate(m_ProjectTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
transform.Translate(m_ProjecTileData.Speed * Time.deltaTime * Vector3.forward);
|
||||
else
|
||||
transform.Translate(m_ProjectTileData.Speed * Time.deltaTime * Vector3.down);
|
||||
transform.Translate(m_ProjecTileData.Speed * Time.deltaTime * Vector3.down);
|
||||
|
||||
m_ProjectTileData.LifeTime -= Time.deltaTime;
|
||||
m_ProjecTileData.LifeTime -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
|
|
@ -346,13 +346,13 @@ public class ProjectileBase : MonoBehaviour
|
|||
case "Pet":
|
||||
case "Mob":
|
||||
case "Summon":
|
||||
if (DSUtil.CheckNull(m_ProjectTileData)) break;
|
||||
if (DSUtil.CheckNull(m_ProjecTileData)) break;
|
||||
|
||||
var hitter = other.GetComponent<Actor>();
|
||||
if (m_ProjectTileData.shooter.IsEnemy() != hitter.IsEnemy())
|
||||
if (m_ProjecTileData.shooter.IsEnemy() != hitter.IsEnemy())
|
||||
{
|
||||
if (!noDmg) hitter.Get_Damage(Get_DamageInfo());
|
||||
m_ProjectTileData.Action_OnHit?.Invoke(hitter);
|
||||
m_ProjecTileData.Action_OnHit?.Invoke(hitter);
|
||||
Show_HitEffect(true, hitter);
|
||||
if (Off_byHit) Off(false);
|
||||
return true;
|
||||
|
|
@ -377,7 +377,7 @@ public class ProjectileBase : MonoBehaviour
|
|||
|
||||
protected float Get_AwakenData(int step, int index)
|
||||
{
|
||||
var data = table_skillawakenconfig.Ins.Get_Data_orNull(m_ProjectTileData.m_SkillListTableData.n_SkillID, step);
|
||||
var data = table_skillawakenconfig.Ins.Get_Data_orNull(m_ProjecTileData.m_SkillListTableData.n_SkillID, step);
|
||||
if (DSUtil.CheckNull(data))
|
||||
return 0f;
|
||||
|
||||
|
|
@ -391,17 +391,17 @@ public class ProjectileBase : MonoBehaviour
|
|||
}
|
||||
protected int Get_FairyCount(eEffect _effect)
|
||||
{
|
||||
return m_ProjectTileData.shooter.Get_SelectSkill(_effect) ? 4 : 1;
|
||||
return m_ProjecTileData.shooter.Get_SelectSkill(_effect) ? 4 : 1;
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
protected void Add_AwakendLv(int lv)
|
||||
{
|
||||
if (m_ProjectTileData.shooter.IsRole(eRole.PC))
|
||||
if (m_ProjecTileData.shooter.IsRole(eRole.PC))
|
||||
for (int i = 0; i < lv; i++)
|
||||
m_ProjectTileData.shooter.Get_ServerData().Add_SkillAwakenLv(m_ProjectTileData.m_SkillListTableData.n_SkillID);
|
||||
else if (m_ProjectTileData.shooter.IsRole(eRole.Pet))
|
||||
m_ProjectTileData.shooter.Get_ServerData().Add_PetLv(m_ProjectTileData.shooter.Get_ID(), lv * 15);
|
||||
m_ProjecTileData.shooter.Get_ServerData().Add_SkillAwakenLv(m_ProjecTileData.m_SkillListTableData.n_SkillID);
|
||||
else if (m_ProjecTileData.shooter.IsRole(eRole.Pet))
|
||||
m_ProjecTileData.shooter.Get_ServerData().Add_PetLv(m_ProjecTileData.shooter.Get_ID(), lv * 15);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
|
@ -9,30 +9,30 @@ public class ProjectileTest : ProjectileBase
|
|||
{
|
||||
void Update()
|
||||
{
|
||||
if (m_ProjectTileData.target == null)
|
||||
if (m_ProjecTileData.target == null)
|
||||
{
|
||||
Off();
|
||||
return;
|
||||
}
|
||||
|
||||
var targetpos = m_ProjectTileData.target.Get_Center_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjectTileData.Speed);
|
||||
var targetpos = m_ProjecTileData.target.Get_Center_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjecTileData.Speed);
|
||||
if (Vector3.Distance(transform.position, targetpos) < 0.2f)
|
||||
{
|
||||
Off();
|
||||
if (m_ProjectTileData.DamageArea > 0f)
|
||||
if (m_ProjecTileData.DamageArea > 0f)
|
||||
{
|
||||
var enemies = Get_Enemies(transform, m_ProjectTileData.DamageArea);
|
||||
var enemies = Get_Enemies(transform, m_ProjecTileData.DamageArea);
|
||||
for (int i = 0; i < enemies.Count; i++)
|
||||
{
|
||||
enemies[i].Get_Damage(Get_DamageInfo());
|
||||
m_ProjectTileData.Action_OnHit?.Invoke(enemies[i]);
|
||||
m_ProjecTileData.Action_OnHit?.Invoke(enemies[i]);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_ProjectTileData.target.Get_Damage(Get_DamageInfo());
|
||||
m_ProjectTileData.Action_OnHit?.Invoke(m_ProjectTileData.target);
|
||||
m_ProjecTileData.target.Get_Damage(Get_DamageInfo());
|
||||
m_ProjecTileData.Action_OnHit?.Invoke(m_ProjecTileData.target);
|
||||
}
|
||||
}
|
||||
m_LifeTime -= Time.deltaTime;
|
||||
|
|
|
|||
|
|
@ -21,11 +21,11 @@ public class Bottle : ProjectileBase
|
|||
{
|
||||
var enemies = Get_Enemies(transform, 1.0f);
|
||||
for (int i = 0; i < enemies.Count; i++)
|
||||
enemies[i].Get_Damage(m_ProjectTileData.shooter.Get_DamageInfo(m_ProjectTileData));
|
||||
enemies[i].Get_Damage(m_ProjecTileData.shooter.Get_DamageInfo(m_ProjecTileData));
|
||||
Off();
|
||||
SoundInfo.Ins.Play_OneShot_byDistance(eSound.s006_BreakBottle, transform.position, 0.15f);
|
||||
},
|
||||
m_ProjectTileData.shooter.Get_Center_position(),
|
||||
m_ProjecTileData.shooter.Get_Center_position(),
|
||||
_data.v3_StartPos,
|
||||
Random.Range(1f, 2f),
|
||||
Random.Range(0.25f, 0.5f)));
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ public class SelectCirclrBase : ProjectileBase
|
|||
|
||||
private void Update()
|
||||
{
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
transform.localEulerAngles = new Vector3(0f, y);
|
||||
y += Time.deltaTime * 120f;
|
||||
if (y > 360f) y = 0f;
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ public class SelectFairyBase : ProjectileBase
|
|||
gos[1].SetActive(true);
|
||||
if (FairyCount == 1)
|
||||
{
|
||||
var mob = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjectTileData.shooter.IsEnemy(), transform.position);
|
||||
var mob = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjecTileData.shooter.IsEnemy(), transform.position);
|
||||
if (mob != null && !mob.IsDead())
|
||||
Set_CC(mob);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ public class Select_BodyonFire : ProjectileBase
|
|||
DagameTime = 0.2f;
|
||||
var enemies = Get_Enemies(transform, 2.5f);
|
||||
for (int i = 0; i < enemies.Count; i++)
|
||||
enemies[i].Get_Damage(m_ProjectTileData.shooter.Get_DamageInfo(m_ProjectTileData, DamageRate));
|
||||
enemies[i].Get_Damage(m_ProjecTileData.shooter.Get_DamageInfo(m_ProjecTileData, DamageRate));
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
@ -41,6 +41,6 @@ public class Select_BodyonFire : ProjectileBase
|
|||
}
|
||||
}
|
||||
|
||||
transform.position = m_ProjectTileData.shooter.Get_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_position();
|
||||
}
|
||||
}
|
||||
|
|
@ -22,15 +22,15 @@ public class Select_Bottle : ProjectileBase
|
|||
|
||||
while (true)
|
||||
{
|
||||
if (m_ProjectTileData.shooter.IsDead()) break;
|
||||
if (m_ProjecTileData.shooter.IsDead()) break;
|
||||
yield return new WaitForSeconds(4f);
|
||||
m_ProjectTileData.target = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjectTileData.shooter.IsEnemy(), m_ProjectTileData.shooter.Get_position());
|
||||
if (m_ProjectTileData.target)
|
||||
m_ProjecTileData.target = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjecTileData.shooter.IsEnemy(), m_ProjecTileData.shooter.Get_position());
|
||||
if (m_ProjecTileData.target)
|
||||
{
|
||||
m_ProjectTileData.v3_StartPos = m_ProjectTileData.target.Get_position();
|
||||
if (Vector3.Distance(m_ProjectTileData.target.Get_position(), m_ProjectTileData.shooter.Get_position()) < 15f)
|
||||
m_ProjecTileData.v3_StartPos = m_ProjecTileData.target.Get_position();
|
||||
if (Vector3.Distance(m_ProjecTileData.target.Get_position(), m_ProjecTileData.shooter.Get_position()) < 15f)
|
||||
for (int i = 0; i < arr_Bottle.Length; i++)
|
||||
arr_Bottle[i].Set(m_ProjectTileData);
|
||||
arr_Bottle[i].Set(m_ProjecTileData);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,10 +32,10 @@ public class Select_LeafFairy : ProjectileBase
|
|||
for (int i = 0; i < FairyCount; i++)
|
||||
{
|
||||
var pos = randomPos + Random.insideUnitSphere;
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position() + pos;
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position() + pos;
|
||||
|
||||
var mobs = ActorInfo.Ins.Get_EnemyActors(m_ProjectTileData.shooter.IsEnemy(),
|
||||
m_ProjectTileData.shooter.Get_position(), 0f, eAttackType.Physics);
|
||||
var mobs = ActorInfo.Ins.Get_EnemyActors(m_ProjecTileData.shooter.IsEnemy(),
|
||||
m_ProjecTileData.shooter.Get_position(), 0f, eAttackType.Physics);
|
||||
if (mobs.Count > 0)
|
||||
{
|
||||
var mob = mobs[Random.Range(0, mobs.Count)];
|
||||
|
|
|
|||
|
|
@ -12,6 +12,6 @@ public class Select_MoveSpeedUp : ProjectileBase
|
|||
}
|
||||
private void Update()
|
||||
{
|
||||
transform.position = m_ProjectTileData.shooter.Get_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_position();
|
||||
}
|
||||
}
|
||||
|
|
@ -23,8 +23,8 @@ public class Select_Star : ProjectileBase
|
|||
var rad = Mathf.Deg2Rad * deg * i;
|
||||
var x = circleR * Mathf.Sin(rad);
|
||||
var z = circleR * Mathf.Cos(rad);
|
||||
var pos = m_ProjectTileData.shooter.Get_Center_position() + new Vector3(x, 2f, z);
|
||||
ProjectileInfo.Ins.Shoot_Projectile("ProjectileStar", m_ProjectTileData.shooter, null, damagerate.ValueBase, pos);
|
||||
var pos = m_ProjecTileData.shooter.Get_Center_position() + new Vector3(x, 2f, z);
|
||||
ProjectileInfo.Ins.Shoot_Projectile("ProjectileStar", m_ProjecTileData.shooter, null, damagerate.ValueBase, pos);
|
||||
//InGameInfo.Ins.Show_Effect(eEffect.ProjectileStarFlash, pos);
|
||||
|
||||
yield return new WaitForSeconds(0.05f);
|
||||
|
|
|
|||
|
|
@ -23,9 +23,9 @@ public class Select_SwordSlash : ProjectileBase
|
|||
|
||||
void Shoot(float DamageRate)
|
||||
{
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
var target = m_ProjectTileData.shooter.Get_Target();
|
||||
if (target == null) target = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjectTileData.shooter.IsEnemy(), m_ProjectTileData.shooter.Get_position());
|
||||
if (target != null) ProjectileInfo.Ins.Shoot_Projectile("SwordSlash", m_ProjectTileData.shooter, target, DamageRate, null, 0.9f);
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
var target = m_ProjecTileData.shooter.Get_Target();
|
||||
if (target == null) target = ActorInfo.Ins.Get_Nearest_EnemyActor_orNull(m_ProjecTileData.shooter.IsEnemy(), m_ProjecTileData.shooter.Get_position());
|
||||
if (target != null) ProjectileInfo.Ins.Shoot_Projectile("SwordSlash", m_ProjecTileData.shooter, target, DamageRate, null, 0.9f);
|
||||
}
|
||||
}
|
||||
|
|
@ -40,7 +40,7 @@ public class Skill_Bead : ProjectileBase
|
|||
IEnumerator Co_Bead()
|
||||
{
|
||||
// 시작 위치 설정
|
||||
var startPos = m_ProjectTileData.shooter.Get_Center_position();
|
||||
var startPos = m_ProjecTileData.shooter.Get_Center_position();
|
||||
var targetPos = startPos + transform.forward * 5f; // 앞으로 이동할 목표 위치 (5 단위)
|
||||
|
||||
float duration = 2f; // 이동 시간
|
||||
|
|
|
|||
|
|
@ -20,20 +20,20 @@ public class Skill_Berserk : ProjectileBase
|
|||
|
||||
IEnumerator Co_Update()
|
||||
{
|
||||
var time = m_ProjectTileData.Get_SkillDamagePercent();
|
||||
var time = m_ProjecTileData.Get_SkillDamagePercent();
|
||||
if (time <= 0f) time = 5f; // TODO 정인호 : 테스트
|
||||
// 이펙트
|
||||
InGameInfo.Ins.Show_Effect("Effect_Howling", m_ProjectTileData.target.Get_Center_position());
|
||||
InGameInfo.Ins.Show_Effect("Effect_Berserk", m_ProjectTileData.target, eEffectLocation.Mid, time);
|
||||
InGameInfo.Ins.Show_Effect("Effect_Howling", m_ProjecTileData.target.Get_Center_position());
|
||||
InGameInfo.Ins.Show_Effect("Effect_Berserk", m_ProjecTileData.target, eEffectLocation.Mid, time);
|
||||
// 커짐
|
||||
m_ProjectTileData.target.Set_ScaleControl(false);
|
||||
m_ProjectTileData.target.Buff_or_Debuff(eCC.Cri_Up, time, cri);
|
||||
m_ProjectTileData.target.Buff_or_Debuff(eCC.ATK_Up, time, attackspeed);
|
||||
m_ProjectTileData.target.Buff_or_Debuff(eCC.DEF_Down, time, defdown);
|
||||
m_ProjectTileData.target.Buff_or_Debuff(eCC.M_DEF_Down, time, mdefdown);
|
||||
m_ProjecTileData.target.Set_ScaleControl(false);
|
||||
m_ProjecTileData.target.Buff_or_Debuff(eCC.Cri_Up, time, cri);
|
||||
m_ProjecTileData.target.Buff_or_Debuff(eCC.ATK_Up, time, attackspeed);
|
||||
m_ProjecTileData.target.Buff_or_Debuff(eCC.DEF_Down, time, defdown);
|
||||
m_ProjecTileData.target.Buff_or_Debuff(eCC.M_DEF_Down, time, mdefdown);
|
||||
// Off & 원래대로 돌아오기
|
||||
yield return new WaitForSeconds(time);
|
||||
m_ProjectTileData.target.Set_ScaleControl(true);
|
||||
m_ProjecTileData.target.Set_ScaleControl(true);
|
||||
Off(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -22,7 +22,7 @@ public class Skill_BlackHole : ProjectileBase
|
|||
m_LifeTime = lifetime;
|
||||
m_DagmaeGap = damagegap;
|
||||
|
||||
var skillid = m_ProjectTileData.m_SkillListTableData.n_SkillID;
|
||||
var skillid = m_ProjecTileData.m_SkillListTableData.n_SkillID;
|
||||
if (IsStep(1))
|
||||
{
|
||||
range += Get_AwakenData(1, 1);
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ public class Skill_BrutalSlash : ProjectileBase
|
|||
|
||||
yield return null;
|
||||
Off(true);
|
||||
m_ProjectTileData.shooter.Stop(false);
|
||||
m_ProjecTileData.shooter.Stop(false);
|
||||
}
|
||||
|
||||
void Shoot_Projectile(int index, string proj)
|
||||
|
|
@ -50,15 +50,15 @@ public class Skill_BrutalSlash : ProjectileBase
|
|||
{
|
||||
Vector3 randomPosition = GetRandomPositionInSector();
|
||||
pb.m_Pierce = true;
|
||||
pb.transform.position = m_ProjectTileData.shooter.Get_CenterPositionFoward();
|
||||
pb.transform.position = m_ProjecTileData.shooter.Get_CenterPositionFoward();
|
||||
pb.transform.LookAt(
|
||||
new Vector3(randomPosition.x, m_ProjectTileData.shooter.Get_Center_position().y, randomPosition.z));
|
||||
new Vector3(randomPosition.x, m_ProjecTileData.shooter.Get_Center_position().y, randomPosition.z));
|
||||
});
|
||||
}
|
||||
|
||||
Vector3 GetRandomPositionInSector()
|
||||
{
|
||||
return (Random.insideUnitSphere * 10f) +
|
||||
(m_ProjectTileData.shooter.Get_position() + m_ProjectTileData.shooter.transform.forward * 20f);
|
||||
(m_ProjecTileData.shooter.Get_position() + m_ProjecTileData.shooter.transform.forward * 20f);
|
||||
}
|
||||
}
|
||||
|
|
@ -15,13 +15,13 @@ public class Skill_Buff_FastShot : ProjectileBase
|
|||
|
||||
void Update()
|
||||
{
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
}
|
||||
|
||||
IEnumerator Co_FastShot()
|
||||
{
|
||||
yield return new WaitForSeconds(5f);
|
||||
m_ProjectTileData.shooter.Set_AttackCoolTime(2f);
|
||||
m_ProjecTileData.shooter.Set_AttackCoolTime(2f);
|
||||
Off();
|
||||
}
|
||||
}
|
||||
|
|
@ -13,7 +13,7 @@ public class Skill_ChainLightning : ProjectileBase
|
|||
_data.eStartPos = eProjectileStartPos.ShooterCenter;
|
||||
transform.localScale = Vector3.one * 1.5f;
|
||||
base.Set(_data);
|
||||
m_ProjectTileData.Speed = 40f;
|
||||
m_ProjecTileData.Speed = 40f;
|
||||
m_Count = IsStep(1) ? 8 : 4;
|
||||
m_LifeTime = 0f;
|
||||
OffTime = 0f;
|
||||
|
|
@ -39,7 +39,7 @@ public class Skill_ChainLightning : ProjectileBase
|
|||
if (m_LifeTime <= 0f)
|
||||
{
|
||||
var targetpos = list_mob[0].Get_Center_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjectTileData.Speed);
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * m_ProjecTileData.Speed);
|
||||
if (Vector3.Distance(transform.position, targetpos) < 0.2f)
|
||||
{
|
||||
m_LifeTime = 0.3f;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ public class Skill_DaggerThrow : ProjectileBase
|
|||
base.Set(_data);
|
||||
|
||||
if (IsStep(1)) Set_ReduceCoolTime_byStep(1);
|
||||
m_ProjectTileData.e_SkillExtraType = IsStep(2) ? eSkillExtraType.Blood : eSkillExtraType.None;
|
||||
m_ProjecTileData.e_SkillExtraType = IsStep(2) ? eSkillExtraType.Blood : eSkillExtraType.None;
|
||||
if (IsStep(3))
|
||||
{
|
||||
DSUtil.InActivateGameObjects(gos, 1);
|
||||
|
|
@ -33,14 +33,14 @@ public class Skill_DaggerThrow : ProjectileBase
|
|||
for (int i = 0; i < tfs_nine.Length; i++)
|
||||
tfs_nine[i].localPosition = Vector3.zero;
|
||||
|
||||
while (m_ProjectTileData.LifeTime > 0f)
|
||||
while (m_ProjecTileData.LifeTime > 0f)
|
||||
{
|
||||
if (DSUtil.CheckNull(m_ProjectTileData.shooter)) break;
|
||||
if (DSUtil.CheckNull(m_ProjecTileData.shooter)) break;
|
||||
|
||||
for (int i = 0; i < tfs_nine.Length; i++)
|
||||
tfs_nine[i].Translate(m_ProjectTileData.Speed * Time.deltaTime * tfs_nine[i].forward);
|
||||
tfs_nine[i].Translate(m_ProjecTileData.Speed * Time.deltaTime * tfs_nine[i].forward);
|
||||
|
||||
m_ProjectTileData.LifeTime -= Time.deltaTime;
|
||||
m_ProjecTileData.LifeTime -= Time.deltaTime;
|
||||
yield return null;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ public class Skill_DarkAmbush : ProjectileBase
|
|||
protected override void Off(bool forceoff = false)
|
||||
{
|
||||
base.Off(forceoff);
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData) && !DSUtil.CheckNull(m_ProjectTileData.shooter))
|
||||
m_ProjectTileData.shooter.Play_Idle();
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData) && !DSUtil.CheckNull(m_ProjecTileData.shooter))
|
||||
m_ProjecTileData.shooter.Play_Idle();
|
||||
}
|
||||
}
|
||||
|
|
@ -7,8 +7,8 @@ public class Skill_EatSnack : ProjectileBase
|
|||
base.Set(_data);
|
||||
var healrate = Get_DamageInfo(false, false).Damage + (IsStep(2) ? Get_AwakenData(2, 1) : 0f);
|
||||
|
||||
m_ProjectTileData.target.Heal(healrate);
|
||||
if (IsStep(1)) m_ProjectTileData.target.Heal_MP(healrate);
|
||||
m_ProjecTileData.target.Heal(healrate);
|
||||
if (IsStep(1)) m_ProjecTileData.target.Heal_MP(healrate);
|
||||
|
||||
Set_ReduceCoolTime_byStep(3);
|
||||
|
||||
|
|
|
|||
|
|
@ -53,10 +53,10 @@ public class Skill_EnergyBall : ProjectileBase
|
|||
// 에너지볼 이동
|
||||
while (m_LifeTime > 0f)
|
||||
{
|
||||
if (DSUtil.CheckNull(m_ProjectTileData.shooter)) break;
|
||||
if (DSUtil.CheckNull(m_ProjecTileData.shooter)) break;
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
list_energyball[i].Translate(m_ProjectTileData.Speed * Time.deltaTime * list_energyball[i].forward);
|
||||
list_energyball[i].Translate(m_ProjecTileData.Speed * Time.deltaTime * list_energyball[i].forward);
|
||||
|
||||
m_LifeTime -= Time.deltaTime;
|
||||
yield return null;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ public class Skill_FireBolt : ProjectileTest
|
|||
if (_data.eStartPos == eProjectileStartPos.None)
|
||||
_data.eStartPos = eProjectileStartPos.ShooterCenter;
|
||||
base.Set(_data);
|
||||
m_ProjectTileData.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Burn : eSkillExtraType.None;
|
||||
m_ProjecTileData.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Burn : eSkillExtraType.None;
|
||||
|
||||
_data.Action_OnHit = hitter =>
|
||||
{ // 폭파 데미지
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ public class Skill_Frozen : ProjectileBase
|
|||
DSUtil.InActivateGameObjects(gos, 0);
|
||||
while (true)
|
||||
{
|
||||
var targetPos = m_ProjectTileData.target.Get_Center_position();
|
||||
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;
|
||||
|
|
@ -46,7 +46,7 @@ public class Skill_Frozen : ProjectileBase
|
|||
}
|
||||
|
||||
DSUtil.InActivateGameObjects(gos, 1);
|
||||
gos[1].transform.position = m_ProjectTileData.target.Get_position();
|
||||
gos[1].transform.position = m_ProjecTileData.target.Get_position();
|
||||
|
||||
yield return new WaitForSeconds(1f);
|
||||
Off(true);
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@ public class Skill_GroundRay : ProjectileBase
|
|||
|
||||
private void Update()
|
||||
{
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData.target))
|
||||
transform.position = m_ProjectTileData.target.Get_position();
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData.target))
|
||||
transform.position = m_ProjecTileData.target.Get_position();
|
||||
}
|
||||
}
|
||||
|
|
@ -12,11 +12,11 @@ public class Skill_Heal : ProjectileBase
|
|||
base.Set(_data);
|
||||
_data.m_skillTypeConfigTable = table_skilltypeconfig.Ins.Get_Data_orNull(eSkillExtraType.Cure);
|
||||
if (IsStep(1)) Set_ReduceCoolTime_byStep(1);
|
||||
m_ProjectTileData.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Cure : eSkillExtraType.None;
|
||||
m_ProjecTileData.e_SkillExtraType = IsStep(3) ? eSkillExtraType.Cure : eSkillExtraType.None;
|
||||
var healinfo = Get_DamageInfo(false, false);
|
||||
healinfo.Damage += healinfo.Damage * (IsStep(2) ? Get_AwakenData(2, 1) : 0);
|
||||
m_ProjectTileData.target.Check_Extra(healinfo);
|
||||
m_ProjectTileData.target.Heal(healinfo.Damage);
|
||||
m_ProjecTileData.target.Check_Extra(healinfo);
|
||||
m_ProjecTileData.target.Heal(healinfo.Damage);
|
||||
StartCoroutine(Co_Off(1.5f));
|
||||
}
|
||||
}
|
||||
|
|
@ -34,10 +34,10 @@ public class Skill_HeavyRain : ProjectileBase
|
|||
while (count > 0)
|
||||
{
|
||||
--count;
|
||||
var enemies = Get_Enemies(m_ProjectTileData.shooter.transform, area);
|
||||
var enemies = Get_Enemies(m_ProjecTileData.shooter.transform, area);
|
||||
if (enemies.Count > 0)
|
||||
{
|
||||
mm[count].shooter = m_ProjectTileData.shooter;
|
||||
mm[count].shooter = m_ProjecTileData.shooter;
|
||||
mm[count].target = enemies[Random.Range(0, enemies.Count)];
|
||||
mm[count].eStartPos = eProjectileStartPos.Custom;
|
||||
mm[count].v3_StartPos = mm[count].target.Get_position();
|
||||
|
|
|
|||
|
|
@ -29,14 +29,14 @@ public class Skill_Hurricane : ProjectileBase
|
|||
if (IsStep(3)) m_Collider.size = new Vector3(1.70440888f, 3.86459613f, 1.84529209f);
|
||||
else m_Collider.size = new Vector3(1.37568462f, 3.86459613f, 1.46960735f);
|
||||
|
||||
while (m_ProjectTileData.LifeTime > 0f)
|
||||
while (m_ProjecTileData.LifeTime > 0f)
|
||||
{
|
||||
m_Collider.enabled = true;
|
||||
yield return null;
|
||||
yield return null;
|
||||
m_Collider.enabled = false;
|
||||
yield return new WaitForSeconds(damageGap);
|
||||
m_ProjectTileData.LifeTime -= damageGap;
|
||||
m_ProjecTileData.LifeTime -= damageGap;
|
||||
}
|
||||
|
||||
Off(true);
|
||||
|
|
@ -44,9 +44,9 @@ public class Skill_Hurricane : ProjectileBase
|
|||
|
||||
private void Update()
|
||||
{
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData.target) && !m_ProjectTileData.target.IsDead())
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData.target) && !m_ProjecTileData.target.IsDead())
|
||||
{
|
||||
var targetpos = m_ProjectTileData.target.Get_position();
|
||||
var targetpos = m_ProjecTileData.target.Get_position();
|
||||
transform.position = Vector3.MoveTowards(transform.position, targetpos, Time.deltaTime * movespeed);
|
||||
|
||||
// Create a new position with the y value you want
|
||||
|
|
@ -56,11 +56,11 @@ public class Skill_Hurricane : ProjectileBase
|
|||
}
|
||||
else
|
||||
{
|
||||
m_ProjectTileData.target = Get_NearstEnemy();
|
||||
if (DSUtil.CheckNull(m_ProjectTileData.target))
|
||||
m_ProjecTileData.target = Get_NearstEnemy();
|
||||
if (DSUtil.CheckNull(m_ProjecTileData.target))
|
||||
Off(true);
|
||||
}
|
||||
|
||||
if (m_ProjectTileData.shooter.IsDead()) Off();
|
||||
if (m_ProjecTileData.shooter.IsDead()) Off();
|
||||
}
|
||||
}
|
||||
|
|
@ -42,9 +42,9 @@ public class Skill_IceArrows : ProjectileBase
|
|||
{
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
Show_HitEffect(false, null);
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData.target))
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData.target))
|
||||
{
|
||||
var enemies = Get_Enemies(m_ProjectTileData.target.transform, range);
|
||||
var enemies = Get_Enemies(m_ProjecTileData.target.transform, range);
|
||||
for (int i = 0; i < enemies.Count; i++)
|
||||
enemies[i].Get_Damage(Get_DamageInfo());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,10 +7,10 @@ public class Skill_IceBolt : ProjectileTest
|
|||
base.Set(_data);
|
||||
|
||||
// 공속이 추가로 감소
|
||||
m_ProjectTileData.CC_AddVal1 = IsStep(1) ? Get_AwakenData(1, 1) : 0;
|
||||
m_ProjecTileData.CC_AddVal1 = IsStep(1) ? Get_AwakenData(1, 1) : 0;
|
||||
// 디버프 시간 증가
|
||||
m_ProjectTileData.CC_AddTime = IsStep(2) ? Get_AwakenData(2, 1) : 0;
|
||||
m_ProjecTileData.CC_AddTime = IsStep(2) ? Get_AwakenData(2, 1) : 0;
|
||||
// 서리 효과 상태인 적을 공격 시 100% 치명타 발생
|
||||
m_ProjectTileData.CC_AddVal2 = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
m_ProjecTileData.CC_AddVal2 = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
}
|
||||
}
|
||||
|
|
@ -32,11 +32,11 @@ public class Skill_MeteoStorm : ProjectileBase
|
|||
|
||||
while (count > 0)
|
||||
{
|
||||
var enemies = Get_Enemies(m_ProjectTileData.shooter.transform, createArea);
|
||||
var enemies = Get_Enemies(m_ProjecTileData.shooter.transform, createArea);
|
||||
if (enemies.Count > 0)
|
||||
{
|
||||
m_ProjectTileData.target = enemies[Random.Range(0, enemies.Count)];
|
||||
ProjectileInfo.Ins.Shoot_Projectile(projectile, m_ProjectTileData, proj => { proj.Set_CheckersSize(addSize); });
|
||||
m_ProjecTileData.target = enemies[Random.Range(0, enemies.Count)];
|
||||
ProjectileInfo.Ins.Shoot_Projectile(projectile, m_ProjecTileData, proj => { proj.Set_CheckersSize(addSize); });
|
||||
}
|
||||
--count;
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ public class Skill_MultiShot_Arrow : Projectile_Strait
|
|||
public void Set(ProjectileData _data, bool _step2, Action<Actor> act)
|
||||
{
|
||||
gameObject.SetActive(true);
|
||||
m_ProjectTileData = _data.Copy();
|
||||
m_ProjectTileData.Action_OnHit = act;
|
||||
m_ProjecTileData = _data.Copy();
|
||||
m_ProjecTileData.Action_OnHit = act;
|
||||
m_Pierce = _step2;
|
||||
transform.localPosition = OriginalPos;
|
||||
transform.localEulerAngles = OriRot;
|
||||
|
|
|
|||
|
|
@ -17,10 +17,10 @@ public class Skill_OneHandCombo1 : ProjectileBase
|
|||
for (int i = 0; i < list_ShowEffectTime.Count; i++)
|
||||
{
|
||||
yield return new WaitForSeconds(list_ShowEffectTime[i]);
|
||||
m_ProjectTileData.eStartPos = eProjectileStartPos.Custom;
|
||||
m_ProjectTileData.v3_StartPos = m_ProjectTileData.shooter.Get_CenterPositionFoward();
|
||||
m_ProjectTileData.LifeTime = Time.deltaTime;
|
||||
ProjectileInfo.Ins.Shoot_Projectile("Projectile_OneHandCombo1", m_ProjectTileData);
|
||||
m_ProjecTileData.eStartPos = eProjectileStartPos.Custom;
|
||||
m_ProjecTileData.v3_StartPos = m_ProjecTileData.shooter.Get_CenterPositionFoward();
|
||||
m_ProjecTileData.LifeTime = Time.deltaTime;
|
||||
ProjectileInfo.Ins.Shoot_Projectile("Projectile_OneHandCombo1", m_ProjecTileData);
|
||||
}
|
||||
|
||||
yield return new WaitForSeconds(1f);
|
||||
|
|
|
|||
|
|
@ -24,10 +24,10 @@ public class Skill_PhantomFrenzy : ProjectileBase
|
|||
{
|
||||
OptionInfo.Ins.PCMove = false;
|
||||
|
||||
var shooter = m_ProjectTileData.shooter;
|
||||
var shooter = m_ProjecTileData.shooter;
|
||||
ObscuredInt attackTimes = AttackCount; // 공격 횟수 설정
|
||||
attackTimes.RandomizeCryptoKey();
|
||||
Actor target = m_ProjectTileData.target;
|
||||
Actor target = m_ProjecTileData.target;
|
||||
|
||||
float t = 0f;
|
||||
shooter.AnimationPlay("idle");
|
||||
|
|
|
|||
|
|
@ -8,10 +8,10 @@ public class Skill_ShieldAttack : ProjectileBase
|
|||
_data.eStartPos = eProjectileStartPos.Custom;
|
||||
_data.v3_StartPos = _data.shooter.Get_CenterPositionFoward();
|
||||
base.Set(_data);
|
||||
if (IsStep(1)) m_ProjectTileData.CC_AddTime = Get_AwakenData(1, 1);
|
||||
if (IsStep(2)) m_ProjectTileData.CC_AddDmg = Get_AwakenData(2, 1);
|
||||
if (IsStep(1)) m_ProjecTileData.CC_AddTime = Get_AwakenData(1, 1);
|
||||
if (IsStep(2)) m_ProjecTileData.CC_AddDmg = Get_AwakenData(2, 1);
|
||||
Set_ReduceCoolTime_byStep(3);
|
||||
m_ProjectTileData.target.Get_Damage(Get_DamageInfo(true));
|
||||
m_ProjecTileData.target.Get_Damage(Get_DamageInfo(true));
|
||||
|
||||
StartCoroutine(Co_Update());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ public class Skill_SpiritBless : ProjectileBase
|
|||
|
||||
private void Update()
|
||||
{
|
||||
if (!DSUtil.CheckNull(m_ProjectTileData.target))
|
||||
transform.position = m_ProjectTileData.target.Get_position();
|
||||
if (!DSUtil.CheckNull(m_ProjecTileData.target))
|
||||
transform.position = m_ProjecTileData.target.Get_position();
|
||||
else
|
||||
Off(true);
|
||||
}
|
||||
|
|
@ -31,10 +31,10 @@ public class Skill_SpiritBless : ProjectileBase
|
|||
IEnumerator Co_Update()
|
||||
{
|
||||
var t = time + (IsStep(1) ? Get_AwakenData(1, 1) : 0);
|
||||
var target = m_ProjectTileData.target;
|
||||
var target = m_ProjecTileData.target;
|
||||
target.Buff_or_Debuff(eCC.ATK_Up, t, Get_DamageInfo().Damage);
|
||||
if (IsStep(2)) target.Buff_or_Debuff(eCC.ATKSPD_Up, t, Get_AwakenData(2, 1));
|
||||
m_ProjectTileData.CC_AddVal1 = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
m_ProjecTileData.CC_AddVal1 = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
|
||||
yield return new WaitForSeconds(t);
|
||||
go_Effect.SetActive(false);
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ public class Skill_StraightBurst : ProjectileBase
|
|||
IEnumerator Co_StraightBurst()
|
||||
{
|
||||
int count = 2 + (IsStep(1) ? (int)Get_AwakenData(1, 1) : 0) + (IsStep(3) ? (int)Get_AwakenData(3, 1) : 0);
|
||||
m_ProjectTileData.e_SkillExtraType = IsStep(2) ? eSkillExtraType.Knockback : eSkillExtraType.None;
|
||||
m_ProjecTileData.e_SkillExtraType = IsStep(2) ? eSkillExtraType.Knockback : eSkillExtraType.None;
|
||||
|
||||
for (int i = 0; i < count; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -14,18 +14,18 @@ public class Skill_SweepAttack : ProjectileBase
|
|||
|
||||
IEnumerator Co_Update()
|
||||
{
|
||||
m_ProjectTileData.shooter.Set_JoystickStatus(2);
|
||||
m_ProjecTileData.shooter.Set_JoystickStatus(2);
|
||||
go_effect.SetActive(false);
|
||||
yield return new WaitForSeconds(0.1f);
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
go_effect.SetActive(true);
|
||||
yield return new WaitForSeconds(0.4f);
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
go_effect.SetActive(false);
|
||||
go_effect.SetActive(true);
|
||||
yield return new WaitForSeconds(1f);
|
||||
Off(true);
|
||||
m_ProjectTileData.shooter.Set_JoystickStatus(3);
|
||||
m_ProjectTileData.shooter.Play_Idle();
|
||||
m_ProjecTileData.shooter.Set_JoystickStatus(3);
|
||||
m_ProjecTileData.shooter.Play_Idle();
|
||||
}
|
||||
}
|
||||
|
|
@ -13,9 +13,9 @@ public class Skill_Tornado : ProjectileBase
|
|||
base.Set(_data);
|
||||
LookAt_ShooterFoward();
|
||||
|
||||
m_ProjectTileData.CC_AddVal1 = IsStep(1) ? Get_AwakenData(1, 1) : 0;
|
||||
m_ProjectTileData.CC_AddVal2 = IsStep(2) ? Get_AwakenData(2, 1) : 0;
|
||||
m_ProjectTileData.CC_AddDmg = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
m_ProjecTileData.CC_AddVal1 = IsStep(1) ? Get_AwakenData(1, 1) : 0;
|
||||
m_ProjecTileData.CC_AddVal2 = IsStep(2) ? Get_AwakenData(2, 1) : 0;
|
||||
m_ProjecTileData.CC_AddDmg = IsStep(3) ? Get_AwakenData(3, 1) : 0;
|
||||
|
||||
StartCoroutine(Co_Updata());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,34 +5,49 @@ public class Skill_TrapSetup : Projectile_Curved
|
|||
{
|
||||
public ProjectileHitChecker TrapHitChecker, ExplosionHitChecker;
|
||||
public GameObject go_danger;
|
||||
[Header("함정 높이 오프셋 (바닥에 맞춰주기 위함")]
|
||||
public Vector3 offset = new Vector3(0f, 0.35f, 0f);
|
||||
[Header("함정설치 거리")]
|
||||
public float m_distance = 5f;
|
||||
|
||||
public override void Set(ProjectileData _data)
|
||||
{
|
||||
if (_data.shooter.IsRole(eRole.PC))
|
||||
SkillCard.dic_button.Add(_data.m_SkillListTableData.n_SkillID, Boom);
|
||||
TrapHitChecker.gameObject.SetActive(true);
|
||||
TrapHitChecker.Get_Collider().enabled = false;
|
||||
go_danger.SetActive(false);
|
||||
ExplosionHitChecker.gameObject.SetActive(false);
|
||||
_data.Action_OnHit = hitter =>
|
||||
{
|
||||
if (!ExplosionHitChecker.gameObject.activeInHierarchy)
|
||||
StartCoroutine(Co_Update());
|
||||
};
|
||||
_data.Action_OnHit = hitter => { Boom(); };
|
||||
_data.eStartPos = eProjectileStartPos.ShooterCenter;
|
||||
base.Set(_data);
|
||||
var end = _data.target.Get_position() + offset;
|
||||
Launch_Curved(transform.position, end, 1f, 2f, false,
|
||||
Launch_Curved(transform.position, _data.shooter.Get_PositionFoward(m_distance), 1f, 2f, false,
|
||||
() =>
|
||||
{
|
||||
TrapHitChecker.Get_Collider().enabled = true;
|
||||
go_danger.SetActive(true);
|
||||
go_danger.transform.position -= offset;
|
||||
});
|
||||
StartCoroutine(Co_BoombyTime());
|
||||
}
|
||||
|
||||
IEnumerator Co_BoombyTime()
|
||||
{
|
||||
yield return new WaitForSeconds(m_ProjecTileData.LifeTime - 1f);
|
||||
Boom();
|
||||
}
|
||||
|
||||
bool Boom()
|
||||
{
|
||||
if (TrapHitChecker.Get_Collider().enabled && !ExplosionHitChecker.gameObject.activeInHierarchy)
|
||||
{
|
||||
StartCoroutine(Co_Update());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
IEnumerator Co_Update()
|
||||
{
|
||||
SkillCard.dic_button.Remove(m_ProjecTileData.m_SkillListTableData.n_SkillID);
|
||||
TrapHitChecker.gameObject.SetActive(false);
|
||||
go_danger.SetActive(false);
|
||||
ExplosionHitChecker.Get_Collider().enabled = true;
|
||||
ExplosionHitChecker.gameObject.SetActive(true);
|
||||
|
|
|
|||
|
|
@ -45,9 +45,9 @@ public class Skill_UnpredictableArrow : ProjectileBase
|
|||
IEnumerator Co_Update()
|
||||
{
|
||||
for (int i = 0; i < list_projectile.Count; i++)
|
||||
m_ProjectTileData.Copy(list_projectile[i]);
|
||||
m_ProjecTileData.Copy(list_projectile[i]);
|
||||
|
||||
m_ProjectTileData.shooter.AnimationPlay("skill1_loop");
|
||||
m_ProjecTileData.shooter.AnimationPlay("skill1_loop");
|
||||
for (int i = 0; i < m_count; i++)
|
||||
{
|
||||
yield return new WaitForSeconds(m_delay);
|
||||
|
|
@ -55,13 +55,13 @@ public class Skill_UnpredictableArrow : ProjectileBase
|
|||
{
|
||||
pb.m_Pierce = true;
|
||||
pb.transform.localScale = Vector3.one * 0.5f;
|
||||
var target = m_ProjectTileData.shooter.Get_CenterPositionFoward(Random.Range(MinDistance, MaxDistance));
|
||||
var target = m_ProjecTileData.shooter.Get_CenterPositionFoward(Random.Range(MinDistance, MaxDistance));
|
||||
var Amplitude = Random.Range(MinwaveAmplitude, MaxwaveAmplitude);
|
||||
var Frequency = Random.Range(MinwaveFrequency, MaxwaveFrequency);
|
||||
pb.Launch(transform.position, target, Random.value > 0.5f ? 0f : Mathf.PI, Amplitude, Frequency);
|
||||
});
|
||||
}
|
||||
m_ProjectTileData.shooter.Play_Idle();
|
||||
m_ProjecTileData.shooter.Play_Idle();
|
||||
Off(true);
|
||||
}
|
||||
}
|
||||
|
|
@ -16,20 +16,20 @@ public class Skill_VitalStrike : ProjectileBase
|
|||
IEnumerator Co_Update()
|
||||
{
|
||||
go_effect.SetActive(false);
|
||||
m_ProjectTileData.Action_OnHit = hitter => { hitter.Stop(false); }; // 흡혈?
|
||||
m_ProjecTileData.Action_OnHit = hitter => { hitter.Stop(false); }; // 흡혈?
|
||||
|
||||
// 내 앞까지 끌어당기기
|
||||
var targetpos = m_ProjectTileData.shooter.Get_PositionFoward();
|
||||
var firstpos = m_ProjectTileData.target.Get_position();
|
||||
m_ProjectTileData.target.Stop(true);
|
||||
var targetpos = m_ProjecTileData.shooter.Get_PositionFoward();
|
||||
var firstpos = m_ProjecTileData.target.Get_position();
|
||||
m_ProjecTileData.target.Stop(true);
|
||||
float t = 0f;
|
||||
while (t < 1f)
|
||||
{
|
||||
yield return null;
|
||||
t += Time.deltaTime * 8f;
|
||||
m_ProjectTileData.target.Set_Warp(Vector3.Lerp(firstpos, targetpos, t));
|
||||
m_ProjecTileData.target.Set_Warp(Vector3.Lerp(firstpos, targetpos, t));
|
||||
}
|
||||
m_ProjectTileData.target.Set_Warp(targetpos);
|
||||
m_ProjecTileData.target.Set_Warp(targetpos);
|
||||
|
||||
yield return new WaitForSeconds(0.5f);
|
||||
|
||||
|
|
|
|||
|
|
@ -21,21 +21,21 @@ public class Skill_Whirlwind : ProjectileBase
|
|||
|
||||
IEnumerator Co_Update()
|
||||
{
|
||||
m_ProjectTileData.shooter.Set_JoystickStatus(2);
|
||||
m_ProjecTileData.shooter.Set_JoystickStatus(2);
|
||||
m_HitChecker.gameObject.SetActive(false);
|
||||
while (m_ProjectTileData.LifeTime > 0f)
|
||||
while (m_ProjecTileData.LifeTime > 0f)
|
||||
{
|
||||
yield return new WaitForSeconds(gapTime);
|
||||
m_ProjectTileData.LifeTime -= gapTime;
|
||||
transform.position = m_ProjectTileData.shooter.Get_Center_position();
|
||||
m_ProjecTileData.LifeTime -= gapTime;
|
||||
transform.position = m_ProjecTileData.shooter.Get_Center_position();
|
||||
m_HitChecker.gameObject.SetActive(true);
|
||||
|
||||
yield return new WaitForSeconds(gapTime);
|
||||
m_ProjectTileData.LifeTime -= gapTime;
|
||||
m_ProjecTileData.LifeTime -= gapTime;
|
||||
m_HitChecker.gameObject.SetActive(false);
|
||||
}
|
||||
Off(true);
|
||||
m_ProjectTileData.shooter.Set_JoystickStatus(3);
|
||||
m_ProjectTileData.shooter.Play_Idle();
|
||||
m_ProjecTileData.shooter.Set_JoystickStatus(3);
|
||||
m_ProjecTileData.shooter.Play_Idle();
|
||||
}
|
||||
}
|
||||
|
|
@ -32,12 +32,12 @@ public class DropItem : ProjectileBase
|
|||
else
|
||||
{
|
||||
MagnetUpTime += Time.deltaTime * 2f;
|
||||
transform.position = Vector3.MoveTowards(transform.position, v3_MagnetUP, Time.deltaTime * m_ProjectTileData.Speed);
|
||||
transform.position = Vector3.MoveTowards(transform.position, v3_MagnetUP, Time.deltaTime * m_ProjecTileData.Speed);
|
||||
if (MagnetUpTime >= 1f)
|
||||
{
|
||||
MagnetUpTime = 0f;
|
||||
m_Magnet = 2;
|
||||
m_ProjectTileData.Speed = 15f;
|
||||
m_ProjecTileData.Speed = 15f;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
@ -46,8 +46,8 @@ public class DropItem : ProjectileBase
|
|||
m_Magnet = 0;
|
||||
else
|
||||
{
|
||||
m_ProjectTileData.Speed += Time.deltaTime * 2f;
|
||||
transform.position = Vector3.MoveTowards(transform.position, MyValue.MyPC.Get_Center_position(), Time.deltaTime * m_ProjectTileData.Speed);
|
||||
m_ProjecTileData.Speed += Time.deltaTime * 2f;
|
||||
transform.position = Vector3.MoveTowards(transform.position, MyValue.MyPC.Get_Center_position(), Time.deltaTime * m_ProjecTileData.Speed);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
@ -108,7 +108,7 @@ public class DropItem : ProjectileBase
|
|||
{
|
||||
if (gameObject.activeInHierarchy)
|
||||
{
|
||||
var data = m_ProjectTileData.shooter.Get_MonsterStatTableData();
|
||||
var data = m_ProjecTileData.shooter.Get_MonsterStatTableData();
|
||||
var sdata = ServerInfo.Ins.m_ServerData;
|
||||
var statdata = MyValue.MyPC.Get_StatInfo();
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ public class DropItem : ProjectileBase
|
|||
itemdata.ItemType = m_Item;
|
||||
itemdata.Set_ID(0);
|
||||
if (data == null) // 광석
|
||||
itemdata.Amount = Math.Truncate(m_ProjectTileData.Amount + m_ProjectTileData.Amount * statdata.Get_Stat(Get_StoneStat(m_Item)));
|
||||
itemdata.Amount = Math.Truncate(m_ProjecTileData.Amount + m_ProjecTileData.Amount * statdata.Get_Stat(Get_StoneStat(m_Item)));
|
||||
else // 몹
|
||||
{
|
||||
//itemdata.Amount = Math.Truncate(data.dic_amount[m_Item] + data.dic_amount[m_Item] * statdata.Get_Stat(Get_StoneStat(m_Item)));
|
||||
|
|
|
|||
|
|
@ -1,9 +1,13 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UI;
|
||||
|
||||
public class SkillCard : CardCoolTimeBase
|
||||
{
|
||||
public static Dictionary<int, Func<bool>> dic_button = new Dictionary<int, Func<bool>>();
|
||||
|
||||
public Image[] images; // 0 아이콘
|
||||
public GameObject[] gos; // 0 장착중, 1 잠김
|
||||
|
||||
|
|
@ -88,7 +92,12 @@ public class SkillCard : CardCoolTimeBase
|
|||
switch (CardType)
|
||||
{
|
||||
case eUICardType.Use:
|
||||
if (m_CoolTime <= 0f)
|
||||
if (dic_button.ContainsKey(m_Data.n_SkillID))
|
||||
{
|
||||
if (dic_button[m_Data.n_SkillID]())
|
||||
dic_button.Remove(m_Data.n_SkillID);
|
||||
}
|
||||
else if (m_CoolTime <= 0f)
|
||||
{
|
||||
if (MyValue.MyPC.Use_Skill(m_Data, false, m_Index))
|
||||
m_CoolTime = m_Data.Get_CoolTime(MyValue.MyPC.Get_StatInfo().Get_Stat(eStat.COOLTIME_Multiplier));
|
||||
|
|
|
|||
Loading…
Reference in New Issue