Skip to content

Commit 0332368

Browse files
committed
Drask files
Signed-off-by: HugoLuman <[email protected]>
1 parent d68f93c commit 0332368

File tree

27 files changed

+227
-21
lines changed

27 files changed

+227
-21
lines changed

code/modules/client/preferences.dm

+1-1
Original file line numberDiff line numberDiff line change
@@ -1065,7 +1065,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
10651065
age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
10661066
if("species")
10671067

1068-
var/list/new_species = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin")
1068+
var/list/new_species = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin", "Drask")
10691069
var/prev_species = species
10701070
// var/whitelisted = 0
10711071

code/modules/clothing/clothing.dm

+5-3
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
//Set species_restricted list
6161
switch(target_species)
6262
if("Human", "Skrell") //humanoid bodytypes
63-
species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn")
63+
species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn","Drask")
6464
else
6565
species_restricted = list(target_species)
6666

@@ -184,7 +184,8 @@ BLIND // can't see anything
184184
species_restricted = list("exclude","Unathi","Tajaran","Wryn")
185185
species_fit = list("Vox")
186186
sprite_sheets = list(
187-
"Vox" = 'icons/mob/species/vox/gloves.dmi'
187+
"Vox" = 'icons/mob/species/vox/gloves.dmi',
188+
"Drask" = 'icons/mob/species/drask/gloves.dmi'
188189
)
189190

190191
/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user, params)
@@ -562,7 +563,8 @@ BLIND // can't see anything
562563
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
563564
species_fit = list("Vox")
564565
sprite_sheets = list(
565-
"Vox" = 'icons/mob/species/vox/uniform.dmi'
566+
"Vox" = 'icons/mob/species/vox/uniform.dmi',
567+
"Drask" = 'icons/mob/species/drask/uniform.dmi'
566568
)
567569
var/has_sensor = 1//For the crew computer 2 = unable to change mode
568570
var/sensor_mode = 0

code/modules/clothing/glasses/glasses.dm

+14-7
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,8 @@
5454
species_fit = list("Vox")
5555
see_darkness = 0 //don't render darkness while wearing mesons
5656
sprite_sheets = list(
57-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
57+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
58+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
5859
)
5960

6061
/obj/item/clothing/glasses/meson/night
@@ -130,7 +131,8 @@
130131
see_darkness = 0
131132
species_fit = list("Vox")
132133
sprite_sheets = list(
133-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
134+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
135+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
134136
)
135137

136138
/obj/item/clothing/glasses/eyepatch
@@ -146,7 +148,8 @@
146148
item_state = "headset" // lol
147149
species_fit = list("Vox")
148150
sprite_sheets = list(
149-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
151+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
152+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
150153
)
151154

152155
/obj/item/clothing/glasses/material
@@ -158,7 +161,8 @@
158161
vision_flags = SEE_OBJS
159162
species_fit = list("Vox")
160163
sprite_sheets = list(
161-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
164+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
165+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
162166
)
163167

164168
/obj/item/clothing/glasses/material/cyber
@@ -204,7 +208,8 @@
204208
prescription_upgradable = 1
205209
species_fit = list("Vox")
206210
sprite_sheets = list(
207-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
211+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
212+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
208213
)
209214

210215

@@ -282,7 +287,8 @@
282287
tint = 1
283288
species_fit = list("Vox")
284289
sprite_sheets = list(
285-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
290+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
291+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
286292
)
287293

288294
/obj/item/clothing/glasses/sunglasses/lasers
@@ -306,7 +312,8 @@
306312
tint = 2
307313
species_fit = list("Vox")
308314
sprite_sheets = list(
309-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
315+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
316+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
310317
)
311318

312319
/obj/item/clothing/glasses/welding/attack_self()

code/modules/clothing/glasses/hud.dm

+2-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@
9595
prescription_upgradable = 1
9696
species_fit = list("Vox")
9797
sprite_sheets = list(
98-
"Vox" = 'icons/mob/species/vox/eyes.dmi'
98+
"Vox" = 'icons/mob/species/vox/eyes.dmi',
99+
"Drask" = 'icons/mob/species/drask/eyes.dmi'
99100
)
100101

101102
/obj/item/clothing/glasses/hud/security/sunglasses/prescription

code/modules/clothing/head/helmet.dm

+6-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
strip_delay = 60
1414
species_fit = list("Vox")
1515
sprite_sheets = list(
16-
"Vox" = 'icons/mob/species/vox/helmet.dmi'
16+
"Vox" = 'icons/mob/species/vox/helmet.dmi',
17+
"Drask" = 'icons/mob/species/drask/helmet.dmi'
1718
)
1819

