From b280cb6d42139cc2b2c0a844538c68410fdc6c75 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 29 Jan 2015 11:17:56 +1030 Subject: [PATCH] Fixes #7919 --- code/game/objects/items/bodybag.dm | 2 +- .../objects/structures/crates_lockers/closets.dm | 15 ++++++--------- code/modules/mob/living/carbon/alien/alien.dm | 1 + code/modules/mob/living/living_defines.dm | 3 ++- code/modules/mob/living/simple_animal/bees.dm | 1 + .../mob/living/simple_animal/constructs.dm | 2 ++ .../mob/living/simple_animal/friendly/cat.dm | 3 ++- .../mob/living/simple_animal/friendly/corgi.dm | 2 ++ .../mob/living/simple_animal/friendly/crab.dm | 1 + .../mob/living/simple_animal/friendly/lizard.dm | 3 ++- .../mob/living/simple_animal/friendly/mouse.dm | 1 + .../living/simple_animal/friendly/spiderbot.dm | 1 + 12 files changed, 22 insertions(+), 13 deletions(-) diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index b1b46654bc5..12267914d8f 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -39,7 +39,7 @@ close_sound = 'sound/items/zip.ogg' var/item_path = /obj/item/bodybag density = 0 - storage_capacity = (mob_size * 2) - 1 + storage_capacity = (default_mob_size * 2) - 1 var/contains_body = 0 /obj/structure/closet/body_bag/attackby(W as obj, mob/user as mob) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 4aaae90a9a1..2a5a331c25e 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -21,7 +21,7 @@ var/store_items = 1 var/store_mobs = 1 - var/const/mob_size = 15 + var/const/default_mob_size = 15 /obj/structure/closet/initialize() if(!opened) // if closed, any item at the crate's loc is put in the contents @@ -121,20 +121,17 @@ /obj/structure/closet/proc/store_mobs(var/stored_units) var/added_units = 0 - for(var/mob/M in src.loc) - if(stored_units + added_units + mob_size > storage_capacity) - break - if(istype (M, /mob/dead/observer)) - continue + for(var/mob/living/M in src.loc) if(M.buckled || M.pinned.len) continue - + var/current_mob_size = (M.mob_size ? M.mob_size : default_mob_size) + if(stored_units + added_units + current_mob_size > storage_capacity) + break if(M.client) M.client.perspective = EYE_PERSPECTIVE M.client.eye = src - M.loc = src - added_units += mob_size + added_units += current_mob_size return added_units /obj/structure/closet/proc/toggle(mob/user as mob) diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index 67a134ec9b7..c9b3175eb8b 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -7,6 +7,7 @@ pass_flags = PASSTABLE health = 100 maxHealth = 100 + mob_size = 4 var/adult_form var/dead_icon diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 3c1c8a935c7..ecbc51db379 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -37,4 +37,5 @@ var/tod = null // Time of death var/update_slimes = 1 - var/silent = null //Can't talk. Value goes down every life proc. \ No newline at end of file + var/silent = null // Can't talk. Value goes down every life proc. + var/mob_size // Used by lockers. \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/bees.dm b/code/modules/mob/living/simple_animal/bees.dm index 5ee2e2b10a0..3a5f2f17e56 100644 --- a/code/modules/mob/living/simple_animal/bees.dm +++ b/code/modules/mob/living/simple_animal/bees.dm @@ -4,6 +4,7 @@ icon = 'icons/obj/apiary_bees_etc.dmi' icon_state = "bees1" icon_dead = "bees1" + mob_size = 1 var/strength = 1 var/feral = 0 var/mut = 0 diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 79295a9b5bf..5e3e91b90f9 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -129,6 +129,7 @@ melee_damage_lower = 30 melee_damage_upper = 30 attacktext = "smashed their armoured gauntlet into" + mob_size = 20 speed = 3 wall_smash = 1 attack_sound = 'sound/weapons/punch3.ogg' @@ -259,6 +260,7 @@ speed = 5 wall_smash = 1 attack_sound = 'sound/weapons/punch4.ogg' + mob_size = 20 var/energy = 0 var/max_energy = 1000 diff --git a/code/modules/mob/living/simple_animal/friendly/cat.dm b/code/modules/mob/living/simple_animal/friendly/cat.dm index c3d88300ca6..7913d23d7ed 100644 --- a/code/modules/mob/living/simple_animal/friendly/cat.dm +++ b/code/modules/mob/living/simple_animal/friendly/cat.dm @@ -22,6 +22,7 @@ minbodytemp = 223 //Below -50 Degrees Celcius maxbodytemp = 323 //Above 50 Degrees Celcius holder_type = /obj/item/weapon/holder/cat + mob_size = 5 /mob/living/simple_animal/cat/Life() //MICE! @@ -50,7 +51,7 @@ if(turns_since_scan > 5) walk_to(src,0) turns_since_scan = 0 - + if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) movement_target = null stop_automated_movement = 0 diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 162038dd070..8cce2342dff 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -18,6 +18,8 @@ response_disarm = "bops" response_harm = "kicks" see_in_dark = 5 + mob_size = 8 + var/obj/item/inventory_head var/obj/item/inventory_back var/facehugger diff --git a/code/modules/mob/living/simple_animal/friendly/crab.dm b/code/modules/mob/living/simple_animal/friendly/crab.dm index c85f5bc7349..bf59a7e5464 100644 --- a/code/modules/mob/living/simple_animal/friendly/crab.dm +++ b/code/modules/mob/living/simple_animal/friendly/crab.dm @@ -17,6 +17,7 @@ response_harm = "stomps" stop_automated_movement = 1 friendly = "pinches" + mob_size = 5 var/obj/item/inventory_head var/obj/item/inventory_mask diff --git a/code/modules/mob/living/simple_animal/friendly/lizard.dm b/code/modules/mob/living/simple_animal/friendly/lizard.dm index d4677ef5d30..66fb31406a4 100644 --- a/code/modules/mob/living/simple_animal/friendly/lizard.dm +++ b/code/modules/mob/living/simple_animal/friendly/lizard.dm @@ -14,4 +14,5 @@ melee_damage_upper = 2 response_help = "pets" response_disarm = "shoos" - response_harm = "stomps on" \ No newline at end of file + response_harm = "stomps on" + mob_size = 1 diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index c6f3cfb87c3..5b207ce2a73 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -28,6 +28,7 @@ maxbodytemp = 323 //Above 50 Degrees Celcius universal_speak = 0 universal_understand = 1 + mob_size = 1 /mob/living/simple_animal/mouse/Life() ..() diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 1aff173aa7e..89cfe60b659 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -5,6 +5,7 @@ max_co2 = 0 minbodytemp = 0 maxbodytemp = 500 + mob_size = 5 var/obj/item/device/radio/borg/radio = null var/mob/living/silicon/ai/connected_ai = null