Thread: [REL] Playable U-FlaK for SH5
View Single Post
Old 03-01-16, 02:39 PM   #126
gap
Navy Seal
 
Join Date: Jan 2011
Location: CJ8937
Posts: 8,214
Downloads: 793
Uploads: 10
Default

Quote:
Originally Posted by vdr1981 View Post
Could you upload edited files so I could test them?
Sure

Overwrite the content of Crew_Idle_Actions_QR1.aix and Crew_Idle_Actions_QR2.aix with the following code.

QR1:

Code:
# Crew_Idle_Actions_QR1.aix
# Stock script modified by MightyFine Crew Mod 1.2.1 03/22/2010
# Edited by gap for The Wolves of Steel Mega Mod on 03/01/2016

strategy QRF_WATCH_IDLE01(wp)
{
	strategies
	{
		QRF_WATCH_TUTORIAL,
		QRF_WATCH_SUBMERGED,
		QRF_WATCH_TORPEDO_HIT,
		QRF_WATCH_DAMAGE_TAKEN,
		QRF_WATCH_SURFACED		
	}
}

strategy QRF_WATCH_TUTORIAL(wp)
{
	precond
	{
		Wp:IsTutorial() and !Wp:IsBunkerState()
	}
	action
	{
		if Wp:GetGlobalVariable(TUT_VAR_QRF_WATCH_STATE) == 0 then
		{
			Wp:BindAvatarCameraToObject("Cam01_wake_up_box", 65);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M1", 10.767);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M2", 16.367);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M3", 17.733);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M4", 25.5);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M5", 29.9);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M6", 37.9);
			Wp:PlaySoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D01_M7", 44.567);
			Wp:PlayAnimationAndWait("SAILOR01_Wake_up");
			Wp:UnbindAvatarCamera(1);
			Wp:Teleport("CR_NAV");
			Wp:PlayAnimationAndWait("SAILOR01_Go_through_hatch");
			Wp:SetGlobalVariable(TUT_VAR_QRF_WATCH_STATE, 1);
		}
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_QRF_WATCH_STATE) == 1 then
		{
			Wp:Teleport("CR_NAV");
			if Wp:GetDistanceToAvatar() < 3 then
				Wp:SetGlobalVariable(TUT_VAR_QRF_WATCH_STATE, 2)
			else
				Wp:PlayAnimationAndWait("SAILOR01_Wait_near_ladder")
			endif;
		}
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_QRF_WATCH_STATE) == 2 then
		{
			Wp:Teleport("CR_NAV");
			Wp:PlayAttenuatedSoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D03_M1", 0.3);
			Wp:PlayAttenuatedSoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D03_M2", 6.0);
			Wp:PlayAttenuatedSoundWithLipsync("WatchOfficer\Normal\TTM_QRF_WATCH_D03_M3", 15.733);
			Wp:PlayAnimationAndWait("SAILOR01_Scare_Navigator");
			Wp:SetGlobalVariable(TUT_VAR_QRF_WATCH_STATE, 3);
		}
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_CAPTAIN_STATE) > 0 then
			Wp:SetGlobalVariable(TUT_VAR_QRF_WATCH_STATE, 4)
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_QRF_WATCH_STATE) == 3 then
			Wp:PlayAnimationAndWait("SAILOR01_Wait_at_NAV_Table")
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_QRF_WATCH_STATE) == 4 then
		{
			Wp:Teleport("QRF_Watch");
			Wp:PlayAnimationAndWait( "QRF_Watch_idle01" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle06" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle07" );
			Wp:PlayAnimationAndWait( "QRF_Watch_change_pose" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle02" );
			Wp:PlayAnimationAndWait( "QRF_Watch_inspect" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle09" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle10" );
			Wp:PlayAnimationAndWait( "QRF_Watch_silence" );
			Wp:Goto( "QRF_Watch_C" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle03" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle04" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle05" );
			Wp:Goto( "QRF_Watch" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle08" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle09" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle10" );
			Wp:PlayAnimationAndWait( "QRF_Watch_return" );
		}
		endif;
		Wp:ScriptCompleted();
	}
}

strategy QRF_WATCH_SUBMERGED(wp)
{
	precond
	{
		# (!Wp:IsCrewState(T_HIT) or !Wp:IsCharacterPosture(C)) and
		# (!Wp:IsCrewState(DMG_TKN) or !Wp:IsCharacterPosture(A)) and
		(Wp:IsSubmerged() or Wp:GetGlobalVariable(VAR_DIVE_ORDER) >  0 ) and
		!(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
############## Uncomment for alternate head #######################		
		# Wp:SetBodyPartVisibility("D_Head12", 0);
		# Wp:SetBodyPartVisibility("D_EyeL12", 0);
		# Wp:SetBodyPartVisibility("D_EyeR12", 0);
		# Wp:SetBodyPartVisibility("D_Head16", 1);
		# Wp:SetBodyPartVisibility("D_EyeL16", 1);					
		# Wp:SetBodyPartVisibility("D_EyeR16", 1);				
		# Wp:SetBodyPartVisibility("D_Torso03", 0);				
		# Wp:SetBodyPartVisibility("D_Torso01", 1);				
##################################################################

############## Uncomment for optional beard ######################	
		# Wp:SetBodyPartVisibility("object1_Barba_CAP13", 1);     
##################################################################
		
		if !Wp:IsCurrentWaypoint("QRF_Watch_C") and !Wp:IsCurrentWaypoint("QRF_Watch") then
		{
			if Wp:IsCurrentWaypoint("WT_CR02") then
			{
				Wp:PlayAnimationAndWait( "DER_DE_CPO_explosion_event04" );	
				if Wp:GetGlobalVariable(VAR_CR_HF_LOC) < 5 and Wp:GetGlobalVariable(VAR_CR_HA_LOC) < 5 then 
				{
					Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 4);
					Wp:SetBodyPartVisibility("object1_Binocular", 0);
					Wp:Teleport("CT_STAIRS");
					Wp:PlayAnimationAndWait( "SQ_COOK_A2C_Part01" );
				}
				endif;
			}
			else
			{
				if Wp:IsCurrentWaypoint("CT_STAIRS") then # wait for HF and HA to clear the stairs
				{
					Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 4);
					if Wp:GetGlobalVariable(VAR_CR_HF_LOC) < 3 and Wp:GetGlobalVariable(VAR_CR_HA_LOC) < 3 then 
					{
						Wp:Teleport("CR_LADDER");
						Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 3);
						Wp:PlayAnimationAndWait( "QRF_RTeam_01_screw" );					
					}
					else
					{
						Wp:PlayAnimationAndWait( "SQ_COOK_A2C_Part01" );
					}
					endif;
				}
				else
				{
					if Wp:IsCurrentWaypoint("CR_LADDER") then
					{
						Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 3);
						if Wp:GetGlobalVariable(VAR_CR_HF_LOC) < 2 and Wp:GetGlobalVariable(VAR_CR_HA_LOC) < 2 then 
						{	
							
							Wp:PlayAttenuatedSoundWithLipsync("MFCM\fall02", 0);
							Wp:Teleport("CR_STAIRS");
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 2);
							if Wp:GetGlobalVariable(VAR_DIVE_ORDER) == 2 then # jar landing on crash dive
							{
								Wp:PlayAttenuatedSoundWithLipsync("MFCM\fall02", 0.5);
								Wp:PlayAnimationAndWait("DER_DE_CPO_explosion_event01");
							}
							endif;
						}
						else
						{
							Wp:Teleport("CT_STAIRS");  # in case he's blocking HA and HA
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 4);
							Wp:PlayAnimationAndWait( "QRF_RTeam_01_screw" );
						}
						endif;
					}
					else
					{
						if Wp:IsCurrentWaypoint("CR_STAIRS") then
						{
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 2);
							Wp:PlayAttenuatedSoundWithLipsync("MFCM\footsteps02", 0.5);
							Wp:Goto("CR_WP08_DOOR");
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 1);
							Wp:Teleport("RR_WP01_DOOR");
							Wp:Goto( "QRF_Watch" );
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 0);
						}
						else
						{
							Wp:Teleport( "QRF_Watch" );
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 0);
						}
						endif;	
					}
					endif;
				}
				endif;
			}
			endif;
		}			
		else	
		{
			if Wp:GetGlobalVariable(VAR_DIVE_ORDER) > 0 and Wp:IsSubmerged() and  Wp:GetGlobalVariable(VAR_CR_HF_LOC) == 0 and Wp:GetGlobalVariable(VAR_CR_HA_LOC) == 0 then
			{
				Wp:SetGlobalVariable(VAR_DIVE_ORDER, 0);
			}
			endif;
			
			Wp:SetBodyPartVisibility("object1_Binocular", 0);
			Wp:SetBodyPartVisibility("D_Hat02", 0);

			Wp:PlayAnimationAndWait( "QRF_Watch_idle01" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle06" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle07" );
			Wp:PlayAnimationAndWait( "QRF_Watch_change_pose" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle02" );
			Wp:PlayAnimationAndWait( "QRF_Watch_inspect" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle09" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle10" );
			Wp:PlayAnimationAndWait( "QRF_Watch_silence" );
			Wp:Goto( "QRF_Watch_C" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle03" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle04" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle05" );
			Wp:Goto( "QRF_Watch" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle08" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle09" );
			Wp:PlayAnimationAndWait( "QRF_Watch_idle10" );
			Wp:PlayAnimationAndWait( "QRF_Watch_return" );
		}
		endif;

		Wp:ScriptCompleted();
	}
}

