diff --git a/code/modules/cargo/packs/material.dm b/code/modules/cargo/packs/material.dm index 238b6491ea3b..e396854387de 100644 --- a/code/modules/cargo/packs/material.dm +++ b/code/modules/cargo/packs/material.dm @@ -112,8 +112,8 @@ crate_name = "wood planks crate" /datum/supply_pack/material/concrete_mix - name = "Concrete Mix (Jug)" - desc = "Feeling lazy? Need a structure and quick? Use concrete! Just add water." + name = "Concrete Bag" + desc = "Feeling lazy? Need a structure and quick? Use F.O.O.D.'s near-instant concrete mix! Just add water." cost = 500 - contains = list(/obj/item/reagent_containers/glass/chem_jug/concrete_mix) + contains = list(/obj/item/reagent_containers/glass/concrete_bag) crate_name = "Concrete Mix" diff --git a/code/modules/reagents/reagent_containers/concrete_bags.dm b/code/modules/reagents/reagent_containers/concrete_bags.dm new file mode 100644 index 000000000000..eaceb1c85631 --- /dev/null +++ b/code/modules/reagents/reagent_containers/concrete_bags.dm @@ -0,0 +1,58 @@ +/* In a better world, the logic for transfering reagents out of containers wouldn't be in /glass */ + +/obj/item/reagent_containers/glass/concrete_bag + name = "\improper concrete mix bag" + desc = "A bag of concrete mixture from the F.O.O.D corportation. Just add water!" + w_class = WEIGHT_CLASS_HUGE //25+ kg + throw_range = 1 + + amount_per_transfer_from_this = 25 + possible_transfer_amounts = list(25,50,75,100) + list_reagents = list(/datum/reagent/concrete_mix = 200) + reagent_flags = OPENCONTAINER + volume = 200 + + icon = 'icons/obj/chemical/concrete.dmi' + icon_state = "concrete_bag" + item_state = "concrete_bag" + lefthand_file = 'icons/mob/inhands/misc/concrete_bag_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/concrete_bag_righthand.dmi' + fill_icon_thresholds = null + + var/opened = FALSE + var/opened_icon_state = "concrete_bag_open" + + drop_sound = 'sound/items/handling/cloth_drop.ogg' + pickup_sound = 'sound/items/handling/cloth_pickup.ogg' + +/obj/item/reagent_containers/glass/concrete_bag/examine(mob/user) + . = ..() + if(!opened) + . += span_notice("[src] is unopened") + else + . += span_notice("[src] has been opened") + +/obj/item/reagent_containers/glass/concrete_bag/AltClick(mob/user) + if(!can_interact(user)) + return + if(!opened) + if(do_after(user, 3 SECONDS)) + visible_message(span_notice("[user] tears the top of [src] off!"), span_notice("You tear the top off [src]!")) + playsound(src, 'sound/items/poster_ripped.ogg', 50, 1) + new /obj/effect/decal/cleanable/generic(get_turf(src)) + icon_state = opened_icon_state + spillable = TRUE + opened = TRUE + return + return + return + +/obj/item/reagent_containers/glass/concrete_bag/attack_self(mob/user) + if(!opened) + return + ..() + +/obj/item/reagent_containers/glass/concrete_bag/attack(mob/user) + if(!opened) + return + ..() diff --git a/code/modules/reagents/reagent_containers/jug.dm b/code/modules/reagents/reagent_containers/jug.dm index 8214a0747dfc..de1570a9ef5c 100644 --- a/code/modules/reagents/reagent_containers/jug.dm +++ b/code/modules/reagents/reagent_containers/jug.dm @@ -147,8 +147,3 @@ /obj/item/reagent_containers/glass/chem_jug/hexacrete name = "chemical jug (hexacrete)" list_reagents = list(/datum/reagent/concrete/hexacrete = 150) - -/obj/item/reagent_containers/glass/chem_jug/concrete_mix - name = "chemical jug (concrete mix)" - desc = "Just pour out and add water!" - list_reagents = list(/datum/reagent/concrete_mix = 150) diff --git a/icons/mob/inhands/misc/concrete_bag_lefthand.dmi b/icons/mob/inhands/misc/concrete_bag_lefthand.dmi new file mode 100644 index 000000000000..9d331882dfc1 Binary files /dev/null and b/icons/mob/inhands/misc/concrete_bag_lefthand.dmi differ diff --git a/icons/mob/inhands/misc/concrete_bag_righthand.dmi b/icons/mob/inhands/misc/concrete_bag_righthand.dmi new file mode 100644 index 000000000000..707222f919ea Binary files /dev/null and b/icons/mob/inhands/misc/concrete_bag_righthand.dmi differ diff --git a/icons/obj/chemical/concrete.dmi b/icons/obj/chemical/concrete.dmi new file mode 100644 index 000000000000..26c557e42436 Binary files /dev/null and b/icons/obj/chemical/concrete.dmi differ diff --git a/shiptest.dme b/shiptest.dme index c1a3a2111b2a..c5770b4a4b81 100644 --- a/shiptest.dme +++ b/shiptest.dme @@ -3187,6 +3187,7 @@ #include "code\modules\reagents\reagent_containers\borghydro.dm" #include "code\modules\reagents\reagent_containers\bottle.dm" #include "code\modules\reagents\reagent_containers\chem_pack.dm" +#include "code\modules\reagents\reagent_containers\concrete_bags.dm" #include "code\modules\reagents\reagent_containers\dropper.dm" #include "code\modules\reagents\reagent_containers\glass.dm" #include "code\modules\reagents\reagent_containers\hypospray.dm"