Exemplo n.º 1
0
    void TryShot()
    {
        if (target != null & Time.time > lastReload + reload_time)
        {
            if (!TowerTop || Quaternion.Angle(TowerTop.transform.rotation, destQuat) < minShootAngle)
            {
                //shoot
                if (!TowerTop)
                {
                    ShootPoint.transform.rotation = destQuat;
                }

                float angle = GetShootAngle();
                if (angle != -1000)
                {
                    TowerBullet tower_bullet = TowerManager.GetBullet(bullets[bulletNum]);
                    Quaternion  rot          = Quaternion.AngleAxis(-1 * angle, ShootPoint.transform.right);
                    Bullet      bullet       = Instantiate(tower_bullet.Bullet, ShootPoint.transform.position, rot * ShootPoint.rotation);
                    bullet.transform.position = ShootPoint.transform.position;
                    bullet.SetDamage(tower_bullet.Damage);
                    bullet.SetPlayerName(PlayerName);

                    Rigidbody bulletRigid = bullet.GetComponent <Rigidbody>();
                    bulletRigid.velocity = rot * ShootPoint.transform.forward * bullet_speed;
                    Physics.IgnoreCollision(bulletRigid.GetComponent <Collider>(), transform.GetComponent <Collider>());
                    lastReload = Time.time;
                }
            }
        }
    }
Exemplo n.º 2
0
    void Shoot()
    {
        GameObject  bulletGo = (GameObject)Instantiate(towerBullet, firePoint.position, Quaternion.identity);
        TowerBullet bullet   = bulletGo.GetComponent <TowerBullet>();

        if (bullet != null)
        {
            bullet.Seek(target);
        }
    }
Exemplo n.º 3
0
    private void Attack()
    {
        Vector3 pos = new Vector3(player.transform.position.x, rotater.position.y, rotater.transform.position.z);

        rotater.LookAt(pos);
        TowerBullet newBullet = Instantiate(bulletPrefab, bulletPoint.transform.position, bulletPoint.transform.rotation, bulletPoint.transform.parent);

        newBullet.SetDamage(attackDamage);
        newBullet.SetPlayer(player);
        newBullet.Fire();
    }
Exemplo n.º 4
0
 public void SetOneBullet(List <int> bullets, List <BulletInfo> bul_list, ScrollRect parent)
 {
     DeleteOldBResources(bul_list);
     foreach (var bullet in bullets)
     {
         TowerBullet bull      = TowerManager.GetBullet(bullet);
         BulletInfo  newBullet = Instantiate(bull_info);
         newBullet.SetData(bull);
         newBullet.transform.SetParent(parent.content.transform);
         bul_list.Add(newBullet);
     }
 }
Exemplo n.º 5
0
    void Shoot()
    {
        if (target == null)
        {
            return;
        }

        Vector2    dirVec = TKMath.GetAngleVector(aimDir);
        Projectile p      = new TowerBullet(this, TurretPosition + dirVec * 1.2f, TurretPosition + dirVec * 5f, 2f, Map);

        SendShootToPlayer(TurretPosition + dirVec * 5f, p, Map.playerList);
        ammo--;
    }
Exemplo n.º 6
0
    public void Startup()
    {
        towerLevels = new Dictionary <int, Dictionary <int, Dictionary <int, double> > >();

        using (IDataReader dr = Managers.Database.GetSQLiteQuery("SELECT t.item_id, tl.level, tlc.towercharid AS char_id, tlc.value FROM Towers AS t JOIN TowerLevels AS tl ON tl.tower_id = t.ID JOIN TowerLevelChars AS tlc ON tlc.towerlevelid = tl.ID;"))
        {
            while (dr.Read())
            {
                int    item_id = Convert.ToInt32(dr["item_id"]);
                int    level   = Convert.ToInt32(dr["level"]);
                int    char_id = Convert.ToInt32(dr["char_id"]);
                double value   = Convert.ToDouble(dr["value"]);

                if (!towerLevels.ContainsKey(item_id))
                {
                    towerLevels[item_id] = new Dictionary <int, Dictionary <int, double> >();
                }

                if (!towerLevels[item_id].ContainsKey(level))
                {
                    towerLevels[item_id][level] = new Dictionary <int, double>();
                }

                towerLevels[item_id][level][char_id] = value;
            }

            towerLevelBullets = new Dictionary <int, Dictionary <int, List <int> > >();

            dr.Close();
        }

        using (IDataReader dr = Managers.Database.GetSQLiteQuery("SELECT t.item_id, tl.level,   tb.bullet_id FROM Towers AS t JOIN TowerLevels AS tl ON tl.tower_id = t.ID JOIN TowerBullets AS tb ON tb.tower_id = tl.ID;"))
        {
            while (dr.Read())
            {
                int item_id   = Convert.ToInt32(dr["item_id"]);
                int level     = Convert.ToInt32(dr["level"]);
                int bullet_id = Convert.ToInt32(dr["bullet_id"]);

                if (!towerLevelBullets.ContainsKey(item_id))
                {
                    towerLevelBullets[item_id] = new Dictionary <int, List <int> >();
                }

                if (!towerLevelBullets[item_id].ContainsKey(level))
                {
                    towerLevelBullets[item_id][level] = new List <int>();
                }

                towerLevelBullets[item_id][level].Add(bullet_id);
            }

            towerBullets = new Dictionary <int, TowerBullet>();
            dr.Close();
        }

        using (IDataReader dr = Managers.Database.GetSQLiteQuery("SELECT * FROM bullets;"))
        {
            while (dr.Read())
            {
                int    id          = Convert.ToInt32(dr["id"]);
                String name        = dr["name"].ToString();
                String prefab_path = dr["prefab"].ToString();
                double damage      = Convert.ToDouble(dr["damage"]);
                double radius      = Convert.ToDouble(dr["radius"]);
                towerBullets[id] = new TowerBullet(name, prefab_path, (float)damage, radius);
            }
            dr.Close();
        }

        InitTowers();
        status = ManagerStatus.Started;
    }
Exemplo n.º 7
0
 public void SetData(TowerBullet bullet)
 {
     NameText.text   = String.Format("{0}", bullet.Name);
     DamageText.text = String.Format("Damage: {0}", bullet.Damage);
     RadiusText.text = String.Format("Radius: {0}", bullet.Radius);
 }