strategy QRF_WATCH_TORPEDO_HIT(wp)
{
	precond
	{
		Wp:IsCrewState(T_HIT) and
		Wp:IsCharacterPosture(C) and
		!Wp:IsCrewState(DMG_TKN) and
		Wp:IsSubmerged() and
		!(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
		Wp:PlayAnimationAndWait( "QRF_Watch_JOY01" );
		Wp:PlayAnimationAndWait( "QRF_Watch_JOY02" );
		Wp:Goto( "QRF_Watch" );
		Wp:PlayAnimationAndWait( "QRF_Watch_return" );
		Wp:DeactivateCrewState(T_HIT);
		
		Wp:ScriptCompleted();
	}
}

strategy QRF_WATCH_DAMAGE_TAKEN(wp)
{
	precond
	{
		Wp:IsCrewState(DMG_TKN) and
		Wp:IsCharacterPosture(A) and
		Wp:IsSubmerged() and
		!(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
		Wp:PlayAnimationAndWait( "QRF_Watch_explosion_event01" );
		Wp:DeactivateCrewState(DMG_TKN);
		
		Wp:ScriptCompleted();
	}
}

strategy QRF_WATCH_SURFACED(wp)
{
	precond
	{
		Wp:GetGlobalVariable(VAR_DIVE_ORDER) == 0 and
		Wp:IsSurfaced() and
		!(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{

############## Uncomment for alternate head #######################		
		# Wp:SetBodyPartVisibility("D_Head12", 0);
		# Wp:SetBodyPartVisibility("D_EyeL12", 0);
		# Wp:SetBodyPartVisibility("D_EyeR12", 0);
		# Wp:SetBodyPartVisibility("D_Head16", 1);
		# Wp:SetBodyPartVisibility("D_EyeL16", 1);
		# Wp:SetBodyPartVisibility("D_EyeR16", 1);
		# Wp:SetBodyPartVisibility("D_Torso03", 0);
		# Wp:SetBodyPartVisibility("D_Torso01", 1);
###################################################################		

############## Uncomment for optional beard ######################		
		# Wp:SetBodyPartVisibility("object1_Barba_CAP13", 1);
###################################################################

		if !Wp:IsCurrentWaypoint("WT_CR02") then
		{
			if Wp:IsCurrentWaypoint("QRF_Watch_C") or Wp:IsCurrentWaypoint("QRF_Watch") then
			{
				Wp:Teleport("QRF_Watch");
				# Wp:SetBodyPartVisibility("D_Hat02", 1);
				Wp:PlayAnimationAndWait("QRF_Warch_leave_rush");
				Wp:Teleport("CR_NAV");
				Wp:PlayAttenuatedSoundWithLipsync("MFCM\footsteps02", 0.25);
				Wp:PlayAnimationAndWait("SAILOR01_Go_through_hatch");
				Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 1);
			}
			else
			{
				if Wp:IsCurrentWaypoint("CR_NAV") then # wait for HA anf HF to go up ladder
				{
					if Wp:GetGlobalVariable(VAR_CR_HA_LOC) > 2 and Wp:GetGlobalVariable(VAR_CR_HF_LOC) > 2 then 
					{
						Wp:Teleport("CR_STAIRS");
						Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 2);
						Wp:PlayAnimationAndWait( "SQ_COOK_A2C_Part01" );
						
					}
					else
					{
						Wp:PlayAnimationAndWait("SAILOR01_Wait_near_ladder");
					}
					endif;
				}
				else
				{
					if Wp:IsCurrentWaypoint("CR_STAIRS") then 
					{
						if Wp:GetGlobalVariable(VAR_CR_HA_LOC) != 3 and Wp:GetGlobalVariable(VAR_CR_HF_LOC) != 3 then 
						{
							Wp:PlayAttenuatedSoundWithLipsync("MFCM\ladder_up", 0);
							Wp:Teleport("CR_LADDER");
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 3);
							Wp:PlayAnimationAndWait( "QRF_RTeam_01_screw" );
							Wp:Teleport("WT_CR02");
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 5);
						}
						else
						{
							Wp:PlayAnimationAndWait("SQ_COOK_A2C_Part01");
						}
						endif;
					}
					else
					{
						if !Wp:IsCurrentWaypoint("WT_CR02") then 
						{
							Wp:Teleport("WT_CR02");
							Wp:SetGlobalVariable(VAR_QRF_WATCH_LOC, 5);	
						}
						endif;
					}
					endif;
				}
				endif;
			}
			endif;
		}
		else
		{
			Wp:SetBodyPartVisibility("object1_Binocular", 1);
			Wp:SetBodyPartVisibility("D_Torso03", 0); 
			Wp:SetBodyPartVisibility("D_Torso01", 1); 
			# Wp:SetBodyPartVisibility("D_Hat02", 1);
			
			Wp:PlayAnimationAndWait( "WATCH03_Idle01" );
			Wp:PlayAnimationAndWait( "SECONDARY_IdleA09" );
			Wp:PlayAnimationAndWait( "SECONDARY_Scan_with_Binoculars" );
		}
		endif;

		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY01_IDLE01(wp)
{
	strategies
	{
		QRF_PETTY01_Sleeping,
		QRF_PETTY01_Manning_A01gun
	}
}

strategy QRF_PETTY01_Sleeping(wp)
{
	precond
	{
		!Wp:IsGunManned(SLOT_A01)
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Barba_Cap06", 1);
##################################################################
	

		Wp:SetBodyPartVisibility("A_Hat01", 0); 
		Wp:SetBodyPartVisibility("A_Pants01", 1); 
		Wp:SetBodyPartVisibility("A_Pants02", 0);

		if (Wp:GetGunType(SLOT_A01) == CANNON_Vierling) then
			Wp:UnmanTheGun(SLOT_A01, ROLE_TRAV)
		else
			Wp:UnmanTheGun(SLOT_A01, ROLE_GUNNER)
		endif;
		Wp:Teleport("QRF_Petty_01");
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_talk_01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_1to2" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep02" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep02" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep02" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_2to1" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_01_talk_01" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_AtoC" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle01" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle04" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle05" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle02_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 1);
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle02_part02" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle03_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "QRF_Petty01_idle03_part02" );
		Wp:PlayAnimationAndWait( "QRF_Petty01_CtoA" );

		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY01_Manning_A01gun(wp)
{
	precond
	{
		Wp:IsGunManned(SLOT_A01)
	}
	action
	{
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Pants01", 1); 
		Wp:SetBodyPartVisibility("A_Pants02", 0);

		
		Wp:PlayAnimationAndWait( "QRF_Petty01_leave_rush" );
		Wp:Teleport("WP_A01_GUN");
		if (Wp:GetGunType(SLOT_A01) == CANNON_Vierling) then
			Wp:ManTheGun(SLOT_A01, "Vierling_L_R", ROLE_TRAV)
		endif;
		if (Wp:GetGunType(SLOT_A01) == CANNON_20mm_C30) then
			Wp:ManTheGun(SLOT_A01, "20mm_C30_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A01) == CANNON_20mm_C30_2) then
			Wp:ManTheGun(SLOT_A01, "20mm_C30_2_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A01) == CANNON_20mm_C38_Twin) then
			Wp:ManTheGun(SLOT_A01, "20mm_C38_twin_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A01) == CANNON_20mm_C38_Twin_Shield) then
			Wp:ManTheGun(SLOT_A01, "20mm_C38_shield_twin_UP_DW", ROLE_GUNNER)
		endif;
		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY02_IDLE01(wp)
{
	strategies
	{
		QRF_PETTY02_Tutorial,
		QRF_PETTY02_Sleeping,
		QRF_PETTY02_Manning_A01gun,	
		QRF_PETTY02_Manning_A02gun		
	}
}

strategy QRF_PETTY02_Tutorial(wp)
{
	precond
	{
		Wp:IsTutorial() and !Wp:IsBunkerState()
	}
	action
	{
		Wp:Teleport( "QRF_Watch" );
		if Wp:GetGlobalVariable(TUT_VAR_QRF_PETTY02_STATE) == 0 then
		{
			Wp:PlayAnimationAndWait("SAILOR02_Walk_near_player");
			Wp:SetGlobalVariable(TUT_VAR_QRF_PETTY02_STATE, 1);
		}
		endif;
		if Wp:GetGlobalVariable(TUT_VAR_QRF_PETTY02_STATE) == 1 then
			Wp:PlayAnimationAndWait("SAILOR02_Wait_near_door")
		endif;
		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY02_Sleeping(wp)
{
	precond
	{
		!((Wp:GetGunType(SLOT_A01) == CANNON_Vierling and Wp:IsGunManned(SLOT_A01)) or (Wp:GetGunType(SLOT_A01) != CANNON_Vierling and Wp:IsGunManned(SLOT_A02))) and !(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
############## Uncomment for optional beard #####################
		# Wp:SetBodyPartVisibility("object1_Barba_Cap18", 1);
#################################################################		

		if (Wp:GetGunType(SLOT_A01) == CANNON_Vierling) then
			Wp:UnmanTheGun(SLOT_A01, ROLE_ELEV)
		else
			Wp:UnmanTheGun(SLOT_A02, ROLE_GUNNER)
		endif;
		Wp:Teleport("QRF_Petty_02");
		Wp:SetBodyPartVisibility("A_Hat01", 0);
		Wp:SetBodyPartVisibility("A_Torso06", 0); 
		Wp:SetBodyPartVisibility("A_Torso07", 1);
		Wp:PlayAnimationAndWait( "QRF_Petty_02_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_1to2" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_sleep02" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_sleep02" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_2to1" );
		Wp:PlayAnimationAndWait( "QRF_Petty_02_sleep01" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_AtoC" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle01" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle04" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle05" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle02_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 1);
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle02_part02" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle03_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "QRF_Petty02_idle03_part02" );
		Wp:PlayAnimationAndWait( "QRF_Petty02_CtoA" );

		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY02_Manning_A01gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A01) == CANNON_Vierling and Wp:IsGunManned(SLOT_A01) and !(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "QRF_Petty02_leave_rush" );
		Wp:Teleport("WP_A01_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso06", 1); 
		Wp:SetBodyPartVisibility("A_Torso07", 0);
		ManTheGun(SLOT_A01, "Vierling_UP_DW", ROLE_ELEV)

		Wp:ScriptCompleted();
	}
}

strategy QRF_PETTY02_Manning_A02gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A01) != CANNON_Vierling and Wp:IsGunManned(SLOT_A02) and !(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "QRF_Petty02_leave_rush" );
		Wp:Teleport("WP_A02_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso06", 1); 
		Wp:SetBodyPartVisibility("A_Torso07", 0);
		if (Wp:GetGunType(SLOT_A02) == CANNON_20mm_C30) then
			Wp:ManTheGun(SLOT_A02, "20mm_C30_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A02) == CANNON_20mm_C30_2) then
			Wp:ManTheGun(SLOT_A02, "20mm_C30_2_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A02) == CANNON_20mm_C38_Twin) then
			Wp:ManTheGun(SLOT_A02, "20mm_C38_twin_UP_DW", ROLE_GUNNER)
		endif;
		if (Wp:GetGunType(SLOT_A02) == CANNON_20mm_C38_Twin_Shield) then
			Wp:ManTheGun(SLOT_A02, "20mm_C38_shield_twin_UP_DW", ROLE_GUNNER)
		endif;		
		Wp:ScriptCompleted();
	}
}

strategy RR_RADIO_IDLE01(wp)
{
	strategies
	{
		RR_RADIO_TUTORIAL,
		
		# old idle action

		RR_RADIO_Nothing_to_do,

		#  these 3 strategies do exatcly the same thing, 
		# but with a different condition.
		#
		#  they probabily need to be like this so they can 
		# be customized in the near future.

		RR_RADIO_Entering,
		RR_RADIO_In_use,
		RR_RADIO_Exiting		
	}
}

strategy RR_RADIO_TUTORIAL(wp)
{
	precond
	{
		Wp:GetRadarState() == 0 and Wp:IsTutorial() and !Wp:IsBunkerState()
	}
	action
	{
		if Wp:GetGlobalVariable(TUT_VAR_RR_RADIO_STATE) == 0 then
		{
			Wp:PlaySoundWithLipsync("RadioMan\Normal\TTM_RR_RADIO_D01_M8", 28.733);
			Wp:PlaySoundWithLipsync("RadioMan\Normal\TTM_RR_RADIO_D01_M9", 32.267);
			Wp:SetGlobalVariable(TUT_VAR_RR_RADIO_STATE, 1);
		}
		endif;
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Idle02" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_GRAMOPHONE" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_RADIO" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part03" );
		Wp:Goto( "RR_RADIO_B" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnob_Listen" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnobLeft" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part03" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnobRight" );
		Wp:Goto( "RR_RADIO_C" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_LookAround01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle02" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle03" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle04" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle05" );
		Wp:Goto( "RR_RADIO_A" );
		Wp:ScriptCompleted();
	}
}

# idle strategy
strategy RR_RADIO_Nothing_to_do(wp)
{
	precond
	{
		# if hydrophone is not used
		Wp:GetRadarState() == 0 and !(Wp:IsTutorial() and !Wp:IsBunkerState())
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Beard_CAP04", 1);
##################################################################

		Wp:PlayAnimationAndWait( "RR_RADIO_A_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Idle02" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_GRAMOPHONE" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_RADIO" );
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_A_Write01_Part03" );
		Wp:Goto( "RR_RADIO_B" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnob_Listen" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnobLeft" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part03" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnobRight" );
		Wp:Goto( "RR_RADIO_C" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle02" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle03" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle04" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle05" );
		Wp:Goto( "RR_RADIO_A" );

		Wp:ScriptCompleted();
	}
}

# captain is entering radar
strategy RR_RADIO_Entering(wp)
{
	precond
	{
		# if radar will be used by captain
		# "entering radar" - state
		Wp:GetRadarState() == 1
	}
	strategies
	{
		RR_RADIO_MoveToB,
		RR_RADIO_DoIdle
	}
}

# captain is at the hydrophone
strategy RR_RADIO_In_use(wp)
{
	precond
	{
		# if captain is at the radar, and leaving
		# "exiting radar" - state
		Wp:GetRadarState() == 2
	}
	strategies
	{
		RR_RADIO_MoveToB,
		RR_RADIO_DoIdle
	}
}

# captain is at the hydrophone
strategy RR_RADIO_Exiting(wp)
{
	precond
	{
		# if captain is at the hydrophone, and leaving
		# "exiting hydrophone" - state
		Wp:GetRadarState() == 3
	}
	strategies
	{
		RR_RADIO_MoveToB,
		RR_RADIO_DoIdle
	}
}

strategy RR_RADIO_MoveToB(wp)
{
	precond
	{
		Wp:IsCurrentWaypoint( "RR_RADIO_A" ) == 1
	}
	action
	{
		Wp:Goto( "RR_RADIO_B" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnob_Listen" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part03" );
		Wp:Goto( "RR_RADIO_C" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_LookAround01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle01" );
		
		Wp:ScriptCompleted();
	}
}

strategy RR_RADIO_DoIdle(wp)
{
	precond
	{
		Wp:IsCurrentWaypoint( "RR_RADIO_A" ) == 0
	}
	strategies
	{
		RR_RADIO_DoIdle_B,
		RR_RADIO_DoIdle_C
	}
}

strategy RR_RADIO_DoIdle_B(wp)
{
	precond
	{
		Wp:IsCurrentWaypoint( "RR_RADIO_B" ) == 1
	}
	action
	{
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Idle01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_TurnKnob_Listen" );
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part01" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio", 1);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part02" );
		Wp:SetBodyPartVisibility("object2_Pencil_radio_radio", 0);
		Wp:PlayAnimationAndWait( "RR_RADIO_B_Write01_Part03" );
		Wp:Goto( "RR_RADIO_C" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_LookAround01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle01" );	
		
		Wp:ScriptCompleted();
	}
}

strategy RR_RADIO_DoIdle_C(wp)
{
	precond
	{
		Wp:IsCurrentWaypoint( "RR_RADIO_C" ) == 1
	}
	action
	{
		Wp:PlayAnimationAndWait( "RR_RADIO_C_LookAround01" );
		Wp:PlayAnimationAndWait( "RR_RADIO_C_Idle01" );	
		
		Wp:ScriptCompleted();
	}
}

strategy RR_HIDRO_IDLE01(wp)
{
	strategies
	{
		# old idle action
		RR_HIDRO_Nothing_to_do_surfaced,
		RR_HIDRO_Nothing_to_do_submerged,

		#  these 3 strategies do exatcly the same thing, 
		# but with a different condition.
		#
		#  they probabily need to be like this so they can 
		# be customized in the near future.

		RR_HIDRO_Entering,
		RR_HIDRO_In_use,
		RR_HIDRO_Exiting
	}
}

# idle strategy
strategy RR_HIDRO_Nothing_to_do_surfaced(wp)
{
	precond
	{
		# if hydrophone is not used
		Wp:GetHydrophoneState() == 0 and !Wp:IsSubmerged()
	}
	action
	{
		Wp:Goto( "RR_HIDRO02" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_C_Idle11" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_C_Idle12" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_C_Idle13" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle08" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_D_Idle14" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_D_Idle15" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_D_Idle16" );
	
		Wp:ScriptCompleted();
	}
}
		
strategy RR_HIDRO_Nothing_to_do_submerged(wp)
{
	precond
	{
		# if hydrophone is not used
		Wp:GetHydrophoneState() == 0 and Wp:IsSubmerged()
	}
	action
	{
		Wp:Goto( "RR_HIDRO" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle10" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle02" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle03" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle04" );
		# Wp:PlayAnimationAndWait( "RR_HIDRO_Drop_headphones_part01" );
		# Wp:SetBodyPartVisibility("object1_headphone01", 1);
		# Wp:SetBodyPartVisibility("object2_headphone02", 0);
		# Wp:PlayAnimationAndWait( "RR_HIDRO_Drop_headphones_part02" );
		# Wp:SetBodyPartVisibility("object1_headphone01", 0);
		# Wp:PlayAnimationAndWait( "RR_HIDRO_Drop_headphones_part03" );
		# Wp:SetBodyPartVisibility("object1_headphone01", 1);
		# Wp:PlayAnimationAndWait( "RR_HIDRO_Drop_headphones_part04" );
		# Wp:SetBodyPartVisibility("object1_headphone01", 0);
		# Wp:SetBodyPartVisibility("object2_headphone02", 1);
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle05" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle06" );
		
		Wp:ScriptCompleted();
	}
}

# captain is entering hydrophone
strategy RR_HIDRO_Entering(wp)
{
	precond
	{
		# if hydrophone will be used by captain
		# "entering hydrophone" - state
		Wp:GetHydrophoneState() == 1
	}
	action
	{
		# if on "RR_HIDRO", go to "RR_HIDRO02" to 
		# make room for the captain
		Wp:Goto( "RR_HIDRO02" );

		# do idle stuff
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle02" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle03" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle04" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle05" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle06" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle10" );

		Wp:ScriptCompleted();
	}
}

# captain is at the hydrophone
strategy RR_HIDRO_In_use(wp)
{
	precond
	{
		# if captain is at the hydrophone, and leaving
		# "exiting hydrophone" - state
		Wp:GetHydrophoneState() == 2
	}
	action
	{
		# if on "RR_HIDRO", go to "RR_HIDRO02" to 
		# make room for the captain
		Wp:Goto( "RR_HIDRO02" );

		# do idle stuff
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle02" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle03" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle04" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle05" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle06" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle10" );

		Wp:ScriptCompleted();
	}
}

# captain is at the hydrophone
strategy RR_HIDRO_Exiting(wp)
{
	precond
	{
		# if captain is at the hydrophone, and leaving
		# "exiting hydrophone" - state
		Wp:GetHydrophoneState() == 3
	}
	action
	{
		# if on "RR_HIDRO", go to "RR_HIDRO02" to 
		# make room for the captain
		Wp:Goto( "RR_HIDRO02" );

		# do idle stuff
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle02" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle03" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle04" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle05" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle06" );
		Wp:PlayAnimationAndWait( "RR_HIDRO_Idle10" );

		Wp:ScriptCompleted();
	}
}
QR2:

Code:
# Crew_Idle_Actions_QR2.aix
# Stock script modified by MightyFine Crew Mod 1.2  03/21/2010
# Edited by gap for The Wolves of Steel Mega Mod on 03/01/2016

strategy SQ_COOK_IDLE01(wp)
{
	strategies
	{
		SQ_COOK_STEALING_FOOD_SCENE,
		SQ_COOK_NORMAL,
		SQ_COOK_DAMAGE_TAKEN,
		SQ_COOK_SILENT_RUNNING		
	}
}

strategy SQ_COOK_STEALING_FOOD_SCENE(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) > 0 and Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) > 0) or (Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) == 2)
	}
	action
	{
		Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 2 );
		if Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) == 1 then
			Wp:DoNothing()
		else
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_B_TALK_BOSUN" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_CHOPPING01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_THREATEN_BOSUN" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_HIT_BOSUN" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_LAUGH_AT_BOSUN" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part02" );
			Wp:SetBodyPartVisibility("object2_spoon", 1);
			Wp:Goto( "SQ_COOK_A" );
			Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 0 );
		}
		endif;
		Wp:ScriptCompleted();
	}
}

