diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 61aa9962d6b..558538d97ef 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -97,6 +97,7 @@ //used by canUseTopic() //Sizes of mobs, used by mob/living/var/mob_size +#define MOB_SIZE_TINY 0 #define MOB_SIZE_SMALL 1 #define MOB_SIZE_HUMAN 2 #define MOB_SIZE_LARGE 3 diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 17c514f8ffe..e12f568c694 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -1,3 +1,7 @@ + +/obj/item/weapon/restraints + var/breakouttime = 600 + //Handcuffs /obj/item/weapon/restraints/handcuffs @@ -14,7 +18,7 @@ throw_range = 5 m_amt = 500 origin_tech = "materials=1" - var/breakouttime = 600 //Deciseconds = 60s = 1 minute + breakouttime = 600 //Deciseconds = 60s = 1 minute var/cuffsound = 'sound/weapons/handcuffs.ogg' var/trashtype = null //for disposable cuffs @@ -144,7 +148,7 @@ w_class = 3.0 origin_tech = "materials=1" slowdown = 7 - var/breakouttime = 300 //Deciseconds = 30s = 0.5 minute + breakouttime = 300 //Deciseconds = 30s = 0.5 minute /obj/item/weapon/restraints/legcuffs/beartrap name = "bear trap" @@ -169,26 +173,29 @@ /obj/item/weapon/restraints/legcuffs/beartrap/Crossed(AM as mob|obj) if(armed && isturf(src.loc)) - if( (iscarbon(AM) || isanimal(AM)) && !istype(AM, /mob/living/simple_animal/parrot) && !istype(AM, /mob/living/simple_animal/construct) && !istype(AM, /mob/living/simple_animal/shade) && !istype(AM, /mob/living/simple_animal/hostile/viscerator)) + if(isliving(AM)) var/mob/living/L = AM - armed = 0 - icon_state = "beartrap0" - playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) - L.visible_message("[L] triggers \the [src].", \ - "You trigger \the [src]!") - - if(ishuman(AM)) - var/mob/living/carbon/H = AM - if(H.lying) - H.apply_damage(20,BRUTE,"chest") - else - H.apply_damage(20,BRUTE,(pick("l_leg", "r_leg"))) - if(!H.legcuffed) //beartrap can't cuff you leg if there's already a beartrap or legcuffs. - H.legcuffed = src - src.loc = H - H.update_inv_legcuffed(0) - feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. - - else - L.apply_damage(20,BRUTE) + var/snap = 0 + var/def_zone = "chest" + if(iscarbon(L)) + var/mob/living/carbon/C = L + snap = 1 + if(!C.lying) + def_zone = pick("l_leg", "r_leg") + if(!C.legcuffed) //beartrap can't cuff your leg if there's already a beartrap or legcuffs. + C.legcuffed = src + src.loc = C + C.update_inv_legcuffed(0) + feedback_add_details("handcuffs","B") //Yes, I know they're legcuffs. Don't change this, no need for an extra variable. The "B" is used to tell them apart. + else if(isanimal(L)) + var/mob/living/simple_animal/SA = L + if(!SA.flying && SA.mob_size > MOB_SIZE_TINY) + snap = 1 + if(snap) + armed = 0 + icon_state = "beartrap0" + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) + L.visible_message("[L] triggers \the [src].", \ + "You trigger \the [src]!") + L.apply_damage(20,BRUTE, def_zone) ..() \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index d657f0e1b25..d2d654d66f6 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -86,7 +86,7 @@ var/mob/living/L = AM if(L.buckled || L.mob_size > max_mob_size) //buckled mobs and mobs too big for the container don't get inside closets. return 0 - if(L.mob_size > 0) + if(L.mob_size > MOB_SIZE_TINY) //decently sized mobs take more space than objects. var/mobs_stored = 0 for(var/mob/living/M in contents) mobs_stored++ diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index da83251d5ce..ffbdc85641b 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -158,10 +158,6 @@ /mob/living/carbon/alien/getTrail() return "xltrails" -/mob/living/carbon/alien/cuff_break(obj/item/I, mob/living/carbon/C) - playsound(C, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when breaking free. - ..() - /mob/living/carbon/alien/verb/nightvisiontoggle() set name = "Toggle Night Vision" set category = "Alien" diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 337f05ebbff..1367cad23e0 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -116,4 +116,8 @@ unEquip(l_store) /mob/living/carbon/alien/humanoid/reagent_check(var/datum/reagent/R) - return 0 \ No newline at end of file + return 0 + +/mob/living/carbon/alien/humanoid/cuff_resist(obj/item/I) + playsound(src, 'sound/voice/hiss5.ogg', 40, 1, 1) //Alien roars when starting to break free + ..(I, cuff_break = 1) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 22a879adae3..a673cb37fec 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -382,3 +382,111 @@ var/const/GALOSHES_DONT_HELP = 8 else show_message("The blob attacks!") adjustBruteLoss(10) + +/mob/living/carbon/proc/spin(spintime, speed) + spawn() + var/D = dir + while(spintime >= speed) + sleep(speed) + switch(D) + if(NORTH) + D = EAST + if(SOUTH) + D = WEST + if(EAST) + D = SOUTH + if(WEST) + D = NORTH + dir = D + spintime -= speed + return + +/mob/living/carbon/resist_buckle() + if(handcuffed) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + visible_message("[src] attempts to unbuckle themself!", \ + "You attempt to unbuckle yourself. (This will take around one minute and you need to stay still.)") + if(do_after(src, 600)) + if(!buckled) + return + buckled.user_unbuckle_mob(src,src) + else + if(src && buckled) + src << "You fail to unbuckle yourself!" + else + buckled.user_unbuckle_mob(src,src) + +/mob/living/carbon/resist_fire() + fire_stacks -= 5 + Weaken(3,1) + spin(32,2) + visible_message("[src] rolls on the floor, trying to put themselves out!", \ + "You stop, drop, and roll!") + sleep(30) + if(fire_stacks <= 0) + visible_message("[src] has successfully extinguished themselves!", \ + "You extinguish yourself.") + ExtinguishMob() + return + +/mob/living/carbon/resist_restraints() + var/obj/item/I = null + if(handcuffed) + I = handcuffed + else if(legcuffed) + I = legcuffed + if(I) + changeNext_move(CLICK_CD_BREAKOUT) + last_special = world.time + CLICK_CD_BREAKOUT + cuff_resist(I) + + +/mob/living/carbon/proc/cuff_resist(obj/item/I, var/breakouttime = 600, cuff_break = 0) + if(istype(I, /obj/item/weapon/restraints)) + var/obj/item/weapon/restraints/R = I + breakouttime = R.breakouttime + var/displaytime = breakouttime / 600 + if(!cuff_break) + visible_message("[src] attempts to remove [I]!") + src << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)" + if(do_after(src, breakouttime, 10)) + if(I.loc != src || buckled) + return + visible_message("[src] manages to remove [I]!") + src << "You successfully remove [I]." + + if(handcuffed) + handcuffed.loc = loc + handcuffed = null + if(buckled && buckled.buckle_requires_restraints) + buckled.unbuckle_mob() + update_inv_handcuffed(0) + return + if(legcuffed) + legcuffed.loc = loc + legcuffed = null + update_inv_legcuffed(0) + else + src << "You fail to remove [I]!" + + else + breakouttime = 50 + visible_message("[src] is trying to break [I]!") + src << "You attempt to break [I]. (This will take around 5 seconds and you need to stand still.)" + if(do_after(src, breakouttime)) + if(!I.loc || buckled) + return + visible_message("[src] manages to break [I]!") + src << "You successfully break [I]." + qdel(I) + + if(handcuffed) + handcuffed = null + update_inv_handcuffed(0) + return + else + legcuffed = null + update_inv_legcuffed(0) + else + src << "You fail to break [I]!" \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 00f54308178..a8683a1f49c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -743,4 +743,9 @@ staticOverlay.override = 1 staticOverlays["letter"] = staticOverlay - +/mob/living/carbon/human/cuff_resist(obj/item/I) + if(dna && dna.check_mutation(HULK)) + say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) + ..(I, cuff_break = 1) + else + ..() diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 598054d0c1d..e2f440bcfb5 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -38,6 +38,8 @@ update_gravity(mob_has_gravity()) + update_pulling() + for(var/obj/item/weapon/grab/G in src) G.process() @@ -75,6 +77,11 @@ /mob/living/proc/handle_stomach() return +/mob/living/proc/update_pulling() + if(pulling) + if(incapacitated()) + stop_pulling() + //This updates the health and status of the mob (conscious, unconscious, dead) /mob/living/proc/handle_regular_status_updates() diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index be727c966ac..7c75e10a5f4 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -161,7 +161,7 @@ Sorry Giacom. Please don't be mad :( return 0 if(!..()) return 0 - usr.visible_message("[src] points to [A]") + visible_message("[src] points to [A]") return 1 /mob/living/verb/succumb(var/whispered as null) @@ -320,12 +320,12 @@ Sorry Giacom. Please don't be mad :( set name = "Sleep" set category = "IC" - if(usr.sleeping) - usr << "You are already sleeping." + if(sleeping) + src << "You are already sleeping." return else if(alert(src, "You sure you want to sleep for a while?", "Sleep", "Yes", "No") == "Yes") - usr.sleeping = 20 //Short nap + sleeping = 20 //Short nap /mob/proc/get_contents() @@ -469,11 +469,11 @@ Sorry Giacom. Please don't be mad :( if(config.allow_Metadata) if(client) - usr << "[src]'s Metainfo:
[client.prefs.metadata]" + src << "[src]'s Metainfo:
[client.prefs.metadata]" else - usr << "[src] does not have any stored infomation!" + src << "[src] does not have any stored infomation!" else - usr << "OOC Metadata is not supported by this server!" + src << "OOC Metadata is not supported by this server!" return @@ -585,172 +585,62 @@ Sorry Giacom. Please don't be mad :( /mob/living/proc/getTrail() //silicon and simple_animals don't get blood trails return null -/mob/living/proc/cuff_break(obj/item/weapon/restraints/I, mob/living/carbon/C) - - if(C.dna.check_mutation(HULK)) - C.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" )) - - C.visible_message("[C] manages to break [I]!") - C << "You successfully break [I]." - qdel(I) - - if(C.handcuffed) - C.handcuffed = null - C.update_inv_handcuffed(0) - return - else - C.legcuffed = null - C.update_inv_legcuffed(0) - - -/mob/living/proc/cuff_resist(obj/item/weapon/restraints/I, mob/living/carbon/C) - var/breakouttime = 600 - var/displaytime = 1 - if(istype(I, /obj/item/weapon/restraints/handcuffs)) - var/obj/item/weapon/restraints/handcuffs/HC = C.handcuffed - breakouttime = HC.breakouttime - else if(istype(I, /obj/item/weapon/restraints/legcuffs)) - var/obj/item/weapon/restraints/legcuffs/LC = C.legcuffed - breakouttime = LC.breakouttime - displaytime = breakouttime / 600 - - if(isalienadult(C) || C.dna.check_mutation(HULK)) - C.visible_message("[C] is trying to break [I]!") - C << "You attempt to break [I]. (This will take around 5 seconds and you need to stand still.)" - spawn(0) - if(do_after(C, 50)) - if(!I || C.buckled) - return - cuff_break(I, C) - else - C << "You fail to break [I]!" - else - - C.visible_message("[C] attempts to remove [I]!") - C << "You attempt to remove [I]. (This will take around [displaytime] minutes and you need to stand still.)" - spawn(0) - if(do_after(C, breakouttime, 10)) - if(!I || C.buckled) - return - C.visible_message("[C] manages to remove [I]!") - C << "You successfully remove [I]." - - if(C.handcuffed) - C.handcuffed.loc = C.loc - C.handcuffed = null - if(C.buckled && C.buckled.buckle_requires_restraints) - C.buckled.unbuckle_mob() - C.update_inv_handcuffed(0) - return - if(C.legcuffed) - C.legcuffed.loc = C.loc - C.legcuffed = null - C.update_inv_legcuffed(0) - else - C << "You fail to remove [I]!" - /mob/living/verb/resist() set name = "Resist" set category = "IC" - if(!isliving(usr) || usr.next_move > world.time) + if(!isliving(src) || next_move > world.time) return - usr.changeNext_move(CLICK_CD_RESIST) - - var/mob/living/L = usr + changeNext_move(CLICK_CD_RESIST) //resisting grabs (as if it helps anyone...) - if(!L.stat && L.canmove && !L.restrained()) + if(!stat && canmove && !restrained()) var/resisting = 0 - for(var/obj/O in L.requests) + for(var/obj/O in requests) qdel(O) resisting++ - for(var/obj/item/weapon/grab/G in usr.grabbed_by) + for(var/obj/item/weapon/grab/G in grabbed_by) resisting++ if(G.state == GRAB_PASSIVE) qdel(G) else if(G.state == GRAB_AGGRESSIVE) if(prob(25)) - L.visible_message("[L] has broken free of [G.assailant]'s grip!") + visible_message("[src] has broken free of [G.assailant]'s grip!") qdel(G) else if(G.state == GRAB_NECK) if(prob(5)) - L.visible_message("[L] has broken free of [G.assailant]'s headlock!") + visible_message("[src] has broken free of [G.assailant]'s headlock!") qdel(G) if(resisting) - L.visible_message("[L] resists!") + visible_message("[src] resists!") return //unbuckling yourself - if(L.buckled && L.last_special <= world.time) - if(iscarbon(L)) - var/mob/living/carbon/C = L - if(C.handcuffed) - C.changeNext_move(CLICK_CD_BREAKOUT) - C.last_special = world.time + CLICK_CD_BREAKOUT - C.visible_message("[C] attempts to unbuckle themself!", \ - "You attempt to unbuckle yourself. (This will take around one minute and you need to stay still.)") - spawn(0) - if(do_after(usr, 600)) - if(!C.buckled) - return - C.buckled.user_unbuckle_mob(C,C) - else - if(C && C.buckled) - C << "You fail to unbuckle yourself!" - else - C.buckled.user_unbuckle_mob(C,C) - else - L.buckled.user_unbuckle_mob(L,L) + if(buckled && last_special <= world.time) + resist_buckle() //Breaking out of a container (Locker, sleeper, cryo...) else if(loc && istype(loc, /obj) && !isturf(loc)) - if(L.stat == CONSCIOUS && !L.stunned && !L.weakened && !L.paralysis) + if(stat == CONSCIOUS && !stunned && !weakened && !paralysis) var/obj/C = loc - C.container_resist(L) + C.container_resist(src) - //Stop drop and roll & Handcuffs - else if(iscarbon(L)) - var/mob/living/carbon/CM = L - if(CM.on_fire && CM.canmove) - CM.fire_stacks -= 5 - CM.Weaken(3,1) - CM.spin(32,2) - CM.visible_message("[CM] rolls on the floor, trying to put themselves out!", \ - "You stop, drop, and roll!") - sleep(30) - if(fire_stacks <= 0) - CM.visible_message("[CM] has successfully extinguished themselves!", \ - "You extinguish yourself.") - ExtinguishMob() - return - if(CM.canmove && (CM.last_special <= world.time)) - if(CM.handcuffed || CM.legcuffed) - CM.changeNext_move(CLICK_CD_BREAKOUT) - CM.last_special = world.time + CLICK_CD_BREAKOUT - if(CM.handcuffed) - cuff_resist(CM.handcuffed, CM) - else - cuff_resist(CM.legcuffed, CM) + else if(canmove) + if(on_fire) + resist_fire() //stop, drop, and roll + else if(last_special <= world.time) + resist_restraints() //trying to remove cuffs. -/mob/living/carbon/proc/spin(spintime, speed) - spawn() - var/D = dir - while(spintime >= speed) - sleep(speed) - switch(D) - if(NORTH) - D = EAST - if(SOUTH) - D = WEST - if(EAST) - D = SOUTH - if(WEST) - D = NORTH - dir = D - spintime -= speed + +/mob/living/proc/resist_buckle() + buckled.user_unbuckle_mob(src,src) + +/mob/living/proc/resist_fire() + return + +/mob/living/proc/resist_restraints() return /mob/living/proc/get_visible_name() diff --git a/code/modules/mob/living/silicon/pai/pai.dm b/code/modules/mob/living/silicon/pai/pai.dm index 8e0c98192a7..c2062b46546 100644 --- a/code/modules/mob/living/silicon/pai/pai.dm +++ b/code/modules/mob/living/silicon/pai/pai.dm @@ -3,7 +3,7 @@ icon = 'icons/obj/status_display.dmi' //invisibility! mouse_opacity = 0 density = 0 - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY var/network = "SS13" var/obj/machinery/camera/current = null diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 4005451ecc9..62e5211dd77 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -16,6 +16,7 @@ atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 faction = list("cult") + flying = 1 var/list/construct_spells = list() var/playstyle_string = "You are a generic construct! Your job is to not exist." @@ -86,7 +87,7 @@ environment_smash = 2 attack_sound = 'sound/weapons/punch3.ogg' status_flags = 0 - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_LARGE force_threshold = 11 construct_spells = list(/obj/effect/proc_holder/spell/aoe_turf/conjure/lesserforcewall) playstyle_string = "You are a Juggernaut. Though slow, your shell can withstand extreme punishment, \ diff --git a/code/modules/mob/living/simple_animal/friendly/butterfly.dm b/code/modules/mob/living/simple_animal/friendly/butterfly.dm index e4f9e562e37..d361cfb978c 100644 --- a/code/modules/mob/living/simple_animal/friendly/butterfly.dm +++ b/code/modules/mob/living/simple_animal/friendly/butterfly.dm @@ -16,7 +16,7 @@ friendly = "nudges" pass_flags = PASSTABLE ventcrawler = 2 - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY /mob/living/simple_animal/butterfly/New() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index 16d35c5a486..8308bf698f8 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -79,4 +79,3 @@ icon_living = "kitten" icon_dead = "kitten_dead" gender = NEUTER - mob_size = MOB_SIZE_SMALL diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 25ec1dcb6fe..4733bf988bb 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -1,6 +1,7 @@ //Corgi /mob/living/simple_animal/pet icon = 'icons/mob/pets.dmi' + mob_size = MOB_SIZE_SMALL var/obj/item/clothing/tie/petcollar/pcollar = null var/image/collar = null var/image/pettag = null @@ -524,7 +525,6 @@ icon_living = "puppy" icon_dead = "puppy_dead" shaved = 0 - mob_size = MOB_SIZE_SMALL //puppies cannot wear anything. /mob/living/simple_animal/pet/corgi/puppy/Topic(href, href_list) 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 8ade1262914..59511795d57 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -168,7 +168,7 @@ ventcrawler = 2 var/amount_grown = 0 pass_flags = PASSTABLE | PASSGRILLE - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY /mob/living/simple_animal/chick/New() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index 3e97c6d41e9..68b8702a403 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -15,4 +15,4 @@ response_disarm = "shoos" response_harm = "stomps on" ventcrawler = 2 - mob_size = MOB_SIZE_SMALL \ No newline at end of file + mob_size = MOB_SIZE_TINY \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 38e9f399ae1..ad493cebe4c 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -21,7 +21,7 @@ density = 0 ventcrawler = 2 pass_flags = PASSTABLE | PASSGRILLE - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY var/body_color //brown, gray and white, leave blank for random /mob/living/simple_animal/mouse/New() diff --git a/code/modules/mob/living/simple_animal/hostile/bees.dm b/code/modules/mob/living/simple_animal/hostile/bees.dm index 31316587039..fddf591b929 100644 --- a/code/modules/mob/living/simple_animal/hostile/bees.dm +++ b/code/modules/mob/living/simple_animal/hostile/bees.dm @@ -20,6 +20,7 @@ environment_smash = 0 mouse_opacity = 2 pass_flags = PASSTABLE + flying = 1 //Spaceborn beings don't get hurt by space atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) diff --git a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm index 313798c6b22..84886c63dae 100644 --- a/code/modules/mob/living/simple_animal/hostile/eyeballs.dm +++ b/code/modules/mob/living/simple_animal/hostile/eyeballs.dm @@ -19,6 +19,7 @@ melee_damage_upper = 25 attacktext = "blinks at" attack_sound = 'sound/weapons/pierce.ogg' + flying = 1 faction = list("spooky") diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm index bf79c041a63..3a1a96688f3 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/bat.dm @@ -23,7 +23,8 @@ attack_sound = 'sound/weapons/bite.ogg' environment_smash = 0 ventcrawler = 2 - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY + flying = 1 var/max_co2 = 0 //to be removed once metastation map no longer use those for Sgt Araneus var/min_oxy = 0 var/max_tox = 0 diff --git a/code/modules/mob/living/simple_animal/hostile/syndicate.dm b/code/modules/mob/living/simple_animal/hostile/syndicate.dm index bfd39fc4f7c..2c9a0f390b6 100644 --- a/code/modules/mob/living/simple_animal/hostile/syndicate.dm +++ b/code/modules/mob/living/simple_animal/hostile/syndicate.dm @@ -130,7 +130,8 @@ faction = list("syndicate") atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) minbodytemp = 0 - mob_size = MOB_SIZE_SMALL + mob_size = MOB_SIZE_TINY + flying /mob/living/simple_animal/hostile/viscerator/death(gibbed) ..(gibbed) diff --git a/code/modules/mob/living/simple_animal/parrot.dm b/code/modules/mob/living/simple_animal/parrot.dm index bc1e35d3b6a..83590e4bc90 100644 --- a/code/modules/mob/living/simple_animal/parrot.dm +++ b/code/modules/mob/living/simple_animal/parrot.dm @@ -55,6 +55,7 @@ attacktext = "chomps" friendly = "grooms" mob_size = MOB_SIZE_SMALL + flying = 1 var/parrot_damage_upper = 10 var/parrot_state = PARROT_WANDER //Hunt for a perch when created diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index a1982d4d0bd..c88c07f4570 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -23,6 +23,7 @@ status_flags = 0 faction = list("cult") status_flags = CANPUSH + flying = 1 /mob/living/simple_animal/shade/death() diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 8a957080878..3b4a7ecc0c9 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -57,7 +57,7 @@ //simple_animal access var/obj/item/weapon/card/id/access_card = null //innate access uses an internal ID card - + var/flying = 0 //whether it's flying or touching the ground. /mob/living/simple_animal/New() ..()