Example #1
0
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));
}
Example #2
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));
}