Ejemplo n.º 1
0
    protected override void Awake()
    {
        base.Awake();
        _MaxBullet = 5;
        for (int i = 0; i < _MaxBullet; ++i)
        {
            GameObject obj     = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject;
            cBullet    _Bullet = obj.GetComponent <cBullet>();
            _Bullet._Speed  = 40.0f;
            _Bullet._Damage = 0;
            _Bullet.transform.SetParent(transform);
            //총알 발사하기 전까지는 비활성화 해준다.
            _Bullet.gameObject.SetActive(false);
            _Bullet._BulletState = BulletState.PlayerSniper;
            _BulletPoll.Add(_Bullet);
        }
        _Delay           = 0.2f;
        _ItemID          = 9;
        _ItemName        = "1898년형 단기병총";                                   //아이템이름
        _ItemDescrIption = "이 나라의 기술력은 세계 제일이지! -피아트-";                     //아이템설명
        _Type            = ItemType.OneShot;                                //아이템타입
        _MinAttackDamage = 27;                                              //최소데미지
        _MaxAttackDamage = 35;                                              //최대데미지
        _AttackSpeed     = 0.87f;                                           //공격속도

        _Quality       = ItemQuality.Unique;                                //아이템등급
        _ItemIcon      = Resources.Load <Sprite>("Itemp/Kar98");            //아이템 이미지
        _ItemPrice     = 3000;                                              //아이템가격
        _SkillText     = "다음 한발의 총알의 공격력이 아주강해집니다.";
        _SkillIcon     = Resources.Load <Sprite>("Skill/Skill_DeadlyShot"); //아이템 이미지
        _SkillCoolTime = 30;
        _ReloadTime    = 2.5f;
    }
Ejemplo n.º 2
0
        private int getIndexOfClosestMonsterColliding(List <cMonster> mons, cBullet bul, Vector2f pos_by, float time)
        {
            int    index    = -1;
            double prevDist = Double.MaxValue;
            double newDist  = 0.0;

            for (int i = 0; i < mons.Count; i++)
            {
                if (mons[i].IsKilled)
                {
                    continue;
                }

                // order by distance to find the closest
                if (cSatCollision.checkAndResolve(bul, mons[i], time, false))
                {
                    newDist = cAppMath.Vec2DistanceSqrt(mons[i].Bounds.center, pos_by);

                    if (newDist < prevDist)
                    {
                        prevDist = newDist;
                        index    = i;
                    }
                }
            }

            return(index);
        }
Ejemplo n.º 3
0
 protected override void Awake()
 {
     base.Awake();
     _MaxBullet = 25;
     for (int i = 0; i < _MaxBullet; ++i)
     {
         GameObject obj     = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject;
         cBullet    _Bullet = obj.GetComponent <cBullet>();
         _Bullet._Speed  = 30.0f;
         _Bullet._Damage = 0;
         _Bullet.transform.SetParent(transform);
         //총알 발사하기 전까지는 비활성화 해준다.
         _Bullet.gameObject.SetActive(false);
         _Bullet._BulletState = BulletState.Player;
         _BulletPoll.Add(_Bullet);
     }
     _Delay           = 0.03f;
     _ItemID          = 10;
     _ItemName        = "AK-77";                                          //아이템이름
     _ItemDescrIption = "냉탕에 넣고 온탕에 넣어도 아주 튼튼한 믿음직한 총";                   //아이템설명
     _Type            = ItemType.Gun;                                     //아이템타입
     _MinAttackDamage = 5;                                                //최소데미지
     _MaxAttackDamage = 10;                                               //최대데미지
     _AttackSpeed     = 10f;                                              //공격속도
     _Quality         = ItemQuality.Unique;                               //아이템등급
     _ItemIcon        = Resources.Load <Sprite>("Itemp/Rifle1");          //아이템 이미지
     _ItemPrice       = 2000;                                             //아이템가격
     _SkillText       = "30초간 이동속도 대폭 증가";
     _SkillIcon       = Resources.Load <Sprite>("Skill/Skill_WindForce"); //아이템 이미지
     _SkillCoolTime   = 45;
     _ReloadTime      = 2f;
 }
