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; } } } }
void Shoot() { GameObject bulletGo = (GameObject)Instantiate(towerBullet, firePoint.position, Quaternion.identity); TowerBullet bullet = bulletGo.GetComponent <TowerBullet>(); if (bullet != null) { bullet.Seek(target); } }
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(); }
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); } }
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--; }
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; }
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); }