mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
SR testing (#9071)
This commit is contained in:
@@ -6,3 +6,4 @@
|
||||
#define PLANE_CH_STOMACH -11 //Stomach Plane
|
||||
|
||||
#define PLANE_AUGMENTED 40 //Augmented-reality plane
|
||||
#define PLANE_SOULCATCHER 41 //CHOMPAdd Soulcatcher
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
..()
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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'}
|
||||
|
||||
@@ -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 = {
|
||||
|
||||
Reference in New Issue
Block a user