Various character-related changes (#11111)

Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
This commit is contained in:
Zammy
2025-06-28 13:10:45 -07:00
committed by GitHub
parent e5c574285d
commit 7fc7952b83
7 changed files with 94 additions and 23 deletions

View File

@@ -0,0 +1,6 @@
/datum/species/can_shred(var/mob/living/carbon/human/H, var/ignore_intent)
if(!ignore_intent && H.a_intent != I_HURT)
return FALSE
if(H.get_feralness())
return TRUE
return ..()

View File

@@ -0,0 +1,17 @@
/datum/unarmed_attack/punch/chimera //special feral attack that gets stronger as they get angrier. YR3 strain deals slightly more damage, but doesn't cause bleeding
damage = 3
/datum/unarmed_attack/punch/chimera/get_unarmed_damage(var/mob/living/carbon/human/user)
return damage + user.get_feralness() / 5
/datum/unarmed_attack/punch/chimera/apply_effects(var/mob/living/carbon/human/user,var/mob/living/carbon/human/target,var/armour,var/attack_damage,var/zone)
..()
if(user.get_feralness() && !(target == user))
var/selfdamage = ((user.get_feralness() / 10)- 15)
if(selfdamage > 0)
var/selfdamagezone = null
if (user.hand)
selfdamagezone = pick(BP_L_ARM, BP_L_HAND)
else
selfdamagezone = pick(BP_R_ARM, BP_R_HAND)
user.apply_damage(selfdamage, BRUTE, selfdamagezone, 0, 0, sharp=FALSE, edge=FALSE)

View File

@@ -76,3 +76,15 @@
name = "Carbon Dioxide Breather"
desc = "You breathe carbon dioxide instead of oxygen, much like a plant. Oxygen is not poisonous to you."
var_changes = list("breath_type" = GAS_CO2, "exhale_type" = GAS_O2, "ideal_air_type" = /datum/gas_mixture/belly_air/carbon_dioxide_breather)
/datum/trait/negative/synth_pain
name = "Obligate Pain Simulation"
desc = "Due to a structural flaw, hard-coding, or other inherent weakness, your body can feel pain, and you can't turn it off."
cost = -4
custom_only = FALSE
can_take = SYNTHETICS
excludes = list(/datum/trait/neutral/synth_cosmetic_pain)
/datum/trait/negative/synth_pain/apply(datum/species/S, mob/living/carbon/human/H, trait_prefs)
H.synth_cosmetic_pain = TRUE
. = ..()

View File

@@ -16,3 +16,34 @@
/datum/trait/neutral/hide/apply(var/datum/species/S,var/mob/living/carbon/human/H)
..()
add_verb(H,/mob/living/proc/hide) //CHOMPEdit TGPanel
/datum/trait/neutral/xenochimera_YR3
sort = TRAIT_SORT_SPECIES
allowed_species = list(SPECIES_XENOCHIMERA)
name = "Xenochimera: YR3 strain"
desc = "You're a xenochimera formed of a novel strain of the Roanoke's disease. Compared \
to a normal xenochimera, you're far slower, hit harder, and have blunter claws. \
The virus is adapted to a hotter environment, and you're resistant to burns and heat. \
A strange quirk of the infection results in your body readily consuming nanotech"
cost = 0
category = 0
custom_only = FALSE
special_env = TRUE
excludes = list(/datum/trait/negative/speed_slow_plus, /datum/trait/negative/speed_slow, /datum/trait/neutral/hotadapt, /datum/trait/neutral/coldadapt)
var_changes = list("slowdown" = 1, "burn_mod" = 0.7, "unarmed_types" = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/punch/chimera, /datum/unarmed_attack/bite/sharp), "heat_level_1" = 420, "heat_level_2" = 480, "heat_level_3" = 1100, "breath_heat_level_1" = 450, "breath_heat_level_2" = 530, "breath_heat_level_3" = 1500, "heat_discomfort_level" = 390) //xenochim are already tank
/datum/trait/neutral/xenochimera_YR3/handle_environment_special(mob/living/carbon/human/H)
var/list/nanitereagents = list(REAGENT_HEALINGNANITES, REAGENT_SHREDDINGNANITES, REAGENT_IRRADIATEDNANITES, REAGENT_NEUROPHAGENANITES, REAGENT_NIFREPAIRNANITES)
for(var/reagent in nanitereagents)
if(H.reagents.has_reagent(reagent))
H.adjust_nutrition(H.reagents.get_reagent_amount(reagent))
H.reagents.del_reagent(reagent)
if(H.nif)
var/obj/item/nif/implant = H.nif
implant.wear(5)
H.adjust_nutrition(10)
if(!implant.durability)
implant.unimplant(H)
qdel_null(implant)
H.adjust_nutrition(100)
to_chat(H, span_critical("Your NIF lets out one last sputter as it finally gives out"))

