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

View File

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

View File

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

View File

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

View File

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

View File

@@ -178,7 +178,7 @@
compiled_vis |= O.enables_planes compiled_vis |= O.enables_planes
//Check to see if we have a rig (ugh, blame rigs, desnowflake this) //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(istype(rig) && rig.visor)
if(!rig.helmet || (head && rig.helmet == head)) if(!rig.helmet || (head && rig.helmet == head))
if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses) if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses)

View File

@@ -181,8 +181,8 @@
if(back) if(back)
if(istype(back,/obj/item/weapon/tank/jetpack)) if(istype(back,/obj/item/weapon/tank/jetpack))
thrust = back thrust = back
else if(istype(back,/obj/item/weapon/rig)) else if(istype(get_rig(),/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back var/obj/item/weapon/rig/rig = get_rig()
for(var/obj/item/rig_module/maneuvering_jets/module in rig.installed_modules) for(var/obj/item/rig_module/maneuvering_jets/module in rig.installed_modules)
thrust = module.jets thrust = module.jets
break 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 //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. //sure the rig is still worn, still online, and that its air supply still exists.
var/obj/item/weapon/tank/rig_supply var/obj/item/weapon/tank/rig_supply
if(istype(back,/obj/item/weapon/rig)) var/obj/item/weapon/rig/Rig = get_rig()
var/obj/item/weapon/rig/rig = back
if(!rig.offline && (rig.air_supply && internal == rig.air_supply))
rig_supply = rig.air_supply
else if(istype(belt,/obj/item/weapon/rig)) if(Rig)
var/obj/item/weapon/rig/rig = belt rig_supply = Rig.air_supply
if(!rig.offline && (rig.air_supply && internal == rig.air_supply))
rig_supply = rig.air_supply
if ((!rig_supply && !contents.Find(internal)) || !((wear_mask && (wear_mask.item_flags & AIRTIGHT)) || (head && (head.item_flags & AIRTIGHT)))) if ((!rig_supply && !contents.Find(internal)) || !((wear_mask && (wear_mask.item_flags & AIRTIGHT)) || (head && (head.item_flags & AIRTIGHT))))
internal = null internal = null
@@ -1374,7 +1369,7 @@
see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default see_invisible = see_in_dark>2 ? SEE_INVISIBLE_LEVEL_ONE : see_invisible_default
var/tmp/glasses_processed = 0 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(istype(rig) && rig.visor && !looking_elsewhere)
if(!rig.helmet || (head && rig.helmet == head)) if(!rig.helmet || (head && rig.helmet == head))
if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses) if(rig.visor && rig.visor.vision && rig.visor.active && rig.visor.vision.glasses)

View File

@@ -78,8 +78,8 @@
/mob/living/carbon/human/GetVoice() /mob/living/carbon/human/GetVoice()
var/voice_sub var/voice_sub
if(istype(back,/obj/item/weapon/rig)) if(istype(get_rig(),/obj/item/weapon/rig))
var/obj/item/weapon/rig/rig = back var/obj/item/weapon/rig/rig = get_rig()
// todo: fix this shit // todo: fix this shit
if(rig.speech && rig.speech.voice_holder && rig.speech.voice_holder.active && rig.speech.voice_holder.voice) if(rig.speech && rig.speech.voice_holder && rig.speech.voice_holder.active && rig.speech.voice_holder.voice)
voice_sub = 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 var/obj/item/rig_module/module = src.loc
if(module.holder && module.holder.wearer) if(module.holder && module.holder.wearer)
var/mob/living/carbon/human/H = module.holder.wearer var/mob/living/carbon/human/H = module.holder.wearer
if(istype(H) && H.back) if(istype(H) && H.get_rig())
var/obj/item/weapon/rig/suit = H.back var/obj/item/weapon/rig/suit = H.get_rig()
if(istype(suit)) if(istype(suit))
return suit.cell return suit.cell
return null 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