Skip to content

[DNM] [IDB IGNORE] [MDB IGNORE] Merging supporting commits for Cynosure. #89

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 64 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
64 commits
Select commit Hold shift + click to select a range
3cd1b4a
Fix errors discovered by unit tests
out-of-phaze Aug 25, 2024
3729b36
Readd phoron, courtesy of Lighthouse
out-of-phaze May 28, 2023
6d0b9f1
Disable Big Pharma modpack
out-of-phaze Aug 25, 2024
2e44c7f
Initial map conversion of Cynosure.
MistakeNot4892 Jul 17, 2024
6f98664
Fix random mouse spawners
out-of-phaze Aug 25, 2024
649384f
Add Cynosure exploration gear
out-of-phaze Aug 25, 2024
a9a13d3
Port departmental winter boots from Lighthouse
out-of-phaze Aug 25, 2024
2fbc022
Port fences from Lighthouse
out-of-phaze Aug 25, 2024
d7b1df4
Add Cynosure migration file
out-of-phaze Aug 27, 2024
4ad0015
Continue Cynosure migration
out-of-phaze Aug 27, 2024
14d41bb
Replace Big Pharma with Baychems on Cynosure
out-of-phaze Aug 27, 2024
e7f9d74
Port departmental EFTPOS scanners from Lighthouse
out-of-phaze Aug 27, 2024
042fc48
Migrate Cynosure varedited sheets and some misc. items
out-of-phaze Aug 27, 2024
2887008
Add support for migration directories to update_paths
out-of-phaze Aug 27, 2024
b8a9f84
Add missing oldtile floor decals
out-of-phaze Aug 27, 2024
6f480cd
Add N2O anesthetic tank
out-of-phaze Aug 27, 2024
1325b59
Partially migrate Cynosure Z2
out-of-phaze Aug 27, 2024
b164153
Remove invalid shuttle floor Cynosure migrations
out-of-phaze Aug 27, 2024
3a729d8
Fix overlooked cigarette machine var edits on Cynosure
out-of-phaze Aug 27, 2024
7548ad8
Migrate Baychem pill bottles to new paths
out-of-phaze Aug 27, 2024
e4e15e9
Fix incorrect pipe dispenser migrations
out-of-phaze Aug 27, 2024
48aebf0
Add and run additional migrations for Cynosure
out-of-phaze Aug 28, 2024
70b97d4
Add stack of twenty-five metal rods
out-of-phaze Aug 28, 2024
bc355bd
Add additional legacy migrations for mech parts
out-of-phaze Aug 28, 2024
f27656c
Fix mis-named yellow dress
out-of-phaze Aug 30, 2024
0cab733
Migrate more Cynosure types (mostly clothes)
out-of-phaze Aug 30, 2024
a242cc9
Add a handful of legacy migrations (mostly clothing)
out-of-phaze Aug 30, 2024
af628bd
Port Polaris permits from Lighthouse
out-of-phaze Sep 1, 2024
7e65bb2
Add partially-constructed light fixture presets
out-of-phaze Sep 1, 2024
4119c05
Add red back-mounted oxygen tank
out-of-phaze Sep 1, 2024
5508fe6
Migrate and stub additional Cynosure types
out-of-phaze Sep 1, 2024
4ca569c
Add Sif flora for Cynosure
out-of-phaze Sep 1, 2024
9242ea8
Fix incorrect base_turf path on Cynosure admin level
out-of-phaze Sep 5, 2024
11a2010
Add wall-mounted anesthetic pump
out-of-phaze Sep 6, 2024
6a4829e
Add mobile oxygen pumps
out-of-phaze Sep 6, 2024
ea03dba
Implement or remove several missing Cynosure areas
out-of-phaze Sep 6, 2024
bfe9e30
Add bar holosign and sprite
out-of-phaze Mar 27, 2024
42f9d70
Fix bar open/closed sign icons
out-of-phaze May 1, 2024
5ecb0bc
Run the legacy migrations on Cynosure again because I forgot to
out-of-phaze Sep 6, 2024
26d4266
Migrate a bunch of Cynosure shuttle wall turfs
out-of-phaze Sep 6, 2024
82886fa
Port maid dresses from Lighthouse/Polaris
out-of-phaze Sep 6, 2024
6a45573
Port fluffy cuffs from Lighthouse
out-of-phaze Sep 6, 2024
06ff9b0
Port voidcraft walls from Lighthouse
out-of-phaze Sep 6, 2024
bde1105
Port EMT voidsuit from Lighthouse
out-of-phaze Sep 6, 2024
2a10f7d
Fix article capitalization in emote strings
out-of-phaze Sep 6, 2024
afff934
Fix incorrect usage of bool for material opacity
out-of-phaze Sep 6, 2024
8fbd828
Add/expand cryopod visible messages
out-of-phaze Sep 6, 2024
e6d0d0b
Port door cryopods from Lighthouse
out-of-phaze Sep 6, 2024
4c5e10d
Add security newscaster preset
out-of-phaze Sep 6, 2024
9eb6d6a
Add hidden SMES preset for use in submaps
out-of-phaze Sep 6, 2024
10c04a0
Fix tram door glass color
out-of-phaze Sep 6, 2024
cd5f9be
Compile fixes for Cynosure map.
MistakeNot4892 Sep 22, 2024
c19dc65
More Cynosure map conversion.
MistakeNot4892 Sep 22, 2024
b0a460b
Porting Polaris flora from SCross port.
MistakeNot4892 Sep 22, 2024
0f337dd
Map conversion following rebase.
MistakeNot4892 Dec 18, 2024
be76597
Reimplementing/including files for Cynosure.
MistakeNot4892 Dec 18, 2024
1d0b2a3
Continuing to update Cynosure paths/stubs.
MistakeNot4892 Jan 6, 2025
b388ad7
Moving Cynosure icons into Polaris modpack.
MistakeNot4892 Jan 6, 2025
dc1d8f1
Updating after rebase to current Polnebdev.
MistakeNot4892 Mar 9, 2025
6200bf4
Snipping out Cynosure for interim merge to main Polnebdev.
MistakeNot4892 Mar 9, 2025
e83f43f
Removing unimplemented stub types.
MistakeNot4892 Mar 9, 2025
1bbc579
Fixes to pass CI.
MistakeNot4892 Mar 21, 2025
87ee193
Merge branch 'master' of https://github.com/PolarisSS13/Polaris-Neb i…
MistakeNot4892 Mar 22, 2025
c4370f7
Removed redundant maid dresses.
MistakeNot4892 Mar 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions code/__defines/holomap.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define HOLOMAP_AREACOLOR_ESCAPE "#ff0000cc"
#define HOLOMAP_AREACOLOR_CREW "#5bc1c199"
#define HOLOMAP_AREACOLOR_MAINTENANCE "#9c895066"