1920
/obj/item/clothing/head/helmet/attack_self(mob/user)
@@ -71,7 +72,8 @@
7172
armor = list(melee = 25, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
7273
species_fit = list("Vox")
7374
sprite_sheets = list(
74-
"Vox" = 'icons/mob/species/vox/helmet.dmi'
75+
"Vox" = 'icons/mob/species/vox/helmet.dmi',
76+
"Drask" = 'icons/mob/species/drask/helmet.dmi'
7577
)
7678

7779
/obj/item/clothing/head/helmet/riot
@@ -118,7 +120,8 @@
118120
strip_delay = 80
119121
species_fit = list("Vox")
120122
sprite_sheets = list(
121-
"Vox" = 'icons/mob/species/vox/head.dmi'
123+
"Vox" = 'icons/mob/species/vox/head.dmi',
124+
"Drask" = 'icons/mob/species/drask/helmet.dmi'
122125
)
123126

124127
/obj/item/clothing/head/helmet/swat/syndicate

code/modules/clothing/masks/boxing.dm

+4-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"Vox" = 'icons/mob/species/vox/mask.dmi',
1515
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
1616
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
17-
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
17+
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
18+
"Drask" = 'icons/mob/species/drask/mask.dmi'
1819
)
1920

2021
/obj/item/clothing/mask/balaclava/attack_self(var/mob/user)
@@ -33,7 +34,8 @@
3334
"Vox" = 'icons/mob/species/vox/mask.dmi',
3435
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
3536
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
36-
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
37+
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
38+
"Drask" = 'icons/mob/species/drask/mask.dmi'
3739
)
3840

3941
/obj/item/clothing/mask/luchador/tecnicos

code/modules/clothing/masks/breath.dm

+2-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
"Vox Armalis" = 'icons/mob/species/armalis/mask.dmi',
1616
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
1717
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
18-
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
18+
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
19+
"Drask" = 'icons/mob/species/drask/mask.dmi'
1920
)
2021

2122
/obj/item/clothing/mask/breath/attack_self(var/mob/user)

code/modules/clothing/masks/gasmask.dm

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313
"Vox" = 'icons/mob/species/vox/mask.dmi',
1414
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
1515
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
16-
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
16+
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
17+
"Drask" = 'icons/mob/species/drask/mask.dmi'
1718
)
1819

1920
// **** Welding gas mask ****

code/modules/clothing/spacesuits/miscellaneous.dm

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@
1010
species_restricted = list("exclude", "Diona", "Wryn")
1111
species_fit = list("Vox")
1212
sprite_sheets = list(
13-
"Vox" = 'icons/mob/species/vox/helmet.dmi'
13+
"Vox" = 'icons/mob/species/vox/helmet.dmi',
14+
"Drask" = 'icons/mob/species/drask/helmet.dmi'
1415
)
1516
/obj/item/clothing/head/helmet/space/capspace/equipped(var/mob/living/carbon/human/user, var/slot)
1617
if (ishuman(user) && user.species.name == "Vox")
@@ -30,7 +31,8 @@
3031
species_restricted = list("exclude", "Diona", "Wryn")
3132
species_fit = list("Vox")
3233
sprite_sheets = list(
33-
"Vox" = 'icons/mob/species/vox/suit.dmi'
34+
"Vox" = 'icons/mob/species/vox/suit.dmi',
35+
"Drask" = 'icons/mob/species/drask/suit.dmi'
3436
)
3537

3638

code/modules/clothing/spacesuits/rig.dm

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"Skrell" = 'icons/mob/species/skrell/helmet.dmi',
2121
"Vox" = 'icons/mob/species/vox/helmet.dmi',
2222
"Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi',
23+
"Drask" = 'icons/mob/species/drask/helmet.dmi'
2324
)
2425
sprite_sheets_obj = list(
2526
"Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi',
@@ -66,6 +67,7 @@
6667
"Skrell" = 'icons/mob/species/skrell/suit.dmi',
6768
"Vox" = 'icons/mob/species/vox/suit.dmi',
6869
"Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi',
70+
"Drask" = 'icons/mob/species/drask/suit.dmi'
6971
)
7072
sprite_sheets_obj = list(
7173
"Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi',

code/modules/mob/language.dm

+17
Original file line numberDiff line numberDiff line change
@@ -276,6 +276,23 @@
276276
flags = RESTRICTED | WHITELISTED
277277
syllables = list("blob","plop","pop","bop","boop")
278278

279+
/datum/language/drask
280+
name = "Orluum"
281+
desc = "The droning, vibrous language of the Drask. It sounds somewhat like whalesong"
282+
speech_verb = "drones"
283+
ask_verb = "hums"
284+
exclaim_verb = "rumbles"
285+
colour = "slime"
286+
key = "%"
287+
flags = RESTRICTED
288+
syllables = list("hoorb","vrrm","ooorm","urrrum","ooum","ee","ffm","hhh","mn","ongg")
289+
290+
/datum/language/drask/get_random_name()
291+
var/new_name = "[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
292+
new_name += "-[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
293+
new_name += "-[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
294+
return new_name
295+
279296
/datum/language/common
280297
name = "Galactic Common"
281298
desc = "The common galactic tongue."

code/modules/mob/living/carbon/human/human.dm

+4
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,10 @@
139139
h_style = "Nucleation Crystals"
140140
..(new_loc, "Nucleation")
141141

142+
/mob/living/carbon/human/drask/New(var/new_loc)
143+
h_style = "Bald"
144+
..(new_loc, "Drask")
145+
142146
/mob/living/carbon/human/monkey/New(var/new_loc)
143147
..(new_loc, "Monkey")
144148

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
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

Comments
 (0)