Exemplo n.º 1
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MapTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                m_IsInDelayDestroy = true;
                AddHittedWallEffect();
                Recycle();
            }
            else if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                AddHittedEffect(monster);
                if (BulletType == NormalBulletTriggerType.Normal)
                {
                    m_IsInDelayDestroy = true;
                    Recycle();
                }
            }
            else if (obj.CompareTag(GameConstVal.ShieldTag))
            {
                m_IsInDelayDestroy = true;
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                collision.gameObject.GetComponent <AIShieldEvent>().AddHittedEffect(transform.position);
                Recycle();
            }
        }
Exemplo n.º 2
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MapTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                m_IsInDelayDestroy = true;
                GameObject effect = Instantiate(HitEffect);
                effect.transform.position = transform.position;
                Destroy(effect, 0.5f);
                Destroy(gameObject);
            }
            else if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                m_IsInDelayDestroy = true;
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                GameObject effect = Instantiate(HitEffect);
                effect.transform.position = monster.transform.position;
                Destroy(effect, 0.5f);
                Destroy(gameObject);
            }
        }
Exemplo n.º 3
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            if (collision.gameObject.CompareTag(GameConstVal.MonsterTag))
            {
                Monster monster = collision.gameObject.GetComponent <Monster>();
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);

                if (Random.Range(0.0f, 1.0f) < BackRate)
                {
                    monster.OnHit_Vec(m_Damage, transform);
                }
                else
                {
                    monster.OnHit_Simple(m_Damage, transform);
                }

                AddHittedEffect(monster, true);

                if (ReduceSpeedTime > 0.0f)
                {
                    monster.AddBuff(AiBuffType.MoveSpeed, ReduceSpeedTime, ReduceSpeed);
                }
            }
        }
Exemplo n.º 4
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            if (collision.gameObject.CompareTag(GameConstVal.MonsterTag))
            {
                Monster monster = collision.gameObject.GetComponent <Monster>();
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                monster.OnHit_Vec(m_Damage, transform);
                AddHittedEffect(monster, true);

                if (m_ExplodeObj != null && monster.InDeath)
                {
                    var obj = Instantiate(m_ExplodeObj);
                    //Transform explodeTsf = transform.parent.Find("ExplodeCollision");
                    RocketExplode rocketExplode = obj.GetComponent <RocketExplode>();
                    if (rocketExplode != null)
                    {
                        rocketExplode.SetDamage(m_Damage);

                        obj.transform.position = monster.transform.position;
                        obj.transform.gameObject.SetActive(true);
                    }
                }
            }
        }
Exemplo n.º 5
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (m_IsInDelayDestroy)
     {
         return;
     }
     if (collision.gameObject.CompareTag(GameConstVal.MonsterTag))
     {
         Monster monster = collision.gameObject.GetComponent <Monster>();
         if (m_Damage > 0.1d)
         {
             OnHitted(collision.transform, monster);
             Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
             monster.OnHit_Vec(m_Damage, transform);
             monster.AddBuff(AiBuffType.MoveSpeed, SpeedBuffTime, SpeedBuffVal);
         }
         if (monster.CheckCanAddHittedEffect())
         {
             GameObject effect = GetHittedEnemyEffect();
             effect.transform.localPosition = Vector3.zero;
             effect.transform.SetParent(monster.GetBodyNode(), false);
         }
         m_IsInDelayDestroy = true;
     }
 }
Exemplo n.º 6
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.CompareTag(GameConstVal.MonsterTag))
     {
         Monster monster = collision.gameObject.GetComponent <Monster>();
         monster.OnHit_Vec(m_Damage, transform);
     }
 }
