mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
* It's a start * more stuff * a * nice * Update attachable_soulcatcher.dm * code work better :3 * mal requested proc * let's move this little file over * Update soulcatcher_mob.dm * hehe :) * say * some more touches * Update soulcatcher_component.dm * working on signals * a * more * sending some signals :) * Update soulcatcher_component.dm * a instance I missed * some slimming down * whoops * Update declarations.dm * Apply suggestions from code review Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_tgui.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_component.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_user_component.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_user_component.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_user_component.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update modular_skyrat/modules/modular_implants/code/soulcatcher/soulcatcher_tgui.dm Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> * Update soulcatcher_tgui.dm * wew * woag * I don't want this PR to be hell to review * okay, just a little bit of moving * a * defines, they do exist * man * more renaming * mob * Update carrier_component.dm * Update soulcatcher_component.dm * a * some more moving * Update soulcatcher_verbs.dm * more tweaks * a * Update carrier_user_component.dm * chat fixes * updates how verbs work * getting the code to work * more adjustments * aaaaaa * Update carrier_tgui.dm * Initial code * getting it to work * prefs * more prefs * Update soulcatcher_tgui.dm * more updates * more states * final fixes * Update carrier_tgui.dm * udpates * a * Update carrier_component.dm * Update erp_preferences.dm --------- Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
196 lines
5.8 KiB
Plaintext
196 lines
5.8 KiB
Plaintext
/datum/carrier_room
|
|
/// What overlay is being currently used? Don't directly change this, use `change_fullscreen_overlay()`
|
|
var/atom/movable/screen/fullscreen/carrier/current_overlay_path
|
|
/// What color do we want the overlay to be, if any?
|
|
var/overlay_color
|
|
/// Is our overlay recolorable? This is here for TGUI
|
|
var/overlay_recolorable
|
|
|
|
/// Changes the fullscreen overlay for everyone inside of the current carrier room
|
|
/datum/carrier_room/proc/change_fullscreen_overlay(atom/movable/screen/fullscreen/carrier/new_fullscreen)
|
|
current_overlay_path = new_fullscreen
|
|
// If we don't have a new one, go ahead and clear it
|
|
if(!ispath(new_fullscreen))
|
|
overlay_recolorable = FALSE // Can't color what isn't there :3
|
|
for(var/mob/living/occupant as anything in current_mobs)
|
|
set_overlay_for_mob(FALSE)
|
|
|
|
overlay_recolorable = initial(new_fullscreen.recolorable)
|
|
if(!overlay_recolorable)
|
|
overlay_color = null
|
|
|
|
for(var/mob/living/occupant as anything in current_mobs)
|
|
set_overlay_for_mob(occupant, new_fullscreen)
|
|
|
|
return TRUE
|
|
|
|
/// Sets the current overlay for a mob
|
|
/datum/carrier_room/proc/set_overlay_for_mob(mob/living/occupant)
|
|
if(!istype(occupant))
|
|
return FALSE
|
|
|
|
var/datum/preferences/occupant_prefs = occupant?.client?.prefs
|
|
if(!istype(occupant_prefs))
|
|
return FALSE
|
|
|
|
if(!occupant_prefs.read_preference(/datum/preference/toggle/carrier_overlays))
|
|
return FALSE
|
|
|
|
if(initial(current_overlay_path.vore_overlay) && !occupant_prefs.read_preference(/datum/preference/toggle/erp/vore_overlays))
|
|
return FALSE
|
|
|
|
if(!ispath(current_overlay_path))
|
|
occupant.clear_fullscreen("carrier", FALSE)
|
|
return TRUE
|
|
|
|
var/atom/movable/screen/fullscreen/carrier/new_screen = occupant.overlay_fullscreen("carrier", current_overlay_path)
|
|
if(overlay_color)
|
|
new_screen.color = overlay_color
|
|
|
|
return TRUE
|
|
|
|
/*
|
|
READ ME BEFORE ADDING MORE OVERLAYS
|
|
If you are going to add a new overlay and it is vore/kink focused please set `vore_overlay` to TRUE
|
|
There are downstream SFW servers using this code and I'd rather them not be exposed to this.
|
|
*/
|
|
|
|
/atom/movable/screen/fullscreen/carrier
|
|
layer = CARRIER_LAYER
|
|
plane = FULLSCREEN_PLANE
|
|
|
|
/// Is the overlay able to be recolored?
|
|
var/recolorable = FALSE
|
|
/// Is the overlay vore related?
|
|
var/vore_overlay = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/brute
|
|
name = "Brute Damage"
|
|
icon_state = "brutedamageoverlay4"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/oxy
|
|
name = "Oxygen Damage"
|
|
icon_state = "oxydamageoverlay4"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/crit
|
|
name = "Critical"
|
|
icon_state = "passage6"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/impaired
|
|
name = "Impaired"
|
|
icon_state = "impairedoverlay1"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/blind
|
|
name = "Blind"
|
|
icon_state = "blackimageoverlay"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/colorable
|
|
name = "Recolorable"
|
|
icon = 'icons/hud/screen_gen.dmi'
|
|
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
|
icon_state = "flash"
|
|
alpha = 80
|
|
recolorable = TRUE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/drugs
|
|
name = "High"
|
|
icon = 'icons/hud/screen_gen.dmi'
|
|
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
|
icon_state = "druggy"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/static_effect
|
|
name = "Static"
|
|
icon = 'icons/hud/screen_gen.dmi'
|
|
screen_loc = "WEST,SOUTH to EAST,NORTH"
|
|
icon_state = "noise"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vines
|
|
name = "Vines"
|
|
icon = 'modular_skyrat/master_files/icons/mob/carrier_fullscreen.dmi'
|
|
icon_state = "a_kind_of_vines"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore
|
|
name = "Animated Internals"
|
|
icon = 'modular_skyrat/master_files/icons/mob/carrier_fullscreen.dmi'
|
|
icon_state = "a_anim_belly"
|
|
recolorable = TRUE
|
|
vore_overlay = TRUE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals
|
|
name = "Internals 1"
|
|
icon_state = "brown_internals"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals_visible
|
|
name = "Internals 2 (Outside Somewhat Visible)"
|
|
icon_state = "a_tumby"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals_barely_visible
|
|
name = "Internals 2 (Outside Barely Visible)"
|
|
icon_state = "another_tumby"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals_3
|
|
name = "Internals 3"
|
|
icon_state = "da_tumby"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals_4
|
|
name = "Internals 4"
|
|
icon_state = "yet_another_tumby"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/internals_5
|
|
name = "Internals 5"
|
|
icon_state = "a_bright_tumby"
|
|
recolorable = FALSE
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/stomach
|
|
name = "Stomach"
|
|
icon_state = "destination_tumby_fluidless"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/stomach_fluid
|
|
name = "Stomach (With Fluids)"
|
|
icon_state = "destination_tumby"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/cleavage
|
|
name = "Clevage"
|
|
icon_state = "a_kind_of_tumby"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/cleavage_clothes
|
|
name = "Clevage (clothing)"
|
|
icon_state = "a_kind_of_tumby_b"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/coils
|
|
name = "Coils"
|
|
icon_state = "a_kind_of_coils"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/coils_tight
|
|
name = "Coils (Tight)"
|
|
icon_state = "a_kind_of_coils_tight"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/maw
|
|
name = "Maw"
|
|
icon_state = "entrance_to_a_tumby"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/throat
|
|
name = "Throat"
|
|
icon_state = "passage_to_a_tumby"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/diamond_opening
|
|
name = "Vagina"
|
|
icon_state = "you_know_what_this_is"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/synth_internals
|
|
name = "Synth Internals"
|
|
icon_state = "synth_tumby"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/synth_internals_2
|
|
name = "Synth Internals 2"
|
|
icon_state = "a_synth_flesh_mono"
|
|
|
|
/atom/movable/screen/fullscreen/carrier/vore/synth_internals_2_visible
|
|
name = "Synth Internals 2 (Visiblity Hole)"
|
|
icon_state = "a_synth_flesh_mono_hole"
|