十五、研究頁面(ResearchBuildingPage.php)
研究因為沒有隊列,所以相對簡單一些;但是也有一些比較特殊的東西。我們先看研究之前的一個處理函數HandleTechnologieBuild()。
這個函數是處理現在的科技研究的,其中b_tech_planet字段是研究的星球ID,b_tech字段是完成研究的時間點,b_tech_id字段是研究的具體科技字段名。函數邏輯不難,我就不仔細講解了,大家自己看看,下面正式進入研究頁面:
首先要檢查當前星球是否有研究所。
然後檢查當前星球的建築隊列中是否有研究所,使用函數CheckLabSettingsInQueue()檢查;此函數略過。
接下來又是前面的結構,我們先看下面的構造代碼,循環:
1.判斷是否是科技研究
2.判斷是否可以進行這項研究,主要是vars.php文件中的前置條件檢查
3.取得研究的需要資源
4.取得研究的需要時間
5.然後判斷這樣研究是否可以進行
6.下面是個分支:如果沒有研究在進行,那麼構造出下一等級的html;如果有研究在進行,就構造出研究剩余的時間
7.最後輸出頁面
現在回到前面,講解玩家點擊研究的邏輯。分成兩段邏輯,一是研究、二是取消研究。
1.研究:先進行一些安全檢查,然後取得所需資源和時間,構造扣除資源等語句
2.取消研究:取得所需資源,構造退回資源等語句
3.最後提交到數據庫,更新資源和其他一些信息
研究頁面的邏輯比起前面建築頁面簡單多了,下一章將是造船廠頁面。