研究系統(ResearchBuildingPage.php)無建造佇列,邏輯相對簡單,但有特殊處理。
處理進行中的科技研究,關鍵欄位:
b_tech_planet:研究星球 IDb_tech:完成時間戳b_tech_id:科技欄位名邏輯:檢查是否到期 → 更新科技等級 → 清除佇列欄位 → 檢查下一項(無佇列機制,單一研究)。
CheckLabSettingsInQueue() 檢查建築佇列中是否有研究所升級<?php
// 迴圈邏輯偽代碼
foreach ($techs as $tech) {
// 1. 判斷是否為科技類型
// 2. 檢查前置條件(vars.php 定義)
// 3. 取得資源需求(金屬/晶體/重氫)
// 4. 計算研究時間
// 5. 判斷可否研究
// 6. 分支:無研究中 → 顯示下一等級按鈕
// 有研究中 → 顯示倒數計時
}
b_tech、b_tech_id、b_tech_planet| 特性 | 建築 | 研究 |
|---|---|---|
| 佇列機制 | 有(b_building_id) | 無(單一 b_tech_id) |
| 前置條件 | 建築等級、資源、空間 | 科技樹依賴(vars.php) |
| 取消機制 | 可從佇列移除 | 直接取消歸還資源 |
| 多星球同步 | 獨立 | 全帳號共享科技等級 |
<?php
$tech[101] = array(
'name' => '間諜科技',
'desc' => '提升間諜效率',
'pre' => '', // 前置科技
'maxlevel' => 20,
'basecost' => array('metal'=>200, 'crystal'=>100, 'deuterium'=>0),
'factor' => 2, // 成本增長係數
'basetime' => 60, // 基礎時間(秒)
'timefactor'=> 2,
);