Shannon V. OKeets
Posts: 22095
Joined: 5/19/2005 From: Honolulu, Hawaii Status: offline
|
Someone had mentioned (perhaps it was in this thread) that doing a demo of the Spanish Civil war would be a good marketing tool. I was less than encouraging to that suggestion. Today I got an email asking for the set up instructions for Missed the Bus. I know that we found a few glitches in the ADG Setup instructions for that scenario so I just cut out all the scenario specific code for Missed the Bus from the program. Here is what MWIF uses. We had to make several corrections to the spreadsheet (approved by Harry). // **************************************************************************** // Fifth scenario // **************************************************************************** scMissedTheBus: begin case MCIndex of mcUnitedStates: // Missed the Bus begin AddGroupSimple(lUSAEastCoast, ['CS Ranger', 'CS Wasp', 'CS Texas', 'CS Arkansas', 'CS New York', 'CS Pensacola', 'CS Quincy', 'CS Indianapolis', 'CS Louisville', 'CS San Francisco', 'CS Tuscaloosa', 'CS Vincennes', 'CS Wichita', 'CL Cincinnati', 'CL Trenton', 'CL Concord', 'CL Memphis', 'CL Milwaukee', 'CL Philadelphia', 'CL Savannah']); AddGroupSimple(lUSAWestCoast, ['CS Enterprise', 'CS Lexington', 'CS Saratoga', 'CS Yorktown', 'CS Maryland', 'CS Mississippi', 'CS Oklahoma', 'CS Pennsylvania', 'CS Tennessee', 'CS West Virginia', 'CS Arizona', 'CS California', 'CS Idaho', 'CS Nevada', 'CS New Mexico', 'CS Chicago', 'CS New Orleans', 'CS Portland', 'CS Astoria', 'CS Augusta', 'CS Chester', 'CS Minneapolis', 'CS Northampton', 'CS Salt Lake City', 'CL Brooklyn', 'CL Omaha', 'CL St. Louis', 'CL Boise', 'CL Detroit', 'CL Helena', 'CL Honolulu', 'CL Marblehead', 'CL Nashville', 'CL Phoenix', 'CL Raleigh', 'CL Richmond']); AddGroupCountry(['United States'], ['HQ Nimitz', 'ME 1', 'MO 1', 'F2 2/1', 'L3 1/1', 'N2 0/2', 'N3 1', 'NT 4', 'SU 3', 'CN 5', 'CN 3', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'PI 4', 'CP 8/6', '[Div]', 'AT 3', 'IN 1', 'EN 1', 'OI 3']); AddGroupCity('Honolulu', EmptyStr, ['CN 5', 'CN 5', 'CN 5']); AddGroupCity('Manila', EmptyStr, ['HQ MacArthur', 'CS Houston']); AddGroupConstructionPool(['CS Wyoming', 'CS Langley', 'SU 1', 'ASW 1']); AddGroupRepairPool(['CS Colorado', 'CS Béarn']); AddGroupProduction(tSepOct, 1940, True, ['CS Hornet', '[Div]', 'MA 1']); AddGroupProduction(tNovDec, 1940, True, ['HQ Eisenhower', 'CN 1']); AddGroupProduction(tJanFeb, 1941, True, ['CS Massachusetts', 'CL Atlanta']); AddGroupProduction(tMarApr, 1941, True, ['CS South Dakota', 'CL San Diego', 'CL Juneau', 'CL San Juan']); AddGroupProduction(tMayJun, 1941, False, ['CS Washington', 'CS North Carolina', '[Down]', 'CS Indiana']); end; mcUSSR: // Missed the Bus. begin AddGroupPorts('Baltic Sea', ['CS Marat', 'CS Kirov', 'CS Oktyabr''skaya Revolutsiya']); AddGroupPorts('Black Sea', ['CS Parizhskaya Kommuna', 'CS Krasnyi Kavkaz', 'CS Voroshilov', 'CL Chervona Ukraina', 'CL Comintern', 'CL Krasni Krym']); AddGroupCity('Ulan-Bator', 'Mongolia', ['[Mongolia]', 'CA 1']); AddGroupSimple(lEurope, ['HQ Timoshenko', 'IN 2', 'GA 2', 'CA 1', 'F2 1/3', 'L2 1', 'L3 2/1', 'L4 1/1', 'SU 2', 'PI 5', '[Div]', 'AT 3', 'IN 1']); AddGroupSimple(lEuropeAsia, ['HQ Yeremenko', 'ME 1', 'MO 1', 'IN 4']); AddGroupSimple(lPacificAsia, ['HQ Zhukov', 'IN 4', 'CA 1', 'SU 2', '[Div]', 'AT 1', 'CA 1']); AddGroupSimple(lAny, ['F2 1/1', 'L3 1', 'NT 1', 'CN 2', 'CN 1', 'CN 1', 'PI 2', '[Div]', 'EN 1']); AddGroupConstructionPool(['CS Chapayev', 'CS Molotov', 'CS Maxim Gorkiy', 'CS Zhelezniakov', 'SU 2']); AddGroupProduction(tSepOct, 1940, True, ['IN 2', 'F2 1', 'PI 1']); AddGroupProduction(tNovDec, 1940, True, ['AR 1', 'ME 1']); AddGroupProduction(tJanFeb, 1941, True, ['AR 1']); end; mcChina: // Missed the Bus begin if SettingupCommunists then AddGroupSimple(lCommunist, ['[Communist China]', 'HQ Mao', 'IN 1', 'MI 1', 'GA 1', '[Div]', 'IN 1']) else AddGroupCountry(['China'], ['[Nationalist China]', 'HQ Chiang', 'IN 5', 'MI 5', 'GA 2', 'CA 2', 'F2 1', 'PI 1', 'AT 1', '[Div]', 'IN 1', '[China]', 'OI 1']); end; mcItaly: // Missed the Bus begin AddGroupCountry(['Italy', 'Albania'], ['HQ Graziani', 'ME 1', 'MO 1', 'IN 3', 'MI 2', 'GA 1', 'MT 1', 'CS Guilio Cesare', 'CS Vittorio Veneto', 'CS Conte Di Cavour', 'CS Littorio', 'CS Duca D''Aosta', 'CS Garibaldi', 'CS Trento', 'CS Zara', 'CS Abruzzi', 'CS Bolzano', 'CS Eugenio Di Savoia', 'CS Fiume', 'CS Gorizia', 'CS Pola', 'CS San Giorgio', 'CS Trieste', 'CL Cadorna', 'CL Guissano', 'CL Montecuccoli', 'CL Attendolo', 'CL Bande Nere', 'CL Barbiano', 'CL Bari', 'CL Colleoni', 'CL Diaz', 'CL Taranto', 'NT 2', 'SU 3', 'CN 7', '[Div]', 'AT 1', 'FR 1']); AddGroupCountry(['Libya'], ['IN 1', 'GA 1', 'TE 2', '[Div]', 'AT 2', 'IN 1', 'FT 1']); AddGroupCountry(['Ethiopia', 'Italian Somaliland'], ['IN 1', 'TE 2', '[Div]', 'SP 1']); AddGroupSimple(lEurope, ['HQ Balbo', 'MO 1', 'F2 3/2', 'L2 1', 'L3 1/1', 'N2 1', 'PI 6', '[Div]', 'MT 1', 'OI 1']); // French denotes captured French sub. AddGroupSimple(lEuropeMed, ['[French]', 'SU 1']); AddGroupConstructionPool(['CS Roma', 'CS Impero', 'CL Regolo', 'NT 1', 'SU 1']); AddGroupRepairPool(['CS Caio Duilio', 'CS Andrea Doria']); AddGroupProduction(tSepOct, 1940, True, ['CS Aquila']); AddGroupProduction(tNovDec, 1940, True, ['CL Africano', 'PI 1']); AddGroupProduction(tMarApr, 1941, True, ['CL Augusto', 'PI 1']); end; mcFrance: // Missed the Bus begin AddGroupCountry(['Gabon', 'Chad', 'Ubangi-Shari', 'Cameroons', 'French Somaliland'], ['[Free France]', 'CS Paris', 'CS Courbet', 'AT 1', '[Div]', 'IN 1']); AddGroupConstructionPool(['[Free France]', 'CS Jean Bart II']); AddGroupRepairPool(['[Free France]', 'CS Tourville', 'CS Lorraine', 'CS Duguay Trouin', 'CS Duquesne', 'CS Suffren']); end; mcJapan: // Missed the Bus begin FormosaMilitiaOK := True; AddGroupCountry(['Japan'], ['HQ Yamamoto', 'MI 2', 'MA 2', 'F2 1', 'A3 0/1', 'PI 1', '[Div]', 'AT 1', 'EN 1']); FormosaMilitiaOK := False; AddGroupCountry(['Manchuria', 'Korea'], ['HQ Terauchi', 'MO 1', 'MI 1', 'GA 1', 'CA 1', 'TE 2']); FormosaMilitiaOK := True; AddGroupCountry(['China', 'Hainan'], ['HQ Umezu', 'IN 5', 'MI 2', 'GA 3', 'F2 2/1', 'L2 2/2', 'L3 1', 'PI 5', '[Div]', 'AT 3', 'IN 2']); AddGroupSimple(lPacificAsia, ['IN 1', 'N2 2', 'N3 1', 'PI 3', 'CS Akagi', 'CS Hiryu', 'CS Kaga', 'CS Ryujo', 'CS Soryu', 'CS Hosho', 'CS Fuso', 'CS Hiei', 'CS Ise', 'CS Kongo', 'CS Nagato', 'CS Haruna', 'CS Hyuga', 'CS Kirishima', 'CS Mutsu', 'CS Yamashiro', 'CS Atago', 'CS Kako', 'CS Mogami', 'CS Myoko', 'CS Tone', 'CS Aoba', 'CS Ashigara', 'CS Chikuma', 'CS Chokai', 'CS Furutaka', 'CS Haguro', 'CS Idzumo', 'CS Kinugasa', 'CS Kumano', 'CS Maya', 'CS Mikuma', 'CS Nachi', 'CS Suzuya', 'CS Takao', 'CL Katori', 'CL Natori', 'CL Oi', 'CL Sendai', 'CL Tenryu', 'CL Yura', 'CL Abukuma', 'CL Isuzu', 'CL Jintsu', 'CL Kashima', 'CL Kinu', 'CL Kiso', 'CL Kitakami', 'CL Kuma', 'CL Nagara', 'CL Naka', 'CL Tama', 'CL Tatsuta', 'CL Yubari', 'NT 3', 'AM 1', 'SU 2', // **************************************************************************** // CN 27 => 6 + 5 + 4 + 4 + 3 + (1 x 5) // **************************************************************************** 'CN 6', 'CN 5', 'CN 4', 'CN 4', 'CN 3', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CP 10/6', '[Div]', 'MA 1', 'OF 1', 'OI 1', 'CL Ping Hai']); AddGroupConstructionPool(['CS Yamato', 'CS Shokaku', 'CS Zuikaku', 'CS Chitose', 'CS Chiyoda', 'CS Ryuho', 'CS Shoho', 'SU 1']); AddGroupRepairPool(['CS Asama']); AddGroupProduction(tSepOct, 1940, True, ['CS Taiyo', 'CN 2', 'CP 1/1']); AddGroupProduction(tNovDec, 1940, True, ['CS Kaiyo', '[Up]', 'CL Kashii', 'CN 2', 'CP 1/1']); AddGroupProduction(tJanFeb, 1941, False, ['CS Zuiho', '[Down]', 'CS Unyo', 'AM 1', 'CN 2']); AddGroupProduction(tMarApr, 1941, True, ['CS Junyo', 'CS Hiyo']); AddGroupProduction(tMayJun, 1941, True, ['CS Musashi', 'CS Chuyo']); end; mcGermany: // Missed the Bus begin AddGroupCountry(['Poland', 'East Prussia'], ['[Germany]', 'IN 1', 'MI 1', 'GA 1', '[German SS]', 'ME 1', 'IN 1']); AddGroupCountry(['Germany', 'Austria'], ['[Germany]', 'IN 5', 'MI 2', 'GA 3', 'PA 1', 'F2 1/1', 'L3 1/1', 'A3 1', 'PI 3', 'CS Bismarck', 'CS Gneisenau', 'CS Schlesien', 'CS Scharnhorst', 'CS Schleswig-Holstein', 'CS Admiral Hipper', 'CS Deutschland', 'CS Prinz Eugen', 'CS Admiral Scheer', 'CL Nürnberg', 'CL Emden', 'CL Köln', 'CL Leipzig', 'CX Atlantis', 'CX Komet', 'CX Orion', 'CX Pinguin', 'CX Thor', 'CX Widder', 'NT 1', 'SU 3', 'CN 11', 'OI 4', 'FT 3']); AddGroupCountry(['Norway', 'Denmark'], ['[Germany]', 'GA 1', 'MT 1', 'N3 1', 'PI 1']); AddGroupCountry(['Belgium', 'Netherlands', 'Free France', 'NOT Vichy France'], ['[Germany]', 'HQ Rundstedt', 'HQ von Bock', 'HQ von Leeb', 'AR 2', 'ME 2', 'MO 3', 'IN 7', 'MI 1', 'GA 1', 'F2 3/2', 'F3 1/1', 'L2 3/1', 'L3 4/2', 'PI 11', '[Div]', 'AT 5', 'IN 2', 'AR 1', 'EN 1']); AddGroupCountry(['Vichy France'], ['[Vichy France]', 'IN 2', 'NT 1', 'SU 2', 'CN 9', 'CS Jean Bart', 'CS Foch', 'CS Primaguet', 'CS Strasbourg', 'CS Algérie', 'CS Colbert', 'CS Dupleix', 'CL Jeanne D''Arc', 'CL Marseillaise', 'CL Emile Bertin', 'CL Georges Leygues', 'CL Gloire', 'CL Jean de Vienne', 'CL La Galissonnière', 'CL Montcalm']); AddGroupCountry(['Algeria', 'Morocco', 'Tunisia'], ['[Vichy France]', 'MT 1']); AddGroupCountry(['Syria'], ['[Vichy France]', 'IN 1']); AddGroupCity('Hanoi', EmptyStr, ['[Vichy France]', 'CS Lamotte-Picquet']); AddGroupConstructionPool(['CS Graf Zeppelin', 'CS Seydlitz', 'SU 2', '[Vichy France]', 'CS Clemenceau', 'CS Gascogne']); AddGroupRepairPool(['[Germany]', 'CX Hansa', 'CX Kormoran', 'CX Michel', 'CX Stier', 'CS Harald Haarfagre', 'CS Tordenskjold', // Norway 'CS Niels Juel', 'CS Peder Skram', // Denmark '[Vichy France]', 'CS Provence', 'CS Dunkerque', 'CS Richelieu']); AddGroupProduction(tSepOct, 1940, False, ['[Germany]', 'AR 1', 'L2 1', 'PI 1']); AddGroupProduction(tNovDec, 1940, False, ['[Germany]', 'AR 1', 'MT 1', 'L3 0/1', 'PI 1']); AddGroupProduction(tJanFeb, 1941, False, ['HQ Rommel', 'CS Tirpitz']); end; mcCommonwealth: // Missed the Bus begin AddGroupCountry(['United Kingdom'], ['[United Kingdom]', 'HQ Gort', 'ME 1', 'MO 2', 'MI 2', 'F2 2/2', 'L2 0/2', 'L3 1/3', 'N2 1/2', 'A3 1', 'PI 5', '[Div]', 'AT 2', 'IN 1', 'CS Terror', 'CS Erebus', '[Commonwealth]', 'OI 1']); AddGroupCountry(['Egypt', 'Palestine'], ['[United Kingdom]', 'HQ Wavell', 'MO 1', 'IN 1', 'F2 1', 'L3 1', 'PI 2', 'TE 2', '[Commonwealth]', 'OI 1']); AddGroupSimple(lEurope, ['[United Kingdom]', 'CS Ark Royal', 'CS Furious', 'CS Illustrious', 'CS Argus', 'CS Eagle', 'CS Hood', 'CS Nelson', 'CS Resolution', 'CS Revenge', 'CS Warspite', 'CS Barham', 'CS Malaya', 'CS Ramillies', 'CS Renown', 'CS Repulse', 'CS Rodney', 'CS Royal Sovereign', 'CS Valiant', 'CS Edinburgh', 'CS Fiji', 'CS Manchester', 'CS Norfolk', 'CS Southampton', 'CS Belfast', 'CS Birmingham', 'CS Berwick', 'CS Cornwall', 'CS Cumberland', 'CS Devonshire', 'CS Dorsetshire', 'CS Exeter', 'CS Glasgow', 'CS Gloucester', 'CS Newcastle', 'CS Sheffield', 'CS Sussex', 'CS York', 'CL Ajax', 'CL Arethusa', 'CL Bonaventure', 'CL Ceres', 'CL Curacoa', 'CL Durban', 'CL Emerald', 'CL Aurora', 'CL Cairo', 'CL Calcutta', 'CL Caledon', 'CL Calypso', 'CL Capetown', 'CL Caradoc', 'CL Cardiff', 'CL Colombo', 'CL Coventry', 'CL Curlew', 'CL Delhi', 'CL Despatch', 'CL Dauntless', 'CL Diomede', 'CL Dragon', 'CL Dunedin', 'CL Enterprise', 'CL Galatea', 'CL Naïad', 'CL Neptune', 'CL Orion', 'CL Penelope', 'TE 2', '[Commonwealth]', 'ASW 1', '[Australia]', 'CL Perth', '[New Zealand]', 'CL Achilles', 'CL Leander', '[Netherlands]', 'CL Jacob van Heemskerck']); AddGroupCountry(['Australia'], ['[Australia]', 'MI 1']); AddGroupCountry(['Burma', 'India'], ['[India]', 'MI 1', 'TE 1']); AddGroupCountry(['Malaya'], ['[India]', 'IN 1']); AddGroupCountry(['Netherlands East Indies'], ['[Netherlands East Indies]', 'MI 1', 'TE 1', '[Netherlands]', 'CS De Ruyter', 'CS Java', 'CS Sumatra', 'CL Tromp']); AddGroupSimple(lPacificAsia, ['[United Kingdom]', // **************************************************************************** // Instead of Inf in the DIV column the entry is 1. Therefore it's ignored. // '[Div]', 'IN 1', // **************************************************************************** 'CS Hawkins', 'CS Hermes', 'CS Kent', 'CS Liverpool', 'CL Danae', '[Australia]', 'CS Australia', 'CS Shropshire', 'CS Canberra', 'CL Adelaide', 'CL Hobart', 'CL Sydney', '[Commonwealth]', 'OI 1']); // **************************************************************************** // 3x8 + 3x5 + 5x3 + 14x2 + 11x1 = 93 convoys // **************************************************************************** AddGroupSimple(lAny, ['[United Kingdom]', 'IN 1', 'GA 1', 'NT 4', 'SU 2', 'CP 9/6', 'TE 1', '[Div]', 'AT 1', 'EN 1', '[Commonwealth]', 'CN 8', 'CN 8', 'CN 8', 'CN 5', 'CN 5', 'CN 5', 'CN 3', 'CN 3', 'CN 3', 'CN 3', 'CN 3', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 2', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'CN 1', 'OI 1', '[Norway]', 'NT 1']); AddGroupConstructionPool(['[United Kingdom]', 'CS Indomitable', 'CS Anson', 'CS Howe', 'CS Nigeria', 'CL Cleopatra', 'CL Euryalus', 'CL Scylla', 'SU 1']); AddGroupRepairPool(['[United Kingdom]', 'CS Queen Elizabeth', 'CS London', 'CS Frobisher', 'CS Suffolk']); AddGroupProduction(tSepOct, 1940, False, [ '[India]', 'MO 1', '[United Kingdom]', '[Div]', 'AR 1', 'CP 1/1', 'CS Formidable', 'CL Dido', 'CL Phoebe', '[Down]', 'CS Kenya', 'CS Mauritius', 'CL Charybdis','CL Sirius', '[Up]', '[Commonwealth]', 'ASW 1']); AddGroupProduction(tNovDec, 1940, True, ['[United Kingdom]', 'N4 1', 'PI 1', '[New Zealand]', 'CS Gambia']); AddGroupProduction(tJanFeb, 1941, False, ['[United Kingdom]', 'CS King George V', 'CS Trinidad']); AddGroupProduction(tMarApr, 1941, False, ['[United Kingdom]', 'CS Prince of Wales', 'CS Duke of York', 'CL Hermione', '[Down]', 'CS Jamaica']); AddGroupProduction(tMayJun, 1941, False, ['[United Kingdom]', 'CS Victorious', 'CP 1/1']); end; end; end; === Chit draws. The tension are taken from the entry pool. So Germany has 6 chits in entry after the tension is removed. scMissedTheBus: begin DrawEntryG(7); DrawTensionG(1); DrawEntryJ(3); DrawTensionJ(1); end; === Weather roll of zero means it has to be rolled at teh start of the scenario. // **************************************************************************** // scMissedTheBus. // **************************************************************************** (Name: rsMissedTheBus; MaxPlayers: 6; Maps: 4; StartingLegalMajorCountries: [mcGermany..mcUSSR]; TotalCountries: 9; Initiative: sdAxis; InitiativeBonus: iAxis1; StartingSide: sdNone; Intelligence: (2, 1, 1, 0, 0, 2, 0, 0, 0); WeatherMod: 0; WeatherRoll: 0; StartYear: 1940; StartTurn: tJulAug; EndYear: 1945; EndTurn: tJulAug; RegSetupOrder: (mcUnitedStates, mcUSSR, mcChina, mcItaly, mcFrance, mcJapan, mcGermany, mcCommonwealth, mcVichyFrance); === Can align - this is for the CW. function CheckIcelandCW: Boolean; begin Result := (CurrScenario in [scMissedTheBus, scLebensraum]) and ((C = Iceland) or (C = Greenland)); end; == US Entry options chosen. scMissedTheBus: begin USEntry.OptionsChosen := [useChineseBuildAC, useInternFrenchCV, useResourcesChina, useResourcesWAllies]; === Major Power groups. You will have to read the code/logic for this one. scMissedTheBus..scDarkness, scGlobalWar: begin case PlayerCount of 2: begin if CurrScenario in [scGlobalWar, scDarkness] then MajorPowerGroups.AddGroup([mcGermany, mcItaly, mcJapan]) else MajorPowerGroups.AddGroup([mcGermany, mcItaly, mcJapan, mcVichyFrance]); MajorPowerGroups.AddGroup([mcChina, mcCommonwealth, mcFrance, mcUnitedStates, mcUSSR]); end; 3: begin if CurrScenario in [scGlobalWar, scDarkness] then MajorPowerGroups.AddGroup([mcGermany, mcItaly, mcJapan]) else MajorPowerGroups.AddGroup([mcGermany, mcItaly, mcJapan, mcVichyFrance]); MajorPowerGroups.AddGroup([mcChina, mcCommonwealth, mcUnitedStates]); MajorPowerGroups.AddGroup([mcFrance, mcUSSR]); end; 4: begin if CurrScenario in [scGlobalWar, scDarkness] then MajorPowerGroups.AddGroup([mcGermany]) else MajorPowerGroups.AddGroup([mcGermany, mcVichyFrance]); MajorPowerGroups.AddGroup([mcItaly, mcJapan]); MajorPowerGroups.AddGroup([mcChina, mcCommonwealth, mcUnitedStates]); MajorPowerGroups.AddGroup([mcFrance, mcUSSR]); end; 5: begin if CurrScenario in [scGlobalWar, scDarkness] then MajorPowerGroups.AddGroup([mcGermany]) else MajorPowerGroups.AddGroup([mcGermany, mcVichyFrance]); MajorPowerGroups.AddGroup([mcItaly, mcJapan]); MajorPowerGroups.AddGroup([mcCommonwealth]); // MasterMWIF. MajorPowerGroups.AddGroup([mcChina, mcUnitedStates]); MajorPowerGroups.AddGroup([mcFrance, mcUSSR]); end; 6: begin if CurrScenario in [scGlobalWar, scDarkness] then MajorPowerGroups.AddGroup([mcGermany]) else MajorPowerGroups.AddGroup([mcGermany, mcVichyFrance]); MajorPowerGroups.AddGroup([mcItaly]); MajorPowerGroups.AddGroup([mcJapan]); MajorPowerGroups.AddGroup([mcCommonwealth]); // MasterMWIF. MajorPowerGroups.AddGroup([mcChina, mcUnitedStates]); MajorPowerGroups.AddGroup([mcFrance, mcUSSR]); end; end; === // No Maginot Line forts after May/Jun 1940 === scMissedTheBus: begin Add(USSR, Germany, 5, 2); // USSR and Germany trade agreement Add(Germany, USSR, 0, 0, 2); // Finland & Rumania Add(Hungary, Germany, 1); // Hungary and Germany trade agreement Add(Iraq, Germany, 1, 1); // Iraqi oil (through Syria) Add(UnitedStates, Japan, 4, 2); // USA and Japan trade agreement Add(Japan, UnitedStates, 0, 0, 1); Add(Netherlands, Japan, 2, 2); // Netherlands trade agreement Add(Netherlands, Commonwealth, 2, 2); Add(Persia, Commonwealth, 1, 1); // Persia and CW trade agreement Add(Rumania, Germany, 2, 2); // Rumania and Germany trade agreement Add(Rumania, Italy, 1, 1); // Rumania and Italy trade agreement Add(Spain, Germany, 1); // Spain and Germany trade agreement Add(Sweden, Germany, 3); // Sweden and Germany trade agreement Add(Turkey, Germany, 1); // Turkey and Germany trade agreement Add(Venezuela, Commonwealth, 3, 3); // Venezuela trade agreement Add(Venezuela, UnitedStates, 3, 3); end; === Political Relationships. 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. GDChangeControl(rsVichyFrance, [rsCorsica]); // **************************************************************************** // Germany. // **************************************************************************** AddConquered(Germany, [rsBelgium, rsDenmark, rsNetherlands, // rsFrance, rsNorway, rsPoland]); GDChangeControl(rsCommonwealth, [rsFaeroes]); 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; === procedure PickVichyUnits; begin case CurrScenario of scMissedTheBus: // 'IN 2', 'NT 1', 'SU 2', 'MT 1', 'IN 1' begin TransferLandUnit(utInfantry, France, VichyFrance); TransferLandUnit(utInfantry, France, VichyFrance); TransferShip('TRS', France, VichyFrance); TransferShip('Sub', France, VichyFrance); TransferShip('Sub', France, VichyFrance); TransferLandUnit(utMountain, France, VichyFrance); TransferLandUnit(utInfantry, France, VichyFrance); end; === scMissedTheBus: begin TransferShip(rsBearn, France, UnitedStates); TransferShip('TRS', Norway, Commonwealth); TransferShip(rsNielsJuel, Denmark, Germany); TransferShip(rsPederSkram, Denmark, Germany); TransferShip(rsHaraldHaarfagre, Norway, Germany); TransferShip(rsTordenskjold, Norway, Germany); TransferShip('Sub', France, Italy); TransferShip(rsJeanBart, France, VichyFrance); TransferShip(rsFoch, France, VichyFrance); TransferShip(rsPrimaguet, France, VichyFrance); TransferShip(rsStrasbourg, France, VichyFrance); TransferShip(rsAlgerie, France, VichyFrance); TransferShip(rsColbert, France, VichyFrance); TransferShip(rsDupleix, France, VichyFrance); TransferShip(rsJeanneDArc, France, VichyFrance); TransferShip(rsMarseillaise, France, VichyFrance); TransferShip(rsEmileBertin, France, VichyFrance); TransferShip(rsGLeygues, France, VichyFrance); TransferShip(rsGloire, France, VichyFrance); TransferShip(rsJeandeVienne, France, VichyFrance); TransferShip(rsGalissonniere, France, VichyFrance); TransferShip(rsMontcalm, France, VichyFrance); TransferShip(rsLamottePicquet, France, VichyFrance); TransferShip(rsClemenceau, France, VichyFrance); TransferShip(rsGascogne, France, VichyFrance); TransferShip(rsProvence, France, VichyFrance); TransferShip(rsDunkerque, France, VichyFrance); TransferShip(rsRichelieu, France, VichyFrance); TransferShip(rsPingHai, NationalistChina, Japan); PrepareMoveForcePool(Netherlands.FindNamedUnit(rsSumatra)); PrepareMoveForcePool(Netherlands.FindNamedUnit(rsJava)); PrepareMoveForcePool(Netherlands.FindNamedUnit(rsDeRuyter)); PrepareMoveForcePool(Netherlands.FindNamedUnit(rsHeemskerck)); PrepareMoveForcePool(Netherlands.FindNamedUnit(rsTromp)); // **************************************************************************** // Select enough units from the force pools for setting up Vichy France. // **************************************************************************** PickVichyUnits; RecoverFrenchUnits; end; === Here is another one where you will have to read the code. procedure RecoverFrenchUnits; // **************************************************************************** // This routine takes half of the French units from the Conquered Pool and // places them in the Force Pool from which the French draw their setup units // and future builds. // **************************************************************************** var UTypeCounter: TUnitType; Total: Integer; Counter: Integer; LibUnit: TUnit; procedure RecoverUnitToForcePool(const U: TUnit); begin // **************************************************************************** // This routine prepares the record log entry for moving a unit from the // Conquered pool back into the ForcePool // **************************************************************************** Inc(EntryNumber); CountryNumber := U.Country; UnitNumber := U.ID; OldLocate.UnitPlace := U.UnitPlace; OldLocate.Column := U.Column; OldLocate.Row := U.Row; OldLocate.ProdTurn := U.ProductionTurn; NewLocate.UnitPlace := upForcePool; NewLocate.Column := 0; NewLocate.Row := 0; NewLocate.ProdTurn := TTurn(0); SetGRL(RLID_LiFP); UseGRL(RLID_LiFP); end; procedure GetCount; procedure Check(var U: TUnit); // **************************************************************************** // Unit is moved to the FutureForcePool if it is still in the game but it is // before its time. // **************************************************************************** begin if U.BeenRemoved then Exit; if U.Year > Game.Date.Year then PrepareMoveFutureForcePool(U) else if U.UnitType in LandUnitSet then begin // Take all the division sized units if TLandUnit(U).Small and (not (U.UnitType in ArtillerySet + EngineerSet)) then RecoverUnitToForcePool(U); end; end; begin // **************************************************************************** // GetCount. // **************************************************************************** France.CUnits.ForEach(@Check); if UTypeCounter = utMilitia then Inc(Total, France.CUnits.UnitCount(UFilterReserveMilitia)) else Inc(Total, France.CUnits.UnitCount(UFilterConqueredUnitType)); end; begin // **************************************************************************** // RecoverFrenchUnits. // **************************************************************************** Inc(TransNumber); for UTypeCounter := Low(TUnitType) to High(TUnitType) do begin Total := 0; UFUnitType := UTypeCounter; GetCount; if Total > 0 then begin // **************************************************************************** // Recover half (rounded up) of the conquered units. Militia will be found in // the Reserve pool and all other unit types will be in the Conquered Pool. All // the randomly selected units are placed in the Force Pool. // **************************************************************************** for Counter := 1 to Succ(Total) div 2 do begin if UTypeCounter = utMilitia then PrepareMoveForcePool(France.PickUnitConquered(UFilterReserveMilitia)) else begin LibUnit := France.PickUnitConquered(UFilterConqueredUnitType); RecoverUnitToForcePool(LibUnit); end; end; end; end; end; === scMissedTheBus: begin NeutralityPacts.Add(Germany, USSR, tSepOct, 1939); // German/USSR pact. Pact := NeutralityPacts.FindPact(Germany, USSR); NeutralityPacts.AddChits(Pact, Germany, 10, 0); // 10 off and 0 def. NeutralityPacts.AddChits(Pact, USSR, 1, 4); // 1 off and 4 def. end; === And then you're ready to start! I think this makes my point about not wanting to create additional scenarios.
_____________________________
Steve Perfection is an elusive goal.
|