Exfiltration - Early Antag Escape (#29554)

* Ghost bar antag addition

* Adds extraction flares and extraction procs

* Ghostbarification, antag-specific extractions

* Objectives reroll if target extracts

* Comment format

* Adds blackboxing. Prevents extraction if you're an objective target.

* Fixed objective freezing, removes mindslaves on exfiltration

* Vampire Portal Sprites

* Better sprite for portal

* Flayer telepad, assorted visual adjustments

* Makes flayer and vampire portals truly one time use. Flayer ability icon

* Fixed indents, vampire ability icon

* Changeling flare

* Removed some debug adjustments

* Map fixes

* Makes the exfil restriction a var on the datum

* More map fixes

* Centcomm my beloathed

* More map fixes

* Checks delay before objectives

* Objective freezing list fix

* Review fixes

* Moves a lot of exfil item granting logic to antag datum.

* Changed objective exfil block from var to proc

* Centcommmm

* Adds true return. Thanks Contra.

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Efficiency

Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Moved jaunter subtypes

* Forgot to move the admin one

* Capitalization

Co-authored-by: AmityBlamity <142629851+AmityBlamity@users.noreply.github.com>
Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>

* Reworked area selection

* Black box, admin log, proper clearing of martial arts and bio chips

* Exfiltration now properly checks completion of alive and free escape objective

* Adds announcement to security comms when exfil item is used

* Linters

* Map adjustments

* Fixes syndiebar library computer access

* Merge conflict resolution

* Updates action buttons

* New Linters

* Update centcomm.dmm

---------

Signed-off-by: PollardTheDragon <144391971+PollardTheDragon@users.noreply.github.com>
Co-authored-by: Contrabang <91113370+Contrabang@users.noreply.github.com>
Co-authored-by: AmityBlamity <142629851+AmityBlamity@users.noreply.github.com>
This commit is contained in:
PollardTheDragon
2025-09-09 01:28:09 +00:00
committed by GitHub
co-authored by Contrabang AmityBlamity
parent 7a0918b330
commit fca03efeb0
18 changed files with 4291 additions and 2297 deletions
+94
View File
@@ -0,0 +1,94 @@
/datum/outfit/admin/ghostbar_antag
name = "Ghostly Antagonist"
l_ear = /obj/item/radio/headset/deadsay
l_pocket = /obj/item/stack/spacecash/c1000
id = /obj/item/card/id/syndicate
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/flashlight = 1
)
/datum/outfit/admin/ghostbar_antag/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
. = ..()
if(visualsOnly)
return
var/obj/item/card/id/our_id = H.wear_id
if(!istype(our_id))
return
apply_to_card(our_id, H, list(ACCESS_MAINT_TUNNELS), name)
our_id.assignment = src.name
our_id.registered_name = H.real_name
our_id.sex = capitalize(H.gender)
our_id.age = H.age
our_id.name = "[our_id.registered_name]'s ID Card ([our_id.assignment])"
our_id.photo = get_id_photo(H)
our_id.owner_uid = H.UID()
our_id.owner_ckey = H.ckey
our_id.icon_state = "syndie"
H.job = src.name
H.mind.assigned_role = src.name
H.mind.special_role = src.name
H.mind.offstation_role = TRUE
H.sec_hud_set_ID()
/datum/outfit/admin/ghostbar_antag/syndicate
name = "Syndicate Agent"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/jacket/bomber/syndicate
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/combat
shoes = /obj/item/clothing/shoes/combat
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/flashlight = 1,
/obj/item/food/syndidonkpocket = 1,
/obj/item/gun/projectile/automatic/toy/pistol = 1,
/obj/item/ammo_box/magazine/toy/pistol = 2
)
/datum/outfit/admin/ghostbar_antag/vampire
name = "Vampire"
uniform = /obj/item/clothing/under/suit/black
suit = /obj/item/clothing/suit/draculacoat
neck = /obj/item/clothing/neck/cloak
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/black
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/reagent_containers/iv_bag/blood/o_plus = 3
)
/datum/outfit/admin/ghostbar_antag/changeling
name = "Changeling"
uniform = /obj/item/clothing/under/chameleon
suit = /obj/item/clothing/suit/chameleon
neck = /obj/item/clothing/neck/chameleon
back = /obj/item/storage/backpack/chameleon
gloves = /obj/item/clothing/gloves/chameleon
shoes = /obj/item/clothing/shoes/chameleon
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/toy/foamblade = 1
)
/datum/outfit/admin/ghostbar_antag/mindflayer
name = "Mindflayer"
uniform = /obj/item/clothing/under/psysuit
suit = /obj/item/clothing/suit/blacktrenchcoat
neck = /obj/item/clothing/neck/cloak
back = /obj/item/storage/backpack
gloves = /obj/item/clothing/gloves/color/black
shoes = /obj/item/clothing/shoes/black
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/toy/plushie/ipcplushie = 1
)
@@ -581,6 +581,14 @@
cost = 50
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/device_tools/extraction_beacon
name = "Extraction Flare"
desc = "A special flare used to call in an extraction portal. The portal takes time to generate, and will only work in certain rooms that it is pre-calibrated for. The Syndicate withholds the right to deny a portal to agents with certain objectives."
reference = "EXTF"
item = /obj/item/wormhole_jaunter/extraction
limited_stock = 1
excludefrom = list(UPLINK_TYPE_NUCLEAR, UPLINK_TYPE_SST)
/datum/uplink_item/device_tools/hyper_medipen
name = "Hyper-regenerative Medipen"
desc = "An autoinjector filled with a variety of medical chemicals. It rapidly heals conventional injuries and genetic damage, but loses potency just as quickly. May have side effects if multiple are used in quick succession."