strategy SQ_COOK_NORMAL(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) != 2) and (!Wp:IsCrewState(DMG_TKN) or !Wp:IsCurrentWaypoint( "SQ_COOK_A" ) or !Wp:IsCurrentWaypoint( "SQ_COOK_B" )) and (!Wp:IsCrewState(SIL_RUN) or !Wp:IsCurrentWaypoint( "SQ_COOK_B" ))
	}
	action
	{
		if Wp:IsCharacterPosture(D) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_D2B_Part01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_D2B_Part02" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Dance01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part02" );
			Wp:SetBodyPartVisibility("object2_spoon", 1);
			Wp:Goto( "SQ_COOK_A" );
		}
		endif;
		if !Wp:IsCharacterPosture(D) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_A_StirPot01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_StirPotDancing01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A2B_Part01" );
			Wp:SetBodyPartVisibility("object2_spoon", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_A2B_Part02" );
			Wp:SetBodyPartVisibility("object2_knife", 1);

			Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 1 );
			Wp:Goto( "SQ_COOK_B" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_CHOPPING01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Dance01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_CHOPPING01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Dance01" );
			Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 0 );

			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part02" );
			Wp:SetBodyPartVisibility("object2_spoon", 1);
			Wp:Goto( "SQ_COOK_A" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_StirPotDancing01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_Taste01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_StirPot01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_DANCE02" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_TASTE_BURN01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_ADJUST_HEAT" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_TASTE_ADD_SALT" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_TASTE_DELICIOUS" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A_DANCE01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_A2C_Part01" );
			Wp:SetBodyPartVisibility("object2_spoon", 0);
			Wp:Goto( "SQ_COOK_C" );
			Wp:PlayAnimationAndWait( "SQ_COOK_C_LookLeft" );
			Wp:PlayAnimationAndWait( "SQ_COOK_C_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_C2B_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 1);

			Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 1 );
			Wp:Goto( "SQ_COOK_B" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Dance01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Dance01" );
			Wp:SetGlobalVariable( VAR_SQ_COOK_STATE, 0 );

			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_B2A_Part02" );
			Wp:SetBodyPartVisibility("object2_spoon", 1);
			Wp:Goto( "SQ_COOK_A" );
		}
		endif;

		Wp:ScriptCompleted();
	}
}

