UpgradeCostTable now uses a struct that includes research time