diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm index d31a64dcda6..247d1d3f8bf 100644 --- a/code/_onclick/hud/_defines.dm +++ b/code/_onclick/hud/_defines.dm @@ -161,6 +161,13 @@ #define ui_ghost_pai "SOUTH: 6,CENTER+2:24" #define ui_ghost_updown "SOUTH: 6,CENTER+3:24" +// NIF Soulcatcher guest ones +#define ui_nifsc_reenter "SOUTH:6,CENTER-3:24" +#define ui_nifsc_arproj "SOUTH:6,CENTER-2:24" +#define ui_nifsc_jumptoowner "SOUTH:6,CENTER-1:24" +#define ui_nifsc_nme "SOUTH:6,CENTER:24" +#define ui_nifsc_nsay "SOUTH:6,CENTER+1:24" + // Rig panel #define ui_rig_deco1 "WEST:-7, SOUTH+5" #define ui_rig_deco2 "WEST:-7, SOUTH+6" diff --git a/code/_onclick/hud/soulcatcher_guest.dm b/code/_onclick/hud/soulcatcher_guest.dm new file mode 100644 index 00000000000..555bcb8ebaf --- /dev/null +++ b/code/_onclick/hud/soulcatcher_guest.dm @@ -0,0 +1,102 @@ +/obj/screen/nifsc + icon = 'icons/mob/screen_nifsc.dmi' + +/obj/screen/nifsc/MouseEntered(location,control,params) + flick(icon_state + "_anim", src) + openToolTip(usr, src, params, title = name, content = desc) + +/obj/screen/nifsc/MouseExited() + closeToolTip(usr) + +/obj/screen/nifsc/Click() + closeToolTip(usr) + +/obj/screen/nifsc/reenter + name = "Re-enter NIF" + desc = "Return into the NIF" + icon_state = "reenter" + +/obj/screen/nifsc/reenter/Click() + ..() + var/mob/living/carbon/brain/caught_soul/CS = usr + CS.reenter_soulcatcher() + +/obj/screen/nifsc/arproj + name = "AR project" + desc = "Project your form into Augmented Reality for those around your predator with the appearance of your loaded character." + icon_state = "arproj" + +/obj/screen/nifsc/arproj/Click() + ..() + var/mob/living/carbon/brain/caught_soul/CS = usr + CS.ar_project() + +/obj/screen/nifsc/jumptoowner + name = "Jump back to host" + desc = "Jumb back to the Soulcather host" + icon_state = "jump" + +/obj/screen/nifsc/jumptoowner/Click() + ..() + var/mob/living/carbon/brain/caught_soul/CS = usr + CS.jump_to_owner() + +/obj/screen/nifsc/nme + name = "Emote into Soulcatcher" + desc = "Emote into the NIF's Soulcatcher (circumventing AR emoting)" + icon_state = "nme" + +/obj/screen/nifsc/nme/Click() + ..() + var/mob/living/carbon/brain/caught_soul/CS = usr + CS.nme() + +/obj/screen/nifsc/nsay + name = "Speak into Soulcatcher" + desc = "Speak into the NIF's Soulcatcher (circumventing AR speaking)" + icon_state = "nsay" + +/obj/screen/nifsc/nsay/Click() + ..() + var/mob/living/carbon/brain/caught_soul/CS = usr + CS.nsay() + + +/mob/living/carbon/brain/caught_soul/create_mob_hud(datum/hud/HUD, apply_to_client = TRUE) + ..() + + var/list/adding = list() + HUD.adding = adding + + var/obj/screen/using + + using = new /obj/screen/nifsc/reenter() + using.screen_loc = ui_nifsc_reenter + using.hud = src + adding += using + + using = new /obj/screen/nifsc/arproj() + using.screen_loc = ui_nifsc_arproj + using.hud = src + adding += using + + using = new /obj/screen/nifsc/jumptoowner() + using.screen_loc = ui_nifsc_jumptoowner + using.hud = src + adding += using + + using = new /obj/screen/nifsc/nme() + using.screen_loc = ui_nifsc_nme + using.hud = src + adding += using + + using = new /obj/screen/nifsc/nsay() + using.screen_loc = ui_nifsc_nsay + using.hud = src + adding += using + + + if(client && apply_to_client) + client.screen = list() + client.screen += HUD.adding + client.screen += client.void diff --git a/icons/mob/screen_nifsc.dmi b/icons/mob/screen_nifsc.dmi new file mode 100644 index 00000000000..ec94dbb8e9b Binary files /dev/null and b/icons/mob/screen_nifsc.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 499eb5205c5..6ddd352c19b 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -179,6 +179,7 @@ #include "code\_onclick\hud\screen_objects.dm" #include "code\_onclick\hud\screen_objects_vr.dm" #include "code\_onclick\hud\skybox.dm" +#include "code\_onclick\hud\soulcatcher_guest.dm" #include "code\_onclick\hud\spell_screen_objects.dm" #include "code\ATMOSPHERICS\_atmos_setup.dm" #include "code\ATMOSPHERICS\_atmospherics_helpers.dm"