From bc9f8f6691c17448ff86116df2fa21880fd9d1fe Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 19 Jan 2014 19:16:52 -0500 Subject: [PATCH] Moar Xeno bugfixes --- code/_onclick/other_mobs.dm | 2 ++ code/modules/mob/living/carbon/alien/death.dm | 18 ++++++++++++++++++ .../living/carbon/alien/humanoid/empress.dm | 7 ++++--- .../mob/living/carbon/alien/humanoid/queen.dm | 11 ++++++----- .../carbon/alien/special/alien_embryo.dm | 3 +-- .../living/carbon/alien/special/facehugger.dm | 6 +++--- 6 files changed, 34 insertions(+), 13 deletions(-) diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 5e9b6f55b61..e8ea82d8d2a 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -150,6 +150,8 @@ // D.reagents.reaction(get_turf(D)) for(var/atom/atm in get_turf(D)) if(!D) return + if(istype(atm, /mob/living/carbon/alien)) + return if(istype(atm, /mob/living/carbon)) var/mob/living/carbon/C = atm C.Weaken(5) diff --git a/code/modules/mob/living/carbon/alien/death.dm b/code/modules/mob/living/carbon/alien/death.dm index 0a060dd1f70..1ae09f9f161 100644 --- a/code/modules/mob/living/carbon/alien/death.dm +++ b/code/modules/mob/living/carbon/alien/death.dm @@ -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("[src] 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) diff --git a/code/modules/mob/living/carbon/alien/humanoid/empress.dm b/code/modules/mob/living/carbon/alien/humanoid/empress.dm index c5a85b280ea..dbf9d7870e7 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/empress.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/empress.dm @@ -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 [src] has laid an egg!"), 1) new /obj/effect/alien/egg(loc) diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 2e8abd47654..65ab3fdf87e 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -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 [src] has laid an egg!"), 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 [src] begins to twist and contort!"), 1) diff --git a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm index 79ca2c9a03e..c0541b29a7e 100644 --- a/code/modules/mob/living/carbon/alien/special/alien_embryo.dm +++ b/code/modules/mob/living/carbon/alien/special/alien_embryo.dm @@ -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) diff --git a/code/modules/mob/living/carbon/alien/special/facehugger.dm b/code/modules/mob/living/carbon/alien/special/facehugger.dm index 59b4279b39c..40077dca7ca 100644 --- a/code/modules/mob/living/carbon/alien/special/facehugger.dm +++ b/code/modules/mob/living/carbon/alien/special/facehugger.dm @@ -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!")