//更新目前場上有幾隻敵人 //還有對應WaveRemainTime //用來顯示玩家壓力 void UpdatePlayerPower() { /* * //更先顯示狀態 * //目前敵人數量 * int totlaEnemyNumber = 0; * * //目前場上所有敵人 * foreach (SingleWave wave in _listWave) * { * totlaEnemyNumber = totlaEnemyNumber + wave.GetListEnemy().Count; * } * //所有(要打敗的)數量 * int totalProductEnemy = _listWave[_nowWaveIndex]._nowCleanAllEnemyStageDifficulty._defeatEnemyNumber; * * //隊單位進行換算 * float power = 1 - (1-hp / maxHp) * (1 / 3) - (totlaEnemyNumber / totalProductEnemy) * (2 / 3); */ SingleWeakPointParameter parameter = (SingleWeakPointParameter)_player.GetComponent <SteamVR_CharacterController>()._character.GetComponent <SingleWeakPoint>()._nowdifficulty; float maxHp = parameter.HP; float hp = _player.GetComponent <SteamVR_CharacterController>()._character.GetComponent <SingleWeakPoint>()._nowHP; //顯示目前HP _player.GetComponent <SteamVR_ControllerManager>().head.GetComponent <SteamVRCharacterHeadController>()._characterInfoGUI.SetMaxTeamProgress(hp / maxHp); }
//如果Enemy被打敗 public void SetEnemyDeath(SingleWeakPointParameter difficulty) { if (_enemyDefeated != null) { _enemyDefeated(difficulty); } }
//如果敵人被打敗 //可以取得一些參數 void EnemyCreatorEnemyDefeated(SingleWeakPointParameter difficulty) { //通知整理陣列 ResreshEnemyList(); //目前敵人打敗數量+1; _defeatedEnemyNumber++; //然後通知打敗敵人 _enemyDefeated(difficulty); }
//如果打到敵人 void DefeatedEnemy(SingleWeakPointParameter difficulty) { //剩餘目標-1 _remainNumber--; //如果所有敵人都被打完,通知階段完成 //往上升一個難度 if (_remainNumber == 0) { UpgradeStageDifficulty(); } //通知任務完成 ConditionFinish(); }
//如果打到敵人 //目標較少一個 void DefeatedEnemy(SingleWeakPointParameter difficulty) { //剩餘目標-1 _remainNumber--; //如果所有敵人都被打完,通知階段完成 if (_remainNumber <= 0) { if (_finish == false) { _finish = true; //通知任務完成 ConditionFinish(); } } //打敗的分數 _totlaScore = _totlaScore + difficulty.DefeatScore; //顯示敵人數量 UpdateWaveDefeatEnemyNumber(_remainNumber, _nowCleanAllEnemyStageDifficulty._defeatEnemyNumber); NotifyDefeatEnemy(); }
//如果玩家被攻擊 void PlayerHit(SingleWeakPointParameter parameter) { //更新顯示資訊 UpdatePlayerPower(); }
//如果玩家死掉 void PlayerDefeat(SingleWeakPointParameter parameter) { OnWaveFail(); //更新顯示資訊 UpdatePlayerPower(); }