From b3d4306ee7f94b56c4faca11e97b219a67b7b456 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazfi74@gmail.com>
Date: Fri, 23 Feb 2024 03:12:21 +0200
Subject: [PATCH 33/33] Add Donetsk nation

Ruleset by _Rorr404, with minor adjustment by me

See RM #257

Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
---
 data/default/nationlist.ruleset     |   1 +
 data/flags/Makefile.am              |   5 ++
 data/flags/donetsk-large.png        | Bin 0 -> 289 bytes
 data/flags/donetsk-shield-large.png | Bin 0 -> 299 bytes
 data/flags/donetsk-shield.png       | Bin 0 -> 264 bytes
 data/flags/donetsk.png              | Bin 0 -> 267 bytes
 data/flags/donetsk.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/donetsk.ruleset         | 109 ++++++++++++++++++++++++++++
 data/nation/ukrainian.ruleset       |   2 +-
 meson.build                         |   2 +
 translations/nations/POTFILES.in    |   1 +
 16 files changed, 126 insertions(+), 1 deletion(-)
 create mode 100644 data/flags/donetsk-large.png
 create mode 100644 data/flags/donetsk-shield-large.png
 create mode 100644 data/flags/donetsk-shield.png
 create mode 100644 data/flags/donetsk.png
 create mode 100644 data/flags/donetsk.svg
 create mode 100644 data/nation/donetsk.ruleset

diff --git a/data/default/nationlist.ruleset b/data/default/nationlist.ruleset
index c835d3c75b..6b67169e0c 100644
--- a/data/default/nationlist.ruleset
+++ b/data/default/nationlist.ruleset
@@ -269,6 +269,7 @@ default_nationset = "all"
 *include "nation/djiboutian.ruleset"
 *include "nation/dominican.ruleset"
 *include "nation/dominicano.ruleset"
+*include "nation/donetsk.ruleset"
 *include "nation/dryad.ruleset"
 *include "nation/dutch.ruleset"
 *include "nation/eastgerman.ruleset"
diff --git a/data/flags/Makefile.am b/data/flags/Makefile.am
index 66953c974b..c0266eee93 100644
--- a/data/flags/Makefile.am
+++ b/data/flags/Makefile.am
@@ -146,6 +146,7 @@ flag_files =				\
 		djibouti.png		\
 		dominica.png		\
 		dominican_republic.png	\
+		donetsk.png		\
 		dr_congo.png		\
 		dryad.png		\
 		ecuador.png		\
@@ -719,6 +720,7 @@ flag_files =				\
 		djibouti-large.png		\
 		dominica-large.png		\
 		dominican_republic-large.png	\
+		donetsk-large.png		\
 		dr_congo-large.png		\
 		dryad-large.png		\
 		ecuador-large.png		\
@@ -1294,6 +1296,7 @@ shield_files =					\
 		djibouti-shield.png		\
 		dominica-shield.png		\
 		dominican_republic-shield.png	\
+		donetsk-shield.png		\
 		dr_congo-shield.png		\
 		dryad-shield.png		\
 		east_timor-shield.png		\
@@ -1867,6 +1870,7 @@ shield_files =					\
 		djibouti-shield-large.png		\
 		dominica-shield-large.png		\
 		dominican_republic-shield-large.png	\
+		donetsk-shield-large.png		\
 		dr_congo-shield-large.png		\
 		dryad-shield-large.png		\
 		east_timor-shield-large.png		\
@@ -2442,6 +2446,7 @@ svg_files = 				\
 		djibouti.svg		\
 		dominica.svg		\
 		dominican_republic.svg	\
+		donetsk.svg		\
 		dr_congo.svg		\
 		dryad.svg		\
 		east_timor.svg		\
diff --git a/data/flags/donetsk-large.png b/data/flags/donetsk-large.png
new file mode 100644
index 0000000000000000000000000000000000000000..c9277dd462a6a684ea63dd5c25141999743ae4c8
GIT binary patch
diff --git a/data/flags/donetsk-shield-large.png b/data/flags/donetsk-shield-large.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e26122675b31f7a35ca738c44c4b8182354d124
GIT binary patch
diff --git a/data/flags/donetsk-shield.png b/data/flags/donetsk-shield.png
new file mode 100644
index 0000000000000000000000000000000000000000..8df4cf4afe376c4071f8235e8239f338840994d2
GIT binary patch
diff --git a/data/flags/donetsk.png b/data/flags/donetsk.png
new file mode 100644
index 0000000000000000000000000000000000000000..76e86069b488c52872d65909b68be3229147b15b
GIT binary patch
diff --git a/data/flags/donetsk.svg b/data/flags/donetsk.svg
new file mode 100644
index 0000000000..43d99b00ae
--- /dev/null
+++ b/data/flags/donetsk.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 9 6"><path d="m0 0h9v6H0"/><path d="m0 2h9v4H0" fill="#0039a6"/><path d="m0 4h9v2H0" fill="#d52b1e"/></svg>
diff --git a/data/misc/flags-large.spec b/data/misc/flags-large.spec
index dd53a405d0..49c8675d49 100644
--- a/data/misc/flags-large.spec
+++ b/data/misc/flags-large.spec
@@ -155,6 +155,7 @@ sprites =
 		"f.djibouti", "flags/djibouti-large"
 		"f.dominica", "flags/dominica-large"
 		"f.dominican_republic", "flags/dominican_republic-large"
