Skip to content

Commit

Permalink
Merge branch 'TS-Rogue-Star:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Michab02 authored Apr 26, 2024
2 parents 6c3aec9 + 47d811e commit 3298829
Show file tree
Hide file tree
Showing 22 changed files with 951 additions and 479 deletions.
4 changes: 0 additions & 4 deletions code/modules/client/client procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,6 @@
if(isnewplayer(src.mob))
to_chat(src, "<font color='red'>If the title screen is black, resources are still downloading. Please be patient until the title screen appears.</font>")

if(src.mob && src.mob.bellies_loaded == FALSE) // Quick fix
log_debug("Fallback reload of bellies from [src] into [src.mob]")
src.mob.init_vore()

GLOB.clients += src
GLOB.directory[ckey] = src

Expand Down
34 changes: 31 additions & 3 deletions code/modules/client/preference_setup/general/03_body.dm
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,23 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O

// Sanitize for non-existent keys.
if(ear_style && !(ear_style in get_available_styles(global.ear_styles_list)))
ear_style = null
var/backup = get_available_backup_style(global.ear_styles_list, ear_style)
if(backup)
ear_style = backup
else
ear_style = null
if(wing_style && !(wing_style in get_available_styles(global.wing_styles_list)))
wing_style = null
var/backup = get_available_backup_style(global.wing_styles_list, wing_style)
if(backup)
wing_style = backup
else
wing_style = null
if(tail_style && !(tail_style in get_available_styles(global.tail_styles_list)))
tail_style = null
var/backup = get_available_backup_style(global.tail_styles_list, tail_style)
if(backup)
tail_style = backup
else
tail_style = null

/datum/preferences/proc/get_available_styles(var/style_list)
. = list("Normal" = null)
Expand All @@ -76,6 +88,22 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
continue
.[instance.name] = instance

/datum/preferences/proc/get_available_backup_style(var/style_list, var/our_value)
. = list("Normal" = null)
for(var/path in style_list)
var/datum/sprite_accessory/instance = style_list[path]
if(!istype(instance))
continue
if(!instance.backup_name)
continue
if(!(our_value in instance.backup_name))
continue
if(instance.ckeys_allowed && (!client || !(client.ckey in instance.ckeys_allowed)))
continue
if(instance.species_allowed && (!species || !(species in instance.species_allowed)) && (!client || !check_rights(R_ADMIN | R_EVENT | R_FUN, 0, client)) && (!custom_base || !(custom_base in instance.species_allowed))) //VOREStation Edit: Custom Species
continue
return instance.name

/datum/preferences/proc/mass_edit_marking_list(var/marking, var/change_on = TRUE, var/change_color = TRUE, var/marking_value = null, var/on = TRUE, var/color = "#000000")
var/datum/sprite_accessory/marking/mark_datum = body_marking_styles_list[marking]
var/list/new_marking = marking_value||mark_datum.body_parts
Expand Down
73 changes: 73 additions & 0 deletions code/modules/clothing/masks/tesh_synth_facemask.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
//TESHARI FACE MASK //Defning all the procs in one go
/obj/item/clothing/mask/synthfacemask
name = "Synth Face"
desc = "A round dark muzzle made of LEDs."
flags = PHORONGUARD //Since it cant easily be removed...
item_flags = AIRTIGHT | FLEXIBLEMATERIAL | BLOCK_GAS_SMOKE_EFFECT //This should make it properly work as a mask... and allow you to eat stuff through it!
body_parts_covered = FACE|EYES
icon = 'icons/mob/species/teshari/synth_facemask.dmi'
icon_override = 'icons/mob/species/teshari/synth_facemask.dmi'
icon_state = "synth_facemask"
// origin_tech = list(TECH_ILLEGAL = 1) // RS REMOVE - Loadout item
var/lstat
var/visor_state = "Neutral" //Separating this from lstat so that it could potentially be used for an override system or something
var/mob/living/carbon/maskmaster

/obj/item/clothing/mask/synthfacemask/equipped()
..()
var/mob/living/carbon/human/H = loc
if(istype(H) && H.wear_mask == src)
canremove = 0
maskmaster = H
START_PROCESSING(SSprocessing, src)

/obj/item/clothing/mask/synthfacemask/dropped()
canremove = 1
maskmaster = null
STOP_PROCESSING(SSprocessing, src)
return ..()

/obj/item/clothing/mask/synthfacemask/Destroy()
. = ..()
STOP_PROCESSING(SSprocessing, src)

/obj/item/clothing/mask/synthfacemask/mob_can_equip(var/mob/living/carbon/human/user, var/slot, var/disable_warning = FALSE)
if (!..())
return 0
if(istype(user))
var/obj/item/organ/external/E = user.organs_by_name[BP_HEAD]
if(istype(E) && (E.robotic >= ORGAN_ROBOT))
return 1
to_chat(user, "<span class='warning'>You must have a compatible robotic head to install this upgrade.</span>")
return 0