// If someone can come up with a non-conflicting color for the lifts, please update this.
#define HOLOMAP_AREACOLOR_LIFTS null

Expand Down
41 changes: 25 additions & 16 deletions code/__defines/machinery.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,28 +43,37 @@ var/global/defer_powernet_rebuild = 0 // True if net rebuild will be called

// Camera channels
// Station channels
#define CAMERA_CHANNEL_PUBLIC "Public"
#define CAMERA_CAMERA_CHANNEL_ENGINEERING "Engineering"
#define CAMERA_CHANNEL_MEDICAL "Medical"
#define CAMERA_CHANNEL_RESEARCH "Research"
#define CAMERA_CHANNEL_SECURITY "Security"

#define CAMERA_CHANNEL_ROBOTS "Robots"
#define CAMERA_CHANNEL_MINE "Mining"
#define CAMERA_CHANNEL_SECRET "Secret"
#define CAMERA_CHANNEL_PUBLIC "Public"
#define CAMERA_CHANNEL_ENGINEERING "Engineering"
#define CAMERA_CHANNEL_MEDICAL "Medical"
#define CAMERA_CHANNEL_RESEARCH "Research"
#define CAMERA_CHANNEL_SECURITY "Security"
#define CAMERA_CHANNEL_ROBOTS "Robots"
#define CAMERA_CHANNEL_MINE "Mining"
#define CAMERA_CHANNEL_SECRET "Secret"
#define CAMERA_CHANNEL_COMMAND "Command"
#define CAMERA_CHANNEL_ENGINE "Engine"
#define CAMERA_CHANNEL_ENGINEERING_OUTPOST "Engineering Outpost"
#define CAMERA_CHANNEL_BASEMENT_FLOOR "Basement Floor"
#define CAMERA_CHANNEL_GROUND_FLOOR "Ground Floor"
#define CAMERA_CHANNEL_SECOND_FLOOR "Second Floor"
#define CAMERA_CHANNEL_SUPPLY "Supply"
#define CAMERA_CHANNEL_ENTERTAINMENT "Entertainment"
#define CAMERA_CHANNEL_TOXINS "Toxins Test Area"
#define CAMERA_CHANNEL_MISC_RESEARCH "Miscellaneous Research"

