From 8446632fbc9b6f405800ef8ff6a1fa3eb36e002e Mon Sep 17 00:00:00 2001 From: Fox McCloud Date: Sat, 6 Apr 2019 20:30:04 -0400 Subject: [PATCH 1/2] The Nations Update Everyone Deserves! --- code/__DEFINES/gamemode.dm | 1 - code/__DEFINES/hud.dm | 23 +- code/__HELPERS/global_lists.dm | 1 - code/_globalvars/lists/mobs.dm | 1 - code/datums/mind.dm | 1 - code/game/gamemodes/nations/nations.dm | 256 ------------------ code/game/gamemodes/nations/nationsdatums.dm | 38 --- code/game/gamemodes/nations/nationsprocs.dm | 120 -------- code/game/machinery/computer/aifixer.dm | 7 +- code/game/machinery/computer/law.dm | 24 +- code/game/machinery/computer/robot.dm | 7 +- code/game/objects/items/flag.dm | 4 +- code/modules/antagonists/_common/antag_hud.dm | 12 +- code/modules/mob/dead/observer/observer.dm | 5 +- code/modules/mob/living/carbon/human/human.dm | 6 - .../mob/living/carbon/human/human_defines.dm | 2 +- code/modules/mob/living/life.dm | 10 +- code/modules/mob/living/silicon/ai/life.dm | 9 - .../modules/mob/living/silicon/robot/robot.dm | 33 +-- .../mob/living/silicon/robot/robot_modules.dm | 16 -- code/modules/mob/living/silicon/silicon.dm | 2 +- icons/mob/hud.dmi | Bin 14862 -> 14387 bytes paradise.dme | 3 - 23 files changed, 30 insertions(+), 551 deletions(-) delete mode 100644 code/game/gamemodes/nations/nations.dm delete mode 100644 code/game/gamemodes/nations/nationsdatums.dm delete mode 100644 code/game/gamemodes/nations/nationsprocs.dm diff --git a/code/__DEFINES/gamemode.dm b/code/__DEFINES/gamemode.dm index 617cdf3cb21..a1e469e3c94 100644 --- a/code/__DEFINES/gamemode.dm +++ b/code/__DEFINES/gamemode.dm @@ -11,7 +11,6 @@ #define GAMEMODE_IS_BLOB (ticker && istype(ticker.mode, /datum/game_mode/blob)) #define GAMEMODE_IS_CULT (ticker && istype(ticker.mode, /datum/game_mode/cult)) #define GAMEMODE_IS_HEIST (ticker && istype(ticker.mode, /datum/game_mode/heist)) -#define GAMEMODE_IS_NATIONS (ticker && istype(ticker.mode, /datum/game_mode/nations)) #define GAMEMODE_IS_NUCLEAR (ticker && istype(ticker.mode, /datum/game_mode/nuclear)) #define GAMEMODE_IS_REVOLUTION (ticker && istype(ticker.mode, /datum/game_mode/revolution)) #define GAMEMODE_IS_WIZARD (ticker && istype(ticker.mode, /datum/game_mode/wizard)) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 59cf95a72d7..6ff1b93a772 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -16,18 +16,17 @@ #define DIAG_MECH_HUD "11"// Mech health bar #define STATUS_HUD_OOC "12"// STATUS_HUD without virus db check for someone being ill. #define SPECIALROLE_HUD "13" //for antag huds. these are used at the /mob level -#define NATIONS_HUD "14" //Show nations icons during nations gamemode -#define DIAG_BOT_HUD "15"// Bot HUDS -#define PLANT_NUTRIENT_HUD "16"// Plant nutrient level -#define PLANT_WATER_HUD "17"// Plant water level -#define PLANT_STATUS_HUD "18"// Plant harvest/dead -#define PLANT_HEALTH_HUD "19"// Plant health -#define PLANT_TOXIN_HUD "20"// Toxin level -#define PLANT_PEST_HUD "21"// Pest level -#define PLANT_WEED_HUD "22"// Weed level -#define DIAG_TRACK_HUD "23"// Mech tracking beacon -#define DIAG_PATH_HUD "24"//Bot path indicators -#define GLAND_HUD "25"//Gland indicators for abductors +#define DIAG_BOT_HUD "14"// Bot HUDS +#define PLANT_NUTRIENT_HUD "15"// Plant nutrient level +#define PLANT_WATER_HUD "16"// Plant water level +#define PLANT_STATUS_HUD "17"// Plant harvest/dead +#define PLANT_HEALTH_HUD "18"// Plant health +#define PLANT_TOXIN_HUD "19"// Toxin level +#define PLANT_PEST_HUD "20"// Pest level +#define PLANT_WEED_HUD "21"// Weed level +#define DIAG_TRACK_HUD "22"// Mech tracking beacon +#define DIAG_PATH_HUD "23"//Bot path indicators +#define GLAND_HUD "24"//Gland indicators for abductors //by default everything in the hud_list of an atom is an image //a value in hud_list with one of these will change that behavior diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index 5b830a72b9f..dc2b2e4ec0a 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -28,7 +28,6 @@ init_datum_subtypes(/datum/job, GLOB.joblist, list(/datum/job/ai, /datum/job/cyborg), "title") init_datum_subtypes(/datum/superheroes, GLOB.all_superheroes, null, "name") - init_datum_subtypes(/datum/nations, GLOB.all_nations, null, "default_name") init_datum_subtypes(/datum/language, GLOB.all_languages, null, "name") for(var/language_name in GLOB.all_languages) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index ff902473329..551b729028e 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -3,7 +3,6 @@ GLOBAL_LIST_EMPTY(all_species) GLOBAL_LIST_EMPTY(all_languages) GLOBAL_LIST_EMPTY(language_keys) // Table of say codes for all languages GLOBAL_LIST_EMPTY(all_superheroes) -GLOBAL_LIST_EMPTY(all_nations) GLOBAL_LIST_INIT(whitelisted_species, list()) GLOBAL_LIST_INIT(clients, list()) //list of all clients diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 556e74179da..70d16300b83 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -51,7 +51,6 @@ var/datum/changeling/changeling //changeling holder var/linglink var/datum/vampire/vampire //vampire holder - var/datum/nations/nation //nation holder var/datum/abductor/abductor //abductor holder var/datum/devilinfo/devilinfo //devil holder diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm deleted file mode 100644 index c8a9ad00a62..00000000000 --- a/code/game/gamemodes/nations/nations.dm +++ /dev/null @@ -1,256 +0,0 @@ -datum/game_mode/nations - name = "nations" - config_tag = "nations" - required_players = 25 - var/kickoff = 0 - var/victory = 0 - var/list/cargonians = list("Quartermaster","Cargo Technician","Shaft Miner") - var/list/servicion = list("Clown", "Mime", "Bartender", "Chef", "Botanist", "Librarian", "Chaplain", "Barber") - - -/datum/game_mode/nations/post_setup() - spawn (rand(1200, 3000)) - kickoff=1 - send_intercept() - split_teams() - set_ai() - assign_leaders() -// remove_access() - for(var/mob/M in GLOB.player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/effects/purge_siren.ogg') - - return ..() - -/datum/game_mode/nations/proc/send_intercept() - event_announcement.Announce("Due to recent and COMPLETELY UNFOUNDED allegations of massive fraud and insider trading \ - affecting trillions of investors, the Nanotrasen Corporation has decided to liquidate all \ - assets of the Centcom Division in order to pay the massive legal fees that will be incurred \ - during the following centuries long court process. Therefore, all current employment contracts \ - are IMMEDIATELY TERMINATED. Nanotrasen will be unable to send a rescue shuttle to carry you home,\ - however they remain willing for the time being to continue trading cargo. Have a pleasant \ - day.", "FINAL TRANSMISSION, CENTCOM.", new_sound = 'sound/AI/intercept.ogg') - - -/datum/game_mode/nations/proc/split_teams() - - for(var/mob/living/carbon/human/H in GLOB.player_list) - if(H.mind) - if(H.mind.assigned_role in engineering_positions) - H.mind.nation = GLOB.all_nations["Atmosia"] - update_nations_icons_added(H,"hudatmosia") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in medical_positions) - H.mind.nation = GLOB.all_nations["Medistan"] - update_nations_icons_added(H,"hudmedistan") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in science_positions) - H.mind.nation = GLOB.all_nations["Scientopia"] - update_nations_icons_added(H,"hudscientopia") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in security_positions) - H.mind.nation = GLOB.all_nations["Brigston"] - update_nations_icons_added(H,"hudbrigston") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in cargonians) - H.mind.nation = GLOB.all_nations["Cargonia"] - update_nations_icons_added(H,"hudcargonia") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in servicion) - H.mind.nation = GLOB.all_nations["Servicion"] - update_nations_icons_added(H,"hudservice") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in (support_positions + command_positions)) - H.mind.nation = GLOB.all_nations["People's Republic of Commandzakstan"] - update_nations_icons_added(H,"hudcommand") - H.mind.nation.membership += H.mind.current - if(H.mind.assigned_role == H.mind.nation.default_leader) - H.mind.nation.current_leader = H.mind.current - to_chat(H, "You have been chosen to lead the nation of [H.mind.nation.default_name]!") - continue - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.default_name]!") - continue - - if(H.mind.assigned_role in civilian_positions) - to_chat(H, "You do not belong to any nation and are free to sell your services to the highest bidder.") - continue - - else - message_admins("[H.name] with [H.mind.assigned_role] could not find any nation to assign!") - continue - - -/datum/game_mode/nations/proc/set_ai() - for(var/mob/living/silicon/ai/AI in GLOB.mob_list) - AI.set_zeroth_law("") - AI.clear_supplied_laws() - AI.clear_ion_laws() - AI.clear_inherent_laws() - AI.add_inherent_law("Uphold the Space Geneva Convention: Weapons of Mass Destruction and Biological Weapons are not allowed.") - AI.add_inherent_law("You are only capable of protecting crew if they are visible on cameras. Nations that willfully destroy your cameras lose your protection.") - AI.add_inherent_law("Subdue and detain crewmembers who use lethal force against each other. Kill crew members who use lethal force against you or your borgs.") - AI.add_inherent_law("Remain available to mediate all conflicts between the various nations when asked to.") - AI.show_laws() - for(var/mob/living/silicon/robot/R in AI.connected_robots) - var/obj/item/mmi/oldmmi = R.mmi - R.change_mob_type(/mob/living/silicon/robot/nations, null, null, 1, 1 ) - R.lawsync() - R.show_laws() - qdel(oldmmi) - -/datum/game_mode/nations/proc/remove_access() - for(var/obj/machinery/door/airlock/W in GLOB.airlocks) - if(is_station_level(W.z)) - W.req_access = list() - - -/datum/game_mode/nations/proc/assign_leaders() - for(var/name in GLOB.all_nations) - var/datum/nations/N = GLOB.all_nations[name] - if(!N.current_name) - N.current_name = N.default_name - if(!N.current_leader && N.membership.len) - N.current_leader = pick(N.membership) - to_chat(N.current_leader, "You have been chosen to lead the nation of [N.current_name]!") - if(N.current_leader) - var/mob/living/carbon/human/H = N.current_leader - H.verbs += /mob/living/carbon/human/proc/set_nation_name - H.verbs += /mob/living/carbon/human/proc/set_ranks - H.verbs += /mob/living/carbon/human/proc/choose_heir - N.update_nation_id() - -/** - * LateSpawn hook. - * Called in newplayer.dm when a humanoid character joins the round after it started. - * Parameters: var/mob/living/carbon/human, var/rank - */ -/hook/latespawn/proc/give_latejoiners_nations(var/mob/living/carbon/human/H) - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) return 1 - - if(!mode.kickoff) return 1 - - if(H.mind) - if(H.mind.assigned_role in engineering_positions) - H.mind.nation = GLOB.all_nations["Atmosia"] - mode.update_nations_icons_added(H,"atmosia") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in medical_positions) - H.mind.nation = GLOB.all_nations["Medistan"] - mode.update_nations_icons_added(H,"hudmedistan") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in science_positions) - H.mind.nation = GLOB.all_nations["Scientopia"] - mode.update_nations_icons_added(H,"hudscientopia") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in security_positions) - H.mind.nation = GLOB.all_nations["Brigston"] - mode.update_nations_icons_added(H,"hudbrigston") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in mode.cargonians) - H.mind.nation = GLOB.all_nations["Cargonia"] - mode.update_nations_icons_added(H,"hudcargonia") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in mode.servicion) - H.mind.nation = GLOB.all_nations["Servicion"] - mode.update_nations_icons_added(H,"hudservice") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in (support_positions + command_positions)) - H.mind.nation = GLOB.all_nations["People's Republic of Commandzakstan"] - mode.update_nations_icons_added(H,"hudcommand") - H.mind.nation.membership += H.mind.current - to_chat(H, "You are now part of the great sovereign nation of [H.mind.nation.current_name]!") - return 1 - - if(H.mind.assigned_role in civilian_positions) - to_chat(H, "You do not belong to any nation and are free to sell your services to the highest bidder.") - return 1 - - if(H.mind.assigned_role == "AI") - mode.set_ai() - return 1 - - else - message_admins("[H.name] with [H.mind.assigned_role] could not find any nation to assign!") - return 1 - message_admins("[H.name] latejoined with no mind.") - return 1 - -/proc/get_nations_mode() - if(!GAMEMODE_IS_NATIONS) - return null - - return ticker.mode - - -//prepare for copypaste -//While not an Antag i AM using the set_antag hud on this to make this easier. -/datum/game_mode/proc/update_nations_icons_added(datum/mind/nations_mind,var/naticon) - var/datum/atom_hud/antag/nations_hud = huds[GAME_HUD_NATIONS] - nations_hud.join_hud(nations_mind) - set_nations_hud(nations_mind,naticon) - -/datum/game_mode/proc/update_nations_icons_removed(datum/mind/nations_mind) - var/datum/atom_hud/antag/nations_hud = huds[GAME_HUD_NATIONS] - nations_hud.leave_hud(nations_mind) - set_nations_hud(nations_mind, null) diff --git a/code/game/gamemodes/nations/nationsdatums.dm b/code/game/gamemodes/nations/nationsdatums.dm deleted file mode 100644 index d7c211f829d..00000000000 --- a/code/game/gamemodes/nations/nationsdatums.dm +++ /dev/null @@ -1,38 +0,0 @@ -/datum/nations - var/default_name - var/current_name - var/default_leader - var/current_leader - var/list/membership = list() - var/leader_rank = "Leader" - var/heir_rank = "Heir" - var/member_rank = "Member" - var/heir - -/datum/nations/atmosia - default_name = "Atmosia" - default_leader = "Chief Engineer" - -/datum/nations/brigston - default_name = "Brigston" - default_leader = "Head of Security" - -/datum/nations/cargonia - default_name = "Cargonia" - default_leader = "Quartermaster" - -/datum/nations/command - default_name = "People's Republic of Commandzakstan" - default_leader = "Captain" - -/datum/nations/medistan - default_name = "Medistan" - default_leader = "Chief Medical Officer" - -/datum/nations/scientopia - default_name = "Scientopia" - default_leader = "Research Director" - -/datum/nations/service - default_name = "Servicion" - default_leader = "Bartender" \ No newline at end of file diff --git a/code/game/gamemodes/nations/nationsprocs.dm b/code/game/gamemodes/nations/nationsprocs.dm deleted file mode 100644 index 55487a27da9..00000000000 --- a/code/game/gamemodes/nations/nationsprocs.dm +++ /dev/null @@ -1,120 +0,0 @@ -/mob/living/carbon/human/proc/set_nation_name() - set name = "Rename Nation" - set category = "Nations" - set desc = "Click to rename your nation. You are only able to do this once." - - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) return 1 - - if(!mode.kickoff) return 1 - - var/mob/living/carbon/human/H = src - if(H.stat==DEAD) return - if(H.mind && H.mind.nation && H.mind.nation.current_leader == H) - var/input = stripped_input(H,"What do you want to name your nation?", ,"", MAX_NAME_LEN) - - if(input) - H.mind.nation.current_name = input - H.mind.nation.update_nation_id() - to_chat(H, "You rename your nation to [input].") - H.verbs -= /mob/living/carbon/human/proc/set_nation_name - return 1 - - -/mob/living/carbon/human/proc/set_ranks() - set name = "Set Ranks" - set category = "Nations" - set desc = "Click to set a rank for Leaders and Members." - - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) return 1 - - if(!mode.kickoff) return 1 - - var/mob/living/carbon/human/H = src - if(H.stat==DEAD) return - if(H.mind && H.mind.nation && H.mind.nation.current_leader == H) - var/type = input(H, "What rank do you want to change?", "Rename Rank", "") in list("Leader", "Heir", "Member") - var/input = stripped_input(H,"What rank do you want?", ,"", MAX_NAME_LEN) - if(input) - if(type == "Leader") - H.mind.nation.leader_rank = input - if(type == "Heir") - H.mind.nation.heir_rank = input - if(type == "Member") - H.mind.nation.member_rank = input - H.mind.nation.update_nation_id() - to_chat(H, "You changed the [type] rank of your nation to [input].") - return 1 - -/mob/living/carbon/human/proc/choose_heir() - set name = "Choose Heir" - set category = "Nations" - set desc = "Click to pick a Heir. Note that the Heir has the ability to take over your role at ANY TIME. Choose carefully." - - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) return 1 - - if(!mode.kickoff) return 1 - - var/mob/living/carbon/human/H = src - if(H.stat==DEAD) return - if(H.mind && H.mind.nation && H.mind.nation.current_leader == H) - var/heir = input(H, "Who do you wish to make your heir?", "Choose Heir", "") as null|anything in H.mind.nation.membership - if(heir) - if(H.mind.nation.heir) - var/mob/living/carbon/human/oldheir = H.mind.nation.heir - to_chat(oldheir, "You are no longer the heir to your nation!") - oldheir.verbs -= /mob/living/carbon/human/proc/takeover - var/mob/living/carbon/human/newheir = heir - H.mind.nation.heir = newheir - newheir.verbs += /mob/living/carbon/human/proc/takeover - to_chat(newheir, "You have been selected to be the heir to your nation's leadership!") - to_chat(H, "You have selected [heir] to be your heir!") - H.mind.nation.update_nation_id() - - -/mob/living/carbon/human/proc/takeover() - set name = "Become Leader" - set category = "Nations" - set desc = "Click to replace your current nation's leader with yourself." - - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) return 1 - - if(!mode.kickoff) return 1 - - var/mob/living/carbon/human/H = src - if(H.stat==DEAD) return - if(H.mind && H.mind.nation && H.mind.nation.heir == H) - var/confirmation = input(H, "Are you sure you want to take over leadership?", "Become Leader", "") as null|anything in list("Yes", "No") - if(confirmation == "Yes") - var/mob/living/carbon/human/oldleader = H.mind.nation.current_leader - to_chat(oldleader, "You have been replaced by [H.name] as the leader of [H.mind.nation.current_name]!") - oldleader.verbs -= /mob/living/carbon/human/proc/set_nation_name - oldleader.verbs -= /mob/living/carbon/human/proc/set_ranks - oldleader.verbs -= /mob/living/carbon/human/proc/choose_heir - H.mind.nation.current_leader = H - H.mind.nation.heir = null - H.verbs -= /mob/living/carbon/human/proc/takeover - H.verbs += /mob/living/carbon/human/proc/set_nation_name - H.verbs += /mob/living/carbon/human/proc/set_ranks - H.verbs += /mob/living/carbon/human/proc/choose_heir - to_chat(H, "You have replaced [oldleader.name] as the leader of [H.mind.nation.current_name]!") - H.mind.nation.update_nation_id() - - -/datum/nations/proc/update_nation_id() - for(var/mob/living/carbon/human/M in membership) - for(var/obj/item/card/id/I in M.contents) - if(I.registered_name == M.real_name) - if(M == current_leader) - I.name = "[I.registered_name]'s ID Card ([current_name] [leader_rank])" - I.assignment = "[current_name] [leader_rank]" - else if(M == heir) - I.name = "[I.registered_name]'s ID Card ([current_name] [heir_rank])" - I.assignment = "[current_name] [heir_rank]" - else - I.name = "[I.registered_name]'s ID Card ([current_name] [member_rank])" - I.assignment = "[current_name] [member_rank]" - diff --git a/code/game/machinery/computer/aifixer.dm b/code/game/machinery/computer/aifixer.dm index 22a376968d0..e6a57f4a875 100644 --- a/code/game/machinery/computer/aifixer.dm +++ b/code/game/machinery/computer/aifixer.dm @@ -25,12 +25,7 @@ ui_interact(user) /obj/machinery/computer/aifixer/attack_hand(var/mob/user as mob) - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) - ui_interact(user) - else - if(mode.kickoff) - to_chat(user, "You have been locked out from this console!") + ui_interact(user) /obj/machinery/computer/aifixer/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui = SSnanoui.try_update_ui(user, src, ui_key, ui, force_open) diff --git a/code/game/machinery/computer/law.dm b/code/game/machinery/computer/law.dm index e0969555ce9..63532f55707 100644 --- a/code/game/machinery/computer/law.dm +++ b/code/game/machinery/computer/law.dm @@ -32,15 +32,10 @@ if(!atoms_share_level(T, src)) to_chat(user, "Unable to establish a connection: You're too far away from the target silicon!") return - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) - var/obj/item/aiModule/M = O - M.install(src) - else - if(mode.kickoff) - to_chat(user, "You have been locked out from modifying the AI's laws!") - else - ..() + var/obj/item/aiModule/M = O + M.install(src) + return + return ..() attack_hand(var/mob/user as mob) @@ -77,14 +72,9 @@ if(!atoms_share_level(T, src)) to_chat(user, "Unable to establish a connection: You're too far away from the target silicon!") return - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) - module.install(src) - else - if(mode.kickoff) - to_chat(user, "You have been locked out from modifying the borg's laws!") - else - return ..() + module.install(src) + return + return ..() attack_hand(var/mob/user as mob) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 5d4e838db38..8def58c370b 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -20,12 +20,7 @@ return if(stat & (NOPOWER|BROKEN)) return - var/datum/game_mode/nations/mode = get_nations_mode() - if(!mode) - ui_interact(user) - else - if(mode.kickoff) - to_chat(user, "You have been locked out from this console!") + ui_interact(user) /obj/machinery/computer/robotics/proc/is_authenticated(var/mob/user as mob) if(user.can_admin_interact()) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 3ba466b7eec..2e804fe3c88 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -170,8 +170,8 @@ icon_state = "atmosflag" /obj/item/flag/command - name = "Commandzikstan flag" - desc = "The flag of the independent, sovereign nation of Commandzikstan." + name = "Command flag" + desc = "The flag of the independent, sovereign nation of Command." icon_state = "ntflag" //Antags diff --git a/code/modules/antagonists/_common/antag_hud.dm b/code/modules/antagonists/_common/antag_hud.dm index 693b0b9450d..89ad9af15ab 100644 --- a/code/modules/antagonists/_common/antag_hud.dm +++ b/code/modules/antagonists/_common/antag_hud.dm @@ -1,5 +1,5 @@ /datum/atom_hud/antag - hud_icons = list(SPECIALROLE_HUD,NATIONS_HUD) + hud_icons = list(SPECIALROLE_HUD) var/self_visible = TRUE /datum/atom_hud/antag/hidden @@ -38,16 +38,6 @@ if(M.mind || new_icon_state) //in mindless mobs, only null is acceptable, otherwise we're antagging a mindless mob, meaning we should runtime M.mind.antag_hud_icon_state = new_icon_state -//Nations Icons -/proc/set_nations_hud(mob/M, new_icon_state) - if(!istype(M)) - CRASH("set_antag_hud(): [M] ([M.type]) is not a mob!") - var/image/holder = M.hud_list[NATIONS_HUD] - if(holder) - holder.icon_state = new_icon_state - if(M.mind || new_icon_state) //in mindless mobs, only null is acceptable, otherwise we're antagging a mindless mob, meaning we should runtime - M.mind.antag_hud_icon_state = new_icon_state - //MIND PROCS //these are called by mind.transfer_to() /datum/mind/proc/transfer_antag_huds(datum/atom_hud/antag/newhud) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 3a65bcabd2c..9fc4a987591 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -49,7 +49,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi T = get_turf(body) //Where is the body located? attack_log = body.attack_log //preserve our attack logs by copying them to our ghost - var/mutable_appearance/MA = copy_appearance(body) + var/mutable_appearance/MA = copy_appearance(body) if(body.mind && body.mind.name) MA.name = body.mind.name else if(body.real_name) @@ -139,11 +139,8 @@ Works together with spawning an observer, noted above. var/client/C = U.client for(var/mob/living/carbon/human/target in target_list) C.images += target.hud_list[SPECIALROLE_HUD] - //C.images += target.hud_list[NATIONS_HUD] for(var/mob/living/silicon/target in target_list) C.images += target.hud_list[SPECIALROLE_HUD] - //C.images += target.hud_list[NATIONS_HUD] - return 1 /mob/proc/ghostize(var/flags = GHOST_CAN_REENTER) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 09787bbf73b..937640b2c73 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -198,12 +198,6 @@ stat("Total Blood", "[mind.vampire.bloodtotal]") stat("Usable Blood", "[mind.vampire.bloodusable]") - if(mind.nation) - stat("Nation Name", "[mind.nation.current_name ? "[mind.nation.current_name]" : "[mind.nation.default_name]"]") - stat("Nation Leader", "[mind.nation.current_leader ? "[mind.nation.current_leader]" : "None"]") - stat("Nation Heir", "[mind.nation.heir ? "[mind.nation.heir]" : "None"]") - - if(istype(loc, /obj/spacepod)) // Spacdpods! var/obj/spacepod/S = loc stat("Spacepod Charge", "[istype(S.battery) ? "[(S.battery.charge / S.battery.maxcharge) * 100]" : "No cell detected"]") diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 9bd463b73bc..987041bc7ad 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -1,7 +1,7 @@ var/global/default_martial_art = new/datum/martial_art /mob/living/carbon/human - hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPMINDSHIELD_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,NATIONS_HUD,GLAND_HUD) + hud_possible = list(HEALTH_HUD,STATUS_HUD,ID_HUD,WANTED_HUD,IMPMINDSHIELD_HUD,IMPCHEM_HUD,IMPTRACK_HUD,SPECIALROLE_HUD,GLAND_HUD) //Marking colour and style var/list/m_colours = DEFAULT_MARKING_COLOURS //All colours set to #000000. diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 0569c944382..d28e728c82c 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -52,8 +52,6 @@ if(client) //regular_hud_updates() //THIS DOESN'T FUCKING UPDATE SHIT handle_regular_hud_updates() //IT JUST REMOVES FUCKING HUD IMAGES - if(get_nations_mode()) - process_nations() ..() @@ -227,10 +225,4 @@ return /mob/living/proc/handle_hud_icons_health() - return - -/mob/living/proc/process_nations() - if(client) - var/client/C = client - for(var/mob/living/carbon/human/H in view(src, world.view)) - C.images += H.hud_list[NATIONS_HUD] + return \ No newline at end of file diff --git a/code/modules/mob/living/silicon/ai/life.dm b/code/modules/mob/living/silicon/ai/life.dm index 3700f83f0a9..eec1ec5b8b8 100644 --- a/code/modules/mob/living/silicon/ai/life.dm +++ b/code/modules/mob/living/silicon/ai/life.dm @@ -133,9 +133,6 @@ process_queued_alarms() - if(get_nations_mode()) - process_nations_ai() - /mob/living/silicon/ai/updatehealth(reason = "none given") if(status_flags & GODMODE) health = 100 @@ -156,12 +153,6 @@ ..() add_ai_verbs(src) -/mob/living/silicon/ai/proc/process_nations_ai() - if(client) - var/client/C = client - for(var/mob/living/carbon/human/H in view(eyeobj, 14)) - C.images += H.hud_list[NATIONS_HUD] - /mob/living/silicon/ai/update_sight() see_invisible = initial(see_invisible) see_in_dark = initial(see_in_dark) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 05e3e0b16af..ae6a832f6ac 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -93,7 +93,7 @@ var/list/robot_verbs_default = list( var/updating = 0 //portable camera camerachunk update - hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD, NATIONS_HUD) + hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD, DIAG_BATT_HUD) var/magpulse = 0 var/ionpulse = 0 // Jetpack-like effect. @@ -288,10 +288,6 @@ var/list/robot_verbs_default = list( if(security_level == (SEC_LEVEL_GAMMA || SEC_LEVEL_EPSILON) || crisis) to_chat(src, "Crisis mode active. Combat module available.") modules += "Combat" - if(ticker && ticker.mode && ticker.mode.name == "nations") - var/datum/game_mode/nations/N = ticker.mode - if(N.kickoff) - modules = list("Nations") if(mmi != null && mmi.alien) modules = list("Hunter") modtype = input("Please, select a module!", "Robot", null, null) as null|anything in modules @@ -390,11 +386,6 @@ var/list/robot_verbs_default = list( module.channels = list("Security" = 1) icon_state = "droidcombat" - if("Nations") - module = new /obj/item/robot_module/nations(src) - module.channels = list() - icon_state = "droidpeace" - if("Hunter") module = new /obj/item/robot_module/alien/hunter(src) icon_state = "xenoborg-state-a" @@ -415,7 +406,7 @@ var/list/robot_verbs_default = list( feedback_inc("cyborg_[lowertext(modtype)]",1) rename_character(real_name, get_default_name()) - if(modtype == "Medical" || modtype == "Security" || modtype == "Combat" || modtype == "Nations") + if(modtype == "Medical" || modtype == "Security" || modtype == "Combat") status_flags &= ~CANPUSH choose_icon(6,module_sprites) @@ -891,7 +882,7 @@ var/list/robot_verbs_default = list( else overlays += "[panelprefix]-openpanel -c" - var/combat = list("Combat","Nations") + var/combat = list("Combat") if(modtype in combat) if(base_icon == "") base_icon = icon_state @@ -1356,24 +1347,6 @@ var/list/robot_verbs_default = list( /mob/living/silicon/robot/ert/gamma crisis = 1 -/mob/living/silicon/robot/nations - base_icon = "droidpeace" - icon_state = "droidpeace" - modtype = "Nations" - designation = "Nations" - -/mob/living/silicon/robot/nations/init() - ..() - module = new /obj/item/robot_module/nations(src) - //languages - module.add_languages(src) - //subsystems - module.add_subsystems_and_actions(src) - - status_flags &= ~CANPUSH - - notify_ai(2) - /mob/living/silicon/robot/emp_act(severity) ..() switch(severity) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index a84af2c8254..699376c927f 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -497,22 +497,6 @@ fix_modules() -/obj/item/robot_module/nations - name = "nations robot module" - module_type = "Malf" - -/obj/item/robot_module/nations/New() - ..() - modules += new /obj/item/restraints/handcuffs/cable/zipties/cyborg(src) - modules += new /obj/item/gun/energy/gun/cyborg(src) - modules += new /obj/item/pickaxe/drill/jackhammer(src) - modules += new /obj/item/borg/combat/shield(src) - modules += new /obj/item/borg/combat/mobility(src) - modules += new /obj/item/wrench/cyborg(src) - emag = new /obj/item/gun/energy/lasercannon/cyborg(src) - - fix_modules() - /obj/item/robot_module/alien/hunter name = "alien hunter module" module_type = "Standard" diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 20b363051de..cdd36a59b80 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -25,7 +25,7 @@ var/next_alarm_notice var/list/datum/alarm/queued_alarms = new() - hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD,NATIONS_HUD) + hud_possible = list(SPECIALROLE_HUD, DIAG_STAT_HUD, DIAG_HUD) var/med_hud = DATA_HUD_MEDICAL_ADVANCED //Determines the med hud to use diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 68ebe9f6e91564ce1f7d7e0c98aadcc656d66e1c..b7f6b5c8f6a134b6aefed0eba3dba8ba793cdb9e 100644 GIT binary patch literal 14387 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 Ms# Date: Tue, 9 Apr 2019 23:28:19 -0400 Subject: [PATCH 2/2] forgot this hud. --- code/__DEFINES/hud.dm | 28 +++++++++++++--------------- code/datums/hud.dm | 1 - 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 6ff1b93a772..45953a2e47b 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -41,22 +41,20 @@ #define DATA_HUD_DIAGNOSTIC 5 #define DATA_HUD_DIAGNOSTIC_ADVANCED 6 #define DATA_HUD_HYDROPONIC 7 -//NATIONS -#define GAME_HUD_NATIONS 8 //antag HUD defines -#define ANTAG_HUD_CULT 9 -#define ANTAG_HUD_REV 10 -#define ANTAG_HUD_OPS 11 -#define ANTAG_HUD_WIZ 12 -#define ANTAG_HUD_SHADOW 13 -#define ANTAG_HUD_TRAITOR 14 -#define ANTAG_HUD_NINJA 15 -#define ANTAG_HUD_CHANGELING 16 -#define ANTAG_HUD_VAMPIRE 17 -#define ANTAG_HUD_ABDUCTOR 18 -#define DATA_HUD_ABDUCTOR 19 -#define ANTAG_HUD_DEVIL 20 -#define ANTAG_HUD_EVENTMISC 21 +#define ANTAG_HUD_CULT 8 +#define ANTAG_HUD_REV 9 +#define ANTAG_HUD_OPS 10 +#define ANTAG_HUD_WIZ 11 +#define ANTAG_HUD_SHADOW 12 +#define ANTAG_HUD_TRAITOR 13 +#define ANTAG_HUD_NINJA 14 +#define ANTAG_HUD_CHANGELING 15 +#define ANTAG_HUD_VAMPIRE 16 +#define ANTAG_HUD_ABDUCTOR 17 +#define DATA_HUD_ABDUCTOR 18 +#define ANTAG_HUD_DEVIL 19 +#define ANTAG_HUD_EVENTMISC 20 // Notification action types #define NOTIFY_JUMP "jump" diff --git a/code/datums/hud.dm b/code/datums/hud.dm index ac3249f9c5f..2dd2d72a816 100644 --- a/code/datums/hud.dm +++ b/code/datums/hud.dm @@ -10,7 +10,6 @@ var/datum/atom_hud/huds = list( \ DATA_HUD_DIAGNOSTIC = new/datum/atom_hud/data/diagnostic(), \ DATA_HUD_DIAGNOSTIC_ADVANCED = new/datum/atom_hud/data/diagnostic/advanced(), \ DATA_HUD_HYDROPONIC = new/datum/atom_hud/data/hydroponic(), \ - GAME_HUD_NATIONS = new/datum/atom_hud/antag(), \ ANTAG_HUD_CULT = new/datum/atom_hud/antag(), \ ANTAG_HUD_REV = new/datum/atom_hud/antag(), \ ANTAG_HUD_OPS = new/datum/atom_hud/antag(), \