diff --git a/modular_ss220/prime_only/_prime.dme b/modular_ss220/prime_only/_prime.dme index 901850d569ec..cddea41de7c6 100644 --- a/modular_ss220/prime_only/_prime.dme +++ b/modular_ss220/prime_only/_prime.dme @@ -3,6 +3,9 @@ #include "code/anakonda.dm" #include "code/cattleprod.dm" #include "code/clothing/under.dm" +#include "code/clothing/suits.dm" +#include "code/clothing/head.dm" +#include "code/clothing/mask.dm" #include "code/megafauna.dm" #include "code/objects.dm" #include "code/outfit.dm" @@ -10,3 +13,4 @@ #include "code/vending.dm" #include "code/crematorium.dm" #include "code/shuttle_gib.dm" +#include "code/spells.dm" diff --git a/modular_ss220/prime_only/code/clothing/head.dm b/modular_ss220/prime_only/code/clothing/head.dm new file mode 100644 index 000000000000..36c77ddf29de --- /dev/null +++ b/modular_ss220/prime_only/code/clothing/head.dm @@ -0,0 +1,27 @@ +// MARK: Heads + +/obj/item/clothing/head/beret/centcom/officer/blueshield_chef + name = "берет начальника подразделения ''Синий Щит''" + desc = "Отличительный берет начальника локальным подразделением ''Синий Щит''. Выполнен в традиционных для компании цветах." + icon = 'modular_ss220/prime_only/icons/object/head.dmi' + icon_override = 'modular_ss220/prime_only/icons/mob/head.dmi' + icon_state = "blueshield_chef_beret" + +/obj/item/clothing/head/helmet/space/hardsuit/midnight_suit + name = "\improper шлем" + desc = "Шлем костюма Миднайта." + icon = 'modular_ss220/prime_only/icons/object/head.dmi' + icon_override = 'modular_ss220/prime_only/icons/mob/head.dmi' + icon_state = "hardsuit0-midnightsuit" + item_state = "hardsuit0-midnightsuit" + item_color = "midnightsuit" + slowdown = 0 + armor = list(MELEE = 115, BULLET = 115, LASER = 65, ENERGY = 40, BOMB = 200, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) + +/obj/item/clothing/head/soft/midnight_cap + name = "чёрно-красная кепка" + desc = "Обычная кепка чёрно-красной расцветки. Круто!" + icon = 'modular_ss220/prime_only/icons/object/head.dmi' + icon_override = 'modular_ss220/prime_only/icons/mob/head.dmi' + icon_state = "midnightsoft" + item_color = "midnight" diff --git a/modular_ss220/prime_only/code/clothing/mask.dm b/modular_ss220/prime_only/code/clothing/mask.dm new file mode 100644 index 000000000000..8c34b59450ed --- /dev/null +++ b/modular_ss220/prime_only/code/clothing/mask.dm @@ -0,0 +1,6 @@ +/obj/item/clothing/mask/breath/breathscarf/midnight + name = "красный шарф с системой дыхания" + desc = "Стильный и инновационный шарф красного цвета, который служит дыхательной маской в экстремальных ситуациях." + icon = 'modular_ss220/prime_only/icons/object/mask.dmi' + icon_override = 'modular_ss220/prime_only/icons/mob/mask.dmi' + icon_state = "midnightscarf" diff --git a/modular_ss220/prime_only/code/clothing/suits.dm b/modular_ss220/prime_only/code/clothing/suits.dm new file mode 100644 index 000000000000..7e7c1a951880 --- /dev/null +++ b/modular_ss220/prime_only/code/clothing/suits.dm @@ -0,0 +1,87 @@ +// MARK: Coats + +/obj/item/clothing/suit/midnight_coat + name = "потрёпанное пальто" + desc = "Чёрное пальто с меховым воротником, подкладка которого подшита плотным слоем дюраткани. На внутренней стороне имеется нашивка в виде букв ''M.B.'', вплетенных в символ звезды." + icon = 'modular_ss220/prime_only/icons/object/suits.dmi' + icon_state = "midnight_coat" + icon_override = 'modular_ss220/prime_only/icons/mob/suits.dmi' + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS + armor = list(MELEE = 15, BULLET = 5, LASER = 5, ENERGY = 5, BOMB = 0, RAD = 0, FIRE = 10, ACID = 5) + allowed = list(/obj/item/gun, /obj/item/flashlight, /obj/item/tank/internals, /obj/item/melee/baton, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/restraints/handcuffs, /obj/item/dualsaber) + sprite_sheets = list( + "Kidan" = 'modular_ss220/prime_only/icons/mob/species/kidan/suits/suits.dmi', + "Vox" = 'modular_ss220/prime_only/icons/mob/species/vox/suits/suits.dmi', + "Drask" = 'modular_ss220/prime_only/icons/mob/species/drask/suits/suits.dmi', + ) + var/datum/action/item_action/chameleon/stealth/stealth_action + +/datum/action/item_action/chameleon/stealth + name = "стелс-режим" + button_overlay_icon_state = "mech_lights_off" + var/stealth_alpha = 75 + var/equiped = 0 + +/datum/action/item_action/chameleon/stealth/Grant(mob/M) + ..() + +/datum/action/item_action/chameleon/change/Remove(mob/M) + if(M && (M == owner)) + M.alpha = initial(M.alpha) + LAZYREMOVE(M.actions, src) + ..() + +/datum/action/item_action/chameleon/stealth/Trigger(left_click) + . = ..() + set_stealth(owner) + +/datum/action/item_action/chameleon/stealth/proc/set_stealth(mob/user) + if(user.alpha != stealth_alpha) + user.alpha = stealth_alpha + else + user.alpha = initial(user.alpha) + +/obj/item/clothing/suit/midnight_coat/Initialize(mapload) + . = ..() + stealth_action = new(src) + +/obj/item/clothing/suit/midnight_coat/Destroy() + QDEL_NULL(stealth_action) + return ..() + +/obj/item/clothing/suit/midnight_coat/item_action_slot_check(slot, mob/user) + . = ..() + if(slot == ITEM_SLOT_OUTER_SUIT) + return TRUE + else + user.alpha = initial(user.alpha) + +/obj/item/clothing/suit/browntrenchcoat/blueshield_chef + name = "одеяния начальника подразделения \"Синий Щит\"" + desc = "Мундир командиров локальных подразделений ''Синий Щит'' контролирующих работу сотрудников как с Административных Объектов Нанотрейзен, так и непосредственно на местах. \ + Как правило, его носители имеют старшее офицерское звание как в организации ''Щитов'', так и во флоте компании." + icon = 'modular_ss220/prime_only/icons/object/suits.dmi' + icon_state = "blueshield_chef_coat_open" + icon_override = 'modular_ss220/prime_only/icons/mob/suits.dmi' + body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS + cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS + armor = list(MELEE = 200, BULLET = 200, LASER = 50, ENERGY = 50, BOMB = INFINITY, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) + allowed = list(/obj/item/gun, /obj/item/flashlight, /obj/item/tank/internals, /obj/item/melee/baton, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/restraints/handcuffs, /obj/item/dualsaber) + sprite_sheets = list( + "Kidan" = 'modular_ss220/prime_only/icons/mob/species/kidan/suits/suits.dmi', + "Vox" = 'modular_ss220/prime_only/icons/mob/species/vox/suits/suits.dmi', + "Drask" = 'modular_ss220/prime_only/icons/mob/species/drask/suits/suits.dmi', + ) + +// MARK: Hardsuit +/obj/item/clothing/suit/space/hardsuit/midnight_suit + name = "\improper модернизированный элитный экзоскелет" + desc = "Экзоскелет ударной группы синдиката, модернизированный по спецзаказу Миднайта Блэка." + icon = 'modular_ss220/prime_only/icons/object/suits.dmi' + icon_override = 'modular_ss220/prime_only/icons/mob/suits.dmi' + icon_state = "hardsuit-midnightsuit" + item_state = "hardsuit-midnightsuit" + armor = list(MELEE = 115, BULLET = 115, LASER = 65, ENERGY = 40, BOMB = 200, RAD = INFINITY, FIRE = INFINITY, ACID = INFINITY) + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/midnight_suit + species_restricted = list("Human") // Уточню на счет лока на расу diff --git a/modular_ss220/prime_only/code/clothing/under.dm b/modular_ss220/prime_only/code/clothing/under.dm index 488977d08724..4d1fe86ff4d3 100644 --- a/modular_ss220/prime_only/code/clothing/under.dm +++ b/modular_ss220/prime_only/code/clothing/under.dm @@ -1,4 +1,5 @@ -// Explorer's outfits +// MARK: Under + /obj/item/clothing/under/rank/cargo/expedition_prime name = "navy expedition uniform" desc = "Экспедиционная форма военного образца с опознавательными знаками Нанотрейзен." @@ -31,3 +32,17 @@ icon_state = "expedition_prime_grey" item_state = "expedition_prime_grey" item_color = "expedition_prime_grey" + +/obj/item/clothing/under/midnight_under + name = "профессиональный тактический костюм" + desc = "Костюм настоящих профессионалов. Лёгкий и практичный, обладает встроенной активной терморегуляционной системой и повышенной прочностью за счет вплетенных пластитановых волокон. \ + Надевая его, вы чувстуете себя менее заметным." + icon = 'modular_ss220/prime_only/icons/object/under.dmi' + icon_state = "midnight_under" + item_state = "midnight_under" + item_color = "midnight_under" + sprite_sheets = list( + "Human" = 'modular_ss220/prime_only/icons/mob/under.dmi', + ) + species_restricted = list("Human") // Уточню + armor = list(MELEE = 10, BULLET = 10, LASER = 5, ENERGY = 5, BOMB = 5, RAD = 0, FIRE = 5, ACID = 50) diff --git a/modular_ss220/prime_only/code/objects.dm b/modular_ss220/prime_only/code/objects.dm index ad73d8ab1bea..2d13d01f81af 100644 --- a/modular_ss220/prime_only/code/objects.dm +++ b/modular_ss220/prime_only/code/objects.dm @@ -1,8 +1,10 @@ +// MARK: Prime sabers + #define LEGENDARY_SWORDS_CKEY_WHITELIST list("mooniverse") -/obj/item/melee/rapier/cane_rapier - name = "Трость-рапира" - desc = "Стилизованная под трость рапира, чье элегантное и обоюдоострое лезвие усажено на роскошно украшенную рукоять. Одни лишь инкрустированные в неё драгоценные камни стоят как целая звездная система." +/obj/item/melee/saber/cane_rapier + name = "трость-рапира" + desc = "Стилизованная под трость рапира, чье элегантное и обоюдоострое лезвие насажено на роскошно украшенную рукоять. Одни лишь инкрустированные в неё драгоценные камни стоят как целая звездная система." icon = 'modular_ss220/prime_only/icons/saber.dmi' icon_state = "trrapier" item_state = "trrapier" @@ -10,23 +12,23 @@ lefthand_file = 'modular_ss220/prime_only/icons/saber_left.dmi' righthand_file = 'modular_ss220/prime_only/icons/saber_right.dmi' -/obj/item/storage/belt/rapier/cane_rapier - name = "Трость-рапира" - desc = "Ножны стилизованной под трость рапиры. Их корпус вырезан из черного дерева и щедро украшен позолотой. Их владелец обладает неоспоримый богатством и властью в известной Галактике." +/obj/item/storage/belt/sheath/saber/cane_rapier + name = "трость-рапира" + desc = "Ножны стилизованной под трость рапиры. Их корпус вырезан из черного дерева и щедро украшен позолотой. Их владелец обладает неоспоримым богатством и властью в известной Галактике." icon_state = "trsheath" item_state = "trsheath" icon = 'modular_ss220/prime_only/icons/saber.dmi' lefthand_file = 'modular_ss220/prime_only/icons/saber_left.dmi' righthand_file = 'modular_ss220/prime_only/icons/saber_right.dmi' - can_hold = list(/obj/item/melee/rapier/cane_rapier) + can_hold = list(/obj/item/melee/saber/cane_rapier) -/obj/item/storage/belt/rapier/cane_rapier/populate_contents() - new /obj/item/melee/rapier/cane_rapier(src) +/obj/item/storage/belt/sheath/saber/cane_rapier/populate_contents() + new /obj/item/melee/saber/cane_rapier(src) update_icon() /obj/item/dualsaber/legendary_saber name = "Злоба" - desc = "\"Злоба\" - один из легендарных энергетических мечей Галактики. Словно источая мистическую энергию, \"Злоба\" является олицетворением самой Тьмы, вызывающей трепет и ужас врагов её владельца. Гладкая и простая рукоять меча не может похвастаться орнаментами, узорами или древними рунами, но способна выплескивать рванный энергетический клинок кроваво-красного света, словно кричащий о непокорности и ярости своего владельца. Некоторые истории гласят, что в этом клинке прибывает сама темная сущность могущества и бесконечного гнева, готовая исполнить волю своего хозяина даже за пределами пространства и времени. \n Создатель: Согда К'Трим. Текущий владелец: Миднайт Блэк." + desc = "\"Злоба\" - один из легендарных энергетических мечей Галактики. Является олицетворением самой Тьмы, вызывающей трепетный ужас врагов её владельца. По легенде, \"Злоба\" была собрана своим создателем из чистой и всеобъятной ненависти. \nТекущий владелец: Миднайт Блэк." icon = 'modular_ss220/prime_only/icons/saber.dmi' lefthand_file = 'modular_ss220/prime_only/icons/saber_left.dmi' righthand_file = 'modular_ss220/prime_only/icons/saber_right.dmi' @@ -40,7 +42,7 @@ var/hit_unwield = "swing_hit" var/ranged = FALSE var/power = 1 - var/refusal_text = "Злоба неподвластна твоей воле, усмрить её сможет лишь сильнейший." + var/refusal_text = "Злоба неподвластна твоей воле, усмирить её сможет лишь сильнейший." var/datum/enchantment/enchant = new/datum/enchantment/dash /obj/item/dualsaber/legendary_saber/Initialize(mapload) @@ -69,7 +71,7 @@ /obj/item/dualsaber/legendary_saber/sorrow_catcher name = "Ловец Скорби" - desc = "\"Ловец Скорби\" (Второе название \"Плакса\") - один из легендарных энергетических мечей Галактики. Он символизирует не только силу власти и могущества, но и является предметом гордости своего обладателя. Искусно выполненный клинок излучает мягкий голубой свет, словно призывая к миру и согласию, но при этом скрывает в себе силу и решимость защитить своего хозяина любой ценой. Рукоять меча сконструирована строго и со вкусом, создана из темного металла с матовым покрытием и украшена фреской логотипа NT. \"Ловец Скорби\" имеет специфический звук, отдалённо напоминающий женский плач. Поэтому, немногие очевидцы гнева его хозяина дали мечу второе название - \"Плакса.\" \n Создатель: Гаскон-Валлен-Деламот. Текущий владелец: Билл Громов." + desc = "\"Ловец Скорби\" (Второе название \"Плакса\") - один из легендарных энергетических мечей Галактики. Имеет специфический звук, отдалённо напоминающий плач. По легендам, этот меч впитывает предсмертные вопли своих повержанных врагов. \nТекущий владелец: Билл Громов." icon_state = "gr_dualsaber0" blade_color = "gromov" refusal_text = "Ну, заплачь." @@ -81,7 +83,7 @@ /obj/item/dualsaber/legendary_saber/flame name = "Пламя" - desc = "\"Пламя\" - один из легендарных энергетических мечей Галактики. Он отражает неумолимую справедливость и рьяность характера своего хозяина. В противоречие грозному названию, эфес меча представляет собой аккуратное и \"нежное\" произведение искусства - отполированная нарезная титановая основа завершается золотым навершием, а декоративная гарда выполнен в виде раскрывшегося бутона. Энергетический клинок источает яркий фиолетовый свет, несущий очищение и упокоение своим врагам. Рукоять меча крайне хорошо сбалансирована и отдает дань аристократическим традициям человеческого прошлого. \n Создатель: Гаскон-Валлен-Деламот. Текущий владелец: Шарлотта Дитерхис." + desc = "\"Пламя\" - один из легендарных энергетических мечей Галактики. Оружие завоевателей. Был создан одной из знатных семей Эллизиума и долгое время являлся их фамильной реликвией. \nТекущий владелец: Шарлотта Дитерхис." icon_state = "sh_dualsaber0" blade_color = "sharlotta" refusal_text = "Кровь и свет принадлежат лишь одному." @@ -93,7 +95,7 @@ /obj/item/dualsaber/legendary_saber/devotion name = "Верность клятве" - desc = "\"Верность Клятве\" - один из легендарных энергетических мечей Галактики. Этот меч в первую очередь является сакральным символом, связывающий своего владельца вечной Клятвой. Его украшенную древними иероглифами человеческой расы рукоять покрывает хромированный сатин, а двойное изумрудно-зелёное лезвие меча требует от своего хозяина виртуозности и мастерства в обращении, в то же время являясь испытанием доблести, чести и силы духа. Одна из историй этого артефакта гласит, что в свечении клинка отражается душа его создателя - Арканона, который проводил долгие годы в изоляции в попытках создать что-то большее, чем просто оружие. \n Создатель: Арканон. Текущий владелец: Хель Кириэн." + desc = "\"Верность Клятве\" - один из легендарных энергетических мечей Галактики. Это оружие является сакральным символом, обязующим чтить и исполнять данные клятвы. По легендам, в изумрудном свечении клинка отражается душа его создателя. \nДлительное время был утерян." icon_state = "kir_dualsaber0" blade_color = "kirien" refusal_text = "Только достойный узрит свет." @@ -104,12 +106,13 @@ hit_wield = 'modular_ss220/prime_only/sound/weapons/kir_saberhit.ogg' /obj/item/dualsaber/legendary_saber/sister - name = "Сестра" - desc = "\"Сестра\" - один из легендарных энергетических мечей Галактики. Являясь \"старшей\" парной частью еще одного легендарного меча - \"Ловца Бегущих\", это оружие представляет собой удивительный артефакт с глубокой историей и мистическими свойствами. Его лезвие излучает мягкий золотой свет, который извечно является символом мудрости и мощи. \"Сестра\" - это не просто меч, а символ верности высшим идеалам, дающий своему хозяину силу и решимость. Форма рукояти отсылает к оружию Справедливых Рыцарей древней человеческой истории и обладает строгим стилем, дополняющим своего владельца. Всю свою историю этот меч являлся желанным объектом многих великих существ, но \"Сестра\" способна поистине раскрыться лишь в руках того, кто искренне верит в силу справедливости и не понаслышке знает что такое честь и доблесть. \n Создатель: Коникс`Хеллькикс. Текущий Владелец: Мунивёрс Нормандия." + name = "Светлая Сестра" + desc = "\"Светлая Сестра\" - один из легендарных энергетических мечей Галактики. Имеет крайне редкий кристалл с ярко-белым, \"светлым\" свечением. Меч явно создавался под женскую руку и имеет прекрасный баланс. По легендам, в свое время этим мечом был сражен один из лидеров Синдиката - \"Красавка\". \nТекущий Владелец: Мунивёрс Нормандия." icon_state = "norm_dualsaber0" blade_color = "normandy" - refusal_text = "Ты не принадлежишь сестре, верни её законному владельцу." - colormap = LIGHT_COLOR_HOLY_MAGIC + refusal_text = "Ты не принадлежишь Сестре, верни её законному владельцу." + colormap = LIGHT_COLOR_HALOGEN + brightness_on = 3 saber_name = "norm" wieldsound = 'modular_ss220/prime_only/sound/weapons/norm_saberon.ogg' unwieldsound = 'modular_ss220/prime_only/sound/weapons/norm_saberoff.ogg' @@ -117,7 +120,7 @@ /obj/item/dualsaber/legendary_saber/flee_catcher name = "Ловец Бегущих" - desc = "\"Ловец Бегущих\" - один из легендарных энергетических мечей Галактики. Являясь \"младшей\" парной частью еще одного легендарного меча - \"Сестры\", это оружие представляет собой более грубое и практичное творение. Корпус рукояти, изобилующий царапинами и потёртостями, говорит о тяжелой истории меча. Одной из традиций владельцев этого оружия является рисование под кнопкой включения отметок в виде белых жетонов, коих уже насчитывается семь штук. Рядом с самым первым жетоном выгравирована надпись : \"2361. А.М.\" \n Цвет клинка ярко-желтый, его рукоять удлинена для комфортного боя как одной, так и двумя руками, навершие Типа \"P\" покрыто золотом и обладает специальным разъёмом для подключения своей старшей \"Сестры\", а гарда представляет собой два закругленных декоративных отростка. Из старых легенд известно, что строптивый и бурный характер меча могли сдержать лишь настоящие мастера, которые использовали хаотичный, но адаптивный под врага стиль боя. \n Создатель: Коникс`Хеллькикс. Текущий Владелец: Мунивёрс Нормандия, в последствии был передан Рицу Келли." + desc = "\"Ловец Бегущих\" - один из легендарных энергетических мечей Галактики. Имеет крайне потрёпанный временем и боями вид. По легендам, своё название клинок заработал на славе известного охотника за головами, отлавливающего беглецов и предателей. \nТекущий Владелец: Рицу Келли." icon_state = "kel_dualsaber0" blade_color = "kelly" refusal_text = "Ловец бегущих не слушается тебя, кажется он хочет вернуться к хозяину." @@ -127,6 +130,18 @@ unwieldsound = 'modular_ss220/prime_only/sound/weapons/kel_saberoff.ogg' hit_wield = 'modular_ss220/prime_only/sound/weapons/kel_saberhit.ogg' +/obj/item/dualsaber/legendary_saber/eris_star + name = "Звезда Эриды" + desc = "\"Звезда Эриды\" - один из легендарных энергетических мечей Галактики, самый могущественный по признанию многих мастеров. По легендам, этот меч был создан могучей воительницей, которая вложила в него частичку своей души. \nТекущий Владелец: Аарон Кандрос. " + icon_state = "aar_dualsaber0" + blade_color = "aaron" + refusal_text = "Свет неистовой звезды опаляет тебя." + colormap = LIGHT_COLOR_FIRE + saber_name = "aar" + wieldsound = 'modular_ss220/prime_only/sound/weapons/aar_saberon.ogg' + unwieldsound = 'modular_ss220/prime_only/sound/weapons/aar_saberoff.ogg' + hit_wield = 'modular_ss220/prime_only/sound/weapons/aar_saberhit.ogg' + /obj/item/dualsaber/legendary_saber/afterattack(atom/target, mob/user, proximity_flag, click_parameters) . = ..() enchant?.on_legendary_hit(target, user, proximity_flag, src) diff --git a/modular_ss220/prime_only/code/outfit.dm b/modular_ss220/prime_only/code/outfit.dm index ab60576132b5..0d352adaf3be 100644 --- a/modular_ss220/prime_only/code/outfit.dm +++ b/modular_ss220/prime_only/code/outfit.dm @@ -1,6 +1,355 @@ -// Explorer's outfits +// MARK: Explorer + /datum/outfit/job/explorer uniform = /obj/item/clothing/under/rank/cargo/expedition_prime head = /obj/item/clothing/head/soft/black backpack = /obj/item/storage/backpack satchel = /obj/item/storage/backpack/satchel_norm + +// MARK: Event outfits + +/datum/outfit/job/admin/delta817 + name = "Delta 817 - ARG, no armor" + uniform = /obj/item/clothing/under/solgov/srt + belt = /obj/item/storage/belt/military/assault/srt + shoes = /obj/item/clothing/shoes/jackboots + head = /obj/item/clothing/head/beret/solgov/command + gloves = /obj/item/clothing/gloves/combat + mask = /obj/item/clothing/mask/gas/sechailer + glasses = /obj/item/clothing/glasses/hud/security/night + l_pocket = /obj/item/tank/internals/emergency_oxygen/double + l_ear = /obj/item/radio/headset/centcom + r_pocket = /obj/item/reagent_containers/hypospray/combat/nanites + back = /obj/item/storage/backpack/security + pda = /obj/item/pda/centcom + id = /obj/item/card/id/centcom + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/flashbangs, + /obj/item/ammo_box/magazine/m556/arg = 5, + /obj/item/flashlight/seclite, + /obj/item/grenade/plastic/c4/x4, + /obj/item/melee/energy/sword/saber, + /obj/item/shield/energy, + /obj/item/gun/projectile/automatic/ar + ) + bio_chips = list( + /obj/item/bio_chip/mindshield + ) + cybernetic_implants = list( + /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, + /obj/item/organ/internal/cyberimp/arm/combat/centcom, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, + /obj/item/organ/internal/eyes/cybernetic/xray/hardened, + ) + +/datum/outfit/job/admin/delta817/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Normandy Special Forces") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Normandy Special Forces" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/delta817/arg + name = "Delta 817 - ARG, armor" + back = /obj/item/mod/control/pre_equipped/responsory/commander + +/datum/outfit/job/admin/delta817/nf10 + name = "Delta 817 - NF10, armor" + back = /obj/item/mod/control/pre_equipped/responsory/commander + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/flashbangs, + /obj/item/ammo_box/magazine/smgm9mm/ap = 5, + /obj/item/flashlight/seclite, + /obj/item/grenade/plastic/c4/x4, + /obj/item/melee/energy/sword/saber, + /obj/item/shield/energy, + /obj/item/gun/projectile/automatic/proto + ) + +/datum/outfit/job/admin/delta817/l6saw + name = "Delta 817 - l6saw, armor" + back = /obj/item/mod/control/pre_equipped/apocryphal + r_hand = /obj/item/gun/projectile/automatic/l6_saw + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/flashbangs, + /obj/item/ammo_box/magazine/mm556x45 = 5, + /obj/item/flashlight/seclite, + /obj/item/grenade/plastic/c4/x4, + /obj/item/melee/energy/sword/saber, + /obj/item/shield/energy, + ) + +/datum/outfit/job/admin/delta817/ikmk2 + name = "Delta 817 - IK-M2, armor" + back = /obj/item/mod/control/pre_equipped/responsory/security + r_hand = /obj/item/gun/projectile/automatic/lasercarbine + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/flashbangs, + /obj/item/ammo_box/magazine/laser/ert = 5, + /obj/item/flashlight/seclite, + /obj/item/grenade/plastic/c4/x4, + /obj/item/melee/energy/sword/saber, + /obj/item/shield/energy, + ) + +/datum/outfit/job/admin/delta817/pulse + name = "Delta 817 - pulse, armor" + back = /obj/item/mod/control/pre_equipped/apocryphal + r_hand = /obj/item/shield/energy + backpack_contents = list( + /obj/item/storage/box/responseteam, + /obj/item/storage/box/flashbangs, + /obj/item/flashlight/seclite, + /obj/item/grenade/plastic/c4/x4, + /obj/item/melee/energy/sword/saber, + /obj/item/gun/energy/pulse + ) + +/datum/outfit/job/admin/ntspecops/normandy + name = "SOO Normandy" + suit = /obj/item/clothing/suit/space/deathsquad/officer/soo_brown + l_pocket = /obj/item/dualsaber/legendary_saber/sister + backpack_contents = list( + /obj/item/gun/projectile/revolver/mateba, + /obj/item/ammo_box/a357 = 3, + /obj/item/clothing/accessory/holster, + ) + cybernetic_implants = list( + /obj/item/organ/internal/eyes/cybernetic/xray/hardened, + /obj/item/organ/internal/cyberimp/brain/anti_stam/hardened, + /obj/item/organ/internal/cyberimp/chest/nutriment/plus/hardened, + /obj/item/organ/internal/cyberimp/arm/combat/centcom, + ) + bio_chips = list( + /obj/item/bio_chip/mindshield + ) + +/datum/outfit/job/admin/ntnavyofficer/traisen + name = "Heinrich Traisen III" + r_hand = /obj/item/storage/belt/sheath/saber/cane_rapier + head = /obj/item/clothing/head/ntrep + mask = /obj/item/clothing/mask/gas/navy_officer + suit = /obj/item/clothing/suit/space/deathsquad/officer/field/cloak_nt + back = /obj/item/storage/backpack/satchel + + +/datum/outfit/job/admin/ntnavyofficer/traisen/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Nanotrasen Chief Executive Officer") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Nanotrasen Chief Executive Officer" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/ntnavyofficer/field/hr_officer + name = "Chief HR Officer" + suit = /obj/item/clothing/suit/space/deathsquad/officer/field/cloak_nt + l_pocket = /obj/item/dualsaber/legendary_saber/flame + gloves = /obj/item/clothing/gloves/color/white + uniform = /obj/item/clothing/under/rank/procedure/representative + +/datum/outfit/job/admin/ntnavyofficer/field/hr_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Chief HR Officer") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Chief HR Officer" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/ntnavyofficer/field/secretary_officer + name = "Special Operations Secretary" + l_pocket = /obj/item/dualsaber/legendary_saber/sorrow_catcher + head = /obj/item/clothing/head/helmet/space/deathsquad/beret + mask = /obj/item/clothing/mask/breath/breathscarf + suit = /obj/item/clothing/suit/space/deathsquad/officer/field + backpack_contents = list( + /obj/item/gun/projectile/revolver/reclinable/rsh12, + /obj/item/ammo_box/speed_loader_mm127 = 3, + /obj/item/clothing/accessory/holster, + ) + + var/list/spell_paths = list(/datum/spell/flayer/self/overclock/no_heat, + /datum/spell/flayer/self/rejuv, + /datum/spell/flayer/self/terminator_form) + +/datum/outfit/job/admin/ntnavyofficer/field/secretary_officer/on_mind_initialize(mob/living/carbon/human/H) + . = ..() + //flayer spells + for(var/spell_path in spell_paths) + var/datum/spell/flayer/S = new spell_path + S.level = S.max_level + S.cooldown_handler.recharge_duration = S.base_cooldown / 5 + S.requiers_antag_datum = FALSE + H.mind.AddSpell(S) + + //summon sword + var/datum/spell/summonitem/summon = new /datum/spell/summonitem + summon.invocation = "Скорбь!! Ко мне!" + summon.marked_item = H.l_store + H.mind.AddSpell(summon) + +/datum/outfit/job/admin/ntnavyofficer/field/secretary_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Special Operations Secretary") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Special Operations Secretary" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/ntnavyofficer/field/alt2 + name = "NT Navy Officer alt. Cloak gold, scarf" + suit = /obj/item/clothing/suit/space/deathsquad/officer/field/cloak_nt/gold + mask = /obj/item/clothing/mask/breath/breathscarf + +/datum/outfit/job/admin/ntnavyofficer/field/operational_officer + name = "Operational Group Commander" + suit = /obj/item/clothing/suit/browntrenchcoat/blueshield_chef + mask = /obj/item/clothing/mask/gas/navy_officer + head = /obj/item/clothing/head/beret/centcom/officer/blueshield_chef + gloves = /obj/item/clothing/gloves/color/white + l_pocket = /obj/item/dualsaber/legendary_saber/eris_star + backpack_contents = list( + /obj/item/gun/projectile/automatic/pistol/beretta, + /obj/item/ammo_box/magazine/beretta/mm919 = 3, + /obj/item/clothing/accessory/holster, + ) + +/datum/outfit/job/admin/ntnavyofficer/field/operational_officer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Operational Group Commander") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Operational Group Commander" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/ntnavyofficer/field/counterintelligence + name = "Counterintelligence Chief Officer" + suit = /obj/item/clothing/suit/space/deathsquad/officer + uniform = /obj/item/clothing/under/pants/classicjeans + head = /obj/item/clothing/head/cowboyhat + glasses = /obj/item/clothing/glasses/eyepatch + gloves = /obj/item/clothing/gloves/ring/silver + belt = /obj/item/storage/belt/military/assault/m1911 + shoes = /obj/item/clothing/shoes/combat + r_pocket = /obj/item/reagent_containers/hypospray/combat/nanites + l_pocket = /obj/item/dualsaber/legendary_saber/flee_catcher + back = /obj/item/storage/backpack/satchel + backpack_contents = list( + /obj/item/gun/projectile/automatic/pistol/m1911, + /obj/item/cane, + /obj/item/clothing/accessory/holster, + /obj/item/flashlight/seclite + ) + +/datum/outfit/job/admin/ntnavyofficer/field/counterintelligence/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Counterintelligence Chief Officer") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Counterintelligence Chief Officer" + H.sec_hud_set_ID() + +/obj/item/storage/belt/military/assault/m1911/populate_contents() + new /obj/item/ammo_box/magazine/m45 (src) + new /obj/item/ammo_box/magazine/m45 (src) + new /obj/item/ammo_box/magazine/m45 (src) + new /obj/item/ammo_box/magazine/m45 (src) + new /obj/item/ammo_box/magazine/m45 (src) + new /obj/item/ammo_box/magazine/m45 (src) + update_icon() + +/datum/outfit/job/admin/ntnavyofficer/field/information_security + name = "Information Security Chief" + suit = /obj/item/clothing/suit/armor/hos + mask = /obj/item/clothing/mask/gas/navy_officer + l_pocket = /obj/item/dualsaber/legendary_saber/devotion + +/datum/outfit/job/admin/ntnavyofficer/field/information_security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_centcom_access("Nanotrasen Navy Officer"), "Information Security Chief") + I.rank = "Nanotrasen Navy Officer" + I.assignment = "Information Security Chief" + H.sec_hud_set_ID() + +/datum/outfit/job/admin/syndicate + name = "Syndicate Agent" + uniform = /obj/item/clothing/under/syndicate + back = /obj/item/storage/backpack + belt = /obj/item/storage/belt/utility/full/multitool + gloves = /obj/item/clothing/gloves/combat + shoes = /obj/item/clothing/shoes/combat + l_ear = /obj/item/radio/headset/syndicate + id = /obj/item/card/id/syndicate + r_pocket = /obj/item/radio/uplink + backpack_contents = list( + /obj/item/storage/box/engineer = 1, + /obj/item/flashlight = 1, + /obj/item/card/emag = 1, + /obj/item/food/syndidonkpocket = 1 + ) + var/id_icon = "syndie" + var/id_access = "Syndicate Operative" + var/uplink_uses = 100 + +/datum/outfit/admin/syndicate/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + + var/obj/item/card/id/I = H.wear_id + if(istype(I)) + apply_to_card(I, H, get_syndicate_access(id_access), name, id_icon) + + var/obj/item/radio/uplink/U = H.r_store + if(istype(U)) + U.hidden_uplink.uplink_owner = "[H.key]" + U.hidden_uplink.uses = uplink_uses + + var/obj/item/radio/R = H.l_ear + if(istype(R)) + R.set_frequency(SYND_FREQ) + H.faction += "syndicate" + +/datum/outfit/job/admin/syndicate/midnight + name = "Midnight Agent" + uniform = /obj/item/clothing/under/midnight_under + belt = /obj/item/storage/belt/utility/full/multitool + suit = /obj/item/clothing/suit/midnight_coat + l_pocket = /obj/item/dualsaber/legendary_saber + mask = /obj/item/clothing/mask/breath/breathscarf/midnight + head = /obj/item/clothing/head/soft/midnight_cap + uplink_uses = 250 diff --git a/modular_ss220/prime_only/code/spells.dm b/modular_ss220/prime_only/code/spells.dm new file mode 100644 index 000000000000..3fb98552ebef --- /dev/null +++ b/modular_ss220/prime_only/code/spells.dm @@ -0,0 +1,10 @@ +/datum/spell/flayer + var/requiers_antag_datum = TRUE + +/datum/spell_handler/flayer/can_cast(mob/user, charge_check, show_message, datum/spell/flayer/spell) + if(!spell.requiers_antag_datum) + return TRUE + return ..() + +/datum/spell/flayer/self/overclock/no_heat + heat_per_tick = 0 diff --git a/modular_ss220/prime_only/icons/mob/head.dmi b/modular_ss220/prime_only/icons/mob/head.dmi new file mode 100644 index 000000000000..3fbc41a6bbec Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/head.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/mask.dmi b/modular_ss220/prime_only/icons/mob/mask.dmi new file mode 100644 index 000000000000..2a02e7097e38 Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/mask.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/species/drask/suits/suits.dmi b/modular_ss220/prime_only/icons/mob/species/drask/suits/suits.dmi new file mode 100644 index 000000000000..c879c12a79aa Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/species/drask/suits/suits.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/species/kidan/suits/suits.dmi b/modular_ss220/prime_only/icons/mob/species/kidan/suits/suits.dmi new file mode 100644 index 000000000000..c879c12a79aa Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/species/kidan/suits/suits.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/species/vox/suits/suits.dmi b/modular_ss220/prime_only/icons/mob/species/vox/suits/suits.dmi new file mode 100644 index 000000000000..c879c12a79aa Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/species/vox/suits/suits.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/suits.dmi b/modular_ss220/prime_only/icons/mob/suits.dmi new file mode 100644 index 000000000000..df2e48729a95 Binary files /dev/null and b/modular_ss220/prime_only/icons/mob/suits.dmi differ diff --git a/modular_ss220/prime_only/icons/mob/under.dmi b/modular_ss220/prime_only/icons/mob/under.dmi index 858e8f1dc81e..d1a657ef21ff 100644 Binary files a/modular_ss220/prime_only/icons/mob/under.dmi and b/modular_ss220/prime_only/icons/mob/under.dmi differ diff --git a/modular_ss220/prime_only/icons/object/head.dmi b/modular_ss220/prime_only/icons/object/head.dmi new file mode 100644 index 000000000000..aad7ccd152e9 Binary files /dev/null and b/modular_ss220/prime_only/icons/object/head.dmi differ diff --git a/modular_ss220/prime_only/icons/object/mask.dmi b/modular_ss220/prime_only/icons/object/mask.dmi new file mode 100644 index 000000000000..01f3cf3ce687 Binary files /dev/null and b/modular_ss220/prime_only/icons/object/mask.dmi differ diff --git a/modular_ss220/prime_only/icons/object/suits.dmi b/modular_ss220/prime_only/icons/object/suits.dmi new file mode 100644 index 000000000000..bcfa30787d0c Binary files /dev/null and b/modular_ss220/prime_only/icons/object/suits.dmi differ diff --git a/modular_ss220/prime_only/icons/object/under.dmi b/modular_ss220/prime_only/icons/object/under.dmi index f0a2c816b39e..96f68f4b8b2d 100644 Binary files a/modular_ss220/prime_only/icons/object/under.dmi and b/modular_ss220/prime_only/icons/object/under.dmi differ diff --git a/modular_ss220/prime_only/icons/saber.dmi b/modular_ss220/prime_only/icons/saber.dmi index 865585635b20..9ded5a97c8ee 100644 Binary files a/modular_ss220/prime_only/icons/saber.dmi and b/modular_ss220/prime_only/icons/saber.dmi differ diff --git a/modular_ss220/prime_only/icons/saber_left.dmi b/modular_ss220/prime_only/icons/saber_left.dmi index 193066e6e799..150a1685a113 100644 Binary files a/modular_ss220/prime_only/icons/saber_left.dmi and b/modular_ss220/prime_only/icons/saber_left.dmi differ diff --git a/modular_ss220/prime_only/icons/saber_right.dmi b/modular_ss220/prime_only/icons/saber_right.dmi index 8fe5a07ed2aa..bbf0b8d55a47 100644 Binary files a/modular_ss220/prime_only/icons/saber_right.dmi and b/modular_ss220/prime_only/icons/saber_right.dmi differ diff --git a/modular_ss220/prime_only/sound/weapons/aar_saberhit.ogg b/modular_ss220/prime_only/sound/weapons/aar_saberhit.ogg new file mode 100644 index 000000000000..a10de5e74d24 Binary files /dev/null and b/modular_ss220/prime_only/sound/weapons/aar_saberhit.ogg differ diff --git a/modular_ss220/prime_only/sound/weapons/aar_saberoff.ogg b/modular_ss220/prime_only/sound/weapons/aar_saberoff.ogg new file mode 100644 index 000000000000..62991083c974 Binary files /dev/null and b/modular_ss220/prime_only/sound/weapons/aar_saberoff.ogg differ diff --git a/modular_ss220/prime_only/sound/weapons/aar_saberon.ogg b/modular_ss220/prime_only/sound/weapons/aar_saberon.ogg new file mode 100644 index 000000000000..cc7633b914a9 Binary files /dev/null and b/modular_ss220/prime_only/sound/weapons/aar_saberon.ogg differ diff --git a/modular_ss220/prime_only/sound/weapons/norm_saberoff.ogg b/modular_ss220/prime_only/sound/weapons/norm_saberoff.ogg index 5470dd8bf5db..8841fd36aaca 100644 Binary files a/modular_ss220/prime_only/sound/weapons/norm_saberoff.ogg and b/modular_ss220/prime_only/sound/weapons/norm_saberoff.ogg differ diff --git a/modular_ss220/prime_only/sound/weapons/norm_saberon.ogg b/modular_ss220/prime_only/sound/weapons/norm_saberon.ogg index a1a85d25428d..6c537817ce17 100644 Binary files a/modular_ss220/prime_only/sound/weapons/norm_saberon.ogg and b/modular_ss220/prime_only/sound/weapons/norm_saberon.ogg differ