mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-25 13:07:46 +01:00
Added electric razors to the barber shop
This commit is contained in:
@@ -1468,3 +1468,64 @@ Standard way to write links -Sayu
|
||||
if(istype(arglist,/list))
|
||||
arglist = list2params(arglist)
|
||||
return "<a href='?src=\ref[D];[arglist]'>[content]</a>"
|
||||
|
||||
|
||||
/proc/get_location_accessible(mob/M, location)
|
||||
var/covered_locations = 0 //based on body_parts_covered
|
||||
var/face_covered = 0 //based on flags_inv
|
||||
var/eyesmouth_covered = 0 //based on flags
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
for(var/obj/item/clothing/I in list(C.back, C.wear_mask))
|
||||
covered_locations |= I.body_parts_covered
|
||||
face_covered |= I.flags_inv
|
||||
eyesmouth_covered |= I.flags
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
for(var/obj/item/I in list(H.wear_suit, H.w_uniform, H.shoes, H.belt, H.gloves, H.glasses, H.head, H.r_ear, H.l_ear))
|
||||
covered_locations |= I.body_parts_covered
|
||||
face_covered |= I.flags_inv
|
||||
eyesmouth_covered |= I.flags
|
||||
|
||||
switch(location)
|
||||
if("head")
|
||||
if(covered_locations & HEAD)
|
||||
return 0
|
||||
if("eyes")
|
||||
if(covered_locations & HEAD || face_covered & HIDEEYES || eyesmouth_covered & GLASSESCOVERSEYES)
|
||||
return 0
|
||||
if("mouth")
|
||||
if(covered_locations & HEAD || face_covered & HIDEFACE || eyesmouth_covered & MASKCOVERSMOUTH)
|
||||
return 0
|
||||
if("chest")
|
||||
if(covered_locations & UPPER_TORSO)
|
||||
return 0
|
||||
if("groin")
|
||||
if(covered_locations & LOWER_TORSO)
|
||||
return 0
|
||||
if("l_arm")
|
||||
if(covered_locations & ARM_LEFT)
|
||||
return 0
|
||||
if("r_arm")
|
||||
if(covered_locations & ARM_RIGHT)
|
||||
return 0
|
||||
if("l_leg")
|
||||
if(covered_locations & LEG_LEFT)
|
||||
return 0
|
||||
if("r_leg")
|
||||
if(covered_locations & LEG_RIGHT)
|
||||
return 0
|
||||
if("l_hand")
|
||||
if(covered_locations & HAND_LEFT)
|
||||
return 0
|
||||
if("r_hand")
|
||||
if(covered_locations & HAND_RIGHT)
|
||||
return 0
|
||||
if("l_foot")
|
||||
if(covered_locations & FOOT_LEFT)
|
||||
return 0
|
||||
if("r_foot")
|
||||
if(covered_locations & FOOT_RIGHT)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
@@ -83,5 +83,77 @@
|
||||
"<span class='notice'>You wipe off [H]'s lipstick.</span>")
|
||||
H.lip_style = null
|
||||
H.update_body()
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/weapon/razor
|
||||
name = "electric razor"
|
||||
desc = "The latest and greatest power razor born from the science of shaving."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "razor"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
w_class = 1.0
|
||||
|
||||
/obj/item/weapon/razor/attack(mob/living/carbon/M as mob, mob/user as mob)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(user.zone_sel.selecting == "mouth")
|
||||
if(!get_location_accessible(H, "mouth"))
|
||||
user << "<span class='warning'>The mask is in the way.</span>"
|
||||
return
|
||||
if(H.f_style == "Shaved")
|
||||
user << "<span class='notice'>Already clean-shaven.</span>"
|
||||
return
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='notice'>[user] starts to shave their facial hair with \the [src].</span>", \
|
||||
"<span class='notice'>You take a moment shave your facial hair with \the [src].</span>")
|
||||
if(do_after(user, 50))
|
||||
user.visible_message("<span class='notice'>[user] shaves his facial hair clean with the [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with the [src]. Fast and clean!</span>")
|
||||
H.f_style = "Shaved"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||
else
|
||||
var/turf/user_loc = user.loc
|
||||
var/turf/H_loc = H.loc
|
||||
user.visible_message("<span class='danger'>[user] tries to shave [H]'s facial hair with \the [src].</span>", \
|
||||
"<span class='warning'>You start shaving [H]'s facial hair.</span>")
|
||||
if(do_after(user, 50))
|
||||
if(user_loc == user.loc && H_loc == H.loc)
|
||||
user.visible_message("<span class='danger'>[user] shaves off [H]'s facial hair with \the [src].</span>", \
|
||||
"<span class='notice'>You shave [H]'s facial hair clean off.</span>")
|
||||
H.f_style = "Shaved"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 20, 1)
|
||||
if(user.zone_sel.selecting == "head")
|
||||
if(!get_location_accessible(H, "head"))
|
||||
user << "<span class='warning'>The headgear is in the way.</span>"
|
||||
return
|
||||
if(H.h_style == "Bald" || H.h_style == "Balding Hair" || H.h_style == "Skinhead")
|
||||
user << "<span class='notice'>There is not enough hair left to shave...</span>"
|
||||
return
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("<span class='warning'>[user] starts to shave their head with \the [src].</span>", \
|
||||
"<span class='warning'>You start to shave your head with \the [src].</span>")
|
||||
if(do_after(user, 50))
|
||||
user.visible_message("<span class='notice'>[user] shaves his head with the [src].</span>", \
|
||||
"<span class='notice'>You finish shaving with the [src].</span>")
|
||||
H.h_style = "Skinhead"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 40, 1)
|
||||
else
|
||||
var/turf/user_loc = user.loc
|
||||
var/turf/H_loc = H.loc
|
||||
user.visible_message("<span class='danger'>[user] tries to shave [H]'s head with \the [src]!</span>", \
|
||||
"<span class='warning'>You start shaving [H]'s head.</span>")
|
||||
if(do_after(user, 50))
|
||||
if(user_loc == user.loc && H_loc == H.loc)
|
||||
user.visible_message("<span class='danger'>[user] shaves [H]'s head bald with \the [src]!</span>", \
|
||||
"<span class='warning'>You shave [H]'s head bald.</span>")
|
||||
H.h_style = "Skinhead"
|
||||
H.update_hair()
|
||||
playsound(src.loc, 'sound/items/Welder2.ogg', 40, 1)
|
||||
else
|
||||
..()
|
||||
else
|
||||
..()
|
||||
@@ -172,7 +172,7 @@
|
||||
src.modules += new /obj/item/weapon/reagent_containers/food/drinks/beer(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/food/condiment/enzyme(src)
|
||||
src.modules += new /obj/item/weapon/pen/robopen(src)
|
||||
src.modules += new /obj/item/device/violin(src)
|
||||
src.modules += new /obj/item/weapon/razor(src)
|
||||
var/obj/item/weapon/rsf/M = new /obj/item/weapon/rsf(src)
|
||||
M.matter = 30
|
||||
src.modules += M
|
||||
|
||||
Reference in New Issue
Block a user