Merge remote-tracking branch 'upstream/master' into familyport

This commit is contained in:
keronshb
2021-11-11 19:35:40 -05:00
22 changed files with 521 additions and 422 deletions
+15 -15
View File
@@ -319,38 +319,38 @@ GLOBAL_LIST_EMPTY(teleportlocs)
*
* Sends to all ai players, alert consoles, drones and alarm monitor programs in the world
*/
/area/proc/poweralert(state, obj/source)
/area/proc/poweralert(set_alarm, obj/source)
if (area_flags & NO_ALERTS)
return
if (state != poweralm)
poweralm = state
if (set_alarm != poweralm)
poweralm = set_alarm
if(istype(source)) //Only report power alarms on the z-level where the source is located.
for (var/item in GLOB.silicon_mobs)
var/mob/living/silicon/aiPlayer = item
if (state == 1)
aiPlayer.cancelAlarm("Power", src, source)
else
if (set_alarm)
aiPlayer.triggerAlarm("Power", src, cameras, source)
else
aiPlayer.cancelAlarm("Power", src, source)
for (var/item in GLOB.alert_consoles)
var/obj/machinery/computer/station_alert/a = item
if(state == 1)
a.cancelAlarm("Power", src, source)
else
if (set_alarm)
a.triggerAlarm("Power", src, cameras, source)
else
a.cancelAlarm("Power", src, source)
for (var/item in GLOB.drones_list)
var/mob/living/simple_animal/drone/D = item
if(state == 1)
D.cancelAlarm("Power", src, source)
else
if (set_alarm)
D.triggerAlarm("Power", src, cameras, source)
else
D.cancelAlarm("Power", src, source)
for(var/item in GLOB.alarmdisplay)
var/datum/computer_file/program/alarm_monitor/p = item
if(state == 1)
p.cancelAlarm("Power", src, source)
else
if (set_alarm)
p.triggerAlarm("Power", src, cameras, source)
else
p.cancelAlarm("Power", src, source)
/area/proc/atmosalert(danger_level, obj/source)
if (area_flags & NO_ALERTS)
+29 -3
View File
@@ -72,6 +72,10 @@
var/datum/team/gang/gang //For marking territory.
var/gang_tag_delay = 30 //this is the delay for gang mode tag applications on anything that gang = true on.
var/precision_mode = FALSE
var/precision_x = 0
var/precision_y = 0
/obj/item/toy/crayon/proc/isValidSurface(surface)
return istype(surface, /turf/open/floor)
@@ -228,6 +232,12 @@
.["can_change_colour"] = can_change_colour
.["current_colour"] = paint_color
.["precision_mode"] = precision_mode
.["x"] = precision_x
.["y"] = precision_y
.["min_offset"] = -world.icon_size/2
.["max_offset"] = world.icon_size/2
/obj/item/toy/crayon/ui_act(action, list/params)
if(..())
return
@@ -256,6 +266,17 @@
. = TRUE
paint_mode = PAINT_NORMAL
drawtype = "a"
if("toggle_precision")
precision_mode = !precision_mode
. = TRUE
if("set_precision_x")
var/x = text2num(params["x"])
precision_x = x
. = TRUE
if("set_precision_y")
var/y = text2num(params["y"])
precision_y = y
. = TRUE
update_icon()
/obj/item/toy/crayon/proc/select_colour(mob/user)
@@ -394,9 +415,14 @@
else
switch(paint_mode)
if(PAINT_NORMAL)
C = new(target, paint_color, drawing, temp, graf_rot)
C.pixel_x = clickx
C.pixel_y = clicky
var/obj/effect/decal/cleanable/crayon/C = new(target, paint_color, drawing, temp, graf_rot)
C.add_hiddenprint(user)
if(precision_mode)
C.pixel_x = clamp(precision_x, -(world.icon_size/2), world.icon_size/2)
C.pixel_y = clamp(precision_y, -(world.icon_size/2), world.icon_size/2)
else
C.pixel_x = clickx
C.pixel_y = clicky
affected_turfs += target
if(PAINT_LARGE_HORIZONTAL)
var/turf/left = locate(target.x-1,target.y,target.z)