strategy SQ_COOK_SILENT_RUNNING(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) != 2) and Wp:IsCrewState(SIL_RUN) and Wp:IsCurrentWaypoint( "SQ_COOK_B" )
	}
	action
	{
		if Wp:IsCharacterPosture(B) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_B2D_Part01" );
			Wp:SetBodyPartVisibility("object2_knife", 0);
			Wp:PlayAnimationAndWait( "SQ_COOK_B2D_Part02" );
		}
		endif;
		if Wp:IsCharacterPosture(D) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_D_Idle01" );
			Wp:PlayAnimationAndWait( "SQ_COOK_D_Idle02" );
			Wp:PlayAnimationAndWait( "SQ_COOK_D_Idle03" );
		}
		endif;
		
		Wp:ScriptCompleted();
	}	
}

strategy SQ_COOK_DAMAGE_TAKEN(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) != 2) and Wp:IsCrewState(DMG_TKN) and !Wp:IsCrewState(SIL_RUN) and (Wp:IsCurrentWaypoint( "SQ_COOK_A" ) or Wp:IsCurrentWaypoint( "SQ_COOK_B" ) or Wp:IsCurrentWaypoint( "SQ_COOK_D" ))
	}
	action
	{
		if Wp:IsCurrentWaypoint( "SQ_COOK_A" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_A_Explosion_Event01" );
			Wp:DeactivateCrewState(DMG_TKN);
		}
		endif;
		if Wp:IsCurrentWaypoint( "SQ_COOK_B" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_B_explosion_event02" );
			Wp:PlayAnimationAndWait( "SQ_COOK_B_Idle01" );
			Wp:Goto( "SQ_COOK_A" );			
			Wp:DeactivateCrewState(DMG_TKN);
		}
		endif;
		if Wp:IsCurrentWaypoint( "SQ_COOK_D" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_COOK_D_explosion_event03" );
			Wp:DeactivateCrewState(DMG_TKN);
		}
		endif;
		
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED01_IDLE01(wp)
{
	strategies
	{
		SQ_BED01_Sleeping,
		SQ_BED01_Manning_A02gun,
		SQ_BED01_Manning_deck_gun
	}
}

strategy SQ_BED01_Sleeping(wp)
{
	precond
	{
		!((Wp:GetGunType(SLOT_A02) == CANNON_Vierling and Wp:IsGunManned(SLOT_A02)) or (Wp:GetGunType(SLOT_A02) != CANNON_Vierling and Wp:IsGunManned(SLOT_M01)))
	}
	action
	{
############## Uncomment for optional beard #####################
		# Wp:SetBodyPartVisibility("object1_Barba_Cap18", 1);
#################################################################
		
		if (Wp:GetGunType(SLOT_A02) == CANNON_Vierling) then
			Wp:UnmanTheGun(SLOT_A02, ROLE_TRAV)
		else
			Wp:UnmanTheGun(SLOT_M01, ROLE_TRAV)
		endif;		
		Wp:Teleport("SQ_BED01");
		Wp:SetBodyPartVisibility("A_Hat01", 0); 
		Wp:SetBodyPartVisibility("A_Torso05", 0); 
		Wp:SetBodyPartVisibility("A_Torso07", 1);
		Wp:PlayAnimationAndWait( "SQ_BED01_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_A_Scratch01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_A2B_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED01_B_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_B_Dream01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_B2A_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED01_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_AtoC" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle04" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle01" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle05" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle02_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 1);
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle02_part02" );
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle03_part01" );
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED01_idlle03_part02" );
		Wp:PlayAnimationAndWait( "SQ_BED01_CtoA" );
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED01_Manning_A02gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A02) == CANNON_Vierling and Wp:IsGunManned(SLOT_A02)
	}
	action
	{
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED01_leave_rush" );
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso05", 1); 
		Wp:SetBodyPartVisibility("A_Torso07", 0);
		Wp:Teleport("WP_A02_GUN");
		Wp:ManTheGun(SLOT_A02, "Vierling_L_R", ROLE_TRAV);
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED01_Manning_deck_gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A02) != CANNON_Vierling and Wp:IsGunManned(SLOT_M01)
	}
	action
	{
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED01_leave_rush" );
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso05", 1); 
		Wp:SetBodyPartVisibility("A_Torso07", 0);
		Wp:Teleport("WP_DECK_GUN");
		Wp:ManTheGun(SLOT_M01, "88mm_L_R", ROLE_TRAV);
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED02_IDLE01(wp)
{
	strategies
	{
		SQ_BED02_Sleeping,
		SQ_BED02_Manning_A02gun,
		SQ_BED02_Manning_deck_gun
	}
}

strategy SQ_BED02_Sleeping(wp)
{
	precond
	{
		!((Wp:GetGunType(SLOT_A02) == CANNON_Vierling and Wp:IsGunManned(SLOT_A02)) or (Wp:GetGunType(SLOT_A02) != CANNON_Vierling and Wp:IsGunManned(SLOT_M01)))
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Barba_Cap06", 1);
##################################################################

		if (Wp:GetGunType(SLOT_A02) == CANNON_Vierling) then
			Wp:UnmanTheGun(SLOT_A02, ROLE_ELEV)
		else
			Wp:UnmanTheGun(SLOT_M01, ROLE_ELEV)
		endif;		
		Wp:Teleport("SQ_BED02");
		Wp:SetBodyPartVisibility("A_Hat01", 0); 
		Wp:SetBodyPartVisibility("A_Torso03", 1); 
		Wp:SetBodyPartVisibility("A_Torso07", 0);
		Wp:SetBodyPartVisibility("A_Pants02", 1); 
		Wp:SetBodyPartVisibility("A_Pants01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED02_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_A2B_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED02_B_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_B_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_B2A_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED02_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_AtoC" );
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle01" );
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle02_01" );
		Wp:SetBodyPartVisibility("object2_book01", 1);
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle02_02" );
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle03_01" );
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle03_02" );
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle04" );
		Wp:PlayAnimationAndWait( "SQ_BED02_idlle05" );
		Wp:PlayAnimationAndWait( "SQ_BED02_CtoA" );

		Wp:ScriptCompleted();
	}
}

strategy SQ_BED02_Manning_A02gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A02) == CANNON_Vierling and Wp:IsGunManned(SLOT_A02)
	}
	action
	{
		Wp:PlayAnimationAndWait( "SQ_BED02_leave_rush" );
		Wp:Teleport("WP_A02_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso03", 0); 
		Wp:SetBodyPartVisibility("A_Torso07", 1);
		Wp:SetBodyPartVisibility("A_Pants02", 0); 
		Wp:SetBodyPartVisibility("A_Pants01", 1);
		Wp:ManTheGun(SLOT_A02, "Vierling_UP_DW", ROLE_ELEV);
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED02_Manning_deck_gun(wp)
{
	precond
	{
		Wp:GetGunType(SLOT_A02) != CANNON_Vierling and Wp:IsGunManned(SLOT_M01)
	}
	action
	{
		Wp:PlayAnimationAndWait( "SQ_BED02_leave_rush" );
		Wp:Teleport("WP_DECK_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Torso03", 0); 
		Wp:SetBodyPartVisibility("A_Torso07", 1);
		Wp:SetBodyPartVisibility("A_Pants02", 0); 
		Wp:SetBodyPartVisibility("A_Pants01", 1);
		Wp:ManTheGun(SLOT_M01, "88mm_UP_DW", ROLE_ELEV);
		Wp:ScriptCompleted();
	}
}

strategy SQ_BED03_IDLE01(wp)
{
	strategies
	{
		SQ_BED03_Sleeping,
		SQ_BED03_Manning_Flakgun
	}
}

strategy SQ_BED03_Sleeping(wp)
{
	precond
	{
		!Wp:IsGunManned(SLOT_S01)
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Barba_Cap18", 1);
##################################################################

		Wp:UnmanTheGun(SLOT_S01, ROLE_ELEV);
		Wp:Teleport("SQ_BED03");
		Wp:SetBodyPartVisibility("A_Hat01", 0); 
		Wp:PlayAnimationAndWait( "SQ_BED03_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_A2B_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED03_B_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_B_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_B2A_Turn" );
		Wp:PlayAnimationAndWait( "SQ_BED03_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_AtoC" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle02_part01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle02_part02" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle03_part01" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle03_part02" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle04" );
		Wp:PlayAnimationAndWait( "SQ_BED03_idle05" );
		Wp:PlayAnimationAndWait( "SQ_BED03_CtoA" );

		Wp:ScriptCompleted();
	}
}

strategy SQ_BED03_Manning_Flakgun(wp)
{
	precond
	{
		Wp:IsGunManned(SLOT_S01)
	}
	action
	{
		Wp:PlayAnimationAndWait( "SQ_BED03_leave_rush" );
		Wp:Teleport("WP_FLAK_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 

		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmM) then
			Wp:ManTheGun(SLOT_S01, "37mmM_UP_DW", ROLE_ELEV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmSA) then
			Wp:ManTheGun(SLOT_S01, "37mmSA_UP_DW", ROLE_ELEV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmTSA) then
			Wp:ManTheGun(SLOT_S01, "37mmTSA_UP_DW", ROLE_ELEV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_Vierling) then
			Wp:ManTheGun(SLOT_S01, "Vierling_UP_DW", ROLE_ELEV)
		endif;

		Wp:ScriptCompleted();
	}
}

strategy SQ_BED04_IDLE01(wp)
{
	strategies
	{
		SQ_BED04_Sleeping,
		SQ_BED04_Manning_Flakgun
	}
}

strategy SQ_BED04_Sleeping(wp)
{
	precond
	{
		!Wp:IsGunManned(SLOT_S01)
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Beard_CAP04", 1);
##################################################################

		Wp:UnmanTheGun(SLOT_S01, ROLE_TRAV);
		Wp:Teleport("SQ_BED04");
		Wp:SetBodyPartVisibility("A_Hat01", 0); 
		Wp:SetBodyPartVisibility("A_Pants02", 1); 
		Wp:SetBodyPartVisibility("A_Pants01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED04_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Scratch01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_FallAsleep" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Sleep01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Sleep01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_WakeUp01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_AtoC" );
		Wp:PlayAnimationAndWait( "SQ_BED04_idlle01" );
		Wp:PlayAnimationAndWait( "SQ_BED04_idle04" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Pik_Up_Book_PART01" );
		Wp:SetBodyPartVisibility("object2_book01", 1);
		Wp:PlayAnimationAndWait( "SQ_BED04_Pik_Up_Book_PART02" );
		Wp:PlayAnimationAndWait( "SQ_BED04_Put_Down_Book_PART01" );
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED04_Put_Down_Book_PART02" );
		Wp:PlayAnimationAndWait( "SQ_BED04_idlle05" );
		Wp:PlayAnimationAndWait( "SQ_BED04_CtoA" );



		Wp:ScriptCompleted();
	}
}

strategy SQ_BED04_Manning_Flakgun(wp)
{
	precond
	{
		Wp:IsGunManned(SLOT_S01)
	}
	action
	{
		Wp:SetBodyPartVisibility("object2_book01", 0);
		Wp:PlayAnimationAndWait( "SQ_BED04_leave_rush" );
		Wp:Teleport("WP_FLAK_GUN");
		Wp:SetBodyPartVisibility("A_Hat01", 1); 
		Wp:SetBodyPartVisibility("A_Pants02", 0); 
		Wp:SetBodyPartVisibility("A_Pants01", 1);

		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmM) then
			Wp:ManTheGun(SLOT_S01, "37mmM_L_R", ROLE_TRAV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmSA) then
			Wp:ManTheGun(SLOT_S01, "37mmSA_L_R", ROLE_TRAV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_37mmTSA) then
			Wp:ManTheGun(SLOT_S01, "37mmTSA_L_R", ROLE_TRAV)
		endif;
		if (Wp:GetGunType(SLOT_S01) == CANNON_Vierling) then
			Wp:ManTheGun(SLOT_S01, "Vierling_L_R", ROLE_TRAV)
		endif;

		Wp:ScriptCompleted();
	}
}

strategy SQ_BOSUN_IDLE01(wp)
{
	strategies
	{
		SQ_BOSUN_STEALING_FOOD_SCENE,
		SQ_BOSUN_NORMAL,
		SQ_BOSUN_DAMAGE_TAKEN,
		SQ_BOSUN_PROXIMITY_EXPLOSIONS,
		SQ_BOSUN_HUNT
	}
}

strategy SQ_BOSUN_STEALING_FOOD_SCENE(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) > 0 and Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) > 0) or (Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) == 2)
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Beard_CAP04", 1);
##################################################################

		Wp:SetGlobalVariable( VAR_SQ_BOSUN_STATE, 2 );
		if Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) == 1 then
			Wp:DoNothing()
		else
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_Talk02" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_taking_food01" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_eating" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_taking_food02" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_pull_hand" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_taking_food01" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_eating" );
			Wp:Goto( "SQ_BOSUN_B" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
			Wp:Goto( "SQ_BOSUN_A" );
			Wp:SetGlobalVariable( VAR_SQ_BOSUN_STATE, 0 );
		}
		endif;
		Wp:ScriptCompleted();
	}
}

