diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index ca3bf59ca3..6a257acd6d 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -84,7 +84,7 @@ datum/hSB P.back.loc = P.loc P.back.layer = initial(P.back.layer) P.back = null - P.back = new/obj/item/weapon/tank/jetpack(P) + P.back = new/obj/item/weapon/tank/jetpack/oxygen(P) P.back.layer = 20 P.internal = P.back if("hsbmetal") diff --git a/code/game/objects/closets/malfunction.dm b/code/game/objects/closets/malfunction.dm index cb85b49a68..a21311fdfe 100644 --- a/code/game/objects/closets/malfunction.dm +++ b/code/game/objects/closets/malfunction.dm @@ -1,7 +1,7 @@ /obj/structure/closet/malf/suits/New() ..() sleep(2) - new /obj/item/weapon/tank/jetpack/void_jetpack(src) + new /obj/item/weapon/tank/jetpack/void(src) new /obj/item/clothing/mask/breath(src) new /obj/item/clothing/head/helmet/space/nasavoid(src) new /obj/item/clothing/suit/space/nasavoid(src) diff --git a/code/game/objects/closets/syndicate.dm b/code/game/objects/closets/syndicate.dm index 241485e0d5..82d1b114ba 100644 --- a/code/game/objects/closets/syndicate.dm +++ b/code/game/objects/closets/syndicate.dm @@ -1,7 +1,7 @@ /obj/structure/closet/syndicate/personal/New() ..() sleep(2) - new /obj/item/weapon/tank/jetpack(src) + new /obj/item/weapon/tank/jetpack/oxygen(src) new /obj/item/clothing/mask/breath(src) new /obj/item/clothing/under/syndicate(src) new /obj/item/clothing/head/helmet/space/syndicate(src) diff --git a/code/game/objects/tanks/jetpack.dm b/code/game/objects/tanks/jetpack.dm index 794e6a10db..a9f0542778 100644 --- a/code/game/objects/tanks/jetpack.dm +++ b/code/game/objects/tanks/jetpack.dm @@ -1,7 +1,6 @@ - /obj/item/weapon/tank/jetpack - name = "Jetpack (Oxygen)" - desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution." + name = "Jetpack (Empty)" + desc = "A tank of compressed gas for use as propulsion in zero-gravity areas. Use with caution." icon_state = "jetpack" w_class = 4.0 item_state = "jetpack" @@ -16,7 +15,6 @@ ..() src.ion_trail = new /datum/effect/effect/system/ion_trail_follow() src.ion_trail.set_up(src) - src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) return @@ -40,55 +38,66 @@ verb/toggle() set name = "Toggle Jetpack" set category = "Object" - src.on = !( src.on ) - if(src.type == /obj/item/weapon/tank/jetpack/void_jetpack) //Slight change added by me. i didn't make it an if-elseif because some of you might want to add other types of resprited packs :3 -Agouri - src.icon_state = text("voidjetpack[]", src.on) - else if(src.type == /obj/item/weapon/tank/jetpack/black_jetpack) - src.icon_state = text("black_jetpack[]", src.on) + on = !on + if(on) + icon_state = "[icon_state]-on" + item_state = "[item_state]-on" + ion_trail.start() else - src.icon_state = text("jetpack[]", src.on) - if(src.on) - src.ion_trail.start() - else - src.ion_trail.stop() + icon_state = initial(icon_state) + item_state = initial(item_state) + ion_trail.stop() return proc/allow_thrust(num, mob/living/user as mob) - if (!( src.on )) + if(!(src.on)) return 0 - if ((num < 0.005 || src.air_contents.total_moles() < num)) + if((num < 0.005 || src.air_contents.total_moles() < num)) src.ion_trail.stop() return 0 var/datum/gas_mixture/G = src.air_contents.remove(num) - if (G.oxygen >= 0.005) + var/allgases = G.carbon_dioxide + G.nitrogen + G.oxygen + G.toxins //fuck trace gases -Pete + if(allgases >= 0.005) return 1 - if (G.toxins > 0.001) - if (user) - var/d = G.toxins / 2 - d = min(abs(user.health + 100), d, 25) - user.take_organ_damage(0,d) - return (G.oxygen >= 0.0025 ? 0.5 : 0) - else - if (G.oxygen >= 0.0025) - return 0.5 - else - return 0 + del(G) return -/obj/item/weapon/tank/jetpack/void_jetpack +/obj/item/weapon/tank/jetpack/void name = "Void Jetpack (Oxygen)" desc = "It works well in a void." icon_state = "jetpack-void" item_state = "jetpack-void" + New() + ..() + src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return -/obj/item/weapon/tank/jetpack/black_jetpack - name = "Black Jetpack (Oxygen)" - desc = "A black model of jetpacks." +/obj/item/weapon/tank/jetpack/oxygen + name = "Jetpack (Oxygen)" + desc = "A tank of compressed oxygen for use as propulsion in zero-gravity areas. Use with caution." + icon_state = "jetpack" + item_state = "jetpack" + + New() + ..() + src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/weapon/tank/jetpack/carbondioxide + name = "Jetpack (Carbon Dioxide)" + desc = "A tank of compressed carbon dioxide for use as propulsion in zero-gravity areas. Painted black to indicate that it should not be used as a source for internals." icon_state = "jetpack-black" item_state = "jetpack-black" + + New() + ..() + src.ion_trail = new /datum/effect/effect/system/ion_trail_follow() + src.ion_trail.set_up(src) + src.air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return \ No newline at end of file diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index d72c8c60bc..75e35f462e 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -504,7 +504,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that M.equip_if_possible(new /obj/item/clothing/under/color/grey(M), M.slot_w_uniform) M.equip_if_possible(new /obj/item/clothing/suit/space(M), M.slot_wear_suit) M.equip_if_possible(new /obj/item/clothing/head/helmet/space(M), M.slot_head) - var /obj/item/weapon/tank/jetpack/J = new /obj/item/weapon/tank/jetpack(M) + var /obj/item/weapon/tank/jetpack/oxygen/J = new /obj/item/weapon/tank/jetpack/oxygen(M) M.equip_if_possible(J, M.slot_back) J.toggle() M.equip_if_possible(new /obj/item/clothing/mask/breath(M), M.slot_wear_mask) diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 6d7dcd15a9..b9b87afa56 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index e3841ad076..97b7d2f26f 100644 Binary files a/icons/obj/tank.dmi and b/icons/obj/tank.dmi differ diff --git a/maps/tgstation.2.0.8.dmm b/maps/tgstation.2.0.8.dmm index a62e19d776..a46a044c26 100755 --- a/maps/tgstation.2.0.8.dmm +++ b/maps/tgstation.2.0.8.dmm @@ -1032,8 +1032,8 @@ "atR" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "atS" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9; pixel_y = -1},/turf/simulated/floor/plating,/area/maintenance/fpmaint) "atT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/wall,/area/maintenance/fpmaint) -"atU" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/ai_monitored/storage/eva) -"atV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) +"atU" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/oxygen,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor{dir = 9; icon_state = "warning"},/area/ai_monitored/storage/eva) +"atV" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/weapon/tank/jetpack/oxygen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) "atW" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = "Streight"},/turf/simulated/floor,/area/ai_monitored/storage/eva) "atX" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/ai_monitored/storage/eva) "atY" = (/obj/structure/rack{dir = 8; layer = 2.9},/obj/item/clothing/shoes/magboots,/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/ai_monitored/storage/eva) @@ -2755,7 +2755,7 @@ "baY" = (/obj/structure/table/reinforced,/obj/item/weapon/packageWrap,/obj/item/device/destTagger{pixel_x = 4; pixel_y = 3},/obj/machinery/door/window/eastleft{name = "Mail Office"; req_access_txt = "0"},/turf/simulated/floor,/area/quartermaster/sorting) "baZ" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor,/area/hallway/primary/central) "bba" = (/obj/machinery/door/firedoor/border_only,/turf/simulated/floor{icon_state = "bluecorner"},/area/hallway/primary/central) -"bbb" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/capspace,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) +"bbb" = (/obj/structure/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/head/helmet/space/capspace,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "bbc" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/light_switch{pixel_y = -25},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "bbd" = (/obj/structure/closet/secure_closet/captains,/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) "bbe" = (/obj/machinery/light/lamp{pixel_x = 4; pixel_y = 1},/obj/machinery/light,/obj/structure/table/woodentable,/obj/structure/disposalpipe/segment{dir = 1},/turf/simulated/floor{icon_state = "wood"},/area/crew_quarters/captain) @@ -6120,7 +6120,7 @@ "cnJ" = (/obj/machinery/optable/portable,/obj/machinery/camera{c_tag = "ERT Armoury Left"; dir = 4; network = "CREED"},/obj/item/weapon/storage/briefcase/surgery,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/centcom/specops) "cnK" = (/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/centcom/specops) "cnL" = (/obj/machinery/optable/portable,/obj/item/weapon/storage/briefcase/surgery,/turf/unsimulated/floor{tag = "icon-redbluefull (WEST)"; icon_state = "redbluefull"; dir = 8},/area/centcom/specops) -"cnM" = (/obj/structure/table/reinforced,/obj/item/weapon/tank/jetpack/black_jetpack,/obj/item/weapon/rcd/industrial,/obj/item/weapon/rcd_ammo/large,/turf/unsimulated/floor{tag = "icon-redgreenfull"; icon_state = "redgreenfull"},/area/centcom/specops) +"cnM" = (/obj/structure/table/reinforced,/obj/item/weapon/tank/jetpack/carbondioxide,/obj/item/weapon/rcd/industrial,/obj/item/weapon/rcd_ammo/large,/turf/unsimulated/floor{tag = "icon-redgreenfull"; icon_state = "redgreenfull"},/area/centcom/specops) "cnN" = (/turf/unsimulated/floor{tag = "icon-redgreenfull"; icon_state = "redgreenfull"},/area/centcom/specops) "cnO" = (/obj/machinery/camera{c_tag = "ERT Armoury Right"; dir = 4; network = "CREED"},/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/specops) "cnP" = (/turf/unsimulated/floor{tag = "icon-vault (WEST)"; icon_state = "vault"; dir = 8},/area/centcom/specops)