From 4e48cd2eb130f48f7b3f0e9a0d62adceed8eccab Mon Sep 17 00:00:00 2001 From: Kyogon <30851775+Kyogon@users.noreply.github.com> Date: Fri, 27 Oct 2023 19:01:25 -0400 Subject: [PATCH] Praetorian Modsuit (#24575) * Adds a new unique modsuit for Blueshields, stored inside of their locker. * Update mod_types.dm Cleaned up indentations. * Update mod_types.dm More indentation cleaning * Update mod_types.dm More indentation cleaning * Update mod_types.dm Indentation cleaning * Update modsuit_armour.dm Nerf of Bullet and Laser armor from 40 to 30, each. * Update mod_theme.dm Nerf of bullet and laser armor from 40 to 30, each. * Delete modular_skyrat/modules/blueshield/code/modsuit/theme.dm This file was obsolete, and is being removed to keep things clean. * Praetorian Modsuit modularization changes * Renamed file path for praetorian hardlight theme * Delete code/modules/mod/mod_theme.dm Code was added to new modular file as requested * Update console_tgui.dm Renamed file path from praetorian to blueshield * Delete modular_skyrat/modules/modsuit_armour/modsuit_armour.dm Code moved to modular file, deleted to clean bloat * Praetorian Modsuit modularization changes * Update mod_theme.dm Moved code over to modular file * Update mod_theme.dm Moved code over to modular file * Update modsuit_armour.dm Code moved to it's own modular file * Update modular_skyrat/modules/blueshield/code/modsuit/mod_theme.dm makes it look proper Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> * Updated sprites, namely the helmet+visor and chest * Secondary sprite fix on chest --------- Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com> --- .../modules/blueshield/code/closet.dm | 1 + .../blueshield/code/modsuit/mod_theme.dm | 67 ++++++++++++++++++ .../blueshield/code/modsuit/mod_type.dm | 14 ++++ .../modules/blueshield/icons/praetorian.dmi | Bin 0 -> 1333 bytes .../blueshield/icons/worn_praetorian.dmi | Bin 0 -> 2081 bytes .../MOD_sprite_accessories/mod_themes.dm | 3 + .../modules/time_clock/code/console_tgui.dm | 1 + tgstation.dme | 2 + 8 files changed, 88 insertions(+) create mode 100644 modular_skyrat/modules/blueshield/code/modsuit/mod_theme.dm create mode 100644 modular_skyrat/modules/blueshield/code/modsuit/mod_type.dm create mode 100644 modular_skyrat/modules/blueshield/icons/praetorian.dmi create mode 100644 modular_skyrat/modules/blueshield/icons/worn_praetorian.dmi diff --git a/modular_skyrat/modules/blueshield/code/closet.dm b/modular_skyrat/modules/blueshield/code/closet.dm index 8c7a3c195c9..b66f2d95c4e 100644 --- a/modular_skyrat/modules/blueshield/code/closet.dm +++ b/modular_skyrat/modules/blueshield/code/closet.dm @@ -31,3 +31,4 @@ new /obj/item/storage/medkit/tactical/blueshield(src) new /obj/item/storage/toolbox/guncase/skyrat/carwo_large_case/sindano(src) new /obj/item/storage/bag/garment/blueshield(src) + new /obj/item/mod/control/pre_equipped/blueshield(src) diff --git a/modular_skyrat/modules/blueshield/code/modsuit/mod_theme.dm b/modular_skyrat/modules/blueshield/code/modsuit/mod_theme.dm new file mode 100644 index 00000000000..cfb38c35a6a --- /dev/null +++ b/modular_skyrat/modules/blueshield/code/modsuit/mod_theme.dm @@ -0,0 +1,67 @@ +/datum/mod_theme/blueshield + name = "praetorian" + desc = "A prototype of the Magnate-class suit issued to station Blueshields, still boasting exceptional protection worthy of an honor guard." + extended_desc = "A prototype of the Magnate-class suit issued for use with the station Blueshields, \ + it boasts the exceptional protection of it's successor, while sacrificing some of the module capacity.\ + All of the protection of the Magnate, with none of the comfort! The visor uses blue-light to obscure \ + the face of it's wearer, adding to it's imposing figure. Compared to the sleek and luxurious design \ + that came after it, this suit does nothing to hide it's purpose, the reinforced plating layered \ + over the insulated inner armor granting it protection against corrosive liquids, explosive blasts, \ + fires, electrical shocks, and contempt from the rest of the crew." + + default_skin = "praetorian" + armor_type = /datum/armor/mod_theme_blueshield + resistance_flags = FIRE_PROOF|ACID_PROOF + atom_flags = PREVENT_CONTENTS_EXPLOSION_1 + max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT + siemens_coefficient = 0 + complexity_max = DEFAULT_MAX_COMPLEXITY + 3 + slowdown_inactive = 0.75 + slowdown_active = 0.25 + allowed_suit_storage = list( + /obj/item/ammo_box, + /obj/item/ammo_casing, + /obj/item/restraints/handcuffs, + /obj/item/assembly/flash, + /obj/item/melee/baton, + ) + skins = list( + "praetorian" = list( + MOD_ICON_OVERRIDE = 'modular_skyrat/modules/blueshield/icons/praetorian.dmi', + MOD_WORN_ICON_OVERRIDE = 'modular_skyrat/modules/blueshield/icons/worn_praetorian.dmi', + HELMET_FLAGS = list( + UNSEALED_LAYER = null, + UNSEALED_CLOTHING = SNUG_FIT|THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE|HEADINTERNALS, + UNSEALED_INVISIBILITY = HIDEEARS|HIDEHAIR, + SEALED_INVISIBILITY = HIDEFACIALHAIR|HIDEMASK|HIDEEYES|HIDEFACE|HIDESNOUT, + SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, + ), + CHESTPLATE_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + SEALED_INVISIBILITY = HIDEJUMPSUIT, + ), + GAUNTLETS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + BOOTS_FLAGS = list( + UNSEALED_CLOTHING = THICKMATERIAL, + SEALED_CLOTHING = STOPSPRESSUREDAMAGE, + CAN_OVERSLOT = TRUE, + ), + ), + ) + +/datum/armor/mod_theme_blueshield + melee = 40 + bullet = 30 + laser = 30 + energy = 40 + bomb = 50 + bio = 100 + fire = 100 + acid = 100 + wound = 20 diff --git a/modular_skyrat/modules/blueshield/code/modsuit/mod_type.dm b/modular_skyrat/modules/blueshield/code/modsuit/mod_type.dm new file mode 100644 index 00000000000..a644367333e --- /dev/null +++ b/modular_skyrat/modules/blueshield/code/modsuit/mod_type.dm @@ -0,0 +1,14 @@ +/obj/item/mod/control/pre_equipped/blueshield + theme = /datum/mod_theme/blueshield + applied_cell = /obj/item/stock_parts/cell/super + applied_modules = list( + /obj/item/mod/module/storage/large_capacity, + /obj/item/mod/module/magnetic_harness, + /obj/item/mod/module/flashlight, + /obj/item/mod/module/jetpack, + /obj/item/mod/module/projectile_dampener, + /obj/item/mod/module/quick_carry, + ) + default_pins = list( + /obj/item/mod/module/jetpack, + ) diff --git a/modular_skyrat/modules/blueshield/icons/praetorian.dmi b/modular_skyrat/modules/blueshield/icons/praetorian.dmi new file mode 100644 index 0000000000000000000000000000000000000000..1632262e8b8a8a3cc4da51639194a701456d6e84 GIT binary patch literal 1333 zcmV-51C0000yP)t-sz`(!_ z3>h9CG5{=DG&Dj0N|XRyyQKc~Pn4}GLuUYS;s8K^R8(OU5+*-CPyi!E0GZ4HGiLzI z|G>b&sG3`!00001bW%=J06^y0W&i*H#(Gp(bVOxyV{&P5bZKvH004NLosvxsf-n$; z*X=19*n&}E>&8F~3%Nsukv1tUX-AE>w_u_htbxpCe)_#PlQd?>@>JEVI9K!z)=8t; zf#sVmB@fx6@I|(#M1brBz6*yO!Kcw+IiRtU>$EW%tx>51uAq%5X{B}k&5n|*zqq&1n$&iDdtr#EX|%kJYOI}BZ2T?+wx-yY#3LLvd;L4L-Qh#nl_%KE-?Xg%(NOCh*qipM8Iz=hH|s2iV!CmxpXp+NSyoWpAGo0=+~; zNBF#k2(&@6u}MPz9Qd!kzk7jbd~Ojn3FYSqUv|l?gM50g<_*I4NB9He3tmWg$@&00 z`*c92U%4>`*w;UP2@cK@JmF#RX^f)jwo1T z7I6KP?nl`HTznqNBq~+_*H5QY;-`VWnHuK@E`vw=?8=l7IK z=J9h$NpG>|U#a{xmr}s_*6QQHl zqyBi3{!;*|pNUPh06xE$GM0kVg!14~pXSAdf$C?lP9S6#pUYC? z{0=PJ-1?}A`JE;~E9`t&yS@YfC%^`NZ<4J40QM5>jnC47!Rx@@{C@AiPUClVb#--h z{r`&iz10uv2mIdZOT?#Q3Q=qLwAnP62yHb^#P2cRXJO0V&&t}+OS7JU;`1Lo5Uytu^SkfQ zaHr&w`XJN`^XxINdlmBglRnh?L+!d8Gbi|YWW?{!`@qw#n?Vp!5V=10V}O9)Tl^b! z&H;wH3R(b%-#7U_{Yna)7h<(k5x<9gzm0yuWbkMP8)w*{Xa=3{ySlo%y1I^6y{cNT zuI_SD-{p6{zE4b(L2m8KI&I}0e&+yuO%3Gs?>lhk_heo&LFOJ5{Q2_$F~9E{U<1GJ z8(>iQT?tTkf4zNMe>MH#Kb&C2?@EB61C1T}#qY`ya{8;X7oysMh5rmZEcsn4UweD& zu>w}Ezg5ET%JXx7vghc)y2UsI=OF`w700000NkvXXu0mjflPi=N literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/blueshield/icons/worn_praetorian.dmi b/modular_skyrat/modules/blueshield/icons/worn_praetorian.dmi new file mode 100644 index 0000000000000000000000000000000000000000..373986abe4dedef9809130b996fa33363d0befb2 GIT binary patch literal 2081 zcmY*Xdpy%^8~^cy-U;b(3QgrfAxV={v(lV$W)ZbXDinoc%VtuJi4r+(&x%Bn$vNX4 z%BeDPcsIv6PY%s_Z8qL{KK=2&f85vizOMWJUf<94z3)V4M{6mNG6(eBMNVQnZrviu48TO9rRPFC^b#Klq%Rm5SP` z=JIN6-9n0KVd`J(I!Uwj0~OoP5_dsU7#g}9sfwUftb4nx%r8jDBDA@k})(#j}|n$c+Z#5j&o zX5MpmbdyEjcbUK$O~jTR{=~CUJf2eF{gr&9h>$j!W{dZhTzkUV;>s8Q>%^lIn*}Dq zei}=Vy|W(Y8>`n-(+^TJyrZooT2k9~%cS;Gx`R}lDbw^J!^1;Uuhg582VBQc-1R-< zyPxH5*ynyU)L7m58vqb|ajIfao>lkGF@Dl9ch&lbl6sTB$58)(bQ&_~rq`CS1B?9c zTYbCIkWFDoyIF^<1+VBtZayT)dOQE;pp~uu(2KjU2oc8t%NBm}Y;TgBes z$(`d6LZN7~-4yQnNL>s~F}JiY(MzN+(qn!?b{bYNMG`;+DH7SH@#GKjCx+A zqlnqCcW8~GcvZ1#u|2StjY>fFRjaSky;;mR%m!(dbqd`lAI~uj>}UVu696ci{Xko5 zAgN}?9lVk6w*72rr(!%BBQBtAd|0D=IysNdIR~ejovy$an!wj6lWA|5ouP4|n`RBr z;gcj=PQtVrqm*eFc0k(EBNG4E&S*9W#TaL}+`8IpZDn1ctCPTTilx`MtTyw+Z0p92 zba-!hR+m85L-epaN9%W0p-^~*4$__~3LC0Z@&bcAt?TfLxaqmRpgnw~iCrB;_P(HI z;XGde^5wd{%7RuU-*Fua;Rh?lBu(p;KtUrA?5L6x?_mvcy7Rhk`&^D>%+DQsKA1#Z`vZ}wIBmd1yLRd2(z%4@61xLljPEo}ISG zhT(ocHNzr6poiY-;URzW3)U&a+@yK*$JOl&yvKPM-%wDRj=y-B`jr^9bfkoNo#u@a z?y0r-OtYwv9ooeI(-i6KP}cEM<}}TFhxE@y*l(f0*OmCpT%peG|IDHFGVz(&;qUQu z?rCAceIAX}6zCbfTc@PdZ_wG``1+Gu&uhAwQW;e|WLYkcc*-hXR(l>@84xue0fYan zKE!SlU;DtWLKZUj&vi}ZbH=Vk=$5@#6hn>DBsaN>qh(A%S55K?A6$Pb*`rKnO z-ksMD9*lJt+h{8bLRX~Ktv4?#nBwp=hE7->&2dxETB;g&`s>lY#p&Yf-N?5>KSRR#W~cS8qsAwk@}v1_d9j?hf8}ZgP&(3^YxQ;9~;5Wwxw3I zb6UcEqaPdhaB7^u3hR_ys+{2G>-vU+bfZ6MwIkG~{Q%G?yW8l85_<0QLcAYJ^xXhg zQ=S*u-(_NM+d$BBq)L7kqhPPq9pR-GS04TsM>ist literal 0 HcmV?d00001 diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/MOD_sprite_accessories/mod_themes.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/MOD_sprite_accessories/mod_themes.dm index cea674e2920..c2954a320c8 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/MOD_sprite_accessories/mod_themes.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/MOD_sprite_accessories/mod_themes.dm @@ -21,6 +21,9 @@ /datum/mod_theme/magnate hardlight_theme = ROYAL_PURPLE +/datum/mod_theme/blueshield + hardlight_theme = COSMIC_BLUE + /datum/mod_theme/research hardlight_theme = ROYAL_PURPLE diff --git a/modular_skyrat/modules/time_clock/code/console_tgui.dm b/modular_skyrat/modules/time_clock/code/console_tgui.dm index 306a2d9c49c..0060e134a46 100644 --- a/modular_skyrat/modules/time_clock/code/console_tgui.dm +++ b/modular_skyrat/modules/time_clock/code/console_tgui.dm @@ -32,6 +32,7 @@ /obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/skild, \ /obj/item/storage/belt/sabre, \ /obj/item/mod/control/pre_equipped/magnate, \ + /obj/item/mod/control/pre_equipped/blueshield, \ /obj/item/clothing/suit/armor/vest/warden, \ /obj/item/clothing/glasses/hud/security/sunglasses, \ /obj/item/clothing/gloves/krav_maga/sec, \ diff --git a/tgstation.dme b/tgstation.dme index 5b809f546d7..fc3d9ea0a58 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6497,6 +6497,8 @@ #include "modular_skyrat\modules\blueshield\code\medkit.dm" #include "modular_skyrat\modules\blueshield\code\devices\crew.dm" #include "modular_skyrat\modules\blueshield\code\devices\sensor_device.dm" +#include "modular_skyrat\modules\blueshield\code\modsuit\mod_theme.dm" +#include "modular_skyrat\modules\blueshield\code\modsuit\mod_type.dm" #include "modular_skyrat\modules\bluespace_miner\code\bluespace_miner.dm" #include "modular_skyrat\modules\bodyparts\code\_mutant_bodyparts.dm" #include "modular_skyrat\modules\bodyparts\code\akula_bodyparts.dm"