mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
[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:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user