[NON-MODULAR] Small MODsuits remaster (#12310)

* [NON-MODULAR] Small MODsuits remaster

* Need to have the chest deployed to be able to use modules.

* Update code/modules/mod/modules/_module.dm

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
This commit is contained in:
Cimika/Lessie/KathyRyals
2022-04-19 19:50:36 +01:00
committed by GitHub
co-authored by GoldenAlpharex
parent 84629d1bd3
commit edc6baae5a
4 changed files with 58 additions and 2 deletions
+22 -2
View File
@@ -19,7 +19,7 @@
var/obj/item/part = locate(part_reference) in mod_parts
if(!istype(part) || user.incapacitated())
return
if((active && part != helmet) || activating) // SKYRAT EDIT - Let the hair flow - ORIGINAL: if(active || activating)
if(activating) // SKYRAT EDIT - RETRACTABLE EVERYTHING
balloon_alert(user, "deactivate the suit first!")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return
@@ -41,7 +41,7 @@
/// Quickly deploys all parts (or retracts if all are on the wearer)
/obj/item/mod/control/proc/quick_deploy(mob/user)
if(active || activating)
if(activating) // SKYRAT EDIT - RETRACTABLE EVERYTHING
balloon_alert(user, "deactivate the suit first!")
playsound(src, 'sound/machines/scanbuzz.ogg', 25, TRUE, SILENCED_SOUND_EXTRARANGE)
return FALSE
@@ -70,6 +70,16 @@
if(piece == boots && wearer.shoes)
boots.overslot = wearer.shoes
wearer.transferItemToLoc(boots.overslot, boots, force = TRUE)
// SKYRAT EDIT START - DEPLOYABLE EVERYTHING OVER EVERYTHING
if(piece == helmet && wearer.head)
helmet.overslot = wearer.head
wearer.transferItemToLoc(helmet.overslot, helmet, force = TRUE)
if(piece == chestplate && wearer.wear_suit)
chestplate.overslot = wearer.wear_suit
wearer.transferItemToLoc(chestplate.overslot, chestplate, force = TRUE)
// SKYRAT EDIT STOP
if(wearer.equip_to_slot_if_possible(piece, piece.slot_flags, qdel_on_fail = FALSE, disable_warning = TRUE))
ADD_TRAIT(piece, TRAIT_NODROP, MOD_TRAIT)
if(!user)
@@ -100,6 +110,16 @@
gauntlets.show_overslot()
if(piece == boots)
boots.show_overslot()
//SKYRAT EDIT START - DEPLOYABLE EVERYTHING OVER EVERYTHING
if(piece == helmet)
helmet.show_overslot()
if(piece == chestplate)
for(var/obj/item/mod/module/module as anything in modules)
if(!module.active)
continue
module.on_deactivation(display_message = FALSE)
chestplate.show_overslot()
//SKYRAT EDIT END
if(!user)
return
wearer.visible_message(span_notice("[wearer]'s [piece.name] retract[piece.p_s()] back into [src] with a mechanical hiss."),
+23
View File
@@ -12,6 +12,7 @@
obj_flags = IMMUTABLE_SLOW
var/alternate_layer = NECK_LAYER
var/obj/item/mod/control/mod
var/obj/item/clothing/overslot //SKYRAT EDIT - DEPLOYABLE EVERYTHING OVER EVERYTHING
/obj/item/clothing/head/mod/Destroy()
if(!QDELETED(mod))
@@ -23,6 +24,16 @@
/obj/item/clothing/head/mod/atom_destruction(damage_flag)
return mod.atom_destruction(damage_flag)
//SKYRAT EDIT START - DEPLOYABLE EVERYTHING OVER EVERYTHING
/obj/item/clothing/head/mod/proc/show_overslot()
if(!overslot)
return
if(!mod.wearer.equip_to_slot_if_possible(overslot, overslot.slot_flags, qdel_on_fail = FALSE, disable_warning = TRUE))
mod.wearer.dropItemToGround(overslot, force = TRUE, silent = TRUE)
overslot = null
//SKYRAT EDIT END
/obj/item/clothing/suit/mod
name = "MOD chestplate"
desc = "A chestplate for a MODsuit."
@@ -36,6 +47,7 @@
cold_protection = CHEST|GROIN
obj_flags = IMMUTABLE_SLOW
var/obj/item/mod/control/mod
var/obj/item/clothing/overslot //SKYRAT EDIT - DEPLOYABLE EVERYTHING OVER EVERYTHING
/obj/item/clothing/suit/mod/Destroy()
if(!QDELETED(mod))
@@ -47,6 +59,17 @@
/obj/item/clothing/suit/mod/atom_destruction(damage_flag)
return mod.atom_destruction(damage_flag)
//SKYRAT EDIT START - DEPLOYABLE EVERYTHING OVER EVERYTHING
/obj/item/clothing/suit/mod/proc/show_overslot()
if(!overslot)
return
if(!mod.wearer.equip_to_slot_if_possible(overslot, overslot.slot_flags, qdel_on_fail = FALSE, disable_warning = TRUE))
mod.wearer.dropItemToGround(overslot, force = TRUE, silent = TRUE)
overslot = null
//SKYRAT EDIT END
/obj/item/clothing/gloves/mod
name = "MOD gauntlets"
desc = "A pair of gauntlets for a MODsuit."
+8
View File
@@ -597,6 +597,7 @@
slowdown_inactive = 1
slowdown_active = 0.5
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -651,6 +652,7 @@
slowdown_inactive = 0.75
slowdown_active = 0.25
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -707,6 +709,7 @@
slowdown_inactive = 0.75
slowdown_active = 0.25
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -809,6 +812,7 @@
ui_theme = "syndicate"
inbuilt_modules = list(/obj/item/mod/module/armor_booster)
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -886,6 +890,7 @@
ui_theme = "syndicate"
inbuilt_modules = list(/obj/item/mod/module/armor_booster)
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -1043,6 +1048,7 @@
slowdown_inactive = 0.5
slowdown_active = 0
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -1116,6 +1122,7 @@
siemens_coefficient = 0
complexity_max = DEFAULT_MAX_COMPLEXITY + 10
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
@@ -1169,6 +1176,7 @@
slowdown_inactive = 0.5
slowdown_active = 0
allowed_suit_storage = list(
/obj/item/gun, // SKYRAT EDIT - GUN IN SUIT SLOT
/obj/item/flashlight,
/obj/item/tank/internals,
/obj/item/ammo_box,
+5
View File
@@ -98,6 +98,11 @@
if(mod.wearer)
balloon_alert(mod.wearer, "not active!")
return
// SKYRAT EDIT START - DEPLOYABLE EVERYTHING OVER EVERYTHING
if(mod.wearer.wear_suit != mod.chestplate)
balloon_alert(mod.wearer, "chestplate retracted!")
return
// SKYRAT EDIT END
if(module_type != MODULE_USABLE)
if(active)
on_deactivation()