mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 16:10:02 +01:00
Merge remote-tracking branch 'upstream/master' into dev-freeze
This commit is contained in:
@@ -18,9 +18,9 @@
|
||||
|
||||
/proc/get_area(O)
|
||||
var/turf/loc = get_turf(O)
|
||||
if(!loc)
|
||||
return null
|
||||
return loc.loc
|
||||
if(loc)
|
||||
var/area/res = loc.loc
|
||||
.= res.master
|
||||
|
||||
/proc/get_area_name(N) //get area by its name
|
||||
for(var/area/A in world)
|
||||
@@ -493,6 +493,6 @@ datum/projectile_data
|
||||
|
||||
/proc/MinutesToTicks(var/minutes)
|
||||
return SecondsToTicks(60 * minutes)
|
||||
|
||||
|
||||
/proc/SecondsToTicks(var/seconds)
|
||||
return seconds * 10
|
||||
|
||||
@@ -158,7 +158,7 @@
|
||||
|
||||
attackby(var/obj/item/weapon/W, var/mob/user)
|
||||
playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1)
|
||||
src.visible_message("\red <B>The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]")
|
||||
src.visible_message("<span class='danger'>The [src.name] has been attacked with \the [W][(user ? " by [user]." : ".")]</span>")
|
||||
var/damage = 0
|
||||
switch(W.damtype)
|
||||
if("fire")
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
|
||||
camera_list = "Network Key: [key.title] [topic_link(src,"keyselect","\[ Select key \]")]<hr>"
|
||||
for(var/obj/machinery/camera/C in temp_list)
|
||||
if(C.status)
|
||||
if(C.can_use())
|
||||
camera_list += "[C.c_tag] - [topic_link(src,"show=\ref[C]","Show")]<br>"
|
||||
else
|
||||
camera_list += "[C.c_tag] - <b>DEACTIVATED</b><br>"
|
||||
@@ -264,7 +264,7 @@
|
||||
|
||||
if("show" in href_list)
|
||||
var/obj/machinery/camera/C = locate(href_list["show"])
|
||||
if(istype(C) && C.status)
|
||||
if(istype(C) && C.can_use())
|
||||
set_current(C)
|
||||
usr.reset_view(C)
|
||||
interact()
|
||||
|
||||
@@ -294,7 +294,7 @@
|
||||
|
||||
|
||||
/obj/machinery/door/examine(mob/user)
|
||||
..()
|
||||
. = ..()
|
||||
if(src.health < src.maxhealth / 4)
|
||||
user << "\The [src] looks like it's about to break!"
|
||||
else if(src.health < src.maxhealth / 2)
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
open_layer = DOOR_OPEN_LAYER - 0.01 // Just below doors when open
|
||||
closed_layer = DOOR_CLOSED_LAYER + 0.01 // Just above doors when closed
|
||||
|
||||
//These are frequenly used with windows, so make sure zones can pass.
|
||||
//These are frequenly used with windows, so make sure zones can pass.
|
||||
//Generally if a firedoor is at a place where there should be a zone boundery then there will be a regular door underneath it.
|
||||
block_air_zones = 0
|
||||
|
||||
@@ -77,7 +77,8 @@
|
||||
|
||||
|
||||
/obj/machinery/door/firedoor/examine(mob/user)
|
||||
if(!..(user, 1) && !isAI(user))
|
||||
. = ..(user, 1)
|
||||
if(!. || !density)
|
||||
return
|
||||
|
||||
if(pdiff >= FIREDOOR_MAX_PRESSURE_DIFF)
|
||||
@@ -272,7 +273,7 @@
|
||||
spawn(0)
|
||||
close()
|
||||
return
|
||||
|
||||
|
||||
return ..()
|
||||
|
||||
// CHECK PRESSURE
|
||||
|
||||
@@ -139,9 +139,9 @@
|
||||
mode_nice = design
|
||||
mode = "whitebluegreencorners"
|
||||
tile_dir_mode = 2
|
||||
else if(design == "delivery" || design == "bot")
|
||||
else if(design == "delivery" || design == "bot" || design == "white-delivery" || design == "white-bot")
|
||||
mode_nice = design
|
||||
mode = design
|
||||
mode = replacetext(design, "-", "")
|
||||
tile_dir_mode = 0
|
||||
else if(design == "loadingarea")
|
||||
mode_nice = design
|
||||
|
||||
@@ -29,6 +29,10 @@
|
||||
else if(istype(target,/obj/effect/decal/cleanable))
|
||||
user << "<span class='notice'>You scrub \the [target.name] out.</span>"
|
||||
del(target)
|
||||
else if(istype(target,/turf))
|
||||
user << "<span class='notice'>You scrub \the [target.name] clean.</span>"
|
||||
var/turf/T = target
|
||||
T.clean()
|
||||
else
|
||||
user << "<span class='notice'>You clean \the [target.name].</span>"
|
||||
target.clean_blood()
|
||||
|
||||
@@ -1,14 +1,17 @@
|
||||
#define SHOWER_OPEN_LAYER MOB_LAYER + 0.1
|
||||
#define SHOWER_CLOSED_LAYER OBJ_LAYER + 0.4
|
||||
|
||||
/obj/structure/curtain
|
||||
name = "curtain"
|
||||
icon = 'icons/obj/curtain.dmi'
|
||||
icon_state = "closed"
|
||||
layer = MOB_LAYER + 0.1
|
||||
layer = SHOWER_OPEN_LAYER
|
||||
opacity = 1
|
||||
density = 0
|
||||
|
||||
/obj/structure/curtain/open
|
||||
icon_state = "open"
|
||||
layer = OBJ_LAYER
|
||||
layer = SHOWER_CLOSED_LAYER
|
||||
opacity = 0
|
||||
|
||||
/obj/structure/curtain/bullet_act(obj/item/projectile/P, def_zone)
|
||||
@@ -27,10 +30,10 @@
|
||||
opacity = !opacity
|
||||
if(opacity)
|
||||
icon_state = "closed"
|
||||
layer = MOB_LAYER + 0.1
|
||||
layer = SHOWER_CLOSED_LAYER
|
||||
else
|
||||
icon_state = "open"
|
||||
layer = OBJ_LAYER
|
||||
layer = SHOWER_OPEN_LAYER
|
||||
|
||||
/obj/structure/curtain/black
|
||||
name = "black curtain"
|
||||
@@ -45,3 +48,12 @@
|
||||
name = "shower curtain"
|
||||
color = "#ACD1E9"
|
||||
alpha = 200
|
||||
|
||||
/obj/structure/curtain/open/shower/engineering
|
||||
color = "#FFA500"
|
||||
|
||||
/obj/structure/curtain/open/shower/security
|
||||
color = "#AA0000"
|
||||
|
||||
#undef SHOWER_OPEN_LAYER
|
||||
#undef SHOWER_CLOSED_LAYER
|
||||
|
||||
@@ -169,4 +169,5 @@
|
||||
set desc = "BOOOOM!"
|
||||
deadman = 1
|
||||
processing_objects.Add(src)
|
||||
log_and_message_admins("is threatening to trigger a signaler deadman's switch")
|
||||
usr.visible_message("\red [usr] moves their finger over [src]'s signal button...")
|
||||
|
||||
@@ -4,12 +4,12 @@ datum/event/viral_infection
|
||||
datum/event/viral_infection/setup()
|
||||
announceWhen = rand(0, 3000)
|
||||
endWhen = announceWhen + 1
|
||||
|
||||
|
||||
//generate 1-3 viruses. This way there's an upper limit on how many individual diseases need to be cured if many people are initially infected
|
||||
var/num_diseases = rand(1,3)
|
||||
for (var/i=0, i < num_diseases, i++)
|
||||
var/datum/disease2/disease/D = new /datum/disease2/disease
|
||||
|
||||
|
||||
var/strength = 1 //whether the disease is of the greater or lesser variety
|
||||
if (severity >= EVENT_LEVEL_MAJOR && prob(75))
|
||||
strength = 2
|
||||
@@ -24,7 +24,7 @@ datum/event/viral_infection/announce()
|
||||
level = pick("one", "two", "three", "four")
|
||||
else
|
||||
level = "five"
|
||||
|
||||
|
||||
if (severity == EVENT_LEVEL_MAJOR || prob(60))
|
||||
command_announcement.Announce("Confirmed outbreak of level [level] biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert", new_sound = 'sound/AI/outbreak5.ogg')
|
||||
|
||||
@@ -33,8 +33,10 @@ datum/event/viral_infection/start()
|
||||
|
||||
var/list/candidates = list() //list of candidate keys
|
||||
for(var/mob/living/carbon/human/G in player_list)
|
||||
if(G.client && G.stat != DEAD)
|
||||
candidates += G
|
||||
if(G.stat != DEAD && G.is_client_active(5))
|
||||
var/turf/T = get_turf(G)
|
||||
if(T.z in config.station_levels)
|
||||
candidates += G
|
||||
if(!candidates.len) return
|
||||
candidates = shuffle(candidates)//Incorporating Donkie's list shuffle
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
|
||||
if(speech_problem_flag)
|
||||
if(!speaking || !(speaking.flags & NO_STUTTER))
|
||||
var/list/handle_r = handle_speech_problems(message)
|
||||
var/list/handle_r = handle_speech_problems(message, verb)
|
||||
message = handle_r[1]
|
||||
verb = handle_r[2]
|
||||
speech_problem_flag = handle_r[3]
|
||||
@@ -271,10 +271,9 @@
|
||||
|
||||
return verb
|
||||
|
||||
/mob/living/carbon/human/proc/handle_speech_problems(var/message)
|
||||
/mob/living/carbon/human/proc/handle_speech_problems(var/message, var/verb = "says")
|
||||
|
||||
var/list/returns[3]
|
||||
var/verb = "says"
|
||||
var/handled = 0
|
||||
if(silent || (sdisabilities & MUTE))
|
||||
message = ""
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
if(istype(equipped(),/obj/item/device/assembly/signaler))
|
||||
var/obj/item/device/assembly/signaler/signaler = equipped()
|
||||
if(signaler.deadman && prob(80))
|
||||
log_and_message_admins("has triggered a signaler deadman's switch")
|
||||
src.visible_message("\red [src] triggers their deadman's switch!")
|
||||
signaler.signal()
|
||||
|
||||
|
||||
@@ -823,6 +823,8 @@ note dizziness decrements automatically in the mob's Life() proc.
|
||||
else
|
||||
statpanel(listed_turf.name, null, listed_turf)
|
||||
for(var/atom/A in listed_turf)
|
||||
if(!A.mouse_opacity)
|
||||
continue
|
||||
if(A.invisibility > see_invisible)
|
||||
continue
|
||||
if(is_type_in_list(A, shouldnt_see))
|
||||
|
||||
@@ -587,3 +587,7 @@ proc/is_blind(A)
|
||||
|
||||
eyeobj.setLoc(C)
|
||||
return 1
|
||||
|
||||
// Returns true if the mob has a client which has been active in the last given X minutes.
|
||||
/mob/proc/is_client_active(var/active = 1)
|
||||
return client && client.inactivity < active MINUTES
|
||||
|
||||
@@ -54,5 +54,7 @@
|
||||
return
|
||||
if( href_list["clear"] )
|
||||
active_sensor = null
|
||||
if( href_list["refresh"] )
|
||||
refresh_sensors()
|
||||
else if( href_list["setsensor"] )
|
||||
active_sensor = href_list["setsensor"]
|
||||
|
||||
@@ -1272,10 +1272,12 @@ obj/machinery/power/apc/proc/autoset(var/val, var/on)
|
||||
equipment = 0
|
||||
environ = 0
|
||||
update()
|
||||
update_icon()
|
||||
|
||||
spawn(600)
|
||||
update_channels()
|
||||
update()
|
||||
update_icon()
|
||||
..()
|
||||
|
||||
/obj/machinery/power/apc/ex_act(severity)
|
||||
|
||||
@@ -173,8 +173,7 @@
|
||||
center_of_mass = list("x"=16, "y"=10)
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("cola", 15)
|
||||
reagents.add_reagent("orangejuice", 15)
|
||||
reagents.add_reagent("brownstar", 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/cans/space_up
|
||||
name = "Space-Up"
|
||||
|
||||
Reference in New Issue
Block a user