From f340f3fbd77f99471272495264f4bec5a2a76b27 Mon Sep 17 00:00:00 2001 From: "VivianFoxfoot@gmail.com" Date: Sun, 11 Dec 2011 08:31:45 +0000 Subject: [PATCH] TG update: 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 5e46ba7f396..b753e5c78e8 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 9526c244e77..5a86f6be7cf 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -193,12 +193,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)) @@ -233,10 +240,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) @@ -328,10 +335,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 @@ -372,10 +379,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 4be9f247296..4d41e1f7518 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -209,6 +209,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 77ab230be5d..7985d1c524a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1034,7 +1034,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 77968bcaabd..628a455adff 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -615,4 +615,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 e8f1eeed5bb..49de37d75cb 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -396,6 +396,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()