From 634869f18db85374334f6226448cba6998fde166 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Sat, 24 Feb 2024 09:35:15 +0200
Subject: [PATCH 37/37] Add Luhansk nation

Ruleset by _Rorr404, with minor adjustment by me

See RM #274

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 data/default/nationlist.ruleset     |   1 +
 data/flags/Makefile.am              |   5 ++
 data/flags/luhansk-large.png        | Bin 0 -> 299 bytes
 data/flags/luhansk-shield-large.png | Bin 0 -> 274 bytes
 data/flags/luhansk-shield.png       | Bin 0 -> 249 bytes
 data/flags/luhansk.png              | Bin 0 -> 277 bytes
 data/flags/luhansk.svg              |   1 +
 data/misc/flags-large.spec          |   1 +
 data/misc/flags.spec                |   2 +
 data/misc/shields-large.spec        |   1 +
 data/misc/shields.spec              |   1 +
 data/nation/Makefile.am             |   1 +
 data/nation/luhansk.ruleset         |  90 ++++++++++++++++++++++++++++
 data/nation/ukrainian.ruleset       |   2 +-
 meson.build                         |   2 +
 translations/nations/POTFILES.in    |   1 +
 16 files changed, 107 insertions(+), 1 deletion(-)
 create mode 100644 data/flags/luhansk-large.png
 create mode 100644 data/flags/luhansk-shield-large.png
 create mode 100644 data/flags/luhansk-shield.png
 create mode 100644 data/flags/luhansk.png
 create mode 100644 data/flags/luhansk.svg
 create mode 100644 data/nation/luhansk.ruleset

diff --git a/data/default/nationlist.ruleset b/data/default/nationlist.ruleset
index 6b67169e0c..0cee65e403 100644
--- a/data/default/nationlist.ruleset
+++ b/data/default/nationlist.ruleset
@@ -416,6 +416,7 @@ default_nationset = "all"
 *include "nation/lithuanian.ruleset"
 *include "nation/lojbanistani.ruleset"
 *include "nation/lorrain.ruleset"
+*include "nation/luhansk.ruleset"
 *include "nation/luwian.ruleset"
 *include "nation/luxembourgish.ruleset"
 *include "nation/lycian.ruleset"
diff --git a/data/flags/Makefile.am b/data/flags/Makefile.am
index c0266eee93..a9c68bd201 100644
--- a/data/flags/Makefile.am
+++ b/data/flags/Makefile.am
@@ -299,6 +299,7 @@ flag_files =				\
 		lippe.png		\
 		lithuania.png		\
 		lorraine.png		\
+		luhansk.png		\
 		luik.png		\
 		luna.png		\
 		lusatia.png		\
@@ -873,6 +874,7 @@ flag_files =				\
 		lippe-large.png			\
 		lithuania-large.png		\
 		lorraine-large.png		\
+		luhansk-large.png		\
 		luik-large.png			\
 		luna-large.png			\
 		lusatia-large.png		\
@@ -1449,6 +1451,7 @@ shield_files =					\
 		lippe-shield.png		\
 		lithuania-shield.png		\
 		lorraine-shield.png		\
+		luhansk-shield.png		\
 		luik-shield.png			\
 		luna-shield.png			\
 		lusatia-shield.png		\
@@ -2023,6 +2026,7 @@ shield_files =					\
 		lippe-shield-large.png			\
 		lithuania-shield-large.png		\
 		lorraine-shield-large.png		\
+		luhansk-shield-large.png		\
 		luik-shield-large.png			\
 		luna-shield-large.png			\
 		lusatia-shield-large.png		\
@@ -2599,6 +2603,7 @@ svg_files = 				\
 		lippe.svg		\
 		lithuania.svg		\
 		lorraine.svg		\
+		luhansk.svg		\
 		luik.svg		\
 		luna.svg		\
 		lusatia.svg		\
diff --git a/data/flags/luhansk-large.png b/data/flags/luhansk-large.png
new file mode 100644
index 0000000000000000000000000000000000000000..1ba5dc4561a743ea585b2827d46cd1c247957054
GIT binary patch
diff --git a/data/flags/luhansk-shield-large.png b/data/flags/luhansk-shield-large.png
new file mode 100644
index 0000000000000000000000000000000000000000..be558ff1b47de10a2f1d9e641e6384c739a18619
GIT binary patch
diff --git a/data/flags/luhansk-shield.png b/data/flags/luhansk-shield.png
new file mode 100644
index 0000000000000000000000000000000000000000..c33cb82adc317e510ec55fbb3287ceb6728f2d19
GIT binary patch
diff --git a/data/flags/luhansk.png b/data/flags/luhansk.png
new file mode 100644
index 0000000000000000000000000000000000000000..9a696fe4f19cc6c3a57f54e482a67c72635e1c5b
GIT binary patch
diff --git a/data/flags/luhansk.svg b/data/flags/luhansk.svg
new file mode 100644
index 0000000000..fb56fca07c
--- /dev/null
+++ b/data/flags/luhansk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="900" height="600"><path fill="#d52b1e" d="M0 0h900v600H0z"/><path fill="#0039a6" d="M0 0h900v400H0z"/><path fill="#64c8ff" d="M0 0h900v200H0z"/></svg>
\ No newline at end of file
diff --git a/data/misc/flags-large.spec b/data/misc/flags-large.spec
index 49c8675d49..2ce600a892 100644
--- a/data/misc/flags-large.spec
+++ b/data/misc/flags-large.spec
@@ -308,6 +308,7 @@ sprites =
 		"f.lithuania", "flags/lithuania-large"
 		"f.lombardy", "flags/lombardy-large"
 		"f.lorraine", "flags/lorraine-large"
