예제 #1
0
    void Start()
    {
        hero = GameObject.Find("Player");

        animIntervalBody_Up_Shoot  = 1 / animSpeedBody_Up_Shoot;
        animIntervalBody_Up_Idle   = 1 / animSpeedBody_Up_Idle;
        animIntervalBody_Hor_Shoot = 1 / animSpeedBody_Hor_Shoot;
        animIntervalBody_Hor_Throw = 1 / animSpeedBody_Hor_Throw;
        animIntervalBody_Hor_Atk   = 1 / animSpeedBody_Hor_Atk;
        animIntervalBody_Hor_Idle  = 1 / animSpeedBody_Hor_Idle;
        animIntervalLeg_Idle       = 1 / animSpeedLeg_Idle;
        animIntervalLeg_Walk       = 1 / animSpeedLeg_Walk;

        animLengthBody_Up_Shoot  = spBody_Up_Shoot.Length;
        animLengthBody_Up_Idle   = spBody_Up_Idle.Length;
        animLengthBody_Hor_Shoot = spBody_Hor_Shoot.Length;
        animLengthBody_Hor_Throw = spBody_Hor_Throw.Length;
        animLengthBody_Hor_Atk   = spBody_Hor_Atk.Length;
        animLengthBody_Hor_Idle  = spBody_Hor_Idle.Length;
        animLengthLeg_Idle       = spLeg_Idle.Length;
        animLengthLeg_Walk       = spLeg_Walk.Length;

        shoot    = hero.GetComponent <shoot>();
        playMove = hero.GetComponent <PlayerMove>();
    }
예제 #2
0
    public void Click()
    {
        if (nivmejora < MAXMEJORA)
        {
            coste *= 2;
            nivmejora++;
            presionable.interactable = false;
            shoot disparotorreta = torreta.GetComponent <shoot>();
            cooldownimage.fillAmount = 1;
            incooldown = true;

            if (poder == "id")
            {
                disparotorreta.Dano += 15;
            }

            else if (poder == "aoe")
            {
                disparotorreta.Rangoaoe++;
            }
            else
            {
                disparotorreta.Fuerza += 5;
            }
        }
    }
예제 #3
0
 void Awake()
 {
     if (shoot.Shoot == null)
     {
         shoot.Shoot = this;
     }
 }
예제 #4
0
 // Use this for initialization
 void Start()
 {
     myMovement  = this.GetComponent <movement>();
     myShoot     = this.GetComponentInChildren <shoot>();
     Players     = GameObject.Find("Players").transform;
     Projectiles = GameObject.Find("Projectiles").transform;
 }
예제 #5
0
 // Start is called before the first frame update
 void Start()
 {
     shoo      = GameObject.Find("shoot").GetComponent <shoot>();
     my_cursor = GameObject.Find("Cursor").GetComponent <cursor>();
     My_aniT   = GetComponent <Animator>();
     rd        = GetComponent <Rigidbody2D>();
     firstrand = Random.Range(0f, 5f);
 }
예제 #6
0
 // Start is called before the first frame update
 void Start()
 {
     My_aniT = GetComponent <Animator>();
     shoo    = GameObject.Find("shoot").GetComponent <shoot>();
     ig      = GameObject.Find("inGameManager").GetComponent <InGame>();
     atk     = killrange.GetComponent <attackrange>();
     r2d     = GetComponent <Rigidbody2D>();
 }
예제 #7
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            shoot shoot = await db.shoots.FindAsync(id);

            db.shoots.Remove(shoot);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
예제 #8
0
    float m_moveSpeed = 7.0f;  //速度


    public static shoot Create(Vector3 pos, Vector3 angle)                                      //创建子弹实例
    {
        GameObject prefab      = Resources.Load <GameObject>("fire");                           //读取子弹prefab
        GameObject shootSprite = (GameObject)Instantiate(prefab, pos, Quaternion.Euler(angle)); //创建子弹sprite实例
        shoot      f           = shootSprite.AddComponent <shoot>();

        Destroy(shootSprite, 2.0f);
        return(f);
    }
