Skip to content
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

This is SS13 in 2014 #1269

Merged
merged 85 commits into from
May 26, 2024
Merged
Show file tree
Hide file tree
Changes from 11 commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
f1a1df0
base cybernetics
dwasint Feb 20, 2024
4d2fbb6
more cyber stuff
dwasint Feb 21, 2024
a77fe75
start of sandy
dwasint Feb 22, 2024
b88a7e1
sandy
dwasint Feb 22, 2024
b580c3f
changes
dwasint Feb 23, 2024
0c6bb18
ipc
dwasint Feb 24, 2024
b67e069
more fixes
dwasint Feb 24, 2024
96256a6
changes how augments are stored code wise, makes chromatas unique, ne…
dwasint Feb 26, 2024
73e2ab4
whoops
dwasint Feb 26, 2024
b018379
adds razorwire.
dwasint Feb 26, 2024
2d54ead
simpler times
dwasint Feb 26, 2024
154f89a
Merge branch 'master' into ss13-in-2014
dwasint Mar 3, 2024
a38d0b4
Update monkestation/code/modules/cybernetics/augments/arm_augments/it…
dwasint Mar 16, 2024
8dbaafd
Merge branch 'master' into ss13-in-2014
dwasint Mar 31, 2024
59da148
Update autosurgeons.dm
dwasint Mar 31, 2024
ba3ce72
icon fixes
dwasint Mar 31, 2024
dbdf909
adds aftermarket sandevistian
dwasint Mar 31, 2024
c38f8a4
Merge branch 'master' into ss13-in-2014
dwasint May 3, 2024
680198a
Basic changes
dwasint May 3, 2024
3762f46
more fixes
dwasint May 3, 2024
53f4cb9
adds sounds and closes the ui for users
dwasint May 3, 2024
2d212a8
Update cyberlink_connector.dm
dwasint May 3, 2024
3b5abbc
bam
dwasint May 3, 2024
fdad864
chem vat and drills
dwasint May 3, 2024
eecf557
whoops
dwasint May 3, 2024
89baf96
adds designs for job item sets
dwasint May 3, 2024
7f14ada
adds tech nodes
dwasint May 3, 2024
566cb9d
Delete screenshot_humanoids__datum_species_apid.png
dwasint May 3, 2024
305a07f
whoops
dwasint May 3, 2024
8f59bb5
Update item_sets.dm
dwasint May 3, 2024
f140963
Update tech_nodes.dm
dwasint May 3, 2024
3153d94
fixes
dwasint May 3, 2024
0efac3b
more cooldown stuff
dwasint May 3, 2024
ccc2f09
Update chest_augments.dm
dwasint May 3, 2024
3f52490
fixes
dwasint May 3, 2024
4daf2a7
Update security.dm
dwasint May 3, 2024
455412d
Update generic.dm
dwasint May 3, 2024
8aed305
Adds border smoothing! (Look ma I'm upstreaming) (#76134)
LemonInTheDark Jun 22, 2023
f1d28e7
map changes
dwasint May 4, 2024
ca1ebd7
Update leash.dm
dwasint May 4, 2024
c2d59d7
Update species.dm
dwasint May 4, 2024
98b0cdc
animate holder.
dwasint May 4, 2024
17b6daa
auction fix
dwasint May 4, 2024
c7bd429
dancing and shitty hacking minigame which has no use as of yet
dwasint May 5, 2024
39a5e44
balance pass for combat cybernteics
dwasint May 5, 2024
24817eb
Update dancing.dm
dwasint May 5, 2024
83589ef
Update generic.dm
dwasint May 5, 2024
18d450b
Update camera.dm
dwasint May 5, 2024
9d1e05f
gh
dwasint May 5, 2024
a8e7c95
tons of changes
dwasint May 5, 2024
92ee297
Update _base.dm
dwasint May 6, 2024
1c9108a
more fixes
dwasint May 6, 2024
4c8b292
Update chest_augments.dm
dwasint May 6, 2024
654b59e
Update general_hacking.dm
dwasint May 6, 2024
9bea07c
Update general_hacking.dm
dwasint May 6, 2024
add5c7d
Update jobs.dm
dwasint May 6, 2024
98545bb
Update dancing.dm
dwasint May 6, 2024
d7ee28f
Update chest_augments.dm
dwasint May 7, 2024
6c082dd
fixes
dwasint May 7, 2024
4586af7
Update stamina_container.dm
dwasint May 7, 2024
3936fb0
Update stamina_container.dm
dwasint May 7, 2024
1cdf71c
Update carbon.dm
dwasint May 7, 2024
cb841da
Update stamina_container.dm
dwasint May 7, 2024
6985ed5
Update security.dm
dwasint May 9, 2024
e338d28
knockout
dwasint May 10, 2024
180f545
Update chest_augments.dm
dwasint May 10, 2024
bace898
adds it to black market
dwasint May 10, 2024
f0363b0
Update aftermarket_implants.dm
dwasint May 10, 2024
6467394
changes
dwasint May 13, 2024
3d57d5d
Update cybernetics.dm
dwasint May 14, 2024
bd38134
makes cyberlinks use a different set of protocols, which lets them us…
dwasint May 14, 2024
b1a4726
adds skillchip to ease difficulty, makes emp use emp act on hacker, m…
dwasint May 14, 2024
cc7a805
makes some of the implants require syndielinks
dwasint May 14, 2024
e386c66
more changes
dwasint May 14, 2024
2d67d17
Update loadout.dm
dwasint May 16, 2024
7235a25
duct tape fix
dwasint May 18, 2024
5761690
apid hives should dump stuff now, oozelings should now grab ghost again
dwasint May 18, 2024
b80e6f5
hairs
dwasint May 19, 2024
10697f1
Update _base_changes.dm
dwasint May 22, 2024
8f42629
Merge branch 'master' into ss13-in-2014
dwasint May 24, 2024
4a98e32
Update organs.dm
dwasint May 24, 2024
df15947
tons of stuff
dwasint May 26, 2024
49ee2eb
Update cyberlink_connector.dm
dwasint May 26, 2024
2f24798
Update hive_object.dm
dwasint May 26, 2024
a742516
Update hive_object.dm
dwasint May 26, 2024
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
8 changes: 8 additions & 0 deletions code/__DEFINES/DNA.dm
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,10 @@
#define ORGAN_SLOT_ZOMBIE "zombie_infection"
#define ORGAN_SLOT_BUTT "butt"
#define ORGAN_SLOT_BLADDER "bladder"
#define ORGAN_SLOT_LINK "cyber_link"
#define ORGAN_SLOT_RIGHT_LEG_AUG "r_leg_device"
#define ORGAN_SLOT_LEFT_LEG_AUG "l_leg_device"
#define ORGAN_SLOT_SPINAL "spinal_implant"

/// Organ slot external
#define ORGAN_SLOT_EXTERNAL_TAIL "tail"
Expand Down Expand Up @@ -170,9 +174,13 @@
/// Exists so Life()'s organ process order is consistent
GLOBAL_LIST_INIT(organ_process_order, list(
ORGAN_SLOT_BRAIN,
ORGAN_SLOT_LINK,
ORGAN_SLOT_SPINAL,
ORGAN_SLOT_APPENDIX,
ORGAN_SLOT_RIGHT_ARM_AUG,
ORGAN_SLOT_LEFT_ARM_AUG,
ORGAN_SLOT_RIGHT_LEG_AUG,
ORGAN_SLOT_LEFT_LEG_AUG,
ORGAN_SLOT_STOMACH,
ORGAN_SLOT_STOMACH_AID,
ORGAN_SLOT_BREATHING_TUBE,
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/atom_hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@
#define DIAG_NANITE_FULL_HUD "24"
// for gun permit
#define PERMIT_HUD "25"
// for implants to let you see sensor field
#define SENSOR_HUD "26"
//monkestation edit end

//by default everything in the hud_list of an atom is an image
Expand All @@ -70,6 +72,7 @@
#define DATA_HUD_AI_DETECT 9
#define DATA_HUD_FAN 10
#define DATA_HUD_PERMIT 11 //monkestation edit
#define DATA_HUD_SENSORS 12 //monkestation edit

// Notification action types
#define NOTIFY_JUMP "jump"
Expand Down
4 changes: 2 additions & 2 deletions code/__DEFINES/dcs/signals/signals_object.dm
Original file line number Diff line number Diff line change
Expand Up @@ -321,10 +321,10 @@
//called in /obj/item/tank/jetpack/proc/turn_off() : ()
#define COMSIG_JETPACK_DEACTIVATED "jetpack_deactivated"

//called in /obj/item/organ/cyberimp/chest/thrusters/proc/toggle() : ()
//called in /obj/item/organ/internal/cyberimp/chest/thrusters/proc/toggle() : ()
#define COMSIG_THRUSTER_ACTIVATED "jetmodule_activated"
#define THRUSTER_ACTIVATION_FAILED (1<<0)
//called in /obj/item/organ/cyberimp/chest/thrusters/proc/toggle() : ()
//called in /obj/item/organ/internal/cyberimp/chest/thrusters/proc/toggle() : ()
#define COMSIG_THRUSTER_DEACTIVATED "jetmodule_deactivated"

// /obj/item/camera signals
Expand Down
10 changes: 6 additions & 4 deletions code/__DEFINES/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,12 @@
Therefore, the top right corner (except during admin shenanigans) is at "15,15"
*/

/proc/ui_hand_position(i) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5)
var/x_off = i % 2 ? 0 : -1
var/y_off = round((i-1) / 2)
return"CENTER+[x_off]:16,SOUTH+[y_off]:5"
//Monkestation EDIT: START - CYBERNETICS
/proc/ui_hand_position(i,y_offset = 0,y_pixel_offset = 0) //values based on old hand ui positions (CENTER:-/+16,SOUTH:5)
var/x_off = -(!(i % 2))
var/y_off = round((i-1) / 2) + y_offset
return"CENTER+[x_off]:16,SOUTH+[y_off]:[5 + y_pixel_offset]"
//Monkestation EDIT: END - CYBERNETICS

/proc/ui_equip_position(mob/M)
var/y_off = round((M.held_items.len-1) / 2) //values based on old equip ui position (CENTER: +/-16,SOUTH+1:5)
Expand Down
39 changes: 39 additions & 0 deletions code/__DEFINES/~monkestation/cybernetics.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/// Cybernetics defines

#define SECURITY_PROTOCOL "sec_protocol"
#define ENCODE_PROTOCOL "enc_protocol"
#define OPERATING_PROTOCOL "op_protocol"

#define NO_PROTOCOL 0

/// Security protocols

///Those names mean nothing don't try to decipher these. They are defines because some cybernetics will be incompatible with eachother. treat those defines like software names.

#define SECURITY_NT1 "nt1"
#define SECURITY_NT2 "nt2"
#define SECURITY_NTX "ntx"
#define SECURITY_TMSP "tmsp"
#define SECURITY_TOSP "tosp"


/// Encode protocol

#define ENCODE_ENC1 "enc1"
#define ENCODE_ENC2 "enc2"
#define ENCODE_TENN "tenn"
#define ENCODE_CSEP "csep"


/// Operating protocol

#define OPERATING_NTOS "ntos"
#define OPERATING_TGMF "tgmf"
#define OPERATING_CSOF "csof"

#define AUGMENT_NO_REQ list(SECURITY_PROTOCOL = NO_PROTOCOL, ENCODE_PROTOCOL = NO_PROTOCOL, OPERATING_PROTOCOL = NO_PROTOCOL)
#define AUGMENT_NT_LOWLEVEL list(SECURITY_PROTOCOL = list(SECURITY_NT1), ENCODE_PROTOCOL = list(ENCODE_ENC1), OPERATING_PROTOCOL = list(OPERATING_NTOS))
#define AUGMENT_NT_HIGHLEVEL list(SECURITY_PROTOCOL = list(SECURITY_NT2 , SECURITY_NT1), ENCODE_PROTOCOL = list(ENCODE_ENC2), OPERATING_PROTOCOL = list(OPERATING_NTOS))
#define AUGMENT_TG_LEVEL list(SECURITY_PROTOCOL = list(SECURITY_NTX , SECURITY_NT2 , SECURITY_TMSP), ENCODE_PROTOCOL = list(ENCODE_TENN), OPERATING_PROTOCOL = list(OPERATING_TGMF))
#define AUGMENT_SYNDICATE_LEVEL list(SECURITY_PROTOCOL = list(SECURITY_TOSP), ENCODE_PROTOCOL = list(ENCODE_CSEP , ENCODE_TENN), OPERATING_PROTOCOL = list(OPERATING_CSOF))
#define AUGMENT_ADMIN_LEVEL list(SECURITY_PROTOCOL = list(SECURITY_NTX , SECURITY_NT2 , SECURITY_NT1, SECURITY_TMSP, SECURITY_TOSP), ENCODE_PROTOCOL = list(ENCODE_ENC1, ENCODE_ENC2, ENCODE_CSEP, ENCODE_TENN), OPERATING_PROTOCOL = list(OPERATING_CSOF, OPERATING_TGMF, OPERATING_NTOS))
3 changes: 3 additions & 0 deletions code/__DEFINES/~monkestation/dcs/signals/signals_atom.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@

/// from base of atom/eminence_act() : (mob/living/eminence/user)
#define COMSIG_ATOM_EMINENCE_ACT "atom_eminence_act"

///Called by either cell/proc/give or cell/proc/use
#define COMSIG_CELL_CHANGE_POWER "cell_change_power"
5 changes: 5 additions & 0 deletions code/__DEFINES/~monkestation/dcs/signals/signals_carbon.dm
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
#define COMSIG_CARBON_EQUIP_EARS "carbon_ears_equip"
#define COMSIG_CARBON_UNEQUIP_EARS "carbon_ears_unequip"

///Sent to carbon when they pickup something (/obj/item)
#define COMSIG_CARBON_ITEM_PICKED_UP "carbon_item_picked_up"
///Sent to carbon when they drop something (/obj/item)
#define COMSIG_CARBON_ITEM_DROPPED "carbon_item_dropped"
1 change: 1 addition & 0 deletions code/__DEFINES/~monkestation/skills.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#define SKILL_TIME_MODIFIER "skill_time_modifier" //ideally added to timers and other do_afters()
5 changes: 5 additions & 0 deletions code/__DEFINES/~monkestation/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,8 @@
#define TRAIT_PERFECT_SURGEON "perfect_surgeon"
/// Station trait for when the clown has bridge access *shudders*
#define STATION_TRAIT_CLOWN_BRIDGE "clown_bridge"

#define TRAIT_SENSOR_HUD "sensor_hud"
#define TRAIT_SHOVE_RESIST "shove_resist" //Used by implants
#define TRAIT_FAST_CLIMBER "fast_climber" //Used by implants
#define ANTI_DROP_IMPLANT_TRAIT "antidrop_implant"
3 changes: 2 additions & 1 deletion code/_globalvars/traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,8 @@ GLOBAL_LIST_INIT(traits_by_type, list(
"TRAIT_OVERWATCH_IMMUNE" = TRAIT_OVERWATCH_IMMUNE,
"TRAIT_UNDENSE" = TRAIT_UNDENSE,
"TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV,
"TRAIT_ANALGESIA" = TRAIT_ANALGESIA
"TRAIT_ANALGESIA" = TRAIT_ANALGESIA,
"TRAIT_FAST_CLIMBER" = TRAIT_FAST_CLIMBER
),
/obj/item/bodypart = list(
"TRAIT_PARALYSIS" = TRAIT_PARALYSIS,
Expand Down
4 changes: 4 additions & 0 deletions code/_onclick/hud/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,9 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
var/atom/movable/screen/stamina
var/atom/movable/screen/healthdoll
var/atom/movable/screen/spacesuit

var/list/atom/movable/screen/cybernetics/ammo_counter/cybernetics_ammo = list() //monkestation edit - CYBERNETICS

// subtypes can override this to force a specific UI style
var/ui_style

Expand Down Expand Up @@ -227,6 +230,7 @@ GLOBAL_LIST_INIT(available_ui_styles, list(
stamina = null
healthdoll = null
spacesuit = null
cybernetics_ammo = null //monkestation edit - CYBERNETICS
blobpwrdisplay = null
alien_plasma_display = null
alien_queen_finder = null
Expand Down
45 changes: 45 additions & 0 deletions code/datums/components/leash.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@
/// The object type to create on the new turf when forcibly teleporting out
var/force_teleport_in_effect

var/beam_icon_state
var/beam_icon
var/list/beams = list()
var/force_teleports

VAR_PRIVATE
// Pathfinding can yield, so only move us closer if this is the best one
current_path_tick = 0
Expand All @@ -25,6 +30,9 @@
distance = 3,
force_teleport_out_effect,
force_teleport_in_effect,
beam_icon_state,
beam_icon,
force_teleports = TRUE
)
. = ..()

Expand Down Expand Up @@ -52,6 +60,9 @@
src.distance = distance
src.force_teleport_out_effect = force_teleport_out_effect
src.force_teleport_in_effect = force_teleport_in_effect
src.beam_icon_state = beam_icon_state
src.beam_icon = beam_icon
src.force_teleports = force_teleports

RegisterSignal(owner, COMSIG_QDELETING, PROC_REF(on_owner_qdel))

Expand All @@ -67,6 +78,7 @@

/datum/component/leash/Destroy()
owner = null
QDEL_LIST(beams)
return ..()

/datum/component/leash/proc/set_distance(distance)
Expand Down Expand Up @@ -106,6 +118,10 @@
set waitfor = FALSE
PRIVATE_PROC(TRUE)

if(beam_icon && beam_icon_state)
var/list/true_path = get_path_to(parent, owner)
redraw_beams(true_path)

if (get_dist(parent, owner) <= distance)
return

Expand Down Expand Up @@ -149,6 +165,9 @@
/datum/component/leash/proc/force_teleport_back(reason)
PRIVATE_PROC(TRUE)

if(!force_teleports)
qdel(src)

var/atom/movable/movable_parent = parent

SSblackbox.record_feedback("tally", "leash_force_teleport_back", 1, reason)
Expand All @@ -166,6 +185,32 @@

SEND_SIGNAL(parent, COMSIG_LEASH_FORCE_TELEPORT)


/datum/component/leash/proc/redraw_beams(list/path)
for(var/datum/beam/beam as anything in beams)
beams -= beam
qdel(beam)

var/atom/movable/movable_parent = parent
var/turf/first_turf = path[1]
var/atom/new_host = movable_parent

var/normal_direction = get_dir(movable_parent, first_turf) // we want to follow 1 dir until it turns and follow that way
var/dist = length(path)
for(var/turf/to_move as anything in path)
dist--
if(dist == 0)
beams += new_host.Beam(to_move, beam_icon_state, beam_icon)
normal_direction = get_dir(new_host, to_move)
new_host = to_move

else if((get_dir(new_host, to_move) == normal_direction))
continue

beams += new_host.Beam(to_move, beam_icon_state, beam_icon)
normal_direction = get_dir(new_host, to_move)
new_host = to_move

/// A debug spawner that will create a corgi leashed to a bike horn, plus a beam
/obj/effect/spawner/debug_leash

Expand Down
7 changes: 5 additions & 2 deletions code/datums/elements/climbable.dm
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@
adjusted_climb_time *= 0.25 //aliens are terrifyingly fast
if(HAS_TRAIT(user, TRAIT_FREERUNNING)) //do you have any idea how fast I am???
adjusted_climb_time *= 0.8
adjusted_climb_stun *= 0.8
//monkestation edit - CYBERNETICS
if(HAS_TRAIT(user,TRAIT_FAST_CLIMBER)) //How it feels to chew 5 gum
adjusted_climb_time *= 0.3
//monkestation edit - CYBERNETICS
LAZYADDASSOCLIST(current_climbers, climbed_thing, user)
if(do_after(user, adjusted_climb_time, climbed_thing))
if(QDELETED(climbed_thing)) //Checking if structure has been destroyed
Expand Down Expand Up @@ -147,7 +150,7 @@
if(bumpee.force_moving?.allow_climbing)
do_climb(source, bumpee)
if(bumpee.m_intent == MOVE_INTENT_SPRINT)
INVOKE_ASYNC(src, PROC_REF(attempt_sprint_climb), source, bumpee)
INVOKE_ASYNC(src, PROC_REF(climb_structure), source, bumpee)

///Tries to climb onto the target if the forced movement of the mob allows it
/datum/element/climbable/proc/attempt_sprint_climb(datum/source, mob/bumpee)
Expand Down
1 change: 1 addition & 0 deletions code/datums/hud.dm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ GLOBAL_LIST_INIT(huds, list(
DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(),
DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(),
DATA_HUD_PERMIT = new/datum/atom_hud/data/human/permit(), //monkestation edit
DATA_HUD_SENSORS = new/datum/atom_hud/data/human/medical/basic/sensors(), //monkestation edit - CYBERNETICS
))

/datum/atom_hud
Expand Down
6 changes: 3 additions & 3 deletions code/datums/station_traits/positive_traits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -295,7 +295,7 @@
/datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus,
/datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow,
/datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3,
/datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/surgery,
/datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/item_set/surgery,
/datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer.
/datum/job/head_of_personnel = /obj/item/organ/internal/eyes/robotic,
/datum/job/head_of_security = /obj/item/organ/internal/eyes/robotic/thermals,
Expand All @@ -309,9 +309,9 @@
/datum/job/research_director = /obj/item/organ/internal/cyberimp/bci,
/datum/job/roboticist = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic,
/datum/job/scientist = /obj/item/organ/internal/ears/cybernetic,
/datum/job/security_officer = /obj/item/organ/internal/cyberimp/arm/flash,
/datum/job/security_officer = /obj/item/organ/internal/cyberimp/arm/item_set/flash,
/datum/job/shaft_miner = /obj/item/organ/internal/monster_core/rush_gland,
/datum/job/station_engineer = /obj/item/organ/internal/cyberimp/arm/toolset,
/datum/job/station_engineer = /obj/item/organ/internal/cyberimp/arm/item_set/toolset,
/datum/job/virologist = /obj/item/organ/internal/lungs/cybernetic/tier2,
/datum/job/warden = /obj/item/organ/internal/cyberimp/eyes/hud/security,
)
Expand Down
24 changes: 19 additions & 5 deletions code/game/data_huds.dm
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@
/datum/atom_hud/data/human/medical
hud_icons = list(STATUS_HUD, HEALTH_HUD, NANITE_HUD)

/datum/atom_hud/data/human/medical/basic
/datum/atom_hud/data/human/medical/basic/add_atom_to_single_mob_hud(mob/M, mob/living/carbon/H)
if(check_sensors(H))
..()

/datum/atom_hud/data/human/medical/basic/proc/update_suit_sensors(mob/living/carbon/H)
check_sensors(H) ? add_atom_to_hud(H) : remove_atom_from_hud(H)

/datum/atom_hud/data/human/medical/basic/proc/check_sensors(mob/living/carbon/human/H)
if(!istype(H))
Expand All @@ -32,11 +37,12 @@
return FALSE
return TRUE

/datum/atom_hud/data/human/medical/basic/add_atom_to_single_mob_hud(mob/M, mob/living/carbon/H)
if(check_sensors(H))
..()
/datum/atom_hud/data/human/medical/advanced

/datum/atom_hud/data/human/medical/basic/proc/update_suit_sensors(mob/living/carbon/H)
/datum/atom_hud/data/human/medical/basic/sensors
hud_icons = list(SENSOR_HUD)

/datum/atom_hud/data/human/medical/basic/sensors/update_suit_sensors(mob/living/carbon/H)
check_sensors(H) ? add_atom_to_hud(H) : remove_atom_from_hud(H)

/datum/atom_hud/data/human/medical/advanced
Expand Down Expand Up @@ -167,7 +173,9 @@ Medical HUD! Basic mode needs suit sensors on.
//called when a human changes suit sensors
/mob/living/carbon/proc/update_suit_sensors()
var/datum/atom_hud/data/human/medical/basic/B = GLOB.huds[DATA_HUD_MEDICAL_BASIC]
var/datum/atom_hud/data/human/medical/basic/sensors/S = GLOB.huds[DATA_HUD_SENSORS]
B.update_suit_sensors(src)
S.update_suit_sensors(src)

//called when a living mob changes health
/mob/living/proc/med_hud_set_health()
Expand All @@ -186,14 +194,20 @@ Medical HUD! Basic mode needs suit sensors on.
//called when a carbon changes stat, virus or XENO_HOST
/mob/living/proc/med_hud_set_status()
var/image/holder = hud_list?[STATUS_HUD]
var/image/sensors = hud_list?[SENSOR_HUD]
if (isnull(holder))
return

var/icon/I = icon(icon, icon_state, dir)
holder.pixel_y = I.Height() - world.icon_size
if(stat == DEAD || (HAS_TRAIT(src, TRAIT_FAKEDEATH)))
if(sensors)
SET_PLANE_EXPLICIT(sensors, ABOVE_LIGHTING_PLANE, src)
sensors.icon_state = "sensors"

holder.icon_state = "huddead"
else
sensors?.icon_state = null
holder.icon_state = "hudhealthy"

/mob/living/carbon/med_hud_set_status()
Expand Down
4 changes: 4 additions & 0 deletions code/game/machinery/doors/door.dm
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,10 @@
forced_open = crowbar.force_opens
if(istype(tool, /obj/item/slasher_machette))
forced_open = TRUE
if(istype(tool, /obj/item/mantis_blade/chromata))
var/obj/item/mantis_blade/chromata/attacker = tool
forced_open = attacker.check_can_crowbar(user)

try_to_crowbar(tool, user, forced_open)
return TOOL_ACT_TOOLTYPE_SUCCESS

Expand Down
Loading
Loading