Merge pull request #6834 from Mechoid/RIGFixes

Fix various RIG issues
This commit is contained in:
Atermonera
2020-03-16 22:06:01 -07:00
committed by VirgoBot
parent 6ff1e6231b
commit cd10c54d5c
12 changed files with 21 additions and 25 deletions

View File

@@ -276,12 +276,12 @@
tankcheck = list(C.r_hand, C.l_hand, C.back)
// Rigs are a fucking pain since they keep an air tank in nullspace.
if(istype(C.back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = C.back
if(rig.air_supply && !rig.offline)
var/obj/item/weapon/rig/Rig = C.get_rig()
if(Rig)
if(Rig.air_supply && !Rig.offline)
from = "in"
nicename |= "hardsuit"
tankcheck |= rig.air_supply
tankcheck |= Rig.air_supply
for(var/i=1, i<tankcheck.len+1, ++i)
if(istype(tankcheck[i], /obj/item/weapon/tank))

View File

@@ -78,8 +78,8 @@
var/obj/item/rig_module/module = src.loc
if(module.holder && module.holder.wearer)
var/mob/living/carbon/human/H = module.holder.wearer
if(istype(H) && H.back)
var/obj/item/weapon/rig/suit = H.back
if(istype(H) && H.get_rig())
var/obj/item/weapon/rig/suit = H.get_rig()
if(istype(suit))
return suit.cell
return null

View File

@@ -1,6 +1,7 @@
/obj/item/weapon/mop_deploy
name = "mop"
desc = "Deployable mop."
icon = 'icons/obj/janitor.dmi'
icon_state = "mop"
force = 3
anchored = 1 // Never spawned outside of inventory, should be fine.

View File

@@ -36,7 +36,7 @@
icon_state = "flash"
interface_name = "mounted flash"
interface_desc = "Stuns your target by blinding them with a bright light."
device_type = /obj/item/device/flash
device_type = /obj/item/device/flash/robot
/obj/item/rig_module/device/plasmacutter
name = "hardsuit plasma cutter"

View File

@@ -527,8 +527,8 @@ emp_act
if(damtype != BURN && damtype != BRUTE) return
// The rig might soak this hit, if we're wearing one.
if(back && istype(back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back
if(istype(get_rig(),/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = get_rig()
rig.take_hit(damage)
// We may also be taking a suit breach.

View File

@@ -178,7 +178,7 @@
compiled_vis |= O.enables_planes
//Check to see if we have a rig (ugh, blame rigs, desnowflake this)
var/obj/item/weapon/rig/rig = back
var/obj/item/weapon/rig/rig = get_rig()
if(istype(rig) && rig.visor)
if(!rig.helmet || (head && rig.helmet == head))
if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses)

View File

@@ -181,8 +181,8 @@
if(back)
if(istype(back,/obj/item/weapon/tank/jetpack))
thrust = back
else if(istype(back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back
else if(istype(get_rig(),/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = get_rig()
for(var/obj/item/rig_module/maneuvering_jets/module in rig.installed_modules)
thrust = module.jets
break

View File

@@ -358,15 +358,10 @@
//Because rigs store their tanks out of reach of contents.Find(), a check has to be made to make
//sure the rig is still worn, still online, and that its air supply still exists.
var/obj/item/weapon/tank/rig_supply
if(istype(back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back
if(!rig.offline && (rig.air_supply && internal == rig.air_supply))
rig_supply = rig.air_supply
var/obj/item/weapon/rig/Rig = get_rig()
else if(istype(belt,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = belt
if(!rig.offline && (rig.air_supply && internal == rig.air_supply))
rig_supply = rig.air_supply
if(Rig)
rig_supply = Rig.air_supply
if ((!rig_supply && !contents.Find(internal)) || !((wear_mask && (wear_mask.item_flags & AIRTIGHT)) || (head && (head.item_flags & AIRTIGHT))))
internal = null
@@ -1374,7 +1369,7 @@
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
var/tmp/glasses_processed = 0
var/obj/item/weapon/rig/rig = back
var/obj/item/weapon/rig/rig = get_rig()
if(istype(rig) && rig.visor && !looking_elsewhere)
if(!rig.helmet || (head && rig.helmet == head))
if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses)

View File

@@ -78,8 +78,8 @@
/mob/living/carbon/human/GetVoice()
var/voice_sub
if(istype(back,/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back
if(istype(get_rig(),/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = get_rig()
// todo: fix this shit
if(rig.speech && rig.speech.voice_holder && rig.speech.voice_holder.active && rig.speech.voice_holder.voice)
voice_sub = rig.speech.voice_holder.voice

View File

@@ -167,8 +167,8 @@
var/obj/item/rig_module/module = src.loc
if(module.holder && module.holder.wearer)
var/mob/living/carbon/human/H = module.holder.wearer
if(istype(H) && H.back)
var/obj/item/weapon/rig/suit = H.back
if(istype(H) && H.get_rig())
var/obj/item/weapon/rig/suit = H.get_rig()
if(istype(suit))
return suit.cell
return null

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB