mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-25 04:57:47 +01:00
Merge remote-tracking branch 'upstream/master' into dev-freeze
Conflicts: code/modules/clothing/spacesuits/rig/suits/ert.dm
This commit is contained in:
@@ -20,7 +20,7 @@
|
||||
armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20)
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.1
|
||||
siemens_coefficient = 0.2
|
||||
permeability_coefficient = 0.1
|
||||
unacidable = 1
|
||||
|
||||
|
||||
@@ -29,8 +29,8 @@
|
||||
desc = "A suit worn by the engineering division of a NanoTrasen Emergency Response Team. Has orange highlights. Armoured and space ready."
|
||||
suit_type = "ERT engineer"
|
||||
icon_state = "ert_engineer_rig"
|
||||
|
||||
glove_type = /obj/item/clothing/gloves/rig/ert_engineer
|
||||
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 100)
|
||||
siemens_coefficient = 0
|
||||
|
||||
initial_modules = list(
|
||||
/obj/item/rig_module/ai_container,
|
||||
@@ -39,10 +39,6 @@
|
||||
/obj/item/rig_module/device/rcd
|
||||
)
|
||||
|
||||
/obj/item/clothing/gloves/rig/ert_engineer
|
||||
name = "insulated gauntlets"
|
||||
siemens_coefficient = 0
|
||||
|
||||
/obj/item/weapon/rig/ert/medical
|
||||
name = "ERT-M suit control module"
|
||||
desc = "A suit worn by the medical division of a NanoTrasen Emergency Response Team. Has white highlights. Armoured and space ready."
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
/var/global/list/event_viruses = list() // so that event viruses are kept around for admin logs, rather than being GCed
|
||||
|
||||
datum/event/viral_infection
|
||||
var/list/viruses = list()
|
||||
|
||||
@@ -40,10 +42,30 @@ datum/event/viral_infection/start()
|
||||
if(!candidates.len) return
|
||||
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
|
||||
|
||||
var/list/used_viruses = list()
|
||||
var/list/used_candidates = list()
|
||||
severity = max(EVENT_LEVEL_MUNDANE, severity - 1)
|
||||
var/actual_severity = severity * rand(1, 3)
|
||||
while(actual_severity > 0 && candidates.len)
|
||||
var/datum/disease2/disease/D = pick(viruses)
|
||||
infect_mob(candidates[1], D.getcopy())
|
||||
used_candidates += candidates[1]
|
||||
candidates.Remove(candidates[1])
|
||||
actual_severity--
|
||||
used_viruses |= D
|
||||
|
||||
event_viruses |= used_viruses
|
||||
var/list/used_viruses_links = list()
|
||||
var/list/used_viruses_text = list()
|
||||
for(var/datum/disease2/disease/D in used_viruses)
|
||||
used_viruses_links += "<a href='?src=\ref[D];info=1'>[D.name()]</a>"
|
||||
used_viruses_text += D.name()
|
||||
|
||||
var/list/used_candidates_links = list()
|
||||
var/list/used_candidates_text = list()
|
||||
for(var/mob/M in used_candidates)
|
||||
used_candidates_links += key_name_admin(M)
|
||||
used_candidates_text += key_name(M)
|
||||
|
||||
log_admin("Virus event affecting [english_list(used_candidates_text)] started; Viruses: [english_list(used_viruses_text)]")
|
||||
message_admins("Virus event affecting [english_list(used_candidates_links)] started; Viruses: [english_list(used_viruses_links)]")
|
||||
|
||||
@@ -1365,11 +1365,11 @@
|
||||
var/obj/item/clothing/glasses/welding/O = glasses
|
||||
if(!O.up)
|
||||
found_welder = 1
|
||||
else if(istype(head, /obj/item/clothing/head/welding))
|
||||
if(!found_welder && istype(head, /obj/item/clothing/head/welding))
|
||||
var/obj/item/clothing/head/welding/O = head
|
||||
if(!O.up)
|
||||
found_welder = 1
|
||||
else if(istype(back, /obj/item/weapon/rig))
|
||||
if(!found_welder && istype(back, /obj/item/weapon/rig))
|
||||
var/obj/item/weapon/rig/O = back
|
||||
if(O.helmet && O.helmet == head && (O.helmet.body_parts_covered & EYES))
|
||||
if((O.offline && O.offline_vision_restriction == 1) || (!O.offline && O.vision_restriction == 1))
|
||||
|
||||
@@ -5,14 +5,17 @@ mob/var/typing
|
||||
mob/var/last_typed
|
||||
mob/var/last_typed_time
|
||||
|
||||
var/global/image/typing_indicator
|
||||
mob/var/obj/effect/decal/typing_indicator
|
||||
|
||||
/mob/proc/set_typing_indicator(var/state)
|
||||
|
||||
if(!typing_indicator)
|
||||
typing_indicator = image('icons/mob/talk.dmi',null,"typing")
|
||||
typing_indicator = new
|
||||
typing_indicator.icon = 'icons/mob/talk.dmi'
|
||||
typing_indicator.icon_state = "typing"
|
||||
|
||||
if(client)
|
||||
if(client && !stat)
|
||||
typing_indicator.invisibility = invisibility
|
||||
if(client.prefs.toggles & SHOW_TYPING)
|
||||
overlays -= typing_indicator
|
||||
else
|
||||
|
||||
@@ -62,7 +62,11 @@
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence initiated!</B>"
|
||||
world << "<span class='notice'><b>Alert: The shuttle autopilot has been overridden. Launch sequence initiated!</b></span>"
|
||||
|
||||
if(usr)
|
||||
log_admin("[key_name(usr)] has overridden the shuttle autopilot and activated launch sequence")
|
||||
message_admins("[key_name_admin(usr)] has overridden the shuttle autopilot and activated launch sequence")
|
||||
|
||||
..(user)
|
||||
|
||||
@@ -72,7 +76,11 @@
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!</B>"
|
||||
world << "<span class='notice'><b>Alert: The shuttle autopilot has been overridden. Bluespace drive engaged!</b></span>"
|
||||
|
||||
if(usr)
|
||||
log_admin("[key_name(usr)] has overridden the shuttle autopilot and forced immediate launch")
|
||||
message_admins("[key_name_admin(usr)] has overridden the shuttle autopilot and forced immediate launch")
|
||||
|
||||
..(user)
|
||||
|
||||
@@ -82,7 +90,11 @@
|
||||
if (istype(user, /obj/machinery/computer/shuttle_control/emergency)) //if we were given a command by an emergency shuttle console
|
||||
if (emergency_shuttle.autopilot)
|
||||
emergency_shuttle.autopilot = 0
|
||||
world << "\blue <B>Alert: The shuttle autopilot has been overridden. Launch sequence aborted!</B>"
|
||||
world << "<span class='notice'><b>Alert: The shuttle autopilot has been overridden. Launch sequence aborted!</b></span>"
|
||||
|
||||
if(usr)
|
||||
log_admin("[key_name(usr)] has overridden the shuttle autopilot and cancelled launch sequence")
|
||||
message_admins("[key_name_admin(usr)] has overridden the shuttle autopilot and cancelled launch sequence")
|
||||
|
||||
..(user)
|
||||
|
||||
@@ -102,8 +114,8 @@
|
||||
authorized = initial(authorized)
|
||||
|
||||
//returns 1 if the ID was accepted and a new authorization was added, 0 otherwise
|
||||
/obj/machinery/computer/shuttle_control/emergency/proc/read_authorization(var/ident)
|
||||
if (!ident)
|
||||
/obj/machinery/computer/shuttle_control/emergency/proc/read_authorization(var/obj/item/ident)
|
||||
if (!ident || !istype(ident))
|
||||
return 0
|
||||
if (authorized.len >= req_authorizations)
|
||||
return 0 //don't need any more
|
||||
@@ -112,33 +124,35 @@
|
||||
var/auth_name
|
||||
var/dna_hash
|
||||
|
||||
if(istype(ident, /obj/item/weapon/card/id))
|
||||
var/obj/item/weapon/card/id/ID = ident
|
||||
access = ID.access
|
||||
auth_name = "[ID.registered_name] ([ID.assignment])"
|
||||
dna_hash = ID.dna_hash
|
||||
var/obj/item/weapon/card/id/ID = ident.GetID()
|
||||
|
||||
if(istype(ident, /obj/item/device/pda))
|
||||
var/obj/item/device/pda/PDA = ident
|
||||
access = PDA.id.access
|
||||
auth_name = "[PDA.id.registered_name] ([PDA.id.assignment])"
|
||||
dna_hash = PDA.id.dna_hash
|
||||
if(!ID)
|
||||
return
|
||||
|
||||
access = ID.access
|
||||
auth_name = "[ID.registered_name] ([ID.assignment])"
|
||||
dna_hash = ID.dna_hash
|
||||
|
||||
if (!access || !istype(access))
|
||||
return 0 //not an ID
|
||||
|
||||
if (dna_hash in authorized)
|
||||
src.visible_message("[src] buzzes. That ID has already been scanned.")
|
||||
src.visible_message("\The [src] buzzes. That ID has already been scanned.")
|
||||
return 0
|
||||
|
||||
if (!(access_heads in access))
|
||||
src.visible_message("[src] buzzes, rejecting [ident].")
|
||||
src.visible_message("\The [src] buzzes, rejecting [ident].")
|
||||
return 0
|
||||
|
||||
src.visible_message("[src] beeps as it scans [ident].")
|
||||
src.visible_message("\The [src] beeps as it scans [ident].")
|
||||
authorized[dna_hash] = auth_name
|
||||
if (req_authorizations - authorized.len)
|
||||
world << "\blue <B>Alert: [req_authorizations - authorized.len] authorization\s needed to override the shuttle autopilot.</B>"
|
||||
world << "<span class='notice'><b>Alert: [req_authorizations - authorized.len] authorization\s needed to override the shuttle autopilot.</b></span>"
|
||||
|
||||
if(usr)
|
||||
log_admin("[key_name(usr)] has inserted [ID] into the shuttle control computer - [req_authorizations - authorized.len] authorisation\s needed")
|
||||
message_admins("[key_name_admin(usr)] has inserted [ID] into the shuttle control computer - [req_authorizations - authorized.len] authorisation\s needed")
|
||||
|
||||
return 1
|
||||
|
||||
|
||||
@@ -146,7 +160,7 @@
|
||||
|
||||
/obj/machinery/computer/shuttle_control/emergency/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/weapon/card/emag) && !emagged)
|
||||
user << "\blue You short out the [src]'s authorization protocols."
|
||||
user << "<span class='notice'>You short out \the [src]'s authorization protocols.</span>"
|
||||
emagged = 1
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user