From 33cd27e032bb0bb44b6078bfe11b8a8a10b94392 Mon Sep 17 00:00:00 2001 From: Jeremy Liberman Date: Tue, 3 Jun 2014 21:26:34 -0500 Subject: [PATCH] Prevents mindless candidates for mutiny mode, adds loyalists/mutineers to AntagHUD, allows admins to reassign heads, and adds remaining Directive X objectives to Check Antagonists panel. Conflicts: code/__HELPERS/names.dm code/modules/mob/living/carbon/human/life.dm code/modules/mob/mob.dm code/modules/mob/new_player/new_player.dm --- baystation12.dme | 1 + code/__HELPERS/names.dm | 4 +- code/game/gamemodes/mutiny/directive.dm | 3 + .../directives/alien_fraud_directive.dm | 2 +- .../bluespace_contagion_directive.dm | 6 ++ .../directives/financial_crisis_directive.dm | 2 +- .../mutiny/directives/ipc_virus_directive.dm | 13 +++ .../research_to_ripleys_directive.dm | 13 ++- .../tau_ceti_needs_women_directive.dm | 13 ++- .../directives/terminations_directive.dm | 15 ++++ code/game/gamemodes/mutiny/mutiny.dm | 90 +++++-------------- code/game/gamemodes/mutiny/mutiny_admin.dm | 83 +++++++++++++++++ code/game/gamemodes/mutiny/mutiny_fluff.dm | 12 +-- code/modules/mob/living/carbon/human/life.dm | 5 +- code/modules/mob/mob.dm | 4 +- code/modules/mob/new_player/new_player.dm | 2 +- 16 files changed, 183 insertions(+), 85 deletions(-) create mode 100644 code/game/gamemodes/mutiny/mutiny_admin.dm diff --git a/baystation12.dme b/baystation12.dme index 0f922bf5e64..f902bfd9608 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -281,6 +281,7 @@ #include "code\game\gamemodes\mutiny\emergency_authentication_device.dm" #include "code\game\gamemodes\mutiny\key_pinpointer.dm" #include "code\game\gamemodes\mutiny\mutiny.dm" +#include "code\game\gamemodes\mutiny\mutiny_admin.dm" #include "code\game\gamemodes\mutiny\mutiny_fluff.dm" #include "code\game\gamemodes\mutiny\mutiny_hooks.dm" #include "code\game\gamemodes\mutiny\directives\alien_fraud_directive.dm" diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm index d2a82a034cf..06f45b6899c 100644 --- a/code/__HELPERS/names.dm +++ b/code/__HELPERS/names.dm @@ -43,6 +43,8 @@ var/religion_name = null return capitalize(name) +/proc/system_name() + return "Tau Ceti" /proc/station_name() if (station_name) @@ -321,4 +323,4 @@ var/syndicate_code_response//Code response for traitors. if(5) return -*/ \ No newline at end of file +*/ diff --git a/code/game/gamemodes/mutiny/directive.dm b/code/game/gamemodes/mutiny/directive.dm index 3cb9071dc73..857e0730eca 100644 --- a/code/game/gamemodes/mutiny/directive.dm +++ b/code/game/gamemodes/mutiny/directive.dm @@ -21,6 +21,9 @@ datum/directive proc/initialize() return 1 + proc/get_remaining_orders() + return "" + /proc/get_directive(type) var/datum/game_mode/mutiny/mode = get_mutiny_mode() if(!mode || !mode.current_directive || !istype(mode.current_directive, text2path("/datum/directive/[type]"))) diff --git a/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm b/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm index 107adb05613..bbe91a88cc2 100644 --- a/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm +++ b/code/game/gamemodes/mutiny/directives/alien_fraud_directive.dm @@ -19,7 +19,7 @@ datum/directive/terminations/alien_fraud/get_description() return {"

An extensive conspiracy network aimed at defrauding NanoTrasen of large amounts of funds has been uncovered - operating within Tau Ceti. Human personnel are not suspected to be involved. Further information is classified. + operating within [system_name()]. Human personnel are not suspected to be involved. Further information is classified.

