Pens now write on people, Harm intent to stab them like the old way.

Washable at showers.
This commit is contained in:
QuoteFox
2021-02-22 23:08:42 +00:00
parent 4818d77ea4
commit 9dd61f3efb
6 changed files with 60 additions and 18 deletions
+2 -1
View File
@@ -397,7 +397,8 @@
var/washmask = TRUE
var/washears = TRUE
var/washglasses = TRUE
for(var/obj/item/bodypart/BP in H.bodyparts)
BP.writtentext = ""
if(H.wear_suit)
washgloves = !(H.wear_suit.flags_inv & HIDEGLOVES)
washshoes = !(H.wear_suit.flags_inv & HIDESHOES)
@@ -172,15 +172,16 @@
var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
var/list/disabled = list()
var/list/writing = list()
for(var/X in bodyparts)
var/obj/item/bodypart/BP = X
if(BP.disabled)
disabled += BP
if(BP.writtentext)
writing += BP
missing -= BP.body_zone
for(var/obj/item/I in BP.embedded_objects)
msg += "<B>[t_He] [t_has] \a [icon2html(I, user)] [I] embedded in [t_his] [BP.name]!</B>\n"
if(BP.broken)
msg += "<B>[t_He] [t_has] \a [I] broken [BP.name]!</B>\n"
for(var/X in disabled)
var/obj/item/bodypart/BP = X
@@ -304,6 +305,11 @@
else
msg += " and they don't look like they're all there.\n"
for(var/X in writing)
if(!w_uniform)
var/obj/item/bodypart/BP = X
msg += "<span class='notice'>[capitalize(t_He)] has \"[html_encode(BP.writtentext)]\" written on [t_his] [BP.name].</span>\n"
if(isliving(user))
var/mob/living/L = user
if(src != user && HAS_TRAIT(L, TRAIT_EMPATH) && !appears_dead)
-15
View File
@@ -105,21 +105,6 @@
to_chat(user, "<span class='notice'>You rotate the top of the pen to [degrees] degrees.</span>")
SEND_SIGNAL(src, COMSIG_PEN_ROTATED, deg, user)
/obj/item/pen/attack(mob/living/M, mob/user,stealth)
if(!istype(M))
return
if(!force)
if(M.can_inject(user, 1))
to_chat(user, "<span class='warning'>You stab [M] with the pen.</span>")
if(!stealth)
to_chat(M, "<span class='danger'>You feel a tiny prick!</span>")
. = 1
log_combat(user, M, "stabbed", src)
else
. = ..()
/obj/item/pen/afterattack(obj/O, mob/living/user, proximity)
. = ..()
@@ -75,6 +75,10 @@
var/medium_burn_msg = "blistered"
var/heavy_burn_msg = "peeling away"
//writing on body parts with pens
var/writtentext = ""
/obj/item/bodypart/examine(mob/user)
. = ..()
if(brute_dam > DAMAGE_PRECISION)
+45
View File
@@ -0,0 +1,45 @@
/obj/item/pen/attack(mob/living/M, mob/user,stealth)
if(!istype(M))
return
if(!force)
if(M.can_inject(user, 1))
if(user.a_intent == "harm") //old poke requires harm intent.
to_chat(user, "<span class='warning'>You stab [M] with the pen.</span>")
if(!stealth)
to_chat(M, "<span class='danger'>You feel a tiny prick!</span>")
. = 1
else //writing time
var/mob/living/carbon/human/T = M
if(!T) //not human.
return
if(!T.is_chest_exposed())
to_chat(user, "<span class='warning'>You cannot write on someone with their clothes on.</span>")
return
var/writting = input(user, "Add writing, doesn't replace current text", "Writing on [T]") as text|null
if(!writting)
return
var/obj/item/bodypart/BP = T.get_bodypart(user.zone_selected)
if(!(user==T))
src.visible_message("<span class='notice'>[user] begins to write on [T]'s [BP.name].</span>")
else
to_chat(user, "<span class='notice'>You begin to write on your [BP.name].</span>")
if(do_mob(user, T, 4 SECONDS))
if((length(BP.writtentext))+(length(writting)) < 100) //100 character limmit to stop spamming.
BP.writtentext += html_encode(writting) //you can add to text, not remove it.
else
to_chat(user, "<span class='notice'>There isnt enough space to write that on [T]'s [BP.name].</span>")
return
if(!(user==T))
to_chat(user, "<span class='notice'>You write on [T]'s [BP.name].</span>")
else
to_chat(user, "<span class='notice'>You write on your [BP.name].</span>")
else
. = ..()
+1
View File
@@ -3038,6 +3038,7 @@
#include "hyperstation\code\mobs\hugbot.dm"
#include "hyperstation\code\mobs\mimic.dm"
#include "hyperstation\code\mobs\werewolf.dm"
#include "hyperstation\code\modules\pen.dm"
#include "hyperstation\code\modules\traits.dm"
#include "hyperstation\code\modules\admin\verbs\hyperverbs.dm"
#include "hyperstation\code\modules\antagonists\werewolf\werewolf.dm"