From 0fa445c1534d482d2df2578ae9319217e457a63f Mon Sep 17 00:00:00 2001 From: Fermi Date: Sun, 2 Jun 2019 03:24:01 +0100 Subject: [PATCH] Fixes and test. --- .../projectiles/ammunition/special/syringe.dm | 6 +- .../projectiles/guns/misc/syringe_gun.dm | 1 + .../projectile/bullets/dart_syringe.dm | 50 ++++++++++++- .../reagents/reagent_containers/syringes.dm | 70 ++++++++++++++---- icons/obj/dart.dmi | Bin 323 -> 903 bytes icons/obj/guns/projectile.dmi | Bin 36029 -> 36031 bytes 6 files changed, 108 insertions(+), 19 deletions(-) diff --git a/code/modules/projectiles/ammunition/special/syringe.dm b/code/modules/projectiles/ammunition/special/syringe.dm index 62a6e2e88e..331ad67837 100644 --- a/code/modules/projectiles/ammunition/special/syringe.dm +++ b/code/modules/projectiles/ammunition/special/syringe.dm @@ -61,8 +61,8 @@ ..() /obj/item/ammo_casing/syringegun/dart - name = "syringe gun spring" - desc = "A high-power spring that throws syringes." - projectile_type = /obj/item/projectile/bullet/dart/syringe + name = "dart gun air canister" + desc = "A small canister of compressed gas." + projectile_type = /obj/item/projectile/bullet/dart/syringe/dart firing_effect_type = null harmful = FALSE diff --git a/code/modules/projectiles/guns/misc/syringe_gun.dm b/code/modules/projectiles/guns/misc/syringe_gun.dm index 2e125f80b1..be9b2c2410 100644 --- a/code/modules/projectiles/guns/misc/syringe_gun.dm +++ b/code/modules/projectiles/guns/misc/syringe_gun.dm @@ -110,6 +110,7 @@ item_state = "dartgun" materials = list(MAT_METAL=2000, MAT_GLASS=500) suppressed = TRUE //Softer fire sound + can_unsuppress = FALSE /obj/item/gun/syringe/dart/Initialize() ..() diff --git a/code/modules/projectiles/projectile/bullets/dart_syringe.dm b/code/modules/projectiles/projectile/bullets/dart_syringe.dm index 023c3b9090..a94fa6f227 100644 --- a/code/modules/projectiles/projectile/bullets/dart_syringe.dm +++ b/code/modules/projectiles/projectile/bullets/dart_syringe.dm @@ -9,12 +9,14 @@ create_reagents(50) reagents.set_reacting(FALSE) -/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE) +/obj/item/projectile/bullet/dart/on_hit(atom/target, blocked = FALSE, skip = FALSE) if(iscarbon(target)) var/mob/living/carbon/M = target if(blocked != 100) // not completely blocked if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. ..() + if(skip == TRUE) + return reagents.reaction(M, INJECT) reagents.trans_to(M, reagents.total_volume) return TRUE @@ -37,3 +39,49 @@ /obj/item/projectile/bullet/dart/syringe name = "syringe" icon_state = "syringeproj" + +//I am in a mess of my own making +/obj/item/projectile/bullet/dart/syringe/dart + name = "Smartdart" + icon_state = "syringeproj" + damage = 0 + +/obj/item/projectile/bullet/dart/syringe/dart/on_hit(atom/target, blocked = FALSE) + message_admins("Dart landed!") + if(iscarbon(target)) + var/mob/living/carbon/M = target + if(blocked != 100) // not completely blocked + if(M.can_inject(null, FALSE, def_zone, piercing)) // Pass the hit zone to see if it can inject by whether it hit the head or the body. + ..(target, blocked, TRUE) + message_admins("Checking reagents") + for(var/datum/reagent/R in reagents.reagent_list) //OD prevention time! + message_admins("Reagent: [R]") + if(istype(R, /datum/reagent/medicine)) //Is this a medicine? + message_admins("Is a medicine") + if(M.reagents.has_reagent(R.id)) + message_admins("reagent found! with new") + var/datum/reagent/medicine/Rm = locate(R) in M + if(R.overdose_threshold == 0) //Is there a possible OD? + M.reagents.add_reagent(R.id, R.volume) + else + var/transVol = CLAMP(R.volume, 0, (R.overdose_threshold - Rm.volume) -1) + M.reagents.add_reagent(R.id, transVol) + target.visible_message("\The [src] beeps!") + return TRUE + else + if(!R.overdose_threshold == 0) + var/transVol = CLAMP(R.volume, 0, R.overdose_threshold-1) + M.reagents.add_reagent(R.id, transVol) + else + M.reagents.add_reagent(R.id, R.volume) + target.visible_message("\The [src] beeps!") + to_chat("You feel a tiny prick, and turn around to see a smartdart embedded in your butt.") + return TRUE + + else + blocked = 100 + target.visible_message("\The [src] was deflected!", \ + "You see a [src] bounce off you, booping sadly!") + + target.visible_message("\The [src] fails to land on target!") + return TRUE diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 430d7e5d5d..592d092cc8 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -14,7 +14,6 @@ var/proj_piercing = 0 //does it pierce through thick clothes when shot with syringe gun materials = list(MAT_METAL=10, MAT_GLASS=20) container_type = TRANSPARENT - var/Sname = "syringe" /obj/item/reagent_containers/syringe/Initialize() . = ..() @@ -73,7 +72,7 @@ if(SYRINGE_DRAW) if(reagents.total_volume >= reagents.maximum_volume) - to_chat(user, "The [Sname] is full.") + to_chat(user, "The syringe is full.") return if(L) //living mob @@ -138,8 +137,8 @@ return if(L.reagents.total_volume >= L.reagents.maximum_volume) return - L.visible_message("[user] injects [L] with the [Sname]!", \ - "[user] injects [L] with the [Sname]!") + L.visible_message("[user] injects [L] with the syringe!", \ + "[user] injects [L] with the syringe!") if(L != user) log_combat(user, L, "injected", src, addition="which had [contained]") @@ -148,7 +147,7 @@ var/fraction = min(amount_per_transfer_from_this/reagents.total_volume, 1) reagents.reaction(L, INJECT, fraction) reagents.trans_to(target, amount_per_transfer_from_this) - to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The [Sname] now contains [reagents.total_volume] units.") + to_chat(user, "You inject [amount_per_transfer_from_this] units of the solution. The syringe now contains [reagents.total_volume] units.") if (reagents.total_volume <= 0 && mode==SYRINGE_INJECT) mode = SYRINGE_DRAW update_icon() @@ -159,7 +158,7 @@ var/rounded_vol if(reagents && reagents.total_volume) rounded_vol = CLAMP(round((reagents.total_volume / volume * 15),5), 1, 15) - var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "[Sname][rounded_vol]") + var/image/filling_overlay = mutable_appearance('icons/obj/reagentfillings.dmi', "syringe[rounded_vol]") filling_overlay.color = mix_color_from_reagents(reagents.reagent_list) add_overlay(filling_overlay) else @@ -265,23 +264,64 @@ return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch") /obj/item/reagent_containers/syringe/dart - name = "medicinal dart" - desc = "A non-harmful dart that can administer medication from a range. Unable to hold any caustic or toxic chemicals without disintegrating" + name = "medicinal smartdart" + desc = "A non-harmful dart that can administer medication from a range. Once it hits a patient, only medicines are administered to the patient using a smart nanofilter and capillary action." volume = 20 amount_per_transfer_from_this = 20 icon = 'icons/obj/dart.dmi' - Sname = "dart" + item_state = "dart_0" //harmful = FALSE /obj/item/reagent_containers/syringe/dart/afterattack(atom/target, mob/user , proximity) - ..() - for(var/datum/reagent/R in src.reagents.reagent_list)//(!R == /datum/reagent/fermi) || - if((!R == /datum/reagent/medicine) || (!R == /datum/reagent/consumable)) - qdel(src) - to_chat(user, "The dart dissolves under the caustic nature of the chems!") + + if(busy) + return + if(!proximity) + return + if(!target.reagents) + return + + var/mob/living/L + if(isliving(target)) + L = target + if(!L.can_inject(user, 1)) + return + + switch(mode) + if(SYRINGE_DRAW) + + if(reagents.total_volume >= reagents.maximum_volume) + to_chat(user, "The dart is full!") + return + + if(L) //living mob + to_chat(user, "You can't draw blood using a dart!") + return + + else //if not mob + if(!target.reagents.total_volume) + to_chat(user, "[target] is empty!") + return + + if(!target.is_drawable()) + to_chat(user, "You cannot directly remove reagents from [target]!") + return + + var/trans = target.reagents.trans_to(src, amount_per_transfer_from_this) // transfer from, transfer to - who cares? + + to_chat(user, "You soak the [src] with [trans] units of the solution. It now contains [reagents.total_volume] units.") + if (reagents.total_volume >= reagents.maximum_volume) + mode=!mode + update_icon() + + if(SYRINGE_INJECT) + src.visible_message("The smartdart gives a frustrated boop! It's ready and full; You need to shoot someone with it!") + +/obj/item/reagent_containers/syringe/dart/attack_self(mob/user) + return /obj/item/reagent_containers/syringe/dart/bluespace - name = "bluespace dart" + name = "bluespace smartdart" desc = "A non-harmful dart that can administer medication from a range, with extended 60u capacity. Unable to hold any caustic or toxic chemicals without disintegrating" amount_per_transfer_from_this = 20 volume = 60 diff --git a/icons/obj/dart.dmi b/icons/obj/dart.dmi index fd6be8ab14cf7524e410885b383fd496c380e35d..50ba4fc1ab0b860d29236487f71be333701e4675 100644 GIT binary patch literal 903 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo?NuQWB`&GO$wiq3C7Jno3=9=> zg2M`mO22;zF8KKMiI%sn*10q1gExd4Tr__0Nawtd=E(pc$L!IgGahGs&TBLlba@MT z2Z`p0PT`rd!y?$Iy9>zX*=cdPOQ<+lF=q#tbCZ@2=WNFo(-vP(O)nkw6&l9++NL{M zrW>WQhTDs?ipTrwF=$i+yJ$EUazt*--NNz!Y}{A^(K7Z+G<1S#I-wW$#sI zzw*@2Pe;>h_y5>koUGn`^iX48`YUFO5&;D^#w7ei7VDYt#dr3Vo!!^}e~(_mt!TBf z4?nY}{QprGELmSu_GsDO)J=;Y-~Rn^@~-$J&sGQ8z15w(efs{cW(zy(m3KeRKmR^v z|9$;!?9GkReC>HQa@)Q9W`E50@4s{U_54X7#+>4HUw>?6I^<~a{X_1HPtrTyKQ^~x zK9qe~_I+2a{QirQ4F2q=0}MF?ni+5r4b_`;PM@w1HT3=Uwk-7aPPY9WvO=40=H%Y4 zp1(YER!Zcw+uxn`7ngJLzMuMd@At|Z`8#Fp`WuAq{a%zSoPNJs#YE~pi`N8+a}8oM zf*w1q-1xVjkx_Srmg%FQ@wmNfa1xDqqyZUR{lFV5Z@85nZN&d&N@s4Przs^as zz{qK9*Z$3|zMbwgKlgS8OGhFf#I1)vGbUBoIh?V#l^1x|xxJ*Y{$F=@|J0AW<^HdH z_>;lVMqZ(f+t5(Q`KW>e57QA0qUX=Lj*}^i>{vACfMRKxhU5IY_?p*Q7x@2vU%yN0 zb$xm+-;b()Pw(XI-&a*E`g-%mr*9)-*6^0+_#E2UGHr6$)DUU+O|uWmC@i~Zv?V4l zCth}=5gUIFM~A9)nAfVT`W~~5?Z@0Wl_Kv7={i2$v@zFd+mS~CJLf)H$8ojvz{3C9 oi!7LTSX??_6oSopIK|GySNd|czopr0BOH@$^ZZW delta 261 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 T!-UrkKtC^Es6H=~F%9}3{fex~