diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index c05d84e8122d..339d48c9fe39 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -74,10 +74,10 @@ These are the few directives we have for project maintainers. - Try to get secondary maintainer approval before merging if you are able to. - PRs with empty commits intended to generate a changelog. - Do not merge PRs that contain content from the [banned content list](./CONTRIBUTING.md#banned-content). -- Do not merge PRs that contain balance changes without GA approval. Exceptions include: - - Any PR that has been un-reviewed by a GA for 7 days. +- Do not merge PRs that contain balance changes without Maintainer Manager approval. Exceptions include: + - Any PR that has been un-reviewed by a Maintainer Manager for 7 days. - Do not remove the DNM label that another Maintainer has applied. Exceptions include: - - GAs removing a DNM label placed by a Maintainer for Balance/Design reasons + - Maintainer Managers removing a DNM label placed by a Maintainer for Balance/Design reasons These are not steadfast rules as maintainers are expected to use their best judgement when operating. diff --git a/.github/guides/STANDARDS.md b/.github/guides/STANDARDS.md index fc764d09c816..c9b988bd07ff 100644 --- a/.github/guides/STANDARDS.md +++ b/.github/guides/STANDARDS.md @@ -126,7 +126,7 @@ While we normally encourage (and in some cases, even require) bringing out of da This is a simple one - as we will eventually move to 515, we will need to ditch this kind of callback. So please don't add any new ones. Make our lives easier. ### PROC_REF Macros - When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF,TYPE_PROC_REF and GLOBAL_PROC_REF macros. + When referencing procs in RegisterSignal, Callback and other procs you should use PROC_REF, TYPE_PROC_REF and GLOBAL_PROC_REF macros. They ensure compilation fails if the reffered to procs change names or get removed. The macro to be used depends on how the proc you're in relates to the proc you want to use: @@ -168,6 +168,8 @@ This is a simple one - as we will eventually move to 515, we will need to ditch addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(funny)), 100)) ``` + Note that the same rules go for verbs too! We have VERB_REF() and TYPE_VERB_REF() as you need it in these same cases. GLOBAL_VERB_REF() isn't a thing however, as verbs are not global. + ### Signal Handlers All procs that are registered to listen for signals using `RegisterSignal()` must contain at the start of the proc `SIGNAL_HANDLER` eg; diff --git a/code/_byond_version_compat.dm b/code/_byond_version_compat.dm index b5379a3b6d5c..719d85654b5f 100644 --- a/code/_byond_version_compat.dm +++ b/code/_byond_version_compat.dm @@ -31,19 +31,49 @@ #define LIBCALL call_ext #endif -// So we want to have compile time guarantees these procs exist on local type, unfortunately 515 killed the .proc/procname syntax so we have to use nameof() +// So we want to have compile time guarantees these methods exist on local type, unfortunately 515 killed the .proc/procname and .verb/verbname syntax so we have to use nameof() +// For the record: GLOBAL_VERB_REF would be useless as verbs can't be global. + #if DM_VERSION < 515 -/// Call by name proc reference, checks if the proc exists on this type or as a global proc + +/// Call by name proc references, checks if the proc exists on either this type or as a global proc. #define PROC_REF(X) (.proc/##X) -/// Call by name proc reference, checks if the proc exists on given type or as a global proc +/// Call by name verb references, checks if the verb exists on either this type or as a global verb. +#define VERB_REF(X) (.verb/##X) + +/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc #define TYPE_PROC_REF(TYPE, X) (##TYPE.proc/##X) -/// Call by name proc reference, checks if the proc is existing global proc +/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb +#define TYPE_VERB_REF(TYPE, X) (##TYPE.verb/##X) + +/// Call by name proc reference, checks if the proc is an existing global proc #define GLOBAL_PROC_REF(X) (/proc/##X) + #else -/// Call by name proc reference, checks if the proc exists on this type or as a global proc + +/// Call by name proc references, checks if the proc exists on either this type or as a global proc. #define PROC_REF(X) (nameof(.proc/##X)) -/// Call by name proc reference, checks if the proc exists on given type or as a global proc +/// Call by name verb references, checks if the verb exists on either this type or as a global verb. +#define VERB_REF(X) (nameof(.verb/##X)) + +/// Call by name proc reference, checks if the proc exists on either the given type or as a global proc #define TYPE_PROC_REF(TYPE, X) (nameof(##TYPE.proc/##X)) -/// Call by name proc reference, checks if the proc is existing global proc +/// Call by name verb reference, checks if the verb exists on either the given type or as a global verb +#define TYPE_VERB_REF(TYPE, X) (nameof(##TYPE.verb/##X)) + +/// Call by name proc reference, checks if the proc is an existing global proc #define GLOBAL_PROC_REF(X) (/proc/##X) + +#endif + +#if (DM_VERSION == 515) +/// fcopy will crash on 515 linux if given a non-existant file, instead of returning 0 like on 514 linux or 515 windows +/// var case matches documentation for fcopy. +/world/proc/__fcopy(Src, Dst) + if (istext(Src) && !fexists(Src)) + return 0 + return fcopy(Src, Dst) + +#define fcopy(Src, Dst) world.__fcopy(Src, Dst) + #endif diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index affbc28cdd45..df7dd48a1dd1 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -82,7 +82,7 @@ return face_atom(A) - if(mods["middle"]) + if(mods["middle"]) return // Special type of click. if (is_mob_restrained()) @@ -334,7 +334,7 @@ if(prefs.adaptive_zoom) INVOKE_ASYNC(src, PROC_REF(adaptive_zoom)) else if(prefs.auto_fit_viewport) - INVOKE_ASYNC(src, .verb/fit_viewport) + INVOKE_ASYNC(src, VERB_REF(fit_viewport)) /client/proc/get_adaptive_zoom_factor() if(!prefs.adaptive_zoom) diff --git a/code/controllers/subsystem/minimap.dm b/code/controllers/subsystem/minimap.dm index e365a9b60781..c3b2d36b8177 100644 --- a/code/controllers/subsystem/minimap.dm +++ b/code/controllers/subsystem/minimap.dm @@ -262,8 +262,12 @@ SUBSYSTEM_DEF(minimaps) * removes an image from raw tracked lists, invoked by callback */ /datum/controller/subsystem/minimaps/proc/removeimage(image/blip, atom/target) + var/turf/turf_gotten = get_turf(target) + if(!turf_gotten) + return + var/z_level = turf_gotten.z for(var/flag in GLOB.all_minimap_flags) - minimaps_by_z["[target.z]"].images_raw["[flag]"] -= blip + minimaps_by_z["[z_level]"].images_raw["[flag]"] -= blip blip.UnregisterSignal(target, COMSIG_MOVABLE_MOVED) removal_cbs -= target @@ -391,18 +395,24 @@ SUBSYSTEM_DEF(minimaps) owner.client.screen += map minimap_displayed = !minimap_displayed -/datum/action/minimap/give_to(mob/M) +/datum/action/minimap/give_to(mob/target) . = ..() if(default_overwatch_level) map = SSminimaps.fetch_minimap_object(default_overwatch_level, minimap_flags) else - RegisterSignal(M, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_owner_z_change)) - if(!SSminimaps.minimaps_by_z["[M.z]"] || !SSminimaps.minimaps_by_z["[M.z]"].hud_image) + RegisterSignal(target, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(on_owner_z_change)) + + var/turf/turf_gotten = get_turf(target) + if(!turf_gotten) + return + var/z_level = turf_gotten.z + + if(!SSminimaps.minimaps_by_z["[z_level]"] || !SSminimaps.minimaps_by_z["[z_level]"].hud_image) return - map = SSminimaps.fetch_minimap_object(M.z, minimap_flags) + map = SSminimaps.fetch_minimap_object(z_level, minimap_flags) -/datum/action/minimap/remove_from(mob/M) +/datum/action/minimap/remove_from(mob/target) . = ..() if(minimap_displayed) owner?.client?.screen -= map diff --git a/code/datums/emergency_calls/cryo_marines.dm b/code/datums/emergency_calls/cryo_marines.dm index e5992a62ecdd..9bec8b3593dd 100644 --- a/code/datums/emergency_calls/cryo_marines.dm +++ b/code/datums/emergency_calls/cryo_marines.dm @@ -13,10 +13,12 @@ shuttle_id = "" var/leaders = 0 -/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc) +/datum/emergency_call/cryo_squad/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders - return ..() + . = ..() + if(length(members)) + shipwide_ai_announcement("Successfully deployed [length(members)] Foxtrot marines.") /datum/emergency_call/cryo_squad/create_member(datum/mind/M, turf/override_spawn_loc) set waitfor = 0 diff --git a/code/datums/emergency_calls/cryo_marines_heavy.dm b/code/datums/emergency_calls/cryo_marines_heavy.dm index 6a3636568856..70ce52443573 100644 --- a/code/datums/emergency_calls/cryo_marines_heavy.dm +++ b/code/datums/emergency_calls/cryo_marines_heavy.dm @@ -16,10 +16,12 @@ var/leaders = 0 -/datum/emergency_call/cryo_squad_equipped/spawn_candidates(announce, override_spawn_loc) +/datum/emergency_call/cryo_squad_equipped/spawn_candidates(announce, override_spawn_loc, announce_dispatch_message) var/datum/squad/marine/cryo/cryo_squad = RoleAuthority.squads_by_type[/datum/squad/marine/cryo] leaders = cryo_squad.num_leaders - return ..() + . = ..() + if(length(members)) + shipwide_ai_announcement("Successfully deployed [length(members)] Foxtrot marines.") /datum/emergency_call/cryo_squad_equipped/create_member(datum/mind/M, turf/override_spawn_loc) set waitfor = 0 diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 42a3a2f0b9ea..e98e3b527c5f 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -302,11 +302,9 @@ src.add_fingerprint(user) afterbuckle(target) if(buckle_lying) // Make sure buckling to beds/nests etc only turns, and doesn't give a random offset - var/matrix/M = matrix() - var/matrix/L = matrix() //Counterrotation for langchat text. - M.Turn(90) - L.Turn(270) - target.apply_transform(M) + var/matrix/new_matrix = matrix() + new_matrix.Turn(90) + target.apply_transform(new_matrix) return TRUE /obj/proc/send_buckling_message(mob/M, mob/user) diff --git a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm index e306b894b021..37d46cbe6d5d 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/xeno_nest.dm @@ -289,11 +289,12 @@ if(buckled_human.stat == DEAD ) buckled_mob_density = FALSE - . = ..() - var/mob/dead/observer/G = ghost_of_buckled_mob var/datum/mind/M = G?.mind ghost_of_buckled_mob = null + + . = ..() //Very important that this comes after, since it deletes the nest and clears ghost_of_buckled_mob + if(!istype(buckled_human) || !istype(G) || !istype(M) || buckled_human.undefibbable || buckled_human.mind || M.original != buckled_human || buckled_human.chestburst) return // Zealous checking as most is handled by ghost code to_chat(G, FONT_SIZE_HUGE(SPAN_DANGER("You have been freed from your nest and may go back to your body! (Look for 'Re-enter Corpse' in Ghost verbs, or click here!)"))) diff --git a/code/modules/cm_marines/dropship_equipment.dm b/code/modules/cm_marines/dropship_equipment.dm index 42bbd7f746e7..89d33134bdb8 100644 --- a/code/modules/cm_marines/dropship_equipment.dm +++ b/code/modules/cm_marines/dropship_equipment.dm @@ -256,6 +256,13 @@ deployed_turret.start_processing() deployed_turret.set_range() + deployed_turret.linked_cam = new(deployed_turret.loc, "[capitalize_first_letters(ship_base.name)] [capitalize_first_letters(name)]") + if (linked_shuttle.id == DROPSHIP_ALAMO) + deployed_turret.linked_cam.network = list(CAMERA_NET_ALAMO) + else if (linked_shuttle.id == DROPSHIP_NORMANDY) + deployed_turret.linked_cam.network = list(CAMERA_NET_NORMANDY) + + /obj/structure/dropship_equipment/sentry_holder/proc/undeploy_sentry() if(!deployed_turret) return @@ -267,8 +274,12 @@ deployed_turret.stop_processing() deployed_turret.unset_range() icon_state = "sentry_system_installed" + QDEL_NULL(deployed_turret.linked_cam) - +/obj/structure/dropship_equipment/sentry_holder/Destroy() + if(deployed_turret) + QDEL_NULL(deployed_turret.linked_cam) + . = ..() /// Holder for the dropship mannable machinegun system diff --git a/code/modules/defenses/sentry.dm b/code/modules/defenses/sentry.dm index 3d485f3abda7..946c347efaa0 100644 --- a/code/modules/defenses/sentry.dm +++ b/code/modules/defenses/sentry.dm @@ -539,11 +539,13 @@ choice_categories = list() selected_categories = list() var/obj/structure/dropship_equipment/sentry_holder/deployment_system + var/obj/structure/machinery/camera/cas/linked_cam /obj/structure/machinery/defenses/sentry/premade/dropship/Destroy() if(deployment_system) deployment_system.deployed_turret = null deployment_system = null + QDEL_NULL(linked_cam) . = ..() #define SENTRY_SNIPER_RANGE 10 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index fcb95a6fd783..a22e46ad2911 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -398,7 +398,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp var/is_nested = (buckled && istype(buckled, /obj/structure/bed/nest)) ? TRUE : FALSE var/obj/structure/bed/nest/nest = FALSE if(is_nested) - text_prompt += "\nSince you're nested, you will be given a chance to reenter your body upon being freed." + text_prompt += "\nSince you're nested, you will get a chance to reenter your body if freed." nest = buckled var/response = tgui_alert(src, text_prompt, "Are you sure you want to ghost?", options) if(response == "Aghost") diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 355f69ca05a9..f74b65c2606d 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -94,23 +94,19 @@ There are several things that need to be remembered: if(lying == lying_prev && !force) return lying_prev = lying - var/matrix/M = matrix() - var/matrix/L = matrix() //Counter-rotation for langchat text. + var/matrix/new_matrix = matrix() if(lying) if(pulledby && pulledby.grab_level >= GRAB_CARRY) - M.Turn(90) - L.Turn(270) + new_matrix.Turn(90) else if(prob(50)) - M.Turn(90) - L.Turn(270) + new_matrix.Turn(90) else - M.Turn(270) - L.Turn(90) - M.Translate(rand(-10,10),rand(-10,10)) - apply_transform(M) + new_matrix.Turn(270) + new_matrix.Translate(rand(-10,10), rand(-10,10)) + apply_transform(new_matrix) else - apply_transform(M) + apply_transform(new_matrix) /mob/living/carbon/human/UpdateDamageIcon() for(var/obj/limb/O in limbs) diff --git a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm index e0a29a034029..0c9358119def 100644 --- a/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm +++ b/code/modules/mob/living/carbon/xenomorph/abilities/lurker/lurker_abilities.dm @@ -14,20 +14,21 @@ can_be_shield_blocked = TRUE /datum/action/xeno_action/activable/pounce/lurker/additional_effects_always() - var/mob/living/carbon/xenomorph/X = owner - if (!istype(X)) + var/mob/living/carbon/xenomorph/xeno = owner + if (!istype(xeno)) return - - if (X.mutation_type == LURKER_NORMAL) + if (xeno.mutation_type == LURKER_NORMAL) var/found = FALSE - for (var/mob/living/carbon/human/H in get_turf(X)) + for (var/mob/living/carbon/human/human in get_turf(xeno)) + if(human.stat == DEAD) + continue found = TRUE break if (found) - var/datum/action/xeno_action/onclick/lurker_invisibility/LIA = get_xeno_action_by_type(X, /datum/action/xeno_action/onclick/lurker_invisibility) - if (istype(LIA)) - LIA.invisibility_off() + var/datum/action/xeno_action/onclick/lurker_invisibility/lurker_invis = get_xeno_action_by_type(xeno, /datum/action/xeno_action/onclick/lurker_invisibility) + if (istype(lurker_invis)) + lurker_invis.invisibility_off() /datum/action/xeno_action/activable/pounce/lurker/additional_effects(mob/living/L) var/mob/living/carbon/xenomorph/X = owner diff --git a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm index 5d3ee0b04ba7..7e1f31e66e67 100644 --- a/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm +++ b/code/modules/mob/living/carbon/xenomorph/xeno_defines.dm @@ -286,7 +286,7 @@ var/bonus_larva_spawn_chance = 1 var/hijack_burrowed_surge = FALSE //at hijack, start spawning lots of burrowed /// how many burrowed is going to spawn during larva surge - var/hijack_burrowed_left = 0 + var/hijack_burrowed_left = 0 var/ignore_slots = FALSE var/dynamic_evolution = TRUE @@ -1006,7 +1006,10 @@ /datum/hive_status/proc/can_spawn_as_hugger(mob/dead/observer/user) if(!GLOB.hive_datum || ! GLOB.hive_datum[hivenumber]) - return + return FALSE + if(jobban_isbanned(user, JOB_XENOMORPH)) // User is jobbanned + to_chat(user, SPAN_WARNING("You are banned from playing aliens and cannot spawn as a xenomorph.")) + return FALSE if(world.time < hugger_timelock) to_chat(user, SPAN_WARNING("The hive cannot support facehuggers yet...")) return FALSE diff --git a/html/changelogs/AutoChangeLog-pr-3298.yml b/html/changelogs/AutoChangeLog-pr-3298.yml deleted file mode 100644 index 0a75d2215043..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3298.yml +++ /dev/null @@ -1,15 +0,0 @@ -author: "realforest2001" -delete-after: True -changes: - - rscadd: "Added an admin button for an ARES bioscan. Slightly refactored how Bioscans trigger for marines, relying on an ARES processor." - - rscadd: "Added individual proccessors for ARES systems. These are WIP and will eventually have damage and repair interactions." - - rscadd: "Added an ARES interaction console in the AI Core room, which holds logs for most ARES functions." - - rscadd: "Added the ability for ARES console to call ERT or Distress." - - rscadd: "Added motion triggers in ARES core and shipside comms that send alerts over Apollo." - - rscadd: "Added a 1to1 conversation feature between ARES and users of the interface console." - - rscadd: "Added preset open versions of blended poddoors." - - rscadd: "Added a console for directing Working Joes. This is largely WIP for future PR(s)." - - rscadd: "Added subtypes of air pipes that don't explode on hijack, used these in ARES core." - - maptweak: "Remodelled ARES Core onto a fake-z, and added the new processors." - - bugfix: "door_control buttons now respect being indestructable when processing explosions." - - maptweak: "Fixed the M39s overflowing in brig armory due to use of landmarks." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3666.yml b/html/changelogs/AutoChangeLog-pr-3666.yml deleted file mode 100644 index d7d8860c237e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3666.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - balance: "Xenos no longer can pull dead xenos" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3675.yml b/html/changelogs/AutoChangeLog-pr-3675.yml new file mode 100644 index 000000000000..744b83d85b08 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3675.yml @@ -0,0 +1,4 @@ +author: "TheGamerdk" +delete-after: True +changes: + - rscadd: "ARES will announce how many Foxtrot marines that woke up." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3717.yml b/html/changelogs/AutoChangeLog-pr-3717.yml deleted file mode 100644 index 6d6327ea63a7..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3717.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Drathek" -delete-after: True -changes: - - bugfix: "Fixed the crashsite offset for a hijack shuttle that gets deterred by the MGAD System" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3718.yml b/html/changelogs/AutoChangeLog-pr-3718.yml deleted file mode 100644 index 41f5322a2493..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3718.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - balance: "Queen boosted building no longer has 2 second cooldown when far from hive" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3723.yml b/html/changelogs/AutoChangeLog-pr-3723.yml deleted file mode 100644 index 987b7eeec708..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3723.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "TheGamerdk" -delete-after: True -changes: - - bugfix: "Communications intel objective now actually works" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3730.yml b/html/changelogs/AutoChangeLog-pr-3730.yml deleted file mode 100644 index 9ae18e6bc788..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3730.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "fira" -delete-after: True -changes: - - bugfix: "Fixed a MC crash related to NPC huggers rebounding logic." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3731.yml b/html/changelogs/AutoChangeLog-pr-3731.yml deleted file mode 100644 index 21fd76664d2b..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3731.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "blackdragonTOW" -delete-after: True -changes: - - maptweak: "Added a small light to unlit rooms." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3736.yml b/html/changelogs/AutoChangeLog-pr-3736.yml deleted file mode 100644 index c1eba0beabfd..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3736.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Morrow" -delete-after: True -changes: - - rscdel: "Removed toxin mags on shivas" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3737.yml b/html/changelogs/AutoChangeLog-pr-3737.yml new file mode 100644 index 000000000000..770af461be67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3737.yml @@ -0,0 +1,4 @@ +author: "ihatethisengine" +delete-after: True +changes: + - rscadd: "Added cameras to dropship deployable sentries." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3742.yml b/html/changelogs/AutoChangeLog-pr-3742.yml deleted file mode 100644 index 7319ac52f8d9..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3742.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: "SpartanBobby" -delete-after: True -changes: - - maptweak: "Minor decal changes to LV522" - - maptweak: "Buffed sec armory on LV522" - - maptweak: "LV522 Breaching charge moved to the PROP APC made UNACIDABLE" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3743.yml b/html/changelogs/AutoChangeLog-pr-3743.yml deleted file mode 100644 index 084e74fc2c2e..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3743.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Katskan" -delete-after: True -changes: - - balance: "Removed G8A storage from various snow suits and parkas" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3746.yml b/html/changelogs/AutoChangeLog-pr-3746.yml deleted file mode 100644 index 48b25b9efb1a..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3746.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "IowaPotatoFarmer" -delete-after: True -changes: - - rscadd: "Solaris Ridge now has a Corporate Liaison survivor." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3748.yml b/html/changelogs/AutoChangeLog-pr-3748.yml deleted file mode 100644 index 74c02e602003..000000000000 --- a/html/changelogs/AutoChangeLog-pr-3748.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: "Diegoflores31" -delete-after: True -changes: - - balance: "reduced Larva Burst time from 10 minutes to 7.5 minutes" - - refactor: "changed 1 letter vars." \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3761.yml b/html/changelogs/AutoChangeLog-pr-3761.yml new file mode 100644 index 000000000000..75a499cd7e48 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3761.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - spellcheck: "Tweaked message when ghosting while nested" \ No newline at end of file diff --git a/html/changelogs/AutoChangeLog-pr-3766.yml b/html/changelogs/AutoChangeLog-pr-3766.yml new file mode 100644 index 000000000000..6132f005140c --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-3766.yml @@ -0,0 +1,4 @@ +author: "Drathek" +delete-after: True +changes: + - bugfix: "Fixed missing xeno ban check for playing as a facehugger" \ No newline at end of file diff --git a/html/changelogs/archive/2023-06.yml b/html/changelogs/archive/2023-06.yml index 71aeb035f4b8..e2d9dfed44d7 100644 --- a/html/changelogs/archive/2023-06.yml +++ b/html/changelogs/archive/2023-06.yml @@ -383,3 +383,62 @@ - balance: explosive barricade upgrade provides strong protection against brute-based projectiles (50%) - balance: explosive barricade upgrade provides strong protection against fire (50%) +2023-06-29: + Diegoflores31: + - balance: reduced Larva Burst time from 10 minutes to 7.5 minutes + - refactor: changed 1 letter vars. + Drathek: + - bugfix: Fixed the crashsite offset for a hijack shuttle that gets deterred by + the MGAD System + IowaPotatoFarmer: + - rscadd: Solaris Ridge now has a Corporate Liaison survivor. + Katskan: + - balance: Removed G8A storage from various snow suits and parkas + Morrow: + - balance: Xenos no longer can pull dead xenos + - rscdel: Removed toxin mags on shivas + SpartanBobby: + - maptweak: Minor decal changes to LV522 + - maptweak: Buffed sec armory on LV522 + - maptweak: LV522 Breaching charge moved to the PROP APC made UNACIDABLE + TheGamerdk: + - bugfix: Communications intel objective now actually works + - balance: Queen boosted building no longer has 2 second cooldown when far from + hive + blackdragonTOW: + - maptweak: Added a small light to unlit rooms. + fira: + - bugfix: Fixed a MC crash related to NPC huggers rebounding logic. + realforest2001: + - rscadd: Added an admin button for an ARES bioscan. Slightly refactored how Bioscans + trigger for marines, relying on an ARES processor. + - rscadd: Added individual proccessors for ARES systems. These are WIP and will + eventually have damage and repair interactions. + - rscadd: Added an ARES interaction console in the AI Core room, which holds logs + for most ARES functions. + - rscadd: Added the ability for ARES console to call ERT or Distress. + - rscadd: Added motion triggers in ARES core and shipside comms that send alerts + over Apollo. + - rscadd: Added a 1to1 conversation feature between ARES and users of the interface + console. + - rscadd: Added preset open versions of blended poddoors. + - rscadd: Added a console for directing Working Joes. This is largely WIP for future + PR(s). + - rscadd: Added subtypes of air pipes that don't explode on hijack, used these in + ARES core. + - maptweak: Remodelled ARES Core onto a fake-z, and added the new processors. + - bugfix: door_control buttons now respect being indestructable when processing + explosions. + - maptweak: Fixed the M39s overflowing in brig armory due to use of landmarks. +2023-06-30: + Drathek: + - bugfix: Fix runtimes with minimap subsystem not handling targets inside of objects + during removal + - code_imp: Ported VERB_REF and TYPE_VERB_REF from TG for 515 compatibility + - code_imp: Removed unnecessary calculations when updating a mob's transform. + Morrow: + - rscdel: Removed wrong warden locker + TheGamerdk: + - bugfix: You can now re-enter your body when unnested, marine mains, rejoice! + - bugfix: Lurkers no longer lose their pounce if they happen to end their pounce + on a tile with a dead human diff --git a/maps/map_files/USS_Almayer/USS_Almayer.dmm b/maps/map_files/USS_Almayer/USS_Almayer.dmm index 63562239f4dc..b15ee29dd20a 100644 --- a/maps/map_files/USS_Almayer/USS_Almayer.dmm +++ b/maps/map_files/USS_Almayer/USS_Almayer.dmm @@ -56372,7 +56372,6 @@ "pbh" = ( /obj/structure/disposalpipe/segment, /obj/structure/pipes/standard/simple/hidden/supply, -/obj/structure/closet/secure_closet/warden, /obj/structure/machinery/light{ dir = 4 },