From 2783ce0a4281ccdcdfa6bbbf1d7f5c454a0d8e5b Mon Sep 17 00:00:00 2001 From: Incoming Date: Sat, 4 Jun 2016 23:57:24 -0400 Subject: [PATCH] in game votes now provoke an action button, even as a ghost or a new_player on the title screen --- code/_onclick/hud/action_button.dm | 8 -------- code/controllers/subsystem/voting.dm | 23 ++++++++++++++++++++++ code/datums/action.dm | 28 +++++++++++++-------------- icons/mob/actions.dmi | Bin 83351 -> 83736 bytes 4 files changed, 37 insertions(+), 22 deletions(-) diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm index 73a1576deeb..106baedf8a1 100644 --- a/code/_onclick/hud/action_button.dm +++ b/code/_onclick/hud/action_button.dm @@ -60,21 +60,13 @@ closeToolTip(usr) - -//used to update the buttons icon. /mob/proc/update_action_buttons_icon() - return - -/mob/living/update_action_buttons_icon() for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() //This is the proc used to update all the action buttons. /mob/proc/update_action_buttons(reload_screen) - return - -/mob/living/update_action_buttons(reload_screen) if(!hud_used || !client) return diff --git a/code/controllers/subsystem/voting.dm b/code/controllers/subsystem/voting.dm index 6279e25fc84..87ec63891c9 100644 --- a/code/controllers/subsystem/voting.dm +++ b/code/controllers/subsystem/voting.dm @@ -14,6 +14,7 @@ var/datum/subsystem/vote/SSvote var/list/choices = list() var/list/voted = list() var/list/voting = list() + var/list/generated_actions = list() /datum/subsystem/vote/New() NEW_SS_GLOBAL(SSvote) @@ -44,6 +45,7 @@ var/datum/subsystem/vote/SSvote choices.Cut() voted.Cut() voting.Cut() + remove_action_buttons() /datum/subsystem/vote/proc/get_result() //get the highest number of votes @@ -100,6 +102,7 @@ var/datum/subsystem/vote/SSvote else text += "Vote Result: Inconclusive - No Votes!" log_vote(text) + remove_action_buttons() world << "\n[text]" return . @@ -186,6 +189,10 @@ var/datum/subsystem/vote/SSvote log_vote(text) world << "\n[text]\nType vote or click here to place your votes.\nYou have [config.vote_period/10] seconds to vote." time_remaining = round(config.vote_period/10) + for(var/client/C in clients) + var/datum/action/vote/V = new + V.Grant(C.mob) + generated_actions += V return 1 return 0 @@ -271,6 +278,11 @@ var/datum/subsystem/vote/SSvote submit_vote(round(text2num(href_list["vote"]))) usr.vote() +/datum/subsystem/vote/proc/remove_action_buttons() + for(var/datum/action/vote/V in generated_actions) + if(!qdeleted(V)) + V.Remove(V.owner) + generated_actions = list() /mob/verb/vote() set category = "OOC" @@ -281,3 +293,14 @@ var/datum/subsystem/vote/SSvote popup.set_content(SSvote.interface(client)) popup.open(0) +/datum/action/vote + name = "Vote!" + button_icon_state = "vote" + +/datum/action/vote/Trigger() + if(owner) + owner.vote() + Remove(owner) + +/datum/action/vote/IsAvailable() + return 1 \ No newline at end of file diff --git a/code/datums/action.dm b/code/datums/action.dm index 91e30b03a2e..4f3bc9ee301 100644 --- a/code/datums/action.dm +++ b/code/datums/action.dm @@ -13,7 +13,7 @@ var/button_icon = 'icons/mob/actions.dmi' var/button_icon_state = "default" var/background_icon_state = "bg_default" - var/mob/living/owner + var/mob/owner /datum/action/New(Target) target = Target @@ -29,23 +29,23 @@ button = null return ..() -/datum/action/proc/Grant(mob/living/L) +/datum/action/proc/Grant(mob/M) if(owner) - if(owner == L) + if(owner == M) return Remove(owner) - owner = L - L.actions += src - if(L.client) - L.client.screen += button - L.update_action_buttons() + owner = M + M.actions += src + if(M.client) + M.client.screen += button + M.update_action_buttons() -/datum/action/proc/Remove(mob/living/L) - if(L.client) - L.client.screen -= button +/datum/action/proc/Remove(mob/M) + if(M.client) + M.client.screen -= button button.moved = FALSE //so the button appears in its normal position when given to another owner. - L.actions -= src - L.update_action_buttons() + M.actions -= src + M.update_action_buttons() owner = null /datum/action/proc/Trigger() @@ -256,7 +256,7 @@ owner << "Research analyzer is now [owner.research_scanner ? "active" : "deactivated"]." return 1 -/datum/action/item_action/toggle_research_scanner/Remove(mob/living/L) +/datum/action/item_action/toggle_research_scanner/Remove(mob/M) if(owner) owner.research_scanner = 0 ..() diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi index d9724cd6f1683c6a738637c4274f37a1e005c1cd..08dc8e194289f8a68696e249d5e9f6027dfa162e 100644 GIT binary patch delta 6135 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 JPDHLkV1nOI_-_CJ delta 5747 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