Skip to content

BSAs can no longer target oozeling cores #5592

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 25, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion code/modules/station_goals/bsa.dm
Original file line number Diff line number Diff line change
Expand Up @@ -331,7 +331,7 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE)
return
var/list/gps_locators = list()
for(var/datum/component/gps/G in GLOB.GPS_list) //nulls on the list somehow
if(G.tracking)
if(G.tracking && G.bsa_targetable) // monkestation edit: bsa_targetable
gps_locators[G.gpstag] = G

var/list/options = gps_locators
Expand Down Expand Up @@ -360,6 +360,10 @@ GLOBAL_VAR_INIT(bsa_unlock, FALSE)
return pick(get_area_turfs(target))
else if(istype(target, /datum/component/gps))
var/datum/component/gps/G = target
// monkestation start: bsa_targetable sanity check
if(!G.bsa_targetable)
CRASH("BSA tried to fire at [G.gpstag] ([G.parent]), despite bsa_targetable being set to false")
// monkestation end
return get_turf(G.parent)

/obj/machinery/computer/bsa_control/proc/fire(mob/user)
Expand Down
7 changes: 7 additions & 0 deletions monkestation/code/datums/components/gps.dm
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
/datum/component/gps
/// Can this GPS be targeted by a BSA?
var/bsa_targetable = TRUE

/datum/component/gps/no_bsa
bsa_targetable = FALSE

/datum/component/gps/item
/// If TRUE, then this GPS needs to be calibrated to point to specific z-levels.
var/requires_z_calibration = TRUE
Expand Down
4 changes: 2 additions & 2 deletions monkestation/code/modules/surgery/organs/internal/brain.dm
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@
span_notice("You find the densest point, crushing it in your palm. The blinking light in the core slowly dissapates and items start to come out."),
span_notice("You hear a wet crunching sound."))
gps_active = FALSE
qdel(GetComponent(/datum/component/gps))//Actually remove the gps signal
qdel(GetComponent(/datum/component/gps/no_bsa))//Actually remove the gps signal

else
user.visible_message(span_warning("[user] crunches something deep in the slime core! It gradually stops glowing."),
Expand Down Expand Up @@ -202,7 +202,7 @@
playsound(victim, 'sound/effects/blobattack.ogg', 80, TRUE)

if(gps_active) // adding the gps signal if they have activated the ability
AddComponent(/datum/component/gps, "[victim]'s Core")
AddComponent(/datum/component/gps/no_bsa, "[victim]'s Core")

if(brainmob)
membrane_mur.Grant(brainmob)
Expand Down
Loading