Fixes some bitrunning related issues [no gbp] (#83184)

## About The Pull Request
Properly allows bitrunning antagonists to come station side

A few issues were resolved:
- Event title was too lengthy, it's been renamed
- IDs were not being named properly for cyber police. Cybertac would
appear as "unknown"
- Runtime at examining cyber police ID because it had an erroneous
account
- Teleporting station side would delete your organs and leave you a
broken husk of a mob
## Why It's Good For The Game
Fixes #83181
## Changelog
🆑
fix: Bitrunning antagonists no longer gib on teleport
fix: Cyber tac now have a visible name / ID
fix: Renamed the bitrunning malfunction event to just "Malfunction: x"
/🆑

---------

Co-authored-by: Time-Green <7501474+Time-Green@users.noreply.github.com>
This commit is contained in:
Jeremiah
2024-05-15 03:01:04 +02:00
committed by GitHub
co-authored by Time-Green
parent 70173053a5
commit fce52097ee
5 changed files with 34 additions and 11 deletions
+25 -5
View File
@@ -60,13 +60,33 @@
return TRUE
/// Sets up the agent so that they look like cyber police && don't have an account ID
/datum/antagonist/bitrunning_glitch/proc/convert_agent(mob/living/carbon/human/player, datum/outfit/agent_outfit)
/datum/antagonist/bitrunning_glitch/proc/convert_agent()
if(!ishuman(owner.current))
return
var/mob/living/carbon/human/player = owner.current
player.set_service_style()
player.equipOutfit(agent_outfit)
player.equipOutfit(preview_outfit)
player.fully_replace_character_name(player.name, pick(GLOB.cyberauth_names))
fix_agent_id()
/// Resets the agent's ID and name. Needed so this doesn't show as "unknown"
/datum/antagonist/bitrunning_glitch/proc/fix_agent_id()
if(!ishuman(owner.current))
return
var/mob/living/carbon/human/player = owner.current
var/obj/item/card/id/outfit_id = player.wear_id
if(outfit_id)
outfit_id.registered_account = new()
outfit_id.registered_account.replaceable = FALSE
if(isnull(outfit_id))
return
outfit_id.registered_account = new()
outfit_id.registered_account.replaceable = FALSE
outfit_id.registered_account.account_id = null
outfit_id.registered_name = player.name
outfit_id.update_label()
@@ -9,11 +9,10 @@
stack_trace("humans only for this position")
return
var/mob/living/player = owner.current
convert_agent(player, /datum/outfit/cyber_police)
convert_agent()
var/datum/martial_art/the_sleeping_carp/carp = new()
carp.teach(player)
carp.teach(owner.current)
/datum/outfit/cyber_police
name = ROLE_CYBER_POLICE
@@ -11,7 +11,7 @@
stack_trace("humans only for this position")
return
convert_agent(owner.current, /datum/outfit/cyber_police/tactical)
convert_agent()
/datum/outfit/cyber_police/tactical
name = ROLE_CYBER_TAC
+1 -1
View File
@@ -76,7 +76,7 @@
checked_target = mutation_target,
ignore_category = POLL_IGNORE_GLITCH,
alert_pic = mutation_target,
role_name_text = "Bitrunning Malfunction: [role_name]",
role_name_text = "Malfunction: [role_name]",
)
spawn_glitch(chosen_role, mutation_target, chosen_one)
return mutation_target
+5 -1
View File
@@ -63,9 +63,10 @@
return initial(selected.key)
/// Removes all blacklisted items from a mob and returns them to base state
/obj/machinery/quantum_server/proc/reset_equipment(mob/living/carbon/human/person)
for(var/item in person.get_contents())
for(var/obj/item in person.get_equipped_items(include_pockets = TRUE, include_accessories = TRUE))
qdel(item)
var/datum/antagonist/bitrunning_glitch/antag_datum = locate() in person.mind?.antag_datums
@@ -74,6 +75,9 @@
person.equipOutfit(antag_datum.preview_outfit)
antag_datum.fix_agent_id()
/// Severs any connected users
/obj/machinery/quantum_server/proc/sever_connections()
if(isnull(generated_domain) || !length(avatar_connection_refs))