Merge pull request #10388 from mwerezak/light-suit
Cybersuit and sprite fixes
@@ -71,6 +71,7 @@
|
|||||||
var/offline_slowdown = 3 // If the suit is deployed and unpowered, it sets slowdown to this.
|
var/offline_slowdown = 3 // If the suit is deployed and unpowered, it sets slowdown to this.
|
||||||
var/vision_restriction
|
var/vision_restriction
|
||||||
var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets.
|
var/offline_vision_restriction = 1 // 0 - none, 1 - welder vision, 2 - blind. Maybe move this to helmets.
|
||||||
|
var/airtight = 1 //If set, will adjust AIRTIGHT and STOPPRESSUREDAMAGE flags on components. Otherwise it should leave them untouched.
|
||||||
|
|
||||||
var/emp_protection = 0
|
var/emp_protection = 0
|
||||||
|
|
||||||
@@ -178,6 +179,7 @@
|
|||||||
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
|
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
|
||||||
if(!piece) continue
|
if(!piece) continue
|
||||||
piece.icon_state = "[initial(icon_state)]"
|
piece.icon_state = "[initial(icon_state)]"
|
||||||
|
if(airtight)
|
||||||
piece.flags &= ~STOPPRESSUREDAMAGE
|
piece.flags &= ~STOPPRESSUREDAMAGE
|
||||||
piece.flags &= ~AIRTIGHT
|
piece.flags &= ~AIRTIGHT
|
||||||
update_icon(1)
|
update_icon(1)
|
||||||
@@ -247,11 +249,6 @@
|
|||||||
M << "<font color='blue'>\The [piece] hisses [!seal_target ? "closed" : "open"].</font>"
|
M << "<font color='blue'>\The [piece] hisses [!seal_target ? "closed" : "open"].</font>"
|
||||||
M.update_inv_head()
|
M.update_inv_head()
|
||||||
if(helmet)
|
if(helmet)
|
||||||
if(!seal_target)
|
|
||||||
if(flags & AIRTIGHT)
|
|
||||||
helmet.flags |= AIRTIGHT
|
|
||||||
else
|
|
||||||
helmet.flags &= ~AIRTIGHT
|
|
||||||
helmet.update_light(wearer)
|
helmet.update_light(wearer)
|
||||||
|
|
||||||
//sealed pieces become airtight, protecting against diseases
|
//sealed pieces become airtight, protecting against diseases
|
||||||
@@ -273,13 +270,8 @@
|
|||||||
if(!piece) continue
|
if(!piece) continue
|
||||||
piece.icon_state = "[initial(icon_state)][!seal_target ? "" : "_sealed"]"
|
piece.icon_state = "[initial(icon_state)][!seal_target ? "" : "_sealed"]"
|
||||||
canremove = !seal_target
|
canremove = !seal_target
|
||||||
if(helmet)
|
if(airtight)
|
||||||
if(canremove)
|
update_component_sealed()
|
||||||
if(flags & AIRTIGHT)
|
|
||||||
helmet.flags |= AIRTIGHT
|
|
||||||
else
|
|
||||||
if(flags & AIRTIGHT)
|
|
||||||
helmet.flags &= ~AIRTIGHT
|
|
||||||
update_icon(1)
|
update_icon(1)
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
@@ -290,15 +282,18 @@
|
|||||||
if(canremove)
|
if(canremove)
|
||||||
for(var/obj/item/rig_module/module in installed_modules)
|
for(var/obj/item/rig_module/module in installed_modules)
|
||||||
module.deactivate()
|
module.deactivate()
|
||||||
|
if(airtight)
|
||||||
|
update_component_sealed()
|
||||||
|
update_icon(1)
|
||||||
|
|
||||||
|
/obj/item/weapon/rig/proc/update_component_sealed()
|
||||||
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
|
for(var/obj/item/piece in list(helmet,boots,gloves,chest))
|
||||||
if(!piece) continue
|
|
||||||
if(canremove)
|
if(canremove)
|
||||||
piece.flags &= ~STOPPRESSUREDAMAGE
|
piece.flags &= ~STOPPRESSUREDAMAGE
|
||||||
piece.flags &= ~AIRTIGHT
|
piece.flags &= ~AIRTIGHT
|
||||||
else
|
else
|
||||||
piece.flags |= STOPPRESSUREDAMAGE
|
piece.flags |= STOPPRESSUREDAMAGE
|
||||||
piece.flags |= AIRTIGHT
|
piece.flags |= AIRTIGHT
|
||||||
update_icon(1)
|
|
||||||
|
|
||||||
/obj/item/weapon/rig/process()
|
/obj/item/weapon/rig/process()
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
/obj/item/clothing/shoes/magboots/rig
|
/obj/item/clothing/shoes/magboots/rig
|
||||||
name = "boots"
|
name = "boots"
|
||||||
|
body_parts_covered = FEET
|
||||||
cold_protection = FEET
|
cold_protection = FEET
|
||||||
heat_protection = FEET
|
heat_protection = FEET
|
||||||
species_restricted = null
|
species_restricted = null
|
||||||
@@ -69,3 +70,38 @@
|
|||||||
return 1
|
return 1
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
//Rig pieces for non-spacesuit based rigs
|
||||||
|
|
||||||
|
/obj/item/clothing/head/lightrig
|
||||||
|
name = "mask"
|
||||||
|
body_parts_covered = HEAD|FACE|EYES
|
||||||
|
heat_protection = HEAD|FACE|EYES
|
||||||
|
cold_protection = HEAD|FACE|EYES
|
||||||
|
flags = THICKMATERIAL|AIRTIGHT
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/lightrig
|
||||||
|
name = "suit"
|
||||||
|
allowed = list(/obj/item/device/flashlight)
|
||||||
|
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||||
|
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||||
|
cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||||
|
flags_inv = HIDEJUMPSUIT
|
||||||
|
flags = THICKMATERIAL
|
||||||
|
|
||||||
|
/obj/item/clothing/shoes/lightrig
|
||||||
|
name = "boots"
|
||||||
|
body_parts_covered = FEET
|
||||||
|
cold_protection = FEET
|
||||||
|
heat_protection = FEET
|
||||||
|
species_restricted = null
|
||||||
|
gender = PLURAL
|
||||||
|
|
||||||
|
/obj/item/clothing/gloves/lightrig
|
||||||
|
name = "gloves"
|
||||||
|
flags = THICKMATERIAL
|
||||||
|
body_parts_covered = HANDS
|
||||||
|
heat_protection = HANDS
|
||||||
|
cold_protection = HANDS
|
||||||
|
species_restricted = null
|
||||||
|
gender = PLURAL
|
||||||
|
|||||||
@@ -33,22 +33,43 @@
|
|||||||
/obj/item/weapon/rig/light/hacker
|
/obj/item/weapon/rig/light/hacker
|
||||||
name = "cybersuit control module"
|
name = "cybersuit control module"
|
||||||
suit_type = "cyber"
|
suit_type = "cyber"
|
||||||
desc = "An advanced powered armour suit with many cyberwarfare enhancements."
|
desc = "An advanced powered armour suit with many cyberwarfare enhancements. Comes with built-in insulated gloves for safely tampering with electronics."
|
||||||
icon_state = "hacker_rig"
|
icon_state = "hacker_rig"
|
||||||
|
|
||||||
req_access = list(access_syndicate)
|
req_access = list(access_syndicate)
|
||||||
|
|
||||||
helm_type = /obj/item/clothing/head/helmet/space/rig/mask
|
airtight = 0
|
||||||
|
seal_delay = 5 //not being vaccum-proof has an upside I guess
|
||||||
|
|
||||||
|
helm_type = /obj/item/clothing/head/lightrig/hacker
|
||||||
|
chest_type = /obj/item/clothing/suit/lightrig/hacker
|
||||||
|
glove_type = /obj/item/clothing/gloves/lightrig/hacker
|
||||||
|
boot_type = /obj/item/clothing/shoes/lightrig/hacker
|
||||||
|
|
||||||
initial_modules = list(
|
initial_modules = list(
|
||||||
/obj/item/rig_module/ai_container,
|
/obj/item/rig_module/ai_container,
|
||||||
/obj/item/rig_module/power_sink,
|
/obj/item/rig_module/power_sink,
|
||||||
/obj/item/rig_module/datajack
|
/obj/item/rig_module/datajack,
|
||||||
|
/obj/item/rig_module/electrowarfare_suite,
|
||||||
|
/obj/item/rig_module/voice,
|
||||||
|
/obj/item/rig_module/vision,
|
||||||
)
|
)
|
||||||
|
|
||||||
/obj/item/clothing/head/helmet/space/rig/mask
|
//The cybersuit is not space-proof. It does however, have good siemens_coefficient values
|
||||||
name = "mask"
|
/obj/item/clothing/head/lightrig/hacker
|
||||||
flags = THICKMATERIAL
|
name = "HUD"
|
||||||
|
siemens_coefficient = 0.4
|
||||||
|
flags = 0
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/lightrig/hacker
|
||||||
|
siemens_coefficient = 0.4
|
||||||
|
|
||||||
|
/obj/item/clothing/shoes/lightrig/hacker
|
||||||
|
siemens_coefficient = 0.4
|
||||||
|
flags = NOSLIP //All the other rigs have magboots anyways, hopefully gives the hacker suit something more going for it.
|
||||||
|
|
||||||
|
/obj/item/clothing/gloves/lightrig/hacker
|
||||||
|
siemens_coefficient = 0
|
||||||
|
|
||||||
/obj/item/weapon/rig/light/ninja
|
/obj/item/weapon/rig/light/ninja
|
||||||
name = "ominous suit control module"
|
name = "ominous suit control module"
|
||||||
@@ -92,7 +113,7 @@
|
|||||||
name = "stealth suit control module"
|
name = "stealth suit control module"
|
||||||
suit_type = "stealth"
|
suit_type = "stealth"
|
||||||
desc = "A highly advanced and expensive suit designed for covert operations."
|
desc = "A highly advanced and expensive suit designed for covert operations."
|
||||||
icon_state = "ninja_rig"
|
icon_state = "stealth_rig"
|
||||||
|
|
||||||
req_access = list(access_syndicate)
|
req_access = list(access_syndicate)
|
||||||
|
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 127 KiB After Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 282 KiB After Width: | Height: | Size: 284 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 100 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |