diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm
index 222f08c44c53..aca69f9ca08d 100644
--- a/code/game/mecha/mech_fabricator.dm
+++ b/code/game/mecha/mech_fabricator.dm
@@ -77,7 +77,6 @@
"Durand",
"H.O.N.K",
"Reticence",
- "Executioner",
"Phazon",
"Exosuit Equipment",
"Cyborg Upgrade Modules",
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 47c0582fb170..0a8ae1a6db7f 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -96,8 +96,6 @@
var/smoke = 5
var/smoke_ready = 1
var/smoke_cooldown = 100
- var/flash_ready = TRUE
- var/flash_cooldown = 50
var/zoom_mode = FALSE
var/phasing = FALSE
var/phasing_energy_drain = 200
diff --git a/code/game/mecha/mecha_actions.dm b/code/game/mecha/mecha_actions.dm
index 5df983e82da6..1929ce39599c 100644
--- a/code/game/mecha/mecha_actions.dm
+++ b/code/game/mecha/mecha_actions.dm
@@ -12,7 +12,6 @@
var/datum/action/innate/mecha/mech_zoom/zoom_action = new
var/datum/action/innate/mecha/mech_toggle_phasing/phasing_action = new
var/datum/action/innate/mecha/mech_switch_damtype/switch_damtype_action = new
- var/datum/action/innate/mecha/flash/flash_action = new
/obj/mecha/proc/GrantActions(mob/living/user, human_occupant = 0)
if(human_occupant)
@@ -233,34 +232,3 @@
playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1)
UpdateButtonIcon()
-/datum/action/innate/mecha/flash
- name = "Святой огонь"
- desc = "Очистите оскверненных тварей с помощью святого света!"
- button_icon_state = "holyflash"
-
-/datum/action/innate/mecha/flash/proc/flash_carbon(mob/living/carbon/M, mob/user = null, power = 5)
- if(user)
- add_attack_logs(user, M, "Flashed with [chassis]")
- if(M.flash_eyes(1, 1))
- M.AdjustConfused(power)
- M.Stun(5)
- M.Weaken(10)
- to_chat(user, "Вы ослепили [M] священным светом!")
- to_chat(M, "[chassis] ослепил Вас с помощью священного света!")
- else
- to_chat(user, "Вам не удалось ослепить [M] священным светом!")
- to_chat(M, "[chassis] не смог ослепить вас с помощью священного света!")
- return
-
-/datum/action/innate/mecha/flash/Activate()
- if(!owner || !chassis || chassis.occupant != owner)
- return
- if(chassis.flash_ready)
- chassis.visible_message("[chassis] emits a blinding holy light!", "Your [chassis] emits a blinding holy light!")
- for(var/mob/living/carbon/M in oview(3, chassis))
- flash_carbon(M, chassis.occupant, 3, FALSE)
- chassis.flash_ready = FALSE
- spawn(chassis.flash_cooldown)
- chassis.flash_ready = TRUE
- else
- chassis.occupant_message("Святой свет ещё не готов!")
diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm
index c40938bc0a0b..813c7fb1f180 100644
--- a/code/game/mecha/mecha_construction_paths.dm
+++ b/code/game/mecha/mecha_construction_paths.dm
@@ -1244,315 +1244,6 @@
holder.icon_state = "durand18"
return 1
-
-/datum/construction/mecha/executioner_chassis
- steps = list(
- list("key"=/obj/item/mecha_parts/part/executioner_torso),//1
- list("key"=/obj/item/mecha_parts/part/executioner_left_arm),//2
- list("key"=/obj/item/mecha_parts/part/executioner_right_arm),//3
- list("key"=/obj/item/mecha_parts/part/executioner_left_leg),//4
- list("key"=/obj/item/mecha_parts/part/executioner_right_leg),//5
- list("key"=/obj/item/mecha_parts/part/executioner_head)
- )
-
-/datum/construction/mecha/executioner_chassis/custom_action(step, atom/used_atom, mob/user)
- user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]")
- holder.overlays += used_atom.icon_state+"+o"
- qdel(used_atom)
- return 1
-
-/datum/construction/mecha/executioner_chassis/action(atom/used_atom,mob/user as mob)
- return check_all_steps(used_atom,user)
-
-/datum/construction/mecha/executioner_chassis/spawn_result()
- ..("mk. V \"The Executioner\"")
- var/obj/item/mecha_parts/chassis/const_holder = holder
- const_holder.construct = new /datum/construction/reversible/mecha/executioner(const_holder)
- const_holder.icon = 'icons/mecha/mech_construction.dmi'
- const_holder.icon_state = "executioner0"
- const_holder.density = TRUE
- qdel(src)
- return
-
-/datum/construction/reversible/mecha/executioner
- result = "/obj/mecha/combat/executioner"
- steps = list(
- //1
- list(
- "key"=/obj/item/soulstone/anybody/purified,
- "backkey"=null, //Cannot remove soulstone once it's in
- "desc"="Soulstone puted in the locket."),
- //2
- "key" = /obj/item/mecha_parts/core,
- "backkey" = TOOL_SCREWDRIVER,
- "desc" = "External armor is welded."),
- //3
- list(
- "key"=TOOL_WELDER,
- "backkey"=TOOL_WRENCH,
- "desc"="External armor is wrenched."),
- //4
- list(
- "key"=TOOL_WRENCH,
- "backkey"=TOOL_CROWBAR,
- "desc"="External armor is installed."),
- //5
- list(
- "key"=/obj/item/mecha_parts/part/executioner_armor,
- "backkey"=TOOL_WELDER,
- "desc"="Holy cross is welded."),
- //6
- list(
- "key"=TOOL_WELDER,
- "backkey"=TOOL_WRENCH,
- "desc"="Holy cross is wrenched."),
- //7
- list("key"=TOOL_WRENCH,
- "backkey"=TOOL_CROWBAR,
- "desc"="Holy cross is installed."),
- //8
- list(
- "key"=/obj/item/stack/sheet/mineral/silver,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="Holy helmet is blessed."),
- //9
- list(
- "key"=/obj/item/storage/bible,
- "backkey"=TOOL_CROWBAR,
- "desc"="Holy helmet is installed."),
- //10
- list(
- "key"=/obj/item/clothing/head/helmet/riot/knight/templar,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="Holy armour is blessed."),
- //11
- list(
- "key"=/obj/item/storage/bible,
- "backkey"=TOOL_CROWBAR,
- "desc"="Holy armour is installed."),
- //12
- list(
- "key"=/obj/item/clothing/suit/armor/riot/knight/templar,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="Scanning module is blessed."),
- //13
- list(
- "key"=/obj/item/storage/bible,
- "backkey"=TOOL_CROWBAR,
- "desc"="Scanning module is installed."),
- //14
- list(
- "key"=/obj/item/circuitboard/mecha/executioner/targeting,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="Peripherals control module is blessed."),
- //15
- list(
- "key"=/obj/item/storage/bible,
- "backkey"=TOOL_CROWBAR,
- "desc"="Peripherals control module is installed."),
- //16
- list(
- "key"=/obj/item/circuitboard/mecha/executioner/peripherals,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="Central control module is blessed."),
- //17
- list(
- "key"=/obj/item/storage/bible,
- "backkey"=TOOL_CROWBAR,
- "desc"="Central control module is installed."),
- //18
- list(
- "key"=/obj/item/circuitboard/mecha/executioner/main,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="The wiring is adjusted."),
- //19
- list(
- "key"=/obj/item/wirecutters,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="The wiring is added."),
- //20
- list(
- "key"=/obj/item/stack/cable_coil,
- "backkey"=TOOL_SCREWDRIVER,
- "desc"="The hydraulic systems are active."),
- //21
- list(
- "key"=TOOL_SCREWDRIVER,
- "backkey"=TOOL_WRENCH,
- "desc"="The hydraulic systems are connected."),
- //22
- list(
- "key"=TOOL_WRENCH,
- "desc"="The hydraulic systems are disconnected.")
- )
-
-
-/datum/construction/reversible/mecha/executioner/action(atom/used_atom,mob/user as mob)
- return check_step(used_atom,user)
-
-/datum/construction/reversible/mecha/executioner/custom_action(index, diff, atom/used_atom, mob/user)
- if(!..())
- return 0
-
- //TODO: better messages.
- switch(index)
- if(21)
- user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.")
- holder.icon_state = "executioner1"
- if(20)
- if(diff==FORWARD)
- user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.")
- holder.icon_state = "executioner2"
- else
- user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.")
- holder.icon_state = "executioner0"
- if(19)
- if(diff==FORWARD)
- user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].")
- holder.icon_state = "executioner3"
- else
- user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.")
- holder.icon_state = "executioner1"
- if(18)
- if(diff==FORWARD)
- user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].")
- holder.icon_state = "executioner4"
- else
- user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].")
- var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
- coil.amount = 4
- holder.icon_state = "executioner2"
- if(17)
- if(diff==FORWARD)
- user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner5"
- else
- user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].")
- holder.icon_state = "executioner3"
- if(16)
- if(diff==FORWARD)
- user.visible_message("[user] blessed the mainboard.", "You bless the mainboard.")
- holder.icon_state = "executioner6"
- else
- user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].")
- new /obj/item/circuitboard/mecha/executioner/main(get_turf(holder))
- holder.icon_state = "executioner4"
- if(15)
- if(diff==FORWARD)
- user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner7"
- else
- user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
- holder.icon_state = "executioner5"
- if(14)
- if(diff==FORWARD)
- user.visible_message("[user] blessed the peripherals control module.", "You bless the peripherals control module.")
- holder.icon_state = "executioner8"
- else
- user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].")
- new /obj/item/circuitboard/mecha/executioner/peripherals(get_turf(holder))
- holder.icon_state = "executioner6"
- if(13)
- if(diff==FORWARD)
- user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner9"
- else
- user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
- holder.icon_state = "executioner7"
- if(12)
- if(diff==FORWARD)
- user.visible_message("[user] blessed the weapon control module.", "You bless the weapon control module.")
- holder.icon_state = "executioner10"
- else
- user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].")
- new /obj/item/circuitboard/mecha/executioner/targeting(get_turf(holder))
- holder.icon_state = "executioner8"
- if(11)
- if(diff==FORWARD)
- user.visible_message("[user] installs the holy armour to the [holder].", "You install the holy armour to the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner11"
- else
- user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.")
- holder.icon_state = "executioner9"
- if(10)
- if(diff==FORWARD)
- user.visible_message("[user] blessed the holy armour.", "You bless the holy armour.")
- holder.icon_state = "executioner12"
- else
- user.visible_message("[user] removes the holy armour from the [holder].", "You remove the holy armour from the [holder].")
- new /obj/item/clothing/suit/armor/riot/knight/templar(get_turf(holder))
- holder.icon_state = "executioner10"
- if(9)
- if(diff==FORWARD)
- user.visible_message("[user] installs the holy helmet to the [holder].", "You install holy helmet to the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner13"
- else
- user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the phasic scanner module.")
- holder.icon_state = "executioner11"
- if(8)
- if(diff==FORWARD)
- user.visible_message("[user] blessed the holy helmet.", "You bless the holy helmet.")
- holder.icon_state = "executioner14"
- else
- user.visible_message("[user] removes the holy helmet from the [holder].", "You remove the holy helmet from the [holder].")
- new /obj/item/clothing/head/helmet/riot/knight/templar(get_turf(holder))
- holder.icon_state = "executioner12"
- if(7)
- if(diff==FORWARD)
- user.visible_message("[user] installs the holy cross to the [holder].", "You install the holy cross to the [holder].")
- holder.icon_state = "executioner15"
- else
- user.visible_message("[user] unfastens the holy helmet.", "You unfasten the holy helmet.")
- holder.icon_state = "executioner13"
- if(6)
- if(diff==FORWARD)
- user.visible_message("[user] secures the holy cross.", "You secure the holy cross.")
- holder.icon_state = "executioner16"
- else
- user.visible_message("[user] pries holy cross from the [holder].", "You pry holy cross from the [holder].")
- var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/mineral/silver(get_turf(holder))
- MS.amount = 5
- holder.icon_state = "executioner14"
- if(5)
- if(diff==FORWARD)
- user.visible_message("[user] welds the holy cross to the [holder].", "You weld holy cross to the [holder].")
- holder.icon_state = "executioner17"
- else
- user.visible_message("[user] unfastens the holy cross.", "You unfasten the holy cross.")
- holder.icon_state = "executioner15"
- if(4)
- if(diff==FORWARD)
- user.visible_message("[user] installs the Executioner Armor Plates to the [holder].", "You install Executioner Armor Plates to the [holder].")
- qdel(used_atom)
- holder.icon_state = "executioner18"
- else
- user.visible_message("[user] cuts the holy cross from the [holder].", "You cut the holy cross from the [holder].")
- holder.icon_state = "executioner16"
- if(3)
- if(diff==FORWARD)
- user.visible_message("[user] secures Executioner Armor Plates.", "You secure Executioner Armor Plates.")
- holder.icon_state = "executioner19"
- else
- user.visible_message("[user] pries Executioner Armor Plates from the [holder].", "You pry Executioner Armor Plates from the [holder].")
- new /obj/item/mecha_parts/part/durand_armor(get_turf(holder))
- holder.icon_state = "executioner17"
- if(2)
- if(diff==FORWARD)
- user.visible_message("[user] welds Executioner Armor Plates to the [holder].", "You weld Executioner Armor Plates to the [holder].")
- else
- user.visible_message("[user] unfastens Executioner Armor Plates.", "You unfasten Executioner Armor Plates.")
- holder.icon_state = "executioner18"
- if(1)
- if(diff==FORWARD)
- user.visible_message("[user] put soulstone to the [holder]'s locket. Exosuit seems awaken now.", "You put soulstone to the [holder]'s locket. Exosuit seems awaken now.")
- qdel(used_atom)
- return 1
-
//PHAZON
/datum/construction/mecha/phazon_chassis
diff --git a/code/game/mecha/mecha_parts.dm b/code/game/mecha/mecha_parts.dm
index c34e30638c63..f078ba07412e 100644
--- a/code/game/mecha/mecha_parts.dm
+++ b/code/game/mecha/mecha_parts.dm
@@ -163,52 +163,6 @@
origin_tech = "materials=5;combat=4;engineering=4"
-//////////// Executioner
-
-/obj/item/mecha_parts/chassis/executioner
- name = "\improper Executioner Chassis"
-
-/obj/item/mecha_parts/chassis/executioner/New()
- ..()
- construct = new /datum/construction/mecha/executioner_chassis(src)
-
-/obj/item/mecha_parts/part/executioner_torso
- name="\improper Executioner Torso"
- icon_state = "durand_harness"
- origin_tech = "programming=2;materials=3;biotech=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_head
- name="\improper Executioner Head"
- icon_state = "durand_head"
- origin_tech = "programming=2;materials=3;magnets=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_left_arm
- name="\improper Executioner Left Arm"
- icon_state = "durand_l_arm"
- origin_tech = "programming=2;materials=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_right_arm
- name="\improper Executioner Right Arm"
- icon_state = "durand_r_arm"
- origin_tech = "programming=2;materials=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_left_leg
- name="\improper Executioner Left Leg"
- icon_state = "durand_l_leg"
- origin_tech = "programming=2;materials=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_right_leg
- name="\improper Executioner Right Leg"
- icon_state = "durand_r_leg"
- origin_tech = "programming=2;materials=3;engineering=3"
-
-/obj/item/mecha_parts/part/executioner_armor
- name="\improper Executioner Armour Plates"
- icon_state = "executioner_armor"
- origin_tech = "materials=5;combat=4;engineering=4"
-
-
-
////////// Firefighter
/obj/item/mecha_parts/chassis/firefighter
@@ -452,22 +406,6 @@
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4;engineering=3"
-/obj/item/circuitboard/mecha/executioner
- origin_tech = "programming=5;combat=4;engineering=4"
-
-/obj/item/circuitboard/mecha/executioner/peripherals
- name = "Circuit board (Executioner Peripherals Control module)"
- icon_state = "mcontroller"
-
-/obj/item/circuitboard/mecha/executioner/targeting
- name = "Circuit board (Executionerurand Weapon Control and Targeting module)"
- icon_state = "mcontroller"
- origin_tech = "programming=5;combat=5;engineering=4"
-
-/obj/item/circuitboard/mecha/executioner/main
- name = "Circuit board (Executioner Central Control module)"
- icon_state = "mainboard"
-
/obj/item/circuitboard/mecha/phazon
origin_tech = "programming=5;plasmatech=4"
diff --git a/code/game/mecha/mecha_wreckage.dm b/code/game/mecha/mecha_wreckage.dm
index 292d9ec0fc4a..72a5f8daacd0 100644
--- a/code/game/mecha/mecha_wreckage.dm
+++ b/code/game/mecha/mecha_wreckage.dm
@@ -208,13 +208,6 @@
icon_state = "phazon-broken"
-/obj/structure/mecha_wreckage/executioner
- name = "\improper Executioner wreckage"
- desc = "He failed. But.. he return. He never leave humankind."
- icon_state = "executioner-broken"
- parts = list(/obj/item/soulstone/anybody/purified)
-
-
/obj/structure/mecha_wreckage/odysseus
name = "\improper Odysseus wreckage"
icon_state = "odysseus-broken"
diff --git a/modular_ss220/new_mecha_executioner/_executioner.dm b/modular_ss220/new_mecha_executioner/_executioner.dm
new file mode 100644
index 000000000000..0a8cd90e8e4b
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/_executioner.dm
@@ -0,0 +1,4 @@
+/datum/modpack/outfits
+ name = "Executor"
+ desc = "старо-новый мех."
+ author = "Lime-7"
diff --git a/modular_ss220/new_mecha_executioner/_executioner.dme b/modular_ss220/new_mecha_executioner/_executioner.dme
new file mode 100644
index 000000000000..c71e50ef5618
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/_executioner.dme
@@ -0,0 +1,11 @@
+#include "_executioner.dm"
+
+#include "code\Executor.dm"
+#include "code\mech_fabricator.dm"
+#include "code\mecha_actions.dm"
+#include "code\mecha_construction_paths.dm"
+#include "code\mecha_designs.dm"
+#include "code\mecha_parts.dm"
+#include "code\mecha_wreckage.dm"
+#include "code\mecha.dm"
+#include "code\mechfabricator_designs.dm"
diff --git a/code/game/mecha/combat/Executor.dm b/modular_ss220/new_mecha_executioner/code/Executor.dm
similarity index 100%
rename from code/game/mecha/combat/Executor.dm
rename to modular_ss220/new_mecha_executioner/code/Executor.dm
diff --git a/modular_ss220/new_mecha_executioner/code/mech_fabricator.dm b/modular_ss220/new_mecha_executioner/code/mech_fabricator.dm
new file mode 100644
index 000000000000..e6c656594b2b
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mech_fabricator.dm
@@ -0,0 +1,36 @@
+/obj/machinery/mecha_part_fabricator/Initialize(mapload)
+ . = ..()
+ // Set up some datums
+ var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE), 0, FALSE, /obj/item/stack, CALLBACK(src, PROC_REF(can_insert_materials)), CALLBACK(src, PROC_REF(on_material_insert)))
+ materials.precise_insertion = TRUE
+ local_designs = new /datum/research(src)
+
+ // Components
+ component_parts = list()
+ component_parts += new /obj/item/circuitboard/mechfab(null)
+ component_parts += new /obj/item/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/stock_parts/matter_bin(null)
+ component_parts += new /obj/item/stock_parts/manipulator(null)
+ component_parts += new /obj/item/stock_parts/micro_laser(null)
+ component_parts += new /obj/item/stack/sheet/glass(null)
+ RefreshParts()
+
+ categories = list(
+ "Cyborg",
+ "Cyborg Repair",
+ "MODsuit Construction",
+ "MODsuit Modules",
+ "Ripley",
+ "Firefighter",
+ "Odysseus",
+ "Gygax",
+ "Durand",
+ "H.O.N.K",
+ "Reticence",
+ "Executor",
+ "Phazon",
+ "Exosuit Equipment",
+ "Cyborg Upgrade Modules",
+ "Medical",
+ "Misc"
+ )
diff --git a/modular_ss220/new_mecha_executioner/code/mecha.dm b/modular_ss220/new_mecha_executioner/code/mecha.dm
new file mode 100644
index 000000000000..2e0906b1cb01
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha.dm
@@ -0,0 +1,3 @@
+/obj/mecha
+ var/flash_ready = TRUE
+ var/flash_cooldown = 50
diff --git a/modular_ss220/new_mecha_executioner/code/mecha_actions.dm b/modular_ss220/new_mecha_executioner/code/mecha_actions.dm
new file mode 100644
index 000000000000..7bccf610e2c4
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha_actions.dm
@@ -0,0 +1,35 @@
+/obj/mecha
+ var/datum/action/innate/mecha/flash/flash_action = new
+
+
+/datum/action/innate/mecha/flash
+ name = "Святой огонь"
+ desc = "Очистите оскверненных тварей с помощью святого света!"
+ button_icon_state = "holyflash"
+
+/datum/action/innate/mecha/flash/proc/flash_carbon(mob/living/carbon/M, mob/user = null, power = 5)
+ if(user)
+ add_attack_logs(user, M, "Flashed with [chassis]")
+ if(M.flash_eyes(1, 1))
+ M.AdjustConfused(power)
+ M.Stun(5)
+ M.Weaken(10)
+ to_chat(user, "Вы ослепили [M] священным светом!")
+ to_chat(M, "[chassis] ослепил Вас с помощью священного света!")
+ else
+ to_chat(user, "Вам не удалось ослепить [M] священным светом!")
+ to_chat(M, "[chassis] не смог ослепить вас с помощью священного света!")
+ return
+
+/datum/action/innate/mecha/flash/Activate()
+ if(!owner || !chassis || chassis.occupant != owner)
+ return
+ if(chassis.flash_ready)
+ chassis.visible_message("[chassis] emits a blinding holy light!", "Your [chassis] emits a blinding holy light!")
+ for(var/mob/living/carbon/M in oview(3, chassis))
+ flash_carbon(M, chassis.occupant, 3, FALSE)
+ chassis.flash_ready = FALSE
+ spawn(chassis.flash_cooldown)
+ chassis.flash_ready = TRUE
+ else
+ chassis.occupant_message("Святой свет ещё не готов!")
diff --git a/modular_ss220/new_mecha_executioner/code/mecha_construction_paths.dm b/modular_ss220/new_mecha_executioner/code/mecha_construction_paths.dm
new file mode 100644
index 000000000000..7fe42522ecda
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha_construction_paths.dm
@@ -0,0 +1,307 @@
+/datum/construction/mecha/executioner_chassis
+ steps = list(
+ list("key"=/obj/item/mecha_parts/part/executioner_torso),//1
+ list("key"=/obj/item/mecha_parts/part/executioner_left_arm),//2
+ list("key"=/obj/item/mecha_parts/part/executioner_right_arm),//3
+ list("key"=/obj/item/mecha_parts/part/executioner_left_leg),//4
+ list("key"=/obj/item/mecha_parts/part/executioner_right_leg),//5
+ list("key"=/obj/item/mecha_parts/part/executioner_head)
+ )
+
+/datum/construction/mecha/executioner_chassis/custom_action(step, atom/used_atom, mob/user)
+ user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]")
+ holder.overlays += used_atom.icon_state+"+o"
+ qdel(used_atom)
+ return 1
+
+/datum/construction/mecha/executioner_chassis/action(atom/used_atom,mob/user as mob)
+ return check_all_steps(used_atom,user)
+
+/datum/construction/mecha/executioner_chassis/spawn_result()
+ ..("mk. V \"The Executioner\"")
+ var/obj/item/mecha_parts/chassis/const_holder = holder
+ const_holder.construct = new /datum/construction/reversible/mecha/executioner(const_holder)
+ const_holder.icon = 'icons/mecha/mech_construction.dmi'
+ const_holder.icon_state = "executioner0"
+ const_holder.density = TRUE
+ qdel(src)
+ return
+
+/datum/construction/reversible/mecha/executioner
+ result = "/obj/mecha/combat/executioner"
+ steps = list(
+ //1
+ list(
+ "key"=/obj/item/soulstone/anybody/purified,
+ "backkey"=null, //Cannot remove soulstone once it's in
+ "desc"="Soulstone puted in the locket."),
+ //2
+ "key" = /obj/item/mecha_parts/core,
+ "backkey" = TOOL_SCREWDRIVER,
+ "desc" = "External armor is welded."),
+ //3
+ list(
+ "key"=TOOL_WELDER,
+ "backkey"=TOOL_WRENCH,
+ "desc"="External armor is wrenched."),
+ //4
+ list(
+ "key"=TOOL_WRENCH,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="External armor is installed."),
+ //5
+ list(
+ "key"=/obj/item/mecha_parts/part/executioner_armor,
+ "backkey"=TOOL_WELDER,
+ "desc"="Holy cross is welded."),
+ //6
+ list(
+ "key"=TOOL_WELDER,
+ "backkey"=TOOL_WRENCH,
+ "desc"="Holy cross is wrenched."),
+ //7
+ list("key"=TOOL_WRENCH,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Holy cross is installed."),
+ //8
+ list(
+ "key"=/obj/item/stack/sheet/mineral/silver,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="Holy helmet is blessed."),
+ //9
+ list(
+ "key"=/obj/item/storage/bible,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Holy helmet is installed."),
+ //10
+ list(
+ "key"=/obj/item/clothing/head/helmet/riot/knight/templar,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="Holy armour is blessed."),
+ //11
+ list(
+ "key"=/obj/item/storage/bible,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Holy armour is installed."),
+ //12
+ list(
+ "key"=/obj/item/clothing/suit/armor/riot/knight/templar,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="Scanning module is blessed."),
+ //13
+ list(
+ "key"=/obj/item/storage/bible,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Scanning module is installed."),
+ //14
+ list(
+ "key"=/obj/item/circuitboard/mecha/executioner/targeting,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="Peripherals control module is blessed."),
+ //15
+ list(
+ "key"=/obj/item/storage/bible,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Peripherals control module is installed."),
+ //16
+ list(
+ "key"=/obj/item/circuitboard/mecha/executioner/peripherals,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="Central control module is blessed."),
+ //17
+ list(
+ "key"=/obj/item/storage/bible,
+ "backkey"=TOOL_CROWBAR,
+ "desc"="Central control module is installed."),
+ //18
+ list(
+ "key"=/obj/item/circuitboard/mecha/executioner/main,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="The wiring is adjusted."),
+ //19
+ list(
+ "key"=/obj/item/wirecutters,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="The wiring is added."),
+ //20
+ list(
+ "key"=/obj/item/stack/cable_coil,
+ "backkey"=TOOL_SCREWDRIVER,
+ "desc"="The hydraulic systems are active."),
+ //21
+ list(
+ "key"=TOOL_SCREWDRIVER,
+ "backkey"=TOOL_WRENCH,
+ "desc"="The hydraulic systems are connected."),
+ //22
+ list(
+ "key"=TOOL_WRENCH,
+ "desc"="The hydraulic systems are disconnected.")
+ )
+
+
+/datum/construction/reversible/mecha/executioner/action(atom/used_atom,mob/user as mob)
+ return check_step(used_atom,user)
+
+/datum/construction/reversible/mecha/executioner/custom_action(index, diff, atom/used_atom, mob/user)
+ if(!..())
+ return 0
+
+ //TODO: better messages.
+ switch(index)
+ if(21)
+ user.visible_message("[user] connects the [holder] hydraulic systems", "You connect the [holder] hydraulic systems.")
+ holder.icon_state = "executioner1"
+ if(20)
+ if(diff==FORWARD)
+ user.visible_message("[user] activates the [holder] hydraulic systems.", "You activate the [holder] hydraulic systems.")
+ holder.icon_state = "executioner2"
+ else
+ user.visible_message("[user] disconnects the [holder] hydraulic systems", "You disconnect the [holder] hydraulic systems.")
+ holder.icon_state = "executioner0"
+ if(19)
+ if(diff==FORWARD)
+ user.visible_message("[user] adds the wiring to the [holder].", "You add the wiring to the [holder].")
+ holder.icon_state = "executioner3"
+ else
+ user.visible_message("[user] deactivates the [holder] hydraulic systems.", "You deactivate the [holder] hydraulic systems.")
+ holder.icon_state = "executioner1"
+ if(18)
+ if(diff==FORWARD)
+ user.visible_message("[user] adjusts the wiring of the [holder].", "You adjust the wiring of the [holder].")
+ holder.icon_state = "executioner4"
+ else
+ user.visible_message("[user] removes the wiring from the [holder].", "You remove the wiring from the [holder].")
+ var/obj/item/stack/cable_coil/coil = new /obj/item/stack/cable_coil(get_turf(holder))
+ coil.amount = 4
+ holder.icon_state = "executioner2"
+ if(17)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the central control module into the [holder].", "You install the central computer mainboard into the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner5"
+ else
+ user.visible_message("[user] disconnects the wiring of the [holder].", "You disconnect the wiring of the [holder].")
+ holder.icon_state = "executioner3"
+ if(16)
+ if(diff==FORWARD)
+ user.visible_message("[user] blessed the mainboard.", "You bless the mainboard.")
+ holder.icon_state = "executioner6"
+ else
+ user.visible_message("[user] removes the central control module from the [holder].", "You remove the central computer mainboard from the [holder].")
+ new /obj/item/circuitboard/mecha/executioner/main(get_turf(holder))
+ holder.icon_state = "executioner4"
+ if(15)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the peripherals control module into the [holder].", "You install the peripherals control module into the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner7"
+ else
+ user.visible_message("[user] unfastens the mainboard.", "You unfasten the mainboard.")
+ holder.icon_state = "executioner5"
+ if(14)
+ if(diff==FORWARD)
+ user.visible_message("[user] blessed the peripherals control module.", "You bless the peripherals control module.")
+ holder.icon_state = "executioner8"
+ else
+ user.visible_message("[user] removes the peripherals control module from the [holder].", "You remove the peripherals control module from the [holder].")
+ new /obj/item/circuitboard/mecha/executioner/peripherals(get_turf(holder))
+ holder.icon_state = "executioner6"
+ if(13)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the weapon control module into the [holder].", "You install the weapon control module into the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner9"
+ else
+ user.visible_message("[user] unfastens the peripherals control module.", "You unfasten the peripherals control module.")
+ holder.icon_state = "executioner7"
+ if(12)
+ if(diff==FORWARD)
+ user.visible_message("[user] blessed the weapon control module.", "You bless the weapon control module.")
+ holder.icon_state = "executioner10"
+ else
+ user.visible_message("[user] removes the weapon control module from the [holder].", "You remove the weapon control module from the [holder].")
+ new /obj/item/circuitboard/mecha/executioner/targeting(get_turf(holder))
+ holder.icon_state = "executioner8"
+ if(11)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the holy armour to the [holder].", "You install the holy armour to the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner11"
+ else
+ user.visible_message("[user] unfastens the weapon control module.", "You unfasten the weapon control module.")
+ holder.icon_state = "executioner9"
+ if(10)
+ if(diff==FORWARD)
+ user.visible_message("[user] blessed the holy armour.", "You bless the holy armour.")
+ holder.icon_state = "executioner12"
+ else
+ user.visible_message("[user] removes the holy armour from the [holder].", "You remove the holy armour from the [holder].")
+ new /obj/item/clothing/suit/armor/riot/knight/templar(get_turf(holder))
+ holder.icon_state = "executioner10"
+ if(9)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the holy helmet to the [holder].", "You install holy helmet to the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner13"
+ else
+ user.visible_message("[user] unfastens the phasic scanner module.", "You unfasten the phasic scanner module.")
+ holder.icon_state = "executioner11"
+ if(8)
+ if(diff==FORWARD)
+ user.visible_message("[user] blessed the holy helmet.", "You bless the holy helmet.")
+ holder.icon_state = "executioner14"
+ else
+ user.visible_message("[user] removes the holy helmet from the [holder].", "You remove the holy helmet from the [holder].")
+ new /obj/item/clothing/head/helmet/riot/knight/templar(get_turf(holder))
+ holder.icon_state = "executioner12"
+ if(7)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the holy cross to the [holder].", "You install the holy cross to the [holder].")
+ holder.icon_state = "executioner15"
+ else
+ user.visible_message("[user] unfastens the holy helmet.", "You unfasten the holy helmet.")
+ holder.icon_state = "executioner13"
+ if(6)
+ if(diff==FORWARD)
+ user.visible_message("[user] secures the holy cross.", "You secure the holy cross.")
+ holder.icon_state = "executioner16"
+ else
+ user.visible_message("[user] pries holy cross from the [holder].", "You pry holy cross from the [holder].")
+ var/obj/item/stack/sheet/metal/MS = new /obj/item/stack/sheet/mineral/silver(get_turf(holder))
+ MS.amount = 5
+ holder.icon_state = "executioner14"
+ if(5)
+ if(diff==FORWARD)
+ user.visible_message("[user] welds the holy cross to the [holder].", "You weld holy cross to the [holder].")
+ holder.icon_state = "executioner17"
+ else
+ user.visible_message("[user] unfastens the holy cross.", "You unfasten the holy cross.")
+ holder.icon_state = "executioner15"
+ if(4)
+ if(diff==FORWARD)
+ user.visible_message("[user] installs the Executioner Armor Plates to the [holder].", "You install Executioner Armor Plates to the [holder].")
+ qdel(used_atom)
+ holder.icon_state = "executioner18"
+ else
+ user.visible_message("[user] cuts the holy cross from the [holder].", "You cut the holy cross from the [holder].")
+ holder.icon_state = "executioner16"
+ if(3)
+ if(diff==FORWARD)
+ user.visible_message("[user] secures Executioner Armor Plates.", "You secure Executioner Armor Plates.")
+ holder.icon_state = "executioner19"
+ else
+ user.visible_message("[user] pries Executioner Armor Plates from the [holder].", "You pry Executioner Armor Plates from the [holder].")
+ new /obj/item/mecha_parts/part/durand_armor(get_turf(holder))
+ holder.icon_state = "executioner17"
+ if(2)
+ if(diff==FORWARD)
+ user.visible_message("[user] welds Executioner Armor Plates to the [holder].", "You weld Executioner Armor Plates to the [holder].")
+ else
+ user.visible_message("[user] unfastens Executioner Armor Plates.", "You unfasten Executioner Armor Plates.")
+ holder.icon_state = "executioner18"
+ if(1)
+ if(diff==FORWARD)
+ user.visible_message("[user] put soulstone to the [holder]'s locket. Exosuit seems awaken now.", "You put soulstone to the [holder]'s locket. Exosuit seems awaken now.")
+ qdel(used_atom)
+ return 1
diff --git a/modular_ss220/new_mecha_executioner/code/mecha_designs.dm b/modular_ss220/new_mecha_executioner/code/mecha_designs.dm
new file mode 100644
index 000000000000..5266c00e79c2
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha_designs.dm
@@ -0,0 +1,30 @@
+// Executioner
+/datum/design/executioner_main
+ name = "Exosuit Board (\"Executioner\" Central Control module)"
+ desc = "Allows for the construction of a \"Executioner\" Central Control module."
+ id = "executioner_main"
+ req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
+ build_type = IMPRINTER
+ materials = list(MAT_GLASS = 1000)
+ build_path = /obj/item/circuitboard/mecha/executioner/main
+ category = list("Exosuit Modules")
+
+/datum/design/executioner_peri
+ name = "Exosuit Board (\"Executioner\" Peripherals Control module)"
+ desc = "Allows for the construction of a \"Executioner\" Peripheral Control module."
+ id = "executioner_peri"
+ req_tech = list("programming" = 4, "combat" = 4, "engineering" = 4)
+ build_type = IMPRINTER
+ materials = list(MAT_GLASS = 1000)
+ build_path = /obj/item/circuitboard/mecha/executioner/peripherals
+ category = list("Exosuit Modules")
+
+/datum/design/executioner_targ
+ name = "Exosuit Board (\"Executioner\" Weapons & Targeting Control module)"
+ desc = "Allows for the construction of a \"Executioner\" Weapons & Targeting Control module."
+ id = "executioner_targ"
+ req_tech = list("programming" = 5, "combat" = 4, "engineering" = 4)
+ build_type = IMPRINTER
+ materials = list(MAT_GLASS = 1000)
+ build_path = /obj/item/circuitboard/mecha/executioner/targeting
+ category = list("Exosuit Modules")
diff --git a/modular_ss220/new_mecha_executioner/code/mecha_parts.dm b/modular_ss220/new_mecha_executioner/code/mecha_parts.dm
new file mode 100644
index 000000000000..876220b75778
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha_parts.dm
@@ -0,0 +1,59 @@
+//////////// Executioner
+
+/obj/item/mecha_parts/chassis/executioner
+ name = "\improper Executioner Chassis"
+
+/obj/item/mecha_parts/chassis/executioner/New()
+ ..()
+ construct = new /datum/construction/mecha/executioner_chassis(src)
+
+/obj/item/mecha_parts/part/executioner_torso
+ name="\improper Executioner Torso"
+ icon_state = "durand_harness"
+ origin_tech = "programming=2;materials=3;biotech=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_head
+ name="\improper Executioner Head"
+ icon_state = "durand_head"
+ origin_tech = "programming=2;materials=3;magnets=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_left_arm
+ name="\improper Executioner Left Arm"
+ icon_state = "durand_l_arm"
+ origin_tech = "programming=2;materials=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_right_arm
+ name="\improper Executioner Right Arm"
+ icon_state = "durand_r_arm"
+ origin_tech = "programming=2;materials=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_left_leg
+ name="\improper Executioner Left Leg"
+ icon_state = "durand_l_leg"
+ origin_tech = "programming=2;materials=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_right_leg
+ name="\improper Executioner Right Leg"
+ icon_state = "durand_r_leg"
+ origin_tech = "programming=2;materials=3;engineering=3"
+
+/obj/item/mecha_parts/part/executioner_armor
+ name="\improper Executioner Armour Plates"
+ icon_state = "executioner_armor"
+ origin_tech = "materials=5;combat=4;engineering=4"
+
+/obj/item/circuitboard/mecha/executioner
+ origin_tech = "programming=5;combat=4;engineering=4"
+
+/obj/item/circuitboard/mecha/executioner/peripherals
+ name = "Circuit board (Executioner Peripherals Control module)"
+ icon_state = "mcontroller"
+
+/obj/item/circuitboard/mecha/executioner/targeting
+ name = "Circuit board (Executionerurand Weapon Control and Targeting module)"
+ icon_state = "mcontroller"
+ origin_tech = "programming=5;combat=5;engineering=4"
+
+/obj/item/circuitboard/mecha/executioner/main
+ name = "Circuit board (Executioner Central Control module)"
+ icon_state = "mainboard"
diff --git a/modular_ss220/new_mecha_executioner/code/mecha_wreckage.dm b/modular_ss220/new_mecha_executioner/code/mecha_wreckage.dm
new file mode 100644
index 000000000000..c34db2b4bc52
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mecha_wreckage.dm
@@ -0,0 +1,6 @@
+/obj/structure/mecha_wreckage/executioner
+ name = "\improper Executioner wreckage"
+ desc = "He failed. But.. he return. He never leave humankind."
+ icon_state = "executioner-broken"
+ parts = list(/obj/item/soulstone/anybody/purified)
+
diff --git a/modular_ss220/new_mecha_executioner/code/mechfabricator_designs.dm b/modular_ss220/new_mecha_executioner/code/mechfabricator_designs.dm
new file mode 100644
index 000000000000..03bbce6a7b8c
--- /dev/null
+++ b/modular_ss220/new_mecha_executioner/code/mechfabricator_designs.dm
@@ -0,0 +1,72 @@
+//Executioner
+/datum/design/executioner_chassis
+ name = "Exosuit Chassis (\"Executioner\")"
+ id = "Executioner_chassis"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/chassis/executioner
+ materials = list(MAT_METAL=30000,MAT_GLASS=5000)
+ construction_time = 100
+ category = list("Executioner")
+
+/datum/design/executioner_torso
+ name = "Exosuit Torso (\"Executioner\")"
+ id = "executioner_torso"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_torso
+ materials = list(MAT_METAL=30000,MAT_GLASS=20000,MAT_SILVER=10000)
+ construction_time = 300
+ category = list("Executioner")
+
+/datum/design/executioner_head
+ name = "Exosuit Head (\"Executioner\")"
+ id = "executioner_head"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_head
+ materials = list(MAT_METAL=10000,MAT_SILVER=10000)
+ construction_time = 200
+ category = list("Executioner")
+
+/datum/design/executioner_left_arm
+ name = "Exosuit Left Arm (\"Executioner\")"
+ id = "executioner_left_arm"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_left_arm
+ materials = list(MAT_METAL=10000,MAT_SILVER=10000)
+ construction_time = 200
+ category = list("Executioner")
+
+/datum/design/executioner_right_arm
+ name = "Exosuit Right Arm (\"Executioner\")"
+ id = "executioner_right_arm"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_right_arm
+ materials = list(MAT_METAL=10000,MAT_SILVER=10000)
+ construction_time = 200
+ category = list("Executioner")
+
+/datum/design/executioner_left_leg
+ name = "Exosuit Left Leg (\"Executioner\")"
+ id = "executioner_left_leg"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_left_leg
+ materials = list(MAT_METAL=15000,MAT_SILVER=10000)
+ construction_time = 200
+ category = list("Executioner")
+
+/datum/design/executioner_right_leg
+ name = "Exosuit Right Leg (\"Executioner\")"
+ id = "executioner_right_leg"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_right_leg
+ materials = list(MAT_METAL=15000,MAT_SILVER=10000)
+ construction_time = 200
+ category = list("Executioner")
+
+/datum/design/executioner_armor
+ name = "Exosuit Armor (\"executioner\")"
+ id = "Executioner_armor"
+ build_type = MECHFAB
+ build_path = /obj/item/mecha_parts/part/executioner_armor
+ materials = list(MAT_METAL=30000,MAT_SILVER=20000,MAT_TITANIUM=25000,MAT_URANIUM=23000)
+ construction_time = 600
+ category = list("Executioner")
diff --git a/modular_ss220/new_mecha_executioner/icons/actions_mecha.dmi b/modular_ss220/new_mecha_executioner/icons/actions_mecha.dmi
new file mode 100644
index 000000000000..10c72624f795
Binary files /dev/null and b/modular_ss220/new_mecha_executioner/icons/actions_mecha.dmi differ
diff --git a/modular_ss220/new_mecha_executioner/icons/mech_construct.dmi b/modular_ss220/new_mecha_executioner/icons/mech_construct.dmi
new file mode 100644
index 000000000000..def4f1b13075
Binary files /dev/null and b/modular_ss220/new_mecha_executioner/icons/mech_construct.dmi differ
diff --git a/modular_ss220/new_mecha_executioner/icons/mech_construction.dmi b/modular_ss220/new_mecha_executioner/icons/mech_construction.dmi
new file mode 100644
index 000000000000..ed9a4c8c0600
Binary files /dev/null and b/modular_ss220/new_mecha_executioner/icons/mech_construction.dmi differ
diff --git a/modular_ss220/new_mecha_executioner/icons/mecha.dmi b/modular_ss220/new_mecha_executioner/icons/mecha.dmi
new file mode 100644
index 000000000000..cae38220323c
Binary files /dev/null and b/modular_ss220/new_mecha_executioner/icons/mecha.dmi differ