Teshari Specific Ports from Nova Sector (#27223)

* Teshari Specific Port

This ports 4 Teshari specific PRs from Nova to Skyrat.

* Hypospray Port

The fancy new GAG enabled hyposprays.

* Revert "Hypospray Port"

This reverts commit b60a482e916ed5683424f64d0eefd9c8dcdd1a48.
This commit is contained in:
Nidvex250
2024-04-18 02:44:46 +02:00
committed by GitHub
parent 57c189bce7
commit f37a93f76b
24 changed files with 779 additions and 9 deletions
+3 -3
View File
@@ -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
@@ -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
+1 -1
View File
@@ -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)
@@ -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)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 367 B

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

@@ -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
@@ -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
@@ -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)
. = ..()
@@ -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!"))
@@ -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.")
@@ -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)
@@ -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
@@ -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,
)
@@ -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
Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 995 B

@@ -0,0 +1,5 @@
/*
teshari_ cybernetics
all done by aKhromatopsia
that's all
*/
@@ -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)
@@ -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"
+6
View File
@@ -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"