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 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++; } } }
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); }