functional

This commit is contained in:
datlo
2019-01-06 21:51:22 +00:00
parent 7dd9580adf
commit d66b8d9f20
9 changed files with 252 additions and 75 deletions
@@ -19,7 +19,7 @@
var/checking = FALSE
var/TC_cost = 0
var/borg_to_spawn
var/list/possible_types = list("Assault", "Medical")
var/list/possible_types = list("Assault", "Medical", "Saboteur")
/obj/item/antag_spawner/borg_tele/attack_self(mob/user)
if(used)
@@ -57,6 +57,8 @@
switch(borg_to_spawn)
if("Medical")
R = new /mob/living/silicon/robot/syndicate/medical(T)
else if("Saboteur")
R = new /mob/living/silicon/robot/syndicate/saboteur(T)
else
R = new /mob/living/silicon/robot/syndicate(T) //Assault borg by default
R.key = C.key
@@ -1293,61 +1293,6 @@ var/list/robot_verbs_default = list(
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
/mob/living/silicon/robot/syndicate
base_icon = "syndie_bloodhound"
icon_state = "syndie_bloodhound"
lawupdate = 0
scrambledcodes = 1
pdahide = 1
faction = list("syndicate")
designation = "Syndicate Assault"
modtype = "Syndicate"
req_access = list(access_syndicate)
ionpulse = 1
magpulse = 1
lawchannel = "State"
var/playstyle_string = "<span class='userdanger'>You are a Syndicate assault cyborg!</span><br>\
<b>You are armed with powerful offensive tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \
<i>Help the operatives secure the disk at all costs!</i></b>"
/mob/living/silicon/robot/syndicate/New(loc)
..()
cell.maxcharge = 25000
cell.charge = 25000
/mob/living/silicon/robot/syndicate/init()
laws = new /datum/ai_laws/syndicate_override
module = new /obj/item/robot_module/syndicate(src)
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
radio = new /obj/item/radio/borg/syndicate(src)
radio.recalculateChannels()
spawn(5)
if(playstyle_string)
to_chat(src, playstyle_string)
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
/mob/living/silicon/robot/syndicate/medical
base_icon = "syndi-medi"
icon_state = "syndi-medi"
modtype = "Syndicate Medical"
designation = "Syndicate Medical"
playstyle_string = "<span class='userdanger'>You are a Syndicate medical cyborg!</span><br>\
<b>You are armed with powerful medical tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your hypospray will produce Restorative Nanites, a wonder-drug that will heal most types of bodily damages, including clone and brain damage. It also produces morphine for offense. \
Your defibrillator paddles can revive operatives through their hardsuits, or can be used on harm intent to shock enemies! \
Your energy saw functions as a circular saw, but can be activated to deal more damage, and your operative pinpointer will find and locate fellow nuclear operatives. \
<i>Help the operatives secure the disk at all costs!</i></b>"
/mob/living/silicon/robot/syndicate/medical/init()
..()
module = new /obj/item/robot_module/syndicate_medical(src)
/mob/living/silicon/robot/combat
base_icon = "droidcombat"
icon_state = "droidcombat"
@@ -433,12 +433,9 @@
fix_modules()
/obj/item/robot_module/syndicate_saboteur
name = "syndicate saboteur module"
name = "engineering robot module" //to disguise in examine
module_type = "Malf"
module_actions = list(
/datum/action/innate/robot_sight/meson,
/datum/action/innate/robot_sight/thermal,
)
stacktypes = list(
/obj/item/stack/sheet/metal/cyborg = 50,
/obj/item/stack/sheet/glass/cyborg = 50,
@@ -450,20 +447,22 @@
/obj/item/robot_module/syndicate_saboteur/New()
..()
modules += new /obj/item/assembly/flash/cyborg(src)
modules += new /obj/item/construction/rcd/borg/syndicate(src)
modules += new /obj/item/pipe_dispenser(src)
modules += new /obj/item/rcd/borg/syndicate(src)
modules += new /obj/item/rpd(src)
modules += new /obj/item/extinguisher(src)
modules += new /obj/item/weldingtool/largetank/cyborg(src)
modules += new /obj/item/screwdriver/nuke(src)
modules += new /obj/item/screwdriver/cyborg(src)
modules += new /obj/item/wrench/cyborg(src)
modules += new /obj/item/crowbar/cyborg(src)
modules += new /obj/item/wirecutters/cyborg(src)
modules += new /obj/item/multitool/cyborg(src)
modules += new /obj/item/destTagger/borg(src)
modules += new /obj/item/stack/cable_coil/cyborg(src)
modules += new /obj/item/pinpointer/operative(src)
modules += new /obj/item/t_scanner(src)
modules += new /obj/item/analyzer(src)
modules += new /obj/item/gripper(src)
modules += new /obj/item/melee/energy/sword/cyborg(src)
modules += new /obj/item/card/emag(src)
modules += new /obj/item/borg_chameleon(src)
modules += new /obj/item/pinpointer/operative(src)
emag = null
for(var/T in stacktypes)
@@ -0,0 +1,129 @@
/mob/living/silicon/robot/syndicate
base_icon = "syndie_bloodhound"
icon_state = "syndie_bloodhound"
lawupdate = 0
scrambledcodes = 1
pdahide = 1
faction = list("syndicate")
designation = "Syndicate Assault"
modtype = "Syndicate"
req_access = list(access_syndicate)
ionpulse = 1
magpulse = 1
lawchannel = "State"
var/playstyle_string = "<span class='userdanger'>You are a Syndicate assault cyborg!</span><br>\
<b>You are armed with powerful offensive tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your cyborg LMG will slowly produce ammunition from your power supply, and your operative pinpointer will find and locate fellow nuclear operatives. \
<i>Help the operatives secure the disk at all costs!</i></b>"
/mob/living/silicon/robot/syndicate/New(loc)
..()
cell.maxcharge = 25000
cell.charge = 25000
/mob/living/silicon/robot/syndicate/init()
laws = new /datum/ai_laws/syndicate_override
module = new /obj/item/robot_module/syndicate(src)
aiCamera = new/obj/item/camera/siliconcam/robot_camera(src)
radio = new /obj/item/radio/borg/syndicate(src)
radio.recalculateChannels()
spawn(5)
if(playstyle_string)
to_chat(src, playstyle_string)
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
/mob/living/silicon/robot/syndicate/medical
base_icon = "syndi-medi"
icon_state = "syndi-medi"
modtype = "Syndicate Medical"
designation = "Syndicate Medical"
playstyle_string = "<span class='userdanger'>You are a Syndicate medical cyborg!</span><br>\
<b>You are armed with powerful medical tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your hypospray will produce Restorative Nanites, a wonder-drug that will heal most types of bodily damages, including clone and brain damage. It also produces morphine for offense. \
Your defibrillator paddles can revive operatives through their hardsuits, or can be used on harm intent to shock enemies! \
Your energy saw functions as a circular saw, but can be activated to deal more damage, and your operative pinpointer will find and locate fellow nuclear operatives. \
<i>Help the operatives secure the disk at all costs!</i></b>"
/mob/living/silicon/robot/syndicate/medical/init()
..()
module = new /obj/item/robot_module/syndicate_medical(src)
/mob/living/silicon/robot/syndicate/saboteur
base_icon = "syndi-engi"
icon_state = "syndi-engi"
modtype = "Syndicate Saboteur"
designation = "Syndicate Saboteur"
var/mail_destination = 0
var/obj/item/borg_chameleon/active_proj = null
playstyle_string = "<span class='userdanger'>You are a Syndicate saboteur cyborg!</span><br>\
<b>You are equipped with robust engineering tools to aid you in your mission: help the operatives secure the nuclear authentication disk. \
Your destination tagger will allow you to stealthily traverse the disposal network across the station \
Your cyborg chameleon projector allows you to assume the appearance of a Nanotrasen engineering cyborg, and undertake covert actions on the station. \
You are able to hijack Nanotrasen cyborgs by emagging their internal components, make sure to flash them first. \
You are armed with a standard energy sword, use it to ambush key targets if needed.\
Be aware that taking damage or being touched will break your disguise. \
<i>Help the operatives secure the disk at all costs!</i></b>"
/mob/living/silicon/robot/syndicate/saboteur/init()
..()
module = new /obj/item/robot_module/syndicate_saboteur(src)
/mob/living/silicon/robot/verb/modify_name()
set name = "Modify name"
set category = "Saboteur"
rename_self(braintype, 1)
/mob/living/silicon/robot/syndicate/saboteur/verb/set_mail_tag()
set name = "Set mail tag"
set desc = "Tag yourself for delivery through the disposals system."
set category = "Saboteur"
var/tag = input("Select the desired destination.", "Set Mail Tag", null) as null|anything in GLOB.TAGGERLOCATIONS
if(!tag || GLOB.TAGGERLOCATIONS[tag])
mail_destination = 0
return
to_chat(src, "<span class='notice'>You configure your internal beacon, tagging yourself for delivery to '[tag]'.</span>")
mail_destination = GLOB.TAGGERLOCATIONS.Find(tag)
//Auto flush if we use this verb inside a disposal chute.
var/obj/machinery/disposal/D = src.loc
if(istype(D))
to_chat(src, "<span class='notice'>\The [D] acknowledges your signal.</span>")
D.flush_count = D.flush_every_ticks
return
/mob/living/silicon/robot/syndicate/saboteur/attackby()
if(active_proj)
active_proj.disrupt(src)
..()
/mob/living/silicon/robot/syndicate/saboteur/attack_hand()
if(active_proj)
active_proj.disrupt(src)
..()
/mob/living/silicon/robot/syndicate/saboteur/ex_act()
if(active_proj)
active_proj.disrupt(src)
..()
/mob/living/silicon/robot/syndicate/saboteur/emp_act()
if(active_proj)
active_proj.disrupt(src)
..()
/mob/living/silicon/robot/syndicate/saboteur/bullet_act()
if(active_proj)
active_proj.disrupt(src)
..()
/mob/living/silicon/robot/syndicate/saboteur/attackby()
if(active_proj)
active_proj.disrupt(src)
..()