diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index d3713135ea..47597ed8e9 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -598,7 +598,8 @@ /datum/supply_packs/randomised/contraband num_contained = 5 contains = list(/obj/item/weapon/contraband/poster, - /obj/item/weapon/cigpacket/dromedaryco) + /obj/item/weapon/cigpacket/dromedaryco, + /obj/item/weapon/lipstick/random) name = "Contraband crate" cost = 30 containertype = /obj/structure/closet/crate diff --git a/code/game/objects/items/devices/transfer_valve.dm b/code/game/objects/items/devices/transfer_valve.dm index 89f9869179..043e89201d 100644 --- a/code/game/objects/items/devices/transfer_valve.dm +++ b/code/game/objects/items/devices/transfer_valve.dm @@ -47,7 +47,7 @@ A.loc = src user << "You attach the [item] to the valve controls and secure it." A.holder = src - A.toggle_secure() + A.toggle_secure() //this calls update_icon(), which calls update_icon() on the holder (i.e. the bomb). bombers += "[key_name(user)] attached a [item] to a transfer valve." message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") diff --git a/code/game/objects/items/weapons/cosmetics.dm b/code/game/objects/items/weapons/cosmetics.dm new file mode 100644 index 0000000000..39a058a196 --- /dev/null +++ b/code/game/objects/items/weapons/cosmetics.dm @@ -0,0 +1,87 @@ +/obj/item/weapon/lipstick + name = "red lipstick" + desc = "A generic brand of lipstick." + icon = 'icons/obj/items.dmi' + icon_state = "lipstick" + flags = FPRINT | TABLEPASS + w_class = 1.0 + var/colour = "red" + var/open = 0 + + +/obj/item/weapon/lipstick/purple + name = "purple lipstick" + colour = "purple" + +/obj/item/weapon/lipstick/jade + name = "jade lipstick" + colour = "jade" + +/obj/item/weapon/lipstick/black + name = "black lipstick" + colour = "black" + + +/obj/item/weapon/lipstick/random + name = "lipstick" + +/obj/item/weapon/lipstick/random/New() + colour = pick("red","purple","jade","black") + name = "[colour] lipstick" + + +/obj/item/weapon/lipstick/attack_self(mob/user as mob) + user << "You twist \the [src] [open ? "closed" : "open"]." + open = !open + if(open) + icon_state = "[initial(icon_state)]_[colour]" + else + icon_state = initial(icon_state) + +/obj/item/weapon/lipstick/attack(mob/M as mob, mob/user as mob) + if(!open) return + + if(!istype(M, /mob)) return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.lip_style) //if they already have lipstick on + user << "You need to wipe off the old lipstick first!" + return + if(H == user) + user.visible_message("[user] does their lips with \the [src].", \ + "You take a moment to apply \the [src]. Perfect!") + H.lip_style = colour + H.update_body() + else + user.visible_message("[user] begins to do [H]'s lips with \the [src].", \ + "You begin to apply \the [src].") + if(do_after(user, 20) && do_after(H, 20, 5, 0)) //user needs to keep their active hand, H does not. + user.visible_message("[user] does [H]'s lips with \the [src].", \ + "You apply \the [src].") + H.lip_style = colour + H.update_body() + else + user << "Where are the lips on that?" + +//you can wipe off lipstick with paper! +/obj/item/weapon/paper/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) + if(user.zone_sel.selecting == "mouth") + if(!istype(M, /mob)) return + + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H == user) + user << "You wipe off the lipstick with [src]." + H.lip_style = null + H.update_body() + else + user.visible_message("[user] begins to wipe [H]'s lipstick off with \the [src].", \ + "You begin to wipe off [H]'s lipstick.") + if(do_after(user, 10) && do_after(H, 10, 5, 0)) //user needs to keep their active hand, H does not. + user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \ + "You wipe off [H]'s lipstick.") + H.lip_style = null + H.update_body() + else + ..() \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 35f514f326..cc8877b50c 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -468,8 +468,10 @@ if(holder && mob) if(mob.invisibility == INVISIBILITY_OBSERVER) mob.invisibility = initial(mob.invisibility) + usr << "\red You are now visible to other players." else mob.invisibility = INVISIBILITY_OBSERVER + usr << "\blue You are now invisible to other players." /client/proc/player_panel() diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index e1790d7d87..07e779c048 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -37,6 +37,10 @@ signal() return 1 + update_icon() + if(holder) + holder.update_icon() + return interact(mob/user as mob, flag1) var/t1 = "-------" diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index ad2d4dc294..45df92ca62 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -19,6 +19,8 @@ var/s_tone = 0 //Skin tone + var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup + var/age = 30 //Player's age (pure fluff) var/b_type = "A+" //Player's bloodtype (Not currently used, just character fluff) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index b06f776e5c..8c5cfede78 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -301,9 +301,10 @@ proc/get_damage_icon_part(damage_state, body_part) stand_icon.Blend(eyes_s, ICON_OVERLAY) lying_icon.Blend(eyes_l, ICON_OVERLAY) - //Mouth - stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "mouth_[g]_s"), ICON_OVERLAY) - lying_icon.Blend(new/icon('icons/mob/human_face.dmi', "mouth_[g]_l"), ICON_OVERLAY) + //Mouth (lipstick!) + if(lip_style) + stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) + lying_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_l"), ICON_OVERLAY) //Underwear if(underwear < 6 && underwear > 0) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index 9ec4819df2..644697d5a3 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -25,6 +25,8 @@ var/const/signfont = "Times New Roman" var/const/crayonfont = "Comic Sans MS" +//lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm! + /obj/item/weapon/paper/New() ..() src.pixel_y = rand(-8, 8) diff --git a/html/changelog.html b/html/changelog.html index 2281dd32cd..6ed5642b31 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -53,6 +53,7 @@ should be listed in the changelog upon commit tho. Thanks. -->

Petethegoat updated:

diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 1dff87d69e..dc9ca30ead 100644 Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index e7580304f9..4821911fb7 100644 Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 64ded09238..ede6278d43 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index c1d67f0c86..d2f18acab9 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 7caa857210..3267e68ebf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -665,6 +665,7 @@ #include "code\game\objects\items\weapons\cards_ids.dm" #include "code\game\objects\items\weapons\cigs_lighters.dm" #include "code\game\objects\items\weapons\clown_items.dm" +#include "code\game\objects\items\weapons\cosmetics.dm" #include "code\game\objects\items\weapons\dice.dm" #include "code\game\objects\items\weapons\dna_injector.dm" #include "code\game\objects\items\weapons\explosives.dm"