mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
@@ -193,7 +193,7 @@ var/datum/antagonist/raider/raiders
|
||||
if(!..())
|
||||
return 0
|
||||
|
||||
if(player.species && player.species.name == "Vox")
|
||||
if(player.species && player.species.get_bodytype() == "Vox")
|
||||
equip_vox(player)
|
||||
else
|
||||
var/new_shoes = pick(raider_shoes)
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
user << "You set about modifying the helmet into [src]."
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
species_restricted = list(H.species.name)
|
||||
species_restricted = list(H.species.get_bodytype())
|
||||
kit.use(1,user)
|
||||
return 1
|
||||
return ..()
|
||||
@@ -62,7 +62,7 @@
|
||||
user << "You set about modifying the suit into [src]."
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(istype(H))
|
||||
species_restricted = list(H.species.name)
|
||||
species_restricted = list(H.species.get_bodytype())
|
||||
kit.use(1,user)
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
@@ -75,13 +75,12 @@
|
||||
|
||||
/obj/structure/mirror/raider/attack_hand(var/mob/living/carbon/human/user)
|
||||
if(istype(get_area(src),/area/syndicate_mothership))
|
||||
if(istype(user) && user.mind && user.mind.special_role == "Raider" && user.species != "Vox" && is_alien_whitelisted(user, "Vox"))
|
||||
var/choice = input("Do you wish to become a Vox? This is not reversible.") as null|anything in list("No","Yes")
|
||||
if(istype(user) && user.mind && user.mind.special_role == "Raider" && user.species.name != "Vox" && is_alien_whitelisted(user, "Vox"))
|
||||
var/choice = input("Do you wish to become a true Vox of the Shoal? This is not reversible.") as null|anything in list("No","Yes")
|
||||
if(choice && choice == "Yes")
|
||||
var/mob/living/carbon/human/vox/vox = new(get_turf(src),"Vox")
|
||||
vox.gender = user.gender
|
||||
raiders.equip(vox)
|
||||
new /obj/item/organ/stack/vox(vox)
|
||||
if(user.mind)
|
||||
user.mind.transfer_to(vox)
|
||||
spawn(1)
|
||||
|
||||
@@ -620,7 +620,7 @@ var/list/admin_verbs_mentor = list(
|
||||
if(istype(T,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = T
|
||||
if (H.species)
|
||||
D.affected_species = list(H.species.name)
|
||||
D.affected_species = list(H.species.get_bodytype())
|
||||
if(H.species.primitive_form)
|
||||
D.affected_species |= H.species.primitive_form
|
||||
if(H.species.greater_form)
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
|
||||
if(H.species)
|
||||
if(exclusive)
|
||||
if(!(H.species.name in species_restricted))
|
||||
if(!(H.species.get_bodytype() in species_restricted))
|
||||
wearable = 1
|
||||
else
|
||||
if(H.species.name in species_restricted)
|
||||
if(H.species.get_bodytype() in species_restricted)
|
||||
wearable = 1
|
||||
|
||||
if(!wearable && !(slot in list(slot_l_store, slot_r_store, slot_s_store)))
|
||||
@@ -75,6 +75,7 @@
|
||||
species_restricted = list("exclude","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen")
|
||||
if("Human")
|
||||
species_restricted = list("exclude","Skrell","Unathi","Tajara","Diona","Vox", "Xenomorph", "Xenomorph Drone", "Xenomorph Hunter", "Xenomorph Sentinel", "Xenomorph Queen")
|
||||
|
||||
else
|
||||
species_restricted = list(target_species)
|
||||
|
||||
@@ -408,8 +409,8 @@ BLIND // can't see anything
|
||||
var/icon/under_icon
|
||||
if(icon_override)
|
||||
under_icon = icon_override
|
||||
else if(H && sprite_sheets && sprite_sheets[H.species.name])
|
||||
under_icon = sprite_sheets[H.species.name]
|
||||
else if(H && sprite_sheets && sprite_sheets[H.species.get_bodytype()])
|
||||
under_icon = sprite_sheets[H.species.get_bodytype()]
|
||||
else if(item_icons && item_icons[slot_w_uniform_str])
|
||||
under_icon = item_icons[slot_w_uniform_str]
|
||||
else
|
||||
|
||||
@@ -467,8 +467,8 @@
|
||||
var/species_icon = 'icons/mob/rig_back.dmi'
|
||||
// Since setting mob_icon will override the species checks in
|
||||
// update_inv_wear_suit(), handle species checks here.
|
||||
if(wearer && sprite_sheets && sprite_sheets[wearer.species.name])
|
||||
species_icon = sprite_sheets[wearer.species.name]
|
||||
if(wearer && sprite_sheets && sprite_sheets[wearer.species.get_bodytype()])
|
||||
species_icon = sprite_sheets[wearer.species.get_bodytype()]
|
||||
mob_icon = image("icon" = species_icon, "icon_state" = "[icon_state]")
|
||||
|
||||
if(installed_modules.len)
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
attack_verb = list("attacked", "slapped", "whacked")
|
||||
var/mob/living/carbon/brain/brainmob = null
|
||||
|
||||
/obj/item/organ/pariah_brain
|
||||
name = "brain remnants"
|
||||
desc = "Did someone tread on this? It looks useless for cloning or cyborgification."
|
||||
organ_tag = "brain"
|
||||
parent_organ = "head"
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "chitin"
|
||||
vital = 1
|
||||
|
||||
/obj/item/organ/brain/xeno
|
||||
name = "thinkpan"
|
||||
desc = "It looks kind of like an enormous wad of purple bubblegum."
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
continue
|
||||
if(check_gender && gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(species.name in S.species_allowed))
|
||||
if(!(species.get_bodytype() in S.species_allowed))
|
||||
continue
|
||||
valid_hairstyles += hairstyle
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
continue
|
||||
if(gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(species.name in S.species_allowed))
|
||||
if(!(species.get_bodytype() in S.species_allowed))
|
||||
continue
|
||||
|
||||
valid_facial_hairstyles += facialhairstyle
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
if(!T || !src || src.stat) return
|
||||
|
||||
if(get_dist(get_turf(T), get_turf(src)) > 6) return
|
||||
if(get_dist(get_turf(T), get_turf(src)) > 4) return
|
||||
|
||||
if(last_special > world.time)
|
||||
return
|
||||
@@ -83,8 +83,8 @@
|
||||
last_special = world.time + 75
|
||||
status_flags |= LEAPING
|
||||
|
||||
src.visible_message("<span class='warning'><b>\The [src]</b> leaps at [T]!</span>")
|
||||
src.throw_at(get_step(get_turf(T),get_turf(src)), 5, 1, src)
|
||||
src.visible_message("<span class='danger'>\The [src] leaps at [T]!</span>")
|
||||
src.throw_at(get_step(get_turf(T),get_turf(src)), 4, 1, src)
|
||||
playsound(src.loc, 'sound/voice/shriek1.ogg', 50, 1)
|
||||
|
||||
sleep(5)
|
||||
@@ -92,13 +92,13 @@
|
||||
if(status_flags & LEAPING) status_flags &= ~LEAPING
|
||||
|
||||
if(!src.Adjacent(T))
|
||||
src << "\red You miss!"
|
||||
src << "<span class='warning'>You miss!</span>"
|
||||
return
|
||||
|
||||
T.Weaken(5)
|
||||
T.Weaken(3)
|
||||
|
||||
//Only official cool kids get the grab and no self-prone.
|
||||
if(!(src.mind && src.mind.special_role))
|
||||
// Pariahs are not good at leaping. This is snowflakey, pls fix.
|
||||
if(species.name == "Vox Pariah")
|
||||
src.Weaken(5)
|
||||
return
|
||||
|
||||
@@ -118,7 +118,7 @@
|
||||
else
|
||||
r_hand = G
|
||||
|
||||
G.state = GRAB_AGGRESSIVE
|
||||
G.state = GRAB_PASSIVE
|
||||
G.icon_state = "grabbed1"
|
||||
G.synch()
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
default_language = "Vox-pidgin"
|
||||
language = "Galactic Common"
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws/strong, /datum/unarmed_attack/bite/strong)
|
||||
rarity_value = 2
|
||||
rarity_value = 4
|
||||
blurb = "The Vox are the broken remnants of a once-proud race, now reduced to little more than \
|
||||
scavenging vermin who prey on isolated stations, ships or planets to keep their own ancient arkships \
|
||||
alive. They are four to five feet tall, reptillian, beaked, tailed and quilled; human crews often \
|
||||
@@ -47,7 +47,8 @@
|
||||
"liver" = /obj/item/organ/liver,
|
||||
"kidneys" = /obj/item/organ/kidneys,
|
||||
"brain" = /obj/item/organ/brain,
|
||||
"eyes" = /obj/item/organ/eyes
|
||||
"eyes" = /obj/item/organ/eyes,
|
||||
"stack" = /obj/item/organ/stack/vox
|
||||
)
|
||||
|
||||
/datum/species/vox/get_random_name(var/gender)
|
||||
@@ -67,7 +68,55 @@
|
||||
H.internals.icon_state = "internal1"
|
||||
|
||||
|
||||
/datum/species/vox/can_shred(var/mob/living/carbon/human/H, var/ignore_intent)
|
||||
if(!H.mind || !H.mind.special_role) // Pariah check.
|
||||
return 0
|
||||
return ..()
|
||||
/datum/species/vox/get_station_variant()
|
||||
return "Vox Pariah"
|
||||
|
||||
// Joining as a station vox will give you this template, hence IS_RESTRICTED flag.
|
||||
/datum/species/vox/pariah
|
||||
name = "Vox Pariah"
|
||||
rarity_value = 0.1
|
||||
speech_chance = 60 // No volume control.
|
||||
siemens_coefficient = 0.5 // Ragged scaleless patches.
|
||||
|
||||
warning_low_pressure = (WARNING_LOW_PRESSURE-20)
|
||||
hazard_low_pressure = (HAZARD_LOW_PRESSURE-10)
|
||||
total_health = 80
|
||||
|
||||
cold_level_1 = 130
|
||||
cold_level_2 = 100
|
||||
cold_level_3 = 60
|
||||
|
||||
unarmed_types = list(/datum/unarmed_attack/stomp, /datum/unarmed_attack/kick, /datum/unarmed_attack/claws, /datum/unarmed_attack/bite)
|
||||
|
||||
// Pariahs have no stack.
|
||||
has_organ = list(
|
||||
"heart" = /obj/item/organ/heart,
|
||||
"lungs" = /obj/item/organ/lungs,
|
||||
"liver" = /obj/item/organ/liver,
|
||||
"kidneys" = /obj/item/organ/kidneys,
|
||||
"brain" = /obj/item/organ/pariah_brain,
|
||||
"eyes" = /obj/item/organ/eyes
|
||||
)
|
||||
flags = IS_RESTRICTED | NO_SCAN | HAS_EYE_COLOR
|
||||
|
||||
// No combat skills for you.
|
||||
/datum/species/vox/pariah/can_shred(var/mob/living/carbon/human/H, var/ignore_intent)
|
||||
return 0
|
||||
|
||||
// Pariahs are really gross.
|
||||
/datum/species/vox/pariah/handle_environment_special(var/mob/living/carbon/human/H)
|
||||
if(prob(5))
|
||||
var/stink_range = rand(3,5)
|
||||
for(var/mob/living/M in range(H,stink_range))
|
||||
if(M.stat || M == H)
|
||||
continue
|
||||
var/mob/living/carbon/human/target = M
|
||||
if(istype(target))
|
||||
if(target.head && (target.head.flags & HEADCOVERSMOUTH) && (target.head.flags & AIRTIGHT))
|
||||
continue
|
||||
if(target.wear_mask && (target.wear_mask.flags & MASKCOVERSMOUTH) && (target.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT))
|
||||
continue
|
||||
M << "<span class='danger'>A terrible stench emanates from \the [H].</span>"
|
||||
|
||||
/datum/species/vox/pariah/get_bodytype()
|
||||
return "Vox"
|
||||
|
||||
@@ -152,6 +152,12 @@
|
||||
for(var/u_type in unarmed_types)
|
||||
unarmed_attacks += new u_type()
|
||||
|
||||
/datum/species/proc/get_station_variant()
|
||||
return name
|
||||
|
||||
/datum/species/proc/get_bodytype()
|
||||
return name
|
||||
|
||||
/datum/species/proc/get_environment_discomfort(var/mob/living/carbon/human/H, var/msg_type)
|
||||
|
||||
if(!prob(5))
|
||||
|
||||
@@ -61,6 +61,9 @@
|
||||
var/weeds_heal_rate = 1 // Health regen on weeds.
|
||||
var/weeds_plasma_rate = 5 // Plasma regen on weeds.
|
||||
|
||||
/datum/species/xenos/get_bodytype()
|
||||
return "Xenomorph"
|
||||
|
||||
/datum/species/xenos/get_random_name()
|
||||
return "alien [caste_name] ([alien_number])"
|
||||
|
||||
|
||||
@@ -357,7 +357,7 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (src.species.name in facial_hair_style.species_allowed))
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (src.species.get_bodytype() in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(r_facial, g_facial, b_facial), ICON_ADD)
|
||||
@@ -366,7 +366,7 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(h_style && !(head && (head.flags & BLOCKHEADHAIR)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
||||
if(hair_style && src.species.name in hair_style.species_allowed)
|
||||
if(hair_style && (src.species.get_bodytype() in hair_style.species_allowed))
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(hair_style.do_colouration)
|
||||
hair_s.Blend(rgb(r_hair, g_hair, b_hair), ICON_ADD)
|
||||
@@ -475,8 +475,8 @@ var/global/list/damage_icon_parts = list()
|
||||
var/icon/under_icon
|
||||
if(w_uniform.icon_override)
|
||||
under_icon = w_uniform.icon_override
|
||||
else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.name])
|
||||
under_icon = w_uniform.sprite_sheets[species.name]
|
||||
else if(w_uniform.sprite_sheets && w_uniform.sprite_sheets[species.get_bodytype()])
|
||||
under_icon = w_uniform.sprite_sheets[species.get_bodytype()]
|
||||
else if(w_uniform.item_icons && w_uniform.item_icons[slot_w_uniform_str])
|
||||
under_icon = w_uniform.item_icons[slot_w_uniform_str]
|
||||
else
|
||||
@@ -536,8 +536,8 @@ var/global/list/damage_icon_parts = list()
|
||||
var/image/standing
|
||||
if(gloves.icon_override)
|
||||
standing = image("icon" = gloves.icon_override, "icon_state" = "[t_state]")
|
||||
else if(gloves.sprite_sheets && gloves.sprite_sheets[species.name])
|
||||
standing = image("icon" = gloves.sprite_sheets[species.name], "icon_state" = "[t_state]")
|
||||
else if(gloves.sprite_sheets && gloves.sprite_sheets[species.get_bodytype()])
|
||||
standing = image("icon" = gloves.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_state]")
|
||||
else
|
||||
standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]")
|
||||
|
||||
@@ -562,8 +562,8 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(glasses.icon_override)
|
||||
overlays_standing[GLASSES_LAYER] = image("icon" = glasses.icon_override, "icon_state" = "[glasses.icon_state]")
|
||||
else if(glasses.sprite_sheets && glasses.sprite_sheets[species.name])
|
||||
overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.name], "icon_state" = "[glasses.icon_state]")
|
||||
else if(glasses.sprite_sheets && glasses.sprite_sheets[species.get_bodytype()])
|
||||
overlays_standing[GLASSES_LAYER]= image("icon" = glasses.sprite_sheets[species.get_bodytype()], "icon_state" = "[glasses.icon_state]")
|
||||
else
|
||||
overlays_standing[GLASSES_LAYER]= image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]")
|
||||
|
||||
@@ -584,9 +584,9 @@ var/global/list/damage_icon_parts = list()
|
||||
if(l_ear.icon_override)
|
||||
t_type = "[t_type]_l"
|
||||
overlays_standing[EARS_LAYER] = image("icon" = l_ear.icon_override, "icon_state" = "[t_type]")
|
||||
else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.name])
|
||||
else if(l_ear.sprite_sheets && l_ear.sprite_sheets[species.get_bodytype()])
|
||||
t_type = "[t_type]_l"
|
||||
overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.name], "icon_state" = "[t_type]")
|
||||
overlays_standing[EARS_LAYER] = image("icon" = l_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]")
|
||||
else
|
||||
overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
|
||||
|
||||
@@ -596,9 +596,9 @@ var/global/list/damage_icon_parts = list()
|
||||
if(r_ear.icon_override)
|
||||
t_type = "[t_type]_r"
|
||||
overlays_standing[EARS_LAYER] = image("icon" = r_ear.icon_override, "icon_state" = "[t_type]")
|
||||
else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.name])
|
||||
else if(r_ear.sprite_sheets && r_ear.sprite_sheets[species.get_bodytype()])
|
||||
t_type = "[t_type]_r"
|
||||
overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.name], "icon_state" = "[t_type]")
|
||||
overlays_standing[EARS_LAYER] = image("icon" = r_ear.sprite_sheets[species.get_bodytype()], "icon_state" = "[t_type]")
|
||||
else
|
||||
overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[t_type]")
|
||||
|
||||
@@ -612,8 +612,8 @@ var/global/list/damage_icon_parts = list()
|
||||
var/image/standing
|
||||
if(shoes.icon_override)
|
||||
standing = image("icon" = shoes.icon_override, "icon_state" = "[shoes.icon_state]")
|
||||
else if(shoes.sprite_sheets && shoes.sprite_sheets[species.name])
|
||||
standing = image("icon" = shoes.sprite_sheets[species.name], "icon_state" = "[shoes.icon_state]")
|
||||
else if(shoes.sprite_sheets && shoes.sprite_sheets[species.get_bodytype()])
|
||||
standing = image("icon" = shoes.sprite_sheets[species.get_bodytype()], "icon_state" = "[shoes.icon_state]")
|
||||
else
|
||||
standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]")
|
||||
|
||||
@@ -650,8 +650,8 @@ var/global/list/damage_icon_parts = list()
|
||||
var/t_icon
|
||||
if(head.icon_override)
|
||||
t_icon = head.icon_override
|
||||
else if(head.sprite_sheets && head.sprite_sheets[species.name])
|
||||
t_icon = head.sprite_sheets[species.name]
|
||||
else if(head.sprite_sheets && head.sprite_sheets[species.get_bodytype()])
|
||||
t_icon = head.sprite_sheets[species.get_bodytype()]
|
||||
|
||||
else if(head.item_icons && (slot_head_str in head.item_icons))
|
||||
t_icon = head.item_icons[slot_head_str]
|
||||
@@ -700,8 +700,8 @@ var/global/list/damage_icon_parts = list()
|
||||
|
||||
if(belt.icon_override)
|
||||
standing.icon = belt.icon_override
|
||||
else if(belt.sprite_sheets && belt.sprite_sheets[species.name])
|
||||
standing.icon = belt.sprite_sheets[species.name]
|
||||
else if(belt.sprite_sheets && belt.sprite_sheets[species.get_bodytype()])
|
||||
standing.icon = belt.sprite_sheets[species.get_bodytype()]
|
||||
else
|
||||
standing.icon = 'icons/mob/belt.dmi'
|
||||
|
||||
@@ -727,7 +727,7 @@ var/global/list/damage_icon_parts = list()
|
||||
var/t_icon = INV_SUIT_DEF_ICON
|
||||
if(wear_suit.icon_override)
|
||||
t_icon = wear_suit.icon_override
|
||||
else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.name])
|
||||
else if(wear_suit.sprite_sheets && wear_suit.sprite_sheets[species.get_bodytype()])
|
||||
t_icon = wear_suit.sprite_sheets[species.name]
|
||||
else if(wear_suit.item_icons && wear_suit.item_icons[slot_wear_suit_str])
|
||||
t_icon = wear_suit.item_icons[slot_wear_suit_str]
|
||||
@@ -770,8 +770,8 @@ var/global/list/damage_icon_parts = list()
|
||||
var/image/standing
|
||||
if(wear_mask.icon_override)
|
||||
standing = image("icon" = wear_mask.icon_override, "icon_state" = "[wear_mask.icon_state]")
|
||||
else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.name])
|
||||
standing = image("icon" = wear_mask.sprite_sheets[species.name], "icon_state" = "[wear_mask.icon_state]")
|
||||
else if(wear_mask.sprite_sheets && wear_mask.sprite_sheets[species.get_bodytype()])
|
||||
standing = image("icon" = wear_mask.sprite_sheets[species.get_bodytype()], "icon_state" = "[wear_mask.icon_state]")
|
||||
else
|
||||
standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]")
|
||||
|
||||
@@ -797,8 +797,8 @@ var/global/list/damage_icon_parts = list()
|
||||
//If this is a rig and a mob_icon is set, it will take species into account in the rig update_icon() proc.
|
||||
var/obj/item/weapon/rig/rig = back
|
||||
overlay_icon = rig.mob_icon
|
||||
else if(back.sprite_sheets && back.sprite_sheets[species.name])
|
||||
overlay_icon = back.sprite_sheets[species.name]
|
||||
else if(back.sprite_sheets && back.sprite_sheets[species.get_bodytype()])
|
||||
overlay_icon = back.sprite_sheets[species.get_bodytype()]
|
||||
else if(back.item_icons && (slot_back_str in back.item_icons))
|
||||
overlay_icon = back.item_icons[slot_back_str]
|
||||
else
|
||||
|
||||
@@ -416,13 +416,16 @@
|
||||
|
||||
var/mob/living/carbon/human/new_character
|
||||
|
||||
var/use_species_name
|
||||
var/datum/species/chosen_species
|
||||
if(client.prefs.species)
|
||||
chosen_species = all_species[client.prefs.species]
|
||||
if(chosen_species)
|
||||
use_species_name = all_species[chosen_species.get_station_variant()] //Only used by pariahs atm.
|
||||
|
||||
if(chosen_species && use_species_name)
|
||||
// Have to recheck admin due to no usr at roundstart. Latejoins are fine though.
|
||||
if(is_species_whitelisted(chosen_species) || has_admin_rights())
|
||||
new_character = new(loc, client.prefs.species)
|
||||
new_character = new(loc, use_species_name)
|
||||
|
||||
if(!new_character)
|
||||
new_character = new(loc)
|
||||
|
||||
@@ -67,7 +67,7 @@ var/global/list/limb_icon_cache = list()
|
||||
|
||||
if(owner.f_style)
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[owner.f_style]
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (species.name in facial_hair_style.species_allowed))
|
||||
if(facial_hair_style && facial_hair_style.species_allowed && (species.get_bodytype() in facial_hair_style.species_allowed))
|
||||
var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s")
|
||||
if(facial_hair_style.do_colouration)
|
||||
facial_s.Blend(rgb(owner.r_facial, owner.g_facial, owner.b_facial), ICON_ADD)
|
||||
@@ -75,7 +75,7 @@ var/global/list/limb_icon_cache = list()
|
||||
|
||||
if(owner.h_style && !(owner.head && (owner.head.flags & BLOCKHEADHAIR)))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[owner.h_style]
|
||||
if(hair_style && (species.name in hair_style.species_allowed))
|
||||
if(hair_style && (species.get_bodytype() in hair_style.species_allowed))
|
||||
var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s")
|
||||
if(hair_style.do_colouration)
|
||||
hair_s.Blend(rgb(owner.r_hair, owner.g_hair, owner.b_hair), ICON_ADD)
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
/obj/item/weapon/gun/launcher/spikethrower/special_check(user)
|
||||
if(istype(user,/mob/living/carbon/human))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.species && H.species.name != "Vox")
|
||||
if(H.species && H.species.get_bodytype() != "Vox")
|
||||
user << "<span class='warning'>\The [src] does not respond to you!</span>"
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
@@ -32,12 +32,12 @@
|
||||
|
||||
if(allowed_species)
|
||||
for(var/species in allowed_species)
|
||||
if(target.species.name == species)
|
||||
if(target.species.get_bodytype() == species)
|
||||
return 1
|
||||
|
||||
if(disallowed_species)
|
||||
for(var/species in disallowed_species)
|
||||
if(target.species.name == species)
|
||||
if(target.species.get_bodytype() == species)
|
||||
return 0
|
||||
|
||||
return 1
|
||||
|
||||
@@ -132,7 +132,7 @@
|
||||
else if(href_list["reset"])
|
||||
species = list()
|
||||
if(infectee)
|
||||
if(!infectee.species || !(infectee.species.name in species))
|
||||
if(!infectee.species || !(infectee.species.get_bodytype() in species))
|
||||
infectee = null
|
||||
if("ichance")
|
||||
var/I = input("Input infection chance", "Infection Chance", infectionchance) as null|num
|
||||
@@ -160,16 +160,16 @@
|
||||
var/list/candidates = list()
|
||||
for(var/mob/living/carbon/G in living_mob_list)
|
||||
if(G.stat != DEAD && G.species)
|
||||
if(G.species.name in species)
|
||||
if(G.species.get_bodytype() in species)
|
||||
candidates["[G.name][G.client ? "" : " (no client)"]"] = G
|
||||
else
|
||||
candidates["[G.name] ([G.species.name])[G.client ? "" : " (no client)"]"] = G
|
||||
candidates["[G.name] ([G.species.get_bodytype()])[G.client ? "" : " (no client)"]"] = G
|
||||
if(!candidates.len) usr << "No possible candidates found!"
|
||||
|
||||
var/I = input("Choose initial infectee", "Infectee", infectee) as null|anything in candidates
|
||||
if(!I || !candidates[I]) return
|
||||
infectee = candidates[I]
|
||||
species |= infectee.species.name
|
||||
species |= infectee.species.get_bodytype()
|
||||
if("go")
|
||||
if(!antigens.len)
|
||||
var/a = alert("This disease has no antigens; it will be impossible to permanently immunise anyone without them.\
|
||||
|
||||
@@ -87,9 +87,9 @@ proc/airborne_can_reach(turf/source, turf/target)
|
||||
if(!disease.affected_species.len)
|
||||
return
|
||||
|
||||
if (!(M.species.name in disease.affected_species))
|
||||
if (!(M.species.get_bodytype() in disease.affected_species))
|
||||
if (forced)
|
||||
disease.affected_species[1] = M.species.name
|
||||
disease.affected_species[1] = M.species.get_bodytype()
|
||||
else
|
||||
return //not compatible with this species
|
||||
|
||||
|
||||
@@ -141,6 +141,7 @@ var/world_topic_spam_protect_time = world.timeofday
|
||||
// This is dumb, but spacestation13.com's banners break if player count isn't the 8th field of the reply, so... this has to go here.
|
||||
s["players"] = 0
|
||||
s["stationtime"] = worldtime2text()
|
||||
s["roundduration"] = round_duration()
|
||||
|
||||
if(input["status"] == "2")
|
||||
var/list/players = list()
|
||||
|
||||
5
html/changelogs/zuhayr-pariahs.yml
Normal file
5
html/changelogs/zuhayr-pariahs.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
author: Zuhayr
|
||||
delete-after: True
|
||||
changes:
|
||||
- rscadd: "Pariahs are now a subspecies of Vox with less atmos/cold protection, a useless brain, and lower health."
|
||||
- rscadd: "Leap now only gives a passive grab and has a shorter range. It also stuns Pariahs longer than it does their target."
|
||||
Reference in New Issue
Block a user