Exemplo n.º 7
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MapTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                m_IsInDelayDestroy = true;
                AddHittedWallEffect();
                DestroyAll();
            }
            else if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                monster.AddBuff(AiBuffType.MoveSpeed, EffectTime, ReduceSpeed);
                if (!monster.InDeath && monster.CheckCanAddHittedEffect())
                {
                    Transform        effectNode       = monster.GetBodyNode().Find(GameConstVal.BubbleEffect);
                    BubbleEffectNode bubbleEffectNode = null;
                    if (effectNode != null)
                    {
                        bubbleEffectNode = effectNode.GetComponent <BubbleEffectNode>();
                        bubbleEffectNode.Restart();
                    }
                    else
                    {
                        GameObject effect = GetHittedEnemyEffect();
                        if (effect != null)
                        {
                            bubbleEffectNode = effect.GetComponent <BubbleEffectNode>();
                            effect.name      = GameConstVal.BubbleEffect;
                            effect.transform.SetParent(monster.GetBodyNode(), false);
                            effect.transform.localPosition = Vector3.zero;;
                            effect.transform.localScale    = new Vector3(1, 1, 1);
                        }
                    }
                    if (bubbleEffectNode != null)
                    {
                        bubbleEffectNode.SetDamage(m_Damage * ExplodeDamageParam);
                    }
                }
                m_IsInDelayDestroy = true;
                DestroyAll();
            }
            else if (obj.CompareTag(GameConstVal.ShieldTag))
            {
                m_IsInDelayDestroy = true;
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                collision.gameObject.GetComponent <AIShieldEvent>().AddHittedEffect(transform.position);
                DestroyAll();
            }
        }
Exemplo n.º 8
0
 private void OnTriggerEnter2D(Collider2D collision)
 {
     if (collision.gameObject.CompareTag(GameConstVal.MonsterTag))
     {
         Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
         Monster monster = collision.gameObject.GetComponent <Monster>();
         monster.OnHit_Vec(m_Damage, transform);
         AddHittedEffect(monster, true);
     }
 }
Exemplo n.º 9
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                AddHittedEffect(monster);
            }
        }
Exemplo n.º 10
0
        private void OnHitted(Monster startMonster, Monster endMonster)
        {
            if (m_Damage > 0.1d)
            {
                GameObject effect = GetHittedEnemyEffect();
                effect.transform.localPosition = Vector3.zero;
                effect.transform.SetParent(endMonster.GetBodyNode(), false);

                endMonster.OnHit_Vec(m_Damage, transform);
                endMonster.AddBuff(AiBuffType.MoveSpeed, SpeedBuffTime, SpeedBuffVal);
                GameObject mlinkEffect = Instantiate(LinkEffect);
                mlinkEffect.GetComponent <LinkTools>().Init(startMonster, endMonster);
            }
            m_Damage = m_Damage * Damping;
        }
Exemplo n.º 11
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                AddHittedEffect(monster, true);
                if (FireBuffDamageParam > 0 && FireBuffTime > 0)
                {
                    monster.AddBuff(AiBuffType.FireBuff, FireBuffTime, FireBuffDamageParam * m_Damage, FireBuffTime / FireDamageTimes);
                }
            }
        }
Exemplo n.º 12
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                PlayCloseAnim();
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                AddHittedEffect(monster);
            }
        }
Exemplo n.º 13
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MapTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                m_IsInDelayDestroy = true;
                gameObject.GetComponent <Collider2D>().enabled = false;
                //AddHittedWallEffect();
                Destroy(gameObject);
            }
            else if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                monster.OnHit_Vec(m_Damage, transform);
                monster.AddBuff(AiBuffType.MoveSpeed, EffectTime, ReduceSpeed);
                if (monster.CheckCanAddHittedEffect())
                {
                    GameObject effect = GetHittedEnemyEffect();
                    if (effect != null)
                    {
                        effect.transform.SetParent(monster.GetBodyNode(), false);
                        effect.transform.position = monster.GetBodyNode().position;
                    }
                }
            }
            else if (obj.CompareTag(GameConstVal.ShieldTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                collision.gameObject.GetComponent <AIShieldEvent>().AddHittedEffect(transform.position);
                m_IsInDelayDestroy = true;
                gameObject.GetComponent <Collider2D>().enabled = false;
                Destroy(gameObject);
            }
        }
