mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-15 09:57:49 +01:00
Pens now write on people, Harm intent to stab them like the old way.
Washable at showers.
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
. = ..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user