Skip to content

Commit

Permalink
портирован мех со старо-пары Executioner (#645)
Browse files Browse the repository at this point in the history
<!-- Пишите **НИЖЕ** заголовков и **ВЫШЕ** комментариев, иначе что то
может пойти не так. -->
<!-- Вы можете прочитать Contributing.MD, если хотите узнать больше. -->

## Что этот PR делает

портирует меха со старо-пары

## Почему это хорошо для игры

Добавляет новый контент для роботехов и священника

## Тестирование
были тесты до переноса в модульность
## Changelog

:cl:
add: мех Executioner
imageadd: добавлены спрайты меха Executioner и его способности
/:cl:

<!-- Оба :cl:'а должны быть на месте, что-бы чейнджлог работал! Вы
можете написать свой ник справа от первого :cl:, если хотите. Иначе
будет использован ваш ник на ГитХабе. -->
<!-- Вы можете использовать несколько записей с одинаковым префиксом
(Они используются только для иконки в игре) и удалить ненужные. Помните,
что чейнджлог должен быть понятен обычным игроком. -->
<!-- Если чейнджлог не влияет на игроков(например, это рефактор), вы
можете исключить всю секцию. -->

---------

Co-authored-by: Volodymir Ohorodnytskyi <[email protected]>
  • Loading branch information
Lime-7 and Legendaxe authored Nov 10, 2023
1 parent 11548bd commit 1613525
Show file tree
Hide file tree
Showing 16 changed files with 595 additions and 0 deletions.
1 change: 1 addition & 0 deletions modular_ss220/modular_ss220.dme
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
#include "outfits/_outfits.dme"
#include "world_view_bigger/_world_view_bigger.dme"
#include "mecha_skins/mecha_skins.dme"
#include "new_mecha_executioner/_new_mecha_executioner.dme"
#include "queue/_queue.dme"

// --- PRIME --- //
Expand Down
4 changes: 4 additions & 0 deletions modular_ss220/new_mecha_executioner/_new_mecha_executioner.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
/datum/modpack/new_mecha_executioner
name = "Executor"
desc = "старо-новый мех. порт со старо пары"
author = "Lime-7"
11 changes: 11 additions & 0 deletions modular_ss220/new_mecha_executioner/_new_mecha_executioner.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#include "_new_mecha_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"
23 changes: 23 additions & 0 deletions modular_ss220/new_mecha_executioner/code/Executor.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
/obj/mecha/combat/executioner
name = "mk. V \"The Executioner\""
desc = "Дредноут Ордена Палача, тяжелая конфигурация огневой поддержки, созданная для уничтожения зла и еретиков. Чрезвычайно хорош в ближнем бою."
icon = 'modular_ss220/new_mecha_executioner/icons/mecha.dmi'
icon_state = "executioner"
initial_icon = "executioner"
max_temperature = 65000
step_in = 4
max_integrity = 350
deflect_chance = 15
force = 40
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
armor = list("melee" = 70, "bullet" = 15, "laser" = 5, "energy" = 30, "bomb" = 20, "bio" = 0, "rad" = 100, "fire" = 100, "acid" = 100)
max_equip = 3
wreckage = /obj/structure/mecha_wreckage/executioner

/obj/mecha/combat/executioner/GrantActions(mob/living/user, human_occupant = 0)
. = ..()
flash_action.Grant(user, src)

/obj/mecha/combat/executioner/RemoveActions(mob/living/user, human_occupant = 0)
. = ..()
flash_action.Remove(user)
36 changes: 36 additions & 0 deletions modular_ss220/new_mecha_executioner/code/mech_fabricator.dm
Original file line number Diff line number Diff line change
@@ -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",
"Executioner",
"Phazon",
"Exosuit Equipment",
"Cyborg Upgrade Modules",
"Medical",
"Misc"
)
3 changes: 3 additions & 0 deletions modular_ss220/new_mecha_executioner/code/mecha.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/obj/mecha
var/flash_ready = TRUE
var/flash_cooldown = 50
34 changes: 34 additions & 0 deletions modular_ss220/new_mecha_executioner/code/mecha_actions.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/obj/mecha
var/datum/action/innate/mecha/flash/flash_action = new
/datum/action/innate/mecha/flash
name = "Святой огонь"
desc = "Очистите оскверненных тварей с помощью святого света!"
icon_icon = 'modular_ss220/new_mecha_executioner/icons/actions_mecha.dmi'
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, "<span class='danger'>Вы ослепили [M] священным светом!</span>")
to_chat(M, "<span class='userdanger'>[chassis] ослепил Вас с помощью священного света!</span>")
else
to_chat(user, "<span class='warning'>Вам не удалось ослепить [M] священным светом!</span>")
to_chat(M, "<span class='danger'>[chassis] не смог ослепить вас с помощью священного света!</span>")
return

/datum/action/innate/mecha/flash/Activate()
if(!owner || !chassis || chassis.occupant != owner)
return
if(chassis.flash_ready)
chassis.visible_message("<span class='disarm'>[chassis] испускает ослепляющий святой свет!</span>", "<span class='danger'>Твой [chassis] испускает ослепляющий святой свет!</span>")
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("<span class='warning'>Святой свет ещё не готов!</span>")
Loading

0 comments on commit 1613525

Please sign in to comment.