Merge remote-tracking branch 'upstream/master' into dev-freeze

This commit is contained in:
PsiOmega
2015-04-23 12:59:47 +02:00
24 changed files with 86 additions and 37 deletions
+4 -4
View File
@@ -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
+1 -1
View File
@@ -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()
+1 -1
View File
@@ -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)
+4 -3
View File
@@ -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()
+16 -4
View File
@@ -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
+1
View File
@@ -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...")
+7 -5
View File
@@ -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
+2 -3
View File
@@ -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()
+2
View File
@@ -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))
+4
View File
@@ -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"]
+2
View File
@@ -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"