Merge pull request #4187 from QuinnAggeler/Paradise-drask

New race, the Drask
This commit is contained in:
Fox McCloud
2016-04-29 19:40:45 -04:00
37 changed files with 237 additions and 25 deletions
+7
View File
@@ -183,6 +183,13 @@
else
src.DB_species_unlock("Plasmaman",100)
return
if("7")
if(karma <30)
to_chat(usr, "You do not have enough karma!")
return
else
src.DB_species_unlock("Drask",30)
return
if(href_list["KarmaRefund"])
var/type = href_list["KarmaRefundType"]
var/job = href_list["KarmaRefund"]
+3 -3
View File
@@ -251,7 +251,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
dat += "N2 Tank: <a href='?_src_=prefs;preference=speciesprefs;task=input'>[speciesprefs ? "Large N2 Tank" : "Specialized N2 Tank"]</a><br>"
dat += "Secondary Language:<br><a href='?_src_=prefs;preference=language;task=input'>[language]</a><br>"
dat += "Blood Type: <a href='?_src_=prefs;preference=b_type;task=input'>[b_type]</a><br>"
if(species == "Human")
if(species in list("Human", "Drask"))
dat += "Skin Tone: <a href='?_src_=prefs;preference=s_tone;task=input'>[-s_tone + 35]/220</a><br>"
// dat += "Skin pattern: <a href='byond://?src=\ref[user];preference=skin_style;task=input'>Adjust</a><br>"
@@ -1038,7 +1038,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
g_eyes = rand(0,255)
b_eyes = rand(0,255)
if("s_tone")
if(species == "Human")
if(species in list("Human", "Drask"))
s_tone = random_skin_tone()
if("s_color")
if(species in list("Unathi", "Tajaran", "Skrell", "Slime People", "Wyrn", "Vulpkanin", "Machine"))
@@ -1395,7 +1395,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
b_eyes = hex2num(copytext(new_eyes, 6, 8))
if("s_tone")
if(species != "Human")
if(species != "Human" && species != "Drask")
return
var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference") as num|null
if(new_s_tone)
+5 -3
View File
@@ -60,7 +60,7 @@
//Set species_restricted list
switch(target_species)
if("Human", "Skrell") //humanoid bodytypes
species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn")
species_restricted = list("exclude","Unathi","Tajaran","Diona","Vox","Wryn","Drask")
else
species_restricted = list(target_species)
@@ -184,7 +184,8 @@ BLIND // can't see anything
species_restricted = list("exclude","Unathi","Tajaran","Wryn")
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/gloves.dmi'
"Vox" = 'icons/mob/species/vox/gloves.dmi',
"Drask" = 'icons/mob/species/drask/gloves.dmi'
)
/obj/item/clothing/gloves/attackby(obj/item/weapon/W, mob/user, params)
@@ -562,7 +563,8 @@ BLIND // can't see anything
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/uniform.dmi'
"Vox" = 'icons/mob/species/vox/uniform.dmi',
"Drask" = 'icons/mob/species/drask/uniform.dmi'
)
var/has_sensor = 1//For the crew computer 2 = unable to change mode
var/sensor_mode = 0
+14 -7
View File
@@ -54,7 +54,8 @@
species_fit = list("Vox")
see_darkness = 0 //don't render darkness while wearing mesons
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/meson/night
@@ -130,7 +131,8 @@
see_darkness = 0
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/eyepatch
@@ -146,7 +148,8 @@
item_state = "headset" // lol
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/material
@@ -158,7 +161,8 @@
vision_flags = SEE_OBJS
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/material/cyber
@@ -204,7 +208,8 @@
prescription_upgradable = 1
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
@@ -282,7 +287,8 @@
tint = 1
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/sunglasses/lasers
@@ -306,7 +312,8 @@
tint = 2
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/welding/attack_self()
+2 -1
View File
@@ -103,7 +103,8 @@
prescription_upgradable = 1
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
"Vox" = 'icons/mob/species/vox/eyes.dmi',
"Drask" = 'icons/mob/species/drask/eyes.dmi'
)
/obj/item/clothing/glasses/hud/security/sunglasses/prescription
+6 -3
View File
@@ -13,7 +13,8 @@
strip_delay = 60
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/helmet.dmi'
"Vox" = 'icons/mob/species/vox/helmet.dmi',
"Drask" = 'icons/mob/species/drask/helmet.dmi'
)
/obj/item/clothing/head/helmet/attack_self(mob/user)
@@ -71,7 +72,8 @@
armor = list(melee = 25, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0)
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/helmet.dmi'
"Vox" = 'icons/mob/species/vox/helmet.dmi',
"Drask" = 'icons/mob/species/drask/helmet.dmi'
)
/obj/item/clothing/head/helmet/riot
@@ -118,7 +120,8 @@
strip_delay = 80
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/head.dmi'
"Vox" = 'icons/mob/species/vox/head.dmi',
"Drask" = 'icons/mob/species/drask/helmet.dmi'
)
/obj/item/clothing/head/helmet/swat/syndicate
+4 -2
View File
@@ -14,7 +14,8 @@
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
"Drask" = 'icons/mob/species/drask/mask.dmi'
)
/obj/item/clothing/mask/balaclava/attack_self(var/mob/user)
@@ -33,7 +34,8 @@
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
"Drask" = 'icons/mob/species/drask/mask.dmi'
)
/obj/item/clothing/mask/luchador/tecnicos
+2 -1
View File
@@ -15,7 +15,8 @@
"Vox Armalis" = 'icons/mob/species/armalis/mask.dmi',
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
"Drask" = 'icons/mob/species/drask/mask.dmi'
)
/obj/item/clothing/mask/breath/attack_self(var/mob/user)
+2 -1
View File
@@ -13,7 +13,8 @@
"Vox" = 'icons/mob/species/vox/mask.dmi',
"Unathi" = 'icons/mob/species/unathi/mask.dmi',
"Tajaran" = 'icons/mob/species/tajaran/mask.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi'
"Vulpkanin" = 'icons/mob/species/vulpkanin/mask.dmi',
"Drask" = 'icons/mob/species/drask/mask.dmi'
)
// **** Welding gas mask ****
@@ -10,7 +10,8 @@
species_restricted = list("exclude", "Diona", "Wryn")
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/helmet.dmi'
"Vox" = 'icons/mob/species/vox/helmet.dmi',
"Drask" = 'icons/mob/species/drask/helmet.dmi'
)
/obj/item/clothing/head/helmet/space/capspace/equipped(var/mob/living/carbon/human/user, var/slot)
if (ishuman(user) && user.species.name == "Vox")
@@ -30,7 +31,8 @@
species_restricted = list("exclude", "Diona", "Wryn")
species_fit = list("Vox")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/suit.dmi'
"Vox" = 'icons/mob/species/vox/suit.dmi',
"Drask" = 'icons/mob/species/drask/suit.dmi'
)
+2
View File
@@ -20,6 +20,7 @@
"Skrell" = 'icons/mob/species/skrell/helmet.dmi',
"Vox" = 'icons/mob/species/vox/helmet.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi',
"Drask" = 'icons/mob/species/drask/helmet.dmi'
)
sprite_sheets_obj = list(
"Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi',
@@ -66,6 +67,7 @@
"Skrell" = 'icons/mob/species/skrell/suit.dmi',
"Vox" = 'icons/mob/species/vox/suit.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi',
"Drask" = 'icons/mob/species/drask/suit.dmi'
)
sprite_sheets_obj = list(
"Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi',
+1
View File
@@ -198,6 +198,7 @@ You've gained <b>[totalkarma]</b> total karma in your time here.<br>"}
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=1'>Unlock Machine People -- 15KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=2'>Unlock Kidan -- 30KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=3'>Unlock Grey -- 30KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=7'>Unlock Drask -- 30KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=4'>Unlock Vox -- 45KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=5'>Unlock Slime People -- 45KP</a><br>
<a href='?src=\ref[src];karmashop=shop;KarmaBuy2=6'>Unlock Plasmaman -- 100KP</a><br>
+17
View File
@@ -276,6 +276,23 @@
flags = RESTRICTED | WHITELISTED
syllables = list("blob","plop","pop","bop","boop")
/datum/language/drask
name = "Orluum"
desc = "The droning, vibrous language of the Drask. It sounds somewhat like whalesong"
speech_verb = "drones"
ask_verb = "hums"
exclaim_verb = "rumbles"
colour = "drask"
key = "%"
flags = RESTRICTED | WHITELISTED
syllables = list("hoorb","vrrm","ooorm","urrrum","ooum","ee","ffm","hhh","mn","ongg")
/datum/language/drask/get_random_name()
var/new_name = "[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
new_name += "-[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
new_name += "-[pick(list("Hoorm","Viisk","Saar","Mnoo","Oumn","Fmong","Gnii","Vrrm","Oorm","Dromnn","Ssooumn","Ovv", "Hoorb","Vaar","Gaar","Goom","Ruum","Rumum"))]"
return new_name
/datum/language/common
name = "Galactic Common"
desc = "The common galactic tongue."
@@ -144,6 +144,10 @@
h_style = "Nucleation Crystals"
..(new_loc, "Nucleation")
/mob/living/carbon/human/drask/New(var/new_loc)
h_style = "Bald"
..(new_loc, "Drask")
/mob/living/carbon/human/monkey/New(var/new_loc)
..(new_loc, "Monkey")
@@ -0,0 +1,99 @@
/datum/species/drask
name = "Drask"
name_plural = "Drask"
icobase = 'icons/mob/human_races/r_drask.dmi'
deform = 'icons/mob/human_races/r_drask.dmi'
path = /mob/living/carbon/human/drask
default_language = "Galactic Common"
language = "Orluum"
unarmed_type = /datum/unarmed_attack/punch
eyes = "drask_eyes_s"
darksight = 5
speech_sounds = list('sound/voice/DraskTalk.ogg')
speech_chance = 20
male_scream_sound = 'sound/voice/DraskTalk2.ogg'
female_scream_sound = 'sound/voice/DraskTalk2.ogg'
burn_mod = 2
//exotic_blood = "cryoxadone"
body_temperature = 273
blurb = "Hailing from Hoorlm, planet outside what is usually considered a habitable \
orbit, the Drask evolved to live in extreme cold. Their strange bodies seem \
to operate better the colder their surroundings are, and can regenerate rapidly \
when breathing supercooled gas. <br/><br/> On their homeworld, the Drask live long lives \
in their labyrinthine settlements, carved out beneath Hoorlm's icy surface, where the air \
is of breathable density."
suicide_messages = list(
"is self-warming with friction!",
"is jamming fingers through their big eyes!",
"is sucking in warm air!",
"is holding their breath!")
flags = IS_WHITELISTED | HAS_LIPS
clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT
bodyflags = FEET_CLAWS | HAS_SKIN_TONE
dietflags = DIET_OMNI
cold_level_1 = -1 //Default 260 - Lower is better
cold_level_2 = -1 //Default 200
cold_level_3 = -1 //Default 120
cold_env_multiplier = -1
heat_level_1 = 300 //Default 360 - Higher is better
heat_level_2 = 340 //Default 400
heat_level_3 = 400 //Default 460
heat_level_3_breathe = 600 //Default 1000
hot_env_multiplier = 2
flesh_color = "#a3d4eb"
reagent_tag = PROCESS_ORG
base_color = "#a3d4eb"
blood_color = "#a3d4eb"
has_organ = list(
"heart" = /obj/item/organ/internal/heart/drask,
"lungs" = /obj/item/organ/internal/lungs/drask,
"metabolic strainer" = /obj/item/organ/internal/liver/drask,
"eyes" = /obj/item/organ/internal/eyes/drask,
"brain" = /obj/item/organ/internal/brain/drask
)
/datum/species/drask/handle_temperature(datum/gas_mixture/breath, var/mob/living/carbon/human/H)
if( abs(310.15 - breath.temperature) > 50)
if(H.status_flags & GODMODE) return 1 //godmode
if(breath.temperature < 260)
if(prob(20))
to_chat(H, "<span class='notice'> You feel an invigorating coldness in your lungs!</span>")
if(breath.temperature > heat_level_1)
if(prob(20))
to_chat(H, "<span class='warning'>You feel your face burning and a searing heat in your lungs!</span>")
switch(breath.temperature)
if(-INFINITY to 60)
H.adjustFireLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_3*0.5) //3 points healed, applied every 4 ticks
H.adjustBruteLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_3)
H.throw_alert("temp", /obj/screen/alert/cold/drask, 3)
if(61 to 200)
H.adjustFireLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_2*0.5) //1.5 healed every 4 ticks
H.adjustBruteLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_2)
H.throw_alert("temp", /obj/screen/alert/cold/drask, 2)
if(201 to 260)
H.adjustFireLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_1*0.5) //0.5 healed every 4 ticks
H.adjustBruteLoss(cold_env_multiplier*COLD_GAS_DAMAGE_LEVEL_1)
H.throw_alert("temp", /obj/screen/alert/cold/drask, 1)
if(heat_level_1 to heat_level_2)
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_1, BURN, "head", used_weapon = "Excessive Heat")
if(heat_level_2 to heat_level_3_breathe)
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_2, BURN, "head", used_weapon = "Excessive Heat")
if(heat_level_3_breathe to INFINITY)
H.apply_damage(hot_env_multiplier*HEAT_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Heat")
+1
View File
@@ -168,6 +168,7 @@ var/list/ai_verbs_default = list(
add_language("Canilunzt", 0)
add_language("Skrellian", 0)
add_language("Vox-pidgin", 0)
add_language("Orluum", 0)
add_language("Rootspeak", 0)
add_language("Trinary", 1)
add_language("Chittin", 0)
@@ -627,6 +627,7 @@
user.add_language("Rootspeak")
user.add_language("Chittin")
user.add_language("Bubblish")
user.add_language("Orluum")
user.add_language("Clownish")
else
user.remove_language("Sinta'unathi")
@@ -637,6 +638,7 @@
user.remove_language("Rootspeak")
user.remove_language("Chittin")
user.remove_language("Bubblish")
user.remove_language("Orluum")
user.remove_language("Clownish")
is_active(mob/living/silicon/pai/user)
@@ -93,6 +93,7 @@
R.add_language("Trinary", 1)
R.add_language("Chittin", 0)
R.add_language("Bubblish", 0)
R.add_language("Orluum", 0)
R.add_language("Clownish",0)
/obj/item/weapon/robot_module/proc/add_subsystems(var/mob/living/silicon/robot/R)
@@ -8,7 +8,7 @@
underwear = random_underwear(gender, species)
undershirt = random_undershirt(gender, species)
socks = random_socks(gender, species)
if(species == "Human")
if(species in list("Human", "Drask"))
s_tone = random_skin_tone()
h_style = random_hair_style(gender, species)
f_style = random_facial_hair_style(gender, species)
+2
View File
@@ -254,6 +254,8 @@
temp_img = icon('icons/obj/butts.dmi', "machine")
if("Plasmaman")
temp_img = icon('icons/obj/butts.dmi', "plasma")
if("Drask")
temp_img = icon('icons/obj/butts.dmi', "drask")
else
temp_img = icon('icons/obj/butts.dmi', "human")
else if(istype(ass,/mob/living/silicon/robot/drone))
@@ -0,0 +1,50 @@
//DRASK ORGAN
/obj/item/organ/internal/drask
name = "drask organ"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "innards"
desc = "A greenish, slightly translucent organ. It is extremely cold."
/obj/item/organ/internal/heart/drask
name = "drask heart"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "heart-on"
dead_icon = "heart-off"
organ_tag = "heart"
parent_organ = "head"
slot = "heart"
/obj/item/organ/internal/lungs/drask
name = "lungs"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "lungs"
gender = PLURAL
organ_tag = "lungs"
parent_organ = "chest"
slot = "lungs"
/obj/item/organ/internal/liver/drask
name = "metabolic strainer"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "kidneys"
gender = PLURAL
organ_tag = "kidneys"
parent_organ = "groin"
slot = "kidneys"
/obj/item/organ/internal/brain/drask
name = "brain"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "brain2"
organ_tag = "brain"
slot = "brain"
/obj/item/organ/internal/eyes/drask
name = "eyes"
icon = 'icons/obj/surgery_drask.dmi'
icon_state = "eyes"
gender = PLURAL
organ_tag = "eyes"
parent_organ = "head"
slot = "eyes"
desc = "Drask eyes. They look even stranger disembodied"