Adds aliens zombies (#6966)

* Adds aliens zombies.

* Adds changelog and some checks.
This commit is contained in:
Alberyk
2019-09-11 22:25:58 -03:00
committed by Werner
parent 04b5692963
commit 2334b982a0
15 changed files with 135 additions and 13 deletions

View File

@@ -1175,7 +1175,7 @@
else
to_chat(usr, "<span class='warning'>You failed to check the pulse. Try again.</span>")
/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/kpg=0)
/mob/living/carbon/human/proc/set_species(var/new_species, var/default_colour, var/kpg=0, var/change_hair = TRUE)
cached_bodytype = null
if(!dna)
if(!new_species)
@@ -1263,7 +1263,8 @@
nutrition_loss = HUNGER_FACTOR * species.nutrition_loss_factor
hydration_loss = THIRST_FACTOR * species.hydration_loss_factor
species.set_default_hair(src)
if(change_hair)
species.set_default_hair(src)
if(species)
return 1

View File

@@ -135,9 +135,9 @@
/datum/species/zombie
name = "Zombie"
name_plural = "Zombies"
bodytype = "Zombie"
icobase = 'icons/mob/human_races/r_zombie.dmi'
deform = 'icons/mob/human_races/r_zombie.dmi'
bodytype = "Human"
icobase = 'icons/mob/human_races/zombie/r_zombie.dmi'
deform = 'icons/mob/human_races/zombie/r_zombie.dmi'
hide_name = TRUE
@@ -195,4 +195,84 @@
/datum/species/zombie/handle_post_spawn(var/mob/living/carbon/human/H)
H.mutations.Add(CLUMSY)
return ..()
return ..()
/datum/species/zombie/tajara
name = "Tajara Zombie"
name_plural = "Tajara Zombies"
bodytype = "Tajara"
icobase = 'icons/mob/human_races/zombie/r_zombie_tajara.dmi'
deform = 'icons/mob/human_races/zombie/r_zombie_tajara.dmi'
tail = "tajtail"
tail_animation = 'icons/mob/species/tajaran/tail.dmi'
slowdown = -1
brute_mod = 1.2
fall_mod = 0.5
name_language = LANGUAGE_SIIK_MAAS
remains_type = /obj/effect/decal/remains/xeno
move_trail = /obj/effect/decal/cleanable/blood/tracks/paw
default_h_style = "Tajaran Ears"
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
/datum/species/zombie/unathi
name = "Unathi Zombie"
name_plural = "Unathi Zombies"
bodytype = "Unathi"
icobase = 'icons/mob/human_races/zombie/r_zombie_unathi.dmi'
deform = 'icons/mob/human_races/zombie/r_zombie_unathi.dmi'
tail = "sogtail"
tail_animation = 'icons/mob/species/unathi/tail.dmi'
slowdown = 0.5
brute_mod = 0.8
grab_mod = 0.75
fall_mod = 1.2
mob_size = 10
climb_coeff = 1.35
name_language = LANGUAGE_UNATHI
remains_type = /obj/effect/decal/remains/xeno
move_trail = /obj/effect/decal/cleanable/blood/tracks/claw
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR
/datum/species/zombie/skrell
name = "Skrell Zombie"
name_plural = "Skrell Zombies"
bodytype = "Skrell"
icobase = 'icons/mob/human_races/zombie/r_zombie_skrell.dmi'
deform = 'icons/mob/human_races/zombie/r_zombie_skrell.dmi'
grab_mod = 1.25
name_language = LANGUAGE_SKRELLIAN
appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_SOCKS
inherent_verbs = list(
/mob/living/carbon/human/proc/commune,
/mob/living/carbon/human/proc/sonar_ping,
/mob/living/carbon/human/proc/darkness_eyes,
/mob/living/proc/devour
)
flesh_color = "#8CD7A3"
blood_color = "#1D2CBF"
remains_type = /obj/effect/decal/remains/xeno
has_organ = list(
"zombie" = /obj/item/organ/parasite/zombie,
/obj/item/organ/brain/skrell
)
default_h_style = "Skrell Short Tentacles"

View File

@@ -208,6 +208,8 @@
var/list/allowed_citizenships = list(CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
var/list/allowed_religions = list(RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_JUDAISM, RELIGION_HINDU, RELIGION_BUDDHISM, RELIGION_MOROZ, RELIGION_TRINARY)
var/zombie_type //What zombie species they become
/datum/species/proc/get_eyes(var/mob/living/carbon/human/H)
return

View File

@@ -36,4 +36,6 @@
climb_coeff = 1
inherent_verbs = list(
/mob/living/carbon/human/proc/tie_hair)
/mob/living/carbon/human/proc/tie_hair)
zombie_type = "Zombie"

