April sync (#360)
* Maps and things no code/icons * helpers defines globalvars * Onclick world.dm orphaned_procs * subsystems Round vote and shuttle autocall done here too * datums * Game folder * Admin - chatter modules * clothing - mining * modular computers - zambies * client * mob level 1 * mob stage 2 + simple_animal * silicons n brains * mob stage 3 + Alien/Monkey * human mobs * icons updated * some sounds * emitter y u no commit * update tgstation.dme * compile fixes * travis fixes Also removes Fast digest mode, because reasons. * tweaks for travis Mentors are broke again Also fixes Sizeray guns * oxygen loss fix for vore code. * removes unused code * some code updates * bulk fixes * further fixes * outside things * whoops. * Maint bar ported * GLOBs.
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
armor = list(melee = 40, bullet = 40, laser = 50, energy = 35, bomb = 20, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
max_temperature = 35000
|
||||
leg_overload_coeff = 100
|
||||
operation_req_access = list(access_syndicate)
|
||||
operation_req_access = list(GLOB.access_syndicate)
|
||||
wreckage = /obj/structure/mecha_wreckage/gygax/dark
|
||||
max_equip = 4
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
max_temperature = 25000
|
||||
infra_luminosity = 5
|
||||
operation_req_access = list(access_theatre)
|
||||
operation_req_access = list(GLOB.access_theatre)
|
||||
wreckage = /obj/structure/mecha_wreckage/honker
|
||||
add_req_access = 0
|
||||
max_equip = 3
|
||||
@@ -68,7 +68,7 @@
|
||||
<script language='javascript' type='text/javascript'>
|
||||
[js_byjax]
|
||||
[js_dropdowns]
|
||||
function ticker() {
|
||||
function SSticker() {
|
||||
setInterval(function(){
|
||||
window.location='byond://?src=\ref[src]&update_content=1';
|
||||
document.body.style.color = get_rand_color_string();
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
window.onload = function() {
|
||||
dropdowns();
|
||||
ticker();
|
||||
SSticker();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
max_temperature = 60000
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF
|
||||
infra_luminosity = 3
|
||||
operation_req_access = list(access_cent_specops)
|
||||
operation_req_access = list(GLOB.access_cent_specops)
|
||||
wreckage = /obj/structure/mecha_wreckage/marauder
|
||||
add_req_access = 0
|
||||
internal_damage_threshold = 25
|
||||
@@ -45,7 +45,7 @@
|
||||
desc = "Heavy-duty, command-type exosuit. This is a custom model, utilized only by high-ranking military personnel."
|
||||
name = "\improper Seraph"
|
||||
icon_state = "seraph"
|
||||
operation_req_access = list(access_cent_specops)
|
||||
operation_req_access = list(GLOB.access_cent_specops)
|
||||
step_in = 3
|
||||
obj_integrity = 550
|
||||
wreckage = /obj/structure/mecha_wreckage/seraph
|
||||
@@ -71,7 +71,7 @@
|
||||
desc = "Heavy-duty, combat exosuit, developed off of the existing Marauder model."
|
||||
name = "\improper Mauler"
|
||||
icon_state = "mauler"
|
||||
operation_req_access = list(access_syndicate)
|
||||
operation_req_access = list(GLOB.access_syndicate)
|
||||
wreckage = /obj/structure/mecha_wreckage/mauler
|
||||
max_equip = 5
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
armor = list(melee = 25, bullet = 20, laser = 30, energy = 15, bomb = 0, bio = 0, rad = 0, fire = 100, acid = 100)
|
||||
max_temperature = 15000
|
||||
wreckage = /obj/structure/mecha_wreckage/reticence
|
||||
operation_req_access = list(access_theatre)
|
||||
operation_req_access = list(GLOB.access_theatre)
|
||||
add_req_access = 0
|
||||
internal_damage_threshold = 25
|
||||
max_equip = 2
|
||||
|
||||
@@ -112,6 +112,7 @@
|
||||
var/scanning = 0
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/mining_scanner/New()
|
||||
..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/mining_scanner/attach(obj/mecha/M)
|
||||
|
||||
@@ -199,11 +199,11 @@
|
||||
var/mode = 0 //0 - deconstruct, 1 - wall or floor, 2 - airlock.
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/rcd/New()
|
||||
rcd_list += src
|
||||
GLOB.rcd_list += src
|
||||
..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/rcd/Destroy()
|
||||
rcd_list -= src
|
||||
GLOB.rcd_list -= src
|
||||
return ..()
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/rcd/action(atom/target)
|
||||
@@ -420,7 +420,7 @@
|
||||
|
||||
if(!PN)
|
||||
PN = new()
|
||||
powernets += PN
|
||||
GLOB.powernets += PN
|
||||
NC.powernet = PN
|
||||
PN.cables += NC
|
||||
NC.mergeConnectedNetworks(NC.d2)
|
||||
|
||||
@@ -95,7 +95,7 @@
|
||||
return
|
||||
interact(user)
|
||||
|
||||
/obj/machinery/computer/mech_bay_power_console/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = default_state)
|
||||
/obj/machinery/computer/mech_bay_power_console/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "mech_bay_power_console", "Mech Bay Power Control Console", 400, 170, master_ui, state)
|
||||
@@ -130,7 +130,7 @@
|
||||
return
|
||||
recharge_port = locate(/obj/machinery/mech_bay_recharge_port) in range(1)
|
||||
if(!recharge_port )
|
||||
for(var/D in cardinal)
|
||||
for(var/D in GLOB.cardinal)
|
||||
var/turf/A = get_step(src, D)
|
||||
A = get_step(A, D)
|
||||
recharge_port = locate(/obj/machinery/mech_bay_recharge_port) in A
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
use_power = 1
|
||||
idle_power_usage = 20
|
||||
active_power_usage = 5000
|
||||
req_access = list(access_robotics)
|
||||
req_access = list(GLOB.access_robotics)
|
||||
var/time_coeff = 1
|
||||
var/component_coeff = 1
|
||||
var/datum/material_container/materials
|
||||
@@ -37,7 +37,7 @@
|
||||
/obj/machinery/mecha_part_fabricator/New()
|
||||
..()
|
||||
files = new /datum/research(src) //Setup the research data holder.
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM))
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/mechfab(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
@@ -430,22 +430,13 @@
|
||||
return 1
|
||||
|
||||
if(istype(W, /obj/item/stack/sheet))
|
||||
if(panel_open)
|
||||
to_chat(user, "<span class='warning'>You can't load [src] while it's opened!</span>")
|
||||
return 1
|
||||
if(being_built)
|
||||
to_chat(user, "<span class='warning'>\The [src] is currently processing! Please wait until completion.</span>")
|
||||
|
||||
if(!is_insertion_ready(user))
|
||||
return 1
|
||||
|
||||
var/material_amount = materials.get_item_material_amount(W)
|
||||
if(!material_amount)
|
||||
to_chat(user, "<span class='warning'>This object does not contain sufficient amounts of materials to be accepted by [src].</span>")
|
||||
return 1
|
||||
if(!materials.has_space(material_amount))
|
||||
to_chat(user, "<span class='warning'>\The [src] is full. Please remove some materials from [src] in order to insert more.</span>")
|
||||
return 1
|
||||
if(!user.temporarilyRemoveItemFromInventory(W))
|
||||
to_chat(user, "<span class='warning'>\The [W] is stuck to you and cannot be placed into [src].</span>")
|
||||
|
||||
if(!try_insert(user, W, material_amount))
|
||||
return 1
|
||||
|
||||
var/inserted = materials.insert_item(W)
|
||||
@@ -457,7 +448,31 @@
|
||||
var/mat_overlay = "fab-load-[material2name(W.materials[1])]"
|
||||
add_overlay(mat_overlay)
|
||||
sleep(10)
|
||||
cut_overlay(mat_overlay) //No matter what the overlay shall still be deleted
|
||||
if(!QDELETED(src))
|
||||
cut_overlay(mat_overlay) //No matter what the overlay shall still be deleted
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
else if(istype(W, /obj/item/weapon/ore/bluespace_crystal))
|
||||
|
||||
if(!is_insertion_ready(user))
|
||||
return 1
|
||||
|
||||
var/material_amount = materials.get_item_material_amount(W)
|
||||
|
||||
if(!try_insert(user, W, material_amount))
|
||||
return 1
|
||||
|
||||
var/inserted = materials.insert_item(W)
|
||||
if(inserted)
|
||||
to_chat(user, "<span class='notice'>You add [W] to the [src].</span>")
|
||||
if(W && W.materials.len)
|
||||
qdel(W)
|
||||
var/mat_overlay = "fab-load-bluespace"
|
||||
add_overlay(mat_overlay)
|
||||
sleep(10)
|
||||
if(!QDELETED(src))
|
||||
cut_overlay(mat_overlay)
|
||||
|
||||
updateUsrDialog()
|
||||
|
||||
@@ -466,3 +481,27 @@
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/proc/material2name(ID)
|
||||
return copytext(ID,2)
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/proc/is_insertion_ready(mob/user)
|
||||
if(panel_open)
|
||||
to_chat(user, "<span class='warning'>You can't load [src] while it's opened!</span>")
|
||||
return FALSE
|
||||
if(being_built)
|
||||
to_chat(user, "<span class='warning'>\The [src] is currently processing! Please wait until completion.</span>")
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
|
||||
/obj/machinery/mecha_part_fabricator/proc/try_insert(mob/user, obj/item/I, material_amount)
|
||||
if(!material_amount)
|
||||
to_chat(user, "<span class='warning'>This object does not contain sufficient amounts of materials to be accepted by [src].</span>")
|
||||
return FALSE
|
||||
if(!materials.has_space(material_amount))
|
||||
to_chat(user, "<span class='warning'>\The [src] is full. Please remove some materials from [src] in order to insert more.</span>")
|
||||
return FALSE
|
||||
if(!user.temporarilyRemoveItemFromInventory(I))
|
||||
to_chat(user, "<span class='warning'>\The [I] is stuck to you and cannot be placed into [src].</span>")
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
+23
-17
@@ -65,7 +65,7 @@
|
||||
var/internal_damage = 0 //contains bitflags
|
||||
|
||||
var/list/operation_req_access = list()//required access level for mecha operation
|
||||
var/list/internals_req_access = list(access_engine,access_robotics)//required access level to open cell compartment
|
||||
var/list/internals_req_access = list(GLOB.access_engine,GLOB.access_robotics)//required access level to open cell compartment
|
||||
|
||||
var/wreckage
|
||||
|
||||
@@ -132,11 +132,11 @@
|
||||
smoke_system.attach(src)
|
||||
add_cell()
|
||||
START_PROCESSING(SSobj, src)
|
||||
poi_list |= src
|
||||
GLOB.poi_list |= src
|
||||
log_message("[src.name] created.")
|
||||
mechas_list += src //global mech list
|
||||
GLOB.mechas_list += src //global mech list
|
||||
prepare_huds()
|
||||
var/datum/atom_hud/data/diagnostic/diag_hud = huds[DATA_HUD_DIAGNOSTIC]
|
||||
var/datum/atom_hud/data/diagnostic/diag_hud = GLOB.huds[DATA_HUD_DIAGNOSTIC]
|
||||
diag_hud.add_to_hud(src)
|
||||
diag_hud_set_mechhealth()
|
||||
diag_hud_set_mechcell()
|
||||
@@ -185,7 +185,7 @@
|
||||
if(AI)
|
||||
AI.gib() //No wreck, no AI to recover
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
poi_list.Remove(src)
|
||||
GLOB.poi_list.Remove(src)
|
||||
equipment.Cut()
|
||||
cell = null
|
||||
internal_tank = null
|
||||
@@ -200,7 +200,7 @@
|
||||
qdel(smoke_system)
|
||||
smoke_system = null
|
||||
|
||||
mechas_list -= src //global mech list
|
||||
GLOB.mechas_list -= src //global mech list
|
||||
return ..()
|
||||
|
||||
////////////////////////
|
||||
@@ -382,17 +382,16 @@
|
||||
/obj/mecha/proc/drop_item()//Derpfix, but may be useful in future for engineering exosuits.
|
||||
return
|
||||
|
||||
/obj/mecha/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans)
|
||||
/obj/mecha/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
|
||||
if(speaker == occupant)
|
||||
if(radio.broadcasting)
|
||||
radio.talk_into(speaker, text, , spans)
|
||||
radio.talk_into(speaker, text, , spans, message_language)
|
||||
//flick speech bubble
|
||||
var/list/speech_bubble_recipients = list()
|
||||
for(var/mob/M in get_hearers_in_view(7,src))
|
||||
if(M.client)
|
||||
speech_bubble_recipients.Add(M.client)
|
||||
spawn(0)
|
||||
flick_overlay(image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30)
|
||||
INVOKE_ASYNC(GLOBAL_PROC, /.proc/flick_overlay, image('icons/mob/talk.dmi', src, "machine[say_test(raw_message)]",MOB_LAYER+1), speech_bubble_recipients, 30)
|
||||
|
||||
////////////////////////////
|
||||
///// Action processing ////
|
||||
@@ -663,9 +662,11 @@
|
||||
AI.ai_restore_power()//So the AI initially has power.
|
||||
AI.control_disabled = 1
|
||||
AI.radio_enabled = 0
|
||||
AI.disconnect_shell()
|
||||
RemoveActions(AI, TRUE)
|
||||
occupant = null
|
||||
AI.forceMove(card)
|
||||
card.AI = AI
|
||||
occupant = null
|
||||
AI.controlled_mech = null
|
||||
AI.remote_control = null
|
||||
icon_state = initial(icon_state)+"-open"
|
||||
@@ -686,10 +687,12 @@
|
||||
if(!AI)
|
||||
to_chat(user, "<span class='warning'>There is no AI currently installed on this device.</span>")
|
||||
return
|
||||
else if(AI.stat || !AI.client)
|
||||
if(AI.deployed_shell) //Recall AI if shelled so it can be checked for a client
|
||||
AI.disconnect_shell()
|
||||
if(AI.stat || !AI.client)
|
||||
to_chat(user, "<span class='warning'>[AI.name] is currently unresponsive, and cannot be uploaded.</span>")
|
||||
return
|
||||
else if(occupant || dna_lock) //Normal AIs cannot steal mechs!
|
||||
if(occupant || dna_lock) //Normal AIs cannot steal mechs!
|
||||
to_chat(user, "<span class='warning'>Access denied. [name] is [occupant ? "currently occupied" : "secured with a DNA lock"].")
|
||||
return
|
||||
AI.control_disabled = 0
|
||||
@@ -715,7 +718,10 @@
|
||||
to_chat(AI, "[AI.can_dominate_mechs ? "<span class='announce'>Takeover of [name] complete! You are now loaded onto the onboard computer. Do not attempt to leave the station sector!</span>" \
|
||||
: "<span class='notice'>You have been uploaded to a mech's onboard computer."]")
|
||||
to_chat(AI, "<span class='reallybig boldnotice'>Use Middle-Mouse to activate mech functions and equipment. Click normally for AI interactions.</span>")
|
||||
GrantActions(AI, !AI.can_dominate_mechs)
|
||||
if(interaction == AI_TRANS_FROM_CARD)
|
||||
GrantActions(AI, FALSE) //No eject/return to core action for AI uploaded by card
|
||||
else
|
||||
GrantActions(AI, !AI.can_dominate_mechs)
|
||||
|
||||
|
||||
//An actual AI (simple_animal mecha pilot) entering the mech
|
||||
@@ -1005,7 +1011,7 @@
|
||||
|
||||
/obj/mecha/proc/log_message(message as text,red=null)
|
||||
log.len++
|
||||
log[log.len] = list("time"="[worldtime2text()]","date","year"="[year_integer+540]","message"="[red?"<font color='red'>":null][message][red?"</font>":null]")
|
||||
log[log.len] = list("time"="[worldtime2text()]","date","year"="[GLOB.year_integer+540]","message"="[red?"<font color='red'>":null][message][red?"</font>":null]")
|
||||
return log.len
|
||||
|
||||
/obj/mecha/proc/log_append_to_last(message as text,red=null)
|
||||
@@ -1013,8 +1019,8 @@
|
||||
last_entry["message"] += "<br>[red?"<font color='red'>":null][message][red?"</font>":null]"
|
||||
return
|
||||
|
||||
var/year = time2text(world.realtime,"YYYY")
|
||||
var/year_integer = text2num(year) // = 2013???
|
||||
GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY"))
|
||||
GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
|
||||
|
||||
///////////////////////
|
||||
///// Power stuff /////
|
||||
|
||||
@@ -25,7 +25,8 @@
|
||||
var/obj/mecha/chassis
|
||||
|
||||
/datum/action/innate/mecha/Grant(mob/living/L, obj/mecha/M)
|
||||
chassis = M
|
||||
if(M)
|
||||
chassis = M
|
||||
..()
|
||||
|
||||
/datum/action/innate/mecha/Destroy()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Used to remotely locate or lockdown exosuits."
|
||||
icon_screen = "mecha"
|
||||
icon_keyboard = "tech_key"
|
||||
req_access = list(access_robotics)
|
||||
req_access = list(GLOB.access_robotics)
|
||||
circuit = /obj/item/weapon/circuitboard/computer/mecha_control
|
||||
var/list/located = list()
|
||||
var/screen = 0
|
||||
@@ -17,7 +17,7 @@
|
||||
if(screen == 0)
|
||||
dat += "<h3>Tracking beacons data</h3>"
|
||||
var/list/trackerlist = list()
|
||||
for(var/obj/mecha/MC in mechas_list)
|
||||
for(var/obj/mecha/MC in GLOB.mechas_list)
|
||||
trackerlist += MC.trackers
|
||||
for(var/obj/item/mecha_parts/mecha_tracking/TR in trackerlist)
|
||||
var/answer = TR.get_mecha_info()
|
||||
@@ -75,13 +75,13 @@
|
||||
return 0
|
||||
var/obj/mecha/M = src.loc
|
||||
var/cell_charge = M.get_charge()
|
||||
var/answer = {"<b>Name:</b> [M.name]<br>
|
||||
<b>Integrity:</b> [M.obj_integrity/M.max_integrity*100]%<br>
|
||||
<b>Cell charge:</b> [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]<br>
|
||||
<b>Airtank:</b> [M.return_pressure()]kPa<br>
|
||||
<b>Pilot:</b> [M.occupant||"None"]<br>
|
||||
<b>Location:</b> [get_area(M)||"Unknown"]<br>
|
||||
<b>Active equipment:</b> [M.selected||"None"]<br>"}
|
||||
var/answer = {"<b>Name:</b> [M.name]
|
||||
<b>Integrity:</b> [M.obj_integrity/M.max_integrity*100]%
|
||||
<b>Cell charge:</b> [isnull(cell_charge)?"Not found":"[M.cell.percent()]%"]
|
||||
<b>Airtank:</b> [M.return_pressure()]kPa
|
||||
<b>Pilot:</b> [M.occupant||"None"]
|
||||
<b>Location:</b> [get_area(M)||"Unknown"]
|
||||
<b>Active equipment:</b> [M.selected||"None"] "}
|
||||
if(istype(M, /obj/mecha/working/ripley))
|
||||
var/obj/mecha/working/ripley/RM = M
|
||||
answer += "<b>Used cargo space:</b> [RM.cargo.len/RM.cargo_capacity*100]%<br>"
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
/obj/mecha/attack_animal(mob/living/simple_animal/user)
|
||||
log_message("Attack by simple animal. Attacker - [user].",1)
|
||||
if(!user.melee_damage_upper && !user.obj_damage)
|
||||
user.emote("custom", message = "[user.friendly] [src]")
|
||||
user.emote("custom", message = "[user.friendly] [src].")
|
||||
return 0
|
||||
else
|
||||
var/play_soundeffect = 1
|
||||
@@ -312,7 +312,7 @@
|
||||
L.narsie_act()
|
||||
|
||||
/obj/mecha/ratvar_act()
|
||||
if((ratvar_awakens || clockwork_gateway_activated) && occupant)
|
||||
if((GLOB.ratvar_awakens || GLOB.clockwork_gateway_activated) && occupant)
|
||||
if(is_servant_of_ratvar(occupant)) //reward the minion that got a mech by repairing it
|
||||
full_repair(TRUE)
|
||||
else
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<script language='javascript' type='text/javascript'>
|
||||
[js_byjax]
|
||||
[js_dropdowns]
|
||||
function ticker() {
|
||||
function SSticker() {
|
||||
setInterval(function(){
|
||||
window.location='byond://?src=\ref[src]&update_content=1';
|
||||
}, 1000);
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
window.onload = function() {
|
||||
dropdowns();
|
||||
ticker();
|
||||
SSticker();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
if(H.glasses && istype(H.glasses, /obj/item/clothing/glasses/hud))
|
||||
occupant_message("<span class='warning'>Your [H.glasses] prevent you from using the built-in medical hud.</span>")
|
||||
else
|
||||
var/datum/atom_hud/data/human/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
var/datum/atom_hud/data/human/medical/advanced/A = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
A.add_hud_to(H)
|
||||
builtin_hud_user = 1
|
||||
return 1
|
||||
@@ -27,7 +27,7 @@
|
||||
/obj/mecha/medical/odysseus/go_out()
|
||||
if(ishuman(occupant) && builtin_hud_user)
|
||||
var/mob/living/carbon/human/H = occupant
|
||||
var/datum/atom_hud/data/human/medical/advanced/A = huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
var/datum/atom_hud/data/human/medical/advanced/A = GLOB.huds[DATA_HUD_MEDICAL_ADVANCED]
|
||||
A.remove_hud_from(H)
|
||||
..()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user