mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 13:10:02 +01:00
[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:
co-authored by
GoldenAlpharex
parent
84629d1bd3
commit
edc6baae5a
@@ -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."),
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user