Esempio n. 1
0
    public IEnumerator Shoot(Status status, ABulletsPool _bullet, Transform _transform, Vector2 vec, List <IBuff> _buff = null)
    {
        yield return(new WaitForSeconds(0));

        float   num   = 6;
        float   angle = 70;
        Vector2 vtest = vec;

        if (nowWaitTime >= mustWaitTime)
        {
            for (int i = 0; i < num; i++)
            {
                nowWaitTime = 0;
                GameObject bullet1 = _bullet.Pop().transform.gameObject;
                status.RegisteredTakeDamger(bullet1.GetComponent <TakeDamager>());
                bullet1.transform.position = _transform.position;
                //float y = Mathf.Deg2Rad * Mathf.Atan(1.0f / (i - num / 2.0f) * angle) * 10;
                //vec = new Vector2(1, y);// y/x = angle
                float m_angle = angle / -2 + (70 / num) * (i + 1);
                vtest = Quaternion.Euler(new Vector3(0, 0, m_angle)) * new Vector2(vec.x, 0);
                bullet1.GetComponent <RangeWeaponBullet>().Set(bulletLiveTime, bulletSpeed, vtest, null);
                foreach (IBuff buff in _buff)
                {
                    if (buff != null)
                    {
                        bullet1.GetComponent <TakeDamager>().TakeAttackBuffs.Add(buff);
                    }
                }
            }
        }
    }
Esempio n. 2
0
    private void Awake()
    {
        PoolGameobj = new GameObject("PoolGameobj");
        m_Animator  = GetComponent <Animator>();
        SceneLinkedSMB <WeaponTaker> .Initialise(GetComponent <Animator>(), this);

        BulletsPool = GetComponent <ABulletsPool>();
        m_Status    = GetComponent <Status>();
    }
Esempio n. 3
0
 public IEnumerator Shoot(Status status, ABulletsPool _bullet, Transform _transform, Vector2 vec, List <IBuff> _buff = null)
 {
     if (nowWaitTime >= mustWaitTime)
     {
         for (int i = 0; i < 5; i++)
         {
             nowWaitTime = 0;
             GameObject bullet1 = _bullet.Pop().transform.gameObject;
             status.RegisteredTakeDamger(bullet1.GetComponent <TakeDamager>());
             bullet1.transform.position = _transform.position;
             bullet1.GetComponent <RangeWeaponBullet>().Set(bulletLiveTime, bulletSpeed, vec, null);
             foreach (IBuff buff in _buff)
             {
                 if (buff != null)
                 {
                     bullet1.GetComponent <TakeDamager>().TakeAttackBuffs.Add(buff);
                 }
             }
             yield return(new WaitForSeconds(0.05f));
         }
     }
 }