BREITENFELD 1631

Moderators: rbodleyscott, Slitherine Core, Gothic Labs

fogman
Sr. Colonel - Wirbelwind
Sr. Colonel - Wirbelwind
Posts: 1780
Joined: Wed Jun 20, 2012 1:29 pm

BREITENFELD 1631

Post by fogman »

Designer's notes :

For such an important battle, the specialized literature is surprisingly sparse.

The initial set-up is based on the opening Imperial manoeuvres with Pappenheim's cavalry moving towards the Swedish left and the main battle line of tercios supported by cavalry towards the Saxons, while a smattering of cavalry units attempted to hold the Swedish battle line in place :
Breitenfeld.jpg
Breitenfeld.jpg (237.9 KiB) Viewed 6893 times
The scenario reprises the design cues developed for Lutzen 1632, and adapted from my designs for FoG.

Units

All units are individually named. A lot of research went into the full name and title of commanders for added colour. Because each unit has to be created, it was possible to have them with the exact complement of men; but in the end, it made more sense to average out manpower across the army unit types. Residual men for each side are counted in a special accessory counter.

Infantry:

all infantry units are armed with arquebuses in game terms instead of actual historical muskets to reduce the firing range to 2. Movement is also halved for most units. There are a number of immobile units, notably the artillery and some of the protestant cavalry on the right.

The 13 Imperial tercios are 'later tercios' with unitsize of 1000, except for Tilly's unit which is 1100. They are rated 'elite' because it would be too easy for them to get disrupted and fragmented by firepower otherwise. Those units often had to be shot to pieces before they would melt away. That was certainly the case at Breitenfeld. Ideally they should not even have morale tests until they're down to unitsize 600. They're 40 shots, 60 pikes.

'Swedish' brigades are represented by 2 units, each of unitsize 800, except for the three truly Swedish ones that are 900 (Hand, Oxentierna, Teuffel). Ideally they should be broken down into 3 constituent regiments but that would crowd up the battlefield and imbalance the scenario. They are rated 'highly superior' except for the Swedish ones that are 'elite'. They are 70 shots, 30 pikes. One brigade (Winckel) is twinned with Tortensson's artillery and is 80 shots, 20 pikes with attached guns to represent the massive firepower. The decision was taken with the previous design, Lutzen, to not use the stock model for Swedish 'salvo' infantry which makes it a formidable offensive weapon. In fact when the Swedes attacked, such as at Lutzen (and later at Nordlingen), they were bloodied and their elite units virtually wiped out; it was on a defensive footing, such as at Breitenfeld, that Swedish firepower really shone. Saxon infantry has no fire capability and is mostly cannon fodder.

Each side has a couple of independent musketeers units although the Imperial ones are tasked with protecting the two imperial artillery units.

Cavalry:

Imperial cavalry are neatly divided into kuirassiers and harquebusiers. Kuirassiers are superior and harquebusiers are above average. Imperial harquebusiers are 50 carbines.

Protestant cavalry are a mixed lot. The use of detached shots among cavalry give some frontline cavalry units 100 carbines, some 75, thus outgunning the imperial harquebusiers.

All cavalry are unitsize 400.

Artillery:

As with light shots, artillery is not modelled with independent counters. The Imperial artillery is twinned with its supporting musketeers and the Swedish artillery with its nearest supporting infantry brigade. In game's terms, the latter have attached guns.

Map:
Fm_Breitenfeld.jpg
Fm_Breitenfeld.jpg (120.78 KiB) Viewed 6893 times
There are a few overlays of note: the no man's land in front of the Swedish battle line. On the other side is the imperial battery. There will be a steady flow of casualties from artillery fire over the no man's land.
The other overlays prevent some lateral movements and channel units into their historical attack orders.
Imperial battle line are right on top of the Saxons.

Single player (Swede). There are 20 turns. Swedish breakpoints are 40 and 45%. Imperial breakpoints are 70 and 75% (70 for all intents and purposes)

The goal of the design is to illustrate how superior defensive firepower brought down elite tercios at Breitenfeld. Victory conditions make it a challenge for the player to win in the allotted 20 turns (and not to lose given that the saxons will be swept away and the imperials will race ahead in the casualties count).
Last edited by fogman on Wed May 27, 2015 2:18 am, edited 7 times in total.
jomni
Sengoku Jidai
Sengoku Jidai
Posts: 1394
Joined: Thu Dec 03, 2009 1:20 am

Re: BREITENFELD 1631