예제 #9
0
    public override ability clone()
    {
        shoot ret = new shoot();

        ability.copy(this, ret);
        ret.actionPointsCost      = this.actionPointsCost;
        ret.bonusActionPointsCost = this.bonusActionPointsCost;

        return(ret);
    }
예제 #10
0
    void InstantateNewWeapon(Weapon weapon)
    {
        Destroy(spawned);
        spawned = Instantiate(weapon.prefab, initialPos);
        damage  = weapon.damage;


        shScri = GameObject.FindObjectOfType <shoot>();

        gm.shScriGM = shScri;
    }
예제 #11
0
        public async Task <ActionResult> Edit([Bind(Include = "pkid,msisdn,entrydate,fkcompetition,score,C_month,compavg,C_year,yearlytop4score,monthlybestscore")] shoot shoot)
        {
            if (ModelState.IsValid)
            {
                db.Entry(shoot).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            ViewBag.fkcompetition = new SelectList(db.competitions, "pkid", "description", shoot.fkcompetition);
            return(View(shoot));
        }
예제 #12
0
        public async Task <ActionResult> Create([Bind(Include = "pkid,msisdn,entrydate,fkcompetition,score,C_month,compavg,C_year,yearlytop4score,monthlybestscore")] shoot shoot)
        {
            decimal?top4score = 0;
            decimal?avgscore  = 0;
            decimal monthbest = 0;

            if (ModelState.IsValid)
            {
                //First add entry
                db.shoots.Add(shoot);
                await db.SaveChangesAsync();

                //get teh object to update
                var shootObject = (from c in db.shoots where c.pkid == shoot.pkid select c).FirstOrDefault();

                //Before we can save the user we need to calc the avg score
                var res = (from c in db.shoots where c.msisdn == shoot.msisdn && c.fkcompetition == shoot.fkcompetition &&
                           c.C_year == shoot.C_year select c);
                if (res.Count() > 0)
                {
                    //get the top 4 skores
                    decimal scores = res.OrderByDescending(c => c.score).Take(4).Sum(c => c.score) ?? 1;
                    decimal avg    = res.OrderByDescending(c => c.score).Sum(c => c.score) ?? 1;

                    var topmonthscores = (res.Where(c => c.C_month == shoot.entrydate.Value.Month).
                                          OrderByDescending(c => c.score).Take(1).Select(c => c.score)).FirstOrDefault();

                    monthbest = topmonthscores ?? 0;
                    top4score = Convert.ToDecimal(scores / 4);

                    avgscore = avg / res.Count();
                }
                else
                {
                    shoot.monthlybestscore = shoot.score;
                    shoot.compavg          = (double)shoot.score;
                }

                shoot.yearlytop4score  = top4score;
                shoot.compavg          = (double)avgscore;
                shoot.monthlybestscore = monthbest;

                //Update shoot
                shootObject.yearlytop4score = top4score;
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }

            ViewBag.fkcompetition = new SelectList(db.competitions, "pkid", "description", shoot.fkcompetition);
            return(View(shoot));
        }
예제 #13
0
    private void OnCollisionEnter2D(Collision2D collision)
    {
       
        if (collision.gameObject.tag == "Pared")
        {

            GameObject torreta = GameObject.Find("Torreta");
            shoot fuerzatorreta = torreta.GetComponent<shoot>();
            ContactPoint2D hit = collision.GetContact(0);
             rb.velocity= Vector2.Reflect(rb.velocity, hit.normal);
        }


    }
    private void Start()
    {
        sound      = GetComponent <AudioSource>();
        controller = GetComponent <CharacterController>();
        gun        = GetComponentInChildren <shoot>();

        if (GameManager.Instance.playerInstance == null)
        {
            // set self as main player
            GameManager.Instance.playerInstance = gameObject;
            GameManager.Instance.SetHealthBar(currentHealth, maxHealth);
            DontDestroyOnLoad(GameManager.Instance.playerInstance);
        }
    }
예제 #15
0
    // Update is called once per frame
    void Update()
    {
        if (!isLocalPlayer)
        {
            return;
        }

        if (myShoot == null)
        {
            myShoot = this.GetComponent <shoot>();
            if (myShoot == null)
            {
                Debug.Log("myShoot in controlls is null!");
                return;
            }
        }
        if (myMovement == null)
        {
            myMovement = this.GetComponent <movement>();
            if (myMovement == null)
            {
                Debug.Log("myMovement in controlls is null!");
                return;
            }
        }

        if (Input.GetAxis("Horizontal") > 0)
        {
            myMovement.right();
        }
        else if (Input.GetAxis("Horizontal") < 0)
        {
            myMovement.left();
        }

        if (Input.GetAxis("Vertical") > 0)
        {
            myMovement.forward();
        }
        else if (Input.GetAxis("Vertical") < 0)
        {
            myMovement.backward();
        }

        if (Input.GetButtonDown("Fire1"))
        {
            //Debug.Log("Peng Peng");
            myShoot.CmdFire();
        }
    }
예제 #16
0
        // GET: shoots/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            shoot shoot = await db.shoots.FindAsync(id);

            if (shoot == null)
            {
                return(HttpNotFound());
            }
            return(View(shoot));
        }