View File

@@ -61,5 +61,7 @@
allowed_citizenships = list(CITIZENSHIP_JARGON, CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
allowed_religions = list(RELIGION_QEBLAK, RELIGION_WEISHII, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_MOROZ)
zombie_type = "Skrell Zombie"
/datum/species/skrell/can_breathe_water()
return TRUE

View File

@@ -70,6 +70,8 @@
allowed_citizenships = list(CITIZENSHIP_PRA, CITIZENSHIP_BIESEL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI, CITIZENSHIP_DOMINIA)
allowed_religions = list(RELIGION_TWINSUNS, RELIGION_MATAKE, RELIGION_RASKARA, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM, RELIGION_MOROZ)
zombie_type = "Tajara Zombie"
/datum/species/tajaran/before_equip(var/mob/living/carbon/human/H)
. = ..()
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)

View File

@@ -87,6 +87,8 @@
allowed_citizenships = list(CITIZENSHIP_IZWESKI, CITIZENSHIP_DOMINIA, CITIZENSHIP_BIESEL, CITIZENSHIP_SOL, CITIZENSHIP_FRONTIER, CITIZENSHIP_ELYRA, CITIZENSHIP_ERIDANI)
allowed_religions = list(RELIGION_THAKH, RELIGION_SKAKH, RELIGION_AUTAKH, RELIGION_MOROZ, RELIGION_NONE, RELIGION_OTHER, RELIGION_CHRISTIANITY, RELIGION_ISLAM)
zombie_type = "Unathi Zombie"
/datum/species/unathi/before_equip(var/mob/living/carbon/human/H)
. = ..()
var/obj/item/clothing/shoes/sandal/S = new /obj/item/clothing/shoes/sandal(H)

View File

@@ -39,6 +39,8 @@
return 1
if("Aut'akh Unathi")
return 1
if ("Unathi Zombie")
return 1
return 0
/proc/isautakh(A)
@@ -57,11 +59,17 @@
return 1
if("M'sai Tajara")
return 1
if ("Tajara Zombie")
return 1
return 0
/proc/isskrell(A)
if(istype(A, /mob/living/carbon/human) && (A:get_species() == "Skrell"))
return 1
if(istype(A, /mob/living/carbon/human))
switch(A:get_species())
if ("Skrell")
return 1
if ("Skrell Zombie")
return 1
return 0
/proc/isvaurca(A)
@@ -119,6 +127,12 @@
return 1
if ("Zombie")
return 1
if ("Tajara Zombie")
return 1
if ("Unathi Zombie")
return 1
if ("Skrell Zombie")
return 1
if ("Apparition")
return 1
return 0

View File

@@ -257,12 +257,18 @@
if(stage >= 4)
if(prob(10))
if(!isundead(owner))
if(ishuman_species(owner))
if(owner.species.zombie_type)
var/r = owner.r_skin
var/g = owner.g_skin
var/b = owner.b_skin
for(var/datum/language/L in owner.languages)
owner.remove_language(L.name)
to_chat(owner, "<span class='warning'>You feel life leaving your husk, but death rejects you...</span>")
playsound(src.loc, 'sound/hallucinations/far_noise.ogg', 50, 1)
to_chat(owner, "<font size='3'><span class='cult'>All that is left is a cruel hunger for the flesh of the living, and the desire to spread this infection. You must consume all the living!</font></span>")
owner.set_species("Zombie")
owner.set_species(owner.species.zombie_type, 0, 0, 0)
owner.change_skin_color(r, g, b)
owner.update_dna()
else
owner.adjustToxLoss(50)

View File

@@ -689,7 +689,7 @@
var/obj/item/organ/parasite/zombie/infest = new()
infest.replaced(H, affected)
if(ishuman_species(H))
if(H.species.zombie_type)
if(!H.internal_organs_by_name["brain"]) //destroying the brain stops trioxin from bringing the dead back to life
return
@@ -699,7 +699,12 @@
for(var/datum/language/L in H.languages)
H.remove_language(L.name)
H.set_species("Zombie")
var/r = H.r_skin
var/g = H.g_skin
var/b = H.b_skin
H.set_species(H.species.zombie_type, 0, 0, 0)
H.revive()
H.change_skin_color(r, g, b)
playsound(H.loc, 'sound/hallucinations/far_noise.ogg', 50, 1)
to_chat(H,"<font size='3'><span class='cult'>You return back to life as the undead, all that is left is the hunger to consume the living and the will to spread the infection.</font></span>")