Пример #1
0
    void UpdateFiring()
    {
        if (fireToggle)
        {
            lastShotTime += Time.deltaTime;
            if (lastShotTime >= 0.1)
            {
                ProjectileScript projectile = gunProjectile.GetComponent <ProjectileScript>();
                Rigidbody2D      rigidbody  = GetComponent <Rigidbody2D>();

                projectile.Fire(projectile, rigidbody.velocity);
                gunAudio.Play();
                lastShotTime = 0;
            }
        }
    }
Пример #2
0
    private void HitByProjectile(ProjectileScript projectile)
    {
        var velocity = projectile.GetComponent <Rigidbody2D>().velocity;

        if (velocity.y > 0)
        {
            return;
        }

        var damage = projectile.GetDamage();

        Hp = Hp - damage;
        Debug.Log(Hp);
        if (Hp <= 0)
        {
            Die();
        }
    }
Пример #3
0
 protected void DisableProjectileArrow(ProjectileScript pro)
 {
     if (StatMaster.isHosting && !StatMaster.isLocalSim)
     {
         NetworkProjectile netProjectile = pro.GetComponent <NetworkProjectile>();
         ProjectileManager.Instance.Despawn(netProjectile);
     }
     else
     {
         gameObject.SetActive(false);
         pro.projectileInfo.Rigidbody.isKinematic = true;
     }
     if (!Object.ReferenceEquals(pro.firecontrol, null) && pro.firecontrol.onFire && pro.firecontrol.gameObject.activeInHierarchy)
     {
         pro.firecontrol.DouseFire();
     }
     pro.hasAttached = false;
 }
Пример #4
0
    public void Fire_Miss(Transform weaponSpawn, Vector3 _targetPosition, Weapon _weapon, float _UnitSize)
    {
        if (WeaponSpawns.Contains(weaponSpawn))
        {
            var ammo  = _weapon.projectile;
            var speed = _weapon.projectileSpeed;


            bool XDir = (Game.Random.Next(0, 10) > 5);
            bool YDir = (Game.Random.Next(0, 10) > 5);
            bool ZDir = (Game.Random.Next(0, 10) > 5);

            float X = _UnitSize;
            float Y = _UnitSize;
            float Z = _UnitSize;

            if (XDir)
            {
                X = -X;
            }
            if (YDir)
            {
                Y = -Y;
            }
            if (ZDir)
            {
                Z = -Z;
            }

            X = _UnitSize + _targetPosition.x;
            Y = _UnitSize + _targetPosition.y;
            Z = _UnitSize + _targetPosition.z;


            Vector3 ShotTarget = new Vector3(X, Y, Z);

            ProjectileScript projectile = Instantiate(ammo, weaponSpawn.position, Quaternion.identity) as ProjectileScript;
            projectile.transform.LookAt(ShotTarget);
            projectile.GetComponent <Rigidbody>().AddForce(projectile.transform.forward * speed);
        }
    }