Post by jomni »

Gotta love the cavalry bouncing around on the left. Caracole? Is that possible in the game? I know it's part of the stats but I'm talking about the actual units bouncing around.
TheGrayMouser
General - Carrier
General - Carrier
Posts: 4999
Joined: Sat Nov 14, 2009 2:42 pm

Re: BREITENFELD 1631

Post by TheGrayMouser »

jomni wrote:Gotta love the cavalry bouncing around on the left. Caracole? Is that possible in the game? I know it's part of the stats but I'm talking about the actual units bouncing around.
Its unlikely the imperial cavalry was using the caracole. It likely represents charges/concentrated attacks that were repulsed, the regrouping and charging again (I believe there were 7-8 concerted "attacks" before the imperial left wing had enough and left the field) Probably best characterized in game with cavalry charging in, then "breaking off"
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Trying to create my own BREITENFELD. How do you give all the Saxon units the "No CC" state?
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Trying to create my own BREITENFELD. How do you give all the Saxon units the "No CC" state?
You have to script it.

If you look in the vanilla Breitenfeld scenario script, which is at

\Campaigns\1ThirtyYearsWar\Scenarios\Breitenfeld.BSF

the code that gives them to "No CC" state is on lines 47-62

Code: Select all

	if (side == 0)
		{
			// Render Saxons uncontrollable
			team = 1;
			for (i = 0; i < GetUnitCount(0); i++)
				{
					id = GetUnitID(0,i);
					if (id != -1)
						{
							if (GetUnitTeam(id) == team)
								{
									SetCannotControl(id, 1);
								}
						}
				}
		}
This assumes that the Saxons have been set as Team 1 in the Editor, and that they are on the player side.
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Ok, fine thank you. As you can see I`m very much at the learners stage
How do I set it as Team 1 in the Editor? I thought Teams only applied to the AI.
I`ve inserted the template .bsf file but now I need to be certain about where I place the Saxon code.
One other problem is that although I can locate and edit the scenario, I cannot locate it to run! Its in Mygames/PSCAMP/CAMPAIGNS/GUSTAVEBH/SCENARIOS
Clearly I`m doing something very wrong as I now appear to have two identical Gustavus Adolphus Campaigns
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Ok, fine thank you. As you can see I`m very much at the learners stage
How do I set it as Team 1 in the Editor? I thought Teams only applied to the AI.
You do it the same way as for AI teams, but need to hold down the CTRL key while doing it.
I`ve inserted the template .bsf file but now I need to be certain about where I place the Saxon code.
At the top of StartTurnPost() like this

Code: Select all

FUNCTION StartTurnPost(side)
{
	int i;
	int id;
   int team;

	if (side == 0)
		{
			// Render Saxons uncontrollable
			team = 1;
			for (i = 0; i < GetUnitCount(0); i++)
				{
					id = GetUnitID(0,i);
					if (id != -1)
						{
							if (GetUnitTeam(id) == team)
								{
									SetCannotControl(id, 1);
								}
						}
				}
		}
One other problem is that although I can locate and edit the scenario, I cannot locate it to run! Its in Mygames/PSCAMP/CAMPAIGNS/GUSTAVEBH/SCENARIOS
The Gustavus Adophus campaign is a strategic campaign and won't appear in the list of scenarios. You need to clone /Campaigns/1ThirtyYearsWar instead.
Clearly I`m doing something very wrong as I now appear to have two identical Gustavus Adolphus Campaigns
The program places the campaign name you entered in Text1.txt but there is already a Campaign Name in Text5,txt and that overwrites the Text1.txt version as the files are read in sequence. So you need to delete
IDS_CAMPAIGN_NAME,"Gustavus Adolphus", in Text5.txt or change it to your new name.
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Did exactly as you directed, setting up Saxons as Team 1 then putting the Saxon code directly beneath FUNCTION StartTurnPost(side) but got the following message

