From 7c7c54a795bfdbd01ec776e26b520ce04a840d8b Mon Sep 17 00:00:00 2001 From: Tigercat2000 Date: Fri, 6 Mar 2015 23:07:08 +0100 Subject: [PATCH] Update Pool Controller to fox's recommendations --- code/game/machinery/poolcontroller.dm | 44 +++++++++++---------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/code/game/machinery/poolcontroller.dm b/code/game/machinery/poolcontroller.dm index ad7137a81b2..937629589ed 100644 --- a/code/game/machinery/poolcontroller.dm +++ b/code/game/machinery/poolcontroller.dm @@ -39,19 +39,19 @@ return if(emagged) //Emagging unlocks more (deadly) options. - var/temp = input("What temperature would you like to set the pool to?", "Pool Temperature") in list("Hot","Cold", "Warm", "Cool", "Normal","Cancel") //Allow user to choose which temperature they want. + var/temp = input("What temperature would you like to set the pool to?", "Pool Temperature") in list("Scalding","Frigid", "Warm", "Cool", "Normal","Cancel") //Allow user to choose which temperature they want. switch(temp) //Used for setting the actual temperature var based on user input. - if("Hot") - miston() - temperature = "hot" + if("Scalding") + miston() //Turn on warning mist for the pool + temperature = "scalding" //Burn em! usr << "You flick the pool temperature to [temperature](WARNING)." //Differ from standard message to make sure the user understands the temperature is harmful. - return - if("Cold") - temperature = "cold" + return //Return to avoid calling the un-unique message. + if("Frigid") + temperature = "frigid" usr << "You flick the pool temperature to [temperature](WARNING)." //Differ from standard message to make sure the user understands the temperature is harmful. mistoff() //this won't get called otherwise - return + return //Return to avoid calling the un-unique message. //Regular non-traitorous temperature choices still avalible. if("Warm") @@ -63,7 +63,7 @@ if("Cancel") return - mistoff() + mistoff() //Remove all mist, setting it to scalding returns before now, only regular temperatures will call it usr << "You flick the pool temperature to [temperature]." //Inform the mob of the temperature they just picked. return @@ -80,7 +80,7 @@ if("Cancel") //Cancel does nothing and leaves the temperature at it's previous state. return - mistoff() + mistoff() //Remove all mist, because it shouldn't be here if the pool is not set to scalding usr << "You flick the pool temperature to [temperature]." //Display what the user picked. return @@ -91,21 +91,13 @@ for(var/turf/simulated/floor/beach/water/W in linkedturfs) //Check for pool-turfs linked to the controller. for(var/mob/M in W) //Check for mobs in the linked pool-turfs. switch(temperature) //Apply different effects based on what the temperature is set to. - if("hot") //Burn the mob. - if(ishuman(M)) - var/mob/living/carbon/human/H = M //If humanoid, directly apply fire damage for quicker effect. - H.adjustFireLoss(5) - + if("scalding") //Burn the mob. M.bodytemperature = min(500, M.bodytemperature + 35) //heat mob at 35k(elvin) per cycle M << "The water is searing hot!" return - if("cold") //Freeze the mob. - if(ishuman(M)) - var/mob/living/carbon/human/H = M //If humanoid, directly apply fire damage for quicker effect. - H.adjustFireLoss(5) - - M.bodytemperature = max(80, M.bodytemperature - 80) //Quickly cool mob at -80k per cycle + if("frigid") //Freeze the mob. + M.bodytemperature = max(80, M.bodytemperature - 35) //cool mob at -35k per cycle M << "The water is freezing!" return @@ -118,20 +110,20 @@ return if("cool") //Gently cool the mob. - M.bodytemperature = max(290, M.bodytemperature - 15) //Cools mobs to just below normal, not enough to burn + M.bodytemperature = max(290, M.bodytemperature - 10) //Cools mobs to just below normal, not enough to burn M << "The water is chilly." //Inform the mob it's chilly water. return -/obj/machinery/poolcontroller/proc/miston() +/obj/machinery/poolcontroller/proc/miston() //Spawn /obj/effect/mist (from the shower) on all linked pool tiles for(var/turf/simulated/floor/beach/water/W in linkedturfs) var/M = new /obj/effect/mist(W) if(misted) return linkedmist += M - misted = 1 + misted = 1 //var just to keep track of when the mist on proc has been called. -/obj/machinery/poolcontroller/proc/mistoff() +/obj/machinery/poolcontroller/proc/mistoff() //Delete all /obj/effect/mist from all linked pool tiles. for(var/obj/effect/mist/M in linkedmist) del(M) - misted = 0 \ No newline at end of file + misted = 0 //no mist left, turn off the tracking var \ No newline at end of file