1
+ / datum / species/ drask
2
+ name = " Drask"
3
+ name_plural = " Drask"
4
+ icobase = ' icons/mob/human_races/r_drask.dmi'
5
+ deform = ' icons/mob/human_races/r_drask.dmi'
6
+ path = / mob / living/ carbon/ human/ drask
7
+ default_language = " Galactic Common"
8
+ language = " Orluum"
9
+ unarmed_type = / datum / unarmed_attack/ punch
10
+ eyes = " drask_eyes_s"
11
+ darksight = 5
12
+
13
+ speech_sounds = list (' sound/voice/DraskTalk.ogg' )
14
+ speech_chance = 20
15
+ male_scream_sound = ' sound/voice/DraskTalk2.ogg'
16
+ female_scream_sound = ' sound/voice/DraskTalk2.ogg'
17
+
18
+ burn_mod = 4
19
+ // exotic_blood = "cryoxadone"
20
+ body_temperature = 273
21
+ can_revive_by_healing // Doesn't seem to do much for non-robots, still needs a defib
22
+
23
+ blurb = " Hailing from Hoorlm, planet outside what is usually considered a habitable \
24
+ orbit, the Drask evolved to live in extreme cold. Their strange bodies seem \
25
+ to operate better the colder their surroundings are, and can regenerate rapidly \
26
+ when breathing supercooled gas. <br/><br/> On their homeworld, the Drask live long lives \
27
+ in their labyrinthine settlements, carved out beneath Hoorlm's icy surface, where the air \
28
+ is of breathable density."
29
+
30
+ flags = HAS_LIPS
31
+ clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT
32
+ bodyflags = FEET_CLAWS
33
+ dietflags = DIET_OMNI
34
+
35
+ cold_level_1 = - 1 // Default 260 - Lower is better
36
+ cold_level_2 = - 1 // Default 200
37
+ cold_level_3 = - 1 // Default 120
38
+ cold_env_multiplier = - 1
39
+
40
+ heat_level_1 = 300 // Default 360 - Higher is better
41
+ heat_level_2 = 340 // Default 400
42
+ heat_level_3 = 400 // Default 460
43
+ heat_level_3_breathe = 600 // Default 1000
44
+
45
+ flesh_color = " #a3d4eb"
46
+ reagent_tag = PROCESS_ORG
47
+ base_color = " #a3d4eb"
48
+ blood_color = " #a3d4eb"
49
+
50
+ has_organ = list (
51
+ " heart" = / obj / item/ organ/ internal/ heart/ drask,
52
+ " lungs" = / obj / item/ organ/ internal/ lungs/ drask,
53
+ " metabolic strainer" = / obj / item/ organ/ internal/ liver/ drask,
54
+ " eyes" = / obj / item/ organ/ internal/ eyes/ drask,
55
+ " brain" = / obj / item/ organ/ internal/ brain/ drask
56
+ )
57
+
58
+
59
+ / datum / species/ drask/ handle_temperature( datum / gas_mixture/ breath, var /mob /living/carbon/human/H ) // called by human/life, handles temperatures
60
+ if ( (abs(310.15 - breath. temperature) > 50 ) && ! (RESIST_HEAT in H. mutations)) // Hot air hurts :(
61
+ if (H. status_flags & GODMODE ) return 1 // godmode
62
+ if (breath. temperature < 260 )
63
+ if (prob(20 ))
64
+ H. to_chat(" <span class='notice'> You feel an invigorating coldness in your lungs!</span>" )
65
+ else if (breath. temperature > heat_level_1)
66
+ if (prob(20 ))
67
+ H. to_chat(" <span class='warning'>You feel your face burning and a searing heat in your lungs!</span>" )
68
+
69
+
70
+
71
+ switch (breath. temperature)
72
+ if (- INFINITY to 120 )
73
+ H. adjustFireLoss(cold_env_multiplier* COLD_GAS_DAMAGE_LEVEL_3 )
74
+ H. adjustBruteLoss(cold_env_multiplier* 10 )
75
+ H. fire_alert = max(H. fire_alert, 1 ) // To alert that their breath is cold enough for healing. Does not seem to affect cold movement slowdown
76
+
77
+ if (121 to 200 )
78
+ H. adjustFireLoss(cold_env_multiplier* COLD_GAS_DAMAGE_LEVEL_2 )
79
+ H. adjustBruteLoss(cold_env_multiplier* 6 )
80
+ H. fire_alert = max(H. fire_alert, 1 )
81
+
82
+ if (201 to 260 )
83
+ H. adjustFireLoss(cold_env_multiplier* COLD_GAS_DAMAGE_LEVEL_1 )
84
+ H. adjustBruteLoss(cold_env_multiplier* 3 )
85
+ H. fire_alert = max(H. fire_alert, 1 )
86
+
87
+ if (heat_level_1 to heat_level_2)
88
+ H. apply_damage(hot_env_multiplier* HEAT_GAS_DAMAGE_LEVEL_1 , BURN , " head" , used_weapon = " Excessive Heat" )
89
+ H. fire_alert = max(H. fire_alert, 2 )
90
+
91
+ if (heat_level_2 to heat_level_3_breathe)
92
+ H. apply_damage(hot_env_multiplier* HEAT_GAS_DAMAGE_LEVEL_2 , BURN , " head" , used_weapon = " Excessive Heat" )
93
+ H. fire_alert = max(H. fire_alert, 2 )
94
+
95
+ if (heat_level_3_breathe to INFINITY )
96
+ H. apply_damage(hot_env_multiplier* HEAT_GAS_DAMAGE_LEVEL_3 , BURN , " head" , used_weapon = " Excessive Heat" )
97
+ H. fire_alert = max(H. fire_alert, 2 )
0 commit comments