From 59edd0f0d8b4570387835c477bb2a18af6efaab5 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sat, 14 Nov 2015 10:55:56 -0500 Subject: [PATCH 1/2] Fixes bug allowing player to multiclick WG --- code/game/machinery/wishgranter.dm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index b2d131cc274..8f662dab107 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) @@ -24,22 +25,30 @@ else 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 + + else if(inuse) + user << "Someone is already communing with the Wish Granter." + return 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?" - + inuse = 1 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 + 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 //Remove the wishgranter or teleport it randomly on the station if(!types.len) From 0817c907d91f5846e328422dd2cbcbe45692a941 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 15 Nov 2015 12:10:42 -0500 Subject: [PATCH 2/2] Fixed up if/elseif chains --- code/game/machinery/wishgranter.dm | 55 +++++++++++++++--------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/code/game/machinery/wishgranter.dm b/code/game/machinery/wishgranter.dm index 8f662dab107..dba30d648b0 100644 --- a/code/game/machinery/wishgranter.dm +++ b/code/game/machinery/wishgranter.dm @@ -23,41 +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 - else if(inuse) + 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?" - - inuse = 1 - var/wish - if(types.len == 1) - wish = pick(types) - else - 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) + 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 - //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