Moar Xeno bugfixes

This commit is contained in:
ZomgPonies
2014-01-19 19:16:52 -05:00
parent 258784dea7
commit bc9f8f6691
6 changed files with 34 additions and 13 deletions
@@ -39,3 +39,21 @@
spawn(15)
if(animation) del(animation)
if(src) del(src)
/mob/living/carbon/alien/death(gibbed)
if(stat == DEAD) return
if(healths) healths.icon_state = "health6"
stat = DEAD
if(!gibbed)
playsound(loc, 'sound/voice/hiss6.ogg', 80, 1, 1)
for(var/mob/O in viewers(src, null))
O.show_message("<B>[src]</B> lets out a waning guttural screech, green blood bubbling from its maw...", 1)
update_canmove()
if(client) blind.layer = 0
update_icons()
tod = worldtime2text() //weasellos time of death patch
if(mind) mind.store_memory("Time of death: [tod]", 0)
return ..(gibbed)
@@ -12,6 +12,7 @@
pixel_x = -32
move_delay_add = 3
large = 1
max_plasma = 1000
/mob/living/carbon/alien/humanoid/empress/large/update_icons()
lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again
@@ -72,7 +73,7 @@
/mob/living/carbon/alien/humanoid/empress/verb/lay_egg()
set name = "Lay Egg (75)"
set name = "Lay Egg (250)"
set desc = "Lay an egg to produce huggers to impregnate prey with."
set category = "Alien"
@@ -80,8 +81,8 @@
src << "There's already an egg here."
return
if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-75)
if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-250)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
new /obj/effect/alien/egg(loc)
@@ -8,6 +8,7 @@
heal_rate = 5
plasma_rate = 20
move_delay_add = 2
max_plasma = 1000
/mob/living/carbon/alien/humanoid/queen/New()
var/datum/reagents/R = new/datum/reagents(100)
@@ -56,7 +57,7 @@
//Queen verbs
/mob/living/carbon/alien/humanoid/queen/verb/lay_egg()
set name = "Lay Egg (75)"
set name = "Lay Egg (250)"
set desc = "Lay an egg to produce huggers to impregnate prey with."
set category = "Alien"
@@ -64,8 +65,8 @@
src << "There's already an egg here."
return
if(powerc(75,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-75)
if(powerc(250,1))//Can't plant eggs on spess tiles. That's silly.
adjustToxLoss(-250)
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] has laid an egg!</B>"), 1)
new /obj/effect/alien/egg(loc)
@@ -99,7 +100,7 @@
set desc = "The ultimate transformation. Become an alien Empress. Only one empress can exist at a time."
set category = "Alien"
if(powerc(500))
if(powerc(1000))
// Queen check
var/no_queen = 1
for(var/mob/living/carbon/alien/humanoid/empress/E in living_mob_list)
@@ -108,7 +109,7 @@
no_queen = 0
if(no_queen)
adjustToxLoss(-500)
adjustToxLoss(-1000)
src << "\green You begin to evolve!"
for(var/mob/O in viewers(src, null))
O.show_message(text("\green <B>[src] begins to twist and contort!</B>"), 1)
@@ -33,14 +33,13 @@
..()
if(!affected_mob) return
if(loc != affected_mob)
world << "Problem in contents"
affected_mob.status_flags &= ~(XENO_HOST)
spawn(0)
RemoveInfectionImages(affected_mob)
affected_mob = null
return
if(stage < 5 && prob(30))
if(stage < 5 && prob(3))
stage++
spawn(0)
RefreshInfectionImage(affected_mob)
@@ -142,7 +142,7 @@ var/const/MAX_ACTIVE_TIME = 400
var/mob/living/carbon/human/H = L
if(H.head && H.head.flags & HEADCOVERSMOUTH)
H.visible_message("\red \b [src] smashes against [H]'s [H.head]!")
stat = 2
death()
return
if(iscarbon(M))
@@ -181,7 +181,7 @@ var/const/MAX_ACTIVE_TIME = 400
/mob/living/carbon/alien/facehugger/proc/Impregnate(mob/living/target as mob)
if(!target || !target.wear_mask || (!src in target.wear_mask.contents) || target.stat == DEAD) //was taken off or something
world << "Something went wrong with the impregnation!"
message_admins("Something went wrong with the impregnation!")
return
if(!sterile)
@@ -190,7 +190,7 @@ var/const/MAX_ACTIVE_TIME = 400
target.status_flags |= XENO_HOST
loc = get_turf(target.loc)
stat = 2
death()
icon_state = "[initial(icon_state)]_impregnated"
target.visible_message("\red \b [src] falls limp after violating [target]'s face!")