From 9235bbd2223b2327e3f751afa69eb75c7d7a2861 Mon Sep 17 00:00:00 2001 From: ZomgPonies Date: Sun, 20 Oct 2013 00:41:03 -0400 Subject: [PATCH] Vox Fixes --- code/game/gamemodes/vox/heist/heist.dm | 29 ++++++++++++++++++++ code/game/gamemodes/vox/trade/trade.dm | 29 ++++++++++++++++++++ code/game/objects/items/weapons/cards_ids.dm | 25 +++++++++++++++-- code/modules/admin/verbs/vox_raiders.dm | 5 +++- 4 files changed, 85 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/vox/heist/heist.dm b/code/game/gamemodes/vox/heist/heist.dm index 00b9b919859..75ef808141e 100644 --- a/code/game/gamemodes/vox/heist/heist.dm +++ b/code/game/gamemodes/vox/heist/heist.dm @@ -94,6 +94,7 @@ VOX HEIST ROUNDTYPE vox.real_name = capitalize(newname) vox.name = vox.real_name + raider.name = vox.name vox.age = rand(12,20) vox.dna.mutantrace = "vox" vox.set_species("Vox") @@ -232,6 +233,34 @@ VOX HEIST ROUNDTYPE ..() +datum/game_mode/proc/auto_declare_completion_heist() + if(raiders.len) + var/check_return = 0 + if(ticker && istype(ticker.mode,/datum/game_mode/vox/heist)) + check_return = 1 + var/text = "The vox raiders were:" + + for(var/datum/mind/vox in raiders) + text += "
[vox.key] was [vox.name] (" + if(check_return) + var/obj/stack = raiders[vox] + if(get_area(stack) != locate(/area/shuttle/vox/station)) + text += "left behind)" + continue + if(vox.current) + if(vox.current.stat == DEAD) + text += "died" + else + text += "survived" + if(vox.current.real_name != vox.name) + text += " as [vox.current.real_name]" + else + text += "body destroyed" + text += ")" + + world << text + return 1 + /datum/game_mode/vox/heist/check_finished() if (!(is_vox_crew_alive()) || (vox_shuttle_location && (vox_shuttle_location == "start"))) return 1 diff --git a/code/game/gamemodes/vox/trade/trade.dm b/code/game/gamemodes/vox/trade/trade.dm index 906636471bf..b6ca65984ad 100644 --- a/code/game/gamemodes/vox/trade/trade.dm +++ b/code/game/gamemodes/vox/trade/trade.dm @@ -94,6 +94,7 @@ VOX TRADE ROUNDTYPE vox.real_name = capitalize(newname) vox.name = vox.real_name + trader.name = vox.name vox.age = rand(12,20) vox.dna.mutantrace = "vox" vox.set_species("Vox") @@ -208,6 +209,34 @@ VOX TRADE ROUNDTYPE ..() +datum/game_mode/proc/auto_declare_completion_trade() + if(traders.len) + var/check_return = 0 + if(ticker && istype(ticker.mode,/datum/game_mode/vox/trade)) + check_return = 1 + var/text = "The vox traders were:" + + for(var/datum/mind/vox in traders) + text += "
[vox.key] was [vox.name] (" + if(check_return) + var/obj/stack = traders[vox] + if(get_area(stack) != locate(/area/shuttle/vox/station)) + text += "left behind)" + continue + if(vox.current) + if(vox.current.stat == DEAD) + text += "died" + else + text += "survived" + if(vox.current.real_name != vox.name) + text += " as [vox.current.real_name]" + else + text += "body destroyed" + text += ")" + + world << text + return 1 + /datum/game_mode/vox/trade/check_finished() if (!(is_vox_crew_alive()) || (vox_shuttle_location && (vox_shuttle_location == "start"))) return 1 diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index 130ff6c4b53..f11885912ec 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -196,7 +196,7 @@ /obj/item/weapon/card/id/syndicate name = "agent card" - access = list(access_maint_tunnels, access_syndicate, access_external_airlocks) + access = list(access_maint_tunnels, access_syndicate) origin_tech = "syndicate=3" /obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob, proximity) @@ -208,7 +208,7 @@ if(user.mind.special_role) usr << "\blue The card's microscanners activate as you pass it over the ID, copying its access." - +/obj/item/weapon/card/id/syndicate/var/mob/registered_user = null /obj/item/weapon/card/id/syndicate/attack_self(mob/user as mob) if(!src.registered_name) //Stop giving the players unsanitized unputs! You are giving ways for players to intentionally crash clients! -Nodrak @@ -226,6 +226,27 @@ src.assignment = u src.name = "[src.registered_name]'s ID Card ([src.assignment])" user << "\blue You successfully forge the ID card." + registered_user = user + else if(registered_user == user) + switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) + if("Rename") + var t = copytext(sanitize(input(user, "What name would you like to put on this card?", "Agent card name", ishuman(user) ? user.real_name : user.name)),1,26) + if(!t || t == "Unknown" || t == "floor" || t == "wall" || t == "r-wall") //Same as mob/new_player/prefrences.dm + alert("Invalid name.") + return + src.registered_name = t + + var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN) + if(!u) + alert("Invalid assignment.") + src.registered_name = "" + return + src.assignment = u + src.name = "[src.registered_name]'s ID Card ([src.assignment])" + user << "\blue You successfully forge the ID card." + return + if("Show") + ..() else ..() diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index 598a0b89546..8d17ba10d90 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -60,9 +60,10 @@ var/global/vox_tick = 1 var/obj/item/weapon/card/id/syndicate/W = new(src) W.name = "[real_name]'s Legitimate Human ID Card" W.icon_state = "id" - W.access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage, access_syndicate) + W.access = list(access_syndicate) W.assignment = "Trader" W.registered_name = real_name + W.registered_user = src equip_to_slot_or_del(W, slot_wear_id) var/obj/item/weapon/implant/cortical/I = new(src) @@ -75,9 +76,11 @@ var/global/vox_tick = 1 if(ticker.mode && ( istype(ticker.mode,/datum/game_mode/vox/heist) ) ) var/datum/game_mode/vox/heist/M = ticker.mode M.cortical_stacks += I + M.raiders[mind] = I else if(ticker.mode && ( istype(ticker.mode,/datum/game_mode/vox/trade) ) ) var/datum/game_mode/vox/trade/M = ticker.mode M.cortical_stacks += I + M.traders[mind] = I vox_tick++ if (vox_tick > 4) vox_tick = 1