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; } }
public void ReloadEgg() { mPlayerDragonState = PLAYER_DRAGON_STATE.RELOAD_MOVE_TO_SHOOTER; }
public void SwapEgg() { mPlayerDragonState = PLAYER_DRAGON_STATE.SWAP_MOVE_TO_SHOOTER; }
// 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; } }