Merge pull request #7377 from Tayyyyyyy/skrell_hair

Skrell can hold stuff in their tentacles
This commit is contained in:
tigercat2000
2017-05-25 18:23:13 -07:00
committed by GitHub
6 changed files with 88 additions and 3 deletions
@@ -444,6 +444,17 @@
dat += "<tr><td><B>Head:</B></td><td><A href='?src=[UID()];item=[slot_head]'>[(head && !(head.flags&ABSTRACT)) ? head : "<font color=grey>Empty</font>"]</A></td></tr>"
var/obj/item/organ/internal/headpocket/C = get_int_organ(/obj/item/organ/internal/headpocket)
if(C)
if(slot_wear_mask in obscured)
dat += "<tr><td><font color=grey>&nbsp;&#8627;<B>Headpocket:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
else
var/list/items = C.get_contents()
if(items.len)
dat += "<tr><td>&nbsp;&#8627;<B>Headpocket:</B></td><td><A href='?src=[UID()];dislodge_headpocket=1'>Dislodge Items</A></td></tr>"
else
dat += "<tr><td>&nbsp;&#8627;<B>Headpocket:</B></td><td><font color=grey>Empty</font></td></tr>"
if(slot_wear_mask in obscured)
dat += "<tr><td><font color=grey><B>Mask:</B></font></td><td><font color=grey>Obscured</font></td></tr>"
else
@@ -739,6 +750,16 @@
var/obj/item/clothing/under/U = w_uniform
U.set_sensors(usr)
if(href_list["dislodge_headpocket"])
usr.visible_message("<span class='danger'>[usr] is trying to remove something from [src]'s head!</span>",
"<span class='danger'>You start to dislodge whatever's inside [src]'s headpocket!</span>")
if(do_mob(usr, src, POCKET_STRIP_DELAY))
usr.visible_message("<span class='danger'>[usr] has dislodged something from [src]'s head!</span>",
"<span class='danger'>You have dislodged everything from [src]'s headpocket!</span>")
var/obj/item/organ/internal/headpocket/C = get_int_organ(/obj/item/organ/internal/headpocket)
C.empty_contents()
add_logs(usr, src, "stripped", addition="of headpocket items", print_attack_log=isLivingSSD(src))
if(href_list["strip_accessory"])
if(istype(w_uniform, /obj/item/clothing/under))
var/obj/item/clothing/under/U = w_uniform
@@ -230,7 +230,8 @@
"kidneys" = /obj/item/organ/internal/kidneys,
"brain" = /obj/item/organ/internal/brain,
"appendix" = /obj/item/organ/internal/appendix,
"eyes" = /obj/item/organ/internal/eyes //Default darksight of 2.
"eyes" = /obj/item/organ/internal/eyes, //Default darksight of 2.
"headpocket" = /obj/item/organ/internal/headpocket
)
suicide_messages = list(
@@ -1,3 +1,63 @@
/obj/item/organ/internal/liver/skrell
alcohol_intensity = 4
species = "Skrell"
/obj/item/organ/internal/headpocket
name = "headpocket"
desc = "Allows Skrell to hide tiny objects within their head tentacles."
icon_state = "skrell_headpocket"
origin_tech = "biotech=2"
w_class = WEIGHT_CLASS_TINY
parent_organ = "head"
slot = "headpocket"
species = "Skrell"
actions_types = list(/datum/action/item_action/organ_action/toggle)
var/obj/item/weapon/storage/internal/pocket
/obj/item/organ/internal/headpocket/New()
..()
pocket = new /obj/item/weapon/storage/internal(src)
pocket.storage_slots = 1
// Allow adjacency calculation to work properly
loc = owner
// Fit only pocket sized items
pocket.max_w_class = 2
pocket.max_combined_w_class = 2
/obj/item/organ/internal/headpocket/on_life()
..()
var/obj/item/organ/external/head/head = owner.get_organ("head")
if(pocket.contents.len && (owner.stunned || !findtextEx(head.h_style, "Tentacles")))
owner.visible_message("<span class='notice'>Something falls from [owner]'s head!</span>",
"<span class='notice'>Something falls from your head!</span>")
empty_contents()
/obj/item/organ/internal/headpocket/ui_action_click()
if(!loc)
loc = owner
pocket.MouseDrop(owner)
/obj/item/organ/internal/headpocket/on_owner_death()
empty_contents()
/obj/item/organ/internal/headpocket/remove()
empty_contents()
. = ..()
/obj/item/organ/internal/headpocket/proc/empty_contents()
pocket.empty_object_contents(0, get_turf(owner))
/obj/item/organ/internal/headpocket/proc/get_contents()
return pocket.contents
/obj/item/organ/internal/headpocket/emp_act(severity)
pocket.emp_act(severity)
..()
/obj/item/organ/internal/headpocket/hear_talk(mob/living/M as mob, msg)
pocket.hear_talk(M, msg)
..()
/obj/item/organ/internal/headpocket/hear_message(mob/living/M as mob, msg)
pocket.hear_message(M, msg)
..()