// Non-station channels
#define CAMERA_CHANNEL_CRESCENT "Crescent"
#define CAMERA_CHANNEL_ERT "ZeEmergencyResponseTeam"
#define CAMERA_CHANNEL_MERCENARY "MercurialNet"
#define CAMERA_CHANNEL_TELEVISION "Television"
#define CAMERA_CHANNEL_CRESCENT "Crescent"
#define CAMERA_CHANNEL_ERT "Emergency Response Team"
#define CAMERA_CHANNEL_MERCENARY "MercurialNet"
#define CAMERA_CHANNEL_TELEVISION "Television"

// Alarm networks
#define NETWORK_ALARM_ATMOS "Atmosphere Alarms"
#define NETWORK_ALARM_ATMOS "Atmosphere Alarms"
#define NETWORK_ALARM_CAMERA "Camera Alarms"
#define NETWORK_ALARM_FIRE "Fire Alarms"
#define NETWORK_ALARM_FIRE "Fire Alarms"
#define NETWORK_ALARM_MOTION "Motion Alarms"
#define NETWORK_ALARM_POWER "Power Alarms"
#define NETWORK_ALARM_POWER "Power Alarms"

//singularity defines
#define STAGE_ONE 1
Expand Down
1 change: 1 addition & 0 deletions code/__defines/misc.dm
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@
#define AREA_FLAG_HOLY BITFLAG(10) // Area is holy for the purposes of marking turfs as cult-resistant.
#define AREA_FLAG_SECURITY BITFLAG(11) // Area is security for the purposes of newscaster init.
#define AREA_FLAG_HIDE_FROM_HOLOMAP BITFLAG(12) // if we shouldn't be drawn on station holomaps
#define AREA_FLAG_IS_STATION_AREA BITFLAG(13) // TODO: Polaris port.

//Map template flags
#define TEMPLATE_FLAG_ALLOW_DUPLICATES BITFLAG(0) // Lets multiple copies of the template to be spawned
Expand Down
13 changes: 6 additions & 7 deletions code/datums/outfits/outfit.dm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/decl/outfit
abstract_type = /decl/outfit
var/name = "Naked And Afraid"
var/name = null
var/uniform = null
var/suit = null
var/back = null
Expand Down Expand Up @@ -226,12 +226,7 @@

var/decl/species/wearer_species = wearer.get_species()
if(wearer_species && !(OUTFIT_ADJUSTMENT_SKIP_SURVIVAL_GEAR & equip_adjustments))
var/decl/survival_box_option/chosen_survival_box = wearer?.client?.prefs.survival_box_choice
if(chosen_survival_box?.box_type)
if(outfit_flags & OUTFIT_EXTENDED_SURVIVAL)
wearer_species.equip_survival_gear(wearer, /obj/item/box/engineer)
else
wearer_species.equip_survival_gear(wearer, chosen_survival_box.box_type)
wearer_species.equip_survival_gear(wearer, (outfit_flags & OUTFIT_EXTENDED_SURVIVAL))

if(wearer.client?.prefs?.give_passport)
global.using_map.create_passport(wearer)
Expand Down Expand Up @@ -270,3 +265,7 @@

/decl/outfit/dd_SortValue()
return name

// Stub for the sake of being able to make people spawn nude.
/decl/outfit/naked
name = "Naked And Afraid"
3 changes: 3 additions & 0 deletions code/datums/storage/subtypes_box.dm
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@
/datum/storage/box/animal_cube
can_hold = list(/obj/item/food/animal_cube)

/datum/storage/box/large/metal
use_sound = 'sound/effects/closet_open.ogg'

/datum/storage/box/snappop
can_hold = list(/obj/item/toy/snappop)

