Merge pull request #2254 from Markolie/swordnborg

Syndicate borg update, add medical syndicate borg, energy sword refactor
This commit is contained in:
TheDZD
2015-10-02 15:49:57 -04:00
40 changed files with 565 additions and 519 deletions
+18
View File
@@ -1040,3 +1040,21 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
result_amount = 3
min_temp = 370
mix_message = "The solution gently swirls with a metallic sheen."
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. 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(-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
@@ -22,6 +22,14 @@
/obj/item/weapon/reagent_containers/borghypo/crisis
reagent_ids = list("salglu_solution", "epinephrine", "sal_acid")
/obj/item/weapon/reagent_containers/borghypo/syndicate
name = "syndicate cyborg hypospray"
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
reagent_ids = list("syndicate_nanites", "potass_iodide", "ether")
/obj/item/weapon/reagent_containers/borghypo/New()
..()
@@ -92,7 +100,7 @@
charge_tick = 0 //Prevents wasted chems/cell charge if you're cycling through modes.
var/datum/reagent/R = chemical_reagents_list[reagent_ids[mode]]
user << "\blue Synthesizer is now producing '[R.name]'."
user << "<span class='notice'>Synthesizer is now producing '[R.name]'.</span>"
return
/obj/item/weapon/reagent_containers/borghypo/examine(mob/user)
@@ -104,8 +112,8 @@
for(var/datum/reagents/RS in reagent_list)
var/datum/reagent/R = locate() in RS.reagent_list
if(R)
user << "\blue It currently has [R.volume] units of [R.name] stored."
user << "<span class='notice'>It currently has [R.volume] units of [R.name] stored.</span>"
empty = 0
if(empty)
user << "\blue It is currently empty. Allow some time for the internal syntheszier to produce more."
user << "<span class='notice'>It is currently empty. Allow some time for the internal syntheszier to produce more.</span>"
@@ -184,7 +184,7 @@
)
else if( \
istype(W, /obj/item/weapon/circular_saw) || \
istype(W, /obj/item/weapon/melee/energy/sword) && W:active || \
istype(W, /obj/item/weapon/melee/energy/sword/saber) && W:active || \
istype(W, /obj/item/weapon/melee/energy/blade) || \
istype(W, /obj/item/weapon/shovel) || \
istype(W, /obj/item/weapon/hatchet) \
-66
View File
@@ -1,66 +0,0 @@
/obj/item/weapon/gun/syringe
name = "syringe gun"
desc = "A spring loaded rifle designed to fit syringes, used to incapacitate unruly patients from a distance."
icon_state = "syringegun"
item_state = "syringegun"
w_class = 3
throw_speed = 2
throw_range = 10
force = 4
materials = list(MAT_METAL=2000)
clumsy_check = 0
fire_sound = 'sound/items/syringeproj.ogg'
var/list/syringes = list()
var/max_syringes = 1
/obj/item/weapon/gun/syringe/process_chambered()
if(!syringes.len) return 0
var/obj/item/weapon/reagent_containers/syringe/S = syringes[1]
if(!S) return 0
in_chamber = new /obj/item/projectile/bullet/dart/syringe(src)
S.reagents.trans_to(in_chamber, S.reagents.total_volume)
in_chamber.name = S.name
syringes.Remove(S)
qdel(S)
return 1
/obj/item/weapon/gun/syringe/examine(mob/user)
..(user)
user << "Can hold [max_syringes] syringe\s. Has [syringes.len] syringe\s remaining."
/obj/item/weapon/gun/syringe/attack_self(mob/living/user as mob)
if(!syringes.len)
user << "<span class='notice'>[src] is empty.</span>"
return 0
var/obj/item/weapon/reagent_containers/syringe/S = syringes[syringes.len]
if(!S) return 0
S.loc = user.loc
syringes.Remove(S)
user << "<span class = 'notice'>You unload [S] from \the [src]!</span>"
return 1
/obj/item/weapon/gun/syringe/attackby(var/obj/item/A as obj, mob/user as mob, var/show_msg = 1, params)
if(istype(A, /obj/item/weapon/reagent_containers/syringe))
if(syringes.len < max_syringes)
user.drop_item()
user << "<span class='notice'>You load [A] into \the [src]!</span>"
syringes.Add(A)
A.loc = src
return 1
else
usr << "<span class='notice'>[src] cannot hold more syringes.</span>"
return 0
/obj/item/weapon/gun/syringe/rapidsyringe
name = "rapid syringe gun"
desc = "A modification of the syringe gun design, using a rotating cylinder to store up to six syringes."
icon_state = "rapidsyringegun"
max_syringes = 6