예제 #17
0
        // GET: shoots/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            shoot shoot = await db.shoots.FindAsync(id);

            if (shoot == null)
            {
                return(HttpNotFound());
            }
            ViewBag.fkcompetition = new SelectList(db.competitions, "pkid", "description", shoot.fkcompetition);
            return(View(shoot));
        }
예제 #18
0
    void Start()
    {
        deadScreen.loadAd();

        Physics2D.IgnoreLayerCollision(11, 12);
        Physics2D.IgnoreLayerCollision(12, 12);

#if Computer
        sleft.enabled    = false;
        sright.enabled   = false;
        sshoot.enabled   = false;
        sgrenade.enabled = false;
        sswitch.enabled  = false;
        rsup.enabled     = false;
#endif
                #if Andriod
        cam          = GameObject.FindGameObjectWithTag("MainCamera").GetComponent <Camera>();
        shot         = GetComponent <shoot>();
        throwGrenade = GetComponent <ThrowGrenade>();


        sleft.transform.position    = pw3(new Vector3(mleft.x, mleft.y, 2));
        sright.transform.position   = pw3(new Vector3(mright.x, mright.y, 2));
        sgrenade.transform.position = pw3(new Vector3(mgrenade.x, mgrenade.y, 2));
        sshoot.transform.position   = pw3(new Vector3(mshoot.x, mshoot.y, 2));
        sswitch.transform.position  = pw3(new Vector3(mswitch.x, mswitch.y, 2));
        sup.transform.position      = pw3(new Vector3(mup.x, mup.y, 2));

        sleft.transform.localScale    = getScale(new Vector2(mleft.width, mleft.height));
        sright.transform.localScale   = getScale(new Vector2(mright.width, mright.height));
        sgrenade.transform.localScale = getScale(new Vector2(mgrenade.width, mgrenade.height));
        sshoot.transform.localScale   = getScale(new Vector2(mshoot.width, mshoot.height));
        sswitch.transform.localScale  = getScale(new Vector2(mswitch.width, mswitch.height));
        sup.transform.localScale      = getScale(new Vector2(mup.width, mup.height));

        rleft    = new box(mleft);
        rright   = new box(mright);
        rgrenade = new box(mgrenade);
        rshoot   = new box(mshoot);
        rswitch  = new box(mswitch);
        rup      = new box(mup);
#endif
    }
