protected override void Shoot() { for (int i = 0; i < 4; i++) { part[i].transform.localPosition = part[i].transform.localPosition.normalized * defaultSize; part[i].transform.DOLocalMove(part[i].transform.localPosition.normalized * 8f, 0.4f).From(); } for (int i = 0; i < amount[weaponLevel]; i++) { clone = Pooler.GetObject(laser, shootPoint.transform.position, transform.rotation); float randDir = Random.Range(-spread[weaponLevel], spread[weaponLevel]); shootPoint.transform.localRotation = Quaternion.Euler(new Vector3(0, 135 + randDir, 0)); clone.GetComponent <BaseAttack>().GetRigidBody().AddForce(shootPoint.transform.forward * (shootPower[weaponLevel] + Random.Range(-100, 100)) * (120 - (Mathf.Abs(randDir) * 3)) + velocity); clone.GetComponent <TrailRenderer>().Clear(); } ProCamera2DShake.Instance.Shake( 0.1f, //duration new Vector3(35, 35), //strength 2, //vibrato 0.5f, //randomness aimAngle * -1, //initialAngle (-1 = random) new Vector3(0, 0, 0), //rotation 0.1f); //smoothness bombTimer = 0; }
// Bomb protected override void Skill_0() { for (int i = 0; i < 4; i++) { part[i].transform.localPosition = part[i].transform.localPosition.normalized * defaultSize; part[i].transform.DOLocalMove(part[i].transform.localPosition.normalized * 15f, 0.2f).From(); } clone = Pooler.GetObject(bomb, transform.position, transform.rotation); clone.GetComponent <Bomb>().SetOwner(this.gameObject); clone.GetComponent <Bomb>().ownerNum = playerNum; clone.GetComponent <Rigidbody>().AddForce(shootPoint.transform.forward * 400000 + velocity); if (nova.activeInHierarchy == true) { clone.GetComponent <Bomb>().novaImune = 0.4f; } shootTimer = shootDelay[weaponLevel]; rB.AddForce(shootPoint.transform.forward * -60000); ProCamera2DShake.Instance.Shake( 0.3f, //duration new Vector3(35, 35), //strength 2, //vibrato 0.5f, //randomness aimAngle * -1, //initialAngle (-1 = random) new Vector3(0, 0, 0), //rotation 0.1f); //smoothness queBomb = false; }
void Shoot3() { if (shootToggle) { clone = Pooler.GetObject(laser3, shootPoint[0].transform.position, transform.rotation); clone.GetComponent <Laser>().SetVelocity(shootPoint[0].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); } else { float offset = Random.Range(0, spread); clone = Pooler.GetObject(laser3, shootPoint[1].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(new Vector3( Mathf.Sin((aimAngle - offset) * Mathf.Deg2Rad), 0, Mathf.Cos((aimAngle - offset) * Mathf.Deg2Rad)).normalized *shootPower[weaponLevel] * -1); clone.GetComponent <TrailRenderer>().Clear(); clone = Pooler.GetObject(laser3, shootPoint[2].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(new Vector3( Mathf.Sin((aimAngle + offset) * Mathf.Deg2Rad), 0, Mathf.Cos((aimAngle + offset) * Mathf.Deg2Rad)).normalized *shootPower[weaponLevel] * -1); clone.GetComponent <TrailRenderer>().Clear(); } shootToggle = !shootToggle; }
protected override void Shoot() { GameObject clone = Pooler.GetObject(bubble, shootPoint.transform.position, transform.rotation); shootPoint.transform.localRotation = Quaternion.Euler(new Vector3(0, 135 + Random.Range(-spread, spread), 0)); clone.GetComponent <BaseAttack>().SetVelocity(shootPoint.transform.forward * shootPower[weaponLevel] + velocity); }
void ShootHandler() { if (Input.GetMouseButtonDown(0)) { Vector2 dir = Utils.GetDirection(transform.position, gunHandle.position); GameObject shot = pool.GetObject(gunHandle.GetChild(0).position, Quaternion.identity); shot.GetComponent <Rigidbody2D>().AddForce(dir.normalized, ForceMode2D.Impulse); } }
void Shoot2() { clone = Pooler.GetObject(laser2, shootPoint[1].transform.position, transform.rotation); clone.GetComponent <Laser>().SetVelocity(shootPoint[1].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); clone = Pooler.GetObject(laser2, shootPoint[2].transform.position, transform.rotation); clone.GetComponent <Laser>().SetVelocity(shootPoint[2].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); }
protected override void Shoot() { clone = Pooler.GetObject(laser, shootPoint.transform.position, transform.rotation); float randAim = Random.Range(aimAngle - spread, aimAngle + spread); clone.GetComponent <BaseAttack>().SetVelocity(new Vector3( Mathf.Sin(randAim * Mathf.Deg2Rad), 0, Mathf.Cos(randAim * Mathf.Deg2Rad)).normalized *shootPower[weaponLevel] * -1); clone.GetComponent <TrailRenderer>().Clear(); }
private void ShootHandler() { shotTimer -= Time.deltaTime; if (shotTimer < 0) { Vector2 dir = Utils.GetDirection(transform.position, player.transform.position); GameObject shot = pool.GetObject(transform.position, Quaternion.identity); shot.GetComponent <Rigidbody2D>().AddForce(dir.normalized * shotSpeed, ForceMode2D.Impulse); shotTimer = shotCooldown; } }
protected override void Shoot() { if (!trigger1Down) { smallgun[0].transform.localPosition = new Vector3(17, 0, -3); smallgun[1].transform.localPosition = new Vector3(3, 0, -17); smallgun[0].transform.DOLocalMoveZ(1, shootDelay[0] * 0.8f).From(); smallgun[1].transform.DOLocalMoveX(-1, shootDelay[0] * 0.8f).From(); shootPoint[0].GetComponent <AudioSource>().Play(); //rB.AddForce(shootPoint[0].transform.forward * -5000); switch (weaponLevel) { default: case 0: clone = Pooler.GetObject(laser1, shootPoint[0].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(shootPoint[0].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); break; case 1: for (int i = 1; i < 3; i++) { clone = Pooler.GetObject(laser2, shootPoint[i].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(shootPoint[i].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); } break; case 2: clone = Pooler.GetObject(laser1, shootPoint[0].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(shootPoint[0].transform.forward * shootPower[weaponLevel] * 1.2f); clone.GetComponent <TrailRenderer>().Clear(); for (int i = 1; i < 3; i++) { clone = Pooler.GetObject(laser2, shootPoint[i].transform.position, transform.rotation); clone.GetComponent <BaseAttack>().SetVelocity(shootPoint[i].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); } break; } } }
public void ExpExplosion(float value, Vector3 pos) { float expSpeed = 5000 + 2000 * value; for (int i = 0; i <= (value / 3) + 1; i++) { clone = Pooler.GetObject(exp, pos, transform.rotation); clone.GetComponent <Rigidbody>().AddForce(new Vector3( Random.Range(-expSpeed, expSpeed), Random.Range(-10, 10), Random.Range(-expSpeed, expSpeed))); } }
IEnumerator SpiralWait() { GameObject[] prj = new GameObject[(int)Mathf.Floor(numberOfShots * numberOfSpins)]; float angleChange = 360 / numberOfShots; float startAngle = 0; float incrementAngle = 0; for (int i = 0; i < Mathf.Floor(numberOfShots * numberOfSpins); i++) { incrementAngle = angleChange * i; prj[i] = projectilePool.GetObject(); var radians = (startAngle + incrementAngle) * Mathf.Deg2Rad; prj[i].transform.position = new Vector3(Mathf.Cos(radians), Mathf.Sin(radians), 0) * radius + gameObject.transform.position; prj[i].transform.rotation = Quaternion.Euler(0, 0, incrementAngle); prj[i].SetActive(true); SFX.PlayOneShot(shoot); yield return(new WaitForSeconds(spiralWaitBetweenShots)); } }
void Shoot1() { clone = Pooler.GetObject(laser1, shootPoint[0].transform.position, transform.rotation); clone.GetComponent <Laser>().SetVelocity(shootPoint[0].transform.forward * shootPower[weaponLevel]); clone.GetComponent <TrailRenderer>().Clear(); ProCamera2DShake.Instance.Shake( 0.2f, //duration new Vector3(40, 40), //strength 2, //vibrato 0.5f, //randomness aimAngle * -1, //initialAngle (-1 = random) new Vector3(0, 0, 0), //rotation 0.1f); //smoothness rB.AddForce(shootPoint[0].transform.forward * speed * -5f * shootDelay[weaponLevel]); }
// Black Hole protected override void Skill_0() { clone = Pooler.GetObject(blackHole, shootPoint.transform.position, transform.rotation); //clone.GetComponent<BaseAttack>().SetVelocity(shootPoint.transform.forward * 700); clone.GetComponent <Rigidbody>().AddForce(shootPoint.transform.forward * (shootPower[weaponLevel]) * 100 + velocity); ProCamera2DShake.Instance.Shake( 0.4f, //duration new Vector3(75, 75), //strength 2, //vibrato 0.5f, //randomness aimAngle * -1, //initialAngle (-1 = random) new Vector3(0, 0, 0), //rotation 0.1f); //smoothness rB.AddForce(shootPoint.transform.forward * -60000); }
void ShootBullet() { if (bulletPrefab == null || _bulletSpawn == null) { return; } Bullet bullet = Pooler.GetObject(bulletPrefab, _bulletSpawn.position, Quaternion.identity) as Bullet; if (bullet == null) { return; } if (shootDir == Vector2.zero) { bullet.travelDirection = Vector2.down; return; } bullet.travelDirection = shootDir; }
private void Shoot() { // Projectile automatically aims for player. if (!canShoot) { return; } if (firstTimeShoot) { StartCoroutine(WaitToShoot(randShootingOffset)); } else { // CONTINUOUS if (shootingType == shootingTypes.Continuous) { GameObject prj = projectilePool.GetObject(); prj.transform.position = hand.transform.position; // adjusts the projectiles starting position and rotation according to the enemy hand's position/rotation prj.transform.rotation = hand.transform.rotation; prj.SetActive(true); SFX.PlayOneShot(ShootSFX); StartCoroutine(CanShoot()); } // ARC & ARC TIGHT else if (shootingType == shootingTypes.Arc || shootingType == shootingTypes.ArcTight) { GameObject[] prj = new GameObject[numberOfShots]; StartCoroutine(CanShoot()); float angleIndex = 0; if (numberOfShots % 2f == 0f) { angleIndex = numberOfShots / -2 + 0.5f; } else { angleIndex = -Mathf.FloorToInt(numberOfShots / 2); } float targetAngle; if (!moveTowardsProtection) { targetAngle = Mathf.Atan2(player.transform.position.y - hand.transform.position.y, player.transform.position.x - hand.transform.position.x) * Mathf.Rad2Deg; } else { targetAngle = Mathf.Atan2(Protection.transform.position.y - hand.transform.position.y, Protection.transform.position.x - hand.transform.position.x) * Mathf.Rad2Deg; } if (targetAngle < 0) { targetAngle = 360 + targetAngle; } for (int i = 0; i < numberOfShots; i++) { float angl = distanceAngle * angleIndex; prj[i] = projectilePool.GetObject(); var radians = (targetAngle + angl) * Mathf.Deg2Rad; prj[i].transform.position = new Vector3(Mathf.Cos(radians), Mathf.Sin(radians), 0) * radius + gameObject.transform.position; if (shootingType == shootingTypes.Arc) { prj[i].transform.rotation = hand.transform.rotation * Quaternion.Euler(0, 0, angl); } else { prj[i].transform.rotation = hand.transform.rotation; } prj[i].SetActive(true); angleIndex++; } SFX.PlayOneShot(ShootSFX); } // CIRCLE else if (shootingType == shootingTypes.Circle) { GameObject[] prj = new GameObject[numberOfShots]; StartCoroutine(CanShoot()); float angleChange = 360 / numberOfShots; float startAngle; if (!moveTowardsProtection) { startAngle = Mathf.Atan2(player.transform.position.y - hand.transform.position.y, player.transform.position.x - hand.transform.position.x) * Mathf.Rad2Deg; } else { startAngle = Mathf.Atan2(Protection.transform.position.y - hand.transform.position.y, Protection.transform.position.x - hand.transform.position.x) * Mathf.Rad2Deg; } float incrementAngle = 0; if (startAngle < 0) { startAngle = 360 + startAngle; } for (int i = 0; i < numberOfShots; i++) { incrementAngle = angleChange * i; prj[i] = projectilePool.GetObject(); var radians = (startAngle + incrementAngle) * Mathf.Deg2Rad; prj[i].transform.position = new Vector3(Mathf.Cos(radians), Mathf.Sin(radians), 0) * radius + gameObject.transform.position; prj[i].transform.rotation = hand.transform.rotation * Quaternion.Euler(0, 0, incrementAngle); prj[i].SetActive(true); } SFX.PlayOneShot(ShootSFX); } // SPIRAL else if (shootingType == shootingTypes.Spiral) { StartCoroutine(CanShoot()); StartCoroutine(SpiralWait()); } } }
public void SpawnBlast(Vector3 pos) { GameObject clone = Pooler.GetObject(blast, pos, transform.rotation); //GameObject clone = Instantiate(blast_prefab, pos, Quaternion.identity) as GameObject; }
private GameObject CreateEnemyInPath() { var enemy = Pooler.GetObject(_testObject, transform.position, Quaternion.identity); return(enemy.gameObject); }
public GameObject GetLaser(Vector3 pos) { return(Pooler.GetObject(redLaser, pos, transform.rotation)); }
public void SpawnCoin(float x, float z, Vector3 center) { Pooler.GetObject(coin, new Vector3(x, 0, z) + center, Quaternion.identity); ScoreManager.Instance.AddCointTotal(); }
private void PlayerShoot() { if (!canShoot || paused) { return; } if (currentWeapon == 0 || currentWeapon == 3) { // Adjusts the direction of the shot according to current mouse position. Then adjusts the projectile starting position // and rotation according to the Player GameObject's position and rotation. //Vector2 mousePosition = controls.Player.MousePosition.ReadValue<Vector2>(); //mousePosition = Camera.main.ScreenToWorldPoint(mousePosition); GameObject prj = projectilePool.GetObject(); prj.transform.position = hand.transform.position; prj.transform.rotation = hand.transform.rotation; if (currentWeapon == 3) { int textRand = Random.Range(0, 5); if (textRand == 0) { prj.GetComponentInChildren <TextMesh>().text = "Persuasion!"; } else if (textRand == 1) { prj.GetComponentInChildren <TextMesh>().text = "Deception!"; } else if (textRand == 2) { prj.GetComponentInChildren <TextMesh>().text = "Intimidation!"; } else if (textRand == 1) { prj.GetComponentInChildren <TextMesh>().text = "Insight!"; } PlayerSFX.PlayOneShot(playerShootWord); } else { PlayerSFX.PlayOneShot(playerShootStaff); } prj.SetActive(true); StartCoroutine(CanShoot()); } else if (currentWeapon == 1) { GameObject[] prj = new GameObject[7]; StartCoroutine(CanShoot()); float angleIndex = -Mathf.FloorToInt(7 / 2); Vector2 mousePosition = controls.Player.MousePosition.ReadValue <Vector2>(); mousePosition = Camera.main.ScreenToWorldPoint(mousePosition); float targetAngle = Mathf.Atan2(mousePosition.y - hand.transform.position.y, mousePosition.x - hand.transform.position.x) * Mathf.Rad2Deg; if (targetAngle < 0) { targetAngle = 360 + targetAngle; } for (int i = 0; i < 7; i++) { float angl = 30 * angleIndex; prj[i] = projectilePool.GetObject(); var radians = (targetAngle + angl) * Mathf.Deg2Rad; prj[i].transform.position = new Vector3(Mathf.Cos(radians), Mathf.Sin(radians), 0) * 0.5f + gameObject.transform.position; prj[i].transform.rotation = hand.transform.rotation; prj[i].SetActive(true); angleIndex++; } PlayerSFX.PlayOneShot(playerShootBook); } }