diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm index 323ba823af2..1655dfc627d 100644 --- a/code/__DEFINES/atom_hud.dm +++ b/code/__DEFINES/atom_hud.dm @@ -44,6 +44,8 @@ #define DIAG_LAUNCHPAD_HUD "22" //for antag huds. these are used at the /mob level #define ANTAG_HUD "23" +// for fans to identify pins +#define FAN_HUD "24" //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior @@ -60,25 +62,26 @@ #define DATA_HUD_ABDUCTOR 7 #define DATA_HUD_SENTIENT_DISEASE 8 #define DATA_HUD_AI_DETECT 9 +#define DATA_HUD_FAN 10 //antag HUD defines -#define ANTAG_HUD_CULT 10 -#define ANTAG_HUD_REV 11 -#define ANTAG_HUD_OPS 12 -#define ANTAG_HUD_WIZ 13 -#define ANTAG_HUD_SHADOW 14 -#define ANTAG_HUD_TRAITOR 15 -#define ANTAG_HUD_NINJA 16 -#define ANTAG_HUD_CHANGELING 17 -#define ANTAG_HUD_ABDUCTOR 18 -#define ANTAG_HUD_DEVIL 19 -#define ANTAG_HUD_SINTOUCHED 20 -#define ANTAG_HUD_SOULLESS 21 -#define ANTAG_HUD_BROTHER 22 -#define ANTAG_HUD_OBSESSED 23 -#define ANTAG_HUD_FUGITIVE 24 -#define ANTAG_HUD_GANGSTER 25 -#define ANTAG_HUD_SPACECOP 26 +#define ANTAG_HUD_CULT 11 +#define ANTAG_HUD_REV 12 +#define ANTAG_HUD_OPS 13 +#define ANTAG_HUD_WIZ 14 +#define ANTAG_HUD_SHADOW 15 +#define ANTAG_HUD_TRAITOR 16 +#define ANTAG_HUD_NINJA 17 +#define ANTAG_HUD_CHANGELING 18 +#define ANTAG_HUD_ABDUCTOR 19 +#define ANTAG_HUD_DEVIL 20 +#define ANTAG_HUD_SINTOUCHED 21 +#define ANTAG_HUD_SOULLESS 22 +#define ANTAG_HUD_BROTHER 23 +#define ANTAG_HUD_OBSESSED 24 +#define ANTAG_HUD_FUGITIVE 25 +#define ANTAG_HUD_GANGSTER 26 +#define ANTAG_HUD_SPACECOP 27 // Notification action types diff --git a/code/datums/hud.dm b/code/datums/hud.dm index e2b8cfeba48..a3c4884d49b 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -13,6 +13,7 @@ GLOBAL_LIST_INIT(huds, list( DATA_HUD_ABDUCTOR = new/datum/atom_hud/abductor(), DATA_HUD_SENTIENT_DISEASE = new/datum/atom_hud/sentient_disease(), DATA_HUD_AI_DETECT = new/datum/atom_hud/ai_detector(), + DATA_HUD_FAN = new/datum/atom_hud/data/human/fan_hud(), ANTAG_HUD_CULT = new/datum/atom_hud/antag(), ANTAG_HUD_REV = new/datum/atom_hud/antag(), ANTAG_HUD_OPS = new/datum/atom_hud/antag(), diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index 1af6bde3272..aacbbf3f812 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -76,6 +76,8 @@ datum/quirk/fan_clown "hands" = ITEM_SLOT_HANDS, ) H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.add_hud_to(H) datum/quirk/fan_mime name = "Mime Fan" @@ -94,6 +96,8 @@ datum/quirk/fan_mime "hands" = ITEM_SLOT_HANDS, ) H.equip_in_one_of_slots(B, slots , qdel_on_fail = TRUE) + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.add_hud_to(H) /datum/quirk/freerunning name = "Freerunning" diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 4dbafaa202c..f06e636e360 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -49,6 +49,9 @@ /datum/atom_hud/data/human/security/advanced hud_icons = list(ID_HUD, IMPTRACK_HUD, IMPLOYAL_HUD, IMPCHEM_HUD, WANTED_HUD, NANITE_HUD) +/datum/atom_hud/data/human/fan_hud + hud_icons = list(FAN_HUD) + /datum/atom_hud/data/diagnostic /datum/atom_hud/data/diagnostic/basic @@ -210,6 +213,24 @@ holder.icon_state = "hudhealthy" +/*********************************************** + FAN HUDs! For identifying other fans on-sight. +************************************************/ + +//HOOKS + +/mob/living/carbon/human/proc/fan_hud_set_fandom() + var/image/holder = hud_list[FAN_HUD] + var/icon/I = icon(icon, icon_state, dir) + holder.pixel_y = I.Height() - world.icon_size + holder.icon_state = "hudfan_no" + var/obj/item/clothing/under/U = get_item_by_slot(ITEM_SLOT_ICLOTHING) + if(U) + if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_mime_pin)) + holder.icon_state = "fan_mime_pin" + else if(istype(U.attached_accessory, /obj/item/clothing/accessory/fan_clown_pin)) + holder.icon_state = "fan_clown_pin" + /*********************************************** Security HUDs! Basic mode shows only the job. ************************************************/ diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 5411c93699e..a664c45615d 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -84,6 +84,7 @@ if(attached_accessory && slot != ITEM_SLOT_HANDS && ishuman(user)) var/mob/living/carbon/human/H = user attached_accessory.on_uniform_equip(src, user) + H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -92,6 +93,7 @@ attached_accessory.on_uniform_dropped(src, user) if(ishuman(user)) var/mob/living/carbon/human/H = user + H.fan_hud_set_fandom() if(attached_accessory.above_suit) H.update_inv_wear_suit() @@ -126,6 +128,7 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() + H.fan_hud_set_fandom() return TRUE @@ -147,6 +150,7 @@ var/mob/living/carbon/human/H = loc H.update_inv_w_uniform() H.update_inv_wear_suit() + H.fan_hud_set_fandom() /obj/item/clothing/under/examine(mob/user) diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index bb3b03a7699..6b1af60eef4 100755 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -322,7 +322,7 @@ name = "Clown Pin" desc = "A pin to show off your appreciation for clowns and clowning" icon_state = "fan_clown_pin" - above_suit = TRUE + above_suit = FALSE minimize_when_attached = TRUE attachment_slot = CHEST @@ -340,7 +340,7 @@ name = "Mime Pin" desc = "A pin to show off your appreciation for mimes and miming" icon_state = "fan_mime_pin" - above_suit = TRUE + above_suit = FALSE minimize_when_attached = TRUE attachment_slot = CHEST diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm index 17995526910..193d3e88293 100644 --- a/code/modules/jobs/job_types/clown.dm +++ b/code/modules/jobs/job_types/clown.dm @@ -60,3 +60,5 @@ H.dna.add_mutation(CLOWNMUT) for(var/datum/mutation/human/clumsy/M in H.dna.mutations) M.mutadone_proof = TRUE + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.add_hud_to(H) diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm index 30cf01ce60f..bbd59f75f8e 100644 --- a/code/modules/jobs/job_types/mime.dm +++ b/code/modules/jobs/job_types/mime.dm @@ -53,6 +53,9 @@ H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/mime/speak(null)) H.mind.miming = TRUE + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.add_hud_to(H) + /obj/item/book/mimery name = "Guide to Dank Mimery" desc = "A primer on basic pantomime." diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1ddf8ce15f1..1abaf5dfd4d 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -47,6 +47,8 @@ sec_hud_set_ID() sec_hud_set_implants() sec_hud_set_security_status() + //...fan gear + fan_hud_set_fandom() //...and display them. add_to_all_human_data_huds() diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 5862f670c67..fcc10776a69 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -4,7 +4,7 @@ icon = 'icons/mob/human.dmi' icon_state = "human_basic" appearance_flags = KEEP_TOGETHER|TILE_BOUND|PIXEL_SCALE - hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD) + hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPLOYAL_HUD,IMPCHEM_HUD,IMPTRACK_HUD, NANITE_HUD, DIAG_NANITE_FULL_HUD,ANTAG_HUD,GLAND_HUD,SENTIENT_DISEASE_HUD,FAN_HUD) hud_type = /datum/hud/human possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) pressure_resistance = 25 diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index abe79130edd..cf55981da56 100644 Binary files a/icons/mob/hud.dmi and b/icons/mob/hud.dmi differ