diff --git a/code/datums/supplypacks/science_vr.dm b/code/datums/supplypacks/science_vr.dm
index 0bc0b3f740d..08ed1b68944 100644
--- a/code/datums/supplypacks/science_vr.dm
+++ b/code/datums/supplypacks/science_vr.dm
@@ -26,7 +26,8 @@
/obj/item/weapon/disk/limb/dsi_sergal,
/obj/item/weapon/disk/limb/dsi_nevrean,
/obj/item/weapon/disk/limb/dsi_vulpkanin,
- /obj/item/weapon/disk/limb/dsi_akula
+ /obj/item/weapon/disk/limb/dsi_akula,
+ /obj/item/weapon/disk/limb/eggnerdltd
)
cost = 40
containertype = /obj/structure/closet/crate/secure
@@ -55,4 +56,13 @@
containertype = /obj/structure/largecrate/animal/dangerous
containername = "EXTREMELY Dangerous Predator crate"
access = access_xenobiology
- contraband = 1
\ No newline at end of file
+ contraband = 1
+
+/datum/supply_packs/sci/guardbeast
+ name = "V.A.R.M.A.corp autoNOMous security solution"
+ cost = 199
+ containertype = /obj/structure/largecrate/animal/guardbeast
+ containername = "V.A.R.M.A.corp autoNOMous security solution crate"
+ access = list(
+ access_security,
+ access_xenobiology)
\ No newline at end of file
diff --git a/code/game/objects/structures/crates_lockers/largecrate_vr.dm b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
index 0e073eb865d..82920df91b0 100644
--- a/code/game/objects/structures/crates_lockers/largecrate_vr.dm
+++ b/code/game/objects/structures/crates_lockers/largecrate_vr.dm
@@ -53,6 +53,8 @@
/mob/living/simple_animal/hostile/bear;0.5,
/mob/living/simple_animal/hostile/bear/brown;0.5,
/mob/living/simple_animal/hostile/carp,
+ /mob/living/simple_animal/otie/frond;0.5,
+ /mob/living/simple_animal/otie/frond/cotie;0.5,
/mob/living/simple_animal/hostile/mimic)
..()
@@ -70,4 +72,11 @@
/mob/living/simple_animal/hostile/alien/drone,
/mob/living/simple_animal/hostile/alien/sentinel,
/mob/living/simple_animal/hostile/alien/queen)
- ..()
\ No newline at end of file
+ ..()
+
+/obj/structure/largecrate/animal/guardbeast
+ name = "V.A.R.M.A.corp autoNOMous security solution"
+ desc = "The V.A.R.M.A.corp bioengineering division flagship product on trained optimal snowflake guard dogs."
+ icon = 'icons/obj/storage_vr.dmi'
+ icon_state = "sotiecrate"
+ held_type = /mob/living/simple_animal/otie/frond/security
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
index 4711b2dc07f..3702b778aa5 100644
--- a/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
+++ b/code/modules/mob/living/silicon/robot/dogborg/dog_sleeper_vr.dm
@@ -461,7 +461,7 @@
user << "Your [src.name] is full. Eject or process contents to continue."
return
- if(istype(target, /obj/item))
+ if(istype(target, /obj/item) || istype(target, /obj/effect/decal/remains))
var/obj/target_obj = target
if(target_obj.w_class > ITEMSIZE_LARGE)
user << "\The [target] is too large to fit into your [src.name]"
@@ -492,6 +492,8 @@
processing_objects.Add(src)
user.visible_message("[hound.name]'s garbage processor groans lightly as [trashman] slips inside.", "Your garbage compactor groans lightly as [trashman] slips inside.")
playsound(hound, 'sound/vore/gulp.ogg', 80, 1)
+ hound.sleeper_r = 1
+ hound.updateicon()
return
return
//Marking shit changed again because the random travis bug is having its shenanigans again \o/
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_animal/vore/otie.dm b/code/modules/mob/living/simple_animal/vore/otie.dm
index 5b9cfe9c8d8..71a7fd5b33b 100644
--- a/code/modules/mob/living/simple_animal/vore/otie.dm
+++ b/code/modules/mob/living/simple_animal/vore/otie.dm
@@ -1,4 +1,4 @@
-/mob/living/simple_animal/otie //Spawn this one only if you're looking for a bad time.
+/mob/living/simple_animal/otie //Spawn this one only if you're looking for a bad time. Not friendly.
name = "otie"
desc = "The classic bioengineered longdog."
icon = 'icons/mob/vore64x32.dmi'
@@ -8,8 +8,8 @@
icon_rest = "otie_rest"
faction = "otie"
recruitable = 1
- maxHealth = 120
- health = 120
+ maxHealth = 100
+ health = 100
minbodytemp = 200
move_to_delay = 4
hostile = 1
@@ -43,15 +43,12 @@
var/mob/living/carbon/human/friend
var/tamed = 0
-/mob/living/simple_animal/otie/fluff
+/mob/living/simple_animal/otie/frond //gets the pet2tame feature. starts out hostile tho so get gamblin'
name = "otie"
desc = "The classic bioengineered longdog. This one might even tolerate you!"
- icon_state = "otie"
- icon_living = "otie"
- icon_rest = "otie_rest"
faction = "neutral"
-/mob/living/simple_animal/otie/fluff/cotie
+/mob/living/simple_animal/otie/frond/cotie //same as above but has a little collar :v
name = "tamed otie"
desc = "The classic bioengineered longdog. This one has a nice little collar on its neck. However a proper domesticated otie is an oxymoron and the collar is likely just a decoration."
icon_state = "cotie"
@@ -59,7 +56,7 @@
icon_rest = "cotie_rest"
faction = "neutral"
-/mob/living/simple_animal/otie/fluff/security
+/mob/living/simple_animal/otie/frond/security //tame by default unless you're a marked crimester. can be befriended to follow with pets tho.
name = "guard otie"
desc = "The V.A.R.M.A.corp bioengineering division flagship product on trained optimal snowflake guard dogs."
icon_state = "sotie"
@@ -68,7 +65,7 @@
icon_dead = "sotie-dead"
faction = "neutral"
tamed = 1
- maxHealth = 150
+ maxHealth = 150 //armored or something
health = 150
loot_list = list(/obj/item/clothing/glasses/sunglasses/sechud,/obj/item/clothing/suit/armor/vest/alt)
@@ -99,7 +96,7 @@
else
return found_atom
-/mob/living/simple_animal/otie/fluff/security/Found(var/atom/found_atom)
+/mob/living/simple_animal/otie/frond/security/Found(var/atom/found_atom)
if(!SA_attackable(found_atom))
return null
if(istype(found_atom,/mob/living/simple_animal/mouse))
@@ -120,12 +117,12 @@
else
return found_atom
-/mob/living/simple_animal/otie/fluff/security/proc/check_threat(var/mob/living/M)
+/mob/living/simple_animal/otie/frond/security/proc/check_threat(var/mob/living/M)
if(!M || !ishuman(M) || M.stat == DEAD || src == M)
return 0
return M.assess_perp(0, 0, 0, check_records, check_arrest)
-/mob/living/simple_animal/otie/fluff/security/set_target(var/mob/M)
+/mob/living/simple_animal/otie/frond/security/set_target(var/mob/M)
ai_log("SetTarget([M])",2)
if(!M || (world.time - last_target_time < 5 SECONDS) && target_mob)
ai_log("SetTarget() can't set it again so soon",3)
@@ -153,7 +150,7 @@
return 0
-/mob/living/simple_animal/otie/fluff/security/proc/target_name(mob/living/T)
+/mob/living/simple_animal/otie/frond/security/proc/target_name(mob/living/T)
if(ishuman(T))
var/mob/living/carbon/human/H = T
return H.get_id_name("unidentified person")
@@ -161,7 +158,7 @@
//Basic friend AI
-/mob/living/simple_animal/otie/fluff/Life()
+/mob/living/simple_animal/otie/frond/Life()
. = ..()
if(!. || ai_inactive || !friend) return
@@ -222,4 +219,4 @@
vore_capacity = 1
vore_escape_chance = 8
vore_pounce_chance = 16
- vore_icons = SA_ICON_LIVING
+ vore_icons = SA_ICON_LIVING
\ No newline at end of file
diff --git a/icons/mob/widerobot_vr.dmi b/icons/mob/widerobot_vr.dmi
index 5fddf295892..8896bd01eb2 100644
Binary files a/icons/mob/widerobot_vr.dmi and b/icons/mob/widerobot_vr.dmi differ
diff --git a/icons/obj/storage_vr.dmi b/icons/obj/storage_vr.dmi
index 35181387215..f337551005e 100644
Binary files a/icons/obj/storage_vr.dmi and b/icons/obj/storage_vr.dmi differ
diff --git a/vorestation.dme b/vorestation.dme
index 7a59331e5fb..919cc983fbf 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1934,6 +1934,7 @@
#include "code\modules\mob\living\simple_animal\vore\dragon.dm"
#include "code\modules\mob\living\simple_animal\vore\frog.dm"
#include "code\modules\mob\living\simple_animal\vore\horse.dm"
+#include "code\modules\mob\living\simple_animal\vore\otie.dm"
#include "code\modules\mob\living\simple_animal\vore\panther.dm"
#include "code\modules\mob\living\simple_animal\vore\snake.dm"
#include "code\modules\mob\living\simple_animal\vore\wah.dm"