diff --git a/aurorastation.dme b/aurorastation.dme index d1e1b228126..213fb2d53a9 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -2273,6 +2273,7 @@ #include "code\modules\organs\internal\lungs.dm" #include "code\modules\organs\internal\stomach.dm" #include "code\modules\organs\internal\species\diona.dm" +#include "code\modules\organs\internal\species\tajara.dm" #include "code\modules\organs\subtypes\augment.dm" #include "code\modules\organs\subtypes\autakh.dm" #include "code\modules\organs\subtypes\diona.dm" diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 386c62a3e0d..f41fb741bff 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -585,7 +585,7 @@ var/list/global/slot_flags_enumeration = list( "You stab yourself in the [eyes.singular_name] with [src]!" \ ) - eyes.damage += rand(3,4) + eyes.take_damage(rand(3,4)) if(eyes.damage >= eyes.min_bruised_damage) if(M.stat != 2) if(eyes.robotic <= 1) //robot eyes bleeding might be a bit silly diff --git a/code/modules/mob/living/carbon/human/species/station/monkey.dm b/code/modules/mob/living/carbon/human/species/station/monkey.dm index a7291ebc52f..cfb717a0a13 100644 --- a/code/modules/mob/living/carbon/human/species/station/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/station/monkey.dm @@ -92,17 +92,11 @@ move_trail = /obj/effect/decal/cleanable/blood/tracks/paw + meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai + /datum/species/monkey/tajaran/get_random_name() return "farwa ([rand(100,999)])" // HACK HACK HACK, oh lords of coding please forgive me! -/datum/species/monkey/tajaran/m_sai - name = SPECIES_MONKEY_TAJARA_MSAI - greater_form = SPECIES_TAJARA_MSAI - -/datum/species/monkey/tajaran/zhan_khazan - name = SPECIES_MONKEY_TAJARA_ZHAN - greater_form = SPECIES_TAJARA_ZHAN - /datum/species/monkey/skrell name = SPECIES_MONKEY_SKRELL short_name = "nea" diff --git a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm index ff7f4d743cf..0ca9dc2ed80 100644 --- a/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm +++ b/code/modules/mob/living/carbon/human/species/station/tajara/tajara.dm @@ -80,6 +80,28 @@ zombie_type = SPECIES_ZOMBIE_TAJARA + has_organ = list( + BP_HEART = /obj/item/organ/internal/heart/tajara, + BP_LUNGS = /obj/item/organ/internal/lungs/tajara, + BP_LIVER = /obj/item/organ/internal/liver/tajara, + BP_KIDNEYS = /obj/item/organ/internal/kidneys/tajara, + BP_STOMACH = /obj/item/organ/internal/stomach/tajara, + BP_BRAIN = /obj/item/organ/internal/brain/tajara, + BP_APPENDIX = /obj/item/organ/internal/appendix/tajara, + BP_EYES = /obj/item/organ/internal/eyes/night + ) + + stomach_capacity = 6 + + max_nutrition_factor = 1.2 + max_hydration_factor = 1.2 + + nutrition_loss_factor = 0.8 + hydration_loss_factor = 0.8 + metabolism_mod = 0.8 + + meat_type = /obj/item/reagent_containers/food/snacks/meat/adhomai + /datum/species/tajaran/after_equip(var/mob/living/carbon/human/H) . = ..() if(H.shoes) diff --git a/code/modules/mob/living/carbon/human/species/station/tajara/tajaran_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/tajara/tajaran_subspecies.dm index 3fcf5c4a5b1..d1261b03834 100644 --- a/code/modules/mob/living/carbon/human/species/station/tajara/tajaran_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/tajara/tajaran_subspecies.dm @@ -28,11 +28,17 @@ heat_level_2 = 360 //RaceDefault 380 Default 400 heat_level_3 = 700 //RaceDefault 800 Default 1000 - primitive_form = SPECIES_MONKEY_TAJARA_ZHAN - allowed_accents = list(ACCENT_REPUBICLANSIIK, ACCENT_NAZIRASIIK, ACCENT_CREVAN, ACCENT_DASNRRASIIK, ACCENT_HIGHHARRSIIK, ACCENT_LOWHARRSIIK, ACCENT_AMOHDASIIK, ACCENT_RURALDELVAHHI, ACCENT_NOMADDELVAHHI) + stomach_capacity = 7 + + max_nutrition_factor = 1.3 + max_hydration_factor = 1.3 + + nutrition_loss_factor = 0.7 + hydration_loss_factor = 0.7 + /datum/species/tajaran/m_sai name = SPECIES_TAJARA_MSAI name_plural = "M'sai Tajaran" @@ -56,9 +62,14 @@ heat_level_2 = 390 //RaceDefault 380 Default 400 heat_level_3 = 900 //RaceDefault 800 Default 1000 - primitive_form = SPECIES_MONKEY_TAJARA_MSAI default_h_style = "M'sai Ears" secondary_langs = list(LANGUAGE_SIIK_MAAS, LANGUAGE_SIIK_TAJR, LANGUAGE_SIGN_TAJARA) allowed_accents = list(ACCENT_REPUBICLANSIIK, ACCENT_NAZIRASIIK, ACCENT_CREVAN, ACCENT_DASNRRASIIK, ACCENT_HIGHHARRSIIK, ACCENT_LOWHARRSIIK, ACCENT_AMOHDASIIK) + + max_nutrition_factor = 1.2 + max_hydration_factor = 1.2 + + nutrition_loss_factor = 0.9 + hydration_loss_factor = 0.9 \ No newline at end of file diff --git a/code/modules/organs/internal/species/tajara.dm b/code/modules/organs/internal/species/tajara.dm new file mode 100644 index 00000000000..a015b9b951b --- /dev/null +++ b/code/modules/organs/internal/species/tajara.dm @@ -0,0 +1,125 @@ +/obj/item/organ/internal/eyes/night + name = "light sensitive eyes" + desc = "A pair of Tajaran eyes accustomed to the low light conditions of Adhomai." + icon_state = "tajaran_eyes" + action_button_name = "Activate Low Light Vision" + relative_size = 8 + var/night_vision = FALSE + var/datum/client_color/vision_color = /datum/client_color/monochrome + var/eye_emote = "'s eyes dilate!" + +/obj/item/organ/internal/eyes/night/Destroy() + disable_night_vision() + . = ..() + +/obj/item/organ/internal/eyes/night/removed(var/mob/living/carbon/human/target) + . = ..() + disable_night_vision() + +/obj/item/organ/internal/eyes/night/replaced() + . = ..() + disable_night_vision() + +/obj/item/organ/internal/eyes/night/refresh_action_button() + . = ..() + if(.) + action.button_icon_state = "night_eyes" + if(action.button) + action.button.update_icon() + +/obj/item/organ/internal/eyes/night/attack_self(var/mob/user) + . = ..() + if(owner.last_special > world.time) + return + + if(use_check(user, USE_ALLOW_NON_ADJACENT)) + return + + if(is_broken()) + return + + if(status & ORGAN_ROBOT) + return + + if(!night_vision) + enable_night_vision() + else + disable_night_vision() + + owner.last_special = world.time + 20 + +/obj/item/organ/internal/eyes/night/take_damage(var/amount, var/silent = 0) + ..() + disable_night_vision() + +/obj/item/organ/internal/eyes/night/take_internal_damage(var/amount, var/silent = 0) + ..() + disable_night_vision() + +/obj/item/organ/internal/eyes/night/flash_act() + if(!owner) + return + + to_chat(owner, SPAN_WARNING("Your eyes burn with the intense light of the flash!")) + owner.Weaken(5) + disable_night_vision() + owner.last_special = world.time + 100 + +/obj/item/organ/internal/eyes/night/proc/enable_night_vision() + if(!owner) + return + if(night_vision) + return + var/show_message = TRUE + for(var/obj/item/protection in list(owner.head, owner.wear_mask, owner.glasses)) + if((protection && (protection.body_parts_covered & EYES))) + break + show_message = FALSE + if(show_message && eye_emote) + owner.emote("me", 1, eye_emote) + + night_vision = TRUE + owner.stop_sight_update = TRUE + owner.see_invisible = SEE_INVISIBLE_NOLIGHTING + owner.add_client_color(vision_color) + +/obj/item/organ/internal/eyes/night/proc/disable_night_vision() + if(!owner) + return + if(!night_vision) + return + night_vision = FALSE + owner.stop_sight_update = FALSE + owner.remove_client_color(vision_color) + +/obj/item/organ/internal/stomach/tajara + name = "reinforced stomach" + desc = "A Tajara stomach adapted to help the body conserve energy during digestion." + icon_state = "tajaran_stomach" + stomach_volume = 80 + +/obj/item/organ/internal/lungs/tajara + name = "insulated lungs" + desc = "A pair of Tajaran lungs that help preserve the warmth of the air while breathing." + icon_state = "tajaran_lungs" + +/obj/item/organ/internal/liver/tajara + desc = "An alien liver capable of filtering Adhomian toxins and chemicals." + icon_state = "tajaran_liver" + +/obj/item/organ/internal/heart/tajara + desc = "A robust heart capable of helping to preserve body temperature through blood circulation." + icon_state = "tajaran_heart" + dead_icon = "tajaran_heart" + +/obj/item/organ/internal/kidneys/tajara + desc = "Alien kidneys adapted to the Tajaran physiology." + icon_state = "tajaran_kidneys" + +/obj/item/organ/internal/brain/tajara + icon_state = "tajaran_brain" + +/obj/item/organ/internal/appendix/tajara + name = "fat reservoir" + icon_state = "tajaran_appendix" + desc = "An Adhomian organ that stores fat and nutrients for the winter." diff --git a/code/modules/organs/internal/stomach.dm b/code/modules/organs/internal/stomach.dm index d9b073bec43..1d0a4d5aacb 100644 --- a/code/modules/organs/internal/stomach.dm +++ b/code/modules/organs/internal/stomach.dm @@ -12,6 +12,7 @@ var/datum/reagents/metabolism/ingested var/next_cramp = 0 var/should_process_alcohol = TRUE + var/stomach_volume = 65 /obj/item/organ/internal/stomach/Destroy() QDEL_NULL(ingested) @@ -99,8 +100,6 @@ if(is_usable()) ingested.metabolize() -#define STOMACH_VOLUME 65 - /obj/item/organ/internal/stomach/process() ..() if(owner) @@ -133,7 +132,7 @@ var/effective_volume = ingested.total_volume + alcohol_volume // Just over the limit, the probability will be low. It rises a lot such that at double ingested it's 64% chance. - var/vomit_probability = (effective_volume / STOMACH_VOLUME) ** 6 + var/vomit_probability = (effective_volume / stomach_volume) ** 6 if(prob(vomit_probability)) owner.vomit() @@ -141,5 +140,4 @@ if(!QDELETED(M)) qdel(M) -#undef STOMACH_VOLUME #undef PUKE_ACTION_NAME \ No newline at end of file diff --git a/html/changelogs/alberyk-organ.yml b/html/changelogs/alberyk-organ.yml new file mode 100644 index 00000000000..8529c0880ef --- /dev/null +++ b/html/changelogs/alberyk-organ.yml @@ -0,0 +1,9 @@ +author: Alberyk, Kyres1, TheStriker + +delete-after: True + +changes: + - rscadd: "Tajara have a higher nutrition and hydration thresholds and get hungry slower, this is a bit different between subspecies." + - rscadd: "Tajara process chemicals a bit slower." + - rscadd: "Tajara have their own set of organs with some differences in functions, flavor and icons." + - rscadd: "Tajara now have a somewhat proper night vision verb that can be toggled. While it allows the user to see in the darkness, it removes all the color. Being flashed or hurt in the eyes disables it. Tajaran eyes are also bigger and have a higher chance of being hit when attacking the head." diff --git a/icons/obj/action_buttons/organs.dmi b/icons/obj/action_buttons/organs.dmi index 3895aee651c..8fd0fee2f28 100644 Binary files a/icons/obj/action_buttons/organs.dmi and b/icons/obj/action_buttons/organs.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index bcafd8ae745..ef59396ff65 100644 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