mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-21 12:08:55 +01:00
Re-implements reinforcement operative antag datum, adds support cyborg datums (#81795)
## About The Pull Request This adjusts the nukeop reinforcement spawners/reinforcement datums. There's a lot of very minor code touch-ups involved here, but I've tested it and it sure does feel like everything still works. Some unused or unneeded variables on the spawner item were axed. Now that the reinforcement datum is in use again, it also no longer needs to manipulate the datum to not use spawnpoints. There's a cyborg reinforcement datum too. Identical to the human reinforcement datum, but they're also now used in lieu of the (now removed) `borg_to_spawn` variable. By removing this variable and tightening some things up, the logic for generating the deadchat poll is a little bit smaller. I'm seriously running out of stuff to say about this PR. Can you tell that I'm procrastinating on other stuff? ## Why It's Good For The Game Some information provided to reinforcement candidates/players is more distinct. Puts an orphaned datum back into use, and cinches up some code attached to it. If someone wants to do more with reinforcements or support borgs, it'll be a bit easier for them. ## Changelog 🆑 Rhials code: Players now receive antag datums specific for reinforcements/support borgs. /🆑
This commit is contained in:
@@ -78,6 +78,9 @@
|
||||
#define ROLE_WIZARD_APPRENTICE "apprentice"
|
||||
#define ROLE_SYNDICATE_MONKEY "Syndicate Monkey Agent"
|
||||
#define ROLE_CONTRACTOR_SUPPORT "Contractor Support Unit"
|
||||
#define ROLE_SYNDICATE_SABOBORG "Syndicate Sabotage Cyborg"
|
||||
#define ROLE_SYNDICATE_MEDBORG "Syndicate Medical Cyborg"
|
||||
#define ROLE_SYNDICATE_ASSAULTBORG "Syndicate Assault Cyborg"
|
||||
|
||||
//Spawner roles
|
||||
#define ROLE_ANCIENT_CREW "Ancient Crew"
|
||||
|
||||
@@ -98,15 +98,12 @@
|
||||
desc = "MI13 designed one-use radio for calling immediate backup. Have no regards for safety of whom it summons - they are all inferior clones from Interdyne's genebanks anyway."
|
||||
icon = 'icons/obj/devices/voice.dmi'
|
||||
icon_state = "nukietalkie"
|
||||
var/borg_to_spawn
|
||||
/// The name of the special role given to the recruit
|
||||
var/special_role_name = ROLE_NUCLEAR_OPERATIVE
|
||||
/// The applied outfit
|
||||
var/datum/outfit/syndicate/outfit = /datum/outfit/syndicate/reinforcement
|
||||
/// 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
|
||||
var/datum/antagonist/nukeop/reinforcement/antag_datum = /datum/antagonist/nukeop/reinforcement
|
||||
/// Style used by the droppod
|
||||
var/pod_style = STYLE_SYNDICATE
|
||||
/// Do we use a random subtype of the outfit?
|
||||
@@ -133,7 +130,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, span_notice("You activate [src] and wait for confirmation."))
|
||||
var/mob/chosen_one = SSpolling.poll_ghost_candidates(check_jobban = ROLE_OPERATIVE, role = ROLE_OPERATIVE, poll_time = 15 SECONDS, ignore_category = POLL_IGNORE_SYNDICATE, alert_pic = src, role_name_text = "syndicate [borg_to_spawn ? "[borg_to_spawn] cyborg":"operative"]", amount_to_pick = 1)
|
||||
var/mob/chosen_one = SSpolling.poll_ghost_candidates("Do you want to play as a reinforcement [special_role_name]?", check_jobban = ROLE_OPERATIVE, role = ROLE_OPERATIVE, poll_time = 15 SECONDS, ignore_category = POLL_IGNORE_SYNDICATE, alert_pic = src, role_name_text = special_role_name, amount_to_pick = 1)
|
||||
if(chosen_one)
|
||||
if(QDELETED(src) || !check_usability(user))
|
||||
return
|
||||
@@ -156,7 +153,6 @@
|
||||
nukie.forceMove(locate(1,1,1))
|
||||
|
||||
antag_datum = new()
|
||||
antag_datum.send_to_spawnpoint = FALSE
|
||||
|
||||
antag_datum.nukeop_outfit = use_subtypes ? pick(subtypesof(outfit)) : outfit
|
||||
|
||||
@@ -182,18 +178,20 @@
|
||||
desc = "A single-use beacon designed to quickly launch reinforcement cyborgs into the field."
|
||||
icon = 'icons/obj/devices/remote.dmi'
|
||||
icon_state = "gangtool-red"
|
||||
antag_datum = /datum/antagonist/nukeop/reinforcement/cyborg
|
||||
special_role_name = "Syndicate Cyborg"
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele/assault
|
||||
name = "syndicate assault cyborg beacon"
|
||||
borg_to_spawn = "Assault"
|
||||
special_role_name = ROLE_SYNDICATE_ASSAULTBORG
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele/medical
|
||||
name = "syndicate medical beacon"
|
||||
borg_to_spawn = "Medical"
|
||||
special_role_name = ROLE_SYNDICATE_MEDBORG
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele/saboteur
|
||||
name = "syndicate saboteur beacon"
|
||||
borg_to_spawn = "Saboteur"
|
||||
special_role_name = ROLE_SYNDICATE_SABOBORG
|
||||
|
||||
/obj/item/antag_spawner/nuke_ops/borg_tele/spawn_antag(client/C, turf/T, kind, datum/mind/user)
|
||||
var/mob/living/silicon/robot/borg
|
||||
@@ -201,13 +199,15 @@
|
||||
if(!creator_op)
|
||||
return
|
||||
var/obj/structure/closet/supplypod/pod = setup_pod()
|
||||
switch(borg_to_spawn)
|
||||
if("Medical")
|
||||
switch(special_role_name)
|
||||
if(ROLE_SYNDICATE_MEDBORG)
|
||||
borg = new /mob/living/silicon/robot/model/syndicate/medical()
|
||||
if("Saboteur")
|
||||
if(ROLE_SYNDICATE_SABOBORG)
|
||||
borg = new /mob/living/silicon/robot/model/syndicate/saboteur()
|
||||
if(ROLE_SYNDICATE_ASSAULTBORG)
|
||||
borg = new /mob/living/silicon/robot/model/syndicate()
|
||||
else
|
||||
borg = new /mob/living/silicon/robot/model/syndicate() //Assault borg by default
|
||||
stack_trace("Unknown cyborg type '[special_role_name]' could not be found by [src]!")
|
||||
|
||||
var/brainfirstname = pick(GLOB.first_names_male)
|
||||
if(prob(50))
|
||||
@@ -225,10 +225,8 @@
|
||||
|
||||
borg.key = C.key
|
||||
|
||||
var/datum/antagonist/nukeop/new_borg = new()
|
||||
new_borg.send_to_spawnpoint = FALSE
|
||||
borg.mind.add_antag_datum(new_borg,creator_op.nuke_team)
|
||||
borg.mind.special_role = "Syndicate Cyborg"
|
||||
borg.mind.add_antag_datum(antag_datum, creator_op ? creator_op.get_team() : null)
|
||||
borg.mind.special_role = special_role_name
|
||||
borg.forceMove(pod)
|
||||
new /obj/effect/pod_landingzone(get_turf(src), pod)
|
||||
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
/datum/antagonist/nukeop/reinforcement
|
||||
name = "Nuclear Operative Reinforcement"
|
||||
show_in_antagpanel = FALSE
|
||||
send_to_spawnpoint = FALSE
|
||||
nukeop_outfit = /datum/outfit/syndicate/reinforcement
|
||||
|
||||
/datum/antagonist/nukeop/reinforcement/cyborg
|
||||
name = "Nuclear Operative Support Cyborg"
|
||||
|
||||
Reference in New Issue
Block a user