From 6a956d0d0a436634ee3ec40ce09f192cf2412114 Mon Sep 17 00:00:00 2001 From: PsiOmegaDelta Date: Mon, 7 Sep 2015 09:22:25 +0200 Subject: [PATCH] Uplink fixes. Adds a default welcome message. Was lost in a game mode cleanup. Traitors should now have telecrystals again. Also lost in the game mode cleanup. Uplinks without correctly defined owners are now also printed in the round end summary. --- code/game/antagonist/antagonist_print.dm | 23 +++++++++++++++++----- code/game/antagonist/outsider/mercenary.dm | 4 +--- code/game/gamemodes/game_mode.dm | 2 ++ code/game/objects/items/devices/uplink.dm | 19 +++++++++--------- 4 files changed, 31 insertions(+), 17 deletions(-) diff --git a/code/game/antagonist/antagonist_print.dm b/code/game/antagonist/antagonist_print.dm index c25ea20747..750a3ceb35 100644 --- a/code/game/antagonist/antagonist_print.dm +++ b/code/game/antagonist/antagonist_print.dm @@ -72,13 +72,26 @@ if(H && H.uplink_owner && H.uplink_owner == ply) TC_uses += H.used_TC uplink_true = 1 - var/list/refined_log = new() - for(var/datum/uplink_item/UI in H.purchase_log) - refined_log.Add("[H.purchase_log[UI]]x[UI.log_icon()][UI.name]") - purchases = english_list(refined_log, nothing_text = "") + purchases += get_uplink_purchases(H) if(uplink_true) text += " (used [TC_uses] TC)" if(purchases) text += "
[purchases]" - return text \ No newline at end of file + return text + +/proc/print_ownerless_uplinks() + var/has_printed = 0 + for(var/obj/item/device/uplink/H in world_uplinks) + if(isnull(H.uplink_owner) && H.used_TC) + if(!has_printed) + has_printed = 1 + world << "Ownerless Uplinks" + world << "[H.loc] (used [H.used_TC] TC)" + world << get_uplink_purchases(H) + +/proc/get_uplink_purchases(var/obj/item/device/uplink/H) + var/list/refined_log = new() + for(var/datum/uplink_item/UI in H.purchase_log) + refined_log.Add("[H.purchase_log[UI]]x[UI.log_icon()][UI.name]") + . = english_list(refined_log, nothing_text = "") diff --git a/code/game/antagonist/outsider/mercenary.dm b/code/game/antagonist/outsider/mercenary.dm index f703818e47..7315eb418f 100644 --- a/code/game/antagonist/outsider/mercenary.dm +++ b/code/game/antagonist/outsider/mercenary.dm @@ -45,9 +45,7 @@ var/datum/antagonist/mercenary/mercs player.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/pill/cyanide(player), slot_in_backpack) if (player.mind == leader) - var/obj/item/device/radio/uplink/U = new(player.loc) - U.hidden_uplink.uplink_owner = player.mind - U.hidden_uplink.uses = 40 + var/obj/item/device/radio/uplink/U = new(player.loc, player.mind, 40) player.put_in_hands(U) player.update_icons() diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 18e9e83bdf..fcb8fa3eac 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -292,6 +292,8 @@ var/global/list/additional_antag_types = list() sleep(10) antag.check_victory() antag.print_player_summary() + sleep(10) + print_ownerless_uplinks() var/clients = 0 var/surviving_humans = 0 diff --git a/code/game/objects/items/devices/uplink.dm b/code/game/objects/items/devices/uplink.dm index 2023c881a9..5675877d39 100644 --- a/code/game/objects/items/devices/uplink.dm +++ b/code/game/objects/items/devices/uplink.dm @@ -7,13 +7,13 @@ A list of items and costs is stored under the datum of every game mode, alongsid */ /obj/item/device/uplink - var/welcome // Welcoming menu message - var/uses // Numbers of crystals - var/list/ItemsCategory // List of categories with lists of items - var/list/ItemsReference // List of references with an associated item - var/list/nanoui_items // List of items for NanoUI use - var/nanoui_menu = 0 // The current menu we are in - var/list/nanoui_data = new // Additional data for NanoUI use + var/welcome = "Welcome, Operative" // Welcoming menu message + var/uses // Numbers of crystals + var/list/ItemsCategory // List of categories with lists of items + var/list/ItemsReference // List of references with an associated item + var/list/nanoui_items // List of items for NanoUI use + var/nanoui_menu = 0 // The current menu we are in + var/list/nanoui_data = new // Additional data for NanoUI use var/list/purchase_log = new var/datum/mind/uplink_owner = null @@ -22,11 +22,12 @@ A list of items and costs is stored under the datum of every game mode, alongsid /obj/item/device/uplink/nano_host() return loc -/obj/item/device/uplink/New(var/location, var/datum/mind/owner) +/obj/item/device/uplink/New(var/location, var/datum/mind/owner, var/telecrystals = DEFAULT_TELECRYSTAL_AMOUNT) ..() src.uplink_owner = owner purchase_log = list() world_uplinks += src + uses = telecrystals /obj/item/device/uplink/Destroy() world_uplinks -= src @@ -212,4 +213,4 @@ A list of items and costs is stored under the datum of every game mode, alongsid /obj/item/device/radio/headset/uplink/New() ..() hidden_uplink = new(src) - hidden_uplink.uses = 10 + hidden_uplink.uses = DEFAULT_TELECRYSTAL_AMOUNT