diff --git a/code/game/objects/items/gift.dm b/code/game/objects/items/gift.dm index 8054d8c6a4..35a68cecc6 100644 --- a/code/game/objects/items/gift.dm +++ b/code/game/objects/items/gift.dm @@ -8,6 +8,14 @@ * Gifts */ +/var/static/blacklisted_items = typecacheof(list( + /obj/effect, + /obj/belly, + /obj/mafia_game_board, + /obj/docking_port, + /obj/shapeshift_holder, + /obj/screen)) + GLOBAL_LIST_EMPTY(possible_gifts) /obj/item/a_gift @@ -95,7 +103,7 @@ GLOBAL_LIST_EMPTY(possible_gifts) var/list/gift_types_list = subtypesof(/obj/item) for(var/V in gift_types_list) var/obj/item/I = V - if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT)) + if((!initial(I.icon_state)) || (!initial(I.item_state)) || (initial(I.item_flags) & ABSTRACT) || (is_type_in_typecache(I, blacklisted_items))) gift_types_list -= V GLOB.possible_gifts = gift_types_list var/gift_type = pick(GLOB.possible_gifts) diff --git a/code/modules/holiday/halloween/jacqueen.dm b/code/modules/holiday/halloween/jacqueen.dm index 16151c4191..90016954fc 100644 --- a/code/modules/holiday/halloween/jacqueen.dm +++ b/code/modules/holiday/halloween/jacqueen.dm @@ -50,6 +50,13 @@ var/cached_z /// I'm busy, don't move. var/busy = FALSE + var/static/blacklisted_items = typecacheof(list( + /obj/effect, + /obj/belly, + /obj/mafia_game_board, + /obj/docking_port, + /obj/shapeshift_holder, + /obj/screen)) /mob/living/simple_animal/jacq/Initialize() ..() @@ -112,7 +119,7 @@ /mob/living/simple_animal/jacq/proc/jacqrunes(message, mob/living/carbon/C) //Displays speechtext over Jacq for the user only. var/atom/hearer = C - var/list/spans = list("spooky") + var/list/spans = list("spooky") new /datum/chatmessage(message, src, hearer, spans) @@ -228,10 +235,13 @@ return var/new_obj = pick(subtypesof(/obj)) - //for(var/item in blacklist) - // if(new_obj == item) - // panic() + for(var/item in blacklisted_items) + if(is_type_in_typecache(new_obj, blacklisted_items)) + new_obj = /obj/item/reagent_containers/food/snacks/special_candy var/reward = new new_obj(C.loc) + if(new_obj == /obj/item/reagent_containers/food/snacks/special_candy) + new new_obj(C.loc) + new new_obj(C.loc) //Giving them back their candies in case it's something from the blacklist or if the game literally rolled candies. What rotten luck. C.put_in_hands(reward) visible_message("[src] waves her hands, magicking up a [reward] from thin air, \"There ye are [gender], enjoy! \"") jacqrunes("There ye are [gender], enjoy!", C)