6 new categories and 72 new items added to the shop!Fake forum EC for posting doubled everywhere to help pay for them!
0 Members and 2 Guests are viewing this topic.
Cornering the global energy market is extremely difficult. By the point I can afford it, I can either elect myself supreme leader or conquer the world in less than twenty turns anyway. Has anyone managed a consistent strategy for economic victory?
Does a higher probe rating make cornering the market cheaper? Does the Nethack Terminus make it cheaper?
Have the distinct feeling that cornering the global energy market requires a player to 'buy out' his own bases and units. The cost seems to increase in direct proportion to my empire. Sisyphus would be proud. Do any of our .exe modders know whether this is the case?
char Console::corner_the_market(){ int v0; // eax@1 size_t v1; // edi@3 int v2; // ebx@3 int v3; // esi@4 signed int v4; // ebx@11 int v5; // eax@11 int v6; // esi@11 int v7; // eax@12 int v8; // eax@17 int v10; // [sp+10h] [bp-8h]@6 int v11; // [sp+14h] [bp-4h]@6 LOBYTE(v0) = g_GAME_RULES2; if ( g_GAME_RULES2 & 4 ) { v0 = has_tech(alphax_tech_preq_economic_victory, g_CURRENT_PC_FACT_ID); if ( v0 ) { v1 = g_CURRENT_PC_FACT_ID; v2 = 0; if ( g_TOTAL_NUM_BASES <= 0 ) goto LABEL_10; v3 = 0; while ( 1 ) { if ( LOBYTE(g_BASES[v3 + 2]) == v1 ) { bitmask(FAC_HEADQUARTERS, &v11, &v10); if ( (unsigned __int8)v10 & *((_BYTE *)&g_BASES[v3 + 70] + v11) ) break; } ++v2; v3 += 154; if ( v2 >= g_TOTAL_NUM_BASES ) goto LABEL_10; } if ( v2 >= 0 ) { v4 = corner_market(v1); parse_num(0, v4); v5 = game_year(g_CURRENT_TURN_NUM + alphax_turns_corner_global_energy_market); parse_num(1, v5); v6 = 2099 * v1; if ( dword_96EA5C[2099 * v1] <= g_CURRENT_TURN_NUM ) { if ( *(int *)((char *)&fac_struct_energy_credits + v6 * 4) >= v4 ) { v0 = popp((char *)SCRIPT_TXT_ID, "CORNERMARKET", 0, "econwin_sm.pcx", 0); if ( v0 ) { v0 = diplo_lock(50); if ( !v0 ) { dword_96EA5C[v6] = g_CURRENT_TURN_NUM + alphax_turns_corner_global_energy_market; dword_96EA60[v6] = v4; *(int *)((char *)&fac_struct_energy_credits + v6 * 4) -= v4; synch_leader(v1); message_data(9295, 0, v1, dword_96EA5C[v6], v4, 0); diplo_unlock(); Console::update_data(0); v8 = game_year(dword_96EA5C[v6]); parse_num(0, v8); parse_num(1, dword_96EA60[v6]); LOBYTE(v0) = popp((char *)SCRIPT_TXT_ID, "CORNERING", 0, "econwin_sm.pcx", 0); } } } else { parse_num(1, *(int *)((char *)&fac_struct_energy_credits + v6 * 4)); LOBYTE(v0) = NetMsg::pop((int)"CORNERNOTYET", 0x1388u, 0, 0); } } else { v7 = game_year(dword_96EA5C[2099 * v1]); parse_num(0, v7); LOBYTE(v0) = NetMsg::pop((int)"CORNERALREADY", 0x1388u, 0, 0); } } else {LABEL_10: LOBYTE(v0) = NetMsg::pop((int)"CORNERNOHQ", 0x1388u, 0, 0); } } } return v0;}signed int __cdecl corner_market(int a1){ signed int v1; // ebx@1 int v2; // esi@1 int v3; // eax@3 int v4; // eax@4 signed int result; // eax@9 __int16 *v6; // [sp+8h] [bp-4h]@2 v1 = 0; v2 = 0; if ( g_TOTAL_NUM_BASES <= 0 ) goto LABEL_13; v6 = &g_BASES[2]; do { v3 = *(_BYTE *)v6; if ( v3 != a1 ) { v4 = fac_struct_diplo_status[a1 + v3 + 2098 * v3]; if ( !(v4 & DIPLO_PACT) || !(v4 & DIPLO_HAVE_SURRENDERED) ) v1 += mind_control(v2, a1, 1); } ++v2; v6 += 154; } while ( v2 < g_TOTAL_NUM_BASES ); if ( v1 >= 1000 ) result = v1; elseLABEL_13: result = 1000; return result;}