mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
[MIRROR] Adds a new loadout item - Cloak of Eyes (#11801)
Co-authored-by: Cameron Lennox <killer65311@gmail.com> Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
837ffe7dde
commit
d365553af1
@@ -33,7 +33,6 @@
|
|||||||
|
|
||||||
/datum/component/reactive_icon_update/proc/update_proximity_icon(atom/current_loc, atom/movable/AM, atom/old_loc)
|
/datum/component/reactive_icon_update/proc/update_proximity_icon(atom/current_loc, atom/movable/AM, atom/old_loc)
|
||||||
SIGNAL_HANDLER
|
SIGNAL_HANDLER
|
||||||
SHOULD_NOT_OVERRIDE(TRUE)
|
|
||||||
var/obj/our_item = parent
|
var/obj/our_item = parent
|
||||||
if(!ismob(AM) || !mob_check(AM))
|
if(!ismob(AM) || !mob_check(AM))
|
||||||
return
|
return
|
||||||
@@ -124,6 +123,26 @@
|
|||||||
//The icon_state will be changed to cloak_direction_north
|
//The icon_state will be changed to cloak_direction_north
|
||||||
our_item.icon_state = initial(our_item.icon_state) + icon_prefix + "_" + directional_name
|
our_item.icon_state = initial(our_item.icon_state) + icon_prefix + "_" + directional_name
|
||||||
|
|
||||||
|
///Variant of the reactive_icon_update component that allows for setting what slot is should be in to update it!
|
||||||
|
/datum/component/reactive_icon_update/clothing
|
||||||
|
|
||||||
|
/datum/component/reactive_icon_update/clothing/update_proximity_icon(atom/current_loc, atom/movable/AM, atom/old_loc)
|
||||||
|
. = ..()
|
||||||
|
//Code to actually update the mob wearing us
|
||||||
|
var/obj/our_object = parent
|
||||||
|
if(ishuman(our_object.loc)) //If we're being worn
|
||||||
|
var/mob/living/carbon/human/wearing_mob = our_object.loc
|
||||||
|
|
||||||
|
//Code to actually update the mob wearing us
|
||||||
|
//Only suit and uniform for now...Feel free to expand if you need.
|
||||||
|
if(wearing_mob.wear_suit == our_object)
|
||||||
|
wearing_mob.update_inv_wear_suit()
|
||||||
|
return
|
||||||
|
if(wearing_mob.w_uniform == our_object)
|
||||||
|
wearing_mob.update_inv_w_uniform()
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
//Example item for testing directions.
|
//Example item for testing directions.
|
||||||
/obj/item/tool/screwdriver/test_driver
|
/obj/item/tool/screwdriver/test_driver
|
||||||
icon = 'icons/obj/directional_test.dmi'
|
icon = 'icons/obj/directional_test.dmi'
|
||||||
|
|||||||
@@ -1177,3 +1177,8 @@ Talon winter coat
|
|||||||
/datum/gear/suit/pirate_coat
|
/datum/gear/suit/pirate_coat
|
||||||
display_name = "pirate coat"
|
display_name = "pirate coat"
|
||||||
path = /obj/item/clothing/suit/pirate
|
path = /obj/item/clothing/suit/pirate
|
||||||
|
|
||||||
|
/datum/gear/suit/cloak_of_eyes
|
||||||
|
display_name = "cloak of eyes"
|
||||||
|
description = "A basic looking purple robe that has a hood and can be toggled to have eyes form and stare at moving creatures!"
|
||||||
|
path = /obj/item/clothing/suit/storage/hooded/purple_robes
|
||||||
|
|||||||
@@ -181,7 +181,7 @@
|
|||||||
body_parts_covered = CHEST|ARMS
|
body_parts_covered = CHEST|ARMS
|
||||||
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SECURITY, POCKET_DETECTIVE)
|
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY, POCKET_SECURITY, POCKET_DETECTIVE)
|
||||||
armor = list(melee = 10, bullet = 20, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) //As much armor as the cyberpunk jacket. Also priced the same.
|
armor = list(melee = 10, bullet = 20, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0) //As much armor as the cyberpunk jacket. Also priced the same.
|
||||||
var/unbuttoned = 0
|
var/unbuttoned = FALSE
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/fluff/fedcoat/verb/toggle()
|
/obj/item/clothing/suit/storage/fluff/fedcoat/verb/toggle()
|
||||||
set name = "Toggle coat buttons"
|
set name = "Toggle coat buttons"
|
||||||
@@ -189,19 +189,18 @@
|
|||||||
set src in usr
|
set src in usr
|
||||||
|
|
||||||
if(!usr.canmove || usr.stat || usr.restrained())
|
if(!usr.canmove || usr.stat || usr.restrained())
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
switch(unbuttoned)
|
if(unbuttoned)
|
||||||
if(0)
|
icon_state = "[initial(icon_state)]"
|
||||||
icon_state = "[initial(icon_state)]_open"
|
item_state = "[initial(item_state)]"
|
||||||
item_state = "[initial(item_state)]_open"
|
unbuttoned = FALSE
|
||||||
unbuttoned = 1
|
to_chat(usr, "You button up the coat.")
|
||||||
to_chat(usr, "You unbutton the coat.")
|
else
|
||||||
if(1)
|
icon_state = "[initial(icon_state)]_open"
|
||||||
icon_state = "[initial(icon_state)]"
|
item_state = "[initial(item_state)]_open"
|
||||||
item_state = "[initial(item_state)]"
|
unbuttoned = TRUE
|
||||||
unbuttoned = 0
|
to_chat(usr, "You unbutton the coat.")
|
||||||
to_chat(usr, "You button up the coat.")
|
|
||||||
usr.update_inv_wear_suit()
|
usr.update_inv_wear_suit()
|
||||||
|
|
||||||
//Variants
|
//Variants
|
||||||
@@ -684,14 +683,12 @@
|
|||||||
// to_chat(user, "You cannot turn the light on while in this [user.loc]")
|
// to_chat(user, "You cannot turn the light on while in this [user.loc]")
|
||||||
// return
|
// return
|
||||||
|
|
||||||
switch(light_on)
|
if(light_on)
|
||||||
if(0)
|
to_chat(user, "You dim your pom-pom.")
|
||||||
to_chat(user, "You light up your pom-pom.")
|
icon_state = "pom"
|
||||||
icon_state = "pom-on"
|
else
|
||||||
|
to_chat(user, "You light up your pom-pom.")
|
||||||
if(1)
|
icon_state = "pom-on"
|
||||||
to_chat(user, "You dim your pom-pom.")
|
|
||||||
icon_state = "pom"
|
|
||||||
|
|
||||||
//update_light(user) -- old code
|
//update_light(user) -- old code
|
||||||
update_flashlight(user)
|
update_flashlight(user)
|
||||||
@@ -1246,7 +1243,7 @@ Departamental Swimsuits, for general use
|
|||||||
icon_state = "fjacket"
|
icon_state = "fjacket"
|
||||||
|
|
||||||
default_worn_icon = 'icons/vore/custom_clothes_mob.dmi'
|
default_worn_icon = 'icons/vore/custom_clothes_mob.dmi'
|
||||||
var/unbuttoned = 0
|
var/unbuttoned = FALSE
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/fluff/jacket/verb/toggle()
|
/obj/item/clothing/suit/storage/fluff/jacket/verb/toggle()
|
||||||
set name = "Toggle coat buttons"
|
set name = "Toggle coat buttons"
|
||||||
@@ -1254,19 +1251,18 @@ Departamental Swimsuits, for general use
|
|||||||
set src in usr
|
set src in usr
|
||||||
|
|
||||||
if(!usr.canmove || usr.stat || usr.restrained())
|
if(!usr.canmove || usr.stat || usr.restrained())
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
switch(unbuttoned)
|
if(unbuttoned)
|
||||||
if(0)
|
icon_state = "[initial(icon_state)]"
|
||||||
icon_state = "[initial(icon_state)]_open"
|
item_state = "[initial(item_state)]"
|
||||||
item_state = "[initial(item_state)]_open"
|
unbuttoned = FALSE
|
||||||
unbuttoned = 1
|
to_chat(usr, "You button up the coat.")
|
||||||
to_chat(usr, "You unbutton the coat.")
|
else
|
||||||
if(1)
|
icon_state = "[initial(icon_state)]_open"
|
||||||
icon_state = "[initial(icon_state)]"
|
item_state = "[initial(item_state)]_open"
|
||||||
item_state = "[initial(item_state)]"
|
unbuttoned = TRUE
|
||||||
unbuttoned = 0
|
to_chat(usr, "You unbutton the coat.")
|
||||||
to_chat(usr, "You button up the coat.")
|
|
||||||
usr.update_inv_wear_suit()
|
usr.update_inv_wear_suit()
|
||||||
|
|
||||||
/obj/item/clothing/suit/storage/fluff/jacket/field //Just here so it can be seen and easily recognized under /spawn.
|
/obj/item/clothing/suit/storage/fluff/jacket/field //Just here so it can be seen and easily recognized under /spawn.
|
||||||
@@ -2257,23 +2253,20 @@ Departamental Swimsuits, for general use
|
|||||||
set category = "Object"
|
set category = "Object"
|
||||||
set src in usr
|
set src in usr
|
||||||
if(!usr.canmove || usr.stat || usr.restrained())
|
if(!usr.canmove || usr.stat || usr.restrained())
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
|
if(open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
|
||||||
open = 0
|
open = FALSE
|
||||||
icon_state = initial(icon_state)
|
icon_state = initial(icon_state)
|
||||||
item_state = initial(item_state)
|
item_state = initial(item_state)
|
||||||
flags_inv = HIDETIE|HIDEHOLSTER
|
flags_inv = HIDETIE|HIDEHOLSTER
|
||||||
to_chat(usr, "You button up the coat.")
|
to_chat(usr, "You button up the coat.")
|
||||||
else if(open == 0)
|
else
|
||||||
open = 1
|
open = TRUE
|
||||||
icon_state = "[icon_state]_open"
|
icon_state = "[icon_state]_open"
|
||||||
item_state = "[item_state]_open"
|
item_state = "[item_state]_open"
|
||||||
flags_inv = HIDEHOLSTER
|
flags_inv = HIDEHOLSTER
|
||||||
to_chat(usr, "You unbutton the coat.")
|
to_chat(usr, "You unbutton the coat.")
|
||||||
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
|
|
||||||
to_chat(usr, "You attempt to button-up the velcro on your [src], before promptly realising how silly you are.")
|
|
||||||
return
|
|
||||||
update_clothing_icon() //so our overlays update
|
update_clothing_icon() //so our overlays update
|
||||||
|
|
||||||
/obj/item/clothing/head/welding/fluff/zera
|
/obj/item/clothing/head/welding/fluff/zera
|
||||||
@@ -2324,23 +2317,20 @@ Departamental Swimsuits, for general use
|
|||||||
set category = "Object"
|
set category = "Object"
|
||||||
set src in usr
|
set src in usr
|
||||||
if(!usr.canmove || usr.stat || usr.restrained())
|
if(!usr.canmove || usr.stat || usr.restrained())
|
||||||
return 0
|
return FALSE
|
||||||
|
|
||||||
if(open == 1) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
|
if(open) //Will check whether icon state is currently set to the "open" or "closed" state and switch it around with a message to the user
|
||||||
open = 0
|
open = FALSE
|
||||||
icon_state = initial(icon_state)
|
icon_state = initial(icon_state)
|
||||||
item_state = initial(item_state)
|
item_state = initial(item_state)
|
||||||
flags_inv = HIDETIE|HIDEHOLSTER
|
flags_inv = HIDETIE|HIDEHOLSTER
|
||||||
to_chat(usr, "You button up the coat.")
|
to_chat(usr, "You button up the coat.")
|
||||||
else if(open == 0)
|
else
|
||||||
open = 1
|
open = TRUE
|
||||||
icon_state = "[icon_state]_open"
|
icon_state = "[icon_state]_open"
|
||||||
item_state = "[item_state]_open"
|
item_state = "[item_state]_open"
|
||||||
flags_inv = HIDEHOLSTER
|
flags_inv = HIDEHOLSTER
|
||||||
to_chat(usr, "You unbutton the coat.")
|
to_chat(usr, "You unbutton the coat.")
|
||||||
else //in case some goofy admin switches icon states around without switching the icon_open or icon_closed
|
|
||||||
to_chat(usr, "You attempt to button-up the velcro on your [src], before promptly realising how silly you are.")
|
|
||||||
return
|
|
||||||
update_clothing_icon() //so our overlays update
|
update_clothing_icon() //so our overlays update
|
||||||
|
|
||||||
/obj/item/clothing/head/fluff/zerahat
|
/obj/item/clothing/head/fluff/zerahat
|
||||||
@@ -2418,3 +2408,62 @@ End CHOMP Removal*/
|
|||||||
default_worn_icon = 'icons/vore/custom_clothes_mob.dmi'
|
default_worn_icon = 'icons/vore/custom_clothes_mob.dmi'
|
||||||
slot_flags = SLOT_HEAD
|
slot_flags = SLOT_HEAD
|
||||||
*/ //Chomp REMOVE END
|
*/ //Chomp REMOVE END
|
||||||
|
|
||||||
|
//For general use
|
||||||
|
/obj/item/clothing/suit/storage/hooded/purple_robes
|
||||||
|
name = "Purple Robes"
|
||||||
|
desc = "A basic set of purple robes. This one has a tag that reads 'Now with eye-tracking technology!'"
|
||||||
|
|
||||||
|
icon = 'icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_item.dmi'
|
||||||
|
icon_state = "purple_robes"
|
||||||
|
default_worn_icon = 'icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_mob.dmi'
|
||||||
|
hoodtype = /obj/item/clothing/head/hood/purple_robes
|
||||||
|
|
||||||
|
blood_overlay_type = "coat"
|
||||||
|
has_hood_sprite = FALSE //No need.
|
||||||
|
body_parts_covered = CHEST|ARMS|LEGS
|
||||||
|
allowed = list(POCKET_GENERIC, POCKET_EMERGENCY)
|
||||||
|
var/toggled = FALSE
|
||||||
|
var/last_toggled = 0
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/hooded/purple_robes/verb/toggle()
|
||||||
|
set name = "Toggle Eyes"
|
||||||
|
set category = "Object"
|
||||||
|
set src in usr
|
||||||
|
toggle_eyes(usr)
|
||||||
|
|
||||||
|
/obj/item/clothing/suit/storage/hooded/purple_robes/proc/toggle_eyes(mob/user)
|
||||||
|
|
||||||
|
if(!user.canmove || user.stat || user.restrained())
|
||||||
|
return FALSE
|
||||||
|
|
||||||
|
//Antispam.
|
||||||
|
if((last_toggled + 6 SECONDS) > world.time) //Can only toggle it once every 6 seconds!
|
||||||
|
to_chat(user, span_info("You can only toggle the eyes every six seconds!"))
|
||||||
|
return
|
||||||
|
|
||||||
|
|
||||||
|
if(!toggled)
|
||||||
|
AddComponent(/datum/component/reactive_icon_update/clothing, \
|
||||||
|
icon_prefix = "_corrupted", \
|
||||||
|
directions = list(NORTH,EAST,SOUTH,WEST,SOUTHWEST,SOUTHEAST,NORTHWEST,NORTHEAST), \
|
||||||
|
range = 3, \
|
||||||
|
triggering_mobs = list(/mob/living))
|
||||||
|
toggled = TRUE
|
||||||
|
to_chat(user, span_info("The coat's eyes open."))
|
||||||
|
else
|
||||||
|
var/datum/component/reactive_icon_update/clothing/reactive_component = GetComponent(/datum/component/reactive_icon_update/clothing)
|
||||||
|
if(reactive_component)
|
||||||
|
qdel(reactive_component)
|
||||||
|
toggled = FALSE
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
item_state = initial(item_state)
|
||||||
|
to_chat(user, span_info("The coat's eyes close."))
|
||||||
|
last_toggled = world.time
|
||||||
|
user.update_inv_wear_suit()
|
||||||
|
|
||||||
|
/obj/item/clothing/head/hood/purple_robes
|
||||||
|
name = "purple hood"
|
||||||
|
icon = 'icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_item.dmi'
|
||||||
|
icon_state = "hood"
|
||||||
|
default_worn_icon = 'icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_mob.dmi'
|
||||||
|
|||||||
BIN
icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_item.dmi
Normal file
BIN
icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_item.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.0 KiB |
BIN
icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_mob.dmi
Normal file
BIN
icons/vore/fluff_clothing/eyerobes/custom_clothes_robe_mob.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.7 KiB |
BIN
icons/vore/fluff_clothing/eyerobes/eyerobe_components.dmi
Normal file
BIN
icons/vore/fluff_clothing/eyerobes/eyerobe_components.dmi
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.6 KiB |
Reference in New Issue
Block a user