void CPageDocuments::DisplayResearch(int index) { assert(index >= 0 && index < RESEARCH_MAX); CString info; m_list.DeleteAllItems(); DeleteAllColumns(); m_list.InsertColumn(0 , "等级" , LVCFMT_LEFT , 40); m_list.InsertColumn(1 , "升级金属" , LVCFMT_LEFT , 130); m_list.InsertColumn(2 , "升级晶体" , LVCFMT_LEFT , 130); m_list.InsertColumn(3 , "升级重氢" , LVCFMT_LEFT , 130); m_list.InsertColumn(4 , "升级时间" , LVCFMT_LEFT , 130); for(int i = 0 ; i < MAX_LEVEL ; ++i) { info.Format("%d" , i); m_list.InsertItem(i , info); //metal info.Format("%.0f" , get_research_upgrade_resource(RESEARCH_RESOURCE_NEED_BASE[index][0] , i) ); m_list.SetItemText(i , 1 , info); //crystal info.Format("%.0f" , get_research_upgrade_resource(RESEARCH_RESOURCE_NEED_BASE[index][1] , i) ); m_list.SetItemText(i , 2 , info); //diplogen info.Format("%.0f" , get_research_upgrade_resource(RESEARCH_RESOURCE_NEED_BASE[index][2] , i)); m_list.SetItemText(i , 3 , info); //time double t = get_research_upgrade_seconds( GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_LAB), //LabFactory level GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_NANITE), //nanitefactory level get_research_upgrade_resource(RESEARCH_RESOURCE_NEED_BASE[index][0] , i) , get_research_upgrade_resource(RESEARCH_RESOURCE_NEED_BASE[index][1] , i) , 1.0); ElapsedTimer timer; timer.Init(t); m_list.SetItemText(i , 4 , timer.ToCString()); } m_list.SetItemBkColor(Researchs_Entry(index)->GetLevel() , -1 , RGB(0 , 255 , 0)); }
void CPageDocuments::DisplayFactory(int index) { assert(index >= 0 && index < FACTORY_BUILDINGS_MAX); CString info; m_list.DeleteAllItems(); DeleteAllColumns(); m_list.InsertColumn(0 , "等级" , LVCFMT_LEFT , 40); m_list.InsertColumn(1 , "升级金属" , LVCFMT_LEFT , 90); m_list.InsertColumn(2 , "升级晶体" , LVCFMT_LEFT , 90); m_list.InsertColumn(3 , "升级重氢" , LVCFMT_LEFT , 90); m_list.InsertColumn(4 , "产生能量" , LVCFMT_LEFT , 90); m_list.InsertColumn(5 , "升级时间" , LVCFMT_LEFT , 100); m_list.InsertColumn(6 , "生产金属" , LVCFMT_LEFT , 90); m_list.InsertColumn(7 , "生产晶体" , LVCFMT_LEFT , 90); m_list.InsertColumn(8 , "生产重氢" , LVCFMT_LEFT , 90); for(int i = 0 ; i < MAX_LEVEL ; ++i) { info.Format("%d" , i); m_list.InsertItem(i , info); double m = 0.0; double c = 0.0; double d = 0.0; if(index > FACTORY_BUILDING_PRODUCE_MAX) { m = get_other_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_METAL] , i); c = get_other_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_CRYSTAL] , i); d = get_other_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_DIPLOGEN] , i); } else { m = get_produce_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_METAL] , i); c = get_produce_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_CRYSTAL] , i); d = get_produce_factory_upgrade_resource(FACTORY_DATA[index][FACTORY_TBL_N_DIPLOGEN] , i); } //metal info.Format("%.0f" , m); m_list.SetItemText(i , 1 , info); //crystal info.Format("%.0f" , c); m_list.SetItemText(i , 2 , info); //diplogen info.Format("%.0f" , d); m_list.SetItemText(i , 3 , info); //sun power factory int p = get_produce_factory_consume_power(FACTORY_DATA[index][FACTORY_TBL_POWER] , i , 1.0); info.Format("%d" , p ); if(index != FACTORY_BUILDING_SUNPOWER && p != 0) { info.Format("-%d" , p ); } m_list.SetItemText(i , 4 , info); //time double t = get_factory_upgrade_seconds(GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_ROBOT) , GetDataPtr()->GetBuildingLevel(FACTORY_BUILDING_NANITE) , m , c , 1.0); ElapsedTimer timer; timer.Init(t); m_list.SetItemText(i , 5 , timer.ToCString()); //produce metal ulong a = 0; if(index == FACTORY_BUILDING_MINAL) a = 20; m = get_produce_factory_produce_resource_per_minute(a , FACTORY_DATA[index][FACTORY_TBL_P_METAL] , i , 1.0 , 1.0) * pow(2 , GetDataPtr()->GET_STAR_DOUBLE_RES_HERO()); info.Format("%.0f" , m * 60); m_list.SetItemText(i , 6 , info); //produce crystal a = 0; if(index == FACTORY_BUILDING_CRYSTAL) a = 10; c = get_produce_factory_produce_resource_per_minute(a , FACTORY_DATA[index][FACTORY_TBL_P_CRYSTAL] , i , 1.0 , 1.0) * pow(2 , GetDataPtr()->GET_STAR_DOUBLE_RES_HERO()); info.Format("%.0f" , c * 60); m_list.SetItemText(i , 7 , info); //produce diplogen d = (-0.002 * GetDataPtr()->STAR_TEMP() + 1.28 ) * get_produce_factory_produce_resource_per_minute(0 , FACTORY_DATA[index][FACTORY_TBL_P_DIPLOGEN] , i , 1.0 , 1.0) * pow(2 , GetDataPtr()->GET_STAR_DOUBLE_RES_HERO()); info.Format("%.0f" , d * 60); m_list.SetItemText(i , 8 , info); } m_list.SetItemBkColor(Buildings_Entry(index)->GetLevel() , -1 , RGB(0 , 255 , 0)); }