+                "f.donetsk", "flags/donetsk-large"
 		"f.dr_congo", "flags/dr_congo-large"
 		"f.dryad", "flags/dryad-large"
 		"f.ecuador", "flags/ecuador-large"
diff --git a/data/misc/flags.spec b/data/misc/flags.spec
index 3096913a50..85df9979d2 100644
--- a/data/misc/flags.spec
+++ b/data/misc/flags.spec
@@ -153,6 +153,7 @@ artists = "
    Djibouti		Open Clip Art
    Dominica		Caleb Moore and Christian Schaller
    Dominican Republic	Daniel Markstedt and capellan2000 (Open Clip Art)
+   Donetsk              Wikimedia Commons
    DR Congo		Drieskamp (Wikimedia Commons)
    Dryad		Ivan Alvarado
    East Timor		SKopp (Wikimedia Commons)
@@ -730,6 +731,7 @@ sprites =
 		"f.djibouti", "flags/djibouti"
 		"f.dominica", "flags/dominica"
 		"f.dominican_republic", "flags/dominican_republic"
+                "f.donetsk", "flags/donetsk"
 		"f.dr_congo", "flags/dr_congo"
 		"f.dryad", "flags/dryad"
 		"f.ecuador", "flags/ecuador"
diff --git a/data/misc/shields-large.spec b/data/misc/shields-large.spec
index 5c0168e545..91fba4b048 100644
--- a/data/misc/shields-large.spec
+++ b/data/misc/shields-large.spec
@@ -155,6 +155,7 @@ sprites =
 		"f.shield.djibouti", "flags/djibouti-shield-large"
 		"f.shield.dominica", "flags/dominica-shield-large"
 		"f.shield.dominican_republic", "flags/dominican_republic-shield-large"
+                "f.shield.donetsk", "flags/donetsk-shield-large"
 		"f.shield.dr_congo", "flags/dr_congo-shield-large"
 		"f.shield.dryad", "flags/dryad-shield-large"
 		"f.shield.east_timor", "flags/east_timor-shield-large"
diff --git a/data/misc/shields.spec b/data/misc/shields.spec
index 0353509f10..db44dd8804 100644
--- a/data/misc/shields.spec
+++ b/data/misc/shields.spec
@@ -154,6 +154,7 @@ sprites =
 		"f.shield.djibouti", "flags/djibouti-shield"
 		"f.shield.dominica", "flags/dominica-shield"
 		"f.shield.dominican_republic", "flags/dominican_republic-shield"
+                "f.shield.donetsk", "flags/donetsk-shield"
 		"f.shield.dr_congo", "flags/dr_congo-shield"
 		"f.shield.dryad", "flags/dryad-shield"
 		"f.shield.east_timor", "flags/east_timor-shield"
diff --git a/data/nation/Makefile.am b/data/nation/Makefile.am
index ae30600782..81b2808973 100644
--- a/data/nation/Makefile.am
+++ b/data/nation/Makefile.am
@@ -153,6 +153,7 @@ pkgdata_DATA = \
 		djiboutian.ruleset \
 		dominican.ruleset \
 		dominicano.ruleset \
+		donetsk.ruleset \
 		dryad.ruleset \
 		dutch.ruleset \
 		eastgerman.ruleset \