"} diff --git a/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm b/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm index 6c2724803ea..764e9a21c08 100644 --- a/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm +++ b/code/game/gamemodes/mutiny/directives/bluespace_contagion_directive.dm @@ -43,6 +43,12 @@ datum/directive/bluespace_contagion/meets_prerequisites() datum/directive/bluespace_contagion/directives_complete() return infected.len == 0 +datum/directive/bluespace_contagion/get_remaining_orders() + var/text = "" + for(var/victim in infected) + text += "
  • Kill [victim]
  • " + return text + /hook/death/proc/infected_killed(mob/living/carbon/human/deceased, gibbed) var/datum/directive/bluespace_contagion/D = get_directive("bluespace_contagion") if(!D) return 1 diff --git a/code/game/gamemodes/mutiny/directives/financial_crisis_directive.dm b/code/game/gamemodes/mutiny/directives/financial_crisis_directive.dm index 5de523eaae3..1041dcc6048 100644 --- a/code/game/gamemodes/mutiny/directives/financial_crisis_directive.dm +++ b/code/game/gamemodes/mutiny/directives/financial_crisis_directive.dm @@ -15,7 +15,7 @@ datum/directive/terminations/financial_crisis/get_crew_to_terminate() datum/directive/terminations/financial_crisis/get_description() return {"

    - Tau Ceti system banks in financial crisis. Local emergency situation ongoing. + [system_name()] system banks in financial crisis. Local emergency situation ongoing. NT Funds redistributed, impact upon civilian department expected. Further information is classified.

    diff --git a/code/game/gamemodes/mutiny/directives/ipc_virus_directive.dm b/code/game/gamemodes/mutiny/directives/ipc_virus_directive.dm index 76f6f1bd3dc..b9f35170943 100644 --- a/code/game/gamemodes/mutiny/directives/ipc_virus_directive.dm +++ b/code/game/gamemodes/mutiny/directives/ipc_virus_directive.dm @@ -49,6 +49,19 @@ datum/directive/ipc_virus/meets_prerequisites() datum/directive/ipc_virus/directives_complete() return brains_to_enslave.len == 0 && cyborgs_to_make.len == 0 && ids_to_terminate.len == 0 +datum/directive/ipc_virus/get_remaining_orders() + var/text = "" + for(var/brain in brains_to_enslave) + text += "
  • Debrain [brain]
  • " + + for(var/brain in cyborgs_to_make) + text += "
  • Borgify [brain]
  • " + + for(var/id in ids_to_terminate) + text += "
  • Terminate [id]
  • " + + return text + /hook/debrain/proc/debrain_directive(obj/item/brain/B) var/datum/directive/ipc_virus/D = get_directive("ipc_virus") if (!D) return 1 diff --git a/code/game/gamemodes/mutiny/directives/research_to_ripleys_directive.dm b/code/game/gamemodes/mutiny/directives/research_to_ripleys_directive.dm index 63657def192..b3224394cbd 100644 --- a/code/game/gamemodes/mutiny/directives/research_to_ripleys_directive.dm +++ b/code/game/gamemodes/mutiny/directives/research_to_ripleys_directive.dm @@ -25,7 +25,7 @@ datum/directive/research_to_ripleys datum/directive/research_to_ripleys/get_description() return {"

    - The NanoTrasen Tau Ceti Manufactory faces an ore deficit. Financial crisis imminent. [station_name()] has been reassigned as a mining platform. + The NanoTrasen [system_name()] Manufactory faces an ore deficit. Financial crisis imminent. [station_name()] has been reassigned as a mining platform. The Research Director is to assist the Head of Personnel in coordinating assets. Weapons department reports solid sales. Further information is classified.

    @@ -47,6 +47,17 @@ datum/directive/research_to_ripleys/directives_complete() if (materials_shipped < MATERIALS_REQUIRED) return 0 return count_researchers_reassigned() == ids_to_reassign.len +datum/directive/research_to_ripleys/get_remaining_orders() + var/text = "" + if(MATERIALS_REQUIRED > materials_shipped) + text += "
  • Ship [MATERIALS_REQUIRED - materials_shipped] sheets of metal or minerals.
  • " + + for(var/id in ids_to_reassign) + if(!ids_to_reassign[id]) + text += "
  • Reassign [id] to Shaft Miner
  • " + + return text + /hook/reassign_employee/proc/research_reassignments(obj/item/weapon/card/id/id_card) var/datum/directive/research_to_ripleys/D = get_directive("research_to_ripleys") if(!D) return 1 diff --git a/code/game/gamemodes/mutiny/directives/tau_ceti_needs_women_directive.dm b/code/game/gamemodes/mutiny/directives/tau_ceti_needs_women_directive.dm index f7037955cb2..3e1418cc8f9 100644 --- a/code/game/gamemodes/mutiny/directives/tau_ceti_needs_women_directive.dm +++ b/code/game/gamemodes/mutiny/directives/tau_ceti_needs_women_directive.dm @@ -43,7 +43,7 @@ datum/directive/tau_ceti_needs_women datum/directive/tau_ceti_needs_women/get_description() return {"

    - Recent evidence suggests [get_target_gender()] aptitudes may be effected by radiation from Tau Ceti. + Recent evidence suggests [get_target_gender()] aptitudes may be effected by radiation from [system_name()]. Effects were measured under laboratory and station conditions. Humans remain more trusted than Xeno. Further information is classified.

    "} @@ -75,6 +75,17 @@ datum/directive/tau_ceti_needs_women/meets_prerequisites() datum/directive/tau_ceti_needs_women/directives_complete() return command_targets.len == count_heads_reassigned() && alien_targets.len == 0 +datum/directive/tau_ceti_needs_women/get_remaining_orders() + var/text = "" + for(var/head in command_targets) + if(!command_targets[head]) + text += "
  • Remove [head] from a Head Role
  • " + + for(var/id in alien_targets) + text += "
  • Terminate [id]
  • " + + return text + /hook/reassign_employee/proc/command_reassignments(obj/item/weapon/card/id/id_card) var/datum/directive/tau_ceti_needs_women/D = get_directive("tau_ceti_needs_women") if(!D) return 1 diff --git a/code/game/gamemodes/mutiny/directives/terminations_directive.dm b/code/game/gamemodes/mutiny/directives/terminations_directive.dm index 894db30ca40..f71b4b5e6b0 100644 --- a/code/game/gamemodes/mutiny/directives/terminations_directive.dm +++ b/code/game/gamemodes/mutiny/directives/terminations_directive.dm @@ -28,6 +28,21 @@ datum/directive/terminations/initialize() accounts_to_suspend["[account.account_number]"] = account.suspended ids_to_terminate+=(H.wear_id) +datum/directive/terminations/get_remaining_orders() + var/text = "" + for(var/account_number in accounts_to_suspend) + if(!accounts_to_suspend[account_number]) + text += "
  • Suspend Account #[account_number]
  • " + + for(var/account_number in accounts_to_revoke) + if(!accounts_to_revoke[account_number]) + text += "
  • Revoke Account #[account_number]
  • " + + for(var/id in ids_to_terminate) + text += "
  • Terminate [id]
  • " + + return text + /hook/revoke_payroll/proc/payroll_directive(datum/money_account/account) var/datum/directive/terminations/D = get_directive("terminations") if (!D) return 1 diff --git a/code/game/gamemodes/mutiny/mutiny.dm b/code/game/gamemodes/mutiny/mutiny.dm index b0b90f6320d..a64525f4c64 100644 --- a/code/game/gamemodes/mutiny/mutiny.dm +++ b/code/game/gamemodes/mutiny/mutiny.dm @@ -87,18 +87,29 @@ datum/game_mode/mutiny "right hand" = slot_r_hand) proc/equip_head_loyalist() - var/mob/living/carbon/human/H = head_loyalist.current - captains_key = new(H) - H.equip_in_one_of_slots(captains_key, get_equipment_slots()) - H.update_icons() - H.verbs += /mob/living/carbon/human/proc/recruit_loyalist + equip_head(head_loyalist, "loyalist", /mob/living/carbon/human/proc/recruit_loyalist) proc/equip_head_mutineer() - var/mob/living/carbon/human/H = head_mutineer.current - secondary_key = new(H) - H.equip_in_one_of_slots(secondary_key, get_equipment_slots()) + equip_head(head_mutineer, "mutineer", /mob/living/carbon/human/proc/recruit_mutineer) + + proc/equip_head(datum/mind/head, faction, proc/recruitment_verb) + var/mob/living/carbon/human/H = head.current + H << "You are the Head [capitalize(faction)]!" + head.special_role = "head_[faction]" + + var/slots = get_equipment_slots() + switch(faction) + if("loyalist") + if(captains_key) del(captains_key) + captains_key = new(H) + H.equip_in_one_of_slots(captains_key, slots) + if("mutineer") + if(secondary_key) del(secondary_key) + secondary_key = new(H) + H.equip_in_one_of_slots(secondary_key, slots) + H.update_icons() - H.verbs += /mob/living/carbon/human/proc/recruit_mutineer + H.verbs += recruitment_verb proc/add_loyalist(datum/mind/M) add_faction(M, "loyalist", loyalists) @@ -217,48 +228,6 @@ datum/game_mode/mutiny return 1 - proc/check_antagonists_ui(admins) - var/turf/captains_key_loc = captains_key ? captains_key.get_loc_turf() : "Lost or Destroyed" - var/turf/secondary_key_loc = secondary_key ? secondary_key.get_loc_turf() : "Lost or Destroyed" - var/txt = {" -
    Context:
    -

    - [current_directive.get_description()] -

    -
    Orders:
    -
      - [fluff.get_orders()] -
    -
    -
    Authentication:
    - Captain's Key: [captains_key_loc] - Activate
    - Secondary Key: [secondary_key_loc] - Activate
    - EAD: [ead ? ead.get_status() : "Lost or Destroyed"] - Activate
    -
    - "} - - if(head_loyalist) - txt += check_role_table("Head Loyalist", list(head_loyalist), admins, 0) - - var/list/loyal_crew = loyalists - head_loyalist - if(loyal_crew.len) - txt += check_role_table("Loyalists", loyal_crew, admins, 0) - - if(head_mutineer) - txt += check_role_table("Head Mutineer", list(head_mutineer), admins, 0) - - var/list/mutiny_crew = mutineers - head_mutineer - if(mutiny_crew.len) - txt += check_role_table("Mutineers", mutiny_crew, admins, 0) - - if(body_count.len) - txt += check_role_table("Casualties", body_count, admins, 0) - - return txt - /datum/game_mode/mutiny/announce() fluff.announce() @@ -285,12 +254,7 @@ datum/game_mode/mutiny return 1 /datum/game_mode/mutiny/post_setup() - head_loyalist.current << "You are the Head Loyalist!" - head_loyalist.special_role = "head_loyalist" equip_head_loyalist() - - head_mutineer.current << "You are the Head Mutineer!" - head_mutineer.special_role = "head_mutineer" equip_head_mutineer() loyalists+=head_loyalist @@ -306,20 +270,6 @@ datum/game_mode/mutiny reveal_directives() ..() -/datum/game_mode/mutiny/check_antagonists_topic(href, href_list[]) - switch(href_list["choice"]) - if("activate_captains_key") - ead.captains_key = 1 - return 1 - if("activate_secondary_key") - ead.secondary_key = 1 - return 1 - if("activate_ead") - ead.activated = 1 - return 1 - else - return 0 - /mob/living/carbon/human/proc/recruit_loyalist() set name = "Recruit Loyalist" set category = "Mutiny" diff --git a/code/game/gamemodes/mutiny/mutiny_admin.dm b/code/game/gamemodes/mutiny/mutiny_admin.dm new file mode 100644 index 00000000000..2ba08def2d9 --- /dev/null +++ b/code/game/gamemodes/mutiny/mutiny_admin.dm @@ -0,0 +1,83 @@ +/datum/game_mode/mutiny/proc/check_antagonists_ui(admins) + var/turf/captains_key_loc = captains_key ? captains_key.get_loc_turf() : "Lost or Destroyed" + var/turf/secondary_key_loc = secondary_key ? secondary_key.get_loc_turf() : "Lost or Destroyed" + var/remaining_objectives = current_directive.get_remaining_orders() + var/txt = {" +
    Context:
    +

    + [current_directive.get_description()] +

    +
    Orders:
    +
      + [fluff.get_orders()] +
    +
    +
    Remaining Objectives
    +
      + [remaining_objectives ? remaining_objectives : "
    1. None
    2. "] +
    +
    +
    Authentication:
    + Captain's Key: [captains_key_loc] + Activate
    + Secondary Key: [secondary_key_loc] + Activate
    + EAD: [ead ? ead.get_status() : "Lost or Destroyed"] + Activate
    +
    + "} + + txt += "Reassign Head Loyalist
    " + if(head_loyalist) + txt += check_role_table("Head Loyalist", list(head_loyalist), admins, 0) + + var/list/loyal_crew = loyalists - head_loyalist + if(loyal_crew.len) + txt += check_role_table("Loyalists", loyal_crew, admins, 0) + + txt += "Reassign Head Mutineer
    " + if(head_mutineer) + txt += check_role_table("Head Mutineer", list(head_mutineer), admins, 0) + + var/list/mutiny_crew = mutineers - head_mutineer + if(mutiny_crew.len) + txt += check_role_table("Mutineers", mutiny_crew, admins, 0) + + if(body_count.len) + txt += check_role_table("Casualties", body_count, admins, 0) + + return txt + +/datum/game_mode/mutiny/check_antagonists_topic(href, href_list[]) + switch(href_list["choice"]) + if("activate_captains_key") + ead.captains_key = 1 + return 1 + if("activate_secondary_key") + ead.secondary_key = 1 + return 1 + if("activate_ead") + ead.activated = 1 + return 1 + if("reassign_head_loyalist") + var/mob/M = get_reassignment_candidate("Loyalist") + if(M) + head_loyalist = M.mind + equip_head_loyalist() + return 1 + if("reassign_head_mutineer") + var/mob/M = get_reassignment_candidate("Mutineer") + if(M) + head_mutineer = M.mind + equip_head_mutineer() + return 1 + else + return 0 + +/datum/game_mode/mutiny/proc/get_reassignment_candidate(faction) + var/list/targets[0] + for(var/mob/living/carbon/human/H in player_list) + if(H.is_ready() && !H.is_dead()) + targets.Add(H) + + return input("Select a player to lead the [faction] faction.", "Head [faction] reassignment", null) as mob in targets diff --git a/code/game/gamemodes/mutiny/mutiny_fluff.dm b/code/game/gamemodes/mutiny/mutiny_fluff.dm index 2ac235c5f9f..dc97e23c9e5 100644 --- a/code/game/gamemodes/mutiny/mutiny_fluff.dm +++ b/code/game/gamemodes/mutiny/mutiny_fluff.dm @@ -154,7 +154,7 @@ Both keys are required to activate the Emergency Authentication Device (EAD)< proc/loyalist_major_victory() return {" -NanoTrasen has praised the efforts of Captain [mode.head_loyalist] and loyal members of [their(mode.head_loyalist)] crew, who recently managed to put down a mutiny--amid a local interstellar crisis--aboard the [station_name()], a research station in Tau Ceti. +NanoTrasen has praised the efforts of Captain [mode.head_loyalist] and loyal members of [their(mode.head_loyalist)] crew, who recently managed to put down a mutiny--amid a local interstellar crisis--aboard the [station_name()], a research station in [system_name()]. The mutiny was spurred by a top secret directive sent to the station, presumably in response to the crisis within the system. Despite the mutiny, the crew was successful in implementing the directive and activating their on-board emergency authentication device. [mode.mutineers.len] members of the station's personnel were charged with sedition against the company and if found guilty will be sentenced to life incarceration. @@ -165,7 +165,7 @@ NanoTrasen will be awarding [mode.loyalists.len] members of the crew with the [l proc/loyalist_minor_victory() return {" -NanoTrasen has praised the efforts of Captain [mode.head_loyalist] and loyal members of [their(mode.head_loyalist)] crew, who recently managed to put down a mutiny--amid a local interstellar crisis--aboard the [station_name()], a research station in Tau Ceti. +NanoTrasen has praised the efforts of Captain [mode.head_loyalist] and loyal members of [their(mode.head_loyalist)] crew, who recently managed to put down a mutiny--amid a local interstellar crisis--aboard the [station_name()], a research station in [system_name()]. The mutiny was spurred by a top secret directive sent to the station, presumably in response to the crisis within the system. Despite the mutiny, the crew was successful in implementing the directive. Unfortunately, they failed to notify Central Command of their successes due to a breach in the chain of command. [mode.mutineers.len] members of the station's personnel were charged with sedition against the Company and if found guilty will be sentenced to life incarceration. @@ -176,7 +176,7 @@ NanoTrasen will be awarding [mode.loyalists.len] members of the crew with the [l proc/no_victory() return {" -NanoTrasen has been thrust into turmoil following an apparent mutiny by key personnel aboard the [station_name()], a research station in Tau Ceti. +NanoTrasen has been thrust into turmoil following an apparent mutiny by key personnel aboard the [station_name()], a research station in [system_name()]. The mutiny was spurred by a top secret directive sent to the station, presumably in response to the crisis within the system. No further information has yet emerged from the station or its crew, who are presumed to be in holding with NanoTrasen investigators. NanoTrasen officials refuse to comment. @@ -187,7 +187,7 @@ Sources indicate that [mode.mutineers.len] members of the station's personnel ar proc/mutineer_minor_victory() return {" -Reports have emerged that an impromptu mutiny has taken place, amid a local interstellar crisis, aboard the [station_name()], a research station in Tau Ceti. +Reports have emerged that an impromptu mutiny has taken place, amid a local interstellar crisis, aboard the [station_name()], a research station in [system_name()]. The mutiny was spurred by a top secret directive sent to the station, presumably in response to the crisis within the system. Information at present indicates that the top-secret directive--which has since been retracted--was invalid due to a broken authentication code. Members of the crew, including an unidentified Head of Staff, prevented the directive from being accomplished. [mode.mutineers.len] members of the station's personnel were released from interrogations today, following a mutiny investigation. @@ -198,7 +198,7 @@ NanoTrasen has reprimanded [mode.loyalists.len] members of the crew for failing proc/mutineer_major_victory() return {" -NanoTrasen has praised the efforts of [mode.head_mutineer.assigned_role] [mode.head_mutineer] and several other members of the crew, who recently seized control of a research station in Tau Ceti--[station_name()]--amid a local interstellar crisis. +NanoTrasen has praised the efforts of [mode.head_mutineer.assigned_role] [mode.head_mutineer] and several other members of the crew, who recently seized control of a research station in [system_name()]--[station_name()]--amid a local interstellar crisis. What appears to have been a "legitimate" mutiny was spurred by a top secret directive sent to the station, presumably in response to the crisis within the system. It has been revealed that the directive was invalid and fraudulent. Company officials have not released a statement about the source of the directive. Thanks to the efforts of the resistant members of the crew, the directive was not carried out. @@ -225,7 +225,7 @@ D: Mr. Mitchell, first you send cryptic messages to my office and then you reque
    \[Sound of the internal airlock door shutting\]
    TM: Do you remember Mallory?
    D: Who?
    -TM: It's not who, it's what. The computer program we planted in the Tau Ceti communications satellite.
    +TM: It's not who, it's what. The computer program we planted in the [system_name()] communications satellite.
    D: What is so important about this computer program?
    TM: We call her an eavesdropper. Captures network traffic, records it, and forwards the stream to the receiver autonomously.
    D: Speak English goddamnit.
    diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 9eefe35663e..b41decdfde1 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -2004,9 +2004,12 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc holder.icon_state = "hudvampthrall" if("head_loyalist") holder.icon_state = "loyalist" + if("loyalist") + holder.icon_state = "loyalist" if("head_mutineer") holder.icon_state = "mutineer" - + if("mutineer") + holder.icon_state = "mutineer" hud_list[SPECIALROLE_HUD] = holder diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index efcd7d1f212..1962de46c82 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -808,7 +808,7 @@ var/list/slot_equipment_priority = list( \ return istype(src, /mob/living/silicon) || get_species() == "Machine" /mob/proc/is_ready() - return !!client + return client && !!mind /mob/proc/get_gender() return gender @@ -1215,4 +1215,4 @@ mob/proc/yank_out_object() if(host) host.ckey = src.ckey - host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent." \ No newline at end of file + host << "You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent." diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 27d50934019..cfa8d407a9a 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -510,4 +510,4 @@ return client.prefs.gender /mob/new_player/is_ready() - return ready && !!client + return ready && ..()