View File

@@ -1,23 +1,29 @@
var/const/YR3_monitor_styles = "blank=YR3_blank;\
orangefoureyes=YR3_foureyes_orange;\
orangebigeyes=YR3_bigeyes_orange;\
orangemonoeye=YR3_monoeye_orange;\
greenfoureyes=YR3_foureyes_green;\
greenbigeyes=YR3_bigeyes_green;\
greenmonoeye=YR3_monoeye_green;\
cyanfoureyes=YR3_foureyes_cyan;\
cyanbigeyes=YR3_bigeyes_cyan;\
cyanmonoeye=YR3_monoeye_cyan;\
redfoureyes=YR3_foureyes_red;\
redbigeyes=YR3_bigeyes_red;\
redmonoeye=YR3_monoeye_red;\
pinkfoureyes=YR3_foureyes_pink;\
pinkbigeyes=YR3_bigeyes_pink;\
pinkmonoeye=YR3_monoeye_pink;\
IF_ICON_COLOR_IS_WRONG_TURN_YOUR_EYE_COLOR_TO_BLACK=YR3_blank;\
whitefoureyes=YR3_foureyes_white;\
whitebigeyes=YR3_bigeyes_white;\
whitemonoeye=YR3_monoeye_white;\
whitemonoeyenopupil=YR3_blindeye_white;\
whiteeyes=YR3_eyes_white;\
whiteloading=YR3_loading_white;\
orangefoureyes=YR3_foureyes_orange;\
orangebigeyes=YR3_bigeyes_orange;\
orangeeyes=YR3_eyes_orange;\
orangeloading=YR3_loading_orange;\
greenfoureyes=YR3_foureyes_green;\
greenbigeyes=YR3_bigeyes_green;\
greeneyes=YR3_eyes_green;\
greenloading=YR3_loading_green;\
cyanfoureyes=YR3_foureyes_cyan;\
cyanbigeyes=YR3_bigeyes_cyan;\
cyaneyes=YR3_eyes_cyan;\
cyanloading=YR3_loading_cyan;\
pinkfoureyes=YR3_foureyes_pink;\
pinkbigeyes=YR3_bigeyes_pink;\
pinkeyes=YR3_eyes_pink;\
pinkloading=YR3_loading_pink;\
redfoureyes=YR3_foureyes_red;\
redbigeyes=YR3_bigeyes_red;\
redeyes=YR3_eyes_red;\
redloading=YR3_loading_red;\
bluescreen=YR3_bsod;\
interrogative=YR3_interrogative;\
alarm=YR3_danger;\
@@ -25,16 +31,13 @@ var/const/YR3_monitor_styles = "blank=YR3_blank;\
surprise=YR3_surprise;\
heart=YR3_heart;\
query=YR3_query;\
loading=YR3_computing;\
smiley=YR3_smiley;\
sadface=YR3_sadface;\
skull=YR3_skull;\
dangerskull=YR3_skulldanger;\
endo=YR3_safebar;\
processing1=YR3_processing;\
processing2=YR3_assimilating;\
processed=YR3_processed;\
pskull=YR3_pskull"
cracked=YR3_cracked;\
broken=YR3_broken;\
containmentbreach=YR3_crackedopenbloody"
/datum/robolimb/enviroshell
company = "YR3 Enviroshell"