diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm index 08fec16d9b..e49315a2a6 100644 --- a/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/protean/protean_rig.dm @@ -97,43 +97,45 @@ name = "mass" desc = "A helmet-shaped clump of nanomachines." light_overlay = "should not use a light overlay" - species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN) + species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID) sprite_sheets = list( - SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_TAJ = 'modular_chomp/icons/mob/species/tajaran/helmet_ch.dmi', - SPECIES_SKRELL = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', - SPECIES_UNATHI = 'modular_chomp/icons/mob/species/unathi/helmet_ch.dmi', - SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/species/unathi/helmet_ch.dmi', - SPECIES_AKULA = 'modular_chomp/icons/mob/species/akula/helmet_ch.dmi', - SPECIES_SERGAL = 'modular_chomp/icons/mob/species/sergal/helmet_ch.dmi', - SPECIES_NEVREAN = 'modular_chomp/icons/mob/species/sergal/helmet_ch.dmi', - SPECIES_VULPKANIN = 'modular_chomp/icons/mob/species/vulpkanin/helmet_ch.dmi', - SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/species/fox/helmet_ch.dmi', - SPECIES_FENNEC = 'modular_chomp/icons/mob/species/vulpkanin/helmet_ch.dmi', - SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', - SPECIES_TESHARI = 'modular_chomp/icons/mob/species/teshari/helmet_ch.dmi', - SPECIES_VASILISSAN = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', - SPECIES_VOX = 'modular_chomp/icons/mob/species/vox/head_ch.dmi' + SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_TAJ = 'modular_chomp/icons/mob/species/tajaran/helmet_ch.dmi', + SPECIES_SKRELL = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', + SPECIES_UNATHI = 'modular_chomp/icons/mob/species/unathi/helmet_ch.dmi', + SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/species/unathi/helmet_ch.dmi', + SPECIES_AKULA = 'modular_chomp/icons/mob/species/akula/helmet_ch.dmi', + SPECIES_SERGAL = 'modular_chomp/icons/mob/species/sergal/helmet_ch.dmi', + SPECIES_NEVREAN = 'modular_chomp/icons/mob/species/sergal/helmet_ch.dmi', + SPECIES_VULPKANIN = 'modular_chomp/icons/mob/species/vulpkanin/helmet_ch.dmi', + SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/species/fox/helmet_ch.dmi', + SPECIES_FENNEC = 'modular_chomp/icons/mob/species/vulpkanin/helmet_ch.dmi', + SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', + SPECIES_TESHARI = 'modular_chomp/icons/mob/species/teshari/helmet_ch.dmi', + SPECIES_VASILISSAN = 'modular_chomp/icons/mob/species/skrell/helmet_ch.dmi', + SPECIES_VOX = 'modular_chomp/icons/mob/species/vox/head_ch.dmi', + SPECIES_XENOMORPH_HYBRID = 'modular_chomp/icons/mob/species/xenomorph_hybrid/helmet_ch.dmi' ) sprite_sheets_obj = list( - SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_TAJ = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_SKRELL = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_UNATHI = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_AKULA = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_SERGAL = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_NEVREAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_VULPKANIN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_FENNEC = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_TESHARI = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_VASILISSAN = 'modular_chomp/icons/mob/head_ch.dmi', - SPECIES_VOX = 'modular_chomp/icons/mob/head_ch.dmi' + SPECIES_PROTEAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_HUMAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_TAJ = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_SKRELL = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_UNATHI = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_AKULA = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_SERGAL = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_NEVREAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_VULPKANIN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_FENNEC = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_TESHARI = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_VASILISSAN = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_VOX = 'modular_chomp/icons/mob/head_ch.dmi', + SPECIES_XENOMORPH_HYBRID = 'modular_chomp/icons/mob/head_ch.dmi' ) icon = 'modular_chomp/icons/mob/head_ch.dmi' default_worn_icon = 'modular_chomp/icons/mob/head_ch.dmi' @@ -142,42 +144,44 @@ name = "mass" desc = "Glove-shaped clusters of nanomachines." siemens_coefficient= 0 - species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN) + species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID) sprite_sheets = list( - SPECIES_PROTEAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_HUMAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_TAJ = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_SKRELL = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_UNATHI = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_AKULA = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_SERGAL = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_NEVREAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_VULPKANIN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_FENNEC = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_TESHARI = 'modular_chomp/icons/mob/species/teshari/hands_ch.dmi', - SPECIES_VASILISSAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_VOX = 'modular_chomp/icons/mob/species/vox/gloves_ch.dmi' + SPECIES_PROTEAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_HUMAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_TAJ = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_SKRELL = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_UNATHI = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_AKULA = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_SERGAL = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_NEVREAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_VULPKANIN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_FENNEC = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_TESHARI = 'modular_chomp/icons/mob/species/teshari/hands_ch.dmi', + SPECIES_VASILISSAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_VOX = 'modular_chomp/icons/mob/species/vox/gloves_ch.dmi', + SPECIES_XENOMORPH_HYBRID = 'modular_chomp/icons/mob/hands_ch.dmi' ) sprite_sheets_obj = list( - SPECIES_HUMAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_TAJ = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_SKRELL = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_UNATHI = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_AKULA = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_SERGAL = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_NEVREAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_VULPKANIN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_FENNEC = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_TESHARI = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_VASILISSAN = 'modular_chomp/icons/mob/hands_ch.dmi', - SPECIES_VOX = 'modular_chomp/icons/mob/hands_ch.dmi' + SPECIES_HUMAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_TAJ = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_SKRELL = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_UNATHI = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_XENOHYBRID = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_AKULA = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_SERGAL = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_NEVREAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_VULPKANIN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_ZORREN_HIGH = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_FENNEC = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_PROMETHEAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_TESHARI = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_VASILISSAN = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_VOX = 'modular_chomp/icons/mob/hands_ch.dmi', + SPECIES_XENOMORPH_HYBRID = 'modular_chomp/icons/mob/hands_ch.dmi' ) icon = 'modular_chomp/icons/mob/hands_ch.dmi' default_worn_icon = 'modular_chomp/icons/mob/hands_ch.dmi' @@ -185,7 +189,7 @@ /obj/item/clothing/shoes/magboots/rig/protean name = "mass" desc = "Boot-shaped clusters of nanomachines." - species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN) + species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID) sprite_sheets = list( SPECIES_TESHARI = 'modular_chomp/icons/mob/species/teshari/feet_ch.dmi', SPECIES_VOX = 'modular_chomp/icons/mob/species/vox/shoes_ch.dmi' @@ -198,7 +202,7 @@ name = "mass" desc = "A body-hugging mass of nanomachines." can_breach = 0 - species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN) + species_restricted = list(SPECIES_PROTEAN, SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_TAJ, SPECIES_UNATHI, SPECIES_NEVREAN, SPECIES_AKULA, SPECIES_SERGAL, SPECIES_ZORREN_HIGH, SPECIES_VULPKANIN, SPECIES_PROMETHEAN, SPECIES_XENOHYBRID, SPECIES_VOX, SPECIES_TESHARI, SPECIES_VASILISSAN, SPECIES_XENOMORPH_HYBRID) allowed = list( /obj/item/weapon/gun, /obj/item/device/flashlight, diff --git a/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/xenomorph_hybrid_trait.dm b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/xenomorph_hybrid_trait.dm new file mode 100644 index 0000000000..590c2c95d6 --- /dev/null +++ b/modular_chomp/code/modules/mob/living/carbon/human/species/station/traits/xenomorph_hybrid_trait.dm @@ -0,0 +1,50 @@ +/* Shamelessly stolen from xenochimera_trait_vr.dm +** For now, these are just neutral traits for Xenomorph Hybrids only to take. +** Traits defined as custom_only = FALSE in neutral.dm will be available for Xenomorph Hybrids to take as well. +** As such, be careful not to duplicate the traits, and only add dupes where necessary. +** However, if custom_only = FALSE is set, then any species including things like humans can take it. A little silly. +** Therefore, use this file only for Xenomorph Hybrid traits that you want to keep custom + Xenomorph Hybrid only. +*/ + +/datum/trait/negative/lonely/xenomorph_praetorian + sort = TRAIT_SORT_SPECIES + allowed_species = list(SPECIES_XENOMORPH_HYBRID) + name = "Xenomorph Hybrid: Praetorian" + desc = "Our body has shifted and matured to take the shape and stature of a Praetorian. Our \ + bulky size impedes our speed, but we feel significantly tougher. We find it difficult \ + to go about our day normally without being in the presence of another soul..." + cost = 0 + category = 0 + custom_only = FALSE + var_changes = list("item_slowdown_mod" = 0.80, "total_health" = 175, "brute_mod" = 0.8, "trauma_mod" = 0.9, "slowdown" = -0.1, "burn_mod" = 1.5) // Can carry heavy stuff better, more health, more brute resist, slightly less pain but moves slower, takes more burn damage and has the loneliness trait applied. + +/datum/trait/neutral/xenomorph_warrior + sort = TRAIT_SORT_SPECIES + allowed_species = list(SPECIES_XENOMORPH_HYBRID) + name = "Xenomorph Hybrid: Warrior" + desc = "Our body has shifted and matured to take the shape and stature of a Warrior. Compared \ + to a drone, we feel more resistant to knockdown effects, at the cost of our \ + carrying strength." + cost = 0 + category = 0 + custom_only = FALSE + var_changes = list("stun_mod" = 0.8, "weaken_mod" = 0.8, "item_slowdown_mod" = 1) // Can't carry heavy stuff as well, but has 20% faster recovery for stun and weaken effects. + +/datum/trait/neutral/xenomorph_hunter + sort = TRAIT_SORT_SPECIES + allowed_species = list(SPECIES_XENOMORPH_HYBRID) + name = "Xenomorph Hybrid: Hunter" + desc = "Our body has shifted and matured to take the shape and stature of a Hunter. Our \ + flexibility and speed is like no other, but our form has grown significantly more \ + fragile as a result." + cost = 0 + category = 0 + custom_only = FALSE + var_changes = list("slowdown" = -0.5, "item_slowdown_mod" = 0.5, "total_health" = 100, "brute_mod" = 1.1) // Much faster and carry-capable, but significantly less tanky. + has_preferences = list("pass_table" = list(TRAIT_PREF_TYPE_BOOLEAN, "On spawn", TRAIT_NO_VAREDIT_TARGET, TRUE)) + +/datum/trait/neutral/xenomorph_hunter/apply(var/datum/species/S,var/mob/living/carbon/human/H, var/list/trait_prefs) + ..() + if (trait_prefs?["pass_table"] || !trait_prefs) + H.pass_flags |= PASSTABLE + H.verbs |= /mob/living/proc/toggle_pass_table \ No newline at end of file diff --git a/modular_chomp/icons/mob/species/xenomorph_hybrid/helmet_ch.dmi b/modular_chomp/icons/mob/species/xenomorph_hybrid/helmet_ch.dmi new file mode 100644 index 0000000000..5ea572fb5d Binary files /dev/null and b/modular_chomp/icons/mob/species/xenomorph_hybrid/helmet_ch.dmi differ diff --git a/modular_chomp/icons/mob/species/xenomorph_hybrid/suit_ch.dmi b/modular_chomp/icons/mob/species/xenomorph_hybrid/suit_ch.dmi new file mode 100644 index 0000000000..cf74d73796 Binary files /dev/null and b/modular_chomp/icons/mob/species/xenomorph_hybrid/suit_ch.dmi differ diff --git a/vorestation.dme b/vorestation.dme index 89ab213a55..f7f829722d 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4694,6 +4694,7 @@ #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\protean\protean_species.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\negative.dm" #include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\positive.dm" +#include "modular_chomp\code\modules\mob\living\carbon\human\species\station\traits\xenomorph_hybrid_trait.dm" #include "modular_chomp\code\modules\mob\living\silicon\robot\drone\drone_items.dm" #include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\civilian.dm" #include "modular_chomp\code\modules\mob\living\silicon\robot\sprites\clown.dm"