Ejemplo n.º 4
0
    //float shootDelay = 0.5f;

    protected override void Awake()
    {
        base.Awake();
        _MaxBullet = 3;
        for (int i = 0; i < _MaxBullet; ++i)
        {
            GameObject obj     = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject;
            cBullet    _Bullet = obj.GetComponent <cBullet>();
            _Bullet._Speed  = 100.0f;
            _Bullet._Damage = 0;
            _Bullet.transform.SetParent(transform);
            //총알 발사하기 전까지는 비활성화 해준다.
            _Bullet.gameObject.SetActive(false);
            _Bullet._BulletState = BulletState.PlayerSniper;
            _BulletPoll.Add(_Bullet);
        }
        _Delay           = 1;
        _ItemID          = 3;
        _ItemName        = "화승총";                                    //아이템이름
        _ItemDescrIption = "비가 오면 사용할수 없는총";                         //아이템설명
        _Type            = ItemType.OneShot;                         //아이템타입
        _MinAttackDamage = 30;                                       //최소데미지
        _MaxAttackDamage = 41;                                       //최대데미지
        _AttackSpeed     = 1f;                                       //공격속도

        _Quality    = ItemQuality.Normal;                            //아이템등급
        _ItemIcon   = Resources.Load <Sprite>("Itemp/MatchlockGun"); //아이템 이미지
        _ItemPrice  = 700;                                           //아이템가격
        _ReloadTime = 3f;
    }
Ejemplo n.º 5
0
    protected override void Awake()
    {
        base.Awake();
        _MaxBullet = 30;
        for (int i = 0; i < _MaxBullet; ++i)
        {
            GameObject obj     = Instantiate(Resources.Load("Prefabs/Bullet/Bullet")) as GameObject;
            cBullet    _Bullet = obj.GetComponent <cBullet>();
            _Bullet._Speed  = 30.0f;
            _Bullet._Damage = 0;
            _Bullet.transform.SetParent(transform);
            //총알 발사하기 전까지는 비활성화 해준다.
            _Bullet.gameObject.SetActive(false);
            _Bullet._BulletState = BulletState.Player;
            _BulletPoll.Add(_Bullet);
        }
        _Delay           = 0.03f;
        _ItemID          = 6;
        _ItemName        = "MT8 카빈";                           //아이템이름
        _ItemDescrIption = "가볍고 연사가 빠른 돌격소총";                  //아이템설명
        _Type            = ItemType.Gun;                       //아이템타입
        _MinAttackDamage = 3;                                  //최소데미지
        _MaxAttackDamage = 5;                                  //최대데미지
        _AttackSpeed     = 10.53f;                             //공격속도
        _Quality         = ItemQuality.Rare;                   //아이템등급

        _ItemIcon   = Resources.Load <Sprite>("Itemp/Rifle0"); //아이템 이미지
        _ItemPrice  = 1500;                                    //아이템가격
        _ReloadTime = 2.1f;
    }
Ejemplo n.º 6
0
    //불릿발사후3초후 불릿삭제
    IEnumerator ActiveBullet(cBullet Bullet)
    {
        yield return(new WaitForSeconds(3.0f));

        Bullet._Start = false;
        Bullet.gameObject.SetActive(false);
    }
Ejemplo n.º 7
0
    public cBullet GetObject(int index)
    {
        cBullet obj = m_objects[index].GetOneObject;



        return(obj);
    }
Ejemplo n.º 8
0
 public virtual void fire(Vector2f target)
 {
     if (this.isReadForNextShot())
     {
         Vector2f dir            = cAppMath.Vec2NormalizeReturn(target - owner.Bounds.center);
         Vector2f toSpreadTarget = cAppMath.GetRandomVecBySpread(dir, spread);
         cBullet  b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget);
         owner.Scene.EntityPool.AddBullet(b);
     }
 }
Ejemplo n.º 9
0
    public void FireBulet(Vector3 Dir, float _angle)
    {
        cBullet Bullet = cMonsterBullet.GetInstance.GetObject(4);

        Bullet.transform.position = this.transform.position;

        Bullet.transform.rotation = Quaternion.Euler(0f, 0f, _angle);
        Bullet._Start             = true;
        Bullet.gameObject.SetActive(true);
        StartCoroutine("ActiveBullet", Bullet);
    }
Ejemplo n.º 10
0
    IEnumerator SkillCourutin()
    {
        Player.GetInstance._Buff.SetTrigger("PowerBuff");
        cBullet Bullet = _BulletPoll[_CurBulletIndex];

        Bullet._Damage += 30;
        yield return(new WaitForSeconds(30.0f));

        Bullet._Damage = 0;

        Player.GetInstance._Buff.SetTrigger("BuffOff");
    }
