mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-27 06:54:18 +01:00
@@ -16,7 +16,6 @@
|
||||
if(current_species.appearance_flags & HAS_SKIN_COLOR)
|
||||
randomize_skin_color(current_species)
|
||||
|
||||
tail_style = length(current_species.selectable_tails) ? pick(current_species.selectable_tails) : null
|
||||
h_style = random_hair_style(gender, species)
|
||||
f_style = random_facial_hair_style(gender, species)
|
||||
randomize_hair_color("hair")
|
||||
|
||||
@@ -1,7 +1,4 @@
|
||||
/mob/living/carbon/human
|
||||
// Tail Style
|
||||
var/tail_style = null
|
||||
|
||||
//Hair colour and style
|
||||
var/r_hair = 0
|
||||
var/g_hair = 0
|
||||
|
||||
@@ -359,21 +359,3 @@
|
||||
if(!isnull(species.floating_chat_x_offset))
|
||||
return species.floating_chat_x_offset
|
||||
return species.icon_x_offset
|
||||
|
||||
/mob/living/carbon/human/proc/set_tail_style(var/new_style)
|
||||
tail_style = new_style
|
||||
if(tail_style)
|
||||
verbs |= /mob/living/carbon/human/proc/open_tail_storage
|
||||
else
|
||||
verbs -= /mob/living/carbon/human/proc/open_tail_storage
|
||||
|
||||
/mob/living/carbon/human/proc/get_tail_accessory()
|
||||
var/obj/item/organ/external/groin/G = organs_by_name[BP_GROIN]
|
||||
if(!G)
|
||||
return
|
||||
if(!G.tail_storage)
|
||||
return
|
||||
|
||||
if(length(G.tail_storage.contents))
|
||||
return G.tail_storage.contents[1]
|
||||
return null
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
|
||||
/mob/living/carbon/human/set_dir(var/new_dir, ignore_facing_dir = FALSE)
|
||||
. = ..()
|
||||
if(. && tail_style)
|
||||
if(. && species.tail)
|
||||
update_tail_showing(1)
|
||||
|
||||
/mob/living/carbon/human/Move()
|
||||
|
||||
@@ -810,7 +810,7 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
earpain(3, TRUE, 1)
|
||||
else if (T in range(src, 2))
|
||||
earpain(2, TRUE, 2)
|
||||
|
||||
|
||||
for (var/mob/living/carbon/human/T in hearers(2, src) - src)
|
||||
if(T.protected_from_sound())
|
||||
continue
|
||||
@@ -1292,19 +1292,4 @@ mob/living/carbon/human/proc/change_monitor()
|
||||
/mob/living/carbon/human/proc/stop_listening()
|
||||
if (is_listening())
|
||||
visible_message("<b>[src]</b> stops listening intently.")
|
||||
intent_listener -= src
|
||||
|
||||
/mob/living/carbon/human/proc/open_tail_storage()
|
||||
set name = "Tail Accessories"
|
||||
set desc = "Opens the tail accessory slot."
|
||||
set category = "Abilities"
|
||||
|
||||
var/obj/item/organ/external/groin/G = organs_by_name[BP_GROIN]
|
||||
if(!G)
|
||||
to_chat(usr, SPAN_WARNING("You have no tail!"))
|
||||
return
|
||||
if(!G.tail_storage)
|
||||
to_chat(usr, SPAN_WARNING("Something went wrong with your tail storage, it's missing! (Report this on Github)"))
|
||||
return
|
||||
|
||||
G.tail_storage.open(usr)
|
||||
intent_listener -= src
|
||||
@@ -1461,11 +1461,11 @@
|
||||
bodytemperature = min(bodytemperature + fever, normal_temp)
|
||||
else if(bodytemperature <= normal_temp + 10) //If we're hotter than max due to like, being on fire, don't keep increasing.
|
||||
bodytemperature = normal_temp + min(fever, 10) //We use normal_temp here to maintain a steady temperature, otherwise even a small infection steadily increases bodytemp to max. This way it's easier to diagnose the intensity of an infection based on how bad the fever is.
|
||||
//Apply side effects for having a fever. Separate from body temp changes.
|
||||
//Apply side effects for having a fever. Separate from body temp changes.
|
||||
if(fever >= 2)
|
||||
do_fever_effects(fever)
|
||||
|
||||
|
||||
|
||||
//Getting the total germ level for all infected organs, affects fever
|
||||
/mob/living/carbon/human/proc/get_infection_germ_level()
|
||||
var/germs
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
var/tail // Name of tail state in species effects icon file.
|
||||
var/tail_animation // If set, the icon to obtain tail animation states from.
|
||||
var/tail_hair
|
||||
var/list/selectable_tails
|
||||
var/race_key = 0 // Used for mob icon cache string.
|
||||
var/icon/icon_template // Used for mob icon generation for non-32x32 species.
|
||||
var/mob_size = MOB_MEDIUM
|
||||
|
||||
@@ -12,9 +12,7 @@
|
||||
brute_mod = 0.9
|
||||
oxy_mod = 0.9
|
||||
hydration_loss_factor = 1.1
|
||||
tail = "Tail"
|
||||
tail_animation = 'icons/mob/species/skrell/tail.dmi'
|
||||
selectable_tails = list("Tail")
|
||||
tail = "axiori_tail"
|
||||
eyes = "skrell_axiori_eyes_s"
|
||||
|
||||
sprint_speed_factor = 1.15 // Species default 1.25
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
deform = 'icons/mob/human_races/tajara/r_def_tajaran.dmi'
|
||||
preview_icon = 'icons/mob/human_races/tajara/tajaran_preview.dmi'
|
||||
bandages_icon = 'icons/mob/bandage.dmi'
|
||||
tail = "Tail"
|
||||
tail = "tajtail"
|
||||
tail_animation = 'icons/mob/species/tajaran/tail.dmi'
|
||||
selectable_tails = list("Tail", "Hakh'jar Tail")
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/stomp,
|
||||
/datum/unarmed_attack/kick,
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
deform = 'icons/mob/human_races/unathi/r_def_lizard.dmi'
|
||||
preview_icon = 'icons/mob/human_races/unathi/unathi_preview.dmi'
|
||||
bandages_icon = 'icons/mob/bandage.dmi'
|
||||
tail = "Tail"
|
||||
tail = "sogtail"
|
||||
tail_animation = 'icons/mob/species/unathi/tail.dmi'
|
||||
selectable_tails = list("Tail")
|
||||
unarmed_types = list(
|
||||
/datum/unarmed_attack/stomp,
|
||||
/datum/unarmed_attack/kick,
|
||||
|
||||
@@ -85,46 +85,43 @@ There are several things that need to be remembered:
|
||||
*/
|
||||
|
||||
// Human Overlays Indexes //
|
||||
#define MUTATIONS_LAYER 1
|
||||
#define DAMAGE_LAYER 2
|
||||
#define SURGERY_LAYER 3
|
||||
#define UNDERWEAR_LAYER 4
|
||||
#define TAIL_SOUTH_LAYER 5
|
||||
#define TAIL_SOUTH_ACC_LAYER 6
|
||||
#define SHOES_LAYER_ALT 7
|
||||
#define UNIFORM_LAYER 8
|
||||
#define ID_LAYER 9
|
||||
#define SHOES_LAYER 10
|
||||
#define GLOVES_LAYER 11
|
||||
#define BELT_LAYER 12
|
||||
#define WRISTS_LAYER_ALT 13
|
||||
#define SUIT_LAYER 14
|
||||
#define ID_LAYER_ALT 15
|
||||
#define TAIL_NORTH_LAYER 16
|
||||
#define TAIL_NORTH_ACC_LAYER 17
|
||||
#define GLASSES_LAYER 18
|
||||
#define BELT_LAYER_ALT 19
|
||||
#define SUIT_STORE_LAYER 20
|
||||
#define BACK_LAYER 21
|
||||
#define HAIR_LAYER 22
|
||||
#define GLASSES_LAYER_ALT 23
|
||||
#define L_EAR_LAYER 24
|
||||
#define R_EAR_LAYER 25
|
||||
#define FACEMASK_LAYER 26
|
||||
#define HEAD_LAYER 27
|
||||
#define COLLAR_LAYER 28
|
||||
#define HANDCUFF_LAYER 29
|
||||
#define LEGCUFF_LAYER 30
|
||||
#define L_HAND_LAYER 31
|
||||
#define R_HAND_LAYER 32
|
||||
#define WRISTS_LAYER 33
|
||||
#define FIRE_LAYER 34 //If you're on fire
|
||||
#define TOTAL_LAYERS 34
|
||||
#define MUTATIONS_LAYER 1
|
||||
#define DAMAGE_LAYER 2
|
||||
#define SURGERY_LAYER 3
|
||||
#define UNDERWEAR_LAYER 4
|
||||
#define TAIL_SOUTH_LAYER 5
|
||||
#define SHOES_LAYER_ALT 6
|
||||
#define UNIFORM_LAYER 7
|
||||
#define ID_LAYER 8
|
||||
#define SHOES_LAYER 9
|
||||
#define GLOVES_LAYER 10
|
||||
#define BELT_LAYER 11
|
||||
#define WRISTS_LAYER_ALT 12
|
||||
#define SUIT_LAYER 13
|
||||
#define ID_LAYER_ALT 14
|
||||
#define TAIL_NORTH_LAYER 15
|
||||
#define GLASSES_LAYER 16
|
||||
#define BELT_LAYER_ALT 17
|
||||
#define SUIT_STORE_LAYER 18
|
||||
#define BACK_LAYER 19
|
||||
#define HAIR_LAYER 20
|
||||
#define GLASSES_LAYER_ALT 21
|
||||
#define L_EAR_LAYER 22
|
||||
#define R_EAR_LAYER 23
|
||||
#define FACEMASK_LAYER 24
|
||||
#define HEAD_LAYER 25
|
||||
#define COLLAR_LAYER 26
|
||||
#define HANDCUFF_LAYER 27
|
||||
#define LEGCUFF_LAYER 28
|
||||
#define L_HAND_LAYER 29
|
||||
#define R_HAND_LAYER 30
|
||||
#define WRISTS_LAYER 31
|
||||
#define FIRE_LAYER 32 //If you're on fire
|
||||
#define TOTAL_LAYERS 32
|
||||
//////////////////////////////////
|
||||
|
||||
#define GET_BODY_TYPE (cached_bodytype || (cached_bodytype = species.get_bodytype()))
|
||||
#define GET_TAIL_LAYER (dir == NORTH ? TAIL_NORTH_LAYER : TAIL_SOUTH_LAYER)
|
||||
#define GET_TAIL_ACC_LAYER (dir == NORTH ? TAIL_NORTH_ACC_LAYER : TAIL_SOUTH_ACC_LAYER)
|
||||
|
||||
/proc/overlay_image(icon,icon_state,color,flags)
|
||||
var/image/ret = image(icon,icon_state)
|
||||
@@ -1285,11 +1282,10 @@ There are several things that need to be remembered:
|
||||
|
||||
var/tail_layer = GET_TAIL_LAYER
|
||||
|
||||
if(tail_style && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
if(species.tail && !(wear_suit && wear_suit.flags_inv & HIDETAIL))
|
||||
var/icon/tail_s = get_tail_icon()
|
||||
overlays_raw[tail_layer] = image(tail_s, icon_state = "[tail_style]_s")
|
||||
animate_tail_reset()
|
||||
update_tail_accessory(FALSE)
|
||||
overlays_raw[tail_layer] = image(tail_s, icon_state = "[species.tail]_s")
|
||||
animate_tail_reset(0)
|
||||
|
||||
if(update_icons)
|
||||
update_icon()
|
||||
@@ -1306,7 +1302,7 @@ There are several things that need to be remembered:
|
||||
tail_icon.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
|
||||
// The following will not work with animated tails.
|
||||
if(species.tail_hair)
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[tail_style]_[species.tail_hair]")
|
||||
var/icon/hair_icon = icon('icons/effects/species.dmi', "[species.tail]_[species.tail_hair]")
|
||||
hair_icon.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
|
||||
tail_icon.Blend(hair_icon, ICON_OVERLAY)
|
||||
SSicon_cache.tail_icon_cache[icon_key] = tail_icon
|
||||
@@ -1314,20 +1310,16 @@ There are several things that need to be remembered:
|
||||
return tail_icon
|
||||
|
||||
/mob/living/carbon/human/proc/set_tail_state(var/mob_state)
|
||||
if(!tail_style)
|
||||
if (!species.tail)
|
||||
return
|
||||
|
||||
var/tail_layer = GET_TAIL_LAYER
|
||||
|
||||
var/image/tail_overlay = overlays_raw[tail_layer]
|
||||
|
||||
var/obj/item/clothing/tail_accessory/TA = get_tail_accessory()
|
||||
if(TA && !(tail_style in TA.compatible_animated_tail))
|
||||
mob_state = "[tail_style]_static"
|
||||
|
||||
if(tail_overlay && species.tail_animation)
|
||||
if(tail_overlay.icon_state != mob_state)
|
||||
if (tail_overlay.icon_state != mob_state)
|
||||
tail_overlay.icon_state = mob_state
|
||||
update_tail_accessory()
|
||||
update_icon()
|
||||
return tail_overlay
|
||||
return null
|
||||
@@ -1335,7 +1327,7 @@ There are several things that need to be remembered:
|
||||
//Not really once, since BYOND can't do that.
|
||||
//Update this if the ability to flick() images or make looping animation start at the first frame is ever added.
|
||||
/mob/living/carbon/human/proc/animate_tail_once()
|
||||
var/mob_state = "[tail_style]_once"
|
||||
var/mob_state = "[species.tail]_once"
|
||||
|
||||
var/tail_layer = GET_TAIL_LAYER
|
||||
|
||||
@@ -1350,42 +1342,23 @@ There are several things that need to be remembered:
|
||||
/mob/living/carbon/human/proc/end_animate_tail_once(image/tail_overlay)
|
||||
//check that the animation hasn't changed in the meantime
|
||||
var/tail_layer = GET_TAIL_LAYER
|
||||
if(overlays_raw[tail_layer] == tail_overlay && tail_overlay.icon_state == "[tail_style]_once")
|
||||
if(overlays_raw[tail_layer] == tail_overlay && tail_overlay.icon_state == "[species.tail]_once")
|
||||
animate_tail_stop()
|
||||
update_tail_accessory()
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_start()
|
||||
set_tail_state("[tail_style]_slow")
|
||||
set_tail_state("[species.tail]_slow[rand(0,9)]")
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_fast()
|
||||
set_tail_state("[tail_style]_loop")
|
||||
set_tail_state("[species.tail]_loop[rand(0,9)]")
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_reset()
|
||||
if(stat != DEAD && !lying)
|
||||
set_tail_state("[tail_style]_idle")
|
||||
set_tail_state("[species.tail]_idle[rand(0,9)]")
|
||||
else
|
||||
set_tail_state("[tail_style]_static")
|
||||
set_tail_state("[species.tail]_static")
|
||||
|
||||
/mob/living/carbon/human/proc/animate_tail_stop(var/update_icons=1)
|
||||
set_tail_state("[tail_style]_static")
|
||||
|
||||
/mob/living/carbon/human/proc/update_tail_accessory(var/update_icons=1)
|
||||
overlays_raw[TAIL_NORTH_ACC_LAYER] = null
|
||||
overlays_raw[TAIL_SOUTH_ACC_LAYER] = null
|
||||
|
||||
var/obj/item/clothing/tail_accessory/TA = get_tail_accessory()
|
||||
if(!TA)
|
||||
return
|
||||
|
||||
var/image/tail_overlay = overlays_raw[GET_TAIL_LAYER]
|
||||
if(!tail_overlay)
|
||||
return
|
||||
|
||||
overlays_raw[GET_TAIL_ACC_LAYER] = TA.get_mob_overlay(src, TA.icon, "[tail_overlay.icon_state]_to", slot_tail_str)
|
||||
|
||||
if(update_icons)
|
||||
update_icon()
|
||||
|
||||
set_tail_state("[species.tail]_static")
|
||||
|
||||
//Adds a collar overlay above the helmet layer if the suit has one
|
||||
// Suit needs an identically named sprite in icons/mob/collar.dmi
|
||||
|
||||
Reference in New Issue
Block a user