diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index f64e11096eb..055c792d684 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -224,3 +224,10 @@ icon = 'icons/effects/confetti_and_decor.dmi' icon_state = "confetti" mouse_opacity = MOUSE_OPACITY_TRANSPARENT //the confetti itself might be annoying enough + +/obj/effect/decal/cleanable/plastic + name = "plastic shreds" + desc = "Bits of torn, broken, worthless plastic." + icon = 'icons/obj/objects.dmi' + icon_state = "shards" + color = "#c6f4ff" diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 3f73590ebb9..b33220b2df4 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -1202,6 +1202,15 @@ ) generate_items_inside(items_inside,src) +/obj/item/storage/box/plastic + name = "plastic box" + desc = "It's a solid, plastic shell box." + icon_state = "plasticbox" + foldable = null + illustration = "writing" + custom_materials = list(/datum/material/plastic = 1000) //You lose most if recycled. + + /obj/item/storage/box/fireworks name = "box of fireworks" desc = "Contains an assortment of fireworks." diff --git a/code/game/objects/items/storage/sixpack.dm b/code/game/objects/items/storage/sixpack.dm new file mode 100644 index 00000000000..c93a015d228 --- /dev/null +++ b/code/game/objects/items/storage/sixpack.dm @@ -0,0 +1,52 @@ +/obj/item/storage/cans + name = "can ring" + desc = "Holds up to six drink cans, and select bottles." + icon = 'icons/obj/storage.dmi' + icon_state = "canholder" + item_state = "cola" + lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' + custom_materials = list(/datum/material/plastic = 1200) + max_integrity = 500 + +/obj/item/storage/cans/suicide_act(mob/living/carbon/user) + user.visible_message("[user] begins popping open a final cold one with the boys! It looks like [user.p_theyre()] trying to commit suicide!") + return BRUTELOSS + +/obj/item/storage/cans/update_icon() + var/icon_status = 0 + icon_status = contents.len + icon_state = "[initial(icon_state)][icon_status]" + +/obj/item/storage/cans/Initialize() + . = ..() + update_icon() + +/obj/item/storage/cans/ComponentInitialize() + . = ..() + var/datum/component/storage/STR = GetComponent(/datum/component/storage) + STR.max_w_class = WEIGHT_CLASS_SMALL + STR.max_combined_w_class = 12 + STR.max_items = 6 + STR.set_holdable(list( + /obj/item/reagent_containers/food/drinks/soda_cans, + /obj/item/reagent_containers/food/drinks/beer, + /obj/item/reagent_containers/food/drinks/ale, + /obj/item/reagent_containers/food/drinks/waterbottle + )) + +/obj/item/storage/cans/sixsoda + name = "soda bottle ring" + desc = "Holds six soda cans. Remember to recycle when you're done!" + +/obj/item/storage/cans/sixsoda/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/reagent_containers/food/drinks/soda_cans/cola(src) + +/obj/item/storage/cans/sixbeer + name = "beer bottle ring" + desc = "Holds six beer bottles. Remember to recycle when you're done!" + +/obj/item/storage/cans/sixbeer/PopulateContents() + for(var/i in 1 to 6) + new /obj/item/reagent_containers/food/drinks/beer(src) diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm index ae45aa74da5..c21f5d6d2cc 100644 --- a/code/game/objects/structures/beds_chairs/chair.dm +++ b/code/game/objects/structures/beds_chairs/chair.dm @@ -464,6 +464,7 @@ to_chat(Mob, "The chair begins to pop and crack, you're too heavy!") if(do_after(Mob, 60, 1, Mob, 0)) Mob.visible_message("The plastic chair snaps under [Mob]'s weight!") + new /obj/effect/decal/cleanable/plastic(loc) qdel(src) /obj/item/chair/plastic diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 2cf7c125a2b..e6da6eaf8a0 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -354,6 +354,15 @@ light_color = "#2cb2e8" light_range = 3 +/obj/item/twohanded/required/kirbyplants/fullysynthetic + name = "plastic potted plant" + desc = "A fake, cheap looking, plastic tree. Perfect for people who kill every plant they touch." + icon_state = "plant-26" + custom_materials = (list(/datum/material/plastic = 8000)) + +/obj/item/twohanded/required/kirbyplants/fullysynthetic/Initialize() + . = ..() + icon_state = "plant-[rand(26, 29)]" //a rock is flora according to where the icon file is //and now these defines @@ -438,3 +447,4 @@ /obj/structure/flora/rock/pile/largejungle/Initialize() . = ..() icon_state = "[initial(icon_state)][rand(1,3)]" + diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index ecde111fb6c..83adbbe1e5d 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1486,18 +1486,16 @@ /datum/supply_pack/service/party name = "Party Equipment" - desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, four beers, two ales, and a bottle of patron, goldschlager, and shaker!" - cost = 2000 + desc = "Celebrate both life and death on the station with Nanotrasen's Party Essentials(tm)! Contains seven colored glowsticks, six beers, six sodas, two ales, and a bottle of patron, goldschlager, and shaker!" + cost = 2500 contains = list(/obj/item/storage/box/drinkingglasses, /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/food/drinks/bottle/patron, /obj/item/reagent_containers/food/drinks/bottle/goldschlager, /obj/item/reagent_containers/food/drinks/ale, /obj/item/reagent_containers/food/drinks/ale, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, - /obj/item/reagent_containers/food/drinks/beer, + /obj/item/storage/cans/sixbeer, + /obj/item/storage/cans/sixsoda, /obj/item/flashlight/glowstick, /obj/item/flashlight/glowstick/red, /obj/item/flashlight/glowstick/blue, diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 021cda5e9a5..211909016ec 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -257,3 +257,16 @@ user.visible_message("You untie [oldName] back into a [newBand.name].", "[user] unties [oldName] back into a [newBand.name].") else to_chat(user, "You must be holding [src] in order to untie it!") + +/obj/item/clothing/neck/beads + name = "plastic bead necklace" + desc = "A cheap, plastic bead necklace. Show team spirit! Collect them! Throw them away! The posibilites are endless!" + icon = 'icons/obj/clothing/neck.dmi' + icon_state = "beads" + color = "#ffffff" + custom_price = 10 + custom_materials = (list(/datum/material/plastic = 500)) + +/obj/item/clothing/neck/beads/Initialize() + . = ..() + color = color = pick("#ff0077","#d400ff","#2600ff","#00ccff","#00ff2a","#e5ff00","#ffae00","#ff0000", "#ffffff") diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index c9605324fe8..7bf7214d737 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -22,6 +22,8 @@ maxHealth = 25 health = 25 spacewalk = TRUE + search_objects = 1 + wanted_objects = list(/obj/item/storage/cans) harm_intent_damage = 8 obj_damage = 50 @@ -43,6 +45,7 @@ var/random_color = TRUE //if the carp uses random coloring var/rarechance = 1 //chance for rare color variant + var/snack_distance = 0 var/static/list/carp_colors = list(\ "lightpurple" = "#c3b9f1", \ @@ -96,6 +99,21 @@ base_dead_overlay.appearance_flags = RESET_COLOR add_overlay(base_dead_overlay) +/mob/living/simple_animal/hostile/carp/proc/chomp_plastic() + var/obj/item/storage/cans/tasty_plastic = locate(/obj/item/storage/cans) in oview(src, 9) + if(tasty_plastic) + snack_distance = get_dist(src.loc,tasty_plastic.loc) + if(snack_distance <= 1) + src.visible_message("[src] gets its head stuck in [tasty_plastic], and gets cut breaking free from it!", "You try to avoid [tasty_plastic], but it looks so... delicious... Ow! It cuts the inside of your mouth!") + new /obj/effect/decal/cleanable/plastic(src.loc) + adjustBruteLoss(5) + qdel(tasty_plastic) + +/mob/living/simple_animal/hostile/carp/Life() + . = ..() + if(stat == CONSCIOUS) + chomp_plastic() + /mob/living/simple_animal/hostile/carp/death(gibbed) . = ..() cut_overlays() diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm index a0536d60bd7..f64e94aedee 100644 --- a/code/modules/research/designs/autolathe_designs.dm +++ b/code/modules/research/designs/autolathe_designs.dm @@ -1028,3 +1028,35 @@ materials = list(/datum/material/iron = 20, /datum/material/glass = 5) build_path = /obj/item/toy/ammo/gun category = list("hacked", "Misc") + +/datum/design/plastic_tree + name = "Plastic Potted Plant" + id = "plastic_trees" + build_type = AUTOLATHE + materials = list(/datum/material/plastic = 8000) + build_path = /obj/item/twohanded/required/kirbyplants/fullysynthetic + category = list("initial", "Misc") + +/datum/design/beads + name = "Plastic Bead Necklace" + id = "plastic_necklace" + build_type = AUTOLATHE + materials = list(/datum/material/plastic = 500) + build_path = /obj/item/clothing/neck/beads + category = list("initial", "Misc") + +/datum/design/plastic_ring + name = "Plastic Can Rings" + id = "ring_holder" + build_type = AUTOLATHE + materials = list(/datum/material/plastic = 1200) + build_path = /obj/item/storage/cans + category = list("initial", "Dinnerware") + +/datum/design/plastic_box + name = "Plastic Box" + id = "plastic_box" + build_type = AUTOLATHE + materials = list(/datum/material/plastic = 1000) + build_path = /obj/item/storage/box/plastic + category = list("initial", "Misc") diff --git a/icons/mob/clothing/neck.dmi b/icons/mob/clothing/neck.dmi index 276945f23f9..9bd6467e2d2 100644 Binary files a/icons/mob/clothing/neck.dmi and b/icons/mob/clothing/neck.dmi differ diff --git a/icons/obj/clothing/neck.dmi b/icons/obj/clothing/neck.dmi index 15f6f05b7d6..cf2769dc1ce 100644 Binary files a/icons/obj/clothing/neck.dmi and b/icons/obj/clothing/neck.dmi differ diff --git a/icons/obj/flora/plants.dmi b/icons/obj/flora/plants.dmi index dd3fa2b2c70..acd62631f94 100644 Binary files a/icons/obj/flora/plants.dmi and b/icons/obj/flora/plants.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 26adb318523..816c1d767ce 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 4d60850a027..e0d41b67d10 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1060,6 +1060,7 @@ #include "code\game\objects\items\storage\firstaid.dm" #include "code\game\objects\items\storage\lockbox.dm" #include "code\game\objects\items\storage\secure.dm" +#include "code\game\objects\items\storage\sixpack.dm" #include "code\game\objects\items\storage\storage.dm" #include "code\game\objects\items\storage\toolbox.dm" #include "code\game\objects\items\storage\uplink_kits.dm"