コード例 #1
0
    /// <summary>
    /// Lança uma granada.
    /// </summary>
    void Granade()
    {
        Granade clone = Instantiate(granadePrefab, grenadeOrigin.transform.position, Quaternion.LookRotation(grenadeOrigin.transform.forward));

        clone.Init(grenadeOrigin.transform.forward);
        clone.transform.parent = shotsFolder;
    }
コード例 #2
0
 private void Start()
 {
     if (granade == null)
     {
         granade = GetComponentInParent <Granade>();
     }
 }
コード例 #3
0
    private void ShootGranade()
    {
        Granade g = GetGranade().GetComponent <Granade>();

        g.transform.position = gun._bulletSpawnPosition.position;
        g.transform.rotation = gun.transform.rotation;
        g.GetComponent <Rigidbody2D>().velocity = g.transform.right * 20;
        _trowTimer = 2;
        _granadeCount--;
    }
コード例 #4
0
ファイル: Granade.cs プロジェクト: Alain00/SunsetStalkers
    void ThrowGranade(Quaternion Dir)
    {
        //Init new Granade
        GameObject Current = Instantiate(GranadeToInstantiate, transform.position + Player.forward, Dir);

        RB = Current.GetComponent <Rigidbody>();
        Granade CurrentGranade = Current.GetComponent <Granade>();

        RB.AddForce(Current.transform.forward * 6 + Current.transform.up * 3, ForceMode.Impulse);
        CurrentGranade.CanExplode = true;
    }
コード例 #5
0
 // Update is called once per frame
 void Update()
 {
     if (GM.Active)
     {
         cooldown -= Time.deltaTime;
         if (cooldown <= 0)
         {
             Granade.Go(transform.position, target, 4, 2, 2, 3);
             cooldown = Cooldown;
         }
     }
 }
コード例 #6
0
 // Update is called once per frame
 void Update()
 {
     if (GM.Active)
     {
         cooldown -= Time.deltaTime;
         if (cooldown <= 0 && IsReady)
         {
             Granade.Go(transform.position, target + Random.insideUnitCircle * spread, 5, ExplSize, damage, Suppression);
             cooldown = Cooldown;
         }
     }
 }
コード例 #7
0
ファイル: Granade.cs プロジェクト: qfeys/LD38-Shooter
    public static void Go(Vector2 Start, Vector2 target, float speed, float size, float damage, float suppression)
    {
        if (GranadePool == null)
        {
            GranadePool = GameObject.Find("Granades").GetComponent <ObjectPool>();
        }
        GameObject go = GranadePool.GetNextObject();
        Granade    gr = go.GetComponent <Granade>();

        gr.speed = speed; gr.maxSize = size; gr.Damage = damage; gr.Suppression = suppression;
        go.transform.position = Start;
        go.transform.rotation = Quaternion.FromToRotation(Vector2.up, target - Start);
        gr.timeTilInpact      = Vector2.Distance(Start, target) / speed;
        go.SetActive(true);
        SoundBoard.instance.PlayLaunch();
    }
コード例 #8
0
    void InitiateGranade()
    {
        if (gameObject.name.Contains("Still Cannon Wrapper"))
        {
            latestGranade = Instantiate(granadePrefab, transform.GetChild(0).position, transform.rotation) as GameObject;
        }
        else
        {
            latestGranade = Instantiate(granadePrefab, transform.position, transform.rotation) as GameObject;
        }

        if (isUpShootingLauncher)
        {
            latestGranade.transform.Rotate(0, 0, 90f);
        }

        latestGranadeClass = latestGranade.GetComponent <Granade>();
        latestGranadeClass.granadeSpeed = granadeSpeed;
    }
コード例 #9
0
ファイル: UnitTest1.cs プロジェクト: JulKuk/Zvejai
 public void Create_Guns(string type)
 {
     if (type == "S")
     {
         Sniper temp = WeaponsFacotry.CreateWeapon(type) as Sniper;
         Assert.AreEqual(10, temp.ammo);
         Assert.AreEqual("AWP", temp.name);
         Assert.AreEqual(75, temp.damage);
         Assert.AreEqual(900, temp.cost);
     }
     else if (type == "A")
     {
         Automat temp = WeaponsFacotry.CreateWeapon(type) as Automat;
         Assert.AreEqual(30, temp.ammo);
         Assert.AreEqual("AK-47", temp.name);
         Assert.AreEqual(45, temp.damage);
         Assert.AreEqual(750, temp.cost);
     }
     else if (type == "P")
     {
         Pistol temp = WeaponsFacotry.CreateWeapon(type) as Pistol;
         Assert.AreEqual(7, temp.ammo);
         Assert.AreEqual("Desert Eagle", temp.name);
         Assert.AreEqual(30, temp.damage);
         Assert.AreEqual(500, temp.cost);
     }
     else if (type == "B")
     {
         Bazooka temp = WeaponsFacotry.CreateWeapon(type) as Bazooka;
         Assert.AreEqual(1, temp.ammo);
         Assert.AreEqual("RukyBazuky", temp.name);
         Assert.AreEqual(100, temp.damage);
         Assert.AreEqual(1000, temp.cost);
     }
     else
     {
         Granade temp = WeaponsFacotry.CreateWeapon(type) as Granade;
         Assert.AreEqual(1, temp.ammo);
         Assert.AreEqual("small", temp.name);
         Assert.AreEqual(10, temp.damage);
         Assert.AreEqual(0, temp.cost);
     }
 }
コード例 #10
0
    public void updateAnimations(bool slowmo)
    {
        // update animations of all gameobjects.
        for (int i = 0; i < numAnimators; i++)
        {
            if (animators[i] != null)
            {
                if (slowmo)
                {
                    animators[i].speed = slowmoSpeed;
                }
                else
                {
                    animators[i].speed = normalSpeed;
                }
            }
        }

        // set enemy granade launchers to initialize new granades wrt slow-motion factor.
        for (int i = 0; i < numLaunchers; i++)
        {
            if (slowmo)
            {
                granadeLaunchersInScene[i].SetSlowmoForGranadeLauncher(slowmoSpeed);
            }
            else
            {
                granadeLaunchersInScene[i].SetSlowmoForGranadeLauncher(1f);
            }
        }

        for (int i = 0; i < numContainers; i++)
        {
            if (slowmo)
            {
                placeObjectScriptContainersInScene[i].SetSlowmoForObjectInLine(slowmoSpeed);
            }
            else
            {
                placeObjectScriptContainersInScene[i].SetSlowmoForObjectInLine(1 / slowmoSpeed);
            }
        }

        // update moving speed for all active granades and scaling speed of all non active granades.
        Granade[] granades       = FindObjectsOfType <Granade>();
        int       activeGranades = granades.Length;

        for (int i = 0; i < activeGranades; i++)
        {
            Granade granadeClass = granades[i].GetComponent <Granade>();
            if (granadeClass.isGranadeActive())
            {
                if (slowmo)
                {
                    granadeClass.setGranadeSpeed(slowmoSpeed);
                }
                else
                {
                    granadeClass.setGranadeSpeed((1 / slowmoSpeed));
                }
            }
            else
            {
                if (slowmo)
                {
                    granadeClass.SetScaleFactor(slowmoSpeed);
                }
                else
                {
                    granadeClass.SetScaleFactor((1 / slowmoSpeed));
                }
            }
        }
    }
コード例 #11
0
 void Start()
 {
     transform.localScale = new Vector3(startScale, startScale, startScale);
     bulletInstance       = Instantiate(bulletPrefab, transform.position, transform.rotation) as GameObject;
     bulletClass          = bulletInstance.GetComponent <Granade>();
 }