[MIRROR] Nuclear operatives can now be other species. Pref toggle to always be human as operative [MDB IGNORE] (#23433)

* Nuclear operatives can now be other species. Pref toggle to always be human as operative

* remove skyrat edit

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
This commit is contained in:
SkyratBot
2023-08-31 23:27:59 +02:00
committed by GitHub
parent a868832007
commit 1edbfcd0f0
18 changed files with 135 additions and 12 deletions
@@ -104,7 +104,9 @@
var/special_role_name = ROLE_NUCLEAR_OPERATIVE
/// The applied outfit
var/datum/outfit/syndicate/outfit = /datum/outfit/syndicate/reinforcement
/// The antag datam applied
/// The outfit given to plasmaman operatives
var/datum/outfit/syndicate/plasma_outfit = /datum/outfit/syndicate/reinforcement/plasmaman
/// The antag datum applied
var/datum/antagonist/nukeop/antag_datum = /datum/antagonist/nukeop
/// Style used by the droppod
var/pod_style = STYLE_SYNDICATE
@@ -144,11 +146,11 @@
else
to_chat(user, span_warning("Unable to connect to Syndicate command. Please wait and try again later or use the beacon on your uplink to get your points refunded."))
/obj/item/antag_spawner/nuke_ops/spawn_antag(client/C, turf/T, kind, datum/mind/user)
/obj/item/antag_spawner/nuke_ops/spawn_antag(client/our_client, turf/T, kind, datum/mind/user)
var/mob/living/carbon/human/nukie = new()
var/obj/structure/closet/supplypod/pod = setup_pod()
C.prefs.safe_transfer_prefs_to(nukie, is_antag = TRUE)
nukie.ckey = C.key
our_client.prefs.safe_transfer_prefs_to(nukie, is_antag = TRUE)
nukie.ckey = our_client.key
var/datum/mind/op_mind = nukie.mind
if(length(GLOB.newplayer_start)) // needed as hud code doesn't render huds if the atom (in this case the nukie) is in nullspace, so just move the nukie somewhere safe
nukie.forceMove(pick(GLOB.newplayer_start))
@@ -157,6 +159,7 @@
antag_datum = new()
antag_datum.send_to_spawnpoint = FALSE
antag_datum.nukeop_outfit = use_subtypes ? pick(subtypesof(outfit)) : outfit
var/datum/antagonist/nukeop/creator_op = user.has_antag_datum(/datum/antagonist/nukeop, TRUE)
+13 -8
View File
@@ -8,9 +8,13 @@
show_to_ghosts = TRUE
hijack_speed = 2 //If you can't take out the station, take the shuttle instead.
suicide_cry = "FOR THE SYNDICATE!!"
/// Which nukie team are we on?
var/datum/team/nuclear/nuke_team
var/always_new_team = FALSE //If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
var/send_to_spawnpoint = TRUE //Should the user be moved to default spawnpoint.
/// If not assigned a team by default ops will try to join existing ones, set this to TRUE to always create new team.
var/always_new_team = FALSE
/// Should the user be moved to default spawnpoint after being granted this datum.
var/send_to_spawnpoint = TRUE
/// The DEFAULT outfit we will give to players granted this datum
var/nukeop_outfit = /datum/outfit/syndicate
preview_outfit = /datum/outfit/nuclear_operative_elite
@@ -40,13 +44,12 @@
if(!nukeop_outfit) // this variable is null in instances where an antagonist datum is granted via enslaving the mind (/datum/mind/proc/enslave_mind_to_creator), like in golems.
return
// SKYRAT EDIT START
//operative.set_species(/datum/species/human) //Plasmamen burn up otherwise, and besides, all other species are vulnerable to asimov AIs. Let's standardize all operatives being human.
if(isplasmaman(operative))
operative.equipOutfit(/datum/outfit/plasmaman) // they lose the turtleneck but that's fine
// SKYRAT EDIT END
// If our nuke_ops_species pref is set to TRUE, (or we have no client) make us a human
if(isnull(operative.client) || operative.client.prefs.read_preference(/datum/preference/toggle/nuke_ops_species))
operative.set_species(/datum/species/human)
operative.equip_species_outfit(nukeop_outfit)
operative.equipOutfit(nukeop_outfit)
return TRUE
/datum/antagonist/nukeop/greet()
@@ -243,7 +246,9 @@
name = "Nuclear Operative Leader"
nukeop_outfit = /datum/outfit/syndicate/leader
always_new_team = TRUE
/// Randomly chosen honorific, for distinction
var/title
/// The nuclear challenge remote we will spawn this player with.
var/challengeitem = /obj/item/nuclear_challenge
/datum/antagonist/nukeop/leader/memorize_code()
@@ -13,18 +13,33 @@
skillchips = list(/obj/item/skillchip/disk_verifier)
box = /obj/item/storage/box/survival/syndie
/// Amount of TC to automatically store in this outfit's uplink.
var/tc = 25
/// Enables big voice on this outfit's headset, used for nukie leaders.
var/command_radio = FALSE
/// The type of uplink to be given on equip.
var/uplink_type = /obj/item/uplink/nuclear
id_trim = /datum/id_trim/chameleon/operative
/datum/outfit/syndicate/plasmaman
name = "Syndicate Operative - Basic (Plasmaman)"
head = /obj/item/clothing/head/helmet/space/plasmaman/syndie
uniform = /obj/item/clothing/under/plasmaman/syndicate
r_hand = /obj/item/tank/internals/plasmaman/belt/full
/datum/outfit/syndicate/leader
name = "Syndicate Leader - Basic"
command_radio = TRUE
id_trim = /datum/id_trim/chameleon/operative/nuke_leader
/datum/outfit/syndicate/leader/plasmaman
name = "Syndicate Leader - Basic (Plasmaman)"
head = /obj/item/clothing/head/helmet/space/plasmaman/syndie
uniform = /obj/item/clothing/under/plasmaman/syndicate
r_hand = /obj/item/tank/internals/plasmaman/belt/full
/datum/outfit/syndicate/post_equip(mob/living/carbon/human/nukie, visualsOnly = FALSE)
if(visualsOnly)
return
@@ -64,6 +79,17 @@
/obj/item/pen/edagger = 1,
)
/datum/outfit/syndicate/full/plasmaman
name = "Syndicate Operative - Full Kit (Plasmaman)"
back = /obj/item/mod/control/pre_equipped/nuclear/plasmaman
uniform = /obj/item/clothing/under/plasmaman/syndicate
r_pocket = /obj/item/tank/internals/plasmaman/belt/full
mask = null
/datum/outfit/syndicate/full/plasmaman/New()
backpack_contents += /obj/item/clothing/head/helmet/space/plasmaman/syndie
return ..()
/datum/outfit/syndicate/reinforcement
name = "Syndicate Operative - Reinforcement"
tc = 0
@@ -80,6 +106,13 @@
to_chat(H, span_notice("You're an agent of [faction], sent to accompany the nuclear squad on their mission. \
Support your allies, and remember: Down with Nanotrasen."))
/datum/outfit/syndicate/reinforcement/plasmaman
name = "Syndicate Operative - Reinforcement (Plasmaman)"
head = /obj/item/clothing/head/helmet/space/plasmaman/syndie
uniform = /obj/item/clothing/under/plasmaman/syndicate
r_hand = /obj/item/tank/internals/plasmaman/belt/full
tc = 0
/datum/outfit/syndicate/reinforcement/gorlex
name = "Syndicate Operative - Gorlex Reinforcement"
suit = /obj/item/clothing/suit/armor/vest/alt