From 65aa5ec4f02f01da3f215d48632fa93a51c5b5fd Mon Sep 17 00:00:00 2001 From: Alberyk Date: Sat, 19 Nov 2016 14:55:21 -0200 Subject: [PATCH] Syndicate borg spawner upgrade (#11) This time using the ghost trap system from bay, this may not work, but it is clearing some errors related to those dm in particular. --- code/game/gamemodes/antagspawner.dm | 46 ++++++++--------------------- code/modules/ghosttrap/trap.dm | 11 +++++++ 2 files changed, 23 insertions(+), 34 deletions(-) diff --git a/code/game/gamemodes/antagspawner.dm b/code/game/gamemodes/antagspawner.dm index 384234d9ad8..e2e2d75dcf7 100644 --- a/code/game/gamemodes/antagspawner.dm +++ b/code/game/gamemodes/antagspawner.dm @@ -19,51 +19,29 @@ return /obj/item/weapon/antag_spawner/borg_tele - name = "Syndicate Cyborg Teleporter" + name = "syndicate cyborg teleporter" desc = "A single-use teleporter used to deploy a Syndicate Cyborg on the field. Due to budget restrictions, it is only possible to deploy a single cyborg at time." icon = 'icons/obj/device.dmi' icon_state = "locator" var/searching = 0 var/askDelay = 10 * 60 * 1 -/obj/item/weapon/antag_spawner/borg_tele/attack_self(mob/user) - user << "The syndicate robot teleporter is attempting to locate an available cyborg." - searching = 1 - for(var/mob/dead/observer/O in player_list) - if(!O.MayRespawn()) - continue - if(jobban_isbanned(O, "Syndicate") && jobban_isbanned(O, "Mercenary") && jobban_isbanned(O, "Cyborg")) - continue - if(O.client) - if(O.client.prefs.be_special & BE_OPERATIVE) - question(O.client) - spawn(600) - searching = 0 - if(!used) - user << "Unable to connect to the Syndicate Command. Perhaps you could try again later?" +/obj/item/weapon/antag_spawner/borg_tele/attack_self(mob/user as mob) + if(searching == 0) + //Start the process of searching for a new user. + user << "You carefully locate the manual activation switch and start the positronic brain's boot process." + src.searching = 1 + var/datum/ghosttrap/G = get_ghost_trap("syndicate cyborg") + G.request_player(brainmob, "Someone is requesting a syndicate cyborg.", 60 SECONDS) + spawn_antag(G, get_turf(src)) + spawn(600) reset_search() - -/obj/item/weapon/antag_spawner/borg_tele/proc/question(var/client/C) - spawn(0) - if(!C) - return - var/response = alert(C, "Someone is requesting a syndicate cyborg Would you like to play as one?", - "Syndicate robot request","Yes", "No", "Never for this round") - if(response == "Yes") - response = alert(C, "Are you sure you want to play as a syndicate cyborg?", "Syndicate cyborg request", "Yes", "No") - if(!C || used || !searching) - return - if(response == "Yes") - spawn_antag(C, get_turf(src)) - else if (response == "Never for this round") - C.prefs.be_special ^= BE_OPERATIVE - -obj/item/weapon/antag_spawner/borg_tele/spawn_antag(client/C, turf/T) +obj/item/weapon/antag_spawner/borg_tele/spawn_antag(client/G, turf/T) var/datum/effect/effect/system/spark_spread/S = new /datum/effect/effect/system/spark_spread S.set_up(4, 1, src) S.start() var/mob/living/silicon/robot/H = new /mob/living/silicon/robot/syndicate(T) - H.key = C.key + H.key = G.key var/newname = sanitizeSafe(input(H,"Enter a name, or leave blank for the default name.", "Name change","") as text, MAX_NAME_LEN) if (newname != "") H.real_name = newname diff --git a/code/modules/ghosttrap/trap.dm b/code/modules/ghosttrap/trap.dm index 0821a637fcd..7cae383b78d 100644 --- a/code/modules/ghosttrap/trap.dm +++ b/code/modules/ghosttrap/trap.dm @@ -186,3 +186,14 @@ datum/ghosttrap/drone/transfer_personality(var/mob/candidate, var/mob/living/sil if(!assess_candidate(candidate)) return 0 drone.transfer_personality(candidate.client) + +/*********************************** +* Syndicate Cyborg * +***********************************/ +/datum/ghosttrap/syndicateborg + object = "syndicate cyborg" + ban_checks = list("Syndicate","AI","Cyborg") + pref_check = "BE_SYNTH" + ghost_trap_message = "They are occupying a syndicate cyborg now." + ghost_trap_role = "Syndicate Cyborg" + can_set_own_name = TRUE