diff --git a/code/defines/mob/simple_animal/life.dm b/code/defines/mob/simple_animal/life.dm index 225b8979e44..24db1f5d605 100644 --- a/code/defines/mob/simple_animal/life.dm +++ b/code/defines/mob/simple_animal/life.dm @@ -140,7 +140,14 @@ movement_target.attack_animal(src) else if(ishuman(movement_target.loc) ) if(prob(20)) - emote("", 0, "stares at the [movement_target] that [movement_target.loc] has with a sad puppy-face") + emote("stares at the [movement_target] that [movement_target.loc] has with a sad puppy-face") + + if(prob(1)) + emote("dances around") + spawn(0) + for(var/i in list(1,2,4,8,4,2,1,2,4,8,4,2,1,2,4,8,4,2)) + dir = i + sleep(1) /mob/living/simple_animal/New() ..() diff --git a/code/game/machinery/sink.dm b/code/game/machinery/sink.dm index 4fae5f260bb..e8d2a9b6a5f 100644 --- a/code/game/machinery/sink.dm +++ b/code/game/machinery/sink.dm @@ -4,35 +4,57 @@ icon_state = "sink" desc = "A sink used for washing one's hands and face." anchored = 1 + var/busy = 0 //Something's being washed at the moment attack_hand(mob/M as mob) + if(busy) + M << "\red Someone's already washing something here." + return + + var/turf/location = M.loc + if(!isturf(location)) return + usr << "\blue You start washing up." + + busy = 1 + sleep(40) + busy = 0 + + if(M.loc != location) return //Person has moved away from the sink + M.clean_blood() if(istype(M, /mob/living/carbon)) var/mob/living/carbon/C = M C.clean_blood() + /* if(C.r_hand) - C.r_hand.clean_blood() + C.r_hand.clean_blood() // The hand you attack with is empty anyway, the other one should not be washed while doing this. if(C.l_hand) C.l_hand.clean_blood() + if(C.wear_mask) - C.wear_mask.clean_blood() + C.wear_mask.clean_blood() //- NOPE, Washing machine -Errorage + */ if(istype(M, /mob/living/carbon/human)) - if(C:w_uniform) - C:w_uniform.clean_blood() + /*if(C:w_uniform) + C:w_uniform.clean_blood() //- NOPE, Washing machine -Errorage if(C:wear_suit) - C:wear_suit.clean_blood() + C:wear_suit.clean_blood() //- NOPE, Washing machine -Errorage if(C:shoes) - C:shoes.clean_blood() + C:shoes.clean_blood()*/ //- NOPE, Washing machine -Errorage if(C:gloves) C:gloves.clean_blood() - if(C:head) - C:head.clean_blood() + /*if(C:head) + C:head.clean_blood()*/ //- NOPE, Washing machine -Errorage for(var/mob/V in viewers(src, null)) V.show_message(text("\blue [M] washes up using \the [src].")) attackby(var/obj/item/O as obj, var/mob/user as mob) + if(busy) + user << "\red Someone's already washing something here." + return + if (istype(O, /obj/item/weapon/reagent_containers/glass) || istype(O,/obj/item/weapon/reagent_containers/food/drinks)) O:reagents.add_reagent("water", 10) user.visible_message( \ @@ -55,10 +77,27 @@ "[user] was stunned by his wet [O].", \ "\red You have wet \the [O], it shocks you!") return + + var/turf/location = user.loc + if(!isturf(location)) return + + var/obj/item/I = O + if(!I || !istype(I,/obj/item)) return + + usr << "\blue You start washing up." + + busy = 1 + sleep(40) + busy = 0 + + if(user.loc != location) return //User has moved + if(!I) return //Item's been destroyed while washing + if(user.get_active_hand() != I) return //Person has switched hands or the item in their hands + O.clean_blood() user.visible_message( \ - "\blue [user] washes \a [O] using \the [src].", \ - "\blue You wash \a [O] using \the [src].") + "\blue [user] washes \a [I] using \the [src].", \ + "\blue You wash \a [I] using \the [src].") shower name = "Shower" diff --git a/icons/changelog.html b/icons/changelog.html index ef31bdd32b7..8ecf86b6a8e 100644 --- a/icons/changelog.html +++ b/icons/changelog.html @@ -59,6 +59,7 @@ should be listed in the changelog upon commit tho. Thanks. -->