diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 37fb0e732f..b9ccee8f36 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -98,23 +98,43 @@ matter = list("metal" = 50) attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed") +/obj/item/weapon/cane/concealed + var/atom/movable/concealed_blade + +/obj/item/weapon/cane/concealed/New(var/blade) + ..() + if(!isturf(blade)) + concealed_blade = blade + else + concealed_blade = new/obj/item/weapon/kitchenknife/concealed(src) + loc = blade + /obj/item/weapon/cane/concealed/attack_self(mob/user) user.visible_message("[user] has unsheathed a blade from \his [src]!", "You unsheathe the blade from \the [src].") - var/blade = new/obj/item/weapon/kitchenknife/concealed + // Calling drop/put in hands to properly call item drop/pickup procs user.drop_from_inventory(src) - user.put_in_hands(blade) - del(src) + user.put_in_hands(concealed_blade) + loc = concealed_blade /obj/item/weapon/kitchenknife/concealed name = "cane blade" desc = "A now less than concealed cane blade." + var/atom/movable/container + +/obj/item/weapon/kitchenknife/concealed/New(var/container) + ..() + if(!isturf(container)) + src.container = container + else + container = new/obj/item/weapon/cane/concealed(src) + loc = container /obj/item/weapon/kitchenknife/concealed/attack_self(mob/user) - var/cane = new/obj/item/weapon/cane/concealed + user.visible_message("[user] has sheathed a blade into \his [container]!", "You sheathe the blade into \the [container].") + // Calling drop/put in hands to properly call item drop/pickup procs user.drop_from_inventory(src) - user.put_in_hands(cane) - del(src) - user.visible_message("[user] has sheathed a blade into \his [cane]!", "You sheathe the blade into \the [cane].") + user.put_in_hands(container) + loc = container /obj/item/weapon/disk name = "disk" diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 9692cacf69..c724319160 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -323,6 +323,20 @@ new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src) + +/obj/item/weapon/storage/box/sinpockets + name = "box of sin-pockets" + desc = "Instructions: Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes." + icon_state = "donk_kit" + + New() + ..() + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) + new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src) /obj/item/weapon/storage/box/monkeycubes name = "monkey cube box" diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 87617d95ce..b9b9c5888b 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -180,11 +180,7 @@ I said no! ) result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked) - being_cooked.warm = 1 - being_cooked.reagents.add_reagent("tricordrazine", 5) - being_cooked.bitesize = 6 - being_cooked.name = "Warm " + being_cooked.name - being_cooked.cooltime() + being_cooked.heat() make_food(var/obj/container as obj) var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container) warm_up(being_cooked) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index e5e16db2dc..3e38a8ccf6 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -698,6 +698,23 @@ reagents.add_reagent("protein", 6) bitesize = 2 +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket + name = "\improper Sin-pocket" + desc = "The food of choice for the veteran. Do NOT overconsume." + filling_color = "#6D6D00" + heated_reagents = list("doctorsdelight" = 5, "hyperzine" = 5, "synaptizine" = 1) + var/has_been_heated = 0 + +/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket/attack_self(mob/user) + if(has_been_heated) + user << "The heating chemicals have already been spent." + return + has_been_heated = 1 + user.visible_message("[user] crushes \the [src] package.", "You crush \the [src] package and feel a comfortable heat build up.") + spawn(200) + user << "You think \the [src] is ready to eat about now." + heat() + /obj/item/weapon/reagent_containers/food/snacks/donkpocket name = "Donk-pocket" desc = "The food of choice for the seasoned traitor." @@ -710,12 +727,22 @@ reagents.add_reagent("protein", 2) var/warm = 0 - proc/cooltime() //Not working, derp? + var/list/heated_reagents = list("tricordrazine" = 5) + proc/heat() + warm = 1 + for(var/reagent in heated_reagents) + reagents.add_reagent(reagent, heated_reagents[reagent]) + bitesize = 6 + name = "Warm " + name + cooltime() + + proc/cooltime() if (src.warm) - spawn( 4200 ) + spawn(4200) src.warm = 0 - src.reagents.del_reagent("tricordrazine") - src.name = "donk-pocket" + for(var/reagent in heated_reagents) + src.reagents.del_reagent(reagent) + src.name = initial(name) return /obj/item/weapon/reagent_containers/food/snacks/brainburger