Baystation Rigsuits

This commit adds baystation's rigsuit system on top of our own hardsuits;
Our own hardsuits still function fine and are around, but these are
available to admins. Next commit will contain balancing and player
implementation stuff.
This commit is contained in:
Tigercat2000
2015-10-05 16:42:00 -07:00
parent 77cb22ef18
commit 4fc91429e5
70 changed files with 5170 additions and 276 deletions
@@ -12,6 +12,13 @@
var/looking_for_personality = 0
var/mob/living/silicon/pai/pai
/obj/item/device/paicard/relaymove(var/mob/user, var/direction)
if(user.stat || user.stunned)
return
var/obj/item/weapon/rig/rig = src.get_rig()
if(istype(rig))
rig.forced_move(direction, user)
/obj/item/device/paicard/New()
..()
overlays += "pai-off"
@@ -63,10 +63,9 @@
var/allgases = G.carbon_dioxide + G.nitrogen + G.oxygen + G.toxins //fuck trace gases -Pete
if(allgases >= 0.005)
return 1
. = 1
qdel(G)
return
/obj/item/weapon/tank/jetpack/ui_action_click()
toggle()
@@ -132,3 +131,33 @@
if(air_contents.carbon_dioxide < 10)
user << text("\red <B>The meter on the [src.name] indicates you are almost out of air!</B>")
playsound(user, 'sound/effects/alert.ogg', 50, 1)
/obj/item/weapon/tank/jetpack/rig
name = "jetpack"
var/obj/item/weapon/rig/holder
/obj/item/weapon/tank/jetpack/rig/examine()
usr << "It's a jetpack. If you can see this, report it on the bug tracker."
return 0
/obj/item/weapon/tank/jetpack/rig/allow_thrust(num, mob/living/user as mob)
if(!(src.on))
return 0
if(!istype(holder) || !holder.air_supply)
return 0
var/obj/item/weapon/tank/pressure_vessel = holder.air_supply
if((num < 0.005 || pressure_vessel.air_contents.total_moles() < num))
src.ion_trail.stop()
return 0
var/datum/gas_mixture/G = pressure_vessel.air_contents.remove(num)
var/allgases = G.carbon_dioxide + G.nitrogen + G.oxygen + G.toxins
if(allgases >= 0.005)
. = 1
qdel(G)
+17 -3
View File
@@ -120,8 +120,13 @@
data["maskConnected"] = 0
if(istype(loc,/mob/living/carbon))
var/mob/living/carbon/location = loc
if(location.internal == src || (location.wear_mask && (location.wear_mask.flags & MASKINTERNALS)))
data["maskConnected"] = 1
if(location.internal == src)
if(location.wear_mask && (location.wear_mask.flags & AIRTIGHT))
data["maskConnected"] = 1
else if(ishuman(location))
var/mob/living/carbon/human/H = location
if(H.head && (H.head.flags & AIRTIGHT))
data["maskConnected"] = 1
// update the ui if it exists, returns null if no ui is passed/found
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
@@ -162,7 +167,16 @@
if (location.internals)
location.internals.icon_state = "internal0"
else
if(location.wear_mask && (location.wear_mask.flags & MASKINTERNALS))
var/can_open_valve
if(location.wear_mask && (location.wear_mask.flags & AIRTIGHT))
can_open_valve = 1
else if(istype(location,/mob/living/carbon/human))
var/mob/living/carbon/human/H = location
if(H.head && (H.head.flags & AIRTIGHT))
can_open_valve = 1
if(can_open_valve)
location.internal = src
usr << "\blue You open \the [src] valve."
if (location.internals)