示例#1
0
    public void OnUpdate(float deletaTime)
    {
        bool bulletActivat = false;

        for (int i = 0; i < infolist.Count; ++i)
        {
            infolist[i].CreateTimeCount += deletaTime;
            if (infolist[i].CreateTimeCount >= infolist[i].CreateTime)
            {
                setTweenAngle(i);

                BasicBullet temp = BulletManager.GetInstance().GetBullet();

                temp.OnActive(infolist[i].TweenAngle, 730f, _bulletAnimationTime);

                infolist[i].listMyBullet.Add(temp);
                infolist[i].CreateTimeCount = 0f;

                bulletActivat = true;
            }

            for (int j = 0; j < infolist[i].listMyBullet.Count; ++j)
            {
                infolist[i].listMyBullet[j].SetBulletAngleInfo(infolist[i].TweenAngle);
            }
        }

        if (bulletActivat)
        {
            _direction *= -1;
        }
    }
示例#2
0
    public void OnUpdate(float deletaTime)
    {
        for (int i = 0; i < infolist_left.Count; ++i)
        {
            infolist_left[i].CreateTimeCount += deletaTime;
            if (infolist_left[i].CreateTimeCount >= infolist_left[i].CreateTime)
            {
                BasicBullet temp = BulletManager.GetInstance().GetBullet();

                temp.OnActive(infolist_left[i].TweenAngle, 730f, _bulletAnimationTime);

                infolist_left[i].listMyBullet.Add(temp);
                infolist_left[i].CreateTimeCount = 0f;
            }
        }


        for (int i = 0; i < infolist_right.Count; ++i)
        {
            infolist_right[i].CreateTimeCount += deletaTime;
            if (infolist_right[i].CreateTimeCount >= infolist_right[i].CreateTime)
            {
                BasicBullet temp = BulletManager.GetInstance().GetBullet();

                temp.OnActive(infolist_right[i].TweenAngle, 730f, _bulletAnimationTime);

                infolist_right[i].listMyBullet.Add(temp);
                infolist_right[i].CreateTimeCount = 0f;
            }
        }
    }
示例#3
0
 public Circle(BasicBullet b, int amount, float speed, Color c)
 {
     _bullet = b;
     _amount = amount;
     _speed  = speed;
     _color  = c;
 }
示例#4
0
    IEnumerator shootine()
    {
        while (true)
        {
            if (Input.GetButton(FireButton))
            {
                Vector3 firingForce = transform.forward * FiringForceMagnitude;

                BasicBullet bullet = Instantiate(BulletPrefab, transform.position, Quaternion.Euler(firingForce));

                bullet.Rigidbody.AddForce(firingForce, ForceMode.VelocityChange);
                Player.Instance.Movement.Knockback(-firingForce);

                Player.Instance.Resources.Heat -= HeatPerShot;

                FireSource.Play();

                yield return(new WaitForSeconds(TimePerShot));
            }
            else
            {
                yield return(null);
            }
        }
    }
示例#5
0
 public SprayAndPray(BasicBullet b, float speed, float minRotation, float maxRotation, Color color)
 {
     _speed       = speed;
     _bullet      = b;
     _minRotation = minRotation;
     _maxRotation = maxRotation;
     _color       = color;
 }
示例#6
0
    private void ShootBullets()
    {
        GameObject  newBullet = Instantiate(mBulletPrefab, mSpawnPoint.position, mSpawnPoint.rotation);
        BasicBullet bullet    = newBullet.GetComponent <BasicBullet>();

        if (bullet != null)
        {
            bullet.SetTarget(mCurrentTarget);
        }
    }
示例#7
0
    public void OnUpdate(float deletaTime)
    {
        _patternTimeCheck += deletaTime;
        for (int i = 0; i < infolist.Count; ++i)
        {
            infolist[i].StartWaveTimeCount += deletaTime;
            if (infolist[i].StartWaveTimeCount >= infolist[i].StartWaveTime)
            {
                if (!infolist[i].IsMoveUse)
                {
                    if (i == 0)
                    {
                        infolist[i].TweenAngle = GameManager.GetInstance().player.GetAngle() - _startAngle;
                    }
                    else
                    {
                        infolist[i].TweenAngle = GameManager.GetInstance().player.GetAngle() + _startAngle;
                    }
                }
                if (!infolist[i].IsUse)
                {
                    infolist[i].IsUse = true;
                }
                infolist[i].CreateTimeCount += deletaTime;
                if (infolist[i].CreateTimeCount >= infolist[i].CreateTime)
                {
                    BasicBullet temp = BulletManager.GetInstance().GetBullet();

                    temp.OnActive(infolist[i].TweenAngle, 730f, _bulletAnimationTime);

                    infolist[i].listMyBullet.Add(temp);
                    infolist[i].CreateTimeCount = 0f;
                }
            }

            if (_patternTimeCheck >= _startWaveTime * infolist.Count + _bulletAnimationTime)
            {
                if (isAllUse())
                {
                    if (!infolist[i].IsMoveUse)
                    {
                        infolist[i].IsMoveUse = true;
                        setTweenAngle(i);
                    }
                }
            }
            if (!infolist[i].IsMoveUse)
            {
                for (int j = 0; j < infolist[i].listMyBullet.Count; ++j)
                {
                    infolist[i].listMyBullet[j].SetBulletAngleInfo(infolist[i].TweenAngle);
                }
            }
        }
    }
示例#8
0
    public GameObject Spawn(GameObject owner)
    {
        if (bulletPool == null)
        {
            GameObject[] goArray = new GameObject[1];
            goArray[0] = BulletPrefab;
            bulletPool = new ObjectPooler(goArray);
        }

        GameObject  instance  = bulletPool.GetNewObject();
        BasicBullet bulletRef = instance.GetComponent <BasicBullet>();

        bulletRef.ownedObject = owner;
        return(instance);
    }
