diff --git a/vasl_templates/webapp/data/default-template-pack/national-capabilities.json b/vasl_templates/webapp/data/default-template-pack/national-capabilities.json
index 259807b..6cd1042 100644
--- a/vasl_templates/webapp/data/default-template-pack/national-capabilities.json
+++ b/vasl_templates/webapp/data/default-template-pack/national-capabilities.json
@@ -108,6 +108,26 @@
"hob_drm": "+1 DRM",
"grenades": "Smoke"
},
+"free-french": {
+ "th_color": "Black",
+ "oba": [ "8B", "2R" ], "oba_access": "≤ 2",
+ "hob_drm": "-1 DRM",
+ "grenades": "{? 01/1944- | SMOKE | Smoke | SMOKE44+ ?}",
+ "notes": [
+ "{? 12/1943- | Assault Fire | No Assault Fire | Assault Fire12/43+ ?}",
+ "{? 12/1943-05/1945 | Inherent Crews as British for Morale | | Inherent Crews as British for Morale12/43-5/45 ?}",
+ { "caption": "Elite & 1st Line", "notes": [
+ "Cowering NA"
+ ] },
+ { "caption": "No Captured Use penalty", "notes": [
+ "U.S. MTR/BAZ",
+ "Vichy French SW",
+ "{? -11/1943 | British (f) vehicles/Guns/SW | | British (f) vehicles/Guns/SW -11/43 ?}",
+ "{? 12/1943-05/1945 | British/French (a)/(f) SW | | British/French (a)/(f) SW12/43-5/45 ?}"
+ ] }
+ ]
+},
+
"italian": {
"th_color": "Red",
diff --git a/vasl_templates/webapp/static/nat_caps.js b/vasl_templates/webapp/static/nat_caps.js
index 3080be3..7a5f1ac 100644
--- a/vasl_templates/webapp/static/nat_caps.js
+++ b/vasl_templates/webapp/static/nat_caps.js
@@ -140,7 +140,7 @@ function get_national_capabilities( nat, is_kfw )
else if ( ["british","british~canadian","british~newzealand"].indexOf( nat ) !== -1 )
nat = "kfw-bcfk" ;
}
- else if ( nat === "free-french" || nat.substring(0,8) === "british~" )
+ else if ( nat.substring(0,8) === "british~" )
nat = "british" ;
var nat_caps = gTemplatePack["national-capabilities"][ nat ] ;
if ( nat_caps )
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1940.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1940.txt
index a675ccf..af450e8 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1940.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1940.txt
@@ -5,14 +5,12 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* No Assault Fire
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British (f) vehicles/Guns/SW
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1941.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1941.txt
index c468319..fde8f26 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1941.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1941.txt
@@ -5,14 +5,12 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* No Assault Fire
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British (f) vehicles/Guns/SW
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1942.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1942.txt
index ea9dd17..fcf230b 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1942.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1942.txt
@@ -5,14 +5,12 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* No Assault Fire
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British (f) vehicles/Guns/SW
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1943.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1943.txt
index c6174ee..64945d1 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1943.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1943.txt
@@ -5,14 +5,12 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* No Assault Fire
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British (f) vehicles/Guns/SW
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1944.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1944.txt
index d38681c..1a67d16 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1944.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1944.txt
@@ -5,14 +5,13 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* Assault Fire
+* Inherent Crews as British for Morale
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British/French (a)/(f) SW
diff --git a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1945.txt b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1945.txt
index 5330066..4cf0e66 100644
--- a/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1945.txt
+++ b/vasl_templates/webapp/tests/fixtures/nat-caps/free-french/1945.txt
@@ -5,14 +5,13 @@ HoB: -1 DRM
Black TH#
OBA: 8B 2R (access: ≤ 2)
+* Assault Fire
+* Inherent Crews as British for Morale
+
Elite & 1st Line:
* Cowering NA
-ANZAC:
-* Stealthy (unless Green)
-
-Gurkha:
-* -1 CC DRM
-* Disrupt & RtPh Surrender NA
-* Commando (unless Green)
-* Stealthy
+No Captured Use penalty:
+* U.S. MTR/BAZ
+* Vichy French SW
+* British/French (a)/(f) SW
diff --git a/vasl_templates/webapp/tests/test_national_capabilities.py b/vasl_templates/webapp/tests/test_national_capabilities.py
index 4c1be24..f043e69 100644
--- a/vasl_templates/webapp/tests/test_national_capabilities.py
+++ b/vasl_templates/webapp/tests/test_national_capabilities.py
@@ -259,6 +259,18 @@ def test_time_based_national_capabilities( webapp, webdriver ):
"Commissars NA", "Riders OK"
] )
+ # test the Free French national capabilities
+ check_notes( "free-french", "ETO", 11, 1943, [
+ "No Assault Fire",
+ "British (f) vehicles/Guns/SW", "!British/French (a)/(f) SW",
+ "!Inherent Crews as British for Morale"
+ ] )
+ check_notes( "free-french", "ETO", 12, 1943, [
+ "Assault Fire",
+ "!British (f) vehicles/Guns/SW", "British/French (a)/(f) SW",
+ "Inherent Crews as British for Morale"
+ ] )
+
# test the Finnish national capabilities
# NOTE: We should test for Inherent PF here, but it's in a nested sub-list (more trouble than it's worth).
check_oba( "finnish", "ETO", 12, 1943, "8B", "3R", plentiful=True )