mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-20 03:25:49 +01:00
Committed Cael Aislinn's proposed commit: http://forums.nanotrasen.com/viewtopic.php?f=16&t=11641
- Xenos suit and helm (completely obscuring, and almost indistinguishable from drones) (admin spawned only for now). - Facehuggers now have different icon states for being thrown and after impregnation. - New death, unconscious and sleeping icons for aliens. - New icon (and projectile type) for neuroxotin. - New infection overlay images for telling aliens about pregnant humans (3 icons, showing the progression of the infestation). - New system for handling alien impregnation (alien embryos are an object inside the mob, instead of a disease). - Players can be operated surgically to remove the alien embryos (targetting the chest: scalpel, surgical saw, hemostat, retractors. If the embryo is nearly fully developed, it might come out alive though. - Corgis can now get impregnated. - There is a short animated overlay of a chestburster when it comes time to burst chests. - Alien larva now have three different icon sets, depending on their growth (25% they are bloody and pale, 25% - 75% they are pale, 75% onwards they are deep red). Fixed up table smashing, and added rack smashing in the same way. Added new north/south facing for the large alien queen. Updated the changelog. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@5493 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -33,6 +33,36 @@
|
||||
icon_state = "sheet-lizard"
|
||||
origin_tech = ""
|
||||
|
||||
/obj/item/stack/sheet/animalhide/xeno
|
||||
name = "alien hide"
|
||||
desc = "The skin of a terrible creature."
|
||||
singular_name = "alien hide piece"
|
||||
icon_state = "sheet-xeno"
|
||||
origin_tech = ""
|
||||
|
||||
//don't see anywhere else to put these, maybe together they could be used to make the xenos suit?
|
||||
/obj/item/stack/sheet/xenochitin
|
||||
name = "alien chitin"
|
||||
desc = "A piece of the hide of a terrible creature."
|
||||
singular_name = "alien hide piece"
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "chitin"
|
||||
origin_tech = ""
|
||||
|
||||
/obj/item/xenos_claw
|
||||
name = "alien claw"
|
||||
desc = "The claw of a terrible creature."
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "claw"
|
||||
origin_tech = ""
|
||||
|
||||
/obj/item/weed_extract
|
||||
name = "weed extract"
|
||||
desc = "A piece of slimy, purplish weed."
|
||||
icon = 'icons/mob/alien.dmi'
|
||||
icon_state = "weed_extract"
|
||||
origin_tech = ""
|
||||
|
||||
/obj/item/stack/sheet/hairlesshide
|
||||
name = "hairless hide"
|
||||
desc = "This hide was stripped of it's hair, but still needs tanning."
|
||||
|
||||
@@ -87,6 +87,45 @@
|
||||
|
||||
M:eye_op_stage = 2.0
|
||||
|
||||
else if(user.zone_sel.selecting == "chest")
|
||||
switch(M:alien_op_stage)
|
||||
if(3.0)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!istype(H))
|
||||
return ..()
|
||||
|
||||
if(H.wear_suit || H.w_uniform)
|
||||
user << "\red You're going to need to remove that suit/jumpsuit first."
|
||||
return
|
||||
|
||||
var/obj/item/alien_embryo/A = locate() in M.contents
|
||||
if(!A)
|
||||
return ..()
|
||||
user.visible_message("\red [user] begins to pull something out of [M]'s chest.", "\red You begin to pull the alien organism out of [M]'s chest.")
|
||||
|
||||
spawn(20 + rand(0,50))
|
||||
if(!A || A.loc != M)
|
||||
return
|
||||
|
||||
if(M == user && prob(25))
|
||||
user << "\red You mess up!"
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if(affecting.take_damage(30))
|
||||
M:UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(30)
|
||||
|
||||
if(A.stage > 3)
|
||||
var/chance = 15 + max(0, A.stage - 3) * 10
|
||||
if(prob(chance))
|
||||
A.AttemptGrow(0)
|
||||
M:alien_op_stage = 4.0
|
||||
|
||||
if(M)
|
||||
user.visible_message("\red [user] pulls an alien organism out of [M]'s chest.", "\red You pull the alien organism out of [M]'s chest.")
|
||||
A.loc = M.loc //alien embryo handles cleanup
|
||||
|
||||
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
|
||||
return ..()
|
||||
|
||||
@@ -184,6 +223,42 @@
|
||||
M.take_organ_damage(15)
|
||||
M:eye_op_stage = 3.0
|
||||
|
||||
else if(user.zone_sel.selecting == "chest")
|
||||
if(M:alien_op_stage == 2.0 || M:alien_op_stage == 3.0)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!istype(H))
|
||||
return ..()
|
||||
|
||||
if(H.wear_suit || H.w_uniform)
|
||||
user << "\red You're going to need to remove that suit/jumpsuit first."
|
||||
return
|
||||
|
||||
user.visible_message("\red [user] begins to dig around in [M]'s chest.", "\red You begin to dig around in [M]'s chest.")
|
||||
|
||||
spawn(20 + (M:alien_op_stage == 3 ? 0 : rand(0,50)))
|
||||
if(M == user && prob(25))
|
||||
user << "\red You mess up!"
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if(affecting.take_damage(30))
|
||||
M:UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(30)
|
||||
|
||||
var/obj/item/alien_embryo/A = locate() in M.contents
|
||||
if(A)
|
||||
var/dat = "\blue You found an unknown alien organism in [M]'s chest!"
|
||||
if(A.stage < 4)
|
||||
dat += " It's small and weak, barely the size of a foetus."
|
||||
if(A.stage > 3)
|
||||
dat += " It's grown quite large, and writhes slightly as you look at it."
|
||||
if(prob(10))
|
||||
A.AttemptGrow()
|
||||
user << dat
|
||||
M:alien_op_stage = 3.0
|
||||
else
|
||||
user << "\blue You find nothing of interest."
|
||||
|
||||
else if((!(user.zone_sel.selecting == "head")) || (!(user.zone_sel.selecting == "groin")) || (!(istype(M, /mob/living/carbon/human))))
|
||||
return ..()
|
||||
|
||||
@@ -513,6 +588,33 @@
|
||||
M.updatehealth()
|
||||
M:eye_op_stage = 1.0
|
||||
user << "\blue So far so good after."
|
||||
|
||||
else if(user.zone_sel.selecting == "chest")
|
||||
switch(M:alien_op_stage)
|
||||
if(0.0)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!istype(H))
|
||||
return ..()
|
||||
|
||||
if(H.wear_suit || H.w_uniform)
|
||||
user << "\red You're going to need to remove that suit/jumpsuit first."
|
||||
return
|
||||
|
||||
user.visible_message("\red [user] begins to slice open [M]'s chest.", "\red You begin to slice open [M]'s chest.")
|
||||
|
||||
spawn(rand(20,50))
|
||||
if(M == user && prob(25))
|
||||
user << "\red You mess up!"
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if(affecting.take_damage(15))
|
||||
M:UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(15)
|
||||
|
||||
M:alien_op_stage = 1.0
|
||||
user << "\blue So far so good."
|
||||
|
||||
else
|
||||
return ..()
|
||||
/* wat
|
||||
@@ -657,6 +759,32 @@
|
||||
..()
|
||||
return
|
||||
|
||||
else if(user.zone_sel.selecting == "chest")
|
||||
switch(M:alien_op_stage)
|
||||
if(1.0)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!istype(H))
|
||||
return ..()
|
||||
|
||||
if(H.wear_suit || H.w_uniform)
|
||||
user << "\red You're going to need to remove that suit/jumpsuit first."
|
||||
return
|
||||
|
||||
user.visible_message("\red [user] begins to slice through the bone of [M]'s chest.", "\red You begin to slice through the bone of [M]'s chest.")
|
||||
|
||||
spawn(20 + rand(0,50))
|
||||
if(M == user && prob(25))
|
||||
user << "\red You mess up!"
|
||||
if(istype(M, /mob/living/carbon/human))
|
||||
var/datum/organ/external/affecting = M:get_organ("chest")
|
||||
if(affecting.take_damage(15))
|
||||
M:UpdateDamageIcon()
|
||||
else
|
||||
M.take_organ_damage(15)
|
||||
|
||||
M:alien_op_stage = 2.0
|
||||
user << "\blue So far so good."
|
||||
|
||||
else
|
||||
return ..()
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user