Changeling mode now has 4 changelings, each working on its own objectives, but possessing the ability to hivemind with the others.

It'll be fun, I promise.

git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2068 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
uporotiy
2011-08-29 21:36:26 +00:00
parent 71d90fea60
commit fdb4934f54
15 changed files with 218 additions and 120 deletions
@@ -106,7 +106,7 @@
if(100 to 200)
usr << "\red [src] is twitching ever so slightly."
if (src.stat == 2 || src.changeling_fakedeath == 1)
if (src.stat == 2 || (changeling && changeling.changeling_fakedeath == 1))
usr << "\red [src] is limp and unresponsive, a dull lifeless look in [t_his] eyes."
else
if (src.bruteloss)
@@ -187,8 +187,8 @@
stat("Tank Pressure", internal.air_contents.return_pressure())
stat("Distribution Pressure", internal.distribute_pressure)
if (mind)
if (mind.special_role == "Changeling")
stat("Chemical Storage", chem_charges)
if (mind.special_role == "Changeling" && changeling)
stat("Chemical Storage", changeling.chem_charges)
if (istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_initialized)
stat("Energy Charge", round(wear_suit:cell:charge/100))
+4 -4
View File
@@ -290,7 +290,7 @@
return null
update_canmove()
if(paralysis || stunned || weakened || buckled || changeling_fakedeath) canmove = 0
if(paralysis || stunned || weakened || buckled || (changeling && changeling.changeling_fakedeath)) canmove = 0
else canmove = 1
handle_breath(datum/gas_mixture/breath)
@@ -685,7 +685,7 @@
if (silent)
silent--
if (paralysis || stunned || weakened || changeling_fakedeath) //Stunned etc.
if (paralysis || stunned || weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc.
if (stunned > 0)
stunned--
stat = 0
@@ -1021,8 +1021,8 @@
handle_changeling()
if (mind)
if (mind.special_role == "Changeling")
chem_charges = between(0, (max((0.9 - (chem_charges / 50)), 0.1) + chem_charges), 50)
if (mind.special_role == "Changeling" && changeling)
changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50)
/*
@@ -432,7 +432,7 @@
src.stat = 2
else
if (src.paralysis || src.stunned || src.weakened || changeling_fakedeath) //Stunned etc.
if (src.paralysis || src.stunned || src.weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc.
if (src.stunned > 0)
src.stunned = 0
src.stat = 0
@@ -246,7 +246,7 @@
return null
update_canmove()
if(paralysis || stunned || weakened || buckled || changeling_fakedeath) canmove = 0
if(paralysis || stunned || weakened || buckled || (changeling && changeling.changeling_fakedeath)) canmove = 0
else canmove = 1
handle_breath(datum/gas_mixture/breath)
@@ -420,7 +420,7 @@
if (src.stat != 2) //Alive.
if (src.paralysis || src.stunned || src.weakened || changeling_fakedeath) //Stunned etc.
if (src.paralysis || src.stunned || src.weakened || (changeling && changeling.changeling_fakedeath)) //Stunned etc.
if (src.stunned > 0)
src.stunned--
src.stat = 0
@@ -608,5 +608,5 @@
handle_changeling()
if (mind)
if (mind.special_role == "Changeling")
src.chem_charges = between(0, (max((0.9 - (chem_charges / 50)), 0.1) + chem_charges), 50)
if (mind.special_role == "Changeling" && changeling)
changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50)
@@ -461,8 +461,8 @@
stat(null, text("Move Mode: []", m_intent))
if(client && mind)
if (client.statpanel == "Status")
if (mind.special_role == "Changeling")
stat("Chemical Storage", chem_charges)
if (mind.special_role == "Changeling" && changeling)
stat("Chemical Storage", changeling.chem_charges)
return
/mob/living/carbon/monkey/update_clothing()
+10 -1
View File
@@ -86,6 +86,7 @@
":t" = "Syndicate",
":d" = "Mining",
":q" = "Cargo",
":g" = "changeling",
//kinda localization -- rastaf0
//same keys as above, but on russian keyboard layout. This file uses cp1251 as encoding.
@@ -104,6 +105,7 @@
":å" = "Syndicate",
":â" = "Mining",
":é" = "Cargo",
":ï" = "changeling",
)
message_mode = keys[channel_prefix]
@@ -145,6 +147,7 @@
message += "Z"
*/
var/list/obj/item/used_radios = new
switch (message_mode)
if ("headset")
if (src:ears)
@@ -215,7 +218,13 @@
used_radios += src:radio
message_range = 1
italics = 1
/////SPECIAL HEADSETS START
if("changeling")
if(src.changeling)
for(var/mob/living/carbon/aChangeling in world)
if(aChangeling.changeling)
aChangeling << "<i><font color=#800080><b>[gender=="male"?"Mr.":"Mrs."] [changeling.changelingID]:</b> [message]</font></i>"
return
////SPECIAL HEADSETS START
else
//world << "SPECIAL HEADSETS"
if (message_mode in radiochannels)