diff --git a/baystation12.dme b/baystation12.dme index 1b1a937ca7e..7aa66972893 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1067,6 +1067,7 @@ #include "code\modules\mob\living\simple_animal\constructs.dm" #include "code\modules\mob\living\simple_animal\corpse.dm" #include "code\modules\mob\living\simple_animal\parrot.dm" +#include "code\modules\mob\living\simple_animal\powers.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" #include "code\modules\mob\living\simple_animal\tribbles.dm" diff --git a/code/modules/mob/living/simple_animal/borer.dm b/code/modules/mob/living/simple_animal/borer.dm index d3166dd974f..a2c8bd561c2 100644 --- a/code/modules/mob/living/simple_animal/borer.dm +++ b/code/modules/mob/living/simple_animal/borer.dm @@ -39,6 +39,7 @@ friendly = "prods" wander = 0 pass_flags = PASSTABLE + can_hide = 1 var/chemicals = 10 // Chemicals used for reproduction and spitting neurotoxin. var/mob/living/carbon/human/host // Human host for the brain worm. @@ -356,19 +357,6 @@ mob/living/simple_animal/borer/proc/detatch() src << "\blue You must be standing on or beside an air vent to enter it." return -//copy paste from alien/larva, if that func is updated please update this one alsoghost -/mob/living/simple_animal/borer/verb/hide() - set name = "Hide" - set desc = "Allows to hide beneath tables or certain items. Toggled on or off." - set category = "Alien" - - if (layer != TURF_LAYER+0.2) - layer = TURF_LAYER+0.2 - src << text("\blue You are now hiding.") - else - layer = MOB_LAYER - src << text("\blue You have stopped hiding.") - //Procs for grabbing players. mob/living/simple_animal/borer/proc/request_player() for(var/mob/dead/observer/O in player_list) diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index 98ab4560a3a..cb5378b8bbf 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -19,6 +19,7 @@ friendly = "pinches" var/obj/item/inventory_head var/obj/item/inventory_mask + can_hide = 1 /mob/living/simple_animal/crab/Life() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 963b0513bc4..a0920c16320 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -168,6 +168,7 @@ var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE small = 1 + can_hide = 1 /mob/living/simple_animal/chick/New() ..() @@ -210,6 +211,7 @@ var/global/chicken_count = 0 var/_color pass_flags = PASSTABLE small = 1 + can_hide = 1 /mob/living/simple_animal/chicken/New() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 171e96fc62b..0b513d524fb 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -15,4 +15,6 @@ melee_damage_upper = 2 response_help = "pets" response_disarm = "shoos" - response_harm = "stomps on" \ No newline at end of file + response_harm = "stomps on" + pass_flags = PASSTABLE + can_hide = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 03e29d0dc94..5cafd5b9ce5 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -27,6 +27,7 @@ minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius universal_speak = 0 + can_hide = 1 /mob/living/simple_animal/mouse/Life() ..() @@ -121,29 +122,6 @@ src << "\blue You must be standing on or beside an air vent to enter it." return -//copy paste from alien/larva, if that func is updated please update this one alsoghost -/mob/living/simple_animal/mouse/verb/hide() - set name = "Hide" - set desc = "Allows to hide beneath tables or certain items. Toggled on or off." - set category = "Mouse" - - 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) - */ - //make mice fit under tables etc? this was hacky, and not working /* /mob/living/simple_animal/mouse/Move(var/dir) diff --git a/code/modules/mob/living/simple_animal/friendly/mushroom.dm b/code/modules/mob/living/simple_animal/friendly/mushroom.dm index ef2eb6cd61e..00c1a274e88 100644 --- a/code/modules/mob/living/simple_animal/friendly/mushroom.dm +++ b/code/modules/mob/living/simple_animal/friendly/mushroom.dm @@ -13,4 +13,6 @@ response_help = "pets the" response_disarm = "gently pushes aside the" response_harm = "whacks the" - harm_intent_damage = 5 \ No newline at end of file + harm_intent_damage = 5 + pass_flags = PASSTABLE + can_hide = 1 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index 95d451fd909..3749733ca8b 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -13,6 +13,7 @@ response_harm = "stomps on" emote_see = list("jiggles", "bounces in place") var/colour = "grey" + pass_flags = PASSTABLE /mob/living/simple_animal/slime/Bump(atom/movable/AM as mob|obj, yes) diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 2f936eb5970..e072c5de9a8 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -40,6 +40,7 @@ //pass_flags = PASSTABLE //Maybe griefy? small = 1 speak_emote = list("beeps","clicks","chirps") + can_hide = 1 /mob/living/simple_animal/spiderbot/attackby(var/obj/item/O as obj, var/mob/user as mob) @@ -260,19 +261,6 @@ src << "\blue You must be standing on or beside an air vent to enter it." return -//copy paste from alien/larva, if that func is updated please update this one alsoghost -/mob/living/simple_animal/spiderbot/verb/hide() - set name = "Hide" - set desc = "Allows to hide beneath tables or certain items. Toggled on or off." - set category = "Spiderbot" - - if (layer != TURF_LAYER+0.2) - layer = TURF_LAYER+0.2 - src << text("\blue You are now hiding.") - else - layer = MOB_LAYER - src << text("\blue You have stopped hiding.") - //Cannibalized from the parrot mob. ~Zuhayr /mob/living/simple_animal/spiderbot/verb/drop_held_item() diff --git a/code/modules/mob/living/simple_animal/friendly/tomato.dm b/code/modules/mob/living/simple_animal/friendly/tomato.dm index 1248e702d2d..285769a595c 100644 --- a/code/modules/mob/living/simple_animal/friendly/tomato.dm +++ b/code/modules/mob/living/simple_animal/friendly/tomato.dm @@ -12,4 +12,6 @@ response_help = "prods the" response_disarm = "pushes aside the" response_harm = "smacks the" - harm_intent_damage = 5 \ No newline at end of file + harm_intent_damage = 5 + pass_flags = PASSTABLE + can_hide = 1 \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/powers.dm b/code/modules/mob/living/simple_animal/powers.dm new file mode 100644 index 00000000000..060c85fe4d0 --- /dev/null +++ b/code/modules/mob/living/simple_animal/powers.dm @@ -0,0 +1,20 @@ +/mob/living/simple_animal/verb/hide() + set name = "Hide" + set desc = "Allows to hide beneath tables or certain items. Toggled on or off." + set category = "Animal" + + if(stat != CONSCIOUS) + return + + if (layer != TURF_LAYER+0.2) + layer = TURF_LAYER+0.2 + src << text("\green 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("\green 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 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 88099212736..629413238a0 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -55,10 +55,14 @@ var/wall_smash = 0 //if they can smash walls var/speed = 0 //LETS SEE IF I CAN SET SPEEDS FOR SIMPLE MOBS WITHOUT DESTROYING EVERYTHING. Higher speed is slower, negative speed is faster + var/can_hide = 0 /mob/living/simple_animal/New() ..() verbs -= /mob/verb/observe + if(!can_hide) + verbs -= /mob/living/simple_animal/verb/hide + /mob/living/simple_animal/Login() if(src && src.client)