diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index 9c6e4be2b3b..75916cf70d0 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -1,7 +1,7 @@ /datum/game_mode/meteor name = "meteor" config_tag = "meteor" - var/const/initialmeteordelay = 3000 + var/const/initialmeteordelay = 6000 var/nometeors = 1 required_players = 0 @@ -15,6 +15,8 @@ /datum/game_mode/meteor/post_setup() + spawn(rand(waittime_l, waittime_h)) + command_announcement.Announce("The station is on the path of an incoming wave of meteors. Reinforce the hull and prepare damage control parties.", "Incoming Meteors", 'sound/effects/siren.ogg') spawn(initialmeteordelay) nometeors = 0 ..() @@ -27,14 +29,13 @@ /datum/game_mode/meteor/proc/sendmeteors() nometeors = 1 - spawn() - var/waveduration = world.time + rand(3000,9000) - var/waitduration = rand(3000,9000) - while(waveduration - world.time > 0) - sleep(20) - spawn() spawn_meteors(6, meteors_normal) - sleep(waitduration) - nometeors = 0 + var/waveduration = world.time + rand(1500,3000) + var/waitduration = rand(3000,9000) + while(waveduration - world.time > 0) + sleep(20) + spawn() spawn_meteors(6, meteors_normal) + sleep(waitduration) + nometeors = 0 /datum/game_mode/meteor/declare_completion() var/text diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 2d568cf1f30..93b01f3951f 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -8,7 +8,7 @@ idle_power_usage = 5 active_power_usage = 1000 var/mob/occupant = null - var/circuitboard = "/obj/item/weapon/circuitboard/cyborgrecharger" + var/circuitboard = /obj/item/weapon/circuitboard/cyborgrecharger var/recharge_speed var/recharge_speed_nutrition var/repairs @@ -44,7 +44,9 @@ for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts) repairs += M.rating - 1 for(var/obj/item/weapon/stock_parts/cell/C in component_parts) - recharge_speed *= C.maxcharge / 10000 + var/multiplier = C.maxcharge / 10000 + recharge_speed *= multiplier + recharge_speed_nutrition *= multiplier /obj/machinery/recharge_station/process() if(!(NOPOWER|BROKEN)) @@ -116,8 +118,7 @@ if(!isnull(H.internal_organs_by_name["cell"]) && H.nutrition < 450) H.nutrition = min(H.nutrition+recharge_speed_nutrition, 450) if(repairs) - H.adjustBruteLoss(-(repairs)) - H.adjustFireLoss(-(repairs)) + H.heal_overall_damage(repairs, repairs, 0, 1) H.updatehealth() /obj/machinery/recharge_station/proc/go_out() diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index b2d131cc274..dba30d648b0 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -9,6 +9,7 @@ density = 1 var/datum/mind/target var/list/types = list() + var/inuse = 0 /obj/machinery/wish_granter/New() for(var/supname in all_superheroes) @@ -22,33 +23,40 @@ user << "You feel a dark stirring inside of the Wish Granter, something you want nothing of. Your instincts are better than any man's." return - else if(is_special_character(user)) + if(is_special_character(user)) user << "Even to a heart as dark as yours, you know nothing good will come of this. Something instinctual makes you pull away." + return + if(inuse) + user << "Someone is already communing with the Wish Granter." + return + + user << "The power of the Wish Granter have turned you into the superhero the station deserves. You are a masked vigilante, and answer to no man. Will you use your newfound strength to protect the innocent, or will you hunt the guilty?" + + inuse = 1 + var/wish + if(types.len == 1) + wish = pick(types) else - user << "The power of the Wish Granter have turned you into the superhero the station deserves. You are a masked vigilante, and answer to no man. Will you use your newfound strength to protect the innocent, or will you hunt the guilty?" + wish = input("You want to become...","Wish") as null|anything in types + if(!wish) + inuse=0 + return + types -= wish + var/mob/living/carbon/human/M = user + var/datum/superheroes/S = all_superheroes[wish] + if(S) + S.create(M) + inuse=0 - - var/wish - if(types.len == 1) - wish = pick(types) - else - wish = input("You want to become...","Wish") as null|anything in types - if(!wish) return - types -= wish - var/mob/living/carbon/human/M = user - var/datum/superheroes/S = all_superheroes[wish] - if(S) - S.create(M) - - //Remove the wishgranter or teleport it randomly on the station - if(!types.len) - user << "The wishgranter slowly fades into mist..." - qdel(src) - return - else - var/impact_area = findEventArea() - var/turf/T = pick(get_area_turfs(impact_area)) - if(T) - src.loc = T + //Remove the wishgranter or teleport it randomly on the station + if(!types.len) + user << "The wishgranter slowly fades into mist..." + qdel(src) + return + else + var/impact_area = findEventArea() + var/turf/T = pick(get_area_turfs(impact_area)) + if(T) + src.loc = T return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index b601427aa4d..28943a4c22b 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -265,7 +265,7 @@ //Heal MANY external organs, in random order -/mob/living/carbon/human/heal_overall_damage(var/brute, var/burn) +/mob/living/carbon/human/heal_overall_damage(var/brute, var/burn, var/internal=0, var/robotic=0) var/list/obj/item/organ/external/parts = get_damaged_organs(brute,burn) var/update = 0 @@ -275,7 +275,7 @@ var/brute_was = picked.brute_dam var/burn_was = picked.burn_dam - update |= picked.heal_damage(brute,burn) + update |= picked.heal_damage(brute,burn, internal, robotic) brute -= (brute_was-picked.brute_dam) burn -= (burn_was-picked.burn_dam)