strategy SQ_BOSUN_NORMAL(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) != 2) and (!Wp:IsCrewState(DMG_TKN|PROX_EXPL) or !Wp:IsCurrentWaypoint( "SQ_BOSUN_B" ) or !Wp:IsCurrentWaypoint( "SQ_BOSUN_C" )) and (!Wp:IsCrewState(HUNTER|HUNTED) or !Wp:IsCurrentWaypoint( "SQ_BOSUN_A" ))
	}
	action
	{
############## Uncomment for optional beard ######################
		# Wp:SetBodyPartVisibility("object1_Beard_CAP04", 1);
##################################################################

		Wp:PlayAnimationAndWait( "SQ_BOSUN_A_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_A_LookLeft01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_A_LookRight01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_AtoD_part01" );
		Wp:SetBodyPartVisibility("object2_Pencil02", 1);
		Wp:SetBodyPartVisibility("object1_letter02", 1);
		Wp:PlayAnimationAndWait( "SQ_BOSUN_AtoD_part02" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_Poetry01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_Poetry02" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_Poetry03" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_Poetry01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_Poetry04" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_DtoA_part01" );
		Wp:SetBodyPartVisibility("object1_letter02", 0);
		Wp:SetBodyPartVisibility("object2_Pencil02", 0);
		Wp:PlayAnimationAndWait( "SQ_BOSUN_DtoA_part02" );

		Wp:Goto( "SQ_BOSUN_B" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
		if Wp:GetGlobalVariable( VAR_SQ_COOK_STATE ) == 0 then
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_idle01" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_idle02" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_idle03" );
		}
		endif;
		Wp:SetGlobalVariable( VAR_SQ_BOSUN_STATE, 1);

		Wp:Goto( "SQ_BOSUN_C" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_C_Idle01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_C_Talk01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_C_Idle01" );
		Wp:SetGlobalVariable( VAR_SQ_BOSUN_STATE, 0 );

		Wp:Goto( "SQ_BOSUN_B" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
		Wp:Goto( "SQ_BOSUN_A" );

		Wp:ScriptCompleted();
	}
}

strategy SQ_BOSUN_DAMAGE_TAKEN(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) != 2) and Wp:IsCrewState(DMG_TKN) and (Wp:IsCurrentWaypoint( "SQ_BOSUN_B" ) or Wp:IsCurrentWaypoint( "SQ_BOSUN_C" )) and !Wp:IsCrewState(PROX_EXPL)
	}
	action
	{
		Wp:SetBodyPartVisibility("object1_letter02", 0);
		Wp:SetBodyPartVisibility("object2_Pencil02", 0);
		if Wp:IsCurrentWaypoint( "SQ_BOSUN_B" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_explosion_event01" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
			Wp:Goto( "SQ_BOSUN_A" );
			Wp:DeactivateCrewState(DMG_TKN);
		}
		endif;
		if Wp:IsCurrentWaypoint( "SQ_BOSUN_C" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_explosion_event04" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_C_Idle01" );
			Wp:Goto( "SQ_BOSUN_B" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
			Wp:Goto( "SQ_BOSUN_A" );
			Wp:DeactivateCrewState(DMG_TKN);
		}
		endif;
		Wp:ScriptCompleted();
	}
}