示例#9
0
    public void OnTriggerEnter2D(Collider2D collision)
    {
        GameObject collider = collision.gameObject;

        if (collider.tag == "BasicBullet")
        {
            BasicBullet bullet = collider.GetComponent <BasicBullet>();
            health -= bullet.damage;
            //May need to add some sort of Coroutine in the bullet for destroy animations
            Destroy(collider);
            if (health <= 0)
            {
                StartCoroutine(GameObject.Find("Canvas").GetComponent <EndGameCanvasController>().endGame(false));
                Destroy(gameObject, 0.1f);
            }
        }
    }
示例#10
0
    public GameObject Spawn(Vector3 position, Quaternion rotation, GameObject owner)
    {
        if (bulletPool == null)
        {
            GameObject[] goArray = new GameObject[1];
            goArray[0] = BulletPrefab;
            bulletPool = new ObjectPooler(goArray);
        }

        GameObject instance = bulletPool.GetNewObject();

        instance.transform.position = position;
        instance.transform.rotation = rotation;
        BasicBullet bulletRef = instance.GetComponent <BasicBullet>();

        bulletRef.ownedObject = owner;
        return(instance);
    }
示例#11
0
    void FireBullet()
    {
        // Get the direction to fire the bullet
        Vector3 playerCenter    = player.transform.position + player.center;
        Vector3 bulletDirection = playerCenter - muzzle.position;

        // Create a new bullet to be fired
        BasicBullet newBullet = Instantiate(bullet, muzzle.position, Quaternion.identity) as BasicBullet;

        // Bullet needs to ignore other parts of the enemy
        Physics.IgnoreCollision(newBullet.collider, muzzle.collider);
        Physics.IgnoreCollision(newBullet.collider, muzzle.parent.transform.collider);

        // Normalize so a speed can be applied more easily
        bulletDirection.Normalize();
        newBullet.direction = bulletDirection;
        newBullet.speed     = bulletSpeed;
    }
示例#12
0
    public void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.gameObject.tag == "FriendlyBullet")
        {
            BasicBullet bullet = collision.GetComponent <BasicBullet>();
            hurt((int)bullet.damage);

            // plays hurt sound
            AudioClip audio = Resources.Load <AudioClip>("bullet_impact_body_flesh_02");
            this.GetComponent <AudioSource>().PlayOneShot(audio);

            Destroy(collision.gameObject);
        }
        else if (collision.gameObject.tag == "FriendlyExplosion")
        {
            explosion explosionObj = collision.GetComponent <explosion>();
            hurt((int)explosionObj.damage);
        }
    }
示例#13
0
    public void OnUpdate(float deletaTime)
    {
        if (_BallCnt >= _totalBallNumber)
        {
            _tweening = false;
            return;
        }
        _createTimeCount += Time.deltaTime;

        if (_createTimeCount >= _createTime)
        {
            _createTime = Random.Range(0.0f, 0.1f);
            float Angle          = Random.Range(0f, 360f);
            float BulletMoveTime = Random.Range(1.0f, 2.0f);

            BasicBullet temp = BulletManager.GetInstance().GetBullet();

            temp.OnActive(Angle, 730f, BulletMoveTime);
            _createTimeCount = 0f;
            _BallCnt++;
        }
    }
示例#14
0
 public Aim(BasicBullet b, float speed, Color c)
 {
     _bullet = b;
     _speed  = speed;
     _color  = c;
 }
示例#15
0
 public Spiral(BasicBullet b, float speed, int amount)
 {
     _bullet = b;
     _speed  = speed;
     _amount = amount;
 }
    public void OnUpdate(float deletaTime)
    {
        for (int i = 0; i < infolist.Count; ++i)
        {
            infolist[i].StartWaveTimeCount += deletaTime;
            if (infolist[i].StartWaveTimeCount >= infolist[i].StartWaveTime)
            {
                if (!infolist[i].IsUse)
                {
                    infolist[i].IsUse = true;
                    if (i == 0)
                    {
                        infolist[i].TweenAngle = GameManager.GetInstance().player.GetAngle();
                        _startAngle            = GameManager.GetInstance().player.GetAngle();
                    }
                    else
                    {
                        if (i == 1)
                        {
                            if (_startAngle >= GameManager.GetInstance().player.GetAngle())
                            {
                                IsRight = true;
                            }
                            else
                            {
                                IsRight = false;
                            }
                        }
                        if (IsRight)
                        {
                            infolist[i].TweenAngle = _startAngle + (360f - (360f / infolist.Count) * i);
                        }
                        else
                        {
                            infolist[i].TweenAngle = _startAngle - (360f - (360f / infolist.Count) * i);
                        }
                    }
                }
                infolist[i].CreateTimeCount += deletaTime;
                if (infolist[i].CreateTimeCount >= infolist[i].CreateTime)
                {
                    BasicBullet temp = BulletManager.GetInstance().GetBullet();

                    temp.OnActive(infolist[i].TweenAngle, 730f, _bulletAnimationTime);

                    infolist[i].listMyBullet.Add(temp);
                    infolist[i].CreateTimeCount = 0f;
                }
            }

            if (isAllUse())
            {
                if (!infolist[i].IsMoveUse)
                {
                    infolist[i].IsMoveUse = true;
                    setTweenAngle(i);
                }
            }

            //for (int j = 0; j < infolist[i].listMyBullet.Count; ++j)
            //{
            //    infolist[i].listMyBullet[j].SetBulletAngleInfo(infolist[i].TweenAngle);
            //}
        }
    }
示例#17
0
 public void ReturnBullet(BasicBullet b)
 {
     bulletPool.ReturnObject(b);
 }