예제 #1
0
    //지속 공격
    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));
    }
예제 #2
0
    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();
    }
예제 #3
0
 public void Init()
 {
     m_ParticleManager = FindObjectOfType <ParticleManager>();
     m_MoveAction      = GetComponent <MoveAction>();
     m_AttackAction    = GetComponent <AttackAction>();
     m_CollisionHit    = FindObjectOfType <CollisionHit>();
     ChildInit();
 }
예제 #4
0
 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;
 }
예제 #5
0
 public CustomPhysicsHit(bool unneededbool = false)
 {
     TileHitWorld = Vector3.zero;
     HitWorld     = Vector3.zero;
     Normal       = Vector2.zero;
     Distance     = 9999999999f;
     CollisionHit = new CollisionHit(null, null);
     ItHit        = false;
 }
예제 #6
0
 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;
 }
예제 #7
0
    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);
    }