diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm new file mode 100644 index 0000000000..5103b276eb --- /dev/null +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/species.dm @@ -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 ..() diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/species_attack.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/species_attack.dm new file mode 100644 index 0000000000..a931fbf6e4 --- /dev/null +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/species_attack.dm @@ -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) diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm index 6df92b197a..edbdae3c41 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/negative.dm @@ -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 + . = ..() diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm index 31915f85b2..26905a11ad 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/neutral.dm @@ -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")) diff --git a/modular_chomp/code/modules/organs/robolimbs.dm b/modular_chomp/code/modules/organs/robolimbs.dm index eff6506661..1fcea6b69a 100644 --- a/modular_chomp/code/modules/organs/robolimbs.dm +++ b/modular_chomp/code/modules/organs/robolimbs.dm @@ -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" diff --git a/modular_chomp/icons/mob/monitor_icons.dmi b/modular_chomp/icons/mob/monitor_icons.dmi index e93ff4b2e6..4fda782d18 100644 Binary files a/modular_chomp/icons/mob/monitor_icons.dmi and b/modular_chomp/icons/mob/monitor_icons.dmi differ diff --git a/vorestation.dme b/vorestation.dme index dded2edd23..e292100de2 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -5051,10 +5051,12 @@ #include "modular_chomp\code\modules\mob\living\carbon\human\human.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\human_defines.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\update_icons.dm" +#include "modular_chomp\code\modules\mob\living\carbon\human\species\species.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\species_shapeshift_ch.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\outsider\vox.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\shadekin\shadekin_abilities.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\prommie_blob.dm" +#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\species_attack.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\station.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\station_ch.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\station_special_ch.dm"