mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Merge pull request #12057 from Xhuis/it_worked_in_testing_3
Fixes and tweaks to Syndicate medical cyborgs
This commit is contained in:
@@ -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 << "<span class='warning'>[src] is out of power!</span>"
|
||||
return
|
||||
if(!(user.mind in ticker.mode.syndicates))
|
||||
user << "<span class='danger'>AUTHENTICATION FAILURE. ACCESS DENIED.</span>"
|
||||
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 << "<span class='notice'>Unable to connect to Syndicate Command. Please wait and try again later or use the teleporter on your uplink to get your points refunded.</span>"
|
||||
user << "<span class='warning'>Unable to connect to Syndicate command. Please wait and try again later or use the teleporter on your uplink to get your points refunded.</span>"
|
||||
|
||||
/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
|
||||
|
||||
@@ -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 << "<span class='danger'>AUTHENTICATION FAILURE. ACCESS DENIED.</span>"
|
||||
return 0
|
||||
if(!active)
|
||||
active = 1
|
||||
workop()
|
||||
@@ -263,20 +266,27 @@
|
||||
usr << "<span class='notice'>You deactivate the pinpointer.</span>"
|
||||
|
||||
/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: <b>[nearest_op]</b>."
|
||||
if(nearest_op == null && active)
|
||||
user << "No operatives detected within scanning range."
|
||||
if(active)
|
||||
if(nearest_op)
|
||||
user << "Nearest operative detected is <i>[nearest_op.real_name].</i>"
|
||||
else
|
||||
user << "No operatives detected within scanning range."
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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))
|
||||
|
||||
+2
-1
@@ -94,4 +94,5 @@ bear1ake = Game Master
|
||||
CoreOverload = Game Master
|
||||
Jalleo = Game Master
|
||||
Anonus Tanir = Game Master
|
||||
FoxPMcCloud = Game Master
|
||||
FoxPMcCloud = Game Master
|
||||
Xhuis = Game Master
|
||||
@@ -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."
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Reference in New Issue
Block a user