diff --git a/modular_chomp/code/modules/clothing/masks/miscellaneous.dm b/modular_chomp/code/modules/clothing/masks/miscellaneous.dm new file mode 100644 index 0000000000..8f24db1afe --- /dev/null +++ b/modular_chomp/code/modules/clothing/masks/miscellaneous.dm @@ -0,0 +1,9 @@ +/obj/item/clothing/mask/costume/ghost + name = "ghostly blanket" + desc = "Boo!" + icon = 'modular_chomp/icons/inventory/face/item.dmi' + icon_override = 'modular_chomp/icons/inventory/face/mob.dmi' + icon_state = "ghost" + body_parts_covered = HEAD|FACE + item_flags = FLEXIBLEMATERIAL + flags_inv = HIDEFACE|BLOCKHAIR diff --git a/modular_chomp/code/modules/halloween/costumeboxes.dm b/modular_chomp/code/modules/halloween/costumeboxes.dm new file mode 100644 index 0000000000..d8d7a41df4 --- /dev/null +++ b/modular_chomp/code/modules/halloween/costumeboxes.dm @@ -0,0 +1,140 @@ +/obj/item/storage/box/halloween + name = "costume box" + desc = "A cardboard box, with all your halloween-esque items ready!" + icon = 'icons/obj/storage_ch.dmi' + icon_state = "box" + +/obj/item/storage/box/halloween/masked_killer + name = "masked killer costume" + starts_with = list( + /obj/item/clothing/under/overalls, + /obj/item/clothing/shoes/white, + /obj/item/clothing/gloves/sterile/latex, + /obj/item/clothing/mask/surgical, + /obj/item/clothing/head/welding, + /obj/item/clothing/suit/storage/apron, + /obj/item/material/twohanded/fireaxe/foam, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/professional + name = "the professional costume" + starts_with = list( + /obj/item/clothing/under/suit_jacket{ starting_accessories=list(/obj/item/clothing/accessory/wcoat) }, + /obj/item/storage/briefcase/ { starts_with = list(/obj/item/clothing/mask/gas/clown_hat, /obj/item/ammo_magazine/mfoam_dart/pistol, /obj/item/gun/projectile/pistol/toy, /obj/item/toy/sword) }, + /obj/item/clothing/shoes/black, + /obj/item/clothing/gloves/black, + /obj/item/clothing/glasses/fakesunglasses, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/horrorcop + name = "slasher movie cop costume" + starts_with = list( + /obj/item/clothing/under/corp/pcrc{ starting_accessories=list(/obj/item/clothing/accessory/holster/hip) }, + /obj/item/clothing/shoes/black, + /obj/item/clothing/gloves/black, + /obj/item/clothing/glasses/fakesunglasses, + /obj/item/clothing/mask/fakemoustache, + /obj/item/clothing/head/beret, + /obj/item/gun/projectile/revolver/capgun, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/cowboy + name = "cowboy costume" + starts_with = list( + /obj/item/clothing/under/pants{ starting_accessories=list(/obj/item/clothing/accessory/holster/hip) }, + /obj/item/clothing/shoes/boots/cowboy, + /obj/item/clothing/head/cowboy, + /obj/item/clothing/gloves/fingerless, + /obj/item/clothing/accessory/poncho, + /obj/item/gun/projectile/revolver/capgun, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/lumberjack + name = "lumberjack costume" + starts_with = list( + /obj/item/clothing/under/pants{ starting_accessories=list(/obj/item/clothing/accessory/sweater/blackneck) }, + /obj/item/clothing/shoes/boots/workboots, + /obj/item/clothing/head/beanie, + /obj/item/clothing/gloves/fingerless, + /obj/item/clothing/suit/storage/flannel/red, + /obj/item/material/twohanded/fireaxe/foam, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/firefighter + name = "firefighter costume" + starts_with = list( + /obj/item/clothing/under/pants, + /obj/item/clothing/shoes/boots/workboots, + /obj/item/clothing/head/hardhat/firefighter, + /obj/item/clothing/gloves/black, + /obj/item/clothing/suit/fire/firefighter, + /obj/item/material/twohanded/fireaxe/foam, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/vampire + name = "vampire costume" + starts_with = list( + /obj/item/clothing/under/suit_jacket/really_black, + /obj/item/clothing/shoes/dress, + /obj/item/clothing/gloves/white, + /obj/item/bedsheet/red, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/vampirehunter + name = "vampire hunter costume" + starts_with = list( + /obj/item/clothing/under/pants/tan, + /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless, + /obj/item/clothing/shoes/boots/jackboots, + /obj/item/clothing/gloves/fingerless, + /obj/item/gun/projectile/revolver/toy/crossbow/halloween, + /obj/item/flashlight/color/red, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/pirate + name = "pirate costume" + starts_with = list( + /obj/item/clothing/under/pirate, + /obj/item/clothing/shoes/brown, + /obj/item/clothing/head/pirate, + /obj/item/clothing/suit/pirate, + /obj/item/clothing/glasses/eyepatch, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/whiteout + name = "snow ghost costume" + starts_with = list( + /obj/item/clothing/under/color/white{ starting_accessories=list(/obj/item/clothing/accessory/scarf/white) }, + /obj/item/clothing/shoes/white, + /obj/item/clothing/suit/storage/hooded/chaplain_hoodie/whiteout, + /obj/item/clothing/gloves/white, + /obj/item/clothing/mask/surgical, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/marine + name = "ruin marine costume" + starts_with = list( + /obj/item/clothing/under/color/grey, + /obj/item/clothing/shoes/brown, + /obj/item/clothing/head/marine, + /obj/item/clothing/suit/marine, + /obj/item/gun/projectile/revolver/toy/sawnoff, + /obj/item/storage/bag/plasticbag/halloween + ) + +/obj/item/storage/box/halloween/ghost + name = "ghost costume" + starts_with = list( + /obj/item/clothing/mask/costume/ghost, + /obj/item/storage/bag/plasticbag/halloween + ) diff --git a/modular_chomp/code/modules/halloween/items.dm b/modular_chomp/code/modules/halloween/items.dm new file mode 100644 index 0000000000..7937317210 --- /dev/null +++ b/modular_chomp/code/modules/halloween/items.dm @@ -0,0 +1,216 @@ +/obj/item/storage/bag/plasticbag/halloween + name = "halloween bag" + icon = 'modular_chomp/icons/obj/halloween/trash.dmi' + icon_state = "halloween_bag" + can_hold = list( + /obj/item/reagent_containers/food/snacks/candy, + /obj/item/reagent_containers/food/snacks/candy_corn, + /obj/item/reagent_containers/food/snacks/chocolatebar, + /obj/item/reagent_containers/food/snacks/chocolatepiece, + /obj/item/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/reagent_containers/food/snacks/chocolatepiece/truffle, + /obj/item/reagent_containers/food/snacks/chocolateegg, + /obj/item/reagent_containers/food/snacks/no_raisin, + /obj/item/reagent_containers/food/snacks/butterscotch, + /obj/item/reagent_containers/food/snacks/spicy_boys, + /obj/item/reagent_containers/food/snacks/welders_original, + /obj/item/reagent_containers/food/snacks/organ, + /obj/item/reagent_containers/food/snacks/mint, + /obj/item/storage/box/admints, + /obj/item/reagent_containers/food/snacks/cookiesnack, + /obj/item/reagent_containers/food/snacks/cb01, + /obj/item/reagent_containers/food/snacks/cb02, + /obj/item/reagent_containers/food/snacks/cb03, + /obj/item/reagent_containers/food/snacks/cb04, + /obj/item/reagent_containers/food/snacks/cb05, + /obj/item/reagent_containers/food/snacks/cb06, + /obj/item/reagent_containers/food/snacks/cb07, + /obj/item/reagent_containers/food/snacks/cb08, + /obj/item/reagent_containers/food/snacks/cb09, + /obj/item/reagent_containers/food/snacks/cb10, + /obj/item/reagent_containers/food/snacks/reishicup, + /obj/item/reagent_containers/food/snacks/antball, + /obj/item/reagent_containers/food/snacks/honey_candy, + /obj/item/storage/box/winegum, + /obj/item/storage/box/shrimpsandbananas, + /obj/item/clothing/mask/chewable/candy/lolli + ) + +/obj/structure/candybowl + name = "candy bowl" + desc = "It's a bowl, with candy! Take only one, please." + anchored = FALSE + density = FALSE + icon = 'modular_chomp/icons/obj/halloween/bowls.dmi' + icon_state = "fullcandy" + + var/searching = FALSE + var/has_candy = TRUE + + var/list/candy = list( + /obj/item/reagent_containers/food/snacks/chocolatebar, + /obj/item/reagent_containers/food/snacks/cb01, + /obj/item/reagent_containers/food/snacks/cb02, + /obj/item/reagent_containers/food/snacks/cb03, + /obj/item/reagent_containers/food/snacks/cb04, + /obj/item/reagent_containers/food/snacks/cb05, + /obj/item/reagent_containers/food/snacks/cb06, + /obj/item/reagent_containers/food/snacks/cb07, + /obj/item/reagent_containers/food/snacks/cb08, + /obj/item/reagent_containers/food/snacks/cb09, + /obj/item/reagent_containers/food/snacks/cb10, + ) + + var/list/badcandy = list( + /obj/item/reagent_containers/food/snacks/no_raisin, + /obj/item/reagent_containers/food/snacks/egg/rotten, + /obj/item/reagent_containers/food/snacks/candy_corn + ) + + var/list/treated = list() + +/obj/structure/candybowl/attack_hand(mob/user) + + var/thegoods + + if(!has_candy) + to_chat(user, span_warning("There is no candy! Someone took too many...")) + return + + if(searching) + to_chat(user, span_warning("Someone is already looking through \the [src]!")) + return + + searching = TRUE + + if(!do_after(user, 5 SECONDS)) + return + + if(treated[user.ckey]) + var/choice = tgui_alert(user, "You already took one! Take more?", "Take another...", list("Reach in...", "Leave it!")) + if(choice == "Reach in...") + if(prob(35)) + thegoods = pick(badcandy) + to_chat(user, span_danger("That's one too many! The bowl is empty now...")) + empty() + else + thegoods = pick(candy) + else + thegoods = pick(candy) + treated[user.ckey] = TRUE + + searching = FALSE + + var/goodie = new thegoods(src) + user.put_in_hands(goodie) + +/obj/structure/candybowl/attackby(obj/item/O, mob/user) + . = ..() + if(istype(O, /obj/item/reagent_containers/food/snacks) && !has_candy) + to_chat(user, span_notice("You add \the [O] to the bowl.")) + if(prob(20)) + fill() + qdel(O) + +/obj/structure/candybowl/proc/empty() + var/newname = "empty " + initial(name) + name = newname + desc = "An empty bowl! Someone took too many candies..." + icon_state = "nocandy" + has_candy = FALSE + searching = FALSE + + update_icon() + +/obj/structure/candybowl/proc/fill() + name = initial(name) + desc = initial(desc) + icon_state = "fullcandy" + has_candy = TRUE + + update_icon() + +/obj/structure/candybowl/medical + name = "medical candy bowl" + +/obj/structure/candybowl/medical/Initialize() + . = ..() + candy += list( + /obj/item/clothing/mask/chewable/candy/lolli, + /obj/item/reagent_containers/food/snacks/organ, + /obj/item/storage/box/shrimpsandbananas + ) + +/obj/structure/candybowl/engineering + name = "engineering candy bowl" + +/obj/structure/candybowl/engineering/Initialize() + . = ..() + candy += list( + /obj/item/reagent_containers/food/snacks/welders_original, + /obj/item/reagent_containers/food/snacks/butterscotch, + /obj/item/reagent_containers/food/snacks/chocolatepiece + ) + +/obj/structure/candybowl/cargo + name = "cargo candy bowl" + +/obj/structure/candybowl/cargo/Initialize() + . = ..() + candy += list( + /obj/item/reagent_containers/food/snacks/butterscotch, + /obj/item/reagent_containers/food/snacks/honey_candy, + /obj/item/storage/box/winegum, + ) + +/obj/structure/candybowl/science + name = "science candy bowl" + +/obj/structure/candybowl/science/Initialize() + . = ..() + candy += list( + /obj/item/reagent_containers/food/snacks/reishicup, + /obj/item/reagent_containers/food/snacks/antball, + /obj/item/storage/box/winegum, + /obj/item/reagent_containers/food/snacks/chocolatepiece/truffle + ) + +/obj/structure/candybowl/security + name = "security candy bowl" + +/obj/structure/candybowl/security/Initialize() + . = ..() + candy += list( + /obj/item/reagent_containers/food/snacks/spicy_boys, + /obj/item/reagent_containers/food/snacks/chocolatepiece/white, + /obj/item/reagent_containers/food/snacks/candy_corn + ) + +/obj/structure/boxpile + name = "box pile" + desc = "It's a bunch of costume boxes! Maybe one could fit you..." + icon = 'modular_chomp/icons/obj/halloween/trash64x64.dmi' + icon_state = "bigboxes" + + anchored = TRUE + + var/list/ckeys_that_took = list() + var/list/costumes + +/obj/structure/boxpile/Initialize() + . = ..() + + costumes = typesof(/obj/item/storage/box/halloween/) + +/obj/structure/boxpile/attack_hand(mob/living/user) + if(!do_after(user, 5 SECONDS, exclusive = TASK_USER_EXCLUSIVE)) + return + if(!user.ckey) + return + if(ckeys_that_took[user.ckey]) + to_chat(user, span_notice("Nothing else fits you here!")) + return + to_chat(user, span_notice("After looking around, you found a costume that fits you!")) + ckeys_that_took[user.ckey] = TRUE + var/obj/item/box = pick(costumes) + new box(loc) diff --git a/modular_chomp/code/modules/halloween/snacks.dm b/modular_chomp/code/modules/halloween/snacks.dm new file mode 100644 index 0000000000..feba1f4aea --- /dev/null +++ b/modular_chomp/code/modules/halloween/snacks.dm @@ -0,0 +1,10 @@ +/obj/item/reagent_containers/food/snacks/egg/rotten + name = "rotten egg" + desc = "A rotten egg. It stinks!" + +/obj/item/reagent_containers/food/snacks/egg/Initialize() + . = ..() + reagents.add_reagent("toxin", 3) + +/obj/item/storage/fancy/egg_box/rotten + starts_with = list(/obj/item/reagent_containers/food/snacks/egg/rotten = 12) diff --git a/modular_chomp/icons/inventory/face/item.dmi b/modular_chomp/icons/inventory/face/item.dmi index 226c47b3b6..1ef88e8de2 100644 Binary files a/modular_chomp/icons/inventory/face/item.dmi and b/modular_chomp/icons/inventory/face/item.dmi differ diff --git a/modular_chomp/icons/inventory/face/mob.dmi b/modular_chomp/icons/inventory/face/mob.dmi index 3fa10ad2a0..9a0d366dd9 100644 Binary files a/modular_chomp/icons/inventory/face/mob.dmi and b/modular_chomp/icons/inventory/face/mob.dmi differ diff --git a/modular_chomp/icons/obj/halloween/bowls.dmi b/modular_chomp/icons/obj/halloween/bowls.dmi new file mode 100644 index 0000000000..afaa7bd442 Binary files /dev/null and b/modular_chomp/icons/obj/halloween/bowls.dmi differ diff --git a/modular_chomp/icons/obj/halloween/trash.dmi b/modular_chomp/icons/obj/halloween/trash.dmi new file mode 100644 index 0000000000..4868ed3378 Binary files /dev/null and b/modular_chomp/icons/obj/halloween/trash.dmi differ diff --git a/modular_chomp/icons/obj/halloween/trash64x64.dmi b/modular_chomp/icons/obj/halloween/trash64x64.dmi new file mode 100644 index 0000000000..61d2e29a86 Binary files /dev/null and b/modular_chomp/icons/obj/halloween/trash64x64.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 704c92cbd0..cb6678fd68 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4835,6 +4835,7 @@ #include "modular_chomp\code\modules\clothing\glasses\glasses.dm" #include "modular_chomp\code\modules\clothing\head\jobs.dm" #include "modular_chomp\code\modules\clothing\masks\hailer.dm" +#include "modular_chomp\code\modules\clothing\masks\miscellaneous.dm" #include "modular_chomp\code\modules\clothing\rings\rings_ch.dm" #include "modular_chomp\code\modules\clothing\shoes\miscellaneous.dm" #include "modular_chomp\code\modules\clothing\spacesuits\rig\.behemoth.dm" @@ -4877,6 +4878,9 @@ #include "modular_chomp\code\modules\food\food\drinks\bottle.dm" #include "modular_chomp\code\modules\food\food\snacks\meat.dm" #include "modular_chomp\code\modules\food\glass\bottle.dm" +#include "modular_chomp\code\modules\halloween\costumeboxes.dm" +#include "modular_chomp\code\modules\halloween\items.dm" +#include "modular_chomp\code\modules\halloween\snacks.dm" #include "modular_chomp\code\modules\hydro\plants.dm" #include "modular_chomp\code\modules\hydro\plantsstorage.dm" #include "modular_chomp\code\modules\living\carbon\human\ai_controlled\ai_controlled.dm"