//지속 공격 public IEnumerator DeleyDamege(CollisionHit collisionHit, float damage, float deley, int index, bool critical) { m_bHit = true; yield return(new WaitForSeconds(deley)); List <Vector3> vector = collisionHit.ListCollisions(m_AttackBounds); if (vector.Count > 0 && m_bHit) { for (int i = 0; i < vector.Count; ++i) { if (critical) { collisionHit.PhysicsEffs((vector[i] - transform.position).normalized * 0.5f, i, 0, (int)damage * 2, 2, 0, true); m_fShake = 0.13f; } else { collisionHit.PhysicsEffs((vector[i] - transform.position).normalized * 0.1f, i, 0, (int)damage, 2, 0, false); m_fShake = 0.09f; } collisionHit.HitShakeCamera(0.1f, m_fShake); } m_bHit = false; } critical = Critical(); StartCoroutine(DeleyDamege(collisionHit, damage, deley, index, critical)); }
public void ReceiveSet(CollisionHit a_collisionHit, PlayerChain playerChain) { m_CollisionHit = a_collisionHit; m_AttackRange.extents = new Vector3(0.7f, 0.5f, 0.7f); m_PlayerChain = playerChain; Init(); }
public void Init() { m_ParticleManager = FindObjectOfType <ParticleManager>(); m_MoveAction = GetComponent <MoveAction>(); m_AttackAction = GetComponent <AttackAction>(); m_CollisionHit = FindObjectOfType <CollisionHit>(); ChildInit(); }
public CustomPhysicsHit(RaycastHit2D raycastHit2D) { TileHitWorld = raycastHit2D.point; HitWorld = raycastHit2D.point; Normal = raycastHit2D.normal; Distance = raycastHit2D.distance; CollisionHit = new CollisionHit(raycastHit2D.collider?.gameObject, null); ItHit = raycastHit2D.collider?.gameObject != null; }
public CustomPhysicsHit(bool unneededbool = false) { TileHitWorld = Vector3.zero; HitWorld = Vector3.zero; Normal = Vector2.zero; Distance = 9999999999f; CollisionHit = new CollisionHit(null, null); ItHit = false; }
public CustomPhysicsHit(Vector3 _TileHitWorld, Vector3 _HitWorld, Vector2 _Normal, float _RelativeHit, TileLocation TileHit) { TileHitWorld = _TileHitWorld; HitWorld = _HitWorld; Normal = _Normal; Distance = _RelativeHit; CollisionHit = new CollisionHit(null, TileHit); ItHit = TileHit != null; }
public void Damage(Vector3 vec, PlayerChain playerChain, CollisionHit collisionHit, float damage, float deley, float stop, int index, int critical) { bool _bCritical; m_AttackBounds.center = transform.position; m_AttackBounds.extents = vec; playerChain.GetPlayer(index, transform.position); m_nCritical = critical; _bCritical = Critical(); switch (index) { case 3: StartCoroutine(DeleyDamege(collisionHit, damage, deley, index, _bCritical)); break; case 4: List <Vector3> vector = collisionHit.ListCollisions(m_AttackBounds); if (vector.Count > 0) { for (int i = 0; i < vector.Count; ++i) { if (_bCritical) { AIController _aIController = collisionHit.PhysicsEffs((vector[i] - transform.position).normalized * 0.5f, i, 0, (int)damage * 2, 2, 1, true); m_fShake = 0.13f; } else { AIController _aIController = collisionHit.PhysicsEffs((vector[i] - transform.position).normalized * 0.1f, i, 0, (int)damage, 2, 1, false); m_fShake = 0.09f; collisionHit.Freezing(_aIController); } collisionHit.HitShakeCamera(0.1f, m_fShake); } } break; } Destroy(gameObject, stop); }