Esempio n. 1
0
    /// <summary>
    /// 보스 체력이 회복되는 루틴입니다.
    /// </summary>
    /// <param name="boss">플레이어 객체입니다.</param>
    /// <param name="item">사용한 아이템입니다.</param>
    /// <returns>Update()를 다시 호출하기 위해 함수를 종료할 때마다 null을 반환합니다.</returns>
    IEnumerator BossHealRoutine(EnemyBossScript boss)
    {
        // 사용할 변수를 선언합니다.
        float       time        = 0f;
        float       unitTime    = 0.02f;
        AudioSource audioSource = AudioSources[1];

        // 체력을 회복하는 루프입니다.
        while (boss.IsHealthFull() == false)
        {
            // 루프 진입시마다 시작 시간을 초기화합니다.
            time = 0f;

            // 체력을 회복하면서 체력 회복 효과음을 재생합니다.
            audioSource.Play();
            audioSource.time = 0;
            boss.Heal();

            // 일정한 간격으로 체력을 회복합니다.
            while (time < unitTime)
            {
                time += Time.unscaledDeltaTime;
                yield return(null);
            }
        }

        // 코루틴을 종료합니다.
        yield break;
    }
    /// <summary>
    /// 프레임이 갱신될 때 MonoBehaviour 개체 정보를 업데이트 합니다.
    /// </summary>
    void Update()
    {
        EnemyBossScript boss = _database._bossBattleManager._boss;

        if (boss != null)
        {
            // 체력을 업데이트 합니다.
            Vector3 healthScale = _healthBar.transform.localScale;
            healthScale.y = (float)boss.Health / boss.MaxHealth;
            _healthBar.transform.localScale = healthScale;
        }
    }
Esempio n. 3
0
    // Use this for initialization
    void Start()
    {
        //Instantiate(playerObject);

        if (instance == null)
        {
            instance = this;
        }

        //calling other scripts
        cameraScript     = cameraObject.GetComponent <CameraScript>();
        enemyScript      = enemyFollower.GetComponent <EnemyFollowerScript>();
        playerScript     = playerObject.GetComponent <PlayerScript>();
        enemyBossScript  = enemyBoss.GetComponent <EnemyBossScript>();
        enemyChaseScript = enemyChase.GetComponent <EnemyChasingScript>();

        cameraScript.player = playerObject;

        //setting ui text
        scoreTxtTMP.enabled = true;
        waveTxtTMP.enabled  = true;
        timeTxtTMP.enabled  = true;

        //setting timescale
        Time.timeScale = 1;

        //BOSS STAGE CONDITION
        //curWave = 5;
        //timeleft = 0;

        //start game
        if (timeleft <= 180.0f || curWave <= 0)
        {
            StartCoroutine("SpawnEnemy");
        }

        //enemyFollower.transform.position = spawnPositions[1].transform.position;
        //Instantiate(enemyFollower);

        //enemyFollower.transform.position = spawnPositions[3].transform.position;
        //Instantiate(enemyFollower);
    }
Esempio n. 4
0
 /// <summary>
 /// 보스의 체력을 회복합니다.
 /// </summary>
 public void HealBoss(EnemyBossScript boss)
 {
     StartCoroutine(BossHealRoutine(boss));
 }