quote:
ORIGINAL: DaleKent
So we could potentially make WWI scenarios and hypothetical West vs East in Europe scenarios? AWESOME! :D
No. The 11 scenarios can not be changed or added to.
Setting up a WIF scenario is extremely complex. After all, there is a separate rule booklet just for that purpose. While you might think that is just some spreadsheets and advice, it is the extra paragraphs for each scenario that add tons of complexity. Here are some code fragments to give you some insight the deatils. The first is a 'control' section that executes 16 other routines. The second is part of the 5th routine.
Notice that there is a lot more code than what is shown here simply to establish the starting relationships and units. For example, AddAligned sets the aligned country (and any countries it controls) to be at war with any of the countries that the aligning country is. Then there are the data files that establish which hexes within a country are controlled by different major powers (e.g., China). Only after all this has been put into place can the 6000 lines of code that translate the spreadsheet into meaningful instructions be executed.
===
SetInitiative; // 1 Who has the initiative.
SetIntelligence; // 2 Set intelligence points from scenario data.
SetForts; // 3 Forts that have been destroyed.
LoadStatusForm.SetLoadStatusLabel('Setting Political Relationships', 97, 20);
SetTradeAgreements; // 4 Trade agreements.
SetRelationships; // 5 Who is at war, aligned, conquered.
LoadStatusForm.SetLoadStatusLabel('Setting Political Relationships', 98, 40);
SetLegalCountries; // 6 Set which countries are in the scenario + convoys.
LoadStatusForm.SetLoadStatusLabel('Setting Political Relationships', 98, 60);
SetControl; // 7 Who controls which hexes (precedes SetUnits).
SetUnits; // 8 Remove some units and put others in reserve pool.
MoveFactories; // 9 Remove Russian factories that moved.
LoadStatusForm.SetLoadStatusLabel('Setting Political Relationships', 99, 80);
AssignConqueredUnits; // 10 Transfer ownership of conquered naval units.
SetGearing; // 11 Gearing limits are infinite to start.
SetAllow; // 12 Convoys & hexes usable by other major powers.
SetPacts; // 13 Neutrality pacts.
LoadStatusForm.SetLoadStatusLabel('Setting Political Relationships', 99, 90);
SetPolitics; // 14 Set which US entry actions have occurred.
SetLendLease; // 15 Remove lend leased units from force pool.
SetEntryAction; // 16 Create an empty delayed US entry action table.
// ****************************************************************************
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Missed the Bus.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ****************************************************************************
scMissedTheBus:
begin
// ****************************************************************************
// Balkans.
// ****************************************************************************
ChangeParentCountry(rsHungary, [rsTransylvania]);
ChangeParentCountry(rsBulgaria, [rsSouthDobruja]);
// ****************************************************************************
// Italy.
// ****************************************************************************
AddAligned(Italy, [rsEritrea, rsItalianSomaliland, rsLibya]);
AddConquered(Italy, [rsEthiopia]);
AddWar(Italy, [rsCommonwealth]);
// ****************************************************************************
// Commonwealth.
// ****************************************************************************
AddAligned(Commonwealth, [rsBurma, rsMalaya, rsBelgianCongo, rsNorway,
rsNetherlands, rsNetherlandsEastIndies]);
AddForcePool(Commonwealth, [rsBurma]);
// ****************************************************************************
// Vichy France.
// ****************************************************************************
Countries.CreateVichyFrance(Germany);
ChangeParentCountry(rsVichyFrance, [rsVichyFrance]);
AddAligned(VichyFrance, [rsAlgeria, rsDahomey, rsFrenchGuinea,
rsFrenchGuyana, rsFrenchSudan, rsIvoryCoast,
rsMadagascar, rsMauritania, rsMorocco,
rsNigerColony, rsSenegal, rsTogo, rsTunisia,
rsUpperVolta, rsSyria, rsFrenchIndoChina]);
ChangeForVichy; // Handles most of the changes except those below.
// ****************************************************************************
// Germany.
// ****************************************************************************
AddConquered(Germany, [rsBelgium, rsDenmark, rsNetherlands,
rsNorway, rsPoland]);
OccupyFaeroes;
GDChangeControl(rsVichyFrance, [rsFrenchPolynesia, rsMarquesasIslands,
rsGuadeloupe, rsMartinique, rsStPierreMiquelon, rsPondicherry,
rsReunion, rsComorosIslands, rsFrenchSouthernAntarctic,
rsScatteredIslandsIndianOcean]);
AddWar(Germany, [rsCommonwealth]);
// ****************************************************************************
// Free France.
// ****************************************************************************
AddAligned(France, [rsCameroons, rsChad, rsMiddleCongo,
rsFrenchSomaliland, rsGabon, rsUbangiShari]);
Countries.RenameFrance;
ChangeFranceHomeCountry; // To Gabon.
GDChangeControl(rsFreeFrance, [rsNewCaledonia]);
AddWar(Germany, [rsFreeFrance]);
AddWar(Italy, [rsFreeFrance]);
// ****************************************************************************
// Belgium.
// ****************************************************************************
ChangeBelgiumHomeCountry; // To UK.
// ****************************************************************************
// Netherlands.
// ****************************************************************************
ChangeNetherlandsHomeCountry; // To NEI.
// ****************************************************************************
// USSR.
// ****************************************************************************
ChangeParentCountry(rsUSSR, [rsFinnishBorderlands, rsBessarabia]);
GDChangeControl(rsUSSR, [rsEasternPoland]);
AddConquered(USSR, [rsEstonia, rsLatvia, rsLithuania]);
// ****************************************************************************
// USA.
// ****************************************************************************
AddAligned(UnitedStates, [rsPhilippines]);
// ****************************************************************************
// Japan.
// ****************************************************************************
AddAligned(Japan, [rsKorea, rsManchuria]);
AddForcePool(Japan, [rsKorea, rsManchuria]);
AddWar(Japan, [rsChina]);
end;