From bfd97b4100e356104912e9af111e95e2aa9db9b2 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Mon, 28 Mar 2022 14:30:39 -0400
Subject: [PATCH 01/14] Initial Commit
Setting the stage for xenobio guns
---
code/modules/xenobio/items/weapons_vr.dm | 44 ++++++++++++++++++++++++
vorestation.dme | 3 +-
2 files changed, 46 insertions(+), 1 deletion(-)
create mode 100644 code/modules/xenobio/items/weapons_vr.dm
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
new file mode 100644
index 0000000000..1271d641c8
--- /dev/null
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -0,0 +1,44 @@
+/obj/item/weapon/gun/energy/xenobio
+ name = "xenobio gun"
+ desc = "You shouldn't see this!"
+ icon_state = "taserblue"
+ fire_sound = 'sound/weapons/taser2.ogg'
+ charge_cost = 120 // Twice as many shots.
+ projectile_type = /obj/item/projectile/beam/stun/xeno // Place holder for now
+ accuracy = 30 // Just use the same hit rate as xenotasers
+ var/loadable_item = null
+ var/loaded_item = null
+
+/obj/item/weapon/gun/energy/xenobio/examine(var/mob/user)
+ . = ..()
+ if(loaded_item)
+ .+= "A [loaded_item] is slotted into the side."
+ else
+ .+= "There appears to be an empty slot for attaching a [loadable_item]."
+
+/obj/item/weapon/gun/energy/xenobio/attackby(obj/item/I as obj, mob/user as mob)
+ if(istype(I, loadable_item))
+ if(loaded_item)
+ to_chat(user, "[I] doesn't seem to fit into [src].")
+ return
+ //var/obj/item/weapon/reagent_containers/glass/beaker/B = I
+ user.drop_item()
+ I.loc = src
+ loaded_item = I
+ to_chat(user, "You slot [B] into [src].")
+ return 1
+ ..()
+/obj/item/weapon/gun/energy/xenobio/monkey_gun
+ name = "Bluespace Cube Rehydrater"
+ desc = "This advanced weapon will rehydrate and deploy a loaded cube at your target position."
+ loadable_item = /obj/item/weapon/reagent_containers/food/snacks/monkeycube
+
+/obj/item/weapon/gun/energy/xenobio/potion_gun
+ name = "Ranged Potion Delivery Device"
+ desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion.
+ loadable_item = /obj/item/slimepotion
+
+/obj/item/weapon/gun/energy/xenobio/extract_gun
+ name = "Ranged Extract Interaction Device"
+ desc = "This is the latest in extract interaction technology! No longer shall you stand in harms way when activating a gold slime."
+ loadable_item = /obj/item/slime_extract
\ No newline at end of file
diff --git a/vorestation.dme b/vorestation.dme
index ca6633e66b..08c9871c56 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -4056,6 +4056,7 @@
#include "code\modules\xenobio\items\slimepotions.dm"
#include "code\modules\xenobio\items\slimepotions_vr.dm"
#include "code\modules\xenobio\items\weapons.dm"
+#include "code\modules\xenobio\items\weapons_vr.dm"
#include "code\modules\xenobio\machinery\processor.dm"
#include "code\modules\xgm\xgm_gas_data.dm"
#include "code\modules\xgm\xgm_gas_mixture.dm"
@@ -4103,7 +4104,6 @@
#include "maps\southern_cross\loadout\loadout_suit.dm"
#include "maps\southern_cross\loadout\loadout_uniform.dm"
#include "maps\southern_cross\loadout\loadout_vr.dm"
-#include "maps\stellardelight\stellar_delight.dm"
#include "maps\submaps\_helpers.dm"
#include "maps\submaps\_readme.dm"
#include "maps\submaps\engine_submaps\engine.dm"
@@ -4113,5 +4113,6 @@
#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
+#include "maps\virgo_minitest\virgo_minitest.dm"
#include "maps\~map_system\maps.dm"
// END_INCLUDE
From 7291d4d721fc5ffc4b43ab40f1c4cd45ddcfd8b1 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Wed, 30 Mar 2022 12:34:57 -0400
Subject: [PATCH 02/14] Update weapons_vr.dm
---
code/modules/xenobio/items/weapons_vr.dm | 167 ++++++++++++++++++++++-
1 file changed, 160 insertions(+), 7 deletions(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 1271d641c8..e9125ec844 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -1,20 +1,21 @@
/obj/item/weapon/gun/energy/xenobio
name = "xenobio gun"
desc = "You shouldn't see this!"
- icon_state = "taserblue"
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "harpoon-2"
fire_sound = 'sound/weapons/taser2.ogg'
charge_cost = 120 // Twice as many shots.
projectile_type = /obj/item/projectile/beam/stun/xeno // Place holder for now
accuracy = 30 // Just use the same hit rate as xenotasers
var/loadable_item = null
var/loaded_item = null
-
+ var/loadable_name = null
/obj/item/weapon/gun/energy/xenobio/examine(var/mob/user)
. = ..()
if(loaded_item)
.+= "A [loaded_item] is slotted into the side."
else
- .+= "There appears to be an empty slot for attaching a [loadable_item]."
+ .+= "There appears to be an empty slot for attaching a [loadable_name]."
/obj/item/weapon/gun/energy/xenobio/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, loadable_item))
@@ -25,20 +26,172 @@
user.drop_item()
I.loc = src
loaded_item = I
- to_chat(user, "You slot [B] into [src].")
+ to_chat(user, "You slot [I] into [src].")
return 1
..()
+
+/obj/item/weapon/gun/energy/xenobio/attack_self(mob/living/user as mob)
+ if(loaded_item)
+ user.put_in_hands(loaded_item)
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ loaded_item = null
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
+
+/obj/item/weapon/gun/energy/xenobio/afterattack(atom/A, mob/user as mob)
+ if(!loaded_item)
+ to_chat(user,"\The [src] shot fizzles, it appears you need to load something!")
+ playsound(src, 'sound/weapons/wave.ogg', 60, 1)
+ return
+
+ playsound(src, 'sound/weapons/wave.ogg', 60, 1)
+
+ user.visible_message("[user] fires \the [src]!","You fire \the [src]!")
+
+ var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
+ s.set_up(4, 1, A)
+ s.start()
+ s = new /datum/effect/effect/system/spark_spread
+ s.set_up(4, 1, user)
+ s.start()
+
/obj/item/weapon/gun/energy/xenobio/monkey_gun
name = "Bluespace Cube Rehydrater"
desc = "This advanced weapon will rehydrate and deploy a loaded cube at your target position."
loadable_item = /obj/item/weapon/reagent_containers/food/snacks/monkeycube
-
+ loadable_name = "Monkey Cube"
/obj/item/weapon/gun/energy/xenobio/potion_gun
name = "Ranged Potion Delivery Device"
- desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion.
+ desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion."
loadable_item = /obj/item/slimepotion
+ loadable_name = "Slime Potion"
+///obj/item/weapon/gun/energy/xenobio/potion_gun/afterattack(atom/A, mob/user as mob)
+// if(isslime(A))
+ //loaded_item.attack(A, user)
+
+
+/*/obj/item/weapon/xenobio
+ name = "bluespace harpoon"
+ desc = "For climbing on bluespace mountains!"
+
+ icon = 'icons/obj/gun_vr.dmi'
+ icon_state = "harpoon-2"
+
+ w_class = ITEMSIZE_NORMAL
+*/
+/obj/item/weapon/xenobio/slime_grinder
+ name = "portable slime processor"
+ desc = "An industrial grinder used to automate the process of slime core extraction. It can also recycle biomatter. This one appears miniturized"
+ icon = 'icons/obj/kitchen.dmi'
+ icon_state = "processor1"
+ var/processing = FALSE // So I heard you like processing.
+ var/list/to_be_processed = list()
+ var/monkeys_recycled = 0
+ description_info = "Clickdrag dead slimes or monkeys to it to insert them. It will make a new monkey cube for every four monkeys it processes."
+
+/obj/machinery/processor/attack_hand(mob/living/user)
+ if(processing)
+ to_chat(user, "The processor is in the process of processing!")
+ return
+ if(to_be_processed.len)
+ spawn(1)
+ begin_processing()
+ else
+ to_chat(user, "The processor is empty.")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
+ return
+
+// Verb to remove everything.
+/obj/item/weapon/xenobio/slime_grinder/verb/eject()
+ set category = "Object"
+ set name = "Eject Processor"
+ set src in oview(1)
+
+ if(usr.stat || !usr.canmove || usr.restrained())
+ return
+ empty()
+ add_fingerprint(usr)
+ return
+
+// Ejects all the things out of the machine.
+/obj/item/weapon/xenobio/slime_grinder/proc/empty()
+ for(var/atom/movable/AM in to_be_processed)
+ to_be_processed.Remove(AM)
+ AM.forceMove(get_turf(src))
+
+// Ejects all the things out of the machine.
+/obj/item/weapon/xenobio/slime_grinder/proc/insert(var/atom/movable/AM, var/mob/living/user)
+ if(!Adjacent(AM))
+ return
+ if(!can_insert(AM))
+ to_chat(user, "\The [src] cannot process \the [AM] at this time.")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
+ return
+ to_be_processed.Add(AM)
+ AM.forceMove(src)
+ visible_message("\The [user] places [AM] inside \the [src].")
+
+/obj/item/weapon/xenobio/slime_grinder/proc/begin_processing()
+ if(processing)
+ return // Already doing it.
+ processing = TRUE
+ playsound(src, 'sound/machines/juicer.ogg', 50, 1)
+ for(var/atom/movable/AM in to_be_processed)
+ extract(AM)
+ sleep(1 SECONDS)
+
+ while(monkeys_recycled >= 4)
+ new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(get_turf(src))
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ monkeys_recycled -= 4
+ sleep(1 SECOND)
+
+ processing = FALSE
+ playsound(src, 'sound/machines/ding.ogg', 50, 1)
+
+/obj/item/weapon/xenobio/slime_grinder/proc/extract(var/atom/movable/AM)
+ if(istype(AM, /mob/living/simple_mob/slime))
+ var/mob/living/simple_mob/slime/S = AM
+ while(S.cores)
+ new S.coretype(get_turf(src))
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ S.cores--
+ sleep(1 SECOND)
+ to_be_processed.Remove(S)
+ qdel(S)
+
+ if(istype(AM, /mob/living/carbon/human))
+ var/mob/living/carbon/human/M = AM
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ to_be_processed.Remove(M)
+ qdel(M)
+ monkeys_recycled++
+ sleep(1 SECOND)
+
+/obj/item/weapon/xenobio/slime_grinder/proc/can_insert(var/atom/movable/AM)
+ if(istype(AM, /mob/living/simple_mob/slime))
+ var/mob/living/simple_mob/slime/S = AM
+ if(S.stat != DEAD)
+ return FALSE
+ return TRUE
+ if(istype(AM, /mob/living/carbon/human))
+ var/mob/living/carbon/human/H = AM
+ if(!istype(H.species, /datum/species/monkey))
+ return FALSE
+ if(H.stat != DEAD)
+ return FALSE
+ return TRUE
+ return FALSE
+
+/obj/item/weapon/xenobio/slime_grinder/attack(mob/M as mob, mob/living/user as mob)
+ if(user.stat || user.incapacitated(INCAPACITATION_DISABLED) || !istype(user))
+ return
+ insert(M, user)
+ return ..()
+
+/* Cut for balance :)
/obj/item/weapon/gun/energy/xenobio/extract_gun
name = "Ranged Extract Interaction Device"
desc = "This is the latest in extract interaction technology! No longer shall you stand in harms way when activating a gold slime."
- loadable_item = /obj/item/slime_extract
\ No newline at end of file
+ loadable_item = /obj/item/slime_extract
+*/
\ No newline at end of file
From 2d243de4e170d188276b442c99dc15f7b44d43e5 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Thu, 31 Mar 2022 15:08:07 -0400
Subject: [PATCH 03/14] Update dartgun_vr.dm
---
code/modules/projectiles/guns/projectile/dartgun_vr.dm | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/code/modules/projectiles/guns/projectile/dartgun_vr.dm b/code/modules/projectiles/guns/projectile/dartgun_vr.dm
index dda197ccc6..a802c17327 100644
--- a/code/modules/projectiles/guns/projectile/dartgun_vr.dm
+++ b/code/modules/projectiles/guns/projectile/dartgun_vr.dm
@@ -27,3 +27,10 @@
else
icon_state = "tranqgun"
return 1
+
+// This is to allow xenobio to activate slime cores via remote.
+/obj/item/projectile/bullet/chemdart/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null)
+ ..()
+ if(blocked < 2)
+ if(istype(target, /obj/item/weapon/reagent_containers/food) || istype(target, /obj/item/slime_extract))
+ reagents.trans_to_obj(target, reagent_amount)
\ No newline at end of file
From a43746367f4dec0577f2b5047018fde17d2aa86c Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Thu, 31 Mar 2022 16:38:52 -0400
Subject: [PATCH 04/14] Cleanup, make the monkey gun work
---
code/modules/xenobio/items/weapons_vr.dm | 78 +++++++++++++++---------
1 file changed, 48 insertions(+), 30 deletions(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index e9125ec844..714fcbebf0 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -1,23 +1,32 @@
-/obj/item/weapon/gun/energy/xenobio
+/obj/item/weapon/xenobio
name = "xenobio gun"
desc = "You shouldn't see this!"
icon = 'icons/obj/gun_vr.dmi'
icon_state = "harpoon-2"
- fire_sound = 'sound/weapons/taser2.ogg'
- charge_cost = 120 // Twice as many shots.
- projectile_type = /obj/item/projectile/beam/stun/xeno // Place holder for now
- accuracy = 30 // Just use the same hit rate as xenotasers
+ //fire_sound = 'sound/weapons/taser2.ogg'
+ //charge_cost = 120 // Twice as many shots.
+ //projectile_type = /obj/item/projectile/beam/xenobio // Place holder for now
+ //accuracy = 30 // Just use the same hit rate as xenotasers
var/loadable_item = null
var/loaded_item = null
var/loadable_name = null
-/obj/item/weapon/gun/energy/xenobio/examine(var/mob/user)
+/obj/item/weapon/xenobio/examine(var/mob/user)
. = ..()
if(loaded_item)
.+= "A [loaded_item] is slotted into the side."
else
.+= "There appears to be an empty slot for attaching a [loadable_name]."
-/obj/item/weapon/gun/energy/xenobio/attackby(obj/item/I as obj, mob/user as mob)
+/obj/item/weapon/xenobio/attack_hand(mob/user as mob)
+ if(user.get_inactive_hand() == src && loaded_item)
+ user.put_in_hands(loaded_item)
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ loaded_item = null
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
+ else
+ return ..()
+
+/obj/item/weapon/xenobio/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, loadable_item))
if(loaded_item)
to_chat(user, "[I] doesn't seem to fit into [src].")
@@ -26,21 +35,23 @@
user.drop_item()
I.loc = src
loaded_item = I
- to_chat(user, "You slot [I] into [src].")
+ //to_chat(user, "You slot [I] into [src].")
+ user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
return 1
..()
-/obj/item/weapon/gun/energy/xenobio/attack_self(mob/living/user as mob)
+/obj/item/weapon/xenobio/attack_self(mob/living/user as mob)
if(loaded_item)
user.put_in_hands(loaded_item)
user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
loaded_item = null
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
-/obj/item/weapon/gun/energy/xenobio/afterattack(atom/A, mob/user as mob)
+/obj/item/weapon/xenobio/afterattack(atom/A, mob/user as mob)
if(!loaded_item)
to_chat(user,"\The [src] shot fizzles, it appears you need to load something!")
- playsound(src, 'sound/weapons/wave.ogg', 60, 1)
+ //playsound(src, 'sound/weapons/wave.ogg', 60, 1)
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
return
playsound(src, 'sound/weapons/wave.ogg', 60, 1)
@@ -54,31 +65,38 @@
s.set_up(4, 1, user)
s.start()
-/obj/item/weapon/gun/energy/xenobio/monkey_gun
- name = "Bluespace Cube Rehydrater"
- desc = "This advanced weapon will rehydrate and deploy a loaded cube at your target position."
+/obj/item/weapon/xenobio/monkey_gun
+ name = "Bluespace Cube Rehydrator"
+ desc = "Based on the technology of the 'Bluespace Harpoon' this device can teleport a loaded cube to a given target and rehydrate it."
loadable_item = /obj/item/weapon/reagent_containers/food/snacks/monkeycube
loadable_name = "Monkey Cube"
-/obj/item/weapon/gun/energy/xenobio/potion_gun
+ origin_tech = list(TECH_BLUESPACE = 5, TECH_BIO = 6)
+ //projectile_type = /obj/item/projectile/beam/xenobio/monkey
+
+/obj/item/weapon/xenobio/monkey_gun/afterattack(atom/A, mob/user as mob)
+ ..()
+ var/turf/T = get_turf(A)
+ if(!T || (T.check_density(ignore_mobs = TRUE)))
+ to_chat(user,"Your rehydrator flashes an error as it attempts to process your target.")
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
+ return
+ if(istype(A, /mob/living))
+ to_chat(user,"The rehydrator's saftey systems prevent firing into living creatures!")
+ playsound(src, 'sound/weapons/empty.ogg', 50, 1)
+ return
+ if(loaded_item)
+ var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = loaded_item
+ cube.loc = A
+ cube.Expand()
+ loaded_item = null
+
+/obj/item/weapon/xenobio/potion_gun
name = "Ranged Potion Delivery Device"
desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion."
loadable_item = /obj/item/slimepotion
loadable_name = "Slime Potion"
-///obj/item/weapon/gun/energy/xenobio/potion_gun/afterattack(atom/A, mob/user as mob)
-// if(isslime(A))
- //loaded_item.attack(A, user)
-
-
-/*/obj/item/weapon/xenobio
- name = "bluespace harpoon"
- desc = "For climbing on bluespace mountains!"
-
- icon = 'icons/obj/gun_vr.dmi'
- icon_state = "harpoon-2"
-
- w_class = ITEMSIZE_NORMAL
-*/
+/* Doesn't work and am too lazy to make it work, lets make something better instead.
/obj/item/weapon/xenobio/slime_grinder
name = "portable slime processor"
desc = "An industrial grinder used to automate the process of slime core extraction. It can also recycle biomatter. This one appears miniturized"
@@ -188,7 +206,7 @@
return
insert(M, user)
return ..()
-
+*/
/* Cut for balance :)
/obj/item/weapon/gun/energy/xenobio/extract_gun
name = "Ranged Extract Interaction Device"
From e725a55a8843d49736a762cfb2ca604a2a542b7a Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Thu, 31 Mar 2022 17:31:50 -0400
Subject: [PATCH 05/14] Update weapons_vr.dm
---
code/modules/xenobio/items/weapons_vr.dm | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 714fcbebf0..eb338c9e02 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -10,6 +10,7 @@
var/loadable_item = null
var/loaded_item = null
var/loadable_name = null
+ var/firable = TRUE
/obj/item/weapon/xenobio/examine(var/mob/user)
. = ..()
if(loaded_item)
@@ -75,6 +76,10 @@
/obj/item/weapon/xenobio/monkey_gun/afterattack(atom/A, mob/user as mob)
..()
+
+ if(!firable)
+ return
+
var/turf/T = get_turf(A)
if(!T || (T.check_density(ignore_mobs = TRUE)))
to_chat(user,"Your rehydrator flashes an error as it attempts to process your target.")
@@ -89,7 +94,8 @@
cube.loc = A
cube.Expand()
loaded_item = null
-
+ firable = FALSE
+ VARSET_IN(src, firable, TRUE, 5 SECONDS)
/obj/item/weapon/xenobio/potion_gun
name = "Ranged Potion Delivery Device"
desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion."
From 4c193229aeda92cab9d98d979934a9814ba15b83 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Thu, 31 Mar 2022 20:46:10 -0400
Subject: [PATCH 06/14] Update weapons_vr.dm
---
code/modules/xenobio/items/weapons_vr.dm | 2 ++
1 file changed, 2 insertions(+)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index eb338c9e02..58459fd1f6 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -54,6 +54,8 @@
//playsound(src, 'sound/weapons/wave.ogg', 60, 1)
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
return
+ if(!firable)
+ return
playsound(src, 'sound/weapons/wave.ogg', 60, 1)
From f7d3111f2ab3a9d40536baec74bf0e7d7ba3fc29 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 18:01:11 -0400
Subject: [PATCH 07/14] Portable Grinder and Bag
---
.../objects/items/weapons/storage/bags_vr.dm | 13 ++
code/modules/xenobio/items/weapons_vr.dm | 123 +++++++-----------
vorestation.dme | 1 -
3 files changed, 63 insertions(+), 74 deletions(-)
diff --git a/code/game/objects/items/weapons/storage/bags_vr.dm b/code/game/objects/items/weapons/storage/bags_vr.dm
index 6f9d0a0b15..8f359a5f06 100644
--- a/code/game/objects/items/weapons/storage/bags_vr.dm
+++ b/code/game/objects/items/weapons/storage/bags_vr.dm
@@ -1,2 +1,15 @@
/obj/item/weapon/storage/bag/chemistry
slot_flags = null
+
+/obj/item/weapon/storage/bag/xeno
+ name = "xenobiology bag"
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "chembag"
+ max_storage_space = ITEMSIZE_COST_NORMAL * 25
+ max_w_class = ITEMSIZE_NORMAL
+ w_class = ITEMSIZE_SMALL
+ can_hold = list(
+ /obj/item/slime_extract,
+ /obj/item/slimepotion,
+ /obj/item/weapon/reagent_containers/food/snacks/monkeycube
+ )
\ No newline at end of file
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 58459fd1f6..c46a580874 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -98,23 +98,30 @@
loaded_item = null
firable = FALSE
VARSET_IN(src, firable, TRUE, 5 SECONDS)
+
+/* Eh, cutting this. Not much reason for it.
/obj/item/weapon/xenobio/potion_gun
name = "Ranged Potion Delivery Device"
desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion."
loadable_item = /obj/item/slimepotion
loadable_name = "Slime Potion"
-
-/* Doesn't work and am too lazy to make it work, lets make something better instead.
-/obj/item/weapon/xenobio/slime_grinder
+*/
+// Instead of bringing the slime to the grinder, lets bring the grinder to the slime! This will process slimes and monkies one at a time.
+/obj/item/weapon/slime_grinder
name = "portable slime processor"
desc = "An industrial grinder used to automate the process of slime core extraction. It can also recycle biomatter. This one appears miniturized"
- icon = 'icons/obj/kitchen.dmi'
- icon_state = "processor1"
+ //icon = 'icons/obj/weapons_vr.dmi'
+ icon_state = "chainsaw0"
+ //icon_state = "slimegrinder"
+ //item_icons = list(
+ // slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi',
+ // slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi',
+ // )
var/processing = FALSE // So I heard you like processing.
var/list/to_be_processed = list()
var/monkeys_recycled = 0
- description_info = "Clickdrag dead slimes or monkeys to it to insert them. It will make a new monkey cube for every four monkeys it processes."
-
+ description_info = "Click a monkey or slime to begin processing."
+/*
/obj/machinery/processor/attack_hand(mob/living/user)
if(processing)
to_chat(user, "The processor is in the process of processing!")
@@ -126,75 +133,38 @@
to_chat(user, "The processor is empty.")
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
return
-
-// Verb to remove everything.
-/obj/item/weapon/xenobio/slime_grinder/verb/eject()
- set category = "Object"
- set name = "Eject Processor"
- set src in oview(1)
-
- if(usr.stat || !usr.canmove || usr.restrained())
- return
- empty()
- add_fingerprint(usr)
- return
-
-// Ejects all the things out of the machine.
-/obj/item/weapon/xenobio/slime_grinder/proc/empty()
- for(var/atom/movable/AM in to_be_processed)
- to_be_processed.Remove(AM)
- AM.forceMove(get_turf(src))
-
-// Ejects all the things out of the machine.
-/obj/item/weapon/xenobio/slime_grinder/proc/insert(var/atom/movable/AM, var/mob/living/user)
- if(!Adjacent(AM))
- return
- if(!can_insert(AM))
- to_chat(user, "\The [src] cannot process \the [AM] at this time.")
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
- return
- to_be_processed.Add(AM)
- AM.forceMove(src)
- visible_message("\The [user] places [AM] inside \the [src].")
-
-/obj/item/weapon/xenobio/slime_grinder/proc/begin_processing()
- if(processing)
- return // Already doing it.
+*/
+/obj/item/weapon/slime_grinder/proc/extract(var/atom/movable/AM, var/mob/living/user)
processing = TRUE
- playsound(src, 'sound/machines/juicer.ogg', 50, 1)
- for(var/atom/movable/AM in to_be_processed)
- extract(AM)
- sleep(1 SECONDS)
-
- while(monkeys_recycled >= 4)
- new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(get_turf(src))
- playsound(src, 'sound/effects/splat.ogg', 50, 1)
- monkeys_recycled -= 4
- sleep(1 SECOND)
-
- processing = FALSE
- playsound(src, 'sound/machines/ding.ogg', 50, 1)
-
-/obj/item/weapon/xenobio/slime_grinder/proc/extract(var/atom/movable/AM)
if(istype(AM, /mob/living/simple_mob/slime))
var/mob/living/simple_mob/slime/S = AM
while(S.cores)
- new S.coretype(get_turf(src))
- playsound(src, 'sound/effects/splat.ogg', 50, 1)
- S.cores--
- sleep(1 SECOND)
- to_be_processed.Remove(S)
+ playsound(src, 'sound/machines/juicer.ogg', 25, 1)
+ if(do_after(user, 15))
+ new S.coretype(get_turf(AM))
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ S.cores--
+ //sleep(1 SECOND)
+ //to_be_processed.Remove(S)
qdel(S)
- if(istype(AM, /mob/living/carbon/human))
- var/mob/living/carbon/human/M = AM
- playsound(src, 'sound/effects/splat.ogg', 50, 1)
- to_be_processed.Remove(M)
- qdel(M)
- monkeys_recycled++
- sleep(1 SECOND)
+ if(istype(AM, /mob/living/carbon/human/monkey))
+ playsound(src, 'sound/machines/juicer.ogg', 25, 1)
+ if(do_after(user, 15))
+ var/mob/living/carbon/human/M = AM
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ //to_be_processed.Remove(M)
+ qdel(M)
+ monkeys_recycled++
+ sleep(1 SECOND)
+ while(monkeys_recycled >= 4)
+ new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(get_turf(src))
+ playsound(src, 'sound/effects/splat.ogg', 50, 1)
+ monkeys_recycled -= 4
+ sleep(1 SECOND)
+ processing = FALSE
-/obj/item/weapon/xenobio/slime_grinder/proc/can_insert(var/atom/movable/AM)
+/obj/item/weapon/slime_grinder/proc/can_insert(var/atom/movable/AM)
if(istype(AM, /mob/living/simple_mob/slime))
var/mob/living/simple_mob/slime/S = AM
if(S.stat != DEAD)
@@ -209,12 +179,19 @@
return TRUE
return FALSE
-/obj/item/weapon/xenobio/slime_grinder/attack(mob/M as mob, mob/living/user as mob)
- if(user.stat || user.incapacitated(INCAPACITATION_DISABLED) || !istype(user))
+/obj/item/weapon/slime_grinder/attack(mob/M as mob, mob/living/user as mob)
+ //if(user.stat || user.incapacitated(INCAPACITATION_DISABLED) || !istype(user))
+ // return
+ //insert(M, user)
+ if(processing)
return
- insert(M, user)
+ if(!can_insert(M))
+ to_chat(user, "\The [src] cannot process \the [M] at this time.")
+ playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
+ return
+
+ extract(M, user)
return ..()
-*/
/* Cut for balance :)
/obj/item/weapon/gun/energy/xenobio/extract_gun
name = "Ranged Extract Interaction Device"
diff --git a/vorestation.dme b/vorestation.dme
index cef37c8dba..93f1745df0 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -4103,7 +4103,6 @@
#include "maps\expedition_vr\beach\submaps\mountains.dm"
#include "maps\expedition_vr\beach\submaps\mountains_areas.dm"
#include "maps\gateway_archive_vr\blackmarketpackers.dm"
-#include "maps\groundbase\groundbase.dm"
#include "maps\offmap_vr\om_ships\abductor.dm"
#include "maps\southern_cross\items\clothing\sc_accessory.dm"
#include "maps\southern_cross\items\clothing\sc_suit.dm"
From f2a45d16955e673bac7287ae3bc297decd62ffe2 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 21:55:46 -0400
Subject: [PATCH 08/14] Adding recipes to the lathe.
---
code/modules/research/designs/xenobio_toys_vr.dm | 15 +++++++++++++++
1 file changed, 15 insertions(+)
create mode 100644 code/modules/research/designs/xenobio_toys_vr.dm
diff --git a/code/modules/research/designs/xenobio_toys_vr.dm b/code/modules/research/designs/xenobio_toys_vr.dm
new file mode 100644
index 0000000000..ea46432791
--- /dev/null
+++ b/code/modules/research/designs/xenobio_toys_vr.dm
@@ -0,0 +1,15 @@
+/datum/design/item/weapon/xenobio/monkey_gun
+ id = "bluespace monkey deployment system"
+ req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 3, TECH_POWER = 4, TECH_COMBAT = 4, TECH_BLUESPACE = 6)
+ materials = list(MAT_PLASTEEL = 5000, MAT_GLASS = 5000, MAT_DIAMOND = 500, MAT_MORPHIUM = 350)
+ build_path = /obj/item/weapon/xenobio/monkey_gun
+ sort_string = "HBBA"
+
+/datum/design/item/weapon/xenobio/grinder
+ name = "portable slime processor"
+ desc = "This high tech device combines the slime processor with the latest in woodcutting technology."
+ id = "slime_scanner"
+ req_tech = list(TECH_MAGNET = 4, TECH_BIO = 7)
+ materials = list(MAT_STEEL = 500, MAT_GLASS = 500, MAT_DIAMOND = 500, MAT_MORPHIUM = 100)
+ build_path = /obj/item/weapon/slime_grinder
+ sort_string = "HBBB"
\ No newline at end of file
From d220b9b73d0d646f06119e003592872f619b1c65 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 22:26:03 -0400
Subject: [PATCH 09/14] Near final
---
code/game/objects/items/weapons/storage/bags_vr.dm | 2 +-
.../game/objects/structures/crates_lockers/closets/l3closet.dm | 3 ++-
code/modules/xenobio/items/weapons_vr.dm | 2 +-
vorestation.dme | 3 ++-
4 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/code/game/objects/items/weapons/storage/bags_vr.dm b/code/game/objects/items/weapons/storage/bags_vr.dm
index 8f359a5f06..ccafe5fa63 100644
--- a/code/game/objects/items/weapons/storage/bags_vr.dm
+++ b/code/game/objects/items/weapons/storage/bags_vr.dm
@@ -5,7 +5,7 @@
name = "xenobiology bag"
icon = 'icons/obj/storage.dmi'
icon_state = "chembag"
- max_storage_space = ITEMSIZE_COST_NORMAL * 25
+ max_storage_space = ITEMSIZE_COST_SMALL * 12
max_w_class = ITEMSIZE_NORMAL
w_class = ITEMSIZE_SMALL
can_hold = list(
diff --git a/code/game/objects/structures/crates_lockers/closets/l3closet.dm b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
index d9692abdc3..c592c3e69f 100644
--- a/code/game/objects/structures/crates_lockers/closets/l3closet.dm
+++ b/code/game/objects/structures/crates_lockers/closets/l3closet.dm
@@ -49,7 +49,8 @@
/obj/structure/closet/l3closet/scientist/double
starts_with = list(
/obj/item/clothing/suit/bio_suit/scientist = 2,
- /obj/item/clothing/head/bio_hood/scientist = 2)
+ /obj/item/clothing/head/bio_hood/scientist = 2,
+ /obj/item/weapon/storage/bag/xeno = 2) // VOREEdit, adding the xenobag to xenobio.
/obj/structure/closet/l3closet/medical
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index c46a580874..e3c93800eb 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -97,7 +97,7 @@
cube.Expand()
loaded_item = null
firable = FALSE
- VARSET_IN(src, firable, TRUE, 5 SECONDS)
+ VARSET_IN(src, firable, TRUE, 2 SECONDS)
/* Eh, cutting this. Not much reason for it.
/obj/item/weapon/xenobio/potion_gun
diff --git a/vorestation.dme b/vorestation.dme
index 93f1745df0..28f0fd452a 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -3722,6 +3722,7 @@
#include "code\modules\research\designs\weapons_vr.dm"
#include "code\modules\research\designs\xenoarch_toys.dm"
#include "code\modules\research\designs\xenobio_toys.dm"
+#include "code\modules\research\designs\xenobio_toys_vr.dm"
#include "code\modules\research\designs\circuits\ai_modules.dm"
#include "code\modules\research\designs\circuits\ai_modules_vr.dm"
#include "code\modules\research\designs\circuits\circuits.dm"
@@ -4103,6 +4104,7 @@
#include "maps\expedition_vr\beach\submaps\mountains.dm"
#include "maps\expedition_vr\beach\submaps\mountains_areas.dm"
#include "maps\gateway_archive_vr\blackmarketpackers.dm"
+#include "maps\groundbase\groundbase.dm"
#include "maps\offmap_vr\om_ships\abductor.dm"
#include "maps\southern_cross\items\clothing\sc_accessory.dm"
#include "maps\southern_cross\items\clothing\sc_suit.dm"
@@ -4119,6 +4121,5 @@
#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
-#include "maps\virgo_minitest\virgo_minitest.dm"
#include "maps\~map_system\maps.dm"
// END_INCLUDE
From cd9c7fab9ef738f46b033277e6a78ecc31e1ed8b Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 22:27:33 -0400
Subject: [PATCH 10/14] Cleanup
Removing cut content
---
code/modules/xenobio/items/weapons_vr.dm | 44 ++----------------------
1 file changed, 2 insertions(+), 42 deletions(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index e3c93800eb..9eb1412a97 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -3,10 +3,6 @@
desc = "You shouldn't see this!"
icon = 'icons/obj/gun_vr.dmi'
icon_state = "harpoon-2"
- //fire_sound = 'sound/weapons/taser2.ogg'
- //charge_cost = 120 // Twice as many shots.
- //projectile_type = /obj/item/projectile/beam/xenobio // Place holder for now
- //accuracy = 30 // Just use the same hit rate as xenotasers
var/loadable_item = null
var/loaded_item = null
var/loadable_name = null
@@ -99,41 +95,17 @@
firable = FALSE
VARSET_IN(src, firable, TRUE, 2 SECONDS)
-/* Eh, cutting this. Not much reason for it.
-/obj/item/weapon/xenobio/potion_gun
- name = "Ranged Potion Delivery Device"
- desc = "This device is designed to deliver a potion to your target at range, it has a slot to attach a xenobio potion."
- loadable_item = /obj/item/slimepotion
- loadable_name = "Slime Potion"
-*/
// Instead of bringing the slime to the grinder, lets bring the grinder to the slime! This will process slimes and monkies one at a time.
/obj/item/weapon/slime_grinder
name = "portable slime processor"
desc = "An industrial grinder used to automate the process of slime core extraction. It can also recycle biomatter. This one appears miniturized"
//icon = 'icons/obj/weapons_vr.dmi'
icon_state = "chainsaw0"
- //icon_state = "slimegrinder"
- //item_icons = list(
- // slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi',
- // slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi',
- // )
var/processing = FALSE // So I heard you like processing.
var/list/to_be_processed = list()
var/monkeys_recycled = 0
description_info = "Click a monkey or slime to begin processing."
-/*
-/obj/machinery/processor/attack_hand(mob/living/user)
- if(processing)
- to_chat(user, "The processor is in the process of processing!")
- return
- if(to_be_processed.len)
- spawn(1)
- begin_processing()
- else
- to_chat(user, "The processor is empty.")
- playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 1)
- return
-*/
+
/obj/item/weapon/slime_grinder/proc/extract(var/atom/movable/AM, var/mob/living/user)
processing = TRUE
if(istype(AM, /mob/living/simple_mob/slime))
@@ -144,8 +116,6 @@
new S.coretype(get_turf(AM))
playsound(src, 'sound/effects/splat.ogg', 50, 1)
S.cores--
- //sleep(1 SECOND)
- //to_be_processed.Remove(S)
qdel(S)
if(istype(AM, /mob/living/carbon/human/monkey))
@@ -153,7 +123,6 @@
if(do_after(user, 15))
var/mob/living/carbon/human/M = AM
playsound(src, 'sound/effects/splat.ogg', 50, 1)
- //to_be_processed.Remove(M)
qdel(M)
monkeys_recycled++
sleep(1 SECOND)
@@ -180,9 +149,6 @@
return FALSE
/obj/item/weapon/slime_grinder/attack(mob/M as mob, mob/living/user as mob)
- //if(user.stat || user.incapacitated(INCAPACITATION_DISABLED) || !istype(user))
- // return
- //insert(M, user)
if(processing)
return
if(!can_insert(M))
@@ -191,10 +157,4 @@
return
extract(M, user)
- return ..()
-/* Cut for balance :)
-/obj/item/weapon/gun/energy/xenobio/extract_gun
- name = "Ranged Extract Interaction Device"
- desc = "This is the latest in extract interaction technology! No longer shall you stand in harms way when activating a gold slime."
- loadable_item = /obj/item/slime_extract
-*/
\ No newline at end of file
+ return ..()
\ No newline at end of file
From 12af0b93bbd445ea2321f8472d07cb0a1b9ae0de Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 22:45:07 -0400
Subject: [PATCH 11/14] Update weapons_vr.dm
Heck, how'd I miss this
---
code/modules/xenobio/items/weapons_vr.dm | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 9eb1412a97..2c4204e9ad 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -17,7 +17,7 @@
/obj/item/weapon/xenobio/attack_hand(mob/user as mob)
if(user.get_inactive_hand() == src && loaded_item)
user.put_in_hands(loaded_item)
- user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
loaded_item = null
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
else
@@ -32,15 +32,14 @@
user.drop_item()
I.loc = src
loaded_item = I
- //to_chat(user, "You slot [I] into [src].")
- user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
+ user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
return 1
..()
/obj/item/weapon/xenobio/attack_self(mob/living/user as mob)
if(loaded_item)
user.put_in_hands(loaded_item)
- user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
loaded_item = null
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
From 05c5d5f44a025c5d378e4e8e5295f49ad870011a Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 22:59:32 -0400
Subject: [PATCH 12/14] Update weapons_vr.dm
Fixing a derp
---
code/modules/xenobio/items/weapons_vr.dm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 2c4204e9ad..4f7ef3d1c2 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -32,7 +32,7 @@
user.drop_item()
I.loc = src
loaded_item = I
- user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
+ user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
return 1
..()
From d0032979d4d382cadb6346e6e3039be8a419be64 Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 23:05:04 -0400
Subject: [PATCH 13/14] Update weapons_vr.dm
Whoops
---
code/modules/xenobio/items/weapons_vr.dm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/code/modules/xenobio/items/weapons_vr.dm b/code/modules/xenobio/items/weapons_vr.dm
index 4f7ef3d1c2..24a91715a4 100644
--- a/code/modules/xenobio/items/weapons_vr.dm
+++ b/code/modules/xenobio/items/weapons_vr.dm
@@ -17,7 +17,7 @@
/obj/item/weapon/xenobio/attack_hand(mob/user as mob)
if(user.get_inactive_hand() == src && loaded_item)
user.put_in_hands(loaded_item)
- user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
loaded_item = null
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
else
@@ -26,20 +26,20 @@
/obj/item/weapon/xenobio/attackby(obj/item/I as obj, mob/user as mob)
if(istype(I, loadable_item))
if(loaded_item)
- to_chat(user, "[I] doesn't seem to fit into [src].")
+ to_chat(user, "[I] doesn't seem to fit into [src].")
return
//var/obj/item/weapon/reagent_containers/glass/beaker/B = I
user.drop_item()
I.loc = src
loaded_item = I
- user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
+ user.visible_message("[user] inserts [I] into [src].", "You slot [I] into [src].")
return 1
..()
/obj/item/weapon/xenobio/attack_self(mob/living/user as mob)
if(loaded_item)
user.put_in_hands(loaded_item)
- user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
+ user.visible_message("[user] removes [loaded_item] from [src].", "You remove [loaded_item] from [src].")
loaded_item = null
playsound(src, 'sound/weapons/empty.ogg', 50, 1)
From bb015daad39e45f985851a6fe762d17d7647c23e Mon Sep 17 00:00:00 2001
From: FartMaster69420 <78667902+FartMaster69420@users.noreply.github.com>
Date: Sat, 9 Apr 2022 23:12:42 -0400
Subject: [PATCH 14/14] Update xenobio_toys_vr.dm
this is why I shouldn't code late at night
---
code/modules/research/designs/xenobio_toys_vr.dm | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/code/modules/research/designs/xenobio_toys_vr.dm b/code/modules/research/designs/xenobio_toys_vr.dm
index ea46432791..39491c1b0c 100644
--- a/code/modules/research/designs/xenobio_toys_vr.dm
+++ b/code/modules/research/designs/xenobio_toys_vr.dm
@@ -1,5 +1,7 @@
/datum/design/item/weapon/xenobio/monkey_gun
- id = "bluespace monkey deployment system"
+ name = "bluespace monkey deployment system"
+ desc = "An Advanced monkey teleportation and rehydration system. For serious monkey business."
+ id = "monkey_gun"
req_tech = list(TECH_MATERIAL = 3, TECH_BIO = 3, TECH_POWER = 4, TECH_COMBAT = 4, TECH_BLUESPACE = 6)
materials = list(MAT_PLASTEEL = 5000, MAT_GLASS = 5000, MAT_DIAMOND = 500, MAT_MORPHIUM = 350)
build_path = /obj/item/weapon/xenobio/monkey_gun
@@ -8,7 +10,7 @@
/datum/design/item/weapon/xenobio/grinder
name = "portable slime processor"
desc = "This high tech device combines the slime processor with the latest in woodcutting technology."
- id = "slime_scanner"
+ id = "slime_grinder"
req_tech = list(TECH_MAGNET = 4, TECH_BIO = 7)
materials = list(MAT_STEEL = 500, MAT_GLASS = 500, MAT_DIAMOND = 500, MAT_MORPHIUM = 100)
build_path = /obj/item/weapon/slime_grinder