Expand Down
11 changes: 10 additions & 1 deletion code/datums/supplypacks/science.dm
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,13 @@
/decl/hierarchy/supply_pack/science/illuminate
name = "Gear - Illumination grenades"
contains = list(/obj/item/grenade/light = 8)
containername = "illumination grenade crate"
containername = "illumination grenade crate"

/decl/hierarchy/supply_pack/science/stasis_cages
name = "Stasis Cage"
contains = list(
/obj/structure/stasis_cage = 1
)
containertype = /obj/structure/closet/crate/large
containername = "stasis cage crate"
access = access_xenofauna
12 changes: 12 additions & 0 deletions code/game/jobs/access_datum.dm
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,12 @@ var/global/const/access_research = "ACCESS_RESEARCH" //47
desc = "Science"
region = ACCESS_REGION_RESEARCH

var/global/const/access_explorer = "ACCESS_EXPLORER"
/datum/access/explorer
id = access_explorer
desc = "Explorer"
region = ACCESS_REGION_GENERAL

var/global/const/access_mining = "ACCESS_MINING" //48
/datum/access/mining
id = access_mining
Expand Down Expand Up @@ -304,6 +310,12 @@ var/global/const/access_xenobiology = "ACCESS_XENOBIO" //55
desc = "Xenobiology Lab"
region = ACCESS_REGION_RESEARCH

var/global/const/access_xenofauna = "ACCESS_XENOFAUNA"
/datum/access/xenofauna
id = access_xenofauna
desc = "Xenfauna Lab"
region = ACCESS_REGION_RESEARCH

var/global/const/access_ce = "ACCESS_CHIEF_ENGINEER" //56
/datum/access/ce
id = access_ce
Expand Down
2 changes: 1 addition & 1 deletion code/game/machinery/camera/presets.dm
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/obj/machinery/camera/network/engineering
preset_channels = list(CAMERA_CAMERA_CHANNEL_ENGINEERING)
preset_channels = list(CAMERA_CHANNEL_ENGINEERING)
req_access = list(access_engine)

/obj/machinery/camera/network/ert
Expand Down
38 changes: 34 additions & 4 deletions code/game/machinery/cryopod.dm
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,9 @@
var/occupied_icon_state = "body_scanner_1"
var/on_store_message = "has entered long-term storage."
var/on_store_name = "Cryogenic Oversight"
var/on_store_visible_message = "$TARGET$ hums and hisses as it moves $USER$ into storage." //! A visible message to display when the user is despawned. $USER$ will be replaced with the user's name, $TARGET$ will be replaced with the pod's name.
var/on_enter_occupant_message = "You feel cool air surround you. You go numb as your senses turn inward."
var/on_enter_visible_message = "$USER$ starts climbing into $TARGET$." //! A visible message to display when the user enters the pod. $USER$ will be replaced with the user's name.
var/allow_occupant_types = list(/mob/living/human)
var/disallow_occupant_types = list()

Expand Down Expand Up @@ -359,6 +361,7 @@
control_computer._admin_logs += "[key_name(occupant)] ([role_alt_title]) at [stationtime2text()]"
log_and_message_admins("[key_name(occupant)] ([role_alt_title]) entered cryostorage.")

visible_message(SPAN_NOTICE(emote_replace_user_tokens(emote_replace_target_tokens(on_store_visible_message, src), occupant)))
do_telecomms_announcement(src, "[occupant.real_name], [role_alt_title], [on_store_message]", "[on_store_name]")
despawn_character(occupant)
set_occupant(null)
Expand All @@ -369,7 +372,10 @@
if(alert(target,"Would you like to enter long-term storage?",,"Yes","No") != "Yes")
return
if(!user.incapacitated() && !user.anchored && user.Adjacent(src) && user.Adjacent(target))
visible_message("[user] starts putting [target] into \the [src].", range = 3)
if(target == user)
visible_message(SPAN_NOTICE(emote_replace_user_tokens(emote_replace_target_tokens(on_enter_visible_message, src), usr)), range = 3)
else
visible_message("[user] starts putting [target] into \the [src].", range = 3)
if(!do_after(user, 20, src)|| QDELETED(target))
return
set_occupant(target)
Expand Down Expand Up @@ -444,7 +450,7 @@
if(!usr.can_enter_cryopod(usr))
return

