From 780018dcac5ebb30bc9d3fb275e43c92823b84ae Mon Sep 17 00:00:00 2001 From: Dahlular Date: Tue, 5 Apr 2022 03:30:27 -0600 Subject: [PATCH] SORRY CLYDE --- _maps/map_files/generic/CentCom.dmm | 8 --- code/game/objects/items/cosmetics.dm | 5 +- code/game/objects/items/dyekit.dm | 17 ++++- code/game/objects/items/storage/backpack.dm | 2 +- code/game/objects/structures/mirror.dm | 3 +- .../mob/living/silicon/robot/robot_modules.dm | 4 +- .../mob/living/simple_animal/friendly/dog.dm | 4 +- hyperstation/code/modules/barber.dm | 58 ++++++++++++++++++ hyperstation/icons/obj/barber.dmi | Bin 0 -> 4796 bytes hyperstation/icons/obj/chairs.dmi | Bin 0 -> 1121 bytes tgstation.dme | 7 +++ 11 files changed, 91 insertions(+), 17 deletions(-) create mode 100644 hyperstation/code/modules/barber.dm create mode 100644 hyperstation/icons/obj/barber.dmi create mode 100644 hyperstation/icons/obj/chairs.dmi diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index de541d782..95047e983 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -4634,10 +4634,6 @@ /area/abductor_ship) "ejO" = ( /obj/structure/table, -/obj/item/razor{ - pixel_x = 2; - pixel_y = 5 - }, /turf/open/floor/plasteel/white, /area/centcom/ferry) "ejW" = ( @@ -13075,9 +13071,6 @@ /obj/item/storage/pill_bottle/mutarad{ pixel_x = -7 }, -/obj/item/razor{ - pixel_y = 12 - }, /obj/machinery/light/small{ dir = 4; pixel_x = 10; @@ -16868,7 +16861,6 @@ "pFm" = ( /obj/structure/table/glass, /obj/item/surgical_drapes, -/obj/item/razor, /turf/open/floor/holofloor{ icon_state = "white" }, diff --git a/code/game/objects/items/cosmetics.dm b/code/game/objects/items/cosmetics.dm index 254827d7b..19aec6973 100644 --- a/code/game/objects/items/cosmetics.dm +++ b/code/game/objects/items/cosmetics.dm @@ -126,7 +126,7 @@ H.update_body() else ..() - +/* SKYRAT EDIT REMOVAL /obj/item/razor name = "electric razor" desc = "The latest and greatest power razor born from the science of shaving." @@ -216,4 +216,5 @@ else ..() else - ..() \ No newline at end of file + ..() +*/ diff --git a/code/game/objects/items/dyekit.dm b/code/game/objects/items/dyekit.dm index 99bc80eb5..3087f7599 100644 --- a/code/game/objects/items/dyekit.dm +++ b/code/game/objects/items/dyekit.dm @@ -4,6 +4,8 @@ icon = 'icons/obj/dyespray.dmi' icon_state = "dyespray" + var/uses = 10 //SKYRAT EDIT ADDITION + /obj/item/dyespray/attack_self(mob/user) dye(user) @@ -21,6 +23,10 @@ /obj/item/dyespray/proc/dye(mob/target) if(!ishuman(target)) return + + if(!uses) //SKYRAT EDIT ADDITION + return //SKYRAT EDIT ADDITION + var/mob/living/carbon/human/human_target = target var/new_hair_color = input(usr, "Choose a base hair color:", "Character Preference","#"+human_target.hair_color) as color|null @@ -42,4 +48,13 @@ if(!do_after(usr, 30, target = human_target)) return playsound(src, 'sound/effects/spray.ogg', 5, TRUE, 5) - human_target.update_hair() \ No newline at end of file + human_target.update_hair() + + //SKYRAT EDIT ADDITION + uses-- + +/obj/item/dyespray/examine(mob/user) + . = ..() + . += "It has [uses] uses left." + + //SKYRAT EDIT END diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 5a0f6f095..629f19771 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -417,7 +417,7 @@ new /obj/item/cautery(src) new /obj/item/surgical_drapes(src) new /obj/item/clothing/mask/surgical(src) - new /obj/item/razor(src) + //new /obj/item/razor(src) new /obj/item/reagent_containers/medspray/sterilizine(src) /obj/item/storage/backpack/duffelbag/sec diff --git a/code/game/objects/structures/mirror.dm b/code/game/objects/structures/mirror.dm index 009c1ca59..b9b5b4b71 100644 --- a/code/game/objects/structures/mirror.dm +++ b/code/game/objects/structures/mirror.dm @@ -14,6 +14,7 @@ if(icon_state == "mirror_broke" && !broken) obj_break(null, mapload) +/* SKYRAT EDIT REMOVAL /obj/structure/mirror/attack_hand(mob/user) . = ..() if(.) @@ -44,7 +45,7 @@ H.hair_style = new_style H.update_hair() - +*/ /obj/structure/mirror/examine_status(mob/user) if(broken) return // no message spam diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 1148d6692..585a882bb 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -459,7 +459,7 @@ /obj/item/paint/anycolor, /obj/item/cookiesynth, /obj/item/pneumatic_cannon/pie/selfcharge/cyborg, - /obj/item/razor, //killbait material + ///obj/item/razor, //killbait material /obj/item/lipstick/purple, /obj/item/soap/nanotrasen, /obj/item/reagent_containers/spray/waterflower/cyborg, @@ -493,7 +493,7 @@ /obj/item/toy/crayon/spraycan/borg, /obj/item/extinguisher/mini, /obj/item/hand_labeler/borg, - /obj/item/razor, + ///obj/item/razor, /obj/item/crowbar/cyborg, /obj/item/instrument/violin, /obj/item/soap/nanotrasen, diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index f2f218368..11907e54a 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -132,7 +132,7 @@ if(inventory_back) armorval += inventory_back.armor.getRating(type) return armorval*0.5 - +/* /mob/living/simple_animal/pet/dog/corgi/attackby(obj/item/O, mob/user, params) if (istype(O, /obj/item/razor)) if (shaved) @@ -155,7 +155,7 @@ return ..() update_corgi_fluff() - +*/ /mob/living/simple_animal/pet/dog/corgi/Topic(href, href_list) if(!(iscarbon(usr) || iscyborg(usr)) || !usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) usr << browse(null, "window=mob[REF(src)]") diff --git a/hyperstation/code/modules/barber.dm b/hyperstation/code/modules/barber.dm new file mode 100644 index 000000000..ebbcacee3 --- /dev/null +++ b/hyperstation/code/modules/barber.dm @@ -0,0 +1,58 @@ +/obj/structure/chair/barber_chair + name = "barbers chair" + desc = "You sit in this, and your hair shall be cut." + icon = 'hyperstation/icons/obj/chairs.dmi' + icon_state = "barber_chair" + +//Brush +/obj/item/hairbrush + name = "hairbrush" + desc = "A small, circular brush with an ergonomic grip for efficient brush application." + icon = 'hyperstation/icons/obj/barber.dmi' + icon_state = "brush" + //Put lefthand and righthand files here + w_class = WEIGHT_CLASS_TINY + var/brush_speed = 3 SECONDS + +/obj/item/hairbrush/comb + name = "comb" + desc = "A rather simple tool, used to straighten out hair and knots in it." + icon_state = "blackcomb" + +/obj/item/hairbrush/attack(mob/target, mob/user) + if(target.stat == DEAD) + to_chat(usr, "There isn't much point in brushing someone who can't appreciate it!") + return + brush(target, user) + return COMPONENT_CANCEL_ATTACK_CHAIN + +//Brushes someone +/obj/item/hairbrush/proc/brush(mob/living/target, mob/user) + if(ishuman(target)) + var/mob/living/carbon/human/human_target = target + var/obj/item/bodypart/head = human_target.get_bodypart(BODY_ZONE_HEAD) + + //Don't brush if you can't reach their head or cancel the action + if(!head) //No head? No bitches? + to_chat(usr, "[human_target] has no head!") + return + if(human_target.is_mouth_covered(head_only = 1)) + to_chat(usr, "You can't brush [human_target]'s hair while [human_target.p_their()] head is covered!") + return + if(!do_after(user, brush_speed, human_target)) + return + + // Do 1 brute to their head if they're bald. Should've been more careful. + if(human_target.hair_style == "Bald" || human_target.hair_style == "Skinhead" && is_species(human_target, /datum/species/human)) //It can be assumed most anthros have hair on them! + human_target.visible_message("[usr] scrapes the bristles uncomfortably over [human_target]'s scalp.","You scrape the bristles uncomfortably over [human_target]'s scalp.") + playsound(target, 'hyperstation/sound/misc/bonk.ogg', 100, 1) //Until I fix it + return + + //Brush their hair + if(human_target == user) + human_target.visible_message("[usr] brushes [usr.p_their()] hair!","You brush your hair.") + //SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "brushed", /datum/mood/brushed/self) + else + user.visible_message("[usr] brushes [human_target]'s hair!","You brush [human_target]'s hair.") + //SEND_SIGNAL(human_target, COMISG_ADD_MOOD_EVENT, "brushed", /datum/mood_event/brushed, user) + diff --git a/hyperstation/icons/obj/barber.dmi b/hyperstation/icons/obj/barber.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7edbc40bc3f8194aa5d94dfc31a7ec7b7f3c3e51 GIT binary patch literal 4796 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 IEN2${KjgCqc>n+a literal 0 HcmV?d00001 diff --git a/hyperstation/icons/obj/chairs.dmi b/hyperstation/icons/obj/chairs.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b1460e14037a3ecb9be0f967c50b926c13f0f957 GIT binary patch literal 1121 zcmV-n1fKheP)D(6q_N zr@_FPV`F3V^z_5S!{6WEH#ax5w6va{o|Kf7b8~Zle}BNhz;Sad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1ob+;e9J@p)WA(xVX37k#`ein#94nN!LsaZi8E6W)-dkQ4U$rwY_czMdriW%d^&7MG76p_N3pA#s{2?3VkWI}uUd?Jn%7rj93 z3-GvrdJ*vb2pGiL+SeGUPAH*3Y>t#rFwRf~_~zO#fM{t2q$c?G%8KYpQ@pVP#*Gy; ze3?K$M~w;LrfI?gtbsmAstN^|CqRLSL7*o1<_a*P#$^;#P_!WrG}IGdgFscuH-c}z zz^Pwt6H87N4Lr~ko&X2jiDX^Z@(l&JD z$U>P>Uf-ZJ-1N-g{gwmtTSI&HzF~cnZ^?0c*NPh&O1Z{Al~u z^Fs*sj`2pI>pt73;d;E5U8mcr?x(gzzD?paESJ_v4y#{(4{ZhPEvcpSjD+0}75bGQYDi2R=(rvGx@HW_xJFpc~jS^R;Y zhQx$F-+tkKbvGAqzq(rs?EDYl2M|&c@)bzS`165I-ZzZ)k0QEz6uG(E#`cTd1(=&0 zZUW5hZHm9w4BZoWMc7U=H0IyC3rH_N-vH#E-Q(l5{Z>S5UN21zA{o|0I|x|YHpLfW z_RJ*)(?vjJO6j;hvfp!`G1ICSwF<;gH7s($NB#RzqWpOoc~YoE9-{^_X8PNct5b* n{@VM2sKEOBfw;sT_XB?cRl-4jZ;N0+00000NkvXXu0mjfrLYNd literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index 3086ca0b9..46c106753 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3098,8 +3098,10 @@ #include "hyperstation\code\datums\traits\neutral.dm" #include "hyperstation\code\datums\weather\lithium_aurora.dm" #include "hyperstation\code\datums\weather\oxygen_rain.dm" +#include "hyperstation\code\game\area\Space_Station_13_areas.dm" #include "hyperstation\code\game\machinery\lore_terminal.dm" #include "hyperstation\code\game\objects\railings.dm" +#include "hyperstation\code\game\objects\effects\landmarks.dm" #include "hyperstation\code\game\objects\items\coconutcannon.dm" #include "hyperstation\code\game\objects\items\cosmetics.dm" #include "hyperstation\code\game\objects\items\storage\big_bag.dm" @@ -3118,6 +3120,7 @@ #include "hyperstation\code\mobs\hugbot.dm" #include "hyperstation\code\mobs\mimic.dm" #include "hyperstation\code\mobs\werewolf.dm" +#include "hyperstation\code\modules\barber.dm" #include "hyperstation\code\modules\pen.dm" #include "hyperstation\code\modules\traits.dm" #include "hyperstation\code\modules\admin\verbs\hyperverbs.dm" @@ -3158,7 +3161,10 @@ #include "hyperstation\code\modules\events\crystalloid_entities.dm" #include "hyperstation\code\modules\food_and_drinks\recipes\drinks_recipes.dm" #include "hyperstation\code\modules\integrated_electronics\input.dm" +#include "hyperstation\code\modules\jobs\job_types\civilian.dm" +#include "hyperstation\code\modules\jobs\job_types\job_alt_titles.dm" #include "hyperstation\code\modules\jobs\job_types\roleplay.dm" +#include "hyperstation\code\modules\jobs\job_types\security.dm" #include "hyperstation\code\modules\mining\shelters.dm" #include "hyperstation\code\modules\mining\equipment\survival_pod.dm" #include "hyperstation\code\modules\mob\mob_helpers.dm" @@ -3185,6 +3191,7 @@ #include "hyperstation\code\modules\vending\teavendomatic.dm" #include "hyperstation\code\obj\ashtray.dm" #include "hyperstation\code\obj\bluespace sewing kit.dm" +#include "hyperstation\code\obj\clothes.dm" #include "hyperstation\code\obj\condom.dm" #include "hyperstation\code\obj\decal.dm" #include "hyperstation\code\obj\economy.dm"