/obj/item/clothing/mask/synthfacemask/update_icon()
var/mob/living/carbon/human/H = loc
switch(visor_state)
if (DEAD)
icon_state = "synth_facemask_dead"
else
icon_state = "synth_facemask"
if(istype(H)) H.update_inv_wear_mask()

/obj/item/clothing/mask/synthfacemask/process()
if(maskmaster && lstat != maskmaster.stat)
lstat = maskmaster.stat
visor_state = "Neutral" //This does nothing at the moment, but it's there incase anyone wants to add more states.
//Maybe a verb that sets an emote override here
if(lstat == DEAD)
visor_state = DEAD
update_icon()


//LOADOUT ITEM
/datum/gear/mask/synthface/
display_name = "Synth Facemask (Teshari)"
path = /obj/item/clothing/mask/synthfacemask
sort_category = "Xenowear"
whitelisted = SPECIES_TESHARI
cost = 1

/datum/gear/mask/synthface/New()
..()
gear_tweaks += list(gear_tweak_free_color_choice)
16 changes: 8 additions & 8 deletions code/modules/mob/living/carbon/human/examine_vr.dm
Original file line number Diff line number Diff line change
Expand Up @@ -38,21 +38,21 @@
message = nutrition_messages[1]
if(50 to 99)
message = nutrition_messages[2]
if(100 to 4140)
if(100 to 1800)
message = nutrition_messages[3]
if(4141 to 8290) // Fat.
if(1801 to 2800) // Fat.
message = nutrition_messages[4]
if(8291 to 11611)
if(2801 to 3900)
message = nutrition_messages[5]
if(11612 to 16052) // One person fully digested.
if(3901 to 10000) // One person fully digested.
message = nutrition_messages[6]
if(16053 to 24933) // Two people.
if(10001 to 18000) // Two people.
message = nutrition_messages[7]
if(24944 to 33814) // Three people.
if(18001 to 27000) // Three people.
message = nutrition_messages[8]
if(33815 to 42530) // Four people.
if(27001 to 39000) // Four people.
message = nutrition_messages[9]
if(42530 to INFINITY) // More.
if(39001 to INFINITY) // More.
message = nutrition_messages[10]
if(message)
message = "<span class='notice'>[message]</span>"
Expand Down
6 changes: 6 additions & 0 deletions code/modules/mob/living/carbon/human/human.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1614,6 +1614,12 @@
/mob/living/carbon/human/can_feel_pain(var/obj/item/organ/check_organ)
if(isSynthetic())
return 0
//RS ADD START
if(!species.digest_pain && (isbelly(src.loc) || istype(src.loc, /turf/simulated/floor/water/digestive_enzymes)))
var/obj/belly/b = src.loc
if(b.digest_mode == DM_DIGEST || b.digest_mode == DM_SELECT)
return FALSE
//RS ADD END
for(var/datum/modifier/M in modifiers)
if(M.pain_immunity == TRUE)
return 0
Expand Down
3 changes: 2 additions & 1 deletion code/modules/mob/living/carbon/human/species/species_rs.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
/datum/species
var/vore_belly_default_variant = "H"
var/digest_pain = TRUE

/datum/species/unathi
vore_belly_default_variant = "L"

/datum/species/teshari
vore_belly_default_variant = "T"
vore_belly_default_variant = "T"
Original file line number Diff line number Diff line change
Expand Up @@ -1008,3 +1008,11 @@
desc = "Makes your nice clawed, scaled, hooved, armored, or otherwise just awfully calloused feet immune to glass shards."
cost = 0
var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping.
//RS ADD
/datum/trait/neutral/nodigestpain
name = "Painless Digestion"
desc = "Makes it so that you feel no pain from being digested, even if you otherwise would."
cost = 0
var_changes = list("digest_pain" = FALSE)
custom_only = FALSE
can_take = ORGANICS
6 changes: 5 additions & 1 deletion code/modules/mob/login.dm
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,8 @@

if(cloaked && cloaked_selfimage)
client.images += cloaked_selfimage
SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client)
SEND_SIGNAL(src, COMSIG_MOB_CLIENT_LOGIN, client)

if(src.client && src.bellies_loaded == FALSE) // Quick fix
log_debug("Fallback reload of bellies from [src.client] into [src]")
src.init_vore()
2 changes: 2 additions & 0 deletions code/modules/mob/new_player/sprite_accessories.dm
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@

var/sorting_group //For use in the Preference menu

var/list/backup_name = null //RS ADD - compat

/*
////////////////////////////
/ =--------------------= /
Expand Down
Loading

0 comments on commit 3298829

Please sign in to comment.