Make Syringe Guns shoot Syringes in Inject mode (#23088)

* Automatically set launched syringes to inject

* Implement for normal syringe guns too

* Put mech syringe back to draw mode if emptied when shot

* Use syringe's defines

* Move defines

* update paradise.dme

* Add comment for defines

* do not set RSG syringes to inject

---------

Co-authored-by: Arthri <41360489+a@users.noreply.github.com>
This commit is contained in:
Arthri
2023-11-03 11:08:38 +00:00
committed by GitHub
co-authored by Arthri
parent 569389bd18
commit 279071ab91
4 changed files with 10 additions and 4 deletions
+5
View File
@@ -24,3 +24,8 @@
#define UNHUSK_DAMAGE_THRESHOLD 50
///Amount of synthflesh required to unhusk someone
#define SYNTHFLESH_UNHUSK_AMOUNT 100
///Syringe mob interaction modes
#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1
#define SYRINGE_BROKEN 2
@@ -299,6 +299,7 @@
var/turf/trg = get_turf(target)
var/obj/item/reagent_containers/syringe/mechsyringe = syringes[1]
mechsyringe.forceMove(get_turf(chassis))
mechsyringe.mode = SYRINGE_INJECT
reagents.trans_to(mechsyringe, min(mechsyringe.volume, reagents.total_volume))
syringes -= mechsyringe
mechsyringe.icon = 'icons/obj/chemical.dmi'
@@ -331,6 +332,8 @@
add_attack_logs(originaloccupant, M, "Shot with [src] containing [R], transferred [mechsyringe.reagents.total_volume] units")
mechsyringe.reagents.reaction(M, REAGENT_INGEST)
mechsyringe.reagents.trans_to(M, mechsyringe.reagents.total_volume)
if(!mechsyringe.reagents.total_volume)
mechsyringe.mode = SYRINGE_DRAW
M.take_organ_damage(2)
break
else if(mechsyringe.loc == trg)
@@ -28,6 +28,7 @@
chambered.BB = new S.projectile_type(src)
S.reagents.trans_to(chambered.BB, S.reagents.total_volume)
S.mode = SYRINGE_INJECT
chambered.BB.name = S.name
syringes.Remove(S)
@@ -55,6 +56,7 @@
// Remove the chambered syringe only if there's no syringe left
S = new()
chambered.BB.reagents.trans_to(S, chambered.BB.reagents.total_volume)
S.mode = SYRINGE_INJECT
qdel(chambered.BB)
chambered.BB = null
process_chamber()
@@ -1,7 +1,3 @@
#define SYRINGE_DRAW 0
#define SYRINGE_INJECT 1
#define SYRINGE_BROKEN 2
/obj/item/reagent_containers/syringe
name = "syringe"
desc = "A syringe."