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 000000000..7edbc40bc Binary files /dev/null and b/hyperstation/icons/obj/barber.dmi differ diff --git a/hyperstation/icons/obj/chairs.dmi b/hyperstation/icons/obj/chairs.dmi new file mode 100644 index 000000000..b1460e140 Binary files /dev/null and b/hyperstation/icons/obj/chairs.dmi differ 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"