Merge remote-tracking branch 'upstream/master' into hopefullythefinalhardsync
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#define CHANGETURF_DEFER_CHANGE 1
|
||||
#define CHANGETURF_IGNORE_AIR 2
|
||||
#define CHANGETURF_IGNORE_AIR 2 // This flag prevents changeturf from gathering air from nearby turfs to fill the new turf with an approximation of local air
|
||||
#define CHANGETURF_FORCEOP 4
|
||||
#define CHANGETURF_SKIP 8 // A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
|
||||
#define CHANGETURF_SKIP 8 // A flag for PlaceOnTop to just instance the new turf instead of calling ChangeTurf. Used for uninitialized turfs NOTHING ELSE
|
||||
#define CHANGETURF_INHERIT_AIR 16 // Inherit air from previous turf. Implies CHANGETURF_IGNORE_AIR
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
|
||||
for(var/mob/M in GLOB.player_list)
|
||||
if(!isnewplayer(M) && M.can_hear())
|
||||
to_chat(M, "<span class='big bold'><font color = red>[title]</font color><BR>[message]</span><BR>")
|
||||
to_chat(M, "<span class='big bold'><font color = red>[html_encode(title)]</font color><BR>[html_encode(message)]</span><BR>")
|
||||
if(M.client.prefs.toggles & SOUND_ANNOUNCEMENTS)
|
||||
if(alert)
|
||||
SEND_SOUND(M, sound('sound/misc/notice1.ogg'))
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
M.visible_message("<span class='danger'>The bluespace collapse crushes the air towards it, pulling [M] towards the ground...</span>")
|
||||
M.Knockdown(5, TRUE, TRUE) //Overrides stun absorbs.
|
||||
T.TerraformTurf(/turf/open/chasm/magic, /turf/open/chasm/magic)
|
||||
for (var/obj/structure/ladder/unbreakable/binary/ladder in GLOB.ladders)
|
||||
ladder.ActivateAlmonds()
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] detonated a bag of holding at [ADMIN_VERBOSEJMP(loccheck)].")
|
||||
log_game("[key_name(user)] detonated a bag of holding at [AREACOORD(loccheck)].")
|
||||
qdel(A)
|
||||
|
||||
@@ -38,8 +38,7 @@
|
||||
|
||||
/obj/machinery/door/window/Destroy()
|
||||
density = FALSE
|
||||
for(var/I in debris)
|
||||
qdel(I)
|
||||
QDEL_LIST(debris)
|
||||
if(obj_integrity == 0)
|
||||
playsound(src, "shatter", 70, 1)
|
||||
electronics = null
|
||||
|
||||
@@ -37,10 +37,18 @@
|
||||
GLOB.deliverybeacontags += location
|
||||
|
||||
/obj/machinery/navbeacon/Destroy()
|
||||
GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one.
|
||||
if (GLOB.navbeacons["[z]"])
|
||||
GLOB.navbeacons["[z]"] -= src //Remove from beacon list, if in one.
|
||||
GLOB.deliverybeacons -= src
|
||||
return ..()
|
||||
|
||||
/obj/machinery/navbeacon/onTransitZ(old_z, new_z)
|
||||
if (GLOB.navbeacons["[old_z]"])
|
||||
GLOB.navbeacons["[old_z]"] -= src
|
||||
if (GLOB.navbeacons["[new_z]"])
|
||||
GLOB.navbeacons["[new_z]"] += src
|
||||
..()
|
||||
|
||||
// set the transponder codes assoc list from codes_txt
|
||||
/obj/machinery/navbeacon/proc/set_codes()
|
||||
if(!codes_txt)
|
||||
@@ -203,4 +211,4 @@ Transponder Codes:<UL>"}
|
||||
|
||||
codes[newkey] = newval
|
||||
|
||||
updateDialog()
|
||||
updateDialog()
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
new /obj/item/clothing/suit/armor/vest/capcarapace/alt(src)
|
||||
new /obj/item/clothing/head/caphat/parade(src)
|
||||
new /obj/item/clothing/suit/captunic(src)
|
||||
new /obj/item/clothing/under/rank/captain/femformal(src) //citadel edit
|
||||
new /obj/item/clothing/head/crown/fancy(src)
|
||||
new /obj/item/cartridge/captain(src)
|
||||
new /obj/item/storage/box/silver_ids(src)
|
||||
|
||||
@@ -182,31 +182,50 @@
|
||||
|
||||
update_icon()
|
||||
|
||||
|
||||
/obj/structure/ladder/unbreakable/binary
|
||||
name = "mysterious ladder"
|
||||
desc = "Where does it go?"
|
||||
height = 0
|
||||
id = "lavaland_binary"
|
||||
var/area_to_place = /area/lavaland/surface/outdoors
|
||||
var/active = FALSE
|
||||
|
||||
/obj/structure/ladder/unbreakable/binary/Initialize()
|
||||
if(area_to_place)
|
||||
var/turf/T = safepick(get_area_turfs(area_to_place))
|
||||
/obj/structure/ladder/unbreakable/binary/proc/ActivateAlmonds()
|
||||
if(area_to_place && !active)
|
||||
var/turf/T = getTargetTurf()
|
||||
if(T)
|
||||
var/obj/structure/ladder/unbreakable/U = new (T)
|
||||
U.id = id
|
||||
U.height = height+1
|
||||
LateInitialize() // LateInit both of these to build the links. It's fine.
|
||||
U.LateInitialize()
|
||||
for(var/turf/TT in range(2,U))
|
||||
TT.TerraformTurf(/turf/open/indestructible/binary, /turf/open/indestructible/binary)
|
||||
return ..()
|
||||
TT.TerraformTurf(/turf/open/indestructible/binary, /turf/open/indestructible/binary, CHANGETURF_INHERIT_AIR)
|
||||
active = TRUE
|
||||
|
||||
/obj/structure/ladder/unbreakable/binary/proc/getTargetTurf()
|
||||
var/list/turfList = get_area_turfs(area_to_place)
|
||||
while (turfList.len && !.)
|
||||
var/i = rand(1, turfList.len)
|
||||
var/turf/potentialTurf = turfList[i]
|
||||
if (is_centcom_level(potentialTurf.z)) // These ladders don't lead to centcom.
|
||||
turfList.Cut(i,i+1)
|
||||
continue
|
||||
if(!istype(potentialTurf, /turf/open/lava) && !potentialTurf.density) // Or inside dense turfs or lava
|
||||
var/clear = TRUE
|
||||
for(var/obj/O in potentialTurf) // Let's not place these on dense objects either. Might be funny though.
|
||||
if(O.density)
|
||||
clear = FALSE
|
||||
break
|
||||
if(clear)
|
||||
. = potentialTurf
|
||||
if (!.)
|
||||
turfList.Cut(i,i+1)
|
||||
|
||||
/obj/structure/ladder/unbreakable/binary/space
|
||||
id = "space_binary"
|
||||
area_to_place = /area/space
|
||||
|
||||
|
||||
/obj/structure/ladder/unbreakable/binary/unlinked //Crew gets to complete one
|
||||
id = "unlinked_binary"
|
||||
area_to_place = null
|
||||
|
||||
@@ -187,8 +187,7 @@
|
||||
debris += new /obj/item/shard
|
||||
|
||||
/obj/structure/table/glass/Destroy()
|
||||
for(var/i in debris)
|
||||
qdel(i)
|
||||
QDEL_LIST(debris)
|
||||
. = ..()
|
||||
|
||||
/obj/structure/table/glass/Crossed(atom/movable/AM)
|
||||
|
||||
@@ -292,6 +292,7 @@
|
||||
var/obj/item/I = i
|
||||
I.forceMove(drop_location())
|
||||
transfer_fingerprints_to(I)
|
||||
debris -= I
|
||||
qdel(src)
|
||||
update_nearby_icons()
|
||||
|
||||
|
||||
@@ -114,6 +114,23 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
|
||||
return W
|
||||
|
||||
/turf/open/ChangeTurf(path, list/new_baseturfs, flags)
|
||||
if ((flags & CHANGETURF_INHERIT_AIR) && ispath(path, /turf/open))
|
||||
SSair.remove_from_active(src)
|
||||
var/stashed_air = air
|
||||
air = null // so that it doesn't get deleted
|
||||
. = ..()
|
||||
if (!. || . == src) // changeturf failed or didn't do anything
|
||||
air = stashed_air
|
||||
return
|
||||
var/turf/open/newTurf = .
|
||||
if (!istype(newTurf.air, /datum/gas_mixture/immutable/space))
|
||||
QDEL_NULL(newTurf.air)
|
||||
newTurf.air = stashed_air
|
||||
SSair.add_to_active(newTurf)
|
||||
else
|
||||
return ..()
|
||||
|
||||
// Take off the top layer turf and replace it with the next baseturf down
|
||||
/turf/proc/ScrapeAway(amount=1, flags)
|
||||
if(!amount)
|
||||
@@ -251,7 +268,7 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
/turf/open/AfterChange(flags)
|
||||
..()
|
||||
RemoveLattice()
|
||||
if(!(flags & CHANGETURF_IGNORE_AIR))
|
||||
if(!(flags & (CHANGETURF_IGNORE_AIR | CHANGETURF_INHERIT_AIR)))
|
||||
Assimilate_Air()
|
||||
|
||||
//////Assimilate Air//////
|
||||
@@ -284,4 +301,4 @@ GLOBAL_LIST_INIT(blacklisted_automated_baseturfs, typecacheof(list(
|
||||
|
||||
/turf/proc/ReplaceWithLattice()
|
||||
ScrapeAway()
|
||||
new /obj/structure/lattice(locate(x, y, z))
|
||||
new /obj/structure/lattice(locate(x, y, z))
|
||||
|
||||
@@ -54,6 +54,7 @@
|
||||
return
|
||||
|
||||
var/list/refs = list()
|
||||
var/where_used = FALSE
|
||||
for(var/list/query_tree in querys)
|
||||
var/list/from_objs = list()
|
||||
var/list/select_types = list()
|
||||
@@ -82,6 +83,7 @@
|
||||
objs_all = objs.len
|
||||
|
||||
if("where" in query_tree)
|
||||
where_used = TRUE
|
||||
var/objs_temp = objs
|
||||
objs = list()
|
||||
for(var/datum/d in objs_temp)
|
||||
@@ -119,7 +121,7 @@
|
||||
var/end_time = REALTIMEOFDAY
|
||||
end_time -= start_time
|
||||
return list("<span class='admin'>SDQL query results: [query_text]</span>",\
|
||||
"<span class='admin'>SDQL query completed: [objs_all] objects selected by path, and [objs_eligible] objects executed on after WHERE filtering if applicable.</span>",\
|
||||
"<span class='admin'>SDQL query completed: [objs_all] objects selected by path, and [where_used ? objs_eligible : objs_all] objects executed on after WHERE filtering if applicable.</span>",\
|
||||
"<span class='admin'>SDQL query took [DisplayTimeText(end_time)] to complete.</span>") + refs
|
||||
|
||||
/proc/SDQL_qdel_datum(datum/d)
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
var/obj/item/gun/energy/gravity_gun/gun
|
||||
|
||||
/obj/item/ammo_casing/energy/gravityrepulse/Initialize(mapload, obj/item/gun/energy/gravity_gun/G)
|
||||
. = ..()
|
||||
gun = G
|
||||
. = ..()
|
||||
|
||||
/obj/item/ammo_casing/energy/gravityattract
|
||||
projectile_type = /obj/item/projectile/gravityattract
|
||||
@@ -20,8 +20,8 @@
|
||||
|
||||
|
||||
/obj/item/ammo_casing/energy/gravityattract/Initialize(mapload, obj/item/gun/energy/gravity_gun/G)
|
||||
. = ..()
|
||||
gun = G
|
||||
. = ..()
|
||||
|
||||
/obj/item/ammo_casing/energy/gravitychaos
|
||||
projectile_type = /obj/item/projectile/gravitychaos
|
||||
@@ -32,5 +32,5 @@
|
||||
var/obj/item/gun/energy/gravity_gun/gun
|
||||
|
||||
/obj/item/ammo_casing/energy/gravitychaos/Initialize(mapload, obj/item/gun/energy/gravity_gun/G)
|
||||
. = ..()
|
||||
gun = G
|
||||
. = ..()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
name = "Machine Design (Circulator Board)"
|
||||
desc = "The circuit board for a circulator."
|
||||
id = "circulator"
|
||||
build_path = /obj/machinery/atmospherics/components/binary/circulator
|
||||
build_path = /obj/item/circuitboard/machine/circulator
|
||||
category = list ("Engineering Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
name = "Machine Design (TEG Board)"
|
||||
desc = "The circuit board for a TEG."
|
||||
id = "teg"
|
||||
build_path = /obj/machinery/power/generator
|
||||
build_path = /obj/item/circuitboard/machine/generator
|
||||
category = list ("Engineering Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
|
||||
Reference in New Issue
Block a user