private void DoSpecial(Vector2 inputVector, IsometricCharacterRenderer isoRenderer, string animatedString) { if (animatedString == "zxx") { LinearBullet spawned = Instantiate <LinearBullet>(normalRangedAttackPrefab); spawned.Setup(transform.position, (Vector2)transform.position + IntDirectionToVector(isoRenderer.LastDirection), 0.25f, 40); } }
private void SpawnBullet(Transform bullet, Refractor side) { Transform b = Instantiate(bullet, side.spawnPoint.position, side.spawnPoint.rotation); LinearBullet lb = b.GetComponent <LinearBullet>(); lb.Seek(side.GetDirection()); lb.initialDecayTimer *= 0.75f; lb.decayTimer = lb.initialDecayTimer; }
// Update is called once per frame void Update() { Vector3 myPos = new Vector3(transform.position.x, transform.position.y, 0); if (timer == 0) { LinearBullet bullet1 = Instantiate(bul, myPos, Quaternion.identity); bullet1.angle = angle; bullet1.moveSpeed = projspeed; timer = interval; } else { timer--; } }
private void RapidShootPerFrame() { if (currentState == BossState.Shoot && shootState == ShootState.Rapid) { if (shootCounter > rapidShootRateFrame) { //shoot LinearBullet spawned = Instantiate <LinearBullet>(basicBullet); spawned.Setup(spawner1.transform.position, player.transform.position, basicBulletVelocity, basicBulletDamage); animator.Play("attack_FULL"); shootCounter = 0; } else { shootCounter++; } } }
private void StarShootPerFrame() { if (currentState == BossState.Shoot && shootState == ShootState.Star) { if (shootCounter > rapidShootRateFrame) { //shoot for (int i = 0; i < starDirections.Count; i++) { LinearBullet spawned = Instantiate <LinearBullet>(basicBullet); Vector2 targetPoint = (Vector2)spawner1.transform.position + starDirections[i]; animator.Play("attack_FULL"); spawned.Setup(spawner1.transform.position, targetPoint, basicBulletVelocity, basicBulletDamage); } shootCounter = 0; } else { shootCounter++; } } }
// Update is called once per frame void Update() { if (_fireIn <= 0 && _remain > 0) { int i = 0; foreach (var bullet in BulletPool.Instance.Request(chunk)) { LinearBullet behavior = bullet.GetComponent <LinearBullet>(); behavior.angle = _firingAngle + _angleOffset * i + Random.Range(-modifier, modifier); behavior.speed = 32f; behavior.OnSpawn(gameObject); ++i; } _firingAngle += rotate; _fireIn = reload; _remain -= chunk; } else { --_fireIn; } }
private void StateMachineRunningPerFrame() { BasicRangeState nextState = BasicRangeState.Idle; if (currentState == BasicRangeState.Meet) { if (canAttack) { LinearBullet spawned = Instantiate<LinearBullet>(linearBullet); spawned.Setup(transform.position, player.transform.position, bulletVelocity, damage); canAttack = false; } if (!IsPlayerInMeetRange()) nextState = BasicRangeState.Idle; else if (IsPlayerInEscapeRange()) nextState = BasicRangeState.Escape; else nextState = BasicRangeState.Meet; } else if (currentState == BasicRangeState.Escape) { if (!IsPlayerInMeetRange()) nextState = BasicRangeState.Idle; else if (!IsPlayerInEscapeRange()) nextState = BasicRangeState.Meet; else nextState = BasicRangeState.Escape; } else if (currentState == BasicRangeState.Death) { if (stateCounter >= deathFrame) { nextState = BasicRangeState.Death; monsterHealth.Die(); } else { stateCounter++; nextState = BasicRangeState.Death; } } else if (currentState == BasicRangeState.Hurt) { if (stateCounter >= hurtFrame) { nextState = BasicRangeState.Meet; } else { stateCounter++; nextState = BasicRangeState.Hurt; } } else { // Check if meet if (IsPlayerInMeetRange()) nextState = BasicRangeState.Meet; else nextState = BasicRangeState.Idle; } if (currentState != BasicRangeState.Hurt && monsterHealth.IsHurt) { nextState = BasicRangeState.Hurt; } if (currentState != BasicRangeState.Death && monsterHealth.IsDie) { nextState = BasicRangeState.Death; } if(nextState != currentState) changeState(nextState); }
// Update is called once per frame void Update() { //Antiquated. Keeping just in case. // Collider2D[] hitColliders = Physics2D.OverlapCircleAll(transform.position, 20); // int i = 0; // while (i < hitColliders.Length) // { // if (hitColliders[i].CompareTag("Player")) // player = hitColliders[i].gameObject; // i++; // } if (lagTime == 0) { Vector3 myPos = new Vector3(transform.position.x, transform.position.y, 0); if (hp <= 0) { KeyScript k = Instantiate(key, myPos, Quaternion.identity); g.k = k; Destroy(this.gameObject); } if (waitTime > 0) { waitTime--; } else { Vector3 playerPos = new Vector3(player.transform.position.x, player.transform.position.y, 0); Vector3 direction = (playerPos - GetComponent <Rigidbody2D>().transform.position); // EnemyBulletScript projectile = Instantiate(obj, myPos, Quaternion.identity); // projectile.setTarget(player); waitTime = interval; float bulletDirection = Mathf.Atan(direction.y / direction.x); if (direction.y >= 0 && direction.x <= 0) { bulletDirection += 3.141f; } if (direction.y <= 0 && direction.x <= 0) { bulletDirection += 3.141f; } LinearBullet sneaky1 = Instantiate(bul, myPos, Quaternion.identity); sneaky1.angle = bulletDirection + Random.Range(0.0f, 0.6f) * mod; } Vector3 playerPoss = new Vector3(player.transform.position.x, player.transform.position.y, 0); Vector3 directions = (playerPoss - GetComponent <Rigidbody2D>().transform.position); GetComponent <Rigidbody2D>().velocity = directions * moveSpeed; LinearBullet bullet1 = Instantiate(bul, myPos, Quaternion.identity); bullet1.angle = angle; angle += (angleChange) * mod; LinearBullet bullet2 = Instantiate(bul, myPos, Quaternion.identity); bullet2.angle = angle; angle += (angleChange) * mod; LinearBullet bullet3 = Instantiate(bul, myPos, Quaternion.identity); bullet3.angle = angle; angle += (angleChange) * mod; LinearBullet bullet4 = Instantiate(bul, myPos, Quaternion.identity); bullet4.angle = angle; angle += (angleChange) * mod; LinearBullet bullet5 = Instantiate(bul, myPos, Quaternion.identity); bullet5.angle = angle; angle += (angleChange) * mod; LinearBullet bullet6 = Instantiate(bul, myPos, Quaternion.identity); bullet6.angle = angle; angle += (angleChange) * mod; modTime--; if (modTime <= 0) { mod = mod * -1.00003f; modTime = Random.Range(200, 1000); } //Mathf.PI / 4.0f) + 0.01f } else { lagTime--; } }