strategy SQ_BOSUN_HUNT(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) != 2) and !Wp:IsCrewState(DMG_TKN|PROX_EXPL) and Wp:IsCurrentWaypoint( "SQ_BOSUN_A" ) and Wp:IsCrewState(HUNTER|HUNTED)
	}
	action
	{
		Wp:SetBodyPartVisibility("object1_letter02", 0);
		Wp:SetBodyPartVisibility("object2_Pencil02", 0);
		Wp:PlayAnimationAndWait( "SQ_BOSUN_worry01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_worry02" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_worry01" );
		Wp:PlayAnimationAndWait( "SQ_BOSUN_worry02" );
		Wp:ScriptCompleted();
	}
}

strategy SQ_BOSUN_PROXIMITY_EXPLOSIONS(wp)
{
	precond
	{
		(Wp:GetGlobalVariable( VAR_SQ_BOSUN_STATE ) != 2) and Wp:IsCrewState(PROX_EXPL) and (Wp:IsCurrentWaypoint( "SQ_BOSUN_B" ) or Wp:IsCurrentWaypoint( "SQ_BOSUN_C" ))
	}
	action
	{
		Wp:SetBodyPartVisibility("object1_letter02", 0);
		Wp:SetBodyPartVisibility("object2_Pencil02", 0);
		if Wp:IsCurrentWaypoint( "SQ_BOSUN_B" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_explosion_event02" );
			Wp:Goto( "SQ_BOSUN_A" );
			Wp:DeactivateCrewState(PROX_EXPL);
		}
		endif;
		if Wp:IsCurrentWaypoint( "SQ_BOSUN_C" ) then
		{
			Wp:PlayAnimationAndWait( "SQ_BOSUN_explosion_event04" );
			Wp:Goto( "SQ_BOSUN_B" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookLeft" );
			Wp:PlayAnimationAndWait( "SQ_BOSUN_B_LookAround01" );
			Wp:Goto( "SQ_BOSUN_A" );
			Wp:DeactivateCrewState(PROX_EXPL);
		}
		endif;
		
		Wp:ScriptCompleted();
	}
}
Quote:
Originally Posted by vdr1981 View Post
Squid launcher? You're planning a new mod ?
Yep:

http://www.subsim.com/radioroom/show...89#post2383289

Not exactly my mod: that's a project of LGN1 for SHIII. I offered to create 3d models for it, but once it is ready I don't think LGN1 will have problems if we ask to port the mod to SH5
__________________
_____________________
|May the Force be with you!|
...\/
gap is offline   Reply With Quote