diff --git a/code/game/objects/structures/snowman.dm b/code/game/objects/structures/snowman.dm new file mode 100644 index 0000000000..b3947621b9 --- /dev/null +++ b/code/game/objects/structures/snowman.dm @@ -0,0 +1,24 @@ +/obj/structure/snowman + name = "snowman" + icon = 'icons/obj/snowman.dmi' + icon_state = "snowman" + desc = "A happy little snowman smiles back at you!" + anchored = 1 + +/obj/structure/snowman/attack_hand(mob/user as mob) + if(user.a_intent == I_HURT) + user << "In one hit, [src] easily crumples into a pile of snow. You monster." + var/turf/simulated/floor/F = get_turf(src) + if (istype(F)) + new /obj/item/stack/material/snow(F) + qdel(src) + +/obj/structure/snowman/borg + name = "snowborg" + icon_state = "snowborg" + desc = "A snowy little robot. It even has a monitor for a head." + +/obj/structure/snowman/spider + name = "snow spider" + icon_state = "snowspider" + desc = "An impressively crafted snow spider. Not nearly as creepy as the real thing." \ No newline at end of file diff --git a/code/game/turfs/simulated/wall_types.dm b/code/game/turfs/simulated/wall_types.dm index 699125e0b3..f187a54c8f 100644 --- a/code/game/turfs/simulated/wall_types.dm +++ b/code/game/turfs/simulated/wall_types.dm @@ -39,6 +39,8 @@ ..(newloc,"silver","gold") /turf/simulated/wall/sandstonediamond/New(var/newloc) ..(newloc,"sandstone","diamond") +/turf/simulated/wall/snowbrick/New(var/newloc) + ..(newloc,"packed snow") // Kind of wondering if this is going to bite me in the butt. /turf/simulated/wall/skipjack/New(var/newloc) diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 6a10383f76..bb5a4674f4 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -167,4 +167,19 @@ /material/snow/generate_recipes() recipes = list() - recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10) \ No newline at end of file + recipes += new/datum/stack_recipe("snowball", /obj/item/weapon/material/snow/snowball, 1, time = 10) + recipes += new/datum/stack_recipe("snow brick", /obj/item/stack/material/snowbrick, 2, time = 10) + recipes += new/datum/stack_recipe("snowman", /obj/structure/snowman, 2, time = 15) + recipes += new/datum/stack_recipe("snow robot", /obj/structure/snowman/borg, 2, time = 10) + recipes += new/datum/stack_recipe("snow spider", /obj/structure/snowman/spider, 3, time = 20) + +/material/snowbrick/generate_recipes() + recipes = list() + recipes += new/datum/stack_recipe("[display_name] door", /obj/structure/simple_door, 10, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] barricade", /obj/structure/barricade, 5, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] stool", /obj/item/weapon/stool, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] chair", /obj/structure/bed/chair, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] bed", /obj/structure/bed, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] double bed", /obj/structure/bed/double, 4, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] wall girders", /obj/structure/girder, 2, time = 50, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") + recipes += new/datum/stack_recipe("[display_name] ashtray", /obj/item/weapon/material/ashtray, 2, one_per_turf = 1, on_floor = 1, supplied_material = "[name]") \ No newline at end of file diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index d212851071..54d56fd773 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -269,10 +269,16 @@ /obj/item/stack/material/snow name = "snow" - desc = "The temptation to build a snowfort rises." + desc = "The temptation to build a snowman rises." icon_state = "sheet-snow" default_type = "snow" +/obj/item/stack/material/snowbrick + name = "snow brick" + desc = "For all of your igloo building needs." + icon_state = "sheet-snowbrick" + default_type = "packed snow" + /obj/item/stack/material/leather name = "leather" desc = "The by-product of mob grinding." diff --git a/code/modules/materials/materials.dm b/code/modules/materials/materials.dm index 2aad17f180..9137fb416c 100644 --- a/code/modules/materials/materials.dm +++ b/code/modules/materials/materials.dm @@ -752,6 +752,7 @@ var/list/name_to_material stack_origin_tech = list(TECH_MATERIAL = 1) door_icon_base = "wood" destruction_desc = "crumples" + radiation_resistance = 1 /material/snow name = MAT_SNOW @@ -769,6 +770,25 @@ var/list/name_to_material destruction_desc = "crumples" sheet_singular_name = "pile" sheet_plural_name = "pile" //Just a bigger pile + radiation_resistance = 1 + +/material/snowbrick //only slightly stronger than snow, used to make igloos mostly + name = "packed snow" + flags = MATERIAL_BRITTLE + stack_type = /obj/item/stack/material/snowbrick + icon_base = "stone" + icon_reinf = "reinf_stone" + icon_colour = "#D8FDFF" + integrity = 50 + weight = 2 + hardness = 2 + protectiveness = 0 // 0% + stack_origin_tech = list(TECH_MATERIAL = 1) + melting_point = T0C+1 + destruction_desc = "crumbles" + sheet_singular_name = "brick" + sheet_plural_name = "bricks" + radiation_resistance = 1 /material/cloth //todo name = "cloth" diff --git a/code/modules/mob/_modifiers/traits_phobias.dm b/code/modules/mob/_modifiers/traits_phobias.dm index c96c6890e6..0fbe099c22 100644 --- a/code/modules/mob/_modifiers/traits_phobias.dm +++ b/code/modules/mob/_modifiers/traits_phobias.dm @@ -204,6 +204,9 @@ if(istype(thing, /obj/item/toy/plushie/spider)) // Plushies are spooky so people can be assholes with them. fear_amount += 1 + if(istype(thing, /obj/structure/snowman/spider)) //Snow spiders are also spooky so people can be assholes with those too. + fear_amount += 1 + if(istype(thing, /mob/living/simple_animal/hostile/giant_spider)) // Actual giant spiders are the scariest of them all. var/mob/living/simple_animal/hostile/giant_spider/S = thing if(S.stat == DEAD) // Dead giant spiders are less scary than alive ones. @@ -437,7 +440,7 @@ fear_amount += 1 if(istype(S.species, /datum/species/shapeshifter/promethean)) fear_amount += 4 - + return fear_amount /datum/modifier/trait/phobia/trypanophobe diff --git a/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml b/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml new file mode 100644 index 0000000000..4ee55c6114 --- /dev/null +++ b/html/changelogs/BattlefieldCommander-doyouwannabuildasnowman.yml @@ -0,0 +1,38 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: battlefieldCommander + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added packed snow brick material. Craft it using snow piles." + - recadd: "Added snow girders and igloo walls. Craft them using snow bricks." + - rscadd: "Added various snowmen. Craft them using snow piles. Punch 'em to destroy." \ No newline at end of file diff --git a/icons/obj/snowman.dmi b/icons/obj/snowman.dmi new file mode 100644 index 0000000000..ba6444df3f Binary files /dev/null and b/icons/obj/snowman.dmi differ diff --git a/icons/obj/stacks.dmi b/icons/obj/stacks.dmi index 5146598051..f25ca29526 100644 Binary files a/icons/obj/stacks.dmi and b/icons/obj/stacks.dmi differ diff --git a/polaris.dme b/polaris.dme index 980abe6f52..f8ffc3a198 100644 --- a/polaris.dme +++ b/polaris.dme @@ -1046,6 +1046,7 @@ #include "code\game\objects\structures\safe.dm" #include "code\game\objects\structures\signs.dm" #include "code\game\objects\structures\simple_doors.dm" +#include "code\game\objects\structures\snowman.dm" #include "code\game\objects\structures\tank_dispenser.dm" #include "code\game\objects\structures\target_stake.dm" #include "code\game\objects\structures\transit_tubes.dm"