Changelings absorbed by other changelings can no longer rejuvenate back to life. This means changelings can no longer absorb eachother and rejuvenate to share genomes and absorbedcounts.

Fixed the transform to initial appearance adminverb.  I'm assuming it got broken when DNA was changed.

Made the cloaked-xeno sprite slightly more visible.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4656 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
elly1989@rocketmail.com
2012-09-08 08:16:37 +00:00
parent 55937eced9
commit 278aacd80a
4 changed files with 46 additions and 33 deletions
+4 -4
View File
@@ -649,10 +649,10 @@ datum/mind
if( !changeling || !changeling.absorbed_dna.len )
usr << "\red Resetting DNA failed!"
else
usr.dna = changeling.absorbed_dna[changeling.absorbed_dna[1]]
usr.real_name = changeling.absorbed_dna[1]
updateappearance(usr, usr.dna.uni_identity)
domutcheck(usr, null)
current.dna = changeling.absorbed_dna[1]
current.real_name = current.dna.real_name
updateappearance(current, current.dna.uni_identity)
domutcheck(current, null)
else if (href_list["nuclear"])
switch(href_list["nuclear"])
@@ -12,8 +12,7 @@
if(!(P in src.verbs))
src.verbs += P.verbpath
if(!mind.changeling.absorbed_dna.len)
mind.changeling.absorbed_dna += dna
mind.changeling.absorbed_dna |= dna
return 1
//removes our changeling verbs
@@ -110,17 +109,19 @@
T << "<span class='danger'>You have been absorbed by the changeling!</span>"
T.dna.real_name = T.real_name //Set this again, just to be sure that it's properly set.
changeling.absorbed_dna += T.dna
changeling.absorbed_dna |= T.dna
if(usr.nutrition < 400) usr.nutrition = min((usr.nutrition + T.nutrition), 400)
changeling.chem_charges += 10
changeling.geneticpoints += 2
if(T.mind && T.mind.changeling)
if(T.mind.changeling.absorbed_dna)
changeling.absorbed_dna |= T.mind.changeling.absorbed_dna //steal all their loot
changeling.absorbedcount += T.mind.changeling.absorbedcount
T.mind.changeling.absorbed_dna = list(T.dna)
for(var/dna_data in T.mind.changeling.absorbed_dna) //steal all their loot
if(dna_data in changeling.absorbed_dna)
continue
changeling.absorbed_dna += dna_data
changeling.absorbedcount++
T.mind.changeling.absorbed_dna.len = 1
if(T.mind.changeling.purchasedpowers)
for(var/datum/power/changeling/Tp in T.mind.changeling.purchasedpowers)
@@ -137,6 +138,8 @@
changeling.chem_charges += T.mind.changeling.chem_charges
changeling.geneticpoints += T.mind.changeling.geneticpoints
T.mind.changeling.chem_charges = 0
T.mind.changeling.geneticpoints = 0
T.mind.changeling.absorbedcount = 0
changeling.absorbedcount++
changeling.isabsorbing = 0
@@ -344,12 +347,11 @@
set category = "Changeling"
set name = "Regenerative Stasis (20)"
var/datum/changeling/changeling = changeling_power(20,0,100,DEAD)
var/datum/changeling/changeling = changeling_power(20,1,100,DEAD)
if(!changeling) return
changeling.chem_charges -= 20
var/mob/living/carbon/C = usr
C << "<span class='notice'>We will regenerate our form.</span>"
C << "<span class='notice'>We will attempt to regenerate our form.</span>"
C.status_flags |= FAKEDEATH //play dead
C.update_canmove()
@@ -359,26 +361,28 @@
C.tod = worldtime2text()
spawn(rand(800,2000))
if(C.stat == DEAD)
dead_mob_list -= C
living_mob_list += C
C.stat = CONSCIOUS
C.tod = null
C.setToxLoss(0)
C.setOxyLoss(0)
C.setCloneLoss(0)
C.SetParalysis(0)
C.SetStunned(0)
C.SetWeakened(0)
C.radiation = 0
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
C.reagents.clear_reagents()
C << "<span class='notice'>We have regenerated.</span>"
C.visible_message("<span class='warning'>[usr] appears to wake from the dead, having healed all wounds.</span>")
if(changeling_power(20,1,100,DEAD))
changeling.chem_charges -= 20
if(C.stat == DEAD)
dead_mob_list -= C
living_mob_list += C
C.stat = CONSCIOUS
C.tod = null
C.setToxLoss(0)
C.setOxyLoss(0)
C.setCloneLoss(0)
C.SetParalysis(0)
C.SetStunned(0)
C.SetWeakened(0)
C.radiation = 0
C.heal_overall_damage(C.getBruteLoss(), C.getFireLoss())
C.reagents.clear_reagents()
C << "<span class='notice'>We have regenerated.</span>"
C.visible_message("<span class='warning'>[usr] appears to wake from the dead, having healed all wounds.</span>")
C.status_flags &= ~(FAKEDEATH)
C.update_canmove()
C.make_changeling()
C.status_flags &= ~(FAKEDEATH)
C.update_canmove()
C.make_changeling()
feedback_add_details("changeling_powers","FD")
return 1
+9
View File
@@ -49,6 +49,15 @@ should be listed in the changelog upon commit tho. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">8 September 2012</h2>
<h3 class="author">Carn updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Added an additional check to stop changelings sharing powers/becomming un-absorbable/etc by absorbing eachother and then rejuvinating from death.</li>
<li class="tweak">Cloaked Aliens are now slightly easier to see, so they should avoid strongly lit areas when possible. They can still lay down to become even stealthier though. Let me know what you think, it's only a minor sprite change.</li>
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">6 September 2012</h2>
<h3 class="author">Cheridan updated:</h3>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB