Merge pull request #3609 from Zuhayr/dev

Stuff from dev-freeze.
This commit is contained in:
Mloc
2013-08-28 10:40:58 -07:00
21 changed files with 185 additions and 87 deletions
@@ -517,6 +517,7 @@ client/proc/one_click_antag()
new_vox.mind_initialize()
new_vox.mind.assigned_role = "MODE"
new_vox.mind.special_role = "Vox Raider"
new_vox.mutations |= NOCLONE //Stops the station crew from messing around with their DNA.
ticker.mode.traitors += new_vox.mind
new_vox.equip_vox_raider()
+10 -4
View File
@@ -822,7 +822,9 @@ datum/preferences
var/list/valid_hairstyles = list()
for(var/hairstyle in hair_styles_list)
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
if(gender != S.gender)
if(gender == MALE && S.gender == FEMALE)
continue
if(gender == FEMALE && S.gender == MALE)
continue
if( !(species in S.species_allowed))
continue
@@ -838,7 +840,9 @@ datum/preferences
var/list/valid_facialhairstyles = list()
for(var/facialhairstyle in facial_hair_styles_list)
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
if(gender != S.gender)
if(gender == MALE && S.gender == FEMALE)
continue
if(gender == FEMALE && S.gender == MALE)
continue
if( !(species in S.species_allowed))
continue
@@ -875,7 +879,7 @@ datum/preferences
for(var/L in all_languages)
var/datum/language/lang = all_languages[L]
if(!(lang.flags & RESTRICTED))
new_languages += lang
new_languages += lang.name
language = input("Please select a secondary language", "Character Generation", null) in new_languages
@@ -921,7 +925,9 @@ datum/preferences
var/list/valid_facialhairstyles = list()
for(var/facialhairstyle in facial_hair_styles_list)
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
if(gender != S.gender)
if(gender == MALE && S.gender == FEMALE)
continue
if(gender == FEMALE && S.gender == MALE)
continue
if( !(species in S.species_allowed))
continue
+30 -1
View File
@@ -1,6 +1,32 @@
/obj/item/clothing
name = "clothing"
var/list/species_restricted = null //Only these species can wear this kit.
//BS12: Species-restricted clothing check.
/obj/item/clothing/mob_can_equip(M as mob, slot)
if(species_restricted && istype(M,/mob/living/carbon/human))
var/wearable = null
var/exclusive = null
var/mob/living/carbon/human/H = M
if("exclude" in species_restricted)
exclusive = 1
if(H.species)
if(exclusive)
if(!(H.species.name in species_restricted))
wearable = 1
else
if(H.species.name in species_restricted)
wearable = 1
if(!wearable)
M << "\red Your species cannot wear [src]."
return 0
return ..()
//Ears: currently only used for headsets and earmuffs
/obj/item/clothing/ears
@@ -98,6 +124,7 @@ BLIND // can't see anything
body_parts_covered = HANDS
slot_flags = SLOT_GLOVES
attack_verb = list("challenged")
species_restricted = list("exclude","Unathi","Tajara")
/obj/item/clothing/gloves/examine()
set src in usr
@@ -142,6 +169,7 @@ BLIND // can't see anything
permeability_coefficient = 0.50
slowdown = SHOES_SLOWDOWN
species_restricted = list("exclude","Unathi","Tajara")
//Suit
/obj/item/clothing/suit
@@ -170,6 +198,7 @@ BLIND // can't see anything
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona","Vox")
/obj/item/clothing/suit/space
name = "Space suit"
@@ -188,7 +217,7 @@ BLIND // can't see anything
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECITON_TEMPERATURE
siemens_coefficient = 0.9
species_restricted = list("exclude","Diona","Vox")
//Under clothing
/obj/item/clothing/under
+7 -1
View File
@@ -85,4 +85,10 @@
name = "security cap"
desc = "It's baseball hat in tasteful red colour."
icon_state = "secsoft"
color = "sec"
color = "sec"
/obj/item/clothing/head/soft/sec/corp
name = "corporate security cap"
desc = "It's baseball hat in corpotate colours."
icon_state = "corpsoft"
color = "corp"
@@ -8,6 +8,7 @@
origin_tech = "syndicate=3"
var/list/clothing_choices = list()
siemens_coefficient = 0.8
species_restricted = null
/obj/item/clothing/shoes/mime
name = "mime shoes"
@@ -48,11 +49,13 @@
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = null
/obj/item/clothing/shoes/sandal
desc = "A pair of rather plain, wooden sandals."
name = "sandals"
icon_state = "wizard"
species_restricted = null
/obj/item/clothing/shoes/sandal/marisa
desc = "A pair of magic, black shoes."
@@ -66,6 +69,7 @@
permeability_coefficient = 0.05
flags = NOSLIP
slowdown = SHOES_SLOWDOWN+1
species_restricted = null
/obj/item/clothing/shoes/clown_shoes
desc = "The prankster's standard-issue clowning shoes. Damn they're huge!"
@@ -75,6 +79,7 @@
slowdown = SHOES_SLOWDOWN+1
color = "clown"
var/footstep = 1 //used for squeeks whilst walking
species_restricted = null
/obj/item/clothing/shoes/jackboots
name = "jackboots"
@@ -96,6 +101,7 @@
min_cold_protection_temperature = SHOE_MIN_COLD_PROTECITON_TEMPERATURE
heat_protection = FEET
max_heat_protection_temperature = SHOE_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = null
/obj/item/clothing/shoes/cyborg
name = "cyborg boots"
@@ -107,6 +113,7 @@
desc = "Fluffy!"
icon_state = "slippers"
item_state = "slippers"
species_restricted = null
/obj/item/clothing/shoes/slippers_worn
name = "worn bunny slippers"
+85 -49
View File
@@ -1,20 +1,64 @@
// Tajaran rigs.
/obj/item/clothing/head/helmet/space/rig/tajara
desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding. This one doesn't look like it was made for humans."
icon_state = "rig0-taj-helmet"
item_state = "rig0-taj-helmet"
color = "taj-helmet"
species_restricted = list("Tajaran")
/obj/item/clothing/suit/space/rig/tajara
desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding. This one doesn't look like it was made for humans."
icon_state = "rig-taj"
item_state = "rig-taj"
color = "rig-taj"
species_restricted = list("Tajaran")
//Skrell space gear. Sleek like a wetsuit.
/obj/item/clothing/head/helmet/space/skrell
name = "Skrellian helmet"
desc = "Smoothly contoured and polished to a shine. Still looks like a fishbowl."
armor = list(melee = 20, bullet = 20, laser = 50,energy = 50, bomb = 50, bio = 100, rad = 100)
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Skrell","Human")
/obj/item/clothing/head/helmet/space/skrell/white
icon_state = "skrell_helmet_white"
item_state = "skrell_helmet_white"
color = "skrell_helmet_white"
/obj/item/clothing/head/helmet/space/skrell/black
icon_state = "skrell_suit_black"
item_state = "skrell_suit_black"
color = "skrell_suit_black"
/obj/item/clothing/suit/space/skrell
name = "Skrellian hardsuit"
desc = "Seems like a wetsuit with reinforced plating seamlessly attached to it. Very chic."
armor = list(melee = 20, bullet = 20, laser = 50,energy = 50, bomb = 50, bio = 100, rad = 100)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Skrell","Human")
/obj/item/clothing/suit/space/skrell/white
icon_state = "skrell_suit_white"
item_state = "skrell_suit_white"
color = "skrell_suit_white"
/obj/item/clothing/suit/space/skrell/black
icon_state = "skrell_suit_black"
item_state = "skrell_suit_black"
color = "skrell_suit_black"
//Unathi space gear. Huge and restrictive.
/obj/item/clothing/head/helmet/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
var/up = 0 //So Unathi helmets play nicely with the weldervision check.
mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/U = M
if(U.species.name != "Unathi")
U << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
/obj/item/clothing/suit/space/unathi/mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/U = M
if(U.species.name != "Unathi")
U << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
species_restricted = list("Unathi")
/obj/item/clothing/head/helmet/space/unathi/helmet_cheap
name = "NT breacher helmet"
@@ -22,9 +66,13 @@
icon_state = "unathi_helm_cheap"
item_state = "unathi_helm_cheap"
color = "unathi_helm_cheap"
/obj/item/clothing/suit/space/unathi
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Unathi")
/obj/item/clothing/suit/space/unathi/rig_cheap
name = "NT breacher chassis"
@@ -32,10 +80,21 @@
icon_state = "rig-unathi-cheap"
item_state = "rig-unathi-cheap"
slowdown = 3
armor = list(melee = 40, bullet = 30, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
/obj/item/clothing/head/helmet/space/unathi/breacher
name = "breacher helm"
desc = "Weathered, ancient and battle-scarred. The helmet is too."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
color = "unathi_breacher"
/obj/item/clothing/suit/space/unathi/breacher
name = "breacher chassis"
desc = "Huge, bulky and absurdly heavy. It must be like wearing a tank."
icon_state = "unathi_breacher"
item_state = "unathi_breacher"
color = "unathi_breacher"
slowdown = 1
// Vox space gear (vaccuum suit, low pressure armour)
// Can't be equipped by any other species due to bone structure and vox cybernetics.
@@ -47,24 +106,12 @@
armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("Vox")
/obj/item/clothing/head/helmet/space/vox
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30)
flags = HEADCOVERSEYES|STOPSPRESSUREDMAGE
/obj/item/clothing/head/helmet/space/vox/mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/V = M
if(V.species.name != "Vox")
V << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
/obj/item/clothing/suit/space/vox/mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/V = M
if(V.species.name != "Vox")
V << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
species_restricted = list("Vox")
/obj/item/clothing/head/helmet/space/vox/pressure
name = "alien helmet"
@@ -116,6 +163,7 @@
/obj/item/clothing/under/vox
has_sensor = 0
species_restricted = list("Vox")
/obj/item/clothing/under/vox/vox_casual
name = "alien clothing"
@@ -139,13 +187,7 @@
siemens_coefficient = 0
permeability_coefficient = 0.05
color="gloves-vox"
/obj/item/clothing/gloves/yellow/vox/mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/U = M
if(U.species.name != "Vox")
U << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
species_restricted = list("Vox")
/obj/item/clothing/shoes/magboots/vox
@@ -153,6 +195,7 @@
name = "vox boots"
item_state = "boots-vox"
icon_state = "boots-vox"
species_restricted = list("Vox")
toggle()
//set name = "Toggle Floor Grip"
@@ -170,11 +213,4 @@
examine()
set src in view()
..()
/obj/item/clothing/shoes/magboots/vox/mob_can_equip(M as mob, slot)
var/mob/living/carbon/human/U = M
if(U.species.name != "Vox")
U << "<span class='warning'>This clearly isn't designed for your species!</span>"
return 0
return ..()
..()
+2
View File
@@ -12,6 +12,7 @@
icon_action_button = "action_hardhat"
heat_protection = HEAD
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("exclude","Unathi","Tajara","Skrell","Diona","Vox")
attack_self(mob/user)
if(!isturf(user.loc))
@@ -46,6 +47,7 @@
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECITON_TEMPERATURE
species_restricted = list("exclude","Unathi","Tajara","Diona","Vox")
//Chief Engineer's rig
/obj/item/clothing/head/helmet/space/rig/elite
+15 -2
View File
@@ -48,6 +48,16 @@
flags = FPRINT | TABLEPASS
siemens_coefficient = 0.9
/obj/item/clothing/under/rank/security/corp
icon_state = "sec_corporate"
item_state = "sec_corporate"
color = "sec_corporate"
/obj/item/clothing/under/rank/warden/corp
icon_state = "warden_corporate"
item_state = "warden_corporate"
color = "warden_corporate"
/*
* Detective
*/
@@ -83,6 +93,10 @@
flags = FPRINT | TABLEPASS
siemens_coefficient = 0.8
/obj/item/clothing/under/rank/head_of_security/corp
icon_state = "hos_corporate"
item_state = "hos_corporate"
color = "hos_corporate"
/obj/item/clothing/head/helmet/HoS
name = "Head of Security Hat"
@@ -94,10 +108,9 @@
flags_inv = HIDEEARS
siemens_coefficient = 0.8
/obj/item/clothing/suit/armor/hos
name = "armored coat"
desc = "A greatcoat enchanced with a special alloy for some protection and style."
desc = "A greatcoat enhanced with a special alloy for some protection and style."
icon_state = "hos"
item_state = "hos"
body_parts_covered = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS
@@ -677,7 +677,7 @@
for (var/datum/data/record/R in data_core.general)
if (R.fields["id"] == E.fields["id"])
var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*Deceased*", "*Unconscious*", "Physically Unfit", "Active", "Cancel")
var/setmedical = input(usr, "Specify a new medical status for this person.", "Medical HUD", R.fields["p_stat"]) in list("*SSD*", "*Deceased*", "Physically Unfit", "Active", "Disabled", "Cancel")
if(hasHUD(usr,"medical"))
if(setmedical != "Cancel")
+2 -2
View File
@@ -357,10 +357,10 @@
var/datum/language/chosen_language
if(client.prefs.language)
chosen_language = all_languages[client.prefs.language]
chosen_language = all_languages["[client.prefs.language]"]
if(chosen_language)
if(is_alien_whitelisted(src, client.prefs.language) || !config.usealienwhitelist || !(chosen_language.flags & WHITELISTED))
new_character.add_language(client.prefs.language)
new_character.add_language("[client.prefs.language]")
if(ticker.random_players)
new_character.gender = pick(MALE, FEMALE)