SR testing (#9071)

This commit is contained in:
Kashargul
2024-09-28 06:25:33 +02:00
committed by GitHub
parent f37f844f5a
commit 635970d48c
11 changed files with 73 additions and 32 deletions

View File

@@ -6,3 +6,4 @@
#define PLANE_CH_STOMACH -11 //Stomach Plane
#define PLANE_AUGMENTED 40 //Augmented-reality plane
#define PLANE_SOULCATCHER 41 //CHOMPAdd Soulcatcher

View File

@@ -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"

View File

@@ -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
cleanup_timer = null

View File

@@ -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
..()

View File

@@ -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"

View File

@@ -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)

View File

@@ -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

View File

@@ -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)

View File

@@ -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}
/>
<LabeledList.Item

View File

@@ -7,7 +7,8 @@ export const GlobalSettings = (props: {
ext_hearing: BooleanLike;
ext_vision: BooleanLike;
mind_backups: BooleanLike;
ar_projecting: BooleanLike;
sr_projecting: BooleanLike;
see_sr_projecting: BooleanLike;
show_vore_sfx: BooleanLike;
}) => {
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: {
<Button
icon="street-view"
tooltip={
(ar_projecting ? 'Allow' : 'Disallow') +
' your captured souls to AR project themselves.'
(sr_projecting ? 'Allow' : 'Disallow') +
' your captured souls to SR project themselves.'
}
tooltipPosition="bottom"
color={ar_projecting ? 'green' : 'red'}
onClick={() => act('toggle_ar_projecting')}
color={sr_projecting ? 'green' : 'red'}
onClick={() => act('toggle_sr_projecting')}
>
AR Projecting
SR Projecting
</Button>
<Button
icon="eye-low-vision"
tooltip={
(see_sr_projecting ? 'Enable' : 'Disable') +
' SR vision to ' +
(see_sr_projecting ? 'see' : 'hide') +
' projecting souls.'
}
tooltipPosition="bottom"
color={see_sr_projecting ? 'green' : 'red'}
onClick={() => act('toggle_sr_vision')}
>
SR Vision
</Button>
<Button
icon={show_vore_sfx ? 'circle-play' : 'circle-pause'}

View File

@@ -300,15 +300,16 @@ export type soulcatcherData = {
selected_soul: string;
interior_design: string;
catch_self: BooleanLike;
taken_over: BooleanLike;
catch_prey: BooleanLike;
catch_drain: BooleanLike;
catch_ghost: BooleanLike;
ext_hearing: BooleanLike;
ext_vision: BooleanLike;
mind_backups: BooleanLike;
ar_projecting: BooleanLike;
sr_projecting: BooleanLike;
show_vore_sfx: BooleanLike;
taken_over: BooleanLike;
see_sr_projecting: BooleanLike;
};
export type DropdownEntry = {