Fixes issue 955. (Signalers don't update bomb overlays)

Fixes issue 957. (Sexy mime costume causes incorrectly coloured cleavage)

Adds lipstick~
There are four colours to choose from, and they can be found in contraband crates. You can wipe off lipstick with paper.

Adds some feedback for when the invisimin verb is used.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4739 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
petethegoat@gmail.com
2012-09-23 15:31:01 +00:00
parent cec16a796f
commit c016c10bfa
14 changed files with 106 additions and 5 deletions

View File

@@ -598,7 +598,8 @@
/datum/supply_packs/randomised/contraband /datum/supply_packs/randomised/contraband
num_contained = 5 num_contained = 5
contains = list(/obj/item/weapon/contraband/poster, 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" name = "Contraband crate"
cost = 30 cost = 30
containertype = /obj/structure/closet/crate containertype = /obj/structure/closet/crate

View File

@@ -47,7 +47,7 @@
A.loc = src A.loc = src
user << "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>" user << "<span class='notice'>You attach the [item] to the valve controls and secure it.</span>"
A.holder = src 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." bombers += "[key_name(user)] attached a [item] to a transfer valve."
message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.") message_admins("[key_name_admin(user)] attached a [item] to a transfer valve.")

View File

@@ -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 << "<span class='notice'>You twist \the [src] [open ? "closed" : "open"].</span>"
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 << "<span class='notice'>You need to wipe off the old lipstick first!</span>"
return
if(H == user)
user.visible_message("<span class='notice'>[user] does their lips with \the [src].</span>", \
"<span class='notice'>You take a moment to apply \the [src]. Perfect!</span>")
H.lip_style = colour
H.update_body()
else
user.visible_message("<span class='warning'>[user] begins to do [H]'s lips with \the [src].</span>", \
"<span class='notice'>You begin to apply \the [src].</span>")
if(do_after(user, 20) && do_after(H, 20, 5, 0)) //user needs to keep their active hand, H does not.
user.visible_message("<span class='notice'>[user] does [H]'s lips with \the [src].</span>", \
"<span class='notice'>You apply \the [src].</span>")
H.lip_style = colour
H.update_body()
else
user << "<span class='notice'>Where are the lips on that?</span>"
//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 << "<span class='notice'>You wipe off the lipstick with [src].</span>"
H.lip_style = null
H.update_body()
else
user.visible_message("<span class='warning'>[user] begins to wipe [H]'s lipstick off with \the [src].</span>", \
"<span class='notice'>You begin to wipe off [H]'s lipstick.</span>")
if(do_after(user, 10) && do_after(H, 10, 5, 0)) //user needs to keep their active hand, H does not.
user.visible_message("<span class='notice'>[user] wipes [H]'s lipstick off with \the [src].</span>", \
"<span class='notice'>You wipe off [H]'s lipstick.</span>")
H.lip_style = null
H.update_body()
else
..()

View File

@@ -468,8 +468,10 @@
if(holder && mob) if(holder && mob)
if(mob.invisibility == INVISIBILITY_OBSERVER) if(mob.invisibility == INVISIBILITY_OBSERVER)
mob.invisibility = initial(mob.invisibility) mob.invisibility = initial(mob.invisibility)
usr << "\red <b>You are now visible to other players.</b>"
else else
mob.invisibility = INVISIBILITY_OBSERVER mob.invisibility = INVISIBILITY_OBSERVER
usr << "\blue <b>You are now invisible to other players.</b>"
/client/proc/player_panel() /client/proc/player_panel()

View File

@@ -37,6 +37,10 @@
signal() signal()
return 1 return 1
update_icon()
if(holder)
holder.update_icon()
return
interact(mob/user as mob, flag1) interact(mob/user as mob, flag1)
var/t1 = "-------" var/t1 = "-------"

View File

@@ -19,6 +19,8 @@
var/s_tone = 0 //Skin tone 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/age = 30 //Player's age (pure fluff)
var/b_type = "A+" //Player's bloodtype (Not currently used, just character fluff) var/b_type = "A+" //Player's bloodtype (Not currently used, just character fluff)

View File

@@ -301,9 +301,10 @@ proc/get_damage_icon_part(damage_state, body_part)
stand_icon.Blend(eyes_s, ICON_OVERLAY) stand_icon.Blend(eyes_s, ICON_OVERLAY)
lying_icon.Blend(eyes_l, ICON_OVERLAY) lying_icon.Blend(eyes_l, ICON_OVERLAY)
//Mouth //Mouth (lipstick!)
stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "mouth_[g]_s"), ICON_OVERLAY) if(lip_style)
lying_icon.Blend(new/icon('icons/mob/human_face.dmi', "mouth_[g]_l"), ICON_OVERLAY) 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 //Underwear
if(underwear < 6 && underwear > 0) if(underwear < 6 && underwear > 0)

View File

@@ -25,6 +25,8 @@
var/const/signfont = "Times New Roman" var/const/signfont = "Times New Roman"
var/const/crayonfont = "Comic Sans MS" var/const/crayonfont = "Comic Sans MS"
//lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm!
/obj/item/weapon/paper/New() /obj/item/weapon/paper/New()
..() ..()
src.pixel_y = rand(-8, 8) src.pixel_y = rand(-8, 8)

View File

@@ -53,6 +53,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
<h3 class="author">Petethegoat updated:</h3> <h3 class="author">Petethegoat updated:</h3>
<ul class="changes bgimages16"> <ul class="changes bgimages16">
<li class="bugfix">Fixed an exploit which would allow the janitor to magically mop floors.</li> <li class="bugfix">Fixed an exploit which would allow the janitor to magically mop floors.</li>
<li class="rscadd">Added lipstick~ It's not available on station, as Nanotrasen has deemed it contraband.</li>
<li class="experiment">If you encounter any issues with computers, notify an admin, or ask for assistance on #coderbus, on irc.rizon.net.</li> <li class="experiment">If you encounter any issues with computers, notify an admin, or ask for assistance on #coderbus, on irc.rizon.net.</li>
</ul> </ul>
</div> </div>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 176 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View File

@@ -665,6 +665,7 @@
#include "code\game\objects\items\weapons\cards_ids.dm" #include "code\game\objects\items\weapons\cards_ids.dm"
#include "code\game\objects\items\weapons\cigs_lighters.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\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\dice.dm"
#include "code\game\objects\items\weapons\dna_injector.dm" #include "code\game\objects\items\weapons\dna_injector.dm"
#include "code\game\objects\items\weapons\explosives.dm" #include "code\game\objects\items\weapons\explosives.dm"