예제 #19
0
    void Start()
    {
        Jet = GameObject.Find("Jet");
        Jet.SetActive(false);
        groundLayMask = LayerMask.GetMask("Ground");
        bloodProgressbar = (GameObject.Find("blood")).GetComponent<UISlider>();
        bloodProgressbarColor = (GameObject.Find("Foreground")).GetComponent<UIWidget>();
        overWindow = GameObject.Find("gameOverWindow");
        result = GameObject.Find("GameResult");
        overWindow.SetActive(false);
        gameObject.SetActive(false);
        GameObject btnJump = GameObject.Find("btnJump");
        UIEventListener.Get(btnJump).onPress = btnJumpPress;
        GameObject btnShoot = GameObject.Find("btnShoot");
        UIEventListener.Get(btnShoot).onPress = btnShootPress;
        GameObject btnThrow = GameObject.Find("btnThrow");
        UIEventListener.Get(btnThrow).onPress = btnThrowPress;

        shoot = gameObject.GetComponent<shoot>();
    }
    IEnumerator doubleDamage()
    {
        GameObject player = GameObject.FindGameObjectWithTag("Player");
        shoot      s      = player.GetComponent <shoot>();

        foreach (Gun g in s.guns)
        {
            GameObject bullet = (GameObject)g.bullet;
            bullet.GetComponent <Bullet>().bulletDamage *= 2;
            bullet.GetComponent <SpriteRenderer>().color = new Color(1, 0, 0);
        }

        yield return(new WaitForSeconds(time));

        foreach (Gun g in s.guns)
        {
            GameObject bullet = (GameObject)g.bullet;
            bullet.GetComponent <Bullet>().bulletDamage /= 2;
            bullet.GetComponent <SpriteRenderer>().color = new Color(1, 1, 1);
        }
        Destroy(gameObject);
    }
예제 #21
0
    void Start()
    {
        Jet = GameObject.Find("Jet");
        Jet.SetActive(false);
        groundLayMask         = LayerMask.GetMask("Ground");
        bloodProgressbar      = (GameObject.Find("blood")).GetComponent <UISlider>();
        bloodProgressbarColor = (GameObject.Find("Foreground")).GetComponent <UIWidget>();
        overWindow            = GameObject.Find("gameOverWindow");
        result = GameObject.Find("GameResult");
        overWindow.SetActive(false);
        gameObject.SetActive(false);
        GameObject btnJump = GameObject.Find("btnJump");

        UIEventListener.Get(btnJump).onPress = btnJumpPress;
        GameObject btnShoot = GameObject.Find("btnShoot");

        UIEventListener.Get(btnShoot).onPress = btnShootPress;
        GameObject btnThrow = GameObject.Find("btnThrow");

        UIEventListener.Get(btnThrow).onPress = btnThrowPress;

        shoot = gameObject.GetComponent <shoot>();
    }
예제 #22
0
    // Update is called once per frame
    void Update()
    {
        shoo    = GameObject.Find("shoot").GetComponent <shoot>();
        outAmmo = shoo.outAm;
        if (Input.GetKey(KeyCode.UpArrow))
        {
            r2d.AddForce(Vector2.up * Speed * Time.deltaTime);
            My_aniT.SetTrigger("up");
        }
        if (Input.GetKey(KeyCode.DownArrow))
        {
            r2d.AddForce(Vector2.down * Speed * Time.deltaTime);
            My_aniT.SetTrigger("down");
        }
        if (Input.GetKey(KeyCode.RightArrow))
        {
            r2d.AddForce(Vector2.right * Speed * Time.deltaTime);
            this.transform.eulerAngles = new Vector3(this.transform.rotation.x, 0, this.transform.rotation.z);
            My_aniT.SetTrigger("right");
        }
        if (Input.GetKey(KeyCode.LeftArrow))
        {
            r2d.AddForce(Vector2.left * Speed * Time.deltaTime);
            this.transform.eulerAngles = new Vector3(this.transform.rotation.x, 180, this.transform.rotation.z);
            My_aniT.SetTrigger("right");
        }

        if (Input.GetKeyUp(KeyCode.W))
        {
            My_aniT.ResetTrigger("up");
        }
        if (Input.GetKeyUp(KeyCode.S))
        {
            My_aniT.ResetTrigger("down");
        }
        if (Input.GetKeyUp(KeyCode.D))
        {
            My_aniT.ResetTrigger("right");
        }
        if (Input.GetKeyUp(KeyCode.A))
        {
            My_aniT.ResetTrigger("right");
        }


        if (this.transform.position.x <= -8.57f)
        {
            this.transform.position = new Vector3(-8.57f, this.transform.position.y);
        }
        if (this.transform.position.x >= 8.61f)
        {
            this.transform.position = new Vector3(8.61f, this.transform.position.y);
        }
        if (this.transform.position.y <= -5.15f)
        {
            this.transform.position = new Vector3(this.transform.position.x, -5.15f);
        }
        if (this.transform.position.y >= 1.61f)
        {
            this.transform.position = new Vector3(this.transform.position.x, 1.61f);
        }

        if (Input.GetKeyDown(KeyCode.RightShift))
        {
            Instantiate(N, Instantiate_Position.transform.position, Instantiate_Position.transform.rotation);
            FindObjectOfType <bgmanager>().Play("小弟砍");
            atk.kill = true;
        }
    }
