From c2fcd2149933c3b19ac15b19d559cb9380ca1970 Mon Sep 17 00:00:00 2001 From: phil235 Date: Tue, 21 Oct 2014 17:27:40 +0200 Subject: [PATCH] Adding bluespace bodybags. Adding changelog. --- code/game/objects/items/bodybag.dm | 29 ++++++++++++++++-- .../structures/crates_lockers/closets.dm | 5 +-- .../research/designs/medical_designs.dm | 11 +++++++ html/changelogs/phil235-PR-5216.yml | 4 +++ icons/obj/bodybag.dmi | Bin 4007 -> 5105 bytes 5 files changed, 45 insertions(+), 4 deletions(-) create mode 100644 html/changelogs/phil235-PR-5216.yml diff --git a/code/game/objects/items/bodybag.dm b/code/game/objects/items/bodybag.dm index 19a835217df..153ce9426ce 100644 --- a/code/game/objects/items/bodybag.dm +++ b/code/game/objects/items/bodybag.dm @@ -5,10 +5,11 @@ desc = "A folded bag designed for the storage and transportation of cadavers." icon = 'icons/obj/bodybag.dmi' icon_state = "bodybag_folded" + var/unfoldedbag_path = /obj/structure/closet/body_bag w_class = 2 /obj/item/bodybag/attack_self(mob/user) - var/obj/structure/closet/body_bag/R = new /obj/structure/closet/body_bag(user.loc) + var/obj/structure/closet/body_bag/R = new unfoldedbag_path(user.loc) R.add_fingerprint(user) qdel(src) @@ -36,6 +37,7 @@ icon_state = "bodybag_closed" icon_closed = "bodybag_closed" icon_opened = "bodybag_open" + var/foldedbag_path = /obj/item/bodybag density = 0 mob_storage_capacity = 2 @@ -78,7 +80,7 @@ if(contents.len) return 0 visible_message("[usr] folds up [src].") - var/obj/item/bodybag/B = new /obj/item/bodybag(get_turf(src)) + var/obj/item/bodybag/B = new foldedbag_path(get_turf(src)) usr.put_in_hands(B) qdel(src) @@ -88,3 +90,26 @@ icon_state = icon_closed else icon_state = icon_opened + + +// Bluespace bodybag + +/obj/item/bodybag/bluespace + name = "bluespace body bag" + desc = "A folded bluespace body bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bluebodybag_folded" + unfoldedbag_path = /obj/structure/closet/body_bag/bluespace + w_class = 2 + +/obj/structure/closet/body_bag/bluespace + name = "bluespace body bag" + desc = "A bluespace body bag designed for the storage and transportation of cadavers." + icon = 'icons/obj/bodybag.dmi' + icon_state = "bluebodybag_closed" + icon_closed = "bluebodybag_closed" + icon_opened = "bluebodybag_open" + foldedbag_path = /obj/item/bodybag/bluespace + density = 0 + mob_storage_capacity = 15 + max_mob_size = 2 \ 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 f87736d1c8b..6357d7492bb 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -14,6 +14,7 @@ var/wall_mounted = 0 //never solid (You can always pass over it) var/health = 100 var/lastbang + var/max_mob_size = 1 //Biggest mob_size accepted by the container var/mob_storage_capacity = 3 // how many human sized mob/living can fit together inside a closet. var/storage_capacity = 30 //This is so that someone can't pack hundreds of items in a locker/crate //then open it in a populated area to crash clients. @@ -83,9 +84,9 @@ if(istype(AM, /mob/living)) var/mob/living/L = AM - if(L.buckled || L.mob_size == 2) //buckled mobs and large mobs don't get inside closets. + 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 == 1) + if(L.mob_size > 0) var/mobs_stored = 0 for(var/mob/living/M in contents) mobs_stored++ diff --git a/code/modules/research/designs/medical_designs.dm b/code/modules/research/designs/medical_designs.dm index 8d9fabe0630..df2779e3118 100644 --- a/code/modules/research/designs/medical_designs.dm +++ b/code/modules/research/designs/medical_designs.dm @@ -75,4 +75,15 @@ datum/design/noreactbeaker materials = list("$metal" = 3000) reliability = 76 build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact + category = "Misc" + +datum/design/bluespacebodybag + name = "Bluespace body bag" + desc = "A bluespace body bag, powered by experimental bluespace technology. It can hold loads of bodies and the largest of creatures." + id = "bluespacebodybag" + req_tech = list("bluespace" = 2, "materials" = 6) + build_type = PROTOLATHE + materials = list("$metal" = 3000, "$plasma" = 2000, "$diamond" = 500) + reliability = 76 + build_path = /obj/item/bodybag/bluespace category = "Misc" \ No newline at end of file diff --git a/html/changelogs/phil235-PR-5216.yml b/html/changelogs/phil235-PR-5216.yml new file mode 100644 index 00000000000..acb18141530 --- /dev/null +++ b/html/changelogs/phil235-PR-5216.yml @@ -0,0 +1,4 @@ +author: phil235 +delete-after: True +changes: + - rscadd: "Closets and its children can no longer contain a near infinite amount of mobs. Large mobs (juggernaut, alien emperess, etc) don't fit, small mobs (mouse, parrot, etc) still fit in the same amounts, human-sized mob (humanoid, slime, etc) fit but maximum two per body bag and three for all the other closets. Adding bluespace body bag to R&D, it can hold even large mobs and in large amounts." \ No newline at end of file diff --git a/icons/obj/bodybag.dmi b/icons/obj/bodybag.dmi index a1f990312809ec446985c852e3ff8267b223bef2..caa12c04ffa47beea0733b1606fc002350c69f59 100644 GIT binary patch literal 5105 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 NiJ^r-gB~*eKL8gQ!36*S literal 4007 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