diff --git a/code/__defines/_planes+layers_vr.dm b/code/__defines/_planes+layers_vr.dm index a9266aa701..c211e9174e 100644 --- a/code/__defines/_planes+layers_vr.dm +++ b/code/__defines/_planes+layers_vr.dm @@ -6,3 +6,4 @@ #define PLANE_CH_STOMACH -11 //Stomach Plane #define PLANE_AUGMENTED 40 //Augmented-reality plane +#define PLANE_SOULCATCHER 41 //CHOMPAdd Soulcatcher diff --git a/code/__defines/mobs_vr.dm b/code/__defines/mobs_vr.dm index 1d6ecb049d..6b18837e4e 100644 --- a/code/__defines/mobs_vr.dm +++ b/code/__defines/mobs_vr.dm @@ -8,8 +8,9 @@ #define VIS_AUGMENTED 32 #define VIS_CH_STOMACH 33 +#define VIS_SOULCATCHER 34 // CHOMPAdd -#define VIS_COUNT 33 +#define VIS_COUNT 34 //Protean organs #define O_ORCH "orchestrator" diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm index 0342494684..157f91f20e 100644 --- a/code/modules/mob/dead/observer/login.dm +++ b/code/modules/mob/dead/observer/login.dm @@ -6,7 +6,8 @@ plane_holder.set_vis(VIS_CLOAKED, TRUE) plane_holder.set_vis(VIS_AI_EYE, TRUE) plane_holder.set_vis(VIS_AUGMENTED, TRUE) //VOREStation Add - GHOST VISION IS AUGMENTED + plane_holder.set_vis(VIS_SOULCATCHER, TRUE) //CHOMPAdd Soulcatcher plane = PLANE_GHOSTS if(cleanup_timer) deltimer(cleanup_timer) - cleanup_timer = null \ No newline at end of file + cleanup_timer = null diff --git a/code/modules/mob/mob_planes_vr.dm b/code/modules/mob/mob_planes_vr.dm index efe52cb25b..963cec7e82 100644 --- a/code/modules/mob/mob_planes_vr.dm +++ b/code/modules/mob/mob_planes_vr.dm @@ -5,6 +5,7 @@ plane_masters[VIS_CH_BACKUP] = new /obj/screen/plane_master{plane = PLANE_CH_BACKUP} //Backup implant status plane_masters[VIS_CH_VANTAG] = new /obj/screen/plane_master{plane = PLANE_CH_VANTAG} //Vore Antags plane_masters[VIS_CH_STOMACH] = new /obj/screen/plane_master{plane = PLANE_CH_STOMACH} //Stomach + plane_masters[VIS_SOULCATCHER] = new /obj/screen/plane_master{plane = PLANE_SOULCATCHER} //CHOMPAdd Soulcatcher plane_masters[VIS_AUGMENTED] = new /obj/screen/plane_master/augmented(M = my_mob) //Augmented reality ..() diff --git a/code/modules/nifsoft/software/13_soulcatcher.dm b/code/modules/nifsoft/software/13_soulcatcher.dm index 9c84f23bde..e0952da39a 100644 --- a/code/modules/nifsoft/software/13_soulcatcher.dm +++ b/code/modules/nifsoft/software/13_soulcatcher.dm @@ -293,6 +293,7 @@ /mob/living/carbon/brain/caught_soul/Login() ..() plane_holder.set_vis(VIS_AUGMENTED, TRUE) + plane_holder.set_vis(VIS_SOULCATCHER, TRUE) //CHOMPAdd identifying_gender = client.prefs.identifying_gender /mob/living/carbon/brain/caught_soul/Destroy() @@ -579,7 +580,7 @@ /////////////////// //Verbs for soulbrains /mob/living/carbon/brain/caught_soul/verb/ar_project() - set name = "AR Project" + set name = "AR/SR Project" //CHOMPEdit set desc = "Project your form into Augmented Reality for those around your predator with the appearance of your loaded character." set category = "Soulcatcher" diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm index c4793f827b..00193eb825 100644 --- a/code/modules/vore/eating/vorepanel_vr.dm +++ b/code/modules/vore/eating/vorepanel_vr.dm @@ -582,8 +582,9 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", data["soulcatcher"]["ext_hearing"] = host.soulgem.flag_check(NIF_SC_ALLOW_EARS) data["soulcatcher"]["ext_vision"] = host.soulgem.flag_check(NIF_SC_ALLOW_EYES) data["soulcatcher"]["mind_backups"] = host.soulgem.flag_check(NIF_SC_BACKUPS) - data["soulcatcher"]["ar_projecting"] = host.soulgem.flag_check(NIF_SC_PROJECTING) + data["soulcatcher"]["sr_projecting"] = host.soulgem.flag_check(NIF_SC_PROJECTING) data["soulcatcher"]["show_vore_sfx"] = host.soulgem.flag_check(SOULGEM_SHOW_VORE_SFX) + data["soulcatcher"]["see_sr_projecting"] = (VIS_SOULCATCHER in host.vis_enabled) var/nutri_value = 0 if(istype(host, /mob/living)) var/mob/living/H = host @@ -2305,7 +2306,7 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", host.soulgem.toggle_setting(NIF_SC_BACKUPS) unsaved_changes = TRUE return TRUE - if("toggle_ar_projecting") + if("toggle_sr_projecting") host.soulgem.toggle_setting(NIF_SC_PROJECTING) unsaved_changes = TRUE return TRUE @@ -2313,6 +2314,10 @@ var/global/list/belly_colorable_only_fullscreens = list("a_synth_flesh_mono", host.soulgem.toggle_setting(SOULGEM_SHOW_VORE_SFX) unsaved_changes = TRUE return TRUE + if("toggle_sr_vision") + host.soulgem.toggle_sr_vision() + unsaved_changes = TRUE + return TRUE if("soulcatcher_rename") var/new_name = tgui_input_text(host, "Adjust the name of your soulcatcher. Limit 60 chars.", \ "New Name", html_decode(host.soulgem.name), 60, prevent_enter = TRUE) diff --git a/modular_chomp/code/modules/vore/eating/soulcatcher.dm b/modular_chomp/code/modules/vore/eating/soulcatcher.dm index 17fb698c5f..ee37d9696f 100644 --- a/modular_chomp/code/modules/vore/eating/soulcatcher.dm +++ b/modular_chomp/code/modules/vore/eating/soulcatcher.dm @@ -526,3 +526,11 @@ ghost.abandon_mob() qdel(M) return TRUE + +/obj/soulgem/proc/toggle_sr_vision() + if(VIS_SOULCATCHER in owner.vis_enabled) + owner.plane_holder.set_vis(VIS_SOULCATCHER, FALSE) + owner.vis_enabled -= VIS_SOULCATCHER + else + owner.plane_holder.set_vis(VIS_SOULCATCHER, TRUE) + owner.vis_enabled += VIS_SOULCATCHER diff --git a/modular_chomp/code/modules/vore/eating/soulcatcher_mob.dm b/modular_chomp/code/modules/vore/eating/soulcatcher_mob.dm index 8e396deb14..0704414e59 100644 --- a/modular_chomp/code/modules/vore/eating/soulcatcher_mob.dm +++ b/modular_chomp/code/modules/vore/eating/soulcatcher_mob.dm @@ -12,7 +12,7 @@ gem = null if(eyeobj) QDEL_NULL(eyeobj) - gem.notify_holder("[name] ended AR projection.") + gem.notify_holder("[name] ended SR projection.") container = null return ..() @@ -133,14 +133,18 @@ var/sane_message = sanitize(message) gem.use_emote(sane_message, src) -// AR project as captured soul +// SR projecting mob +/mob/observer/eye/ar_soul/vore + plane = PLANE_SOULCATCHER + +// SR project as captured soul /mob/living/carbon/brain/caught_soul/vore/ar_project() - set name = "AR Project" + set name = "AR/SR Project" set desc = "Project your form into Augmented Reality for those around your predator with the appearance of your loaded character." set category = "Soulcatcher" if(eyeobj) - to_chat(src, span_warning("You're already projecting in AR!")) + to_chat(src, span_warning("You're already projecting in SR!")) return if(!(gem.setting_flags & NIF_SC_PROJECTING)) @@ -150,39 +154,39 @@ if(!client || !client.prefs) return //Um... - eyeobj = new/mob/observer/eye/ar_soul(src, gem.owner) - gem.notify_holder("[src] now AR projecting.") + eyeobj = new/mob/observer/eye/ar_soul/vore(src, gem.owner) + gem.notify_holder("[src] now SR projecting.") gem.clear_vore_fx(src) -// Jump to the owner as AR projection +// Jump to the owner as SR projection /mob/living/carbon/brain/caught_soul/vore/jump_to_owner() set name = "Jump to Owner" set desc = "Jump your projection back to the owner of the soulcatcher you're inside." set category = "Soulcatcher" if(!eyeobj) - to_chat(src, span_warning("You're not projecting into AR!")) + to_chat(src, span_warning("You're not projecting into SR!")) return eyeobj.forceMove(get_turf(gem)) -// End AR projecting and return to the soulcatcher containing the soul +// End SR projecting and return to the soulcatcher containing the soul /mob/living/carbon/brain/caught_soul/vore/reenter_soulcatcher() set name = "Re-enter Soulcatcher" - set desc = "Leave AR projection and drop back into the soulcatcher." + set desc = "Leave SR projection and drop back into the soulcatcher." set category = "Soulcatcher" if(!eyeobj) - to_chat(src, span_warning("You're not projecting into AR!")) + to_chat(src, span_warning("You're not projecting into SR!")) return QDEL_NULL(eyeobj) - gem.notify_holder("[src] ended AR projection.") + gem.notify_holder("[src] ended SR projection.") gem.show_vore_fx(src, TRUE) /mob/living/carbon/brain/caught_soul/vore/nsay_brain() set name = "NSay" - set desc = "Speak to your Soulcatcher (circumventing AR speaking)." + set desc = "Speak to your Soulcatcher (circumventing SR speaking)." set category = "Soulcatcher" var/message = tgui_input_text(usr, "Type a message to say.","Speak into Soulcatcher", multiline=TRUE) @@ -192,7 +196,7 @@ /mob/living/carbon/brain/caught_soul/vore/nme_brain() set name = "NMe" - set desc = "Emote to your Soulcatcher (circumventing AR speaking)." + set desc = "Emote to your Soulcatcher (circumventing SR speaking)." set category = "Soulcatcher" var/message = tgui_input_text(usr, "Type an action to perform.","Emote into Soulcatcher", multiline=TRUE) @@ -207,7 +211,7 @@ set category = "Soulcatcher" if(eyeobj) - to_chat(src, span_warning("You can't do that while AR projecting!")) + to_chat(src, span_warning("You can't do that while SR projecting!")) return if(gem.own_mind != mind) to_chat(src, span_warning("You aren't in your own soulcatcher!")) @@ -228,6 +232,6 @@ set category = "Soulcatcher" if(eyeobj) - to_chat(src, span_warning("You can't do that while AR projecting!")) + to_chat(src, span_warning("You can't do that while SR projecting!")) return gem.return_to_body(mind) diff --git a/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSoulcatcher.tsx b/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSoulcatcher.tsx index 797f1e5868..e6e2e697e7 100644 --- a/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSoulcatcher.tsx +++ b/tgui/packages/tgui/interfaces/chompstation/VorePanel/VoreSoulcatcher.tsx @@ -61,7 +61,8 @@ const VoreSoulcatcherSection = (props: { ext_hearing, ext_vision, mind_backups, - ar_projecting, + sr_projecting, + see_sr_projecting, selected_sfx, show_vore_sfx, taken_over, @@ -125,7 +126,8 @@ const VoreSoulcatcherSection = (props: { ext_hearing={ext_hearing} ext_vision={ext_vision} mind_backups={mind_backups} - ar_projecting={ar_projecting} + sr_projecting={sr_projecting} + see_sr_projecting={see_sr_projecting} show_vore_sfx={show_vore_sfx} /> { const { act } = useBackend(); @@ -16,7 +17,8 @@ export const GlobalSettings = (props: { ext_hearing, ext_vision, mind_backups, - ar_projecting, + sr_projecting, + see_sr_projecting, show_vore_sfx, } = props; @@ -61,14 +63,28 @@ export const GlobalSettings = (props: { +