void CheckDeath() { if (health <= 0) { moveState = BossMoveState.DEAD; actionState = BossActionState.DEAD; sound.PlaySound(SOUND.DEATH); } }
void Death() { menuManager.instance.RemoveBossHealthUI(); if (target.GetComponent <player>()) { target.GetComponent <player>().bossKills++; } ResetSelf(); trackConstructor.instance.SetBuffer(true); this.gameObject.SetActive(false); health = maxHealth; moveState = BossMoveState.NULL; actionState = BossActionState.NULL; audioManager.instance.CrossFade(MUSIC.BOSS_DEATH); spawned = false; }
public override void OnSignalRecieved(eObject source, string[] signal) { base.OnSignalRecieved(source, signal); switch (signal[0]) { case "Activate": m_state = BossActionState.Idle; break; case "toCasting": m_state = BossActionState.Casting; StopChargeEffect(); break; case "toIdle": m_state = BossActionState.Idle; StopChargeEffect(); break; case "toSlowedChanneling": m_state = BossActionState.SlowedChanneling; PlayChargeEffect(); break; case "toChanneling": m_state = BossActionState.Channeling; PlayChargeEffect(); break; //Heather's Collection case "baseAtk": TriggerEvent(this, "toSlowedChanneling"); Instantiate(m_objBookshelf, transform.position, Quaternion.identity); TriggerEvent(this, "toCasting", m_baseAttackChannelTime); TriggerEvent(this, "toIdle", m_baseAttackChannelTime + m_baseAttackCastTime); break; case "playerExitPlatform": if (int.Parse(signal[1]) == m_playerPlatform) { //m_playerPlatform = 0; //Cancel all actions. StopAllCoroutines(); m_state = BossActionState.WaitForNewPlatform; } break; case "playerEnterPlatform": if (m_state == BossActionState.WaitForNewPlatform && m_playerPlatform != int.Parse(signal[1])) { //transform.position = source.transform.position; //m_state = BossActionState.Idle; m_jumpingTargetPos = source.transform.position; m_jumpingTargetPos.y = m_groundHeight; m_jumpingTimer = m_jumpingTime; m_jumpingStartPos = transform.position; TriggerEvent(this, "toChanneling", 0.0f); TriggerEvent(this, "toCasting", 1.5f); TriggerEvent(this, "jumpFinish", 1.5f + m_jumpingTime); } else if (m_playerPlatform == int.Parse(signal[1])) { TriggerEvent(this, "toIdle"); } //TEST ONLY TEST ONLY TEST ONLY if (m_state == BossActionState.NotStart) { TriggerEvent(this, "Activate"); } //TEST ONLY TEST ONLY TEST ONLY m_playerPlatform = int.Parse(signal[1]); break; case "jumpFinish": TriggerEvent(this, "toIdle"); m_jumpingTimer = -1.0f; transform.position = m_jumpingTargetPos; break; } }
public void SetActionState(BossActionState set) { actionState = set; }