/datum/technomancer/assistance
var/one_use_only = 0
/datum/technomancer/assistance/apprentice
name = "Friendly Apprentice"
desc = "A one-time use teleporter that sends a less powerful manipulator of space to you, who will do their best to protect \
and serve you. They get their own catalog and can buy spells for themselves, however they have a smaller pool to buy with. \
If you are unable to receive an apprentice, the teleporter can be refunded like most equipment by sliding it into the \
catalog. Note that apprentices cannot purchase more apprentices."
cost = 300
obj_path = /obj/item/weapon/antag_spawner/technomancer_apprentice
/obj/item/weapon/antag_spawner
w_class = ITEMSIZE_TINY
var/used = 0
/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T)
return
/obj/item/weapon/antag_spawner/proc/equip_antag(mob/target)
return
/obj/item/weapon/antag_spawner/technomancer_apprentice
name = "apprentice teleporter"
desc = "A teleportation device, which will bring a less potent manipulator of space to you."
icon = 'icons/obj/objects.dmi'
icon_state = "oldshieldoff"
var/searching = 0
var/datum/effect/effect/system/spark_spread/sparks
/obj/item/weapon/antag_spawner/technomancer_apprentice/New()
..()
sparks = PoolOrNew(/datum/effect/effect/system/spark_spread)
sparks.set_up(5, 0, src)
sparks.attach(loc)
/obj/item/weapon/antag_spawner/technomancer_apprentice/Destroy()
qdel(sparks)
..()
/obj/item/weapon/antag_spawner/technomancer_apprentice/attack_self(mob/user)
user << "Teleporter attempting to lock on to your apprentice."
searching = 1
icon_state = "oldshieldon"
for(var/mob/observer/dead/O in player_list)
if(!O.MayRespawn())
continue
if(jobban_isbanned(O, "Syndicate") || jobban_isbanned(O, "wizard"))
continue
if(O.client)
if(O.client.prefs.be_special & BE_WIZARD)
question(O.client)
spawn(1 MINUTE)
searching = 0
if(!used)
icon_state = "oldshieldoff"
user << "The teleporter failed to find your apprentice. Perhaps you could try again later?"
/obj/item/weapon/antag_spawner/technomancer_apprentice/proc/question(var/client/C)
spawn(0)
if(!C)
return
var/response = alert(C, "Someone is requesting a Technomancer apprentice Would you like to play as one?",
"Apprentice request","Yes", "No")
if(response == "Yes")
response = alert(C, "Are you sure you want to play as an apprentice?", "Apprentice request", "Yes", "No")
if(!C || used || !searching)
return
if(response == "Yes")
spawn_antag(C, get_turf(src))
/obj/item/weapon/antag_spawner/technomancer_apprentice/spawn_antag(client/C, turf/T)
sparks.start()
var/mob/living/carbon/human/H = new/mob/living/carbon/human(T)
C.prefs.copy_to(H)
H.key = C.key
H << "You are the Technomancer's apprentice! Your goal is to assist them in their mission at the [station_name()]."
H << "Your service has not gone unrewarded, however. Studying under them, you have learned how to use a Manipulation Core \
of your own. You also have a catalog, to purchase your own functions and equipment as you see fit."
H << "It would be wise to speak to your master, and learn what their plans are for today."
spawn(1)
technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
equip_antag(H)
used = 1
qdel(src)
/obj/item/weapon/antag_spawner/technomancer_apprentice/equip_antag(mob/technomancer_mob)
var/datum/antagonist/technomancer/antag_datum = all_antag_types[MODE_TECHNOMANCER]
antag_datum.equip_apprentice(technomancer_mob)
/*
// For when no one wants to play support.
/datum/technomancer/assistance/golem
name = "Friendly GOLEM unit"
desc = "Teleports a specially designed synthetic unit to you, which is very durable, has an advanced AI, and can also use \
functions. It knows Shield, Targeted Blink, Beam, Flame Tongue, Mend Wounds, and Mend Burns. It also has a large storage \
capacity for energy, and due to it's synthetic nature, instability is less of an issue for them."
cost = 350
obj_path = null //TODO
one_use_only = 1
/datum/technomancer/assistance/ninja
name = "Neutral Cyberassassin"
desc = "Someone almost as enigmatic as you will also arrive at your destination, with their own goals and motivations. \
This could prove to be a problem if they decide to go against you, so this is only recommended as a challenge."
cost = 100
obj_path = null //TODO
one_use_only = 1
// Hardmode.
/datum/technomancer/assistance/enemy_technomancer
name = "Enemy Technomancer"
desc = "Another manipulator of space will arrive on the colony in addition to you, most likely wanting to oppose you in \
some form, if you purchase this. This is only recommended as a challenge."
cost = 100
obj_path = null //TODO
one_use_only = 1
*/