diff --git a/baystation12.dme b/baystation12.dme
index f497d055bd9..10b2d3f4354 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -14,6 +14,7 @@
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/ShieldGen"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
#define FILE_DIR "code/WorkInProgress/Susan"
+#define FILE_DIR "code/WorkInProgress/Uristqwerty"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
index cebc50e79be..0ff860d74be 100644
--- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
+++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm
@@ -19,19 +19,25 @@
icon_state = "spiderbot-chassis"
icon_living = "spiderbot-chassis"
icon_dead = "spiderbot-smashed"
- small = 1
- speak_emote = list("beeps","clicks","chirps")
+
health = 10
maxHealth = 10
+
attacktext = "shocks"
attacktext = "shocks"
melee_damage_lower = 1
melee_damage_upper = 3
+
response_help = "pets"
response_disarm = "shoos"
response_harm = "stomps on"
+
+ var/obj/item/held_item = null //Storage for single item they can hold.
wander = 0
speed = -1 //Spiderbots gotta go fast.
+ //pass_flags = PASSTABLE //Maybe griefy?
+ small = 1
+ speak_emote = list("beeps","clicks","chirps")
/mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob)
@@ -100,9 +106,14 @@
var/obj/item/device/pda/pda = O
id_card = pda.id
- if(check_access(id_card))
+ if(access_robotics in id_card.access)
user << "\blue You swipe your access card and pop the brain out of [src]."
eject_brain()
+
+ if(held_item)
+ held_item.loc = src.loc
+ held_item = null
+
return 1
else
user << "\red You swipe your card, with no effect."
@@ -139,7 +150,7 @@
src.mind = M.brainmob.mind
src.mind.key = M.brainmob.key
- src.name = "spider-bot ([M.brainmob.name])"
+ src.name = "Spider-bot ([M.brainmob.name])"
/mob/living/simple_animal/spiderbot/proc/update_icon()
if(mmi)
@@ -188,18 +199,6 @@
src.Del()
return
-/mob/living/simple_animal/spiderbot/proc/check_access(obj/item/weapon/card/id/I)
-
- var/list/L = req_access
- if(!L.len) //no access requirements.
- return 1
- if(!I || !istype(I, /obj/item/weapon/card/id) || !I.access) //not ID or no access
- return 0
- for(var/req in req_access)
- if(!(req in I.access)) //doesn't have this access
- return 0
- return 1
-
//copy paste from alien/larva, if that func is updated please update this one also
/mob/living/simple_animal/spiderbot/verb/ventcrawl()
set name = "Crawl through Vent"
@@ -235,11 +234,6 @@
if(loc==startloc)
var/obj/target_vent = vents[selection_position]
if(target_vent)
- /*
- for(var/mob/O in oviewers(src, null))
- if ((O.client && !( O.blinded )))
- O.show_message(text("[src] scrambles into the ventillation ducts!"), 1)
- */
loc = target_vent.loc
else
src << "\blue You need to remain still while entering a vent."
@@ -260,16 +254,64 @@
if (layer != TURF_LAYER+0.2)
layer = TURF_LAYER+0.2
src << text("\blue You are now hiding.")
- /*
- for(var/mob/O in oviewers(src, null))
- if ((O.client && !( O.blinded )))
- O << text("[] scurries to the ground!", src)
- */
else
layer = MOB_LAYER
src << text("\blue You have stopped hiding.")
- /*
- for(var/mob/O in oviewers(src, null))
- if ((O.client && !( O.blinded )))
- O << text("[] slowly peaks up from the ground...", src)
- */
\ No newline at end of file
+
+//Cannibalized from the parrot mob. ~Zuhayr
+
+/mob/living/simple_animal/spiderbot/verb/drop_held_item()
+ set name = "Drop held item"
+ set category = "Spiderbot"
+ set desc = "Drop the item you're holding."
+
+ if(stat)
+ return
+
+ if(!held_item)
+ usr << "\red You have nothing to drop!"
+ return 0
+
+ if(istype(held_item, /obj/item/weapon/grenade))
+ visible_message("\red [src] launches the [held_item]!", "\red You launch the [held_item]!", "You hear a skittering noise and a thump!")
+ var/obj/item/weapon/grenade/G = held_item
+ G.loc = src.loc
+ G.prime()
+ held_item = null
+ return 1
+
+ visible_message("\blue [src] drops the [held_item]!", "\blue You drop the [held_item]!", "You hear a skittering noise and a soft thump.")
+
+ held_item.loc = src.loc
+ held_item = null
+ return 1
+
+ return
+
+/mob/living/simple_animal/spiderbot/verb/get_item()
+ set name = "Pick up item"
+ set category = "Spiderbot"
+ set desc = "Allows you to take a nearby small item."
+
+ if(stat)
+ return -1
+
+ if(held_item)
+ src << "\red You are already holding the [held_item]"
+ return 1
+
+ var/list/items = list()
+ for(var/obj/item/I in view(1,src))
+ if(I.loc != src && I.w_class <= 2)
+ items.Add(I)
+
+ var/obj/selection = input("Select an item.", "Pickup") in items
+
+ if(selection)
+ held_item = selection
+ selection.loc = src
+ visible_message("\blue [src] scoops up the [held_item]!", "\blue You grab the [held_item]!", "You hear a skittering noise and a clink.")
+ return held_item
+
+ src << "\red There is nothing of interest to take."
+ return 0
\ No newline at end of file