public override void Enter() { ranged = GetComponent <RangedEnemy>(); distanceToPoint = 1.0f; AssignRandom(); }
// if an enemy is in the collision area, apply damage to that enemy private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("meleeEnemy")) { EnemyController meleeEnemy = collision.GetComponent <EnemyController>(); meleeEnemy.TakeDamage(3); GameObject aoeEffect = Instantiate(explosion, transform.position, Quaternion.identity); aoeEffect.GetComponent <Animator>().SetTrigger("Explode"); Destroy(aoeEffect, 1.0f); } if (collision.CompareTag("rangedEnemy")) { RangedEnemy rangedEnemy = collision.GetComponent <RangedEnemy>(); rangedEnemy.TakeDamage(3); GameObject aoeEffect = Instantiate(explosion, transform.position, Quaternion.identity); aoeEffect.GetComponent <Animator>().SetTrigger("Explode"); Destroy(aoeEffect, 1.0f); } if (collision.CompareTag("Boss")) { if (collision.name == "Flame Knight(Clone)") { FlameKnightController controller = collision.GetComponent <FlameKnightController>(); controller.TakeDamage(3); GameObject aoeEffect = Instantiate(explosion, transform.position, Quaternion.identity); aoeEffect.GetComponent <Animator>().SetTrigger("Explode"); Destroy(aoeEffect, 1.0f); } } }
void GruntRound() { int crrtBeat = Conductor.GetBeat() - FirstBeat; // Return early if round has not begun if (crrtBeat < 0) { return; } // Spawn grunts periodically if round has begun if (mNumGruntsSpawned != mNumGrunts && crrtBeat == mNumGruntsSpawned) { // Play VoicesLine When Grunts Spawn (But Only Once) if (mVoiceLineIndex == 1 || mVoiceLineIndex == 3 || mVoiceLineIndex == 5) { VoiceLines[mVoiceLineIndex++].Play(); } MeleeEnemy enemy = Instantiate(Grunt, GruntSpawns[mNumGruntsSpawned % GruntSpawns.Count].position, Quaternion.identity); enemy.Target = Player; enemy.HealthController.OnDeath += IncrementGruntKillCount; mNumGruntsSpawned += 1; } if (mNumRangedSpawned != mNumRanged && crrtBeat == mNumRangedSpawned) { RangedEnemy enemy = Instantiate(RangedGrunt, RangedSpawns[mNumRangedSpawned % RangedSpawns.Count].position, Quaternion.identity); enemy.Target = Player; enemy.HealthController.OnDeath += IncrementRangedKillCount; mNumRangedSpawned += 1; } }
// this handles the bullet collision // if it hits an enemy it creates an explosion effect and does damage to the enemy private void OnTriggerEnter2D(Collider2D collision) { if (collision.CompareTag("Collidables")) { Destroy(gameObject); } if (collision.CompareTag("meleeEnemy")) { // create AOE explosion effect Instantiate(aoeAttack, collision.transform.position, Quaternion.identity); Instantiate(explosionSound, collision.transform.position, Quaternion.identity); Destroy(gameObject); meleeEnemyController = collision.gameObject.GetComponent <EnemyController>(); meleeEnemyController.TakeDamage(setDamage); RoomEvent.bulletsHitEnemy += 1; GameObject hitAnimation = Instantiate(bulletHitAnimation, collision.transform.position, Quaternion.identity); hitAnimation.GetComponent <Animator>().SetTrigger("BulletHit"); Destroy(hitAnimation, 2.0f); } if (collision.CompareTag("rangedEnemy")) { // create AOE explosion effect Instantiate(aoeAttack, collision.transform.position, Quaternion.identity); Instantiate(explosionSound, collision.transform.position, Quaternion.identity); Destroy(gameObject); rangedEnemeyController = collision.gameObject.GetComponent <RangedEnemy>(); rangedEnemeyController.TakeDamage(setDamage); RoomEvent.bulletsHitEnemy += 1; GameObject hitAnimation = Instantiate(bulletHitAnimation, collision.transform.position, Quaternion.identity); hitAnimation.GetComponent <Animator>().SetTrigger("BulletHit"); Destroy(hitAnimation, 2.0f); } if (collision.CompareTag("Boss")) { print(collision.name); if (collision.name == "Flame Knight(Clone)") { FlameKnightController controller = GameObject.FindGameObjectWithTag("Boss").GetComponent <FlameKnightController>(); Instantiate(aoeAttack, transform.position, Quaternion.identity); Instantiate(explosionSound, collision.transform.position, Quaternion.identity); controller.TakeDamage(setDamage); GameObject hitAnimation = Instantiate(bulletHitAnimation, transform.position, Quaternion.identity); hitAnimation.GetComponent <Animator>().SetTrigger("BulletHit"); Destroy(gameObject); Destroy(hitAnimation, 2.0f); } } }
public override void Enter() { ranged = GetComponent <RangedEnemy>(); destination_done = false; search_position = true; ranged.shoot = false; }
public override void Enter() { ranged = GetComponent <RangedEnemy>(); timer = 0; ranged.enemy_navmesh.ResetPath(); ranged.enemy_navmesh.isStopped = false; }
public override void Enter() { ranged = GetComponent <RangedEnemy>(); ranged.myMeshRenderer.material = ranged.staggerMaterial; if (ranged.currentHealth > 0) { ranged.enemy_navmesh.isStopped = true; } timer = 0; }
// checks the timers and either applies damage to the target or destroys the game object void Update() { audioSource.volume = 0.4f * GameController.sfxVolume; // run a check to see if it's time to kill the DOT if (runningSecondsToRunDOT <= 0) { Destroy(gameObject); } else { runningSecondsToRunDOT -= Time.deltaTime; } // run a check to see if it's time to apply damage if (runningSecondsToApplyDamage <= 0) { if (gameObject.transform.parent.CompareTag("meleeEnemy")) { EnemyController meleeEnemy = gameObject.transform.parent.GetComponent <EnemyController>(); meleeEnemy.PlayPoisonDamageAnimation(); audioSource.Play(); meleeEnemy.TakeDamage(2); } else if (gameObject.transform.parent.CompareTag("rangedEnemy")) { RangedEnemy rangedEnemy = gameObject.transform.parent.GetComponent <RangedEnemy>(); rangedEnemy.PlayPoisonDamageAnimation(); audioSource.Play(); rangedEnemy.TakeDamage(2); } else if (gameObject.transform.parent.CompareTag("Boss")) { if (gameObject.transform.parent.name == "Flame Knight(Clone)") { FlameKnightController controller = GameObject.FindGameObjectWithTag("Boss").GetComponent <FlameKnightController>(); controller.PlayPoisonDamageAnimation(); audioSource.Play(); controller.TakeDamage(2); } } // need to add this stuff to the boss(es). runningSecondsToApplyDamage = totalSecondsToApplyDamage; } else { runningSecondsToApplyDamage -= Time.deltaTime; } }
private void OnCollisionEnter(Collision collision) { if (collision.gameObject.tag == "MeleeEnemy") { MeleeEnemy meleeEnemy = collision.gameObject.GetComponent <MeleeEnemy>(); meleeEnemy.DoDamage(); Destroy(gameObject); } else if (collision.gameObject.tag == "RangedEnemy") { RangedEnemy rangedEnemy = collision.gameObject.GetComponent <RangedEnemy>(); rangedEnemy.DoDamage(); Destroy(gameObject); } }
// OnStateEnter is called when a transition starts and the state machine starts to evaluate this state override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { go = animator.gameObject; player = GameObject.Find("Player"); viewRadius = go.GetComponent <RangedEnemy>().viewRadius; Weapon = animator.transform.Find("Weapon"); Head = animator.transform.Find("Head"); //xScale = enemyScript.enemyFlipScale; isAiming = animator.GetBool("isAiming"); isFiring = animator.GetBool("isFiring"); timerFire = false; enemyScript = go.gameObject.GetComponent <RangedEnemy>(); rb = go.GetComponent <Rigidbody2D>(); anim = animator; }
public void KillRangedEnemy(RangedEnemy enemy) { currentEnemies--; // Subtract 1 from the current enemies alive. enemy.gameObject.SetActive(false); // Set the enemy to inactive (destroy but using an efficient object pooler). op.RequeueObject("RangedEnemy", enemy.gameObject); // Requeue the enemy into the object pooler. kills++; // Increase the amount of kills by 1. combo++; // Increase the combo by 1. score += scorePerKill + (comboBonus * (combo - 1)); resetCombo = Time.time + comboTimer; // Set the next time the combo should be reset if we don't get any kills. UpdateHUD(); // Update the HUD to reflect all of the new stats. if (kills % killsPerNewEnemy == 0 && kills <= 200) { // We have reached a new kill milestone and haven't maxed out our players yet. maxEnemyRespawnTimer = Mathf.Clamp(maxEnemyRespawnTimer - enemyRespawnDecrement, minEnemyRespawnTimer, maxEnemyRespawnTimer); // Reduce the max timer by how much we should decrement then clamp it so it doesn't go below the minimum. enemies++; // Increase the amount of enemies we are allowed to have spawned. } }
//private bool canMove; // Use this for initialization void Start() { maxEnemies = 4; meleeEnemyReference = meleeprefab.GetComponent<MeleeEnemy> (); rangedEnemyReference = rangedprefab.GetComponent<RangedEnemy> (); GameObject[] enemyObjs; //gray;// = GameObject.Find ("Grayout").GetComponent<SpriteRenderer>(); player = GameObject.Find("Player").GetComponent<PlayerCharacter>(); puzzle = GameObject.Find ("PuzzleManager").GetComponent<PuzzleManager> (); enemyObjs = GameObject.FindGameObjectsWithTag("enemy"); enemies = new List<Enemy>(); for (int i = 0; i < enemyObjs.Length; i++) { enemies.Add(enemyObjs[i].GetComponent<Enemy>()); } //canMove = true; spawnTimer = 0; coolDownTimer = 5; turn = 1; enemyCount = 0; }
//private bool canMove; // Use this for initialization void Start() { maxEnemies = 4; meleeEnemyReference = meleeprefab.GetComponent <MeleeEnemy> (); rangedEnemyReference = rangedprefab.GetComponent <RangedEnemy> (); GameObject[] enemyObjs; //gray;// = GameObject.Find ("Grayout").GetComponent<SpriteRenderer>(); player = GameObject.Find("Player").GetComponent <PlayerCharacter>(); puzzle = GameObject.Find("PuzzleManager").GetComponent <PuzzleManager> (); enemyObjs = GameObject.FindGameObjectsWithTag("enemy"); enemies = new List <Enemy>(); for (int i = 0; i < enemyObjs.Length; i++) { enemies.Add(enemyObjs[i].GetComponent <Enemy>()); } //canMove = true; spawnTimer = 0; coolDownTimer = 5; turn = 1; enemyCount = 0; }
void OnTriggerEnter2D(Collider2D col) { if (col.gameObject.name == "SwordEnemy(Clone)") { // We collided with a sword enemy. SwordEnemy swordEnemy = col.gameObject.GetComponent <SwordEnemy>(); if (deadly) { // We are currently dashing, kill enemy. gm.KillSwordEnemy(swordEnemy); } else if (swordEnemy.deadly) { // The enemy is dashing and we are vulnerable, die. gm.KillPlayer(this); } } else if (col.gameObject.name == "RangedEnemy(Clone)") { // We collided with a ranged enemy. RangedEnemy rangedEnemy = col.gameObject.GetComponent <RangedEnemy>(); if (deadly) { // We are currently dashing, kill enemy. gm.KillRangedEnemy(rangedEnemy); } } else if (col.gameObject.name == "Arrow(Clone)") { // We collided with an arrow. if (deadly) { // We are currently dashing, destroy arrow. Destroy(col.gameObject); } else { // We are currently vulnerable, die. gm.KillPlayer(this); Destroy(col.gameObject); // Destroy arrow anyway, it is inside us after all. } } }
void Awake() { _rangedEnemy = transform.parent.GetComponent <RangedEnemy>(); }
public WatchState(RangedEnemy rangedEnemy) : base(rangedEnemy.gameObject) { _rangedEnemy = rangedEnemy; timeLeft = _rangedEnemy.turnInterval; delayLeft = delay; }
public AttackState(RangedEnemy rangedEnemy) : base(rangedEnemy.gameObject) { _rangedEnemy = rangedEnemy; }
public override void _Process(float delta) { healthRect.RectScale = new Vector2(GameData.playerHealth / 3.846f, 7f); manaRect.RectScale = new Vector2(GameData.playerMana / 3.846f, 7f); score.Text = "Score: " + GameData.score; if (Input.IsActionPressed("power1") && punchRay.IsColliding()) { var target = punchRay.GetCollider(); for (int i = 0; i < GameData.enemyTypes.Length; i++) { if (target.GetType().ToString() == GameData.enemyTypes[i]) { switch (GameData.enemyTypes[i]) { case "Enemy": //didn't really know how else to do this { Enemy enemy = target as Enemy; enemy.Hit(damage); break; } case "RangedEnemy": { RangedEnemy rangedEnemy = target as RangedEnemy; rangedEnemy.Hit(damage); break; } default: break; } } } } if (Input.IsActionJustPressed("power2") && GameData.playerMana >= 25) //Time dash { GameData.playerMana -= 25; } if (Input.IsActionJustPressed("power3") && GameData.playerMana >= 50) //Time Evasion (evade all attacks for a few seconds) { timeEvasion = true; } if (Input.IsActionJustPressed("power4") && GameData.playerMana >= 100) //Timestop { GameData.playerMana -= 100; GameData.timeStopped = true; } if (Input.IsActionJustPressed("ui_cancel")) { GameData.gamePaused = true; } if (GameData.playerHealth <= 0) { if (!dying) { dying = true; } if (dyingTimer >= 120 && dyingTimer <= 240) { darkening.Visible = true; darkening.Modulate = new Color(0f, 0f, 0f, (dyingTimer - 120f) / 120f); } if (dyingTimer >= 360) { GetTree().ChangeScene("res://Scenes/TitleScreen.tscn"); } } }
void Awake () { _rangedEnemy = transform.parent.GetComponent<RangedEnemy>(); }
public override void _PhysicsProcess(float delta) { Vector2 velocity = Vector2.Zero; if (CanMove()) { if (Input.IsActionPressed("move_left")) { velocity.x += moveSpeed; direction = 1; playerAnim.Play("Running"); playerAnim.FlipH = false; punchRay.CastTo = new Vector2(5f, 0f); } if (Input.IsActionPressed("move_right")) { velocity.x -= moveSpeed; direction = -1; playerAnim.Play("Running"); playerAnim.FlipH = true; punchRay.CastTo = new Vector2(-7f, 0f); } if (velocity.x == 0f) { playerAnim.Play("Idle"); } } if (IsOnFloor()) { if (CanMove()) { if (Input.IsActionPressed("power1")) { playerAnim.Play("Punching"); } if (Input.IsActionJustPressed("power3")) { velocity = Vector2.Zero; dashing = true; } if (Input.IsActionJustPressed("jump")) { yVel = jumpForce; } } if (dying) { playerAnim.Play("Dying"); dyingTimer++; } } if (!IsOnFloor()) { if (yVel <= 0) { playerAnim.Play("Jumping"); } if (yVel > 0) { playerAnim.Play("Falling"); } if (yVel < maxGravity) { yVel += gravity; } if (dying) { playerAnim.Play("FallingDying"); yVel = 15f; } } velocity.y = yVel; if (dashing) { dashTimer++; playerAnim.Stop(); if (dashTimer >= 80) { GlobalPosition += new Vector2(60f * direction, 0f); if (dashRay.IsColliding()) { var target = dashRay.GetCollider(); for (int i = 0; i < GameData.enemyTypes.Length; i++) { if (target.GetType().ToString() == GameData.enemyTypes[i]) { switch (GameData.enemyTypes[i]) { case "Enemy": //didn't really know how else to do this { Enemy enemy = target as Enemy; enemy.Hit(damage * 8); break; } case "RangedEnemy": { RangedEnemy rangedEnemy = target as RangedEnemy; rangedEnemy.Hit(damage * 8); break; } default: break; } } } } dashing = false; dashTimer = 0; } } MoveAndSlide(velocity, new Vector2(0, -1)); }
public PatrolState(RangedEnemy rangedEnemy, GameObject[] waypoints) : base(rangedEnemy.gameObject) { _rangedEnemy = rangedEnemy; _waypoints = waypoints; nextWaypoint = waypoints[0]; }
//tätä funktiota kutsutaan pelaajan hyökkäyksessä public void TakeDamage() { /* First Boss */ if (Boss1) { Boss1 boss = gameObject.GetComponent <Boss1>(); if (boss.vulnerable) { health--; SoundManager.PlaySound("BOSSOOF"); if (health == 0) { boss.Die(); } else { boss.TakeDamage(); } } else if (health <= 0) { Debug.Log("boss counter"); boss.Counter(); //kutsutaan pelaajan tappavaa funktioita } } /* Second Boss */ else if (Boss2) { health--; if (health <= 0) { gameObject.GetComponent <Boss2>().Die(); } } /*ranged ja melee */ else if (normal) { RangedEnemy enemy = gameObject.GetComponent <RangedEnemy>(); if (!enemy.dead) { SoundManager.PlaySound("DEEPOOF"); health--; if (health <= 0) { //kutsutaan vihollisen omaa die funktiota enemy.Die(); } } } else if (turret) { SoundManager.PlaySound("EXPLODE"); health--; if (health <= 0) { //tuhotaan turret animaattorin avustuksella gameObject.GetComponent <TurretScript>().Dead(); } } else if (charging) { if (gameObject.GetComponent <ChargingEnemy>().killable) { health--; if (health <= 0) { gameObject.GetComponent <ChargingEnemy>().Die(); } } } }
public ChaseState(RangedEnemy rangedEnemy) : base(rangedEnemy.gameObject) { _rangedEnemy = rangedEnemy; }