Exemplo n.º 1
0
            public void Fire()
            {
                if (!player.IsReload && !player.IsInven && !player.IsStun && !player.IsChestOpen &&
                    !player.IsSkill)
                {
                    if (Input.GetMouseButton(1) &&
                        NBullet > 0)
                    {
                        if (Time.time >= fireTime)
                        {
                            GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]);

                            NBullet--;

                            fireTime = Time.time + FireRate + Random.Range(0.0f, 0.3f);

                            player.FSatiety -= 0.5f;                                        //배고품 수치를 1씩 감소

                            StartCoroutine(player.ShakeCam.ShakeCamAct(0.05f, 0.1f, 0.1f)); //카메라 흔들림
                            player.Stop();
                            aniCtrl.AniFire();
                            Muzzle.Play();
                            BulletSetting(true);
                        }
                    }

                    else if (Input.GetMouseButtonDown(1) && NBullet <= 0)
                    {
                        GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[2]);
                    }
                }
            }
Exemplo n.º 2
0
        private Vector3 muzzlePosition;                                 //position of gun muzzle in world space as determined by muzzle game object

        private void Awake()
        {
            if (!playerCamera)
            {
                playerCamera = Camera.main;
            }
            bulletPool = GetComponent <BulletPool>() ?? gameObject.AddComponent <BulletPool>();
            muzzle     = GetComponentInChildren <Muzzle>();
        }
Exemplo n.º 3
0
 void Start()
 {
     shootTouch   = FindObjectOfType <ShootTouch>();
     toggleSwitch = FindObjectOfType <ToggleSwitch>();
     muzzle       = GetComponentInChildren <Muzzle>();
     EquipWeapon(playerData.GetWeaponByName());
     recoil     = GetComponent <PlayerPhysics>();
     isToggling = false;
     state      = State.AutoFire;
 }
Exemplo n.º 4
0
    // Start is called before the first frame update
    void Start()
    {
        trigger  = Trigger.Instance;
        magasize = Magasine.Instance;
        muzzle   = Muzzle.Instance;

        magasize.gun = this;
        broken       = false;

        breakTimer = Timer.CreateTimer(gunTime);
    }
 private float GetRootAngle(Muzzle muzzle, float angleToTarget)
 {
     if (muzzle.Space == Space.Self)
     {
         return(angleToTarget + muzzle.Angle);
     }
     else
     {
         return(muzzle.Angle);
     }
 }
Exemplo n.º 6
0
    private void LaunchBullet(Muzzle muzzle, GameObject origin, Collider2D ignore = null)
    {
        Vector2 worldPos  = transform.TransformPoint(muzzle.pos);
        Vector2 direction = Rotate(transform.up, muzzle.angle);

        GameObject bullet = Instantiate(def.bulletPrefab, worldPos, Quaternion.FromToRotation(transform.up, direction) * transform.rotation);


        DamageOnCollision damageOnCollision = bullet.GetComponent <DamageOnCollision>();

        damageOnCollision.origin = origin;
        damageOnCollision.IgnoreCollisionWithOrigin = ignore != null;
    }
Exemplo n.º 7
0
            /// <summary>
            /// Enemy Attack
            /// </summary>
            public IEnumerator EnemyAttack(EnemyCtrl enemy, float attackDelay = 1.5f)
            {
                enemy.IsAttack = true;                      //공격 상태
                enemy.EnemyStop();                          //공격 범위에 들어오면 정지한다
                enemy.Nav.transform.LookAt(enemy.TargetTr); //타겟을 바라본다
                enemy.AniCtrl.AniAttack();                  //공격 애니메이션
                yield return(new WaitForSeconds(0.5f));

                Muzzle.Play();        //공격 이펙트(총구 화염 또는 공격 효과)
                BulletSetting(false); //공격 이펙트(데미지 적용)

                float ran = Random.Range(0.0f, attackDelay);

                yield return(new WaitForSeconds(ran));

                enemy.IsAttack = false; //공격 상태 해제
            }
Exemplo n.º 8
0
    void CreateBarrel(GameObject p_NewMuzzle)
    {
        if (m_muzzle != null)
        {
            m_muzzle.DestroyMuzzle();
        }
        m_muzzle = Instantiate(p_NewMuzzle).GetComponent <Muzzle>();
        m_muzzle.transform.localScale = transform.localScale;

        m_muzzle.transform.position = new Vector2(transform.position.x, transform.position.y + m_spriterenderer.bounds.size.y / 2 + m_muzzle.GetComponent <SpriteRenderer>().bounds.size.y / 2);
        m_muzzle.name = p_NewMuzzle.name;

        m_muzzle.ShowAmmo();


        m_muzzle.transform.SetParent(transform);
        m_muzzle.transform.localScale = new Vector2(1, 1);
    }
Exemplo n.º 9
0
            IEnumerator AttackDelay()
            {
                player.IsAttack = true;

                int ran = Random.Range(0, 3);

                player.AniCtrl.AniAttackID(ran);
                player.AniCtrl.AniAttack();
                GameManager.INSTANCE.SFXPlay(_Audio, _Sfx[0]);

                player.FSatiety -= 1f;

                Muzzle.Play(); //공격 이펙트
                player.Stop();

                yield return(new WaitForSeconds(0.5f));

                BulletSetting(true); //속성 이펙트

                yield return(new WaitForSeconds(0.5f));

                player.IsAttack = false;
            }
Exemplo n.º 10
0
 // Use this for initialization
 void Start()
 {
     muzzleObj = GetComponentInChildren<Muzzle> ();
 }
Exemplo n.º 11
0
    public override void SetPart(WeaponPart part)
    {
        base.SetPart(part);

        data = part as Muzzle;
    }
        private float ApplyInterval(Muzzle muzzle, float rawAngle)
        {
            float randomValue = Random.Range(muzzle.IntervalStart, muzzle.IntervalEnd);

            return(rawAngle + randomValue);
        }
        private float GetAngle(Muzzle muzzle, float angleToTarget)
        {
            float rootAngle = GetRootAngle(muzzle, angleToTarget);

            return(ApplyInterval(muzzle, rootAngle));
        }
Exemplo n.º 14
0
 // Use this for initialization
 void Start()
 {
     muzzleObj = GetComponentInChildren <Muzzle> ();
 }