visible_message("\The [usr] starts climbing into \the [src].", range = 3)
visible_message(emote_replace_user_tokens(emote_replace_target_tokens(on_enter_visible_message, src), usr), range = 3)

if(do_after(usr, 20, src))

Expand Down Expand Up @@ -487,7 +493,7 @@

if(occupant.client)
if(!silent)
to_chat(occupant, SPAN_NOTICE("[on_enter_occupant_message]"))
occupant.visible_message("\The [src] [emote_replace_target_tokens(on_enter_visible_message)]", SPAN_NOTICE(on_enter_occupant_message))
to_chat(occupant, SPAN_NOTICE("<b>If you ghost, log out or close your client now, your character will shortly be permanently removed from the round.</b>"))
occupant.client.perspective = EYE_PERSPECTIVE
occupant.client.eye = src
Expand Down Expand Up @@ -545,4 +551,28 @@
return TRUE

/obj/machinery/cryopod/proc/on_mob_spawn()
playsound(src, 'sound/machines/ding.ogg', 30, 1)
playsound(src, 'sound/machines/ding.ogg', 30, 1)

/obj/machinery/cryopod/robot/door
//This inherits from the robot cryo, so synths can be properly cryo'd. If a non-synth enters and is cryo'd, ..() is called and it'll still work.
abstract_type = /obj/machinery/cryopod/robot/door
name = "Airlock of Wonders"
desc = "An airlock that isn't an airlock, and shouldn't exist. Yell at a coder/mapper."
icon = 'mods/content/polaris/icons/machines/pod_doors.dmi'
icon_state = "door_closed"
base_icon_state = "door_closed"
occupied_icon_state = "door_locked"
on_enter_visible_message = "$USER$ steps into $TARGET$."

time_till_despawn = 1 MINUTE //We want to be much faster then normal cryo, since waiting in an elevator for half an hour is a special kind of hell.

allow_occupant_types = list(/mob/living/silicon/robot,/mob/living/human)
disallow_occupant_types = list(/mob/living/silicon/robot/drone)

/obj/machinery/cryopod/robot/door/dorms
name = "Residential District Elevator"
desc = "A small elevator that goes down to the deeper section of the colony."
on_store_message = "has departed for the residential district."
on_store_name = "Residential Oversight"
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
on_store_visible_message = "$TARGET$ makes a ding as it moves $USER$ to the residential district."
14 changes: 11 additions & 3 deletions code/game/machinery/holosign.dm
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
anchored = TRUE
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
directional_offset = @'{"NORTH":{"y":-32}, "SOUTH":{"y":32}, "EAST":{"x":32}, "WEST":{"x":-32}}'
var/lit = 0
var/lit = FALSE
var/on_icon = "sign_on"
var/sign_light_color = COLOR_CYAN_BLUE