diff --git a/data/nation/donetsk.ruleset b/data/nation/donetsk.ruleset
new file mode 100644
index 0000000000..ba6882f981
--- /dev/null
+++ b/data/nation/donetsk.ruleset
@@ -0,0 +1,109 @@
+[nation_donetsk]
+
+name   = _("Donetsk")
+plural = _("?plural:Donchyani")
+groups = "Modern", "European"
+legend = _("The Donetsk People's Republic is an unrecognised republic of\
+ Russia in the occupied parts of eastern Ukraine's Donetsk Oblast, with\
+ its capital in Donetsk. The DPR was created by Russian-backed\
+ aramilitaries 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 Donetsk People's Republic and Luhansk People's Republic as independent\
+ states. This sparked the war in Donbas, part of the wider Russo-Ukrainian\
+ War. The DPR and LPR 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 DPR and LPR as sovereign states. Three days later, Russia\
+ launched a full-scale invasion of Ukraine, partially under the pretext of\
+ protecting the republics. Russian forces captured more of Donetsk Oblast,\
+ which became part of the DPR. In September 2022, Russia proclaimed the\
+ annexation of the DPR and other occupied territories, following\
+ illegitimate referendums. The United Nations General Assembly passed a\
+ resolution calling on countries not to recognise what it called the\
+ \"attempted illegal annexation\" and demanded that Russia \"immediately,\
+ completely and unconditionally withdraw.\"")
+
+leaders = {
+ "name",                          "sex"
+ "Alexander Zakharchenko",        "Male"   ; (1976–2018) Head of the Donetsk People's Republic from 4 November 2014 – 31 August 2018 
+ "Dmitry Trapeznikov",            "Male"   ; Head of the Donetsk People's Republic from 31 August 2018 – 7 September 2018
+ "Denis Pushilin",                "Male"   ; Head of the Donetsk People's Republic since 7 September 2018
+ "Elena Pushilina",               "Female" ; Denis Pushilin's wife
+ "Yevgeny Solntsev",              "Male"   ; Prime Minister of the Donetsk People's Republic since 30 March 2023
+}
+
+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     = "donetsk"
+flag_alt = "-"
+style    = "European"
+
+init_techs = ""
+init_buildings = ""
+init_units = ""
+
+civilwar_nations = "soviet", "russian", "ukrainian"
+
+cities =
+ ; This is a list of all cities in the Donetsk Oblast, not just the ones the DPR controlled.
+ "Donetsk",
+ "Mariupol",
+ "Makiivka",
+ "Horlivka",
+ "Kramatorsk",
+ "Sloviansk",
+ "Yenakiieve",
+ "Bakhmut",
+ "Kostiantynivka",
+ "Pokrovsk",
+ "Khartsyzk",
+ "Druzhkivka",
+ "Chystiakove",
+ "Shakhtarsk",
+ "Myrnohrad",
+ "Snizhne",
+ "Yasynuvata",
+ "Avdiivka",
+ "Toretsk",
+ "Dobropillia",
+ "Kirovske",
+ "Debaltseve",
+ "Dokuchaievsk",
+ "Selydove",
+ "Volnovakha",
+ "Lyman",
+ "Kurakhove",
+ "Amvrosiivka",
+ "Zuhres",
+ "Bilozerske",
+ "Yunokomunarivsk",
+ "Ilovaisk",
+ "Novohrodivka",
+ "Vuhledar",
+ "Krasnohorivka",
+ "Mykolaivka",
+ "Chasiv Yar",
+ "Siversk",
+ "Hirnyk",
+ "Zhdanivka",
+ "Ukrainsk",
+ "Svitlodarsk",
+ "Soledar",
+ "Komsomolske",
+ "Novoazovsk",
+ "Rodynske",
+ "Mospyne",
+ "Marinka",
+ "Vuhlehirsk",
+ "Bilytske",
+ "Zalizne",
+ "Sviatohirsk"
diff --git a/data/nation/ukrainian.ruleset b/data/nation/ukrainian.ruleset
index 012d37ce52..aa374da288 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"
+ "Crimean Tatar", "Donetsk"
 
 cities =
  "Kyiv",
diff --git a/meson.build b/meson.build
index d0dc1fc3e0..9b94876c82 100644
--- a/meson.build
+++ b/meson.build
@@ -1679,6 +1679,7 @@ nations = [
   'djiboutian',
   'dominicano',
   'dominican',
+  'donetsk',
   'dryad',
   'dutch',
   'eastgerman',
@@ -2459,6 +2460,7 @@ flags = [
   'djibouti',
   'dominica',
   'dominican_republic',
+  'donetsk',
   'dr_congo',
   'dryad',
   'ecuador',
diff --git a/translations/nations/POTFILES.in b/translations/nations/POTFILES.in
index 4ede0c46ed..46163e9dd1 100644
--- a/translations/nations/POTFILES.in
+++ b/translations/nations/POTFILES.in
@@ -133,6 +133,7 @@ data/nation/darfuri.ruleset
 data/nation/djiboutian.ruleset
 data/nation/dominicano.ruleset
 data/nation/dominican.ruleset
+data/nation/donetsk.ruleset
 data/nation/dryad.ruleset
 data/nation/eastgerman.ruleset
 data/nation/easttimorese.ruleset
-- 
2.43.0

