Пример #1
0
    // 스테이지 클리어 체크
    void updateStageClear()
    {
        if (m_nMaxStage < m_nNowStage)
        {
            return;
        }
        GameObject kGameObject;
        Character kMonster;
        bool bAllMonsterDie = true;

        foreach (KeyValuePair<int, GameObject> kvp in m_tmCharacter)
        {
            kGameObject = kvp.Value;
            kMonster = (Character)kGameObject.GetComponent("Character");
            if (!kMonster.IsDie())
                bAllMonsterDie = false;

            // 최초 죽음 처리
            if (kMonster.IsDie() && !kMonster.IsRemoveState())
            {
                // 보상 처리
                m_kPlayer.AddExp(kMonster.GetMonsterExp());
                m_kPlayer.AddMoney(kMonster.GetMonsterPay());

                writeCharData(CCharData.EType.eExp, m_kPlayer.GetExp());
                writeCharData(CCharData.EType.eMoney, m_kPlayer.GetMoney());

                kMonster.RemoveState();

                m_kPlayer.ClearMeetEnemy();
                m_kPlayer.ClearTarCharIndex();
            }
        }

        // 보스전일때 예외 처리
        if (bAllMonsterDie && EStageDetail.Boss == m_eNowStateDetail)
        {
            StStateInfo kStageInfo;
            if (kStageDB.m_tmStage.TryGetValue(m_nNowStage, out kStageInfo))
            {
                if (0 == kStageInfo.m_anCharCode[(int)m_eNowStateDetail] &&
                        ((Time.fixedTime - m_fBossStageStartTime) < kStageInfo.m_fTermTime)
                    )
                {
                    bAllMonsterDie = false;
                }
            }
        }

        if (bAllMonsterDie)
        {
            // 스테이지 클리어
            if (EStageDetail.Boss == m_eNowStateDetail)
            {
                m_nNowStage++;
                m_eNowStateDetail = EStageDetail.First;
            }
            else
                m_eNowStateDetail++;

            if (m_nNowStage <= m_nMaxStage)
                setStage(m_nNowStage);
            else
            {
                // 게임 클리어
            }
        }
    }
Пример #2
0
    void initilize()
    {
        m_eNowStateDetail = EStageDetail.First;
        m_nNowStage = 1;
        nNowCharIndex = nPlayerCharIndex + 1;
        setStage(m_nNowStage);

        m_kPlayer.Initilize();
        m_kPlayer.SetPosition(m_vPlayerStartPos);

        kReStartButton.SetActive(false);
    }