From df1d12c368bb5a3511e399ca74f634866fb3c3f3 Mon Sep 17 00:00:00 2001 From: "VivianFoxfoot@gmail.com" Date: Sun, 11 Dec 2011 08:31:45 +0000 Subject: [PATCH] Adds a cooldown to changeling lesser form. (30 seconds) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2659 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/gamemodes/changeling/changeling.dm | 1 + .../gamemodes/changeling/changeling_powers.dm | 29 ++++++++++++------- code/modules/mob/living/carbon/human/human.dm | 1 + code/modules/mob/living/carbon/human/life.dm | 3 +- code/modules/mob/living/carbon/monkey/life.dm | 4 ++- .../mob/living/carbon/monkey/monkey.dm | 1 + 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index ae6663fc6ee..72df487451a 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -201,6 +201,7 @@ var/sting_range = 1 var/changelingID = "none" var/mob/living/host = null + var/geneticdamage = 0.0 /datum/changeling/New() ..() diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index f4e0e55e72d..7cecab471be 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -192,12 +192,19 @@ usr << "\red We don't have enough stored chemicals to do that!" return + if(usr.changeling.geneticdamage != 0) + usr << "Our genes are still mending themselves! We cannot transform!" + return + usr.changeling.chem_charges-- usr.remove_changeling_powers() usr.visible_message(text("\red [usr] transforms!")) + usr.changeling.geneticdamage = 30 + usr << "Our genes cry out!" + var/list/implants = list() //Try to preserve implants. for(var/obj/item/weapon/W in usr) if (istype(W, /obj/item/weapon/implant)) @@ -232,10 +239,10 @@ O.loc = usr.loc O.name = text("monkey ([])",copytext(md5(usr.real_name), 2, 6)) - O.setToxLoss(usr.getToxLoss()) - O.setBruteLoss(usr.getBruteLoss()) - O.setOxyLoss(usr.getOxyLoss()) - O.setFireLoss(usr.getFireLoss()) + O.toxloss = usr.getToxLoss() + O.bruteloss = usr.getBruteLoss() + O.oxyloss = usr.getOxyLoss() + O.fireloss = usr.getFireLoss() O.stat = usr.stat O.a_intent = "hurt" for (var/obj/item/weapon/implant/I in implants) @@ -327,10 +334,10 @@ updateappearance(O,O.dna.uni_identity) domutcheck(O, null) - O.setToxLoss(usr.getToxLoss()) - O.setBruteLoss(usr.getBruteLoss()) - O.setOxyLoss(usr.getOxyLoss()) - O.setFireLoss(usr.getFireLoss()) + O.toxloss = usr.getToxLoss() + O.bruteloss = usr.getBruteLoss() + O.oxyloss = usr.getOxyLoss() + O.fireloss = usr.getFireLoss() O.stat = usr.stat for (var/obj/item/weapon/implant/I in implants) I.loc = O @@ -371,10 +378,10 @@ spawn(1200) usr.stat = 0 //usr.fireloss = 0 - usr.setToxLoss(0) + usr.toxloss = 0 //usr.bruteloss = 0 - usr.setOxyLoss(0) - usr.setCloneLoss(0) + usr.oxyloss = 0 + usr.cloneloss = 0 usr.paralysis = 0 usr.stunned = 0 usr.weakened = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ef8e2bc1b80..cb3db7d837c 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -208,6 +208,7 @@ if (mind) if (mind.special_role == "Changeling" && changeling) stat("Chemical Storage", changeling.chem_charges) + stat("Genetic Damage Time", changeling.geneticdamage) if (istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)&&wear_suit:s_initialized) stat("Energy Charge", round(wear_suit:cell:charge/100)) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index bfd06d3a35b..2b4e9a9caeb 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1025,7 +1025,8 @@ if (mind) if (mind.special_role == "Changeling" && changeling) changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50) - + if ((changeling.geneticdamage > 0)) + changeling.geneticdamage = changeling.geneticdamage-1 /* // Commented out so hunger system won't be such shock diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 32734024acb..15d5235eb8b 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -610,4 +610,6 @@ handle_changeling() if (mind) if (mind.special_role == "Changeling" && changeling) - changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50) \ No newline at end of file + changeling.chem_charges = between(0, (max((0.9 - (changeling.chem_charges / 50)), 0.1) + changeling.chem_charges), 50) + if ((changeling.geneticdamage > 0)) + changeling.geneticdamage = changeling.geneticdamage-1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 9660af7e326..80546dc07fd 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -387,6 +387,7 @@ if (client.statpanel == "Status") if (mind.special_role == "Changeling" && changeling) stat("Chemical Storage", changeling.chem_charges) + stat("Genetic Damage Time", changeling.geneticdamage) return /mob/living/carbon/monkey/update_clothing()