+                "f.luhansk", "flags/luhansk-large"
 		"f.luik", "flags/luik-large"
 		"f.luna", "flags/luna-large"
 		"f.lusatia", "flags/lusatia-large"
diff --git a/data/misc/flags.spec b/data/misc/flags.spec
index 85df9979d2..d1d7a01086 100644
--- a/data/misc/flags.spec
+++ b/data/misc/flags.spec
@@ -306,6 +306,7 @@ artists = "
    Lithuania		Christian Schaller
    Lombardy		Flanker (Wikimedia Commons)
    Lorraine		J.M. Maalderink
+   Luhansk              Wikimedia Commons
    Luik			Jed (Wikimedia Commons)
    Luna			Daniel Markstedt
    Lusatia		J.M. Maalderink
@@ -884,6 +885,7 @@ sprites =
 		"f.lithuania", "flags/lithuania"
 		"f.lombardy", "flags/lombardy"
 		"f.lorraine", "flags/lorraine"
+                "f.luhansk", "flags/luhansk"
 		"f.luik", "flags/luik"
 		"f.luna", "flags/luna"
 		"f.lusatia", "flags/lusatia"
diff --git a/data/misc/shields-large.spec b/data/misc/shields-large.spec
index 91fba4b048..7f15b180b8 100644
--- a/data/misc/shields-large.spec
+++ b/data/misc/shields-large.spec
@@ -308,6 +308,7 @@ sprites =
 		"f.shield.lippe", "flags/lippe-shield-large"
 		"f.shield.lithuania", "flags/lithuania-shield-large"
 		"f.shield.lorraine", "flags/lorraine-shield-large"
+                "f.shield.luhansk", "flags/luhansk-shield-large"
 		"f.shield.luik", "flags/luik-shield-large"
 		"f.shield.luna", "flags/luna-shield-large"
 		"f.shield.lusatia", "flags/lusatia-shield-large"
diff --git a/data/misc/shields.spec b/data/misc/shields.spec
index db44dd8804..84cf198044 100644
--- a/data/misc/shields.spec
+++ b/data/misc/shields.spec
@@ -307,6 +307,7 @@ sprites =
 		"f.shield.lippe", "flags/lippe-shield"
 		"f.shield.lithuania", "flags/lithuania-shield"
 		"f.shield.lorraine", "flags/lorraine-shield"
+                "f.shield.luhansk", "flags/luhansk-shield"
 		"f.shield.luik", "flags/luik-shield"
 		"f.shield.luna", "flags/luna-shield"
 		"f.shield.lusatia", "flags/lusatia-shield"
diff --git a/data/nation/Makefile.am b/data/nation/Makefile.am
index 81b2808973..d9499f4fc9 100644
--- a/data/nation/Makefile.am
+++ b/data/nation/Makefile.am
@@ -300,6 +300,7 @@ pkgdata_DATA = \
 		lithuanian.ruleset \
 		lojbanistani.ruleset \
 		lorrain.ruleset \
+		luhansk.ruleset \
 		luwian.ruleset \
 		luxembourgish.ruleset \
 		lycian.ruleset \