Ejemplo n.º 11
0
    void FireBulet(Vector3 Dir, float _angle, int Count)
    {
        cBullet Bullet = cMonsterBullet.GetInstance.GetObject(4);

        Bullet.transform.position = Dir;

        Bullet.transform.rotation = Quaternion.Euler(0f, 0f, _angle);
        Bullet.gameObject.SetActive(true);
        if (Count == 9)
        {
            cMonsterBullet.GetInstance.AllFire(4);
            cMonsterBullet.GetInstance.ActiveBullet(4);
        }
    }
Ejemplo n.º 12
0
        public static void resolveMonsterVsBullet(cMonster m, cBullet bullet, Vector2f intersection)
        {
            Vector2f impulse = new Vector2f();

            impulse.X = bullet.Heading.X * Constants.BULLET_HIT_FORCE;
            impulse.Y = bullet.Heading.Y * Constants.BULLET_HIT_FORCE;
            m.AddForce(impulse);
            m.Hit(1, bullet);

            // bullet.Position = intersection;
            // bullet.LastPosition = intersection;

            bullet.kill();
        }
Ejemplo n.º 13
0
 public void Inititlized(ref GameObject obj, int MaxIndex, int Damage, float Speed, BulletState Type, Transform transform)
 {
     _MaxIndex = MaxIndex;
     //복사본 갯수에 맞춰 만들어주기.
     for (int i = 0; i < _MaxIndex; ++i)
     {
         GameObject _obj    = MonoBehaviour.Instantiate(obj);
         cBullet    _Bullet = _obj.GetComponent <cBullet>();
         _Bullet._Speed       = Speed;
         _Bullet._Damage      = Damage;
         _Bullet._BulletState = Type;
         _Bullet._Start       = false;
         _Bullet.transform.SetParent(transform);
         _Bullet.gameObject.SetActive(false);
         _BulletList.Add(_Bullet);
     }
 }
Ejemplo n.º 14
0
        public override void fire(Vector2f target)
        {
            if (this.isReadForNextShot())
            {
                int      numShots  = 4;
                Vector2f dir       = cAppMath.Vec2NormalizeReturn(target - owner.Bounds.center);
                float    dirAngle  = (float)cAppMath.GetAngleOfVector(dir);
                float    unitAngle = spread / numShots;
                float    tangle    = dirAngle - ((numShots / 2.0f) * unitAngle);
                for (int i = 0; i < numShots; ++i)
                {
                    tangle += i * unitAngle;
                    //Vector2f toSpreadTarget = cAppMath.GetRandomVecBySpread(dir, spread);
                    Vector2f toSpreadTarget = new Vector2f((float)Math.Cos(tangle), (float)Math.Sin(tangle));

                    cBullet b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget);
                    owner.Scene.EntityPool.AddBullet(b);
                }
            }
        }
Ejemplo n.º 15
0
        /*
         * {
         *  if(this.isReadForNextShot())
         *  {
         *     Vector2f dir = AppMath.Vec2NormalizeReturn(target - owner.Bounds.center);
         *     Vector2f toSpreadTarget = AppMath.GetRandomVecBySpread(dir, spread);
         *     cBullet b = new cBullet(this.owner, owner.Bounds.center, toSpreadTarget);
         *     owner.Scene.EntityPool.AddBullet(b);
         *  }
         * }
         */

        // in every weapon, the same method used to add a bullet to the scene
        protected void Shot(Vector2f direction)
        {
            cBullet b = new cBullet(this.owner, BulletBreed.GetBreed(this.bulletBreedID), owner.Bounds.center, direction);

            owner.Scene.EntityPool.AddBullet(b);
        }
Ejemplo n.º 16
0
 public void AddBullet(cBullet bullet)
 {
     bullets.Add(bullet);
 }
Ejemplo n.º 17
0
        public void AddBullet(cGameObject owner, Vector2f pos, Vector2f direction)
        {
            cBullet bullet = new cBullet(owner, pos, direction);

            bullets.Add(bullet);
        }
Ejemplo n.º 18
0
 public static void resolvePlayerVsBullet(cPlayer player, cBullet bullet, Vector2f intersection)
 {
     bullet.kill();
 }