Ejemplo n.º 1
0
    public void SetState(STATE st)
    {
        mState = st;
        switch (mState)
        {
        case STATE.INIT:
            mShooter.GetComponent <Shooter>().enabled = true;
            enabled                   = true;
            forceSpawnLine            = false;
            totalScore                = 0;
            eggDownAnimTime           = 0;
            currentCombo              = 0;
            mCurrentLevel             = INITIALIZE_LEVEL;
            mTimeToDrop               = DEFAULT_DROP_TIME;
            mPlayerDragonState        = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_SHOOTER;
            mPlayerDragonPosUp        = mPlayerDragonPositions.transform.GetChild(0).gameObject;
            mPlayerDragonPosDown      = mPlayerDragonPositions.transform.GetChild(1).gameObject;
            mPlayerDragonPosShooter   = mPlayerDragonPositions.transform.GetChild(2).gameObject;
            mPlayerDragonPosWarehouse = mPlayerDragonPositions.transform.GetChild(3).gameObject;
            mPlayerDragonTarget       = mPlayerDragonPosShooter;
            currentHazardCount        = 0;
            mActiveHazard             = 0;
            frozenHazardObject.SetActive(false);
            firewallHazardObject.SetActive(false);
            SetHazardState(HAZARD_STATUS.NONE);
            mFirewallHazardLine   = firewallHazardObject.transform.GetChild(2).gameObject;
            mFirewallLineLeftPos  = firewallHazardLinePos.transform.GetChild(0).gameObject;
            mFirewallLineRightPos = firewallHazardLinePos.transform.GetChild(1).gameObject;
            break;

        case STATE.PLAYGAME:
            mTimer.SetDuration(mTimeToDrop);
            mLevelTimer.SetDuration(INSCREASE_LEVEL_TIME);
            AudioManager.Instance().PlayMusicGamePlayBackground();
            break;

        case STATE.GAMEOVER:
            enabled = false;
            mShooter.GetComponent <Shooter>().enabled = false;
            SaveHighScore();
            mGameOverPopup.SetActive(true);
            mGameOverPopup.GetComponent <GameOverPopup>().Setup(totalScore, LoadHighScore());
            AudioManager.Instance().PlayMusicGameOverBackground();
            break;

        default:
            break;
        }
    }
Ejemplo n.º 2
0
 public void ReloadEgg()
 {
     mPlayerDragonState = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_SHOOTER;
 }
Ejemplo n.º 3
0
 public void SwapEgg()
 {
     mPlayerDragonState = PLAYER_DRAGON_STATE.SWAP_MOVE_TO_SHOOTER;
 }
Ejemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        mTimer.Update(Time.deltaTime);
        mLevelTimer.Update(Time.deltaTime);
        if (animateEggDown)
        {
            eggDownAnimTime += Time.deltaTime;
            UpdateEggGridDownAnim();
        }
        switch (mState)
        {
        case STATE.INIT:
            break;

        case STATE.PLAYGAME:
            UpdateHazardStatus();
            if (mTimer.isDone() || forceSpawnLine)
            {
                SpawnLine();
                mTimer.SetDuration(mTimeToDrop);
                forceSpawnLine = false;
#if UNITY_EDITOR
                //if(Debug.isDebugBuild)
                //    PrintGird();
#endif
            }
            if (currentCombo >= FLASH_EGG_COMBO_REQUIRED)
            {
                uiAnimationObject.GetComponent <UIAnimationHandler>().ShowComboTextTimed(currentCombo, null, null);
                currentCombo = 0;
                mShooter.GetComponent <Shooter>().eggWarehouseObj.Request("prepairflash");
                mPlayerDragonState = PLAYER_DRAGON_STATE.SPECIAL_FLASH;
            }
            if (mLevelTimer.isDone())
            {
                if (mCurrentLevel < MAX_LEVEL)
                {
                    mCurrentLevel++;
                    if (mTimeToDrop > 3)
                    {
                        mTimeToDrop--;
                    }
                    else
                    {
                        mTimeToDrop *= 0.75f;
                    }
                    mLevelText.GetComponent <Text>().text = "Level: " + mCurrentLevel.ToString();
                    mLevelTimer.SetDuration(INSCREASE_LEVEL_TIME);
                }
            }
            //update dragon move
            switch (mPlayerDragonState)
            {
            case PLAYER_DRAGON_STATE.WAITING_MOVE_UP:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_FLY_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosUp;
                if (mPlayerDragon.transform.position == mPlayerDragonPosUp.transform.position)
                {
                    mPlayerDragonState = PLAYER_DRAGON_STATE.WAITING_MOVE_DOWN;
                }
                break;

            case PLAYER_DRAGON_STATE.WAITING_MOVE_DOWN:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_FLY_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosDown;
                if (mPlayerDragon.transform.position == mPlayerDragonPosDown.transform.position)
                {
                    mPlayerDragonState = PLAYER_DRAGON_STATE.WAITING_MOVE_UP;
                }
                break;

            case PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_SHOOTER:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_RELOAD_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosShooter;
                if (mPlayerDragon.transform.position == mPlayerDragonPosShooter.transform.position)
                {
                    if (mShooter.activeSelf)
                    {
                        mShooter.GetComponent <Shooter>().eggWarehouseObj.Request("reload");
                        mShooter.GetComponent <Shooter>().eggWarehouseObj.gameObject.SetActive(false);
                        mPlayerDragonState = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_WAREHOUSE;
                    }
                    else
                    {
                        mShooter.SetActive(true);
                    }
                }
                break;

            case PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_WAREHOUSE:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_RELOAD_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosWarehouse;
                mShooter.GetComponent <Shooter>().eggWarehouseObj.gameObject.SetActive(false);
                if (mPlayerDragon.transform.position == mPlayerDragonPosWarehouse.transform.position)
                {
                    mPlayerDragonState = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_DOWN;
                    mShooter.GetComponent <Shooter>().eggWarehouseObj.gameObject.SetActive(true);
                }
                break;

            case PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_DOWN:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_RELOAD_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosDown;
                if (mPlayerDragon.transform.position == mPlayerDragonPosDown.transform.position)
                {
                    mPlayerDragonState = PLAYER_DRAGON_STATE.WAITING_MOVE_UP;
                }
                break;

            case PLAYER_DRAGON_STATE.SWAP_MOVE_TO_SHOOTER:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_SWAP_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosShooter;
                if (mPlayerDragon.transform.position == mPlayerDragonPosShooter.transform.position)
                {
                    mShooter.GetComponent <Shooter>().eggWarehouseObj.Request("swap");
                    mPlayerDragonState = PLAYER_DRAGON_STATE.SWAP_MOVE_TO_DOWN;
                }
                break;

            case PLAYER_DRAGON_STATE.SWAP_MOVE_TO_DOWN:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_SWAP_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosDown;
                if (mPlayerDragon.transform.position == mPlayerDragonPosDown.transform.position)
                {
                    mPlayerDragonState = PLAYER_DRAGON_STATE.WAITING_MOVE_UP;
                }
                break;

            case PLAYER_DRAGON_STATE.SPECIAL_FLASH:
                mPlayerDragonMoveSpeed = M_PLAYER_DRAGON_RELOAD_SPEED;
                mPlayerDragonTarget    = mPlayerDragonPosShooter;
                if (mPlayerDragon.transform.position == mPlayerDragonPosShooter.transform.position)
                {
                    if (mShooter.activeSelf)
                    {
                        mShooter.GetComponent <Shooter>().eggWarehouseObj.Request("specialflash");
                        mShooter.GetComponent <Shooter>().eggWarehouseObj.gameObject.SetActive(false);
                        mPlayerDragonState = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_WAREHOUSE;
                    }
                    else
                    {
                        mShooter.SetActive(true);
                    }
                }
                break;
            }
            float step = mPlayerDragonMoveSpeed * Time.deltaTime;
            if (!IsHazardState(HAZARD_STATUS.FROZEN))
            {
                mPlayerDragon.transform.position = Vector3.MoveTowards(mPlayerDragon.transform.position, mPlayerDragonTarget.transform.position, step);
                mShooter.GetComponent <Shooter>().eggWarehouseObj.transform.position = new Vector3(mPlayerDragon.transform.position.x - 0.2f, mPlayerDragon.transform.position.y - 0.9f, 0);
            }
            //end dragon move

            break;

        default:
            break;
        }
    }