Пример #1
0
    // 任務事件處理者
    void MissionExecutor(Mission mission)
    {
        switch (mission)
        {
        case Mission.Harvest:                                       // 達成XX收穫
        {
            if ((battleManager.score - lastScore) >= _missionScore) // success
            {
                _missionMode = MissionMode.Completing;
                Global.isMissionCompleted = true;
            }
            else if (gameTime - lastGameTime > missionTime)                                    // failed
            {
                _missionMode = MissionMode.Completed;
                battleHUD.MissionFailedMsg(mission, 0);
            }
            break;
        }

        case Mission.Reduce:            // 完成後 activeScore要減少Reduce的量
        {
            double endTime = gameTime - lastGameTime - missionTime;
            if (endTime > -5 && endTime < 0)         // 減少糧食 這比較特殊 需要顯示閃爍血調 還沒寫
            {
                battleHUD.HPBar_Shing();
            }
            else if (gameTime - lastGameTime > missionTime)
            {
                _missionMode = MissionMode.Completing;
                Global.isMissionCompleted = true;
            }
            break;
        }

        case Mission.DrivingMice:
        {
            if (gameTime - lastGameTime > missionTime)               //missionScore 這裡是 Combo任務目標
            {
                if (battleManager.combo < _missionScore)
                {
                    _missionMode = MissionMode.Completed;
                    battleHUD.MissionFailedMsg(mission, 0);
                }
                else
                {
                    _missionMode = MissionMode.Completing;
                    Global.isMissionCompleted = true;
                }
            }
            break;
        }

        case Mission.HarvestRate:
        {
            if (gameTime - lastGameTime > missionTime)
            {
                _missionMode = MissionMode.Completing;
                Global.isMissionCompleted = true;
            }
            break;
        }

        case Mission.Exchange:
        {
            if (gameTime - lastGameTime > missionTime)
            {
                _missionMode = MissionMode.Completing;
                Global.isMissionCompleted = true;
            }
            break;
        }

        case Mission.WorldBoss:     // 要計算網路延遲... **********還沒寫*************
            // 在 BossPorperty在邏輯判斷
            break;
        }
    }