예제 #23
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Return))
        {
            _actualRit += _ritForInput;
        }

        _actualRit -= _ritMinusPerSecond * Time.deltaTime;

        //Debug.LogWarning(_actualRit);


        shoot            gc = (shoot)gameObject.GetComponent("shoot");
        guiManager       gm = (guiManager)Camera.mainCamera.GetComponent("guiManager");
        playerController pc = (playerController)gameObject.GetComponent("playerController");

        if (_actualRit < 20 && _actualRit > 6)
        {
            //print("1");
            gm.changeStatus(1);
            gc.disparo(disparos[0].factorCrecimiento, disparos[0].maxSize, disparos[0].coolDown);
            pc.setSpeed(2);
        }
        else if (_actualRit < 40 && _actualRit > 21)
        {
            //print("2");
            gm.changeStatus(2);
            gc.disparo(disparos[1].factorCrecimiento, disparos[1].maxSize, disparos[1].coolDown);
            pc.setSpeed(3);
        }
        else if (_actualRit < 55 && _actualRit > 41)
        {
            gm.changeStatus(3);
            gc.disparo(disparos[2].factorCrecimiento, disparos[2].maxSize, disparos[2].coolDown);
            //print("3");
            pc.setSpeed(4);
        }
        else if (_actualRit < 70 && _actualRit > 56)
        {
            gm.changeStatus(4);
            gc.disparo(disparos[3].factorCrecimiento, disparos[3].maxSize, disparos[3].coolDown);
            pc.setSpeed(5);
            //print("4");
        }
        else if (_actualRit < 85 && _actualRit > 71)
        {
            gm.changeStatus(5);
            gc.disparo(disparos[4].factorCrecimiento, disparos[4].maxSize, disparos[4].coolDown);
            pc.setSpeed(6);

            //print("5");
        }

        // muere por pocas pulsaciones
        if (_actualRit < _minRit)
        {
            //Aqui tb cargo lo de perder
            if (!_cheater)
            {
                Application.LoadLevel(3);
            }
        }

        // muerte por muchas pulsaciones
        if (_actualRit > _maxRit)
        {
            if (!_cheater)
            {
                Application.LoadLevel(3);
            }
            //Aqui tb cargo lo de perder
        }



        if (_inmune)
        {
            //print("Inmune = " + _inmune);
            _timeStamp += Time.deltaTime;
            if (_timeStamp > 0.25)
            {
                print("me han dao");
                ++_numParpadeos;
                _timeStamp = 0;
                gameObject.GetComponentInChildren <SkinnedMeshRenderer>().enabled = !gameObject.GetComponentInChildren <SkinnedMeshRenderer>().enabled;
            }
            if (_numParpadeos > _parpadeosTotal)
            {
                _numParpadeos = 0;
                _inmune       = false;
            }
        }
    }
예제 #24
0
 // Start is called before the first frame update
 void Start()
 {
     imagen   = GetComponent <Image>();
     cooldown = GameObject.Find("Torreta").GetComponent <shoot>();
 }
예제 #25
0
    void Start()
    {
        hero = GameObject.Find("Player");

        animIntervalBody_Up_Shoot = 1 / animSpeedBody_Up_Shoot;
        animIntervalBody_Up_Idle = 1 / animSpeedBody_Up_Idle;
        animIntervalBody_Hor_Shoot = 1 / animSpeedBody_Hor_Shoot;
        animIntervalBody_Hor_Throw = 1 / animSpeedBody_Hor_Throw;
        animIntervalBody_Hor_Atk = 1 / animSpeedBody_Hor_Atk;
        animIntervalBody_Hor_Idle = 1 / animSpeedBody_Hor_Idle;
        animIntervalLeg_Idle = 1 / animSpeedLeg_Idle;
        animIntervalLeg_Walk = 1 / animSpeedLeg_Walk;

        animLengthBody_Up_Shoot = spBody_Up_Shoot.Length;
        animLengthBody_Up_Idle = spBody_Up_Idle.Length;
        animLengthBody_Hor_Shoot = spBody_Hor_Shoot.Length;
        animLengthBody_Hor_Throw = spBody_Hor_Throw.Length;
        animLengthBody_Hor_Atk = spBody_Hor_Atk.Length;
        animLengthBody_Hor_Idle = spBody_Hor_Idle.Length;
        animLengthLeg_Idle = spLeg_Idle.Length;
        animLengthLeg_Walk = spLeg_Walk.Length;

        shoot = hero.GetComponent<shoot>();
        playMove = hero.GetComponent<PlayerMove>();
    }
