コード例 #1
0
 void CheckDeath()
 {
     if (health <= 0)
     {
         moveState   = BossMoveState.DEAD;
         actionState = BossActionState.DEAD;
         sound.PlaySound(SOUND.DEATH);
     }
 }
コード例 #2
0
    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;
    }
コード例 #3
0
    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;
        }
    }
コード例 #4
0
 public void SetActionState(BossActionState set)
 {
     actionState = set;
 }