diff --git a/Assets/Resources/Projectile/P_electric.prefab b/Assets/Resources/Projectile/P_electric.prefab index e54cd9c..9522a0e 100644 --- a/Assets/Resources/Projectile/P_electric.prefab +++ b/Assets/Resources/Projectile/P_electric.prefab @@ -78,7 +78,7 @@ CircleCollider2D: m_CallbackLayers: serializedVersion: 2 m_Bits: 4294967295 - m_IsTrigger: 0 + m_IsTrigger: 1 m_UsedByEffector: 0 m_CompositeOperation: 0 m_CompositeOrder: 0 diff --git a/Assets/Script/InGame/Actor/AimArrowController.cs b/Assets/Script/InGame/Actor/AimArrowController.cs index 78f1849..dc9e5fe 100644 --- a/Assets/Script/InGame/Actor/AimArrowController.cs +++ b/Assets/Script/InGame/Actor/AimArrowController.cs @@ -69,7 +69,7 @@ public class AimArrowController : MonoBehaviour ProjectileData basePd = new ProjectileData { - IsPC = true, + ActorType = eActor.PC, m_Data = table_projectile.Ins.Get_Data(unit.n_ProjectileID), tf_Start = arrow.transform, Dmg = unit.n_DefaultAttack + (int)IngameMgr.Ins.Get_SkillValue(eSkillType.AttackUp), @@ -104,7 +104,7 @@ public class AimArrowController : MonoBehaviour Bounce = basePd.Bounce, Pierce = basePd.Pierce, - IsPC = basePd.IsPC, + ActorType = basePd.ActorType, m_Data = basePd.m_Data, tf_Start = basePd.tf_Start, Dmg = basePd.Dmg diff --git a/Assets/Script/InGame/Actor/MobActor.cs b/Assets/Script/InGame/Actor/MobActor.cs index 848a9ea..a04bdb9 100644 --- a/Assets/Script/InGame/Actor/MobActor.cs +++ b/Assets/Script/InGame/Actor/MobActor.cs @@ -152,11 +152,11 @@ public class MobActor : MonoBehaviour ProjectileMgr.Ins.Shoot_Projectile(new ProjectileData { - IsPC = false, + ActorType = eActor.Mob, m_Data = table_projectile.Ins.Get_Data(m_Data.n_ProjectileID), tf_Start = transform, Dmg = m_Attack, - Ignore_WallHP = true, + Ignore_WallHP = false, }); } @@ -172,22 +172,25 @@ public class MobActor : MonoBehaviour IngameMgr.Ins.Add_MobKill(m_Data.n_DropExp); gameObject.SetActive(false); - var explosionlv = IngameMgr.Ins.Get_SkillLv(eSkillType.Explosion); - if (explosionlv > 0) + if (data.ActorType == eActor.PC) { - var tdata = table_skill.Ins.Get_Data(eSkillType.Explosion); - var unit = IngameMgr.Ins.Get_CurUnitTData(); - var dmg = unit.n_DefaultAttack + (int)IngameMgr.Ins.Get_SkillValue(eSkillType.AttackUp); - var totaldmg = dmg = (int)(dmg * tdata.f_ExplosionDmg); - totaldmg += (int)(dmg * (tdata.f_ExplosionDmgPerLv * (explosionlv - 1))); - - ProjectileMgr.Ins.Shoot_Projectile(new ProjectileData + var explosionlv = IngameMgr.Ins.Get_SkillLv(eSkillType.Explosion); + if (explosionlv > 0) { - IsPC = true, - Dmg = totaldmg, - m_Data = table_projectile.Ins.Get_Data(3002), - tf_Start = transform, - }); + var tdata = table_skill.Ins.Get_Data(eSkillType.Explosion); + var unit = IngameMgr.Ins.Get_CurUnitTData(); + var dmg = unit.n_DefaultAttack + (int)IngameMgr.Ins.Get_SkillValue(eSkillType.AttackUp); + var totaldmg = dmg = (int)(dmg * tdata.f_ExplosionDmg); + totaldmg += (int)(dmg * (tdata.f_ExplosionDmgPerLv * (explosionlv - 1))); + + ProjectileMgr.Ins.Shoot_Projectile(new ProjectileData + { + ActorType = data.ActorType, + Dmg = totaldmg, + m_Data = table_projectile.Ins.Get_Data(3002), + tf_Start = transform, + }); + } } } else if (!bBoss) diff --git a/Assets/Script/InGame/Actor/SupporterActor.cs b/Assets/Script/InGame/Actor/SupporterActor.cs index 88723d9..50afb08 100644 --- a/Assets/Script/InGame/Actor/SupporterActor.cs +++ b/Assets/Script/InGame/Actor/SupporterActor.cs @@ -12,7 +12,7 @@ public class SupporterActor : MonoBehaviour private void OnEnable() { attackCoolTime = MaxAttackCoolTime; - m_PD.IsPC = true; + m_PD.ActorType = eActor.Supporter; m_PD.Dmg = Damage; m_PD.m_Data = table_projectile.Ins.Get_Data(3201); } diff --git a/Assets/Script/InGame/IngameMgr.cs b/Assets/Script/InGame/IngameMgr.cs index 87c5412..a708160 100644 --- a/Assets/Script/InGame/IngameMgr.cs +++ b/Assets/Script/InGame/IngameMgr.cs @@ -356,7 +356,7 @@ public class IngameMgr : MonoBehaviourSingletonTemplate { var pd = new ProjectileData { - IsPC = true, + ActorType = eActor.PC, Dmg = 100, m_Data = table_projectile.Ins.Get_Data(3301), tf_Start = mobs[i].transform diff --git a/Assets/Script/InGame/Projectile/Projectile.cs b/Assets/Script/InGame/Projectile/Projectile.cs index 3f6c956..223c351 100644 --- a/Assets/Script/InGame/Projectile/Projectile.cs +++ b/Assets/Script/InGame/Projectile/Projectile.cs @@ -37,7 +37,7 @@ public class Projectile : MonoBehaviour { m_ProjectileData = pd; m_LifeTime = m_ProjectileData.m_Data.n_ProjectileLife; - if (!m_ProjectileData.IsPC) m_ProjectileData.Ignore_WallHP = false; + if (m_ProjectileData.ActorType == eActor.Mob) m_ProjectileData.Ignore_WallHP = false; Vector3 pos = pd.tf_Start.position; Quaternion rot = pd.tf_Start.rotation; @@ -79,13 +79,13 @@ public class Projectile : MonoBehaviour transform.rotation = Quaternion.AngleAxis(angle, transform.forward) * transform.rotation; - if (!pd.IsPC) + if (pd.ActorType == eActor.Mob) transform.eulerAngles += new Vector3(0f, 0f, 180f); dir = transform.up.normalized; m_ReflectCount = m_ProjectileData.m_Data.n_AttackBounceLimit; - if (pd.IsPC) + if (pd.ActorType == eActor.PC) m_ReflectCount += (int)IngameMgr.Ins.Get_SkillValue(eSkillType.Reflect); if (m_ProjectileData.m_Data.n_ProjectileID == 3002) @@ -124,7 +124,7 @@ public class Projectile : MonoBehaviour private void OnTriggerEnter2D(Collider2D collision) { - if (!m_ProjectileData.IsPC && collision.tag == "Mob") return; + if (m_ProjectileData.ActorType == eActor.Mob && collision.tag == "Mob") return; if (m_ProjectileData.Ignore_WallHP && collision.tag == "Wall_HP") { m_ProjectileData.Ignore_WallHP = false; @@ -207,7 +207,7 @@ public class Projectile : MonoBehaviour void Check_Hit(Collider2D collision) { - if (m_ProjectileData.IsPC) + if (m_ProjectileData.ActorType != eActor.Mob) { switch(collision.tag) { @@ -265,7 +265,7 @@ public class Projectile : MonoBehaviour var p = ProjectileMgr.Ins.Get(m_ProjectileData.m_Data.s_ProjectilePrefabs); p.Set(new ProjectileData { - IsPC = m_ProjectileData.IsPC, + ActorType = m_ProjectileData.ActorType, m_Data = m_ProjectileData.m_Data, tf_Start = transform, Dmg = m_ProjectileData.Dmg, @@ -332,11 +332,12 @@ public class Projectile : MonoBehaviour } } +public enum eActor { PC, Mob, Supporter } public class ProjectileData { public ProjectileTableData m_Data; public Transform tf_Start; - ObscuredBool _IsPC; public bool IsPC { get { return _IsPC; } set { _IsPC = value; _IsPC.RandomizeCryptoKey(); } } + public eActor ActorType; ObscuredInt _Lv; public int Lv { get { return _Lv; } set { _Lv = value; _Lv.RandomizeCryptoKey(); } } ObscuredInt _Dmg; public int Dmg { get { return _Dmg; } set { _Dmg = value; _Dmg.RandomizeCryptoKey(); } }