예제 #26
0
    private void Start()
    {
        shootScript = GameObject.Find("Spaceship Galaga white").GetComponent <shoot>(); // get component script in player

        typePower = powerUp.empty;                                                      //set empty state
    }
예제 #27
0
    public void startUp()
    {
        //set clock
        simTime = 0.0f;

        //ability dictionary
        shoot newShoot = new shoot();

        newShoot.Initialize();
        newShoot.iconSprite = Resources.Load <Sprite>("BoostAttackIcon") as Sprite;
        UniTable.abilityDictionary.Add(UniTable.classGuid[typeof(shoot)], newShoot);

        switchWeapon newSwitchWeapon = new switchWeapon();

        newSwitchWeapon.Initialize();
        newSwitchWeapon.iconSprite = Resources.Load <Sprite>("BoostAttackIcon") as Sprite;
        UniTable.abilityDictionary.Add(UniTable.classGuid[typeof(switchWeapon)], newSwitchWeapon);

        //parts dictionary
        Part mp = new Part();

        UniTable.partDictionary.Add(UniTable.classGuid[typeof(Part)], mp);

        SteelCore sc = new SteelCore();

        sc.slots.Add(Part.slot.core);
        UniTable.partDictionary.Add(UniTable.classGuid[typeof(SteelCore)], sc);

        //weapon dictionary
        FlakGunWeapon newFlakGun = new FlakGunWeapon();

        newFlakGun.displayName = "Flak Gun";
        newFlakGun.range       = 5;
        newFlakGun.damage      = 35;
        newFlakGun.maxAmmo     = 8;
        newFlakGun.iconSprite  = Resources.Load <Sprite>("BoostAttackIcon") as Sprite;
        newFlakGun.slots.Add(Part.slot.weapon1);
        newFlakGun.slots.Add(Part.slot.weapon2);
        UniTable.partDictionary.Add(UniTable.classGuid[typeof(FlakGunWeapon)], newFlakGun);


        LasGunWeapon newLasGun = new LasGunWeapon();

        newLasGun.displayName = "LasGun";
        newLasGun.range       = 2;
        newLasGun.damage      = 45;
        newLasGun.iconSprite  = Resources.Load <Sprite>("BoostAttackIcon") as Sprite;
        newLasGun.slots.Add(Part.slot.weapon1);
        newLasGun.slots.Add(Part.slot.weapon2);
        UniTable.partDictionary.Add(UniTable.classGuid[typeof(LasGunWeapon)], newLasGun);

        //units dictionary
        //these rely on the above
        Mech m = this.transform.gameObject.AddComponent <Mech>();

        m.Initialize();
        UniTable.unitDictionary.Add(UniTable.classGuid[typeof(Mech)], m);

        //define template rules regarding parts ownership and templated parts
        Mech inter = this.makeIntercessorTemplate();

        UniTable.unitDictionary.Add(new Guid("a36f8211-608f-4afc-be6f-27f5b6143019"), inter);

        //prefabs Table
        UniTable.prefabTable.Add(typeof(Mech), Resources.Load <Transform>("Mech") as Transform);

        initCrafting();
    }
예제 #28
0
 public void setTarg(Transform pos, shoot cannon)
 {
     player        = pos;
     cannon_origin = cannon;
 }
예제 #29
0
 // Use this for initialization
 void Start()
 {
     myMovement = this.GetComponent <movement>();
     myShoot    = this.GetComponentInChildren <shoot>();
 }