diff --git a/code/game/gamemodes/antag_spawner.dm b/code/game/gamemodes/antag_spawner.dm index 99541008be4..835898e450d 100644 --- a/code/game/gamemodes/antag_spawner.dm +++ b/code/game/gamemodes/antag_spawner.dm @@ -121,7 +121,7 @@ /obj/item/weapon/antag_spawner/borg_tele name = "syndicate cyborg teleporter" - desc = "A single-use teleporter used to deploy a Syndicate cyborg on the field." + desc = "A single-use teleporter designed to deploy a single Syndicate cyborg onto the field." icon = 'icons/obj/device.dmi' icon_state = "locator" var/TC_cost = 0 @@ -130,8 +130,11 @@ /obj/item/weapon/antag_spawner/borg_tele/attack_self(mob/user) if(used) - user << "The teleporter is out of power." + user << "[src] is out of power!" return + if(!(user.mind in ticker.mode.syndicates)) + user << "AUTHENTICATION FAILURE. ACCESS DENIED." + return 0 borg_to_spawn = input("What type?", "Cyborg Type", type) as null|anything in possible_types if(!borg_to_spawn) return @@ -141,7 +144,7 @@ var/client/C = pick(borg_candicates) spawn_antag(C, get_turf(src.loc), "syndieborg") else - user << "Unable to connect to Syndicate Command. Please wait and try again later or use the teleporter on your uplink to get your points refunded." + user << "Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded." /obj/item/weapon/antag_spawner/borg_tele/spawn_antag(client/C, turf/T, type = "") if(!borg_to_spawn) //If there's no type at all, let it still be used but don't do anything diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index e3ce3bf5ea1..8e8f6c54f16 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -253,6 +253,9 @@ var/mob/living/carbon/nearest_op = null /obj/item/weapon/pinpointer/operative/attack_self() + if(!usr.mind || !(usr.mind in ticker.mode.syndicates)) + usr << "AUTHENTICATION FAILURE. ACCESS DENIED." + return 0 if(!active) active = 1 workop() @@ -263,20 +266,27 @@ usr << "You deactivate the pinpointer." /obj/item/weapon/pinpointer/operative/proc/scan_for_ops() - if(!nearest_op) + if(active) + nearest_op = null //Resets nearest_op every time it scans + var/closest_distance = 1000 for(var/mob/living/carbon/M in mob_list) - if(M.mind in ticker.mode.syndicates) - nearest_op = M + if(M.mind && (M.mind in ticker.mode.syndicates)) + if(get_dist(M, get_turf(src)) < closest_distance) //Actually points toward the nearest op, instead of a random one like it used to + nearest_op = M /obj/item/weapon/pinpointer/operative/proc/workop() - scan_for_ops() - point_at(nearest_op, 0) - spawn(5) - .() + if(active) + scan_for_ops() + point_at(nearest_op, 0) + spawn(5) + .() + else + return 0 /obj/item/weapon/pinpointer/operative/examine(mob/user) ..() - if(nearest_op != null) - user << "Nearest operative: [nearest_op]." - if(nearest_op == null && active) - user << "No operatives detected within scanning range." + if(active) + if(nearest_op) + user << "Nearest operative detected is [nearest_op.real_name]." + else + user << "No operatives detected within scanning range." diff --git a/code/game/objects/items/weapons/melee/energy.dm b/code/game/objects/items/weapons/melee/energy.dm index 4ed579e1a7f..e22e919cd55 100644 --- a/code/game/objects/items/weapons/melee/energy.dm +++ b/code/game/objects/items/weapons/melee/energy.dm @@ -112,7 +112,7 @@ /obj/item/weapon/melee/energy/sword/cyborg/saw //Used by medical Syndicate cyborgs name = "energy saw" - desc = "For heavy duty cutting. It has a carbon-fiber blade and an energy capacitor that can be toggled to make it more powerful." + desc = "For heavy duty cutting. It has a carbon-fiber blade in addition to a toggleable hard-light edge to dramatically increase sharpness." icon_state = "esaw" force_on = 30 force = 18 //About as much as a spear @@ -121,13 +121,14 @@ icon = 'icons/obj/surgery.dmi' icon_state = "esaw_0" icon_state_on = "esaw_1" - hitcost = 75 //Costs more because it's not intended to be a murderbone weapon + hitcost = 75 //Costs more than a standard cyborg esword item_color = null w_class = 3 sharpness = IS_SHARP /obj/item/weapon/melee/energy/sword/cyborg/saw/New() ..() + icon_state = "esaw_0" item_color = null /obj/item/weapon/melee/energy/sword/cyborg/saw/IsShield() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index ec9463d0f27..905052b3ef0 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1128,6 +1128,9 @@ radio = new /obj/item/device/radio/borg/syndicate(src) module = new /obj/item/weapon/robot_module/syndicate(src) laws = new /datum/ai_laws/syndicate_override() + spawn(5) + if(playstyle_string) + src << playstyle_string /mob/living/silicon/robot/syndicate/medical icon_state = "syndi-medi" @@ -1142,9 +1145,6 @@ /mob/living/silicon/robot/syndicate/medical/New(loc) ..() module = new /obj/item/weapon/robot_module/syndicate_medical(src) - spawn(5) - if(playstyle_string) - src << playstyle_string /mob/living/silicon/robot/proc/notify_ai(notifytype, oldname, newname) if(!connected_ai) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 13b6c061b55..ba4bd4c205e 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -324,7 +324,6 @@ modules += new /obj/item/weapon/reagent_containers/borghypo/syndicate(src) modules += new /obj/item/weapon/twohanded/shockpaddles/syndicate(src) modules += new /obj/item/device/healthanalyzer(src) - modules += new /obj/item/weapon/reagent_containers/syringe(src) modules += new /obj/item/weapon/surgical_drapes(src) modules += new /obj/item/weapon/retractor(src) modules += new /obj/item/weapon/hemostat(src) @@ -332,6 +331,7 @@ modules += new /obj/item/weapon/scalpel(src) modules += new /obj/item/weapon/melee/energy/sword/cyborg/saw(src) //Energy saw -- primary weapon modules += new /obj/item/roller/robo(src) + modules += new /obj/item/weapon/card/emag(src) modules += new /obj/item/weapon/tank/jetpack/carbondioxide(src) modules += new /obj/item/weapon/crowbar(src) modules += new /obj/item/weapon/pinpointer/operative(src) diff --git a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm index 43c4effc01f..6253c02ff83 100644 --- a/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Medicine-Reagents.dm @@ -914,16 +914,16 @@ datum/reagent/medicine/tricordrazine/overdose_process(mob/living/M) datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs name = "Restorative Nanites" id = "syndicate_nanites" - description = "Miniature medical robots that swiftly restore bodily damage." + description = "Miniature medical robots that swiftly restore bodily damage. May begin to attack their host's cells in high amounts." reagent_state = SOLID color = "#555555" datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M) - M.adjustBruteLoss(-2*REM) - M.adjustFireLoss(-2*REM) - M.adjustOxyLoss(-2*REM) - M.adjustToxLoss(-2*REM) - M.adjustBrainLoss(-5*REM) - M.adjustCloneLoss(-1*REM) + M.adjustBruteLoss(-5*REM) //A ton of healing - this is a 50 telecrystal investment. + M.adjustFireLoss(-5*REM) + M.adjustOxyLoss(-15*REM) + M.adjustToxLoss(-5*REM) + M.adjustBrainLoss(-15*REM) + M.adjustCloneLoss(-3*REM) ..() return diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 51e5e9e8756..171aa224a3c 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -55,7 +55,7 @@ Borg Hypospray //update_icon() return 1 -// Purely for testing purposes I swear~ +// Purely for testing purposes I swear~ //don't lie to me /* /obj/item/weapon/reagent_containers/borghypo/verb/add_cyanide() set src in world @@ -128,7 +128,7 @@ Borg Hypospray /obj/item/weapon/reagent_containers/borghypo/syndicate name = "syndicate cyborg hypospray" - desc = "A modified hypospray that generates reagents more quickly and consumes less power." + desc = "An experimental piece of Syndicate technology used to produce powerful restorative nanites used to very quickly restore injuries of all types. Also metabolizes potassium iodide, for radiation poisoning, and morphine, for offense." icon_state = "borghypo_s" charge_cost = 20 recharge_time = 2 @@ -149,7 +149,7 @@ Borg Shaker reagent_ids = list("beer", "orangejuice", "limejuice", "tomatojuice", "cola", "tonic", "sodawater", "ice", "cream", "whiskey", "vodka", "rum", "gin", "tequila", "vermouth", "wine", "kahlua", "cognac", "ale") /obj/item/weapon/reagent_containers/borghypo/borgshaker/attack(mob/M, mob/user) - return //Can't inject stuff with a shaker, can we? + return //Can't inject stuff with a shaker, can we? //not with that attitude /obj/item/weapon/reagent_containers/borghypo/borgshaker/regenerate_reagents() if(isrobot(src.loc)) diff --git a/config/admins.txt b/config/admins.txt index b4a042557de..797a49de2bd 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -94,4 +94,5 @@ bear1ake = Game Master CoreOverload = Game Master Jalleo = Game Master Anonus Tanir = Game Master -FoxPMcCloud = Game Master \ No newline at end of file +FoxPMcCloud = Game Master +Xhuis = Game Master \ No newline at end of file diff --git a/html/changelogs/Xhuis-SyndiborgFixes.yml b/html/changelogs/Xhuis-SyndiborgFixes.yml new file mode 100644 index 00000000000..c17eefc4a9d --- /dev/null +++ b/html/changelogs/Xhuis-SyndiborgFixes.yml @@ -0,0 +1,13 @@ + +author: Xhuis + +delete-after: True + +changes: + - rscadd: "Syndicate Medical cyborgs now have cryptographic sequencers." + - rscdel: "Syndicate Medical cyborgs no longer have syringes." + - tweak: "Restorative Nanites now heal much more damage per type." + - bugfix: "Operative pinpointers now actually point toward the nearest operative." + - bugfix: "Syndicate Assault cyborgs no longer start with medical supplies." + - bugfix: "Energy saws now have a proper icon." + - bugfix: "Non-operatives can now longer use operative pinpointers or Syndicate cyborg teleporters." diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 8f4682ee343..1d8833ff21c 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