Missing LHS variable in {
Context
{
// Scenario-specific code goes here - you can look at some of the
historical scenarios for examples
if(side == 1)
{ ------- etc

The only other change I made was to accept the standard victory conditions.
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Did exactly as you directed, setting up Saxons as Team 1 then putting the Saxon code directly beneath FUNCTION StartTurnPost(side) but got the following message

Missing LHS variable in {
Context
{
// Scenario-specific code goes here - you can look at some of the
historical scenarios for examples
if(side == 1)
{ ------- etc

The only other change I made was to accept the standard victory conditions.
Could you try attaching the whole .bsf file here, and I will see if I can see what the problem is. If that proves impossible we will have to take this to emails.
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Richard many thanks for help. Breitenfeld.bsf file as requested

Code: Select all

include "Tools.BSF"


// called at the start of every turn.
// You would tend to use this for events
FUNCTION StartTurn(side)
{
	if (GetTurn() == -1)
		{
			// Setup anything that needs setting up at the start of the game
			PreBattleSetup();

			// Use the following code here if you want to use the standard deployment restrictions as outlined in the manual.
          SetUniversalVar("StandardDeployment", 1);
          SetStandardDeploymentBounds();
		}
	else
		{


		}

}


   FUNCTION StartTurnPost(side)
    {
       int i;
       int id;
       int team;

       if (side == 0)
          {
             // Render Saxons uncontrollable
             team = 1;
             for (i = 0; i < GetUnitCount(0); i++)
                {
                   id = GetUnitID(0,i);
                   if (id != -1)
                      {
                         if (GetUnitTeam(id) == team)
                            {
                               SetCannotControl(id, 1);
                            }
                      }
                }
          }




{
	// Scenario-specific AI code goes here - you can look at some of the historical scenarios for examples.
	if (side == 1)
		{
			// AI_Masterplan() can be used to provide automated AI for encounter battles where Side 0 is on the left side of the map and Side 1 is on the right side of the map.
			// Be warned that it may not cope well with unusual AI deployments.
			// If used, PreBattleSetup() must include AI_ReassignTeams(1);
			// The parameter is the turn on which the AI side will start to advance its infantry if it has not done so already. (Turn 0 is side 0's first turn, Turn 1 is Side 1's first turn, and so on).
			// If the value is set at -1 the infantry will only ever advance if the tactical situation merits it.

//      AI_Masterplan(15);

			// If you want to use AI_Masterplan() in a scenario where the AI foot is defending fortifications you need to use the following code here
//      SetUniversalVar("SkirmishGame",1);
//      SetUniversalVar("ScenarioType",0);
//      AI_Masterplan(-1);
//      SetUniversalVar("SkirmishGame",0);
			// You would also need to set the position of the fortification line in PreBattleSetup(), using
//        SetUniversalVar("FootMinX", 24); // X-coordinate of bottom end of fortifications line
//        SetUniversalVar("FootMaxX", 28); // X-coordinate of upper end of fortifications line
//        SetUniversalVar("FrontLine", 26); // Y-coordinate of fortifications line


			// Otherwise insert any custom AI code here
		}
		
	// Set up MP scenario to use adjusted MP victory conditions:
	// SetMPForceRatio();
}


FUNCTION PreBattleSetup()
{
	// Set multiplier for unit strength reporting. 100 is 100% - i.e. units are vanilla strength.
	// If you set this at 50, units will be around half the size specified in the TotalMen column in the Squads file.
	SetUniversalVar("StrengthMultiplier", 100);

// Needs to be set if scenario uses deadline (turn limit) - note that side 0's first turn is turn 0, side 1's first turn is turn 1, side 0's second turn is turn 2 and so on.
// If it is set at 0, or not set at all, the scenario will have no turn limit.
// SetUniversalVar("ScenarioDeadline", 32);

	// Customise units for scenarios
	CustomiseUnits();

// Reassign teams - Only use if using AI_Masterplan() for AI orders - see above.
//  AI_ReassignTeams(1);

}

// This function applies standard victory conditions. The actual StandardVictoryConditions() function code can be found in MoreScenarioTools.BSF.
// The parameters are (breakpoint0a, breakpoint0b, breakpoint1a, breakpoint1b, drawdecider, MPgame)
// breakpoint0a is Side 0 first breakpoint (in % troops UNrouted), breakpoint0b is Side 0 second breakpoint.
// breakpoint1a is Side 1 first breakpoint (in % troops UNrouted), breakpoint1b is Side 1 second breakpoint.
// An army is defeated if it reaches its second breakpoint, or if it reaches its first breakpoint (or anywhere between that and its second breakpoint)
// and the enemy has at least 25% more troops UNrouted.
// drawdecider indicates which side wins if the game is drawn ("ScenarioDeadline" turn limit reached or both sides are "defeated" on same turn).
// drawdecider == 0 means that Side 0 wins draws. drawdecider == 1 means that Side 1 wins draws. drawdecider == 2 means that whichever side is ahead wins draws.
// MPgame = 1 means that the game is an MP game. In non-random MP games, the victory conditions can automatically be adjusted to take account of initial disparity in forces,
// so that the losing army will win the scenario if the enemy victory was too Pyrrhic. To implement this, the StartTurnPost() function needs to include SetMPForceRatio();
// If this is likely to happen, the ScenarioUI text in the top left of the screen will report that the losing side is “ahead on points”.
// Special victory conditions can be applied using SpecialScenarioVictoryConditions() - see Lostwithiel.BSF for an example of this. If present in the scenario .bsf file,
// this function is run by StandardVictoryConditions() if neither army is broken.
FUNCTION VictoryConditions()
{
	StandardVictoryConditions(60, 40, 60, 40, 2, 0); // The last parameter should be 1 instead of 0 for Multiplayer scenarios.
	
	return 1; // VictoryConditions() must return a non-zero value so that the main program knows it exists and therefore not to use the default version.
}


// called every game tick.
// You would tend to use this for reactive logic and win situations etc
FUNCTION Tick(side)
{

}


FUNCTION DrawScenarioUI()
	{
		StandardScenarioUI("IDS_SCENUI_VC_STANDARD", 1);  // You can of course write your own custom UI if you prefer.
		
		return 1; // DrawScenarioUI() must return a non-zero value so that the main program knows it exists and therefore not to use the default version.
	}


FUNCTION WIN_SCENARIO_CALLBACK(winner)
{
			if( GetGlobal("victory") == 1 )
				{
						return 0 ;
				}
			else
				{
						return -1 ;
				}
}



// Any scenario that needs units to vary from their standard definition should have a version of this function
// The basic function just randomises the number of men in the unit slightly.
FUNCTION CustomiseUnits()
{
	int i;
	int id;
	int starting_strength; // starting strength - percent of full base unit strength

	// Adjust starting unit strengths
	for (i = 0; i < GetUnitCount(0); i++)
	{
		id = GetUnitID(0,i);
		if (id != -1)
			{
				starting_strength = 100;

				RandomiseStartingStrength(id, starting_strength);
			}
	}

	for (i = 0; i < GetUnitCount(1); i++)
	{
		id = GetUnitID(1,i);
		if (id != -1)
			{
				starting_strength = 100;

				RandomiseStartingStrength(id, starting_strength);
			}
	}
}

// Adjust available points according to difficulty. This over-rides the points set in the editor.
// The units that will be chosen from with these points need to be set as Unfixed in the editor.
// If all the units are Fixed, then this function will have no effect.
// MP scenarios are all played on normal difficulty.
FUNCTION FORCE_POINTS_CALLBACK(side, points)
{
	int mode;
	int i;
	int id;

	mode = GetDiffMode();

	if (mode == 0) // Normal
		{
			return 200;
		}

		if ((mode == 1) || (mode == 2)) // Easy / Very Easy. (Very Easy mode also adjusts the quality of player units slightly upwards and AI units slightly downwards).
		{
			return 400;
		}

	if ((mode == 3) || (mode == 4)) // Hard / Very Hard. (Very Hard mode also adjusts the quality of player units slightly downwards and AI units slightly upwards).
		{
			return 0;
		}

}
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Richard many thanks for help. Breitenfeld.bsf file as requested


The bracket highlighted in red below should not be there. That is what is causing the crash error.

Unfortunately I can't highlight it in red while it is shown in "code" format, and can't keep the formatting when it is not.

Suffice it to say that you need to delete the "{" from the line immediately above "// Scenario-specific AI code goes here - you can look at some of the historical scenarios for examples."

FUNCTION StartTurnPost(side)
{
int i;
int id;
int team;

if (side == 0)
{
// Render Saxons uncontrollable
team = 1;
for (i = 0; i < GetUnitCount(0); i++)
{
id = GetUnitID(0,i);
if (id != -1)
{
if (GetUnitTeam(id) == team)
{
SetCannotControl(id, 1);
}
}
}
}




{
// Scenario-specific AI code goes here - you can look at some of the historical scenarios for examples.
if (side == 1)
{
// AI_Masterplan() can be used to provide automated AI for encounter battles where Side 0 is on the left side of the map and Side 1 is on the right side of the map.
// Be warned that it may not cope well with unusual AI deployments.
// If used, PreBattleSetup() must include AI_ReassignTeams(1);
// The parameter is the turn on which the AI side will start to advance its infantry if it has not done so already. (Turn 0 is side 0's first turn, Turn 1 is Side 1's first turn, and so on).
// If the value is set at -1 the infantry will only ever advance if the tactical situation merits it.

// AI_Masterplan(15);

// If you want to use AI_Masterplan() in a scenario where the AI foot is defending fortifications you need to use the following code here
// SetUniversalVar("SkirmishGame",1);
// SetUniversalVar("ScenarioType",0);
// AI_Masterplan(-1);
// SetUniversalVar("SkirmishGame",0);
// You would also need to set the position of the fortification line in PreBattleSetup(), using
// SetUniversalVar("FootMinX", 24); // X-coordinate of bottom end of fortifications line
// SetUniversalVar("FootMaxX", 28); // X-coordinate of upper end of fortifications line
// SetUniversalVar("FrontLine", 26); // Y-coordinate of fortifications line


// Otherwise insert any custom AI code here
}

// Set up MP scenario to use adjusted MP victory conditions:
// SetMPForceRatio();
}
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Many thanks Richard. Works fine now.
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Where do I find "MoreScenarioTools.bsf"
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Where do I find "MoreScenarioTools.bsf"
In the game directory in \Data\scripts.

Note that if you are putting a modded version into your custom campaign, it goes in \Data\Battle\Scripts in the custom campaign folder, not in \Data\scripts.

See the custom campaign file tree diagram at the end of

http://www.slitherinebravo.net/GameWiki ... tub_engine

It isn't identical to the file tree in the main build.
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

The very detailed adaptation of the Breitenfeld scenario by Fogman to create a more realistic battle by reducing movement and channeling the lines of attack is curious. His map is the one generally taken as the most accurate version as produced by Swedish engineers circa 1631. This is described in Barry Siler`s website ( http://syler.com/Breitenfeld/intro/aboutMap.htm) using research done by Daniel Staberg, where the LOS is mostly full, the marsh areas are on the river Lober and there are no "No Mans land" areas in front of the Swedish centre ! So where is the realism?
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Richard, I cannot find in the manual or in the P&S topics how one changes the number of turns in the editor.
rbodleyscott
Field of Glory 2
Field of Glory 2
Posts: 28052
Joined: Sun Dec 04, 2005 6:25 pm

Re: BREITENFELD 1631

Post by rbodleyscott »

edward77 wrote:Richard, I cannot find in the manual or in the P&S topics how one changes the number of turns in the editor.
I think you will need to script it. You can control when night falls in the editor, but not when the game ends, because it does not automatically end when night falls.

Fortunately it is very easy to script it.

See line 63-65 of SCENARIOTEMPLATE.BSF (in the main directory of the game)

To set the turn limit, remove the "//" comment marks from line 65 (// SetUniversalVar("ScenarioDeadline", 32);) and change 32 to the value you want. (Bearing in mind that the value should be twice the number of turns you want each side to have).

Obviously this will be a different line in your version as you have added lines above it.
Richard Bodley Scott

Image
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Richard, The two versions of the impressive community scenario Marsaglia have exactly the same units and map but a different AI. However the units are at reduced levels (eg below average) for the player and increased levels (eg superior) for the AI. Obviously this is to make the game more challenging for the player but how do you change the level of a unit?
fogman
Sr. Colonel - Wirbelwind
Sr. Colonel - Wirbelwind
Posts: 1780
Joined: Wed Jun 20, 2012 1:29 pm

Re: BREITENFELD 1631

Post by fogman »

edward77 wrote:The very detailed adaptation of the Breitenfeld scenario by Fogman to create a more realistic battle by reducing movement and channeling the lines of attack is curious. His map is the one generally taken as the most accurate version as produced by Swedish engineers circa 1631. This is described in Barry Siler`s website ( http://syler.com/Breitenfeld/intro/aboutMap.htm) using research done by Daniel Staberg, where the LOS is mostly full, the marsh areas are on the river Lober and there are no "No Mans land" areas in front of the Swedish centre ! So where is the realism?
the greyed out parts in the map prevent players from committing troops to areas that were not in the historical assault axis. 'no man's land' is merely a fanciful designation of one such area. whether this intrudes on 'realism' is your call.
edward77
Sergeant - 7.5 cm FK 16 nA
Sergeant - 7.5 cm FK 16 nA
Posts: 231
Joined: Wed Nov 10, 2010 9:11 pm

Re: BREITENFELD 1631

Post by edward77 »

Ok, I understand now! Thank you
Post Reply

Return to “Scenario Design”