diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 9e71fe8197e..6d3768704fb 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -120,8 +120,8 @@ if(..()) return // SKYRAT EDIT BEGIN - if(owner.dna.features["body_size"] < 1) - to_chat(owner, "You feel your body shrinking even further, but your organs aren't! Uh oh!") + if(owner.dna.features["body_size"] < 1 || isteshari(owner)) + to_chat(owner, "You feel your body try to shrink, but your organs don't! Uh oh!") owner.adjustBruteLoss(25) return // SKYRAT EDIT END @@ -132,7 +132,7 @@ if(..()) return // SKYRAT EDIT BEGIN - if(owner.dna.features["body_size"] < 1) + if(owner.dna.features["body_size"] < 1 || isteshari(owner)) to_chat(owner, "You feel relief as your organs cease to strain against your insides.") REMOVE_TRAIT(owner, TRAIT_DWARF, GENETIC_MUTATION) return diff --git a/code/datums/quirks/positive_quirks/settler.dm b/code/datums/quirks/positive_quirks/settler.dm index 81402c050cd..6d6dcd1f43f 100644 --- a/code/datums/quirks/positive_quirks/settler.dm +++ b/code/datums/quirks/positive_quirks/settler.dm @@ -19,7 +19,10 @@ give_item_to_holder(/obj/item/storage/box/papersack/wheat, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) give_item_to_holder(/obj/item/storage/toolbox/fishing/small, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) var/mob/living/carbon/human/human_quirkholder = quirk_holder - human_quirkholder.set_mob_height(HUMAN_HEIGHT_SHORTEST) + //SKYRAT EDIT BEGIN - This is so Teshari don't get the height decrease. + if(!isteshari(human_quirkholder)) + human_quirkholder.set_mob_height(HUMAN_HEIGHT_SHORTEST) + //SKYRAT EDIT END human_quirkholder.add_movespeed_modifier(/datum/movespeed_modifier/settler) human_quirkholder.physiology.hunger_mod *= 0.5 //good for you, shortass, you don't get hungry nearly as often diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index b04de8dbf81..391ce514fbd 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -452,7 +452,7 @@ check_break(M) /obj/structure/table/glass/proc/check_break(mob/living/M) - if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL && !(M.movement_type & MOVETYPES_NOT_TOUCHING_GROUND)) + if(M.has_gravity() && M.mob_size > MOB_SIZE_SMALL && !(M.movement_type & MOVETYPES_NOT_TOUCHING_GROUND) && (!isteshari(M))) //SKYRAT EDIT ADDITION - Allows Teshari to climb on glassies safely. table_shatter(M) /obj/structure/table/glass/proc/table_shatter(mob/living/victim) diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index 508571190d7..bfb22804ddf 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -115,7 +115,7 @@ There are several things that need to be remembered: icon_file = dna.species.generate_custom_worn_icon(LOADOUT_ITEM_UNIFORM, w_uniform, src) // Might have to refactor how this works eventually, maybe. // SKYRAT EDIT END //Female sprites have lower priority than digitigrade sprites - if(dna.species.sexes && (bodyshape & BODYSHAPE_HUMANOID) && physique == FEMALE && !(female_sprite_flags & NO_FEMALE_UNIFORM)) // SKYRAT EDIT CHANGE - ORIGINAL: else if(dna.species.sexes && (bodyshape & BODYSHAPE_HUMANOID) && physique == FEMALE && !(uniform.female_sprite_flags & NO_FEMALE_UNIFORM)) //Agggggggghhhhh + if(!dna.species.no_gender_shaping && dna.species.sexes && (bodyshape & BODYSHAPE_HUMANOID) && physique == FEMALE && !(female_sprite_flags & NO_FEMALE_UNIFORM)) // SKYRAT EDIT CHANGE - ORIGINAL: else if(dna.species.sexes && (bodyshape & BODYSHAPE_HUMANOID) && physique == FEMALE && !(uniform.female_sprite_flags & NO_FEMALE_UNIFORM)) //Agggggggghhhhh woman = TRUE // SKYRAT EDIT ADDITION START - Digi female gender shaping if(digi) diff --git a/modular_skyrat/master_files/icons/hud/actions.dmi b/modular_skyrat/master_files/icons/hud/actions.dmi index 32da90c1cf8..ff81273f7df 100644 Binary files a/modular_skyrat/master_files/icons/hud/actions.dmi and b/modular_skyrat/master_files/icons/hud/actions.dmi differ diff --git a/modular_skyrat/master_files/icons/misc/language.dmi b/modular_skyrat/master_files/icons/misc/language.dmi index 8b3bff440ab..5ece55bc6f3 100644 Binary files a/modular_skyrat/master_files/icons/misc/language.dmi and b/modular_skyrat/master_files/icons/misc/language.dmi differ diff --git a/modular_skyrat/master_files/icons/mob/clothing/species/teshari/accessories.dmi b/modular_skyrat/master_files/icons/mob/clothing/species/teshari/accessories.dmi index 815eda0d268..878009dcffa 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/species/teshari/accessories.dmi and b/modular_skyrat/master_files/icons/mob/clothing/species/teshari/accessories.dmi differ diff --git a/modular_skyrat/modules/bodyparts/code/teshari_bodyparts.dm b/modular_skyrat/modules/bodyparts/code/teshari_bodyparts.dm index b816f59867f..a03440623ee 100644 --- a/modular_skyrat/modules/bodyparts/code/teshari_bodyparts.dm +++ b/modular_skyrat/modules/bodyparts/code/teshari_bodyparts.dm @@ -112,6 +112,7 @@ base_limb_id = SPECIES_TESHARI brute_modifier = TESHARI_BRUTE_MODIFIER burn_modifier = TESHARI_BURN_MODIFIER + speed_modifier = -0.1 /obj/item/bodypart/leg/right/digitigrade/teshari icon_greyscale = BODYPART_ICON_TESHARI @@ -119,6 +120,7 @@ base_limb_id = SPECIES_TESHARI brute_modifier = TESHARI_BRUTE_MODIFIER burn_modifier = TESHARI_BURN_MODIFIER + speed_modifier = -0.1 #undef TESHARI_PUNCH_LOW #undef TESHARI_PUNCH_HIGH diff --git a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm index c941415cf65..44f5dc23227 100644 --- a/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm +++ b/modular_skyrat/modules/customization/modules/mob/living/carbon/human/species.dm @@ -5,6 +5,8 @@ GLOBAL_LIST_EMPTY(customizable_races) digitigrade_customization = DIGITIGRADE_OPTIONAL // Doing this so that the legs preference actually works for everyone. ///Self explanatory var/can_have_genitals = TRUE + /// Whether or not the gender shaping is disabled for this species + var/no_gender_shaping ///A list of actual body markings on the owner of the species. Associative lists with keys named by limbs defines, pointing to a list with names and colors for the marking to be rendered. This is also stored in the DNA var/list/list/body_markings = list() ///Override of the eyes icon file, used for Vox and maybe more in the future - The future is now, with Teshari using it too diff --git a/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/rifle.dm b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/rifle.dm index 70a53cff5b9..52fc0d56006 100644 --- a/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/rifle.dm +++ b/modular_skyrat/modules/modular_weapons/code/company_and_or_faction_based/szot_dynamica/rifle.dm @@ -112,6 +112,7 @@ /obj/item/gun/ballistic/automatic/wylom/give_manufacturer_examine() AddElement(/datum/element/manufacturer_examine, COMPANY_SZOT) + AddElement(/datum/element/gun_launches_little_guys, throwing_force = 3, throwing_range = 5) /obj/item/gun/ballistic/automatic/wylom/examine(mob/user) . = ..() diff --git a/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.dm b/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.dm new file mode 100644 index 00000000000..e337b2c57db --- /dev/null +++ b/modular_skyrat/modules/modular_weapons/code/gun_launches_little_guys_element.dm @@ -0,0 +1,46 @@ +/// An element that makes guns throw their user back if they are just a little guy +/datum/element/gun_launches_little_guys + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + + /// The throwing force applied to the gun's user + var/throwing_force + /// The throwing range applied to the gun's user + var/throwing_range + +/datum/element/gun_launches_little_guys/Attach(datum/target, throwing_force = 2, throwing_range = 3) + . = ..() + if(!isgun(target)) + return ELEMENT_INCOMPATIBLE + + src.throwing_force = throwing_force + src.throwing_range = throwing_range + + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(examine)) + RegisterSignal(target, COMSIG_GUN_FIRED, PROC_REF(throw_it_back)) + +/datum/element/gun_launches_little_guys/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_ATOM_EXAMINE) + UnregisterSignal(target, COMSIG_GUN_FIRED) + +/// Warns that this gun might throw you away really hard +/datum/element/gun_launches_little_guys/proc/examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + + examine_list += span_notice("It has some serious kick to it, smaller users should take caution while firing.") + +/// Checks if the shooter is just a little guy. If so? Throw it back. +/datum/element/gun_launches_little_guys/proc/throw_it_back(obj/item/gun/weapon, mob/living/carbon/user, atom/target, params, zone_override) + SIGNAL_HANDLER + + if(!isteshari(user) && !isdwarf(user) && !HAS_TRAIT(user, TRAIT_DWARF) && !(user.dna.features["body_size"] <= 0.9)) + return + + var/fling_direction = REVERSE_DIR(user.dir) + var/atom/throw_target = get_edge_target_turf(user, fling_direction) + user.Knockdown(1 SECONDS) + user.throw_at(throw_target, throwing_range, throwing_force) + + user.visible_message(span_warning("[weapon] sends [user] flying back as it fires!"), \ + span_warning("[weapon] sends you flying back as it fires!")) diff --git a/modular_skyrat/modules/organs/code/ears.dm b/modular_skyrat/modules/organs/code/ears.dm new file mode 100644 index 00000000000..462d3153c09 --- /dev/null +++ b/modular_skyrat/modules/organs/code/ears.dm @@ -0,0 +1,72 @@ +/obj/item/organ/internal/ears/teshari + name = "teshari ears" + desc = "A set of four long rabbit-like ears, a Teshari's main tool while hunting. Naturally extremely sensitive to loud sounds." + damage_multiplier = 1.5 + actions_types = list(/datum/action/cooldown/spell/teshari_hearing) + +/obj/item/organ/internal/ears/teshari/on_mob_remove(mob/living/carbon/ear_owner) + . = ..() + REMOVE_TRAIT(ear_owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + +/datum/action/cooldown/spell/teshari_hearing + name = "Toggle Sensitive Hearing" + desc = "Perk up your ears to listen for quiet sounds, useful for picking up whispering." + button_icon = 'modular_skyrat/master_files/icons/hud/actions.dmi' + button_icon_state = "echolocation_off" + background_icon_state = "bg_alien" + overlay_icon_state = "bg_alien_border" + + cooldown_time = 1 SECONDS + spell_requirements = NONE + +/datum/action/cooldown/spell/teshari_hearing/proc/update_button_state(new_state) //This makes it so that the button icon changes dynamically based on ears being up or not. + button_icon_state = new_state + owner.update_action_buttons() + +/datum/action/cooldown/spell/teshari_hearing/Remove(mob/living/remove_from) + REMOVE_TRAIT(remove_from, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + remove_from.update_sight() + return ..() + +/datum/action/cooldown/spell/teshari_hearing/cast(list/targets, mob/living/carbon/human/user = usr) + . = ..() + + if(HAS_TRAIT(user, TRAIT_GOOD_HEARING)) + teshari_hearing_deactivate(user) + return + + user.apply_status_effect(/datum/status_effect/teshari_hearing) + user.visible_message(span_notice("[user], pricks up [user.p_their()] four ears, each twitching intently!"), span_notice("You perk up all four of your ears, hunting for even the quietest sounds.")) + update_button_state("echolocation_on") + + var/obj/item/organ/internal/ears/ears = user.get_organ_slot(ORGAN_SLOT_EARS) + if(ears) + ears.damage_multiplier = 3 + +/datum/action/cooldown/spell/teshari_hearing/proc/teshari_hearing_deactivate(mob/living/carbon/human/user) //Called when you activate it again after casting the ability-- turning them off, so to say. + if(!HAS_TRAIT_FROM(user, TRAIT_GOOD_HEARING, ORGAN_TRAIT)) + return + + user.remove_status_effect(/datum/status_effect/teshari_hearing) + user.visible_message(span_notice("[user] drops [user.p_their()] ears down a bit, no longer listening as closely."), span_notice("You drop your ears down, no longer paying close attention.")) + update_button_state("echolocation_off") + + var/obj/item/organ/internal/ears/ears = user.get_organ_slot(ORGAN_SLOT_EARS) + if(ears) + ears.damage_multiplier = 1.5 + +/datum/status_effect/teshari_hearing + id = "teshari_hearing" + alert_type = null + status_type = STATUS_EFFECT_UNIQUE + +/datum/status_effect/teshari_hearing/on_apply() + ADD_TRAIT(owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + return ..() + +/datum/status_effect/teshari_hearing/on_remove() + REMOVE_TRAIT(owner, TRAIT_GOOD_HEARING, ORGAN_TRAIT) + return ..() + +/datum/status_effect/teshari_hearing/get_examine_text() + return span_notice("[owner.p_They()] [owner.p_have()] [owner.p_their()] ears perked up, listening closely to whisper-quiet sounds.") diff --git a/modular_skyrat/modules/tesh_augments/code/all_nodes.dm b/modular_skyrat/modules/tesh_augments/code/all_nodes.dm new file mode 100644 index 00000000000..0358c31ce8c --- /dev/null +++ b/modular_skyrat/modules/tesh_augments/code/all_nodes.dm @@ -0,0 +1,30 @@ +//teshari_ robolimb research node + +/datum/techweb_node/teshari_cyber + id = "teshari_cyber" + display_name = "Raptoral Cybernetics" + description = "Specialized civilian-grade cybernetic limb designs." + prereq_ids = list("base") + design_ids = list( + "teshari_cyber_chest", + "teshari_cyber_l_arm", + "teshari_cyber_r_arm", + "teshari_cyber_l_leg", + "teshari_cyber_r_leg", + "teshari_cyber_head", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1000) + + +/datum/techweb_node/adv_teshari_cyber + id = "adv_teshari_cyber" + display_name = "Advanced Raptoral Cybernetics" + description = "Specialized industrial-grade cybernetic limb designs." + prereq_ids = list("adv_robotics", "teshari_cyber") + design_ids = list( + "teshari_advanced_l_arm", + "teshari_advanced_r_arm", + "teshari_advanced_l_leg", + "teshari_advanced_r_leg", + ) + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500) diff --git a/modular_skyrat/modules/tesh_augments/code/limbs.dm b/modular_skyrat/modules/tesh_augments/code/limbs.dm new file mode 100644 index 00000000000..759d7b121e5 --- /dev/null +++ b/modular_skyrat/modules/tesh_augments/code/limbs.dm @@ -0,0 +1,57 @@ +/* +this goes into the augment preferences section. They do not use the appearance dropdown for obvious reason. +*/ + +/datum/augment_item/limb/head/teshari_cyborg + name = "Raptoral cybernetic head" + path = /obj/item/bodypart/head/robot/teshari + uses_robotic_styles = FALSE + +/datum/augment_item/limb/chest/teshari_cyborg + name = "Raptoral cybernetic chest" + path = /obj/item/bodypart/chest/robot/teshari + uses_robotic_styles = FALSE + +/datum/augment_item/limb/l_arm/teshari_prosthetic + name = "Raptoral prosthetic left forelimb" + path = /obj/item/bodypart/arm/left/robot/teshari_surplus + cost = -1 + uses_robotic_styles = FALSE + +/datum/augment_item/limb/l_arm/teshari_cybernetic + name = "Raptoral cybernetic left forelimb" + path = /obj/item/bodypart/arm/left/robot/teshari + uses_robotic_styles = FALSE + +/datum/augment_item/limb/r_arm/teshari_prosthetic + name = "Raptoral prototype right forelimb" + path = /obj/item/bodypart/arm/right/robot/teshari_surplus + cost = -1 + uses_robotic_styles = FALSE + +/datum/augment_item/limb/r_arm/teshari_cybernetic + name = "Raptoral cybernetic right forelimb" + path = /obj/item/bodypart/arm/right/robot/teshari + uses_robotic_styles = FALSE + +/datum/augment_item/limb/l_leg/teshari_prosthetic + name = "Raptoral prosthetic left hindlimb" + path = /obj/item/bodypart/leg/left/robot/teshari_surplus + cost = -1 + uses_robotic_styles = FALSE + +/datum/augment_item/limb/l_leg/teshari_cybernetic + name = "Raptoral cybernetic left hindlimb" + path = /obj/item/bodypart/leg/left/robot/teshari + uses_robotic_styles = FALSE + +/datum/augment_item/limb/r_leg/teshari_prosthetic + name = "Raptoral prosthetic right hindlimb" + path = /obj/item/bodypart/leg/right/robot/teshari_surplus + cost = -1 + uses_robotic_styles = FALSE + +/datum/augment_item/limb/r_leg/teshari_cybernetic + name = "Raptoral cybernetic right hindlimb" + path = /obj/item/bodypart/leg/right/robot/teshari + uses_robotic_styles = FALSE diff --git a/modular_skyrat/modules/tesh_augments/code/mechfabricator_designs.dm b/modular_skyrat/modules/tesh_augments/code/mechfabricator_designs.dm new file mode 100644 index 00000000000..50fdb0865ba --- /dev/null +++ b/modular_skyrat/modules/tesh_augments/code/mechfabricator_designs.dm @@ -0,0 +1,131 @@ +//adding teshari silicon stuff to the mechfabricator + +#define RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL "/Raptoral" + +/datum/design/teshari_cyber_chest + name = "Raptoral Cybernetic Torso" + id = "teshari_cyber_chest" + build_type = MECHFAB + build_path = /obj/item/bodypart/chest/robot/teshari + materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 6) + construction_time = 12 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_cyber_head + name = "Raptoral Cybernetic Head" + id = "teshari_cyber_head" + build_type = MECHFAB + build_path = /obj/item/bodypart/head/robot/teshari + materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 0.75) + construction_time = 4 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_cyber_l_arm + name = "Raptoral Cybernetic Left Forelimb" + id = "teshari_cyber_l_arm" + build_type = MECHFAB + build_path = /obj/item/bodypart/arm/left/robot/teshari + materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT * 1.5) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_cyber_r_arm + name = "Raptoral Cybernetic Right Forelimb" + id = "teshari_cyber_r_arm" + build_type = MECHFAB + build_path = /obj/item/bodypart/arm/right/robot/teshari + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_cyber_l_leg + name = "Raptoral Cybernetic Left Hindlimb" + id = "teshari_cyber_l_leg" + build_type = MECHFAB + build_path = /obj/item/bodypart/leg/left/robot/teshari + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_cyber_r_leg + name = "Raptoral Cybernetic Right Hindlimb" + id = "teshari_cyber_r_leg" + build_type = MECHFAB + build_path = /obj/item/bodypart/leg/right/robot/teshari + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 1.5) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +//advanced augmentations since those were added in the recent upstream + +/datum/design/teshari_advanced_l_arm + name = "Advanced Raptoral Cybernetic Left Forelimb" + id = "teshari_advanced_l_arm" + build_type = MECHFAB + build_path = /obj/item/bodypart/arm/left/robot/teshari_advanced + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3, + ) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_advanced_r_arm + name = "Advanced Raptoral Cybernetic Right Forelimb" + id = "teshari_advanced_r_arm" + build_type = MECHFAB + build_path = /obj/item/bodypart/arm/right/robot/teshari_advanced + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3, + ) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_advanced_l_leg + name = "Advanced Raptoral Cybernetic Left Hindlimb" + id = "teshari_advanced_l_leg" + build_type = MECHFAB + build_path = /obj/item/bodypart/leg/left/robot/teshari_advanced + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3, + ) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) + +/datum/design/teshari_advanced_r_leg + name = "Advanced Raptoral Cybernetic Right Hindlimb" + id = "teshari_advanced_r_leg" + build_type = MECHFAB + build_path = /obj/item/bodypart/leg/right/robot/teshari_advanced + materials = list( + /datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, + /datum/material/titanium = SHEET_MATERIAL_AMOUNT * 3, + /datum/material/gold = SHEET_MATERIAL_AMOUNT * 3, + ) + construction_time = 8 SECONDS + category = list( + RND_CATEGORY_MECHFAB_CYBORG + RND_SUBCATEGORY_MECHFAB_CYBORG_RAPTORAL, + ) diff --git a/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm b/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm new file mode 100644 index 00000000000..4a8eaa3f4b9 --- /dev/null +++ b/modular_skyrat/modules/tesh_augments/code/robot_bodyparts.dm @@ -0,0 +1,403 @@ +#define ROBOTIC_LIGHT_BRUTE_MSG "marred" +#define ROBOTIC_MEDIUM_BRUTE_MSG "dented" +#define ROBOTIC_HEAVY_BRUTE_MSG "falling apart" + +#define ROBOTIC_LIGHT_BURN_MSG "scorched" +#define ROBOTIC_MEDIUM_BURN_MSG "charred" +#define ROBOTIC_HEAVY_BURN_MSG "smoldering" + +/* + The damage modifiers here are modified to stay in line with teshari + Although I'm not sure if it's redundant, better safe than sorry. + */ + +#define TESHARI_PUNCH_LOW 2 +#define TESHARI_PUNCH_HIGH 6 + +//Teshari normal + +/obj/item/bodypart/arm/left/robot/teshari + name = "cybernetic left raptoral forelimb" + desc = "A skeletal limb wrapped in pseudomuscles and membranous feathers, with a low-conductivity case." + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW + unarmed_damage_high = TESHARI_PUNCH_HIGH + + brute_modifier = 1 + burn_modifier = 0.9 + +/obj/item/bodypart/arm/right/robot/teshari + name = "cybernetic right raptoral forelimb" + desc = "A skeletal limb wrapped in pseudomuscles and membranous feathers, with a low-conductivity case." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW + unarmed_damage_high = TESHARI_PUNCH_HIGH + + brute_modifier = 1 + burn_modifier = 0.9 + +/obj/item/bodypart/leg/left/robot/teshari + name = "cybernetic left raptoral hindlimb" + desc = "A skeletal limb wrapped in pseudomuscles and membranous feathers, with a low-conductivity case." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW + unarmed_damage_high = TESHARI_PUNCH_HIGH + + brute_modifier = 1 + burn_modifier = 0.9 + +/obj/item/bodypart/leg/right/robot/teshari + name = "cybernetic right raptoral hindlimb" + desc = "A skeletal limb wrapped in pseudomuscles and membranous feathers, with a low-conductivity case." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW + unarmed_damage_high = TESHARI_PUNCH_HIGH + + brute_modifier = 1 + burn_modifier = 0.9 + +/obj/item/bodypart/chest/robot/teshari + name = "cybernetic raptoral torso" + desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell, covered in a layer of membranous feathers." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + brute_modifier = 1 + burn_modifier = 0.9 + + robotic_emp_paralyze_damage_percent_threshold = 0.5 + +/obj/item/bodypart/head/robot/teshari + name = "cybernetic raptoral head" + desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals. A layer of membranous feathers covers the stark metal." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW + unarmed_damage_high = TESHARI_PUNCH_HIGH + + brute_modifier = 1 + burn_modifier = 0.9 + + head_flags = HEAD_EYESPRITES + +// teshari_ surplus + +/obj/item/bodypart/arm/left/robot/teshari_surplus + name = "prosthetic left raptoral forelimb" + desc = "A skeletal, robotic wing. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/right/robot/teshari_surplus + name = "prosthetic right raptoral forelimb" + desc = "A skeletal, robotic wing. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/left/robot/teshari_surplus + name = "prosthetic left raptoral hindlimb" + desc = "A skeletal, robotic hindlimb. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/right/robot/teshari_surplus + name = "prosthetic right raptoral hindlimb" + desc = "A skeletal, robotic hindlimb. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/left/robot/teshari_surplus + name = "prosthetic left raptoral forelimb" + desc = "A skeletal, robotic wing. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/right/robot/teshari_surplus + name = "prosthetic right raptoral forelimb" + desc = "A skeletal, robotic wing. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/left/robot/teshari_surplus + name = "prosthetic left raptoral hindlimb" + desc = "A skeletal, robotic hindlimb. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/right/robot/teshari_surplus + name = "prosthetic right raptoral hindlimb" + desc = "A skeletal, robotic hindlimb. Outdated and fragile, but it's still better than nothing. A layer of membranous feathers hides the cheap assembly." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 0.3 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 0.5 + + brute_modifier = 1.25 + burn_modifier = 1.2 + + max_damage = LIMB_MAX_HP_PROSTHESIS + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_PROSTHESIS + + biological_state = (BIO_METAL|BIO_JOINTED) + +// teshari_ advanced + +/obj/item/bodypart/arm/left/robot/teshari_advanced + name = "advanced left raptoral forelimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 0.8 + burn_modifier = 1 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/right/robot/teshari_advanced + name = "advanced right raptoral forelimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 0.8 + burn_modifier = 1 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/left/robot/teshari_advanced + name = "advanced left raptoral hindlimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 0.8 + burn_modifier = 1 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/right/robot/teshari_advanced + name = "advanced right raptoral hindlimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 0.8 + burn_modifier = 1 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/left/robot/teshari_advanced + name = "advanced left raptoral forelimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 1 + burn_modifier = 0.9 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/arm/right/robot/teshari_advanced + name = "advanced right raptoral forelimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 1 + burn_modifier = 0.9 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/left/robot/teshari_advanced + name = "advanced left raptoral hindlimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 1 + burn_modifier = 0.9 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +/obj/item/bodypart/leg/right/robot/teshari_advanced + name = "advanced right raptoral hindlimb" + desc = "An advanced robotic hindlimb. These designs are usually reserved for those still on the search for Avalon." + icon_static = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + icon = 'modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi' + bodyshape = parent_type::bodyshape | BODYSHAPE_CUSTOM + + unarmed_damage_low = TESHARI_PUNCH_LOW * 2 + unarmed_damage_high = TESHARI_PUNCH_HIGH * 3 + + brute_modifier = 1 + burn_modifier = 0.9 + + max_damage = LIMB_MAX_HP_ADVANCED + body_damage_coeff = LIMB_BODY_DAMAGE_COEFFICIENT_ADVANCED + + biological_state = (BIO_METAL|BIO_JOINTED) + +#undef ROBOTIC_LIGHT_BRUTE_MSG +#undef ROBOTIC_MEDIUM_BRUTE_MSG +#undef ROBOTIC_HEAVY_BRUTE_MSG + +#undef ROBOTIC_LIGHT_BURN_MSG +#undef ROBOTIC_MEDIUM_BURN_MSG +#undef ROBOTIC_HEAVY_BURN_MSG + +#undef TESHARI_PUNCH_LOW +#undef TESHARI_PUNCH_HIGH diff --git a/modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi b/modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi new file mode 100644 index 00000000000..4f0c65c2d33 Binary files /dev/null and b/modular_skyrat/modules/tesh_augments/icons/advanced_augments_teshari.dmi differ diff --git a/modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi b/modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi new file mode 100644 index 00000000000..310336182fc Binary files /dev/null and b/modular_skyrat/modules/tesh_augments/icons/augments_teshari.dmi differ diff --git a/modular_skyrat/modules/tesh_augments/icons/sbipc_raptor.dmi b/modular_skyrat/modules/tesh_augments/icons/sbipc_raptor.dmi new file mode 100644 index 00000000000..09c792e0b4c Binary files /dev/null and b/modular_skyrat/modules/tesh_augments/icons/sbipc_raptor.dmi differ diff --git a/modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi b/modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi new file mode 100644 index 00000000000..3863b2a12da Binary files /dev/null and b/modular_skyrat/modules/tesh_augments/icons/surplus_augments_teshari.dmi differ diff --git a/modular_skyrat/modules/tesh_augments/readme.md b/modular_skyrat/modules/tesh_augments/readme.md new file mode 100644 index 00000000000..b43ce34148a --- /dev/null +++ b/modular_skyrat/modules/tesh_augments/readme.md @@ -0,0 +1,5 @@ +/* +teshari_ cybernetics +all done by aKhromatopsia +that's all +*/ diff --git a/modular_skyrat/modules/teshari/code/_teshari.dm b/modular_skyrat/modules/teshari/code/_teshari.dm index 3a7b8e0ee79..606a810a204 100644 --- a/modular_skyrat/modules/teshari/code/_teshari.dm +++ b/modular_skyrat/modules/teshari/code/_teshari.dm @@ -5,6 +5,7 @@ /datum/species/teshari name = "Teshari" id = SPECIES_TESHARI + no_gender_shaping = TRUE // Female uniform shaping breaks Teshari worn sprites, so this is disabled. This will not affect anything else in regards to gender however. eyes_icon = 'modular_skyrat/modules/organs/icons/teshari_eyes.dmi' inherent_traits = list( TRAIT_ADVANCEDTOOLUSER, @@ -38,6 +39,7 @@ bodytemp_heat_damage_limit = (BODYTEMP_HEAT_DAMAGE_LIMIT + TESHARI_TEMP_OFFSET) bodytemp_cold_damage_limit = (BODYTEMP_COLD_DAMAGE_LIMIT + TESHARI_TEMP_OFFSET) species_language_holder = /datum/language_holder/teshari + mutantears = /obj/item/organ/internal/ears/teshari body_size_restricted = TRUE bodypart_overrides = list( BODY_ZONE_HEAD = /obj/item/bodypart/head/mutant/teshari, @@ -58,7 +60,7 @@ /obj/item/organ/internal/tongue/teshari - liked_foodtypes = MEAT + liked_foodtypes = MEAT | GORE | RAW disliked_foodtypes = GROSS | GRAIN @@ -82,3 +84,11 @@ tesh.dna.mutant_bodyparts["tail"] = list(MUTANT_INDEX_NAME = "Teshari (Default)", MUTANT_INDEX_COLOR_LIST = list(base_color, base_color, ear_color)) regenerate_organs(tesh, src, visual_only = TRUE) tesh.update_body(TRUE) + +/datum/species/teshari/on_species_gain(mob/living/carbon/human/new_teshari, datum/species/old_species, pref_load) + . = ..() + passtable_on(new_teshari, SPECIES_TRAIT) + +/datum/species/teshari/on_species_loss(mob/living/carbon/C, datum/species/new_species, pref_load) + . = ..() + passtable_off(C, SPECIES_TRAIT) diff --git a/modular_skyrat/modules/teshari/code/schechi.dm b/modular_skyrat/modules/teshari/code/schechi.dm index 47c2c136cc0..5da75c731b2 100644 --- a/modular_skyrat/modules/teshari/code/schechi.dm +++ b/modular_skyrat/modules/teshari/code/schechi.dm @@ -1,12 +1,14 @@ /datum/language/schechi name = "Schechi" - desc = "The common language of the Teshari, and later adapted by many other avian species, consisting of miscellaneous chirps." + desc = "The very structurally loose creole tongue of the Teshari, host to hundreds of dialects almost different enough to resemble their own languages. \ + Originally developed on Sirisai, Schechi has made its way across the Teshari diaspora as a commonly agreed upon way for entirely different packs to communicate." key = "F" space_chance = 40 syllables = list( "i", "ii", "si", "aci", "hi", "ni", "li", "schi", "tari", "e", "she", "re", "me", "ne", "te", "se", "le", "ai", - "a", "ra", "ca", "scha", "tara", "sa", "la", "na", + "a", "ra", "ca", "scha", "tara", "sa", "la", "na", "ce", + "re", "se", "shi", "ti", "le", "la", "lu", "tu", "shu", ) icon = 'modular_skyrat/master_files/icons/misc/language.dmi' icon_state = "schechi" diff --git a/tgstation.dme b/tgstation.dme index ecbe18b63c4..9f6b146c939 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -7814,6 +7814,7 @@ #include "modular_skyrat\modules\modular_weapons\code\conversion_kits.dm" #include "modular_skyrat\modules\modular_weapons\code\ds2_gunset.dm" #include "modular_skyrat\modules\modular_weapons\code\energy.dm" +#include "modular_skyrat\modules\modular_weapons\code\gun_launches_little_guys_element.dm" #include "modular_skyrat\modules\modular_weapons\code\gunsets.dm" #include "modular_skyrat\modules\modular_weapons\code\melee.dm" #include "modular_skyrat\modules\modular_weapons\code\modular_projectiles.dm" @@ -7959,6 +7960,7 @@ #include "modular_skyrat\modules\opposing_force\code\equipment\modsuit.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\spells.dm" #include "modular_skyrat\modules\opposing_force\code\equipment\uplink.dm" +#include "modular_skyrat\modules\organs\code\ears.dm" #include "modular_skyrat\modules\organs\code\heart.dm" #include "modular_skyrat\modules\organs\code\liver.dm" #include "modular_skyrat\modules\organs\code\lungs.dm" @@ -8182,6 +8184,10 @@ #include "modular_skyrat\modules\tarkon\code\misc-fluff\research.dm" #include "modular_skyrat\modules\tarkon\code\misc-fluff\spawner.dm" #include "modular_skyrat\modules\tarkon\code\misc-fluff\tools.dm" +#include "modular_skyrat\modules\tesh_augments\code\all_nodes.dm" +#include "modular_skyrat\modules\tesh_augments\code\limbs.dm" +#include "modular_skyrat\modules\tesh_augments\code\mechfabricator_designs.dm" +#include "modular_skyrat\modules\tesh_augments\code\robot_bodyparts.dm" #include "modular_skyrat\modules\teshari\code\_clothing_defines.dm" #include "modular_skyrat\modules\teshari\code\_teshari.dm" #include "modular_skyrat\modules\teshari\code\birdman_food.dm"