uncreated_component_parts = list(
/obj/item/stock_parts/radio/receiver,
Expand All @@ -33,11 +34,11 @@

/obj/machinery/holosign/on_update_icon()
if (!lit || inoperable())
icon_state = "sign_off"
icon_state = initial(icon_state)
set_light(0)
else
icon_state = on_icon
set_light(1, 0.5, COLOR_CYAN_BLUE)
set_light(1, 0.5, sign_light_color)

/decl/public_access/public_variable/holosign_on
expected_type = /obj/machinery/holosign
Expand Down Expand Up @@ -68,6 +69,13 @@
desc = "Small wall-mounted holographic projector. This one reads SERVICE."
on_icon = "service"

/obj/machinery/holosign/bar
name = "bar holosign"
desc = "Small wall-mounted holographic projector. This one reads OPEN."
icon_state = "barclosed"
on_icon = "baropen"
sign_light_color = COLOR_LIGHT_CYAN

////////////////////SWITCH///////////////////////////////////////
/obj/machinery/button/holosign
name = "holosign switch"
Expand Down
5 changes: 5 additions & 0 deletions code/game/machinery/newscaster.dm
Original file line number Diff line number Diff line change
Expand Up @@ -943,3 +943,8 @@ var/global/list/allCasters = list() //Global list that will contain reference to
else
audible_message("<span class='newscaster'><EM>[src.name]</EM> beeps, \"Attention! Wanted issue distributed!\"</span>")
playsound(src.loc, 'sound/machines/warning-buzzer.ogg', 75, 1)

// security newscaster preset
/obj/machinery/newscaster/security_unit
base_type = /obj/machinery/newscaster
securityCaster = TRUE
63 changes: 63 additions & 0 deletions code/game/machinery/oxygen_pump.dm
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
var/mask_type = /obj/item/clothing/mask/breath/emergency
var/icon_state_open = "emerg_open"
var/icon_state_closed = "emerg"
var/icon_state_active // TODO implement

power_channel = ENVIRON
idle_power_usage = 10
Expand Down Expand Up @@ -233,3 +234,65 @@
tank.distribute_pressure += cp
tank.distribute_pressure = min(max(round(tank.distribute_pressure), 0), TANK_MAX_RELEASE_PRESSURE)
. = TOPIC_REFRESH // Refreshing is handled in machinery/Topic

/obj/machinery/oxygen_pump/anesthetic
name = "anesthetic pump"
desc = "A wall-mounted anesthetic pump with a retractable mask that someone can pull over your face to knock you out."
spawn_type = /obj/item/tank/anesthetic
icon_state = "anesthetic_tank"
icon_state_closed = "anesthetic_tank"
icon_state_open = "anesthetic_tank_open"
mask_type = /obj/item/clothing/mask/breath/medical

/obj/machinery/oxygen_pump/mobile
name = "portable oxygen pump"
icon = 'icons/obj/machines/medpump.dmi'
desc = "A portable oxygen pump with a retractable mask that you can pull over your face in case of emergencies."
icon_state = "medpump"
icon_state_open = "medpump_open"
icon_state_closed = "medpump"
icon_state_active = "medpump_active"

anchored = FALSE
density = TRUE

/obj/machinery/oxygen_pump/mobile/anesthetic
name = "portable anesthetic pump"
desc = "A portable anesthetic pump with a retractable mask that someone can pull over your face to knock you out."
spawn_type = /obj/item/tank/anesthetic
icon_state = "medpump_n2o"
icon_state_closed = "medpump_n2o"
icon_state_open = "medpump_n2o_open"
icon_state_active = "medpump_n2o_active"
mask_type = /obj/item/clothing/mask/breath // /obj/item/clothing/mask/breath/anesthetic // TODO implement

/obj/machinery/oxygen_pump/mobile/stabilizer
name = "portable patient stabilizer"
desc = "A portable oxygen pump with a retractable mask used for stabilizing patients in the field."
icon_state = "patient_stabilizer"
icon_state_closed = "patient_stabilizer"
icon_state_open = "patient_stabilizer_open"
icon_state_active = "patient_stabilizer_active"

/obj/machinery/oxygen_pump/mobile/stabilizer/Process()
. = ..()
if(!breather) // Safety.
return
if(breather.isSynthetic())
return

/* TODO: port modifiers or something similar
breather.add_modifier(breather.stat == DEAD ? /datum/modifier/bloodpump/corpse : /datum/modifier/bloodpump, 6 SECONDS)
*/

var/obj/item/organ/internal/lungs/lungs = breather.get_organ(BP_LUNGS, /obj/item/organ/internal/lungs)
if(!lungs)
return
if(lungs.status & ORGAN_DEAD)
breather.adjustOxyLoss(-(rand(1,8)))
else
breather.adjustOxyLoss(-(rand(10,15)))
if(lungs.is_bruised() && prob(30))
lungs.heal_damage(1)
else
breather.ticks_since_last_successful_breath = max(breather.ticks_since_last_successful_breath - rand(1,5), 0)
6 changes: 6 additions & 0 deletions code/game/objects/effects/force_wall.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/obj/effect/force_wall
anchored = TRUE
opacity = FALSE
density = TRUE
icon = 'icons/effects/force_wall.dmi'
icon_state = ICON_STATE_WORLD
2 changes: 1 addition & 1 deletion code/game/objects/items/circuitboards/computer/computer.dm
Original file line number Diff line number Diff line change
Expand Up @@ -120,4 +120,4 @@

/obj/item/stock_parts/circuitboard/guestpass
name = "circuitboard (guest pass terminal)"
build_path = /obj/machinery/computer/guestpass
build_path = /obj/machinery/computer/guestpass
Loading
Loading