diff --git a/data/nation/luhansk.ruleset b/data/nation/luhansk.ruleset
new file mode 100644
index 0000000000..cb9a32c3b8
--- /dev/null
+++ b/data/nation/luhansk.ruleset
@@ -0,0 +1,90 @@
+[nation_luhansk]
+
+name   = _("Luhansk")
+plural = _("?plural:Luhansk")
+groups = "Modern", "European"
+legend = _("The Luhansk People's Republic, abbreviated as LPR is an\
+ unrecognised republic of Russia in the occupied parts of eastern\
+ Ukraine's Luhansk Oblast, with its capital in Luhansk. The LPR was\
+ created by Russian-backed paramilitaries in 2014, and it initially\
+ operated as a breakaway state until it was annexed by Russia in 2022.\
+ Following Ukraine's Revolution of Dignity in 2014, pro-Russian,\
+ counter-revolutionary unrest erupted in the eastern part of the\
+ country. Russia annexed Crimea from Ukraine, while the armed separatists\
+ seized government buildings and proclaimed the Luhansk People's Republic\
+ (LPR) and Donetsk People's Republic (DPR) as independent states. This\
+ sparked the war in Donbas, part of the wider Russo-Ukrainian War.\
+ The LPR and DPR are sometimes described as puppet states of Russia\
+ during this conflict They received no international recognition from\
+ United Nations member states before 2022. On 21 February 2022, Russia\
+ recognised the LPR and DPR as sovereign states. Three days later, Russia\
+ launched a full-scale invasion of Ukraine, partially under the pretext\
+ of protecting the republics. In September 2022, Russia proclaimed the\
+ annexation of the LPR and other occupied territories, following\
+ illegitimate referendums which were illegal under international law.")
+
+leaders = {
+ "name",                          "sex"
+ "Gennadiy Tsypkalov",            "Male"   ; (1973–2016), first acting head of the Luhansk People's Republic
+ "Vasily Nikitin",                "Male"   ; Prime Minister from 18 May 2014 – 3 July 2014
+ "Igor Plotnitsky",               "Male"   ; Prime Minister from 20 August 2014 – 26 August 2014
+ "Sergey Kozlov",                 "Male"   ; Prime Minister since 26 December 2015
+ "Leonid Pasechnik",              "Male"   ; Current Head of the Luhansk People's Republic
+}
+
+ruler_titles = {
+ "government",      "male_title",         "female_title"
+ "Despotism",       _("Kremlin %s"),      _("?female:Kremlin %s")
+ "Monarchy",        _("Grand Prince %s"), _("Grand Princess %s")
+ "Republic",        _("Hetman %s"),       _("?female:Hetman %s")
+ "Fundamentalism",  _("Patriarch %s"),    _("Matriarch %s")
+}
+
+flag = "luhansk"
+flag_alt = "-"
+style = "European"
+
+init_techs = ""
+init_buildings = ""
+init_units = ""
+
+civilwar_nations = "soviet", "ukrainian", "russian"
+
+cities =
+ "Luhansk",        ; This is a list of all cities in the Luhansk Oblast, not just the ones the LPR controlled.
+ "Alchevsk",
+ "Sievierodonetsk",
+ "Lysychansk",
+ "Krasnyi Luch",
+ "Kadiivka",
+ "Sverdlovsk",
+ "Rubizhne",
+ "Antratsyt",
+ "Rovenky",
+ "Brianka",
+ "Krasnodon",
+ "Pervomaisk",
+ "Kirovsk",
+ "Perevalsk",
+ "Molodohvardiisk",
+ "Sukhodilsk",
+ "Popasna",
+ "Kreminna",
+ "Starobilsk",
+ "Svatove",
+ "Lutuhyne",
+ "Zolote",
+ "Chervono­partyzansk",
+ "Petrovske",
+ "Vakhrusheve",
+ "Shchastia",
+ "Irmino",
+ "Hirske",
+ "Zymohiria",
+ "Artemivsk",
+ "Novodruzhesk",
+ "Pryvillia",
+ "Zorynsk",
+ "Oleksandrivsk",
+ "Miusynsk",
+ "Almazna"
diff --git a/data/nation/ukrainian.ruleset b/data/nation/ukrainian.ruleset
index aa374da288..cad8bc9c16 100644
--- a/data/nation/ukrainian.ruleset
+++ b/data/nation/ukrainian.ruleset
@@ -50,7 +50,7 @@ init_units = ""
 
 conflicts_with = "Cossack", "Ruthenian"
 civilwar_nations = "Soviet", "Polish", "Russian", "Rusyn",
- "Crimean Tatar", "Donetsk"
+ "Crimean Tatar", "Donetsk", "Luhansk"
 
 cities =
  "Kyiv",
diff --git a/meson.build b/meson.build
index 9b94876c82..c597ab7476 100644
--- a/meson.build
+++ b/meson.build
@@ -1826,6 +1826,7 @@ nations = [
   'lithuanian',
   'lojbanistani',
   'lorrain',
+  'luhansk',
   'luwian',
   'luxembourgish',
   'lycian',
@@ -2613,6 +2614,7 @@ flags = [
   'lippe',
   'lithuania',
   'lorraine',
+  'luhansk',
   'luik',
   'luna',
   'lusatia',
diff --git a/translations/nations/POTFILES.in b/translations/nations/POTFILES.in
index 46163e9dd1..c0ba25e311 100644
--- a/translations/nations/POTFILES.in
+++ b/translations/nations/POTFILES.in
@@ -263,6 +263,7 @@ data/nation/lippe.ruleset
 data/nation/lithuanian.ruleset
 data/nation/lojbanistani.ruleset
 data/nation/lorrain.ruleset
+data/nation/luhansk.ruleset
 data/nation/luwian.ruleset
 data/nation/luxembourgish.ruleset
 data/nation/lycian.ruleset
-- 
2.43.0

