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
|
||||
|
||||
|
||||
4
html/changelogs/AutoChangeLog-pr-7294.yml
Normal file
4
html/changelogs/AutoChangeLog-pr-7294.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
author: "CitadelStationBot"
|
||||
delete-after: True
|
||||
changes:
|
||||
- bugfix: "Printing the TEG and circulator boards no longer prints the completed machinery instead."
|
||||
9
html/changelogs/AutoChangeLog-pr-7327.yml
Normal file
9
html/changelogs/AutoChangeLog-pr-7327.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
author: "Naksu"
|
||||
delete-after: True
|
||||
changes:
|
||||
- tweak: "The ladders in the tear in the fabric of reality no longer spawn their endpoints when the area is loaded, but only when the tear is made accessible via a BoH bomb."
|
||||
- tweak: "CentCom is no longer accessible via the space ladder in the tear."
|
||||
- tweak: "The lavaland endpoint can no longer spawn completely surrounded by lava, unless it spawns on an island"
|
||||
- code_imp: "ChangeTurf can now conditionally inherit the air of the turf it is replacing, via the CHANGETURF_INHERIT_AIR flag."
|
||||
- bugfix: "when ladder endpoints are created, the binary turfs that are created inherit the air of the turfs they are replacing. This means the lavaland ladder endpoint will have the lavaland airmix, instead of a vacuum."
|
||||
- code_imp: "navigation beacons are now properly deregistered from their Z-level list and re-registered on the correct one if moved across Z-levels by an effect such as teleportation or a BoH-induced chasm."
|
||||
@@ -30,4 +30,16 @@
|
||||
icon_state = "tssuit"
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
item_state = "r_suit"
|
||||
can_adjust = FALSE
|
||||
can_adjust = FALSE
|
||||
|
||||
/obj/item/clothing/under/rank/captain/femformal
|
||||
name ="captain's female formal outfit"
|
||||
desc = ""
|
||||
icon = 'modular_citadel/icons/obj/clothing/cit_clothes.dmi'
|
||||
icon_state = "lewdcap"
|
||||
icon_override = 'modular_citadel/icons/mob/citadel/uniforms.dmi'
|
||||
item_state = "lewdcap"
|
||||
item_color = "lewdcap"
|
||||
can_adjust = FALSE
|
||||
sensor_mode = SENSOR_COORDS //it's still a captain's suit nerd
|
||||
random_sensor = FALSE
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 54 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 795 B After Width: | Height: | Size: 2.0 KiB |
Reference in New Issue
Block a user