Exemplo n.º 14
0
        public override void Init(double damage, Transform firePoint, float dtAngleZ, float offset, float atkRange)
        {
            InitBulletPose(damage, firePoint, dtAngleZ, offset);
            Vector3      direction   = transform.right; //射线方向
            float        distance    = m_Length;        //射线检测距离
            Vector3      newPosition = transform.position;
            int          mask        = GameConstVal.LasserMask;
            RaycastHit2D hit         = Physics2D.Raycast(newPosition, direction, distance, mask);//发射射线,只检测与"Target"层的碰撞

            if (hit.collider != null)
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                if (hit.collider.gameObject.CompareTag(GameConstVal.MonsterTag))
                {
                    Vector2 hitPoint1 = hit.point;
                    Vector2 hitPoint  = hit.collider.gameObject.transform.position;
                    float   newDis    = Vector2.Distance(new Vector2(newPosition.x, newPosition.y), hitPoint);
                    float   scaleX    = Mathf.Max(0.1f, newDis / m_BaseLength);
                    transform.localScale = new Vector3(scaleX, 1, 1);

                    GameObject effect = GetHittedEnemyEffect();
                    effect.transform.SetParent(hit.collider.gameObject.transform, false);
                    effect.transform.position = new Vector3(hitPoint.x, hitPoint.y, firePoint.position.z);
                    Monster monster = hit.collider.gameObject.gameObject.GetComponent <Monster>();
                    monster.OnHit_Vec(m_Damage, transform);
                }
                else
                {
                    Vector2 hitPoint = hit.point;
                    float   newDis   = Vector2.Distance(new Vector2(newPosition.x, newPosition.y), hitPoint) + 0.2f;
                    float   scaleX   = Mathf.Max(0.1f, newDis / m_BaseLength);
                    transform.localScale = new Vector3(scaleX, 1, 1);
                    OnHittedWall(new Vector3(hitPoint.x, hitPoint.y, firePoint.position.z));
                }
            }
            else
            {
                transform.localScale = new Vector3(m_Length / m_BaseLength, 1, 1);
            }
        }
Exemplo n.º 15
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (m_IsInDelayDestroy)
            {
                return;
            }
            GameObject obj = collision.gameObject;

            if (obj.CompareTag(GameConstVal.MapTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                m_IsInDelayDestroy = true;
                gameObject.GetComponent <Collider2D>().enabled = false;
                AddExplodeBullet(transform.position, true);
                Destroy(gameObject);
            }
            else if (obj.CompareTag(GameConstVal.MonsterTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                Monster monster = collision.gameObject.GetComponent <Monster>();
                if (!AddExplodeBullet(monster.transform.position))
                {
                    monster.OnHit_Vec(m_Damage, transform);
                    if (FireBuffDamageParam > 0 && FireBuffTime > 0)
                    {
                        monster.AddBuff(AiBuffType.FireBuff, FireBuffTime, FireBuffDamageParam * m_Damage, FireBuffTime / FireDamageTimes);
                    }
                }
            }
            else if (obj.CompareTag(GameConstVal.ShieldTag))
            {
                Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                collision.gameObject.GetComponent <AIShieldEvent>().AddHittedEffect(transform.position);
                m_IsInDelayDestroy = true;
                gameObject.GetComponent <Collider2D>().enabled = false;
                AddExplodeBullet(transform.position, true);
                Destroy(gameObject);
            }
        }
Exemplo n.º 16
0
        private void OnTriggerEnter2D(Collider2D collision)
        {
            GameObject obj = collision.gameObject;

            if (m_CanAtk)
            {
                if (obj.CompareTag(GameConstVal.MonsterTag))
                {
                    Global.gApp.gAudioSource.PlayOneShot(HittedEnemyClip);
                    Monster monster = collision.gameObject.GetComponent <Monster>();
                    monster.OnHit_Vec(m_Damage, transform);
                    AddHittedEffect(monster, true);
                }
            }
            else
            {
                if (obj.CompareTag(GameConstVal.MapTag) || obj.CompareTag(GameConstVal.ShieldTag))
                {
                    HorizontalSpeed = -HorizontalSpeed;
                    HorizontalG     = -HorizontalG;
                }
            }
        }