From 9795dc761b2084ecb53d575ad81a20a470b51b5f Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 11 Oct 2015 19:51:19 -0400 Subject: [PATCH 1/3] Removes Nations and Unused Game Modes --- _maps/map_files/cyberiad/cyberiad.dmm | 18 +- code/__DEFINES/hud.dm | 1 - code/__HELPERS/global_lists.dm | 5 - code/_globalvars/lists/mobs.dm | 1 - code/_globalvars/lists/objects.dm | 1 - code/datums/helper_datums/teleport.dm | 14 - code/datums/mind.dm | 1 - code/game/gamemodes/epidemic/epidemic.dm | 224 --------- code/game/gamemodes/meme/meme.dm | 181 -------- .../game/gamemodes/nations/flag_pinpointer.dm | 65 --- code/game/gamemodes/nations/flagprocs.dm | 142 ------ code/game/gamemodes/nations/nationdatums.dm | 30 -- code/game/gamemodes/nations/nations.dm | 439 ------------------ code/game/jobs/job_controller.dm | 33 +- code/game/objects/effects/landmarks.dm | 13 - code/game/objects/items/flag.dm | 26 +- .../objects/items/weapons/storage/bags.dm | 4 +- code/game/objects/structures/morgue.dm | 9 +- code/game/supplyshuttle.dm | 2 - code/modules/admin/player_panel.dm | 16 - code/modules/mob/dead/observer/observer.dm | 7 +- code/modules/mob/living/carbon/human/human.dm | 1 - code/modules/mob/living/carbon/human/life.dm | 29 -- code/modules/mob/living/silicon/ai/ai.dm | 1 - .../modules/mob/living/silicon/robot/robot.dm | 1 - config/example/config.txt | 1 - paradise.dme | 4 - 27 files changed, 37 insertions(+), 1232 deletions(-) delete mode 100644 code/game/gamemodes/epidemic/epidemic.dm delete mode 100644 code/game/gamemodes/meme/meme.dm delete mode 100644 code/game/gamemodes/nations/flag_pinpointer.dm delete mode 100644 code/game/gamemodes/nations/flagprocs.dm delete mode 100644 code/game/gamemodes/nations/nationdatums.dm delete mode 100644 code/game/gamemodes/nations/nations.dm diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 2b9fa0915a1..c376a496a4a 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -542,7 +542,7 @@ "akv" = (/obj/structure/table,/obj/item/weapon/folder/red,/obj/item/device/taperecorder{pixel_y = 0},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "redfull"; tag = "icon-redfull (NORTHWEST)"},/area/security/main) "akw" = (/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/security/main) "akx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/main) -"aky" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/landmark/nations{name = "Brigston"},/turf/simulated/floor,/area/security/main) +"aky" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/bridge) "akz" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor,/area/security/main) "akA" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/hatch/gamma{locked = 1; req_access_txt = "1"; use_power = 0},/turf/simulated/floor{icon_state = "dark"},/area/security/main) "akB" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk6"; icon_state = "catwalk6"},/area/solar/auxstarboard) @@ -3163,7 +3163,7 @@ "biQ" = (/obj/effect/landmark{name = "Marauder Entry"},/turf/simulated/floor,/area/bridge) "biR" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/bridge) "biS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/effect/landmark{name = "Marauder Entry"},/turf/simulated/floor,/area/bridge) -"biT" = (/obj/machinery/hologram/holopad,/obj/effect/landmark/nations{name = "People's Republic of Commandzakstan"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/bridge) +"biT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "biU" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/bridge) "biV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/item/device/radio/beacon,/obj/effect/landmark{name = "Marauder Entry"},/turf/simulated/floor,/area/bridge) "biW" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor,/area/bridge) @@ -4725,7 +4725,7 @@ "bMS" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment,/turf/simulated/floor{dir = 1; icon_state = "whitered"},/area/medical/research{name = "Research Division"}) "bMT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{dir = 1; icon_state = "whiteredcorner"},/area/medical/research{name = "Research Division"}) "bMU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) -"bMV" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1; level = 1},/obj/effect/landmark/nations{name = "Scientopia"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bMV" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "bMW" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bMX" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating,/area/crew_quarters/hor) "bMY" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/crew_quarters/hor) @@ -5744,7 +5744,6 @@ "cgx" = (/obj/structure/disposalpipe/junction{dir = 8; icon_state = "pipe-j2"; tag = "icon-pipe-j1 (WEST)"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cgy" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/disposalpipe/junction{dir = 8},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cgz" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) -"cgA" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/effect/landmark/nations{name = "Medistan"},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cgB" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cgC" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) "cgD" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay2) @@ -6548,7 +6547,6 @@ "cvV" = (/obj/machinery/door/firedoor{dir = 8; name = "Firelock West"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "32"; req_one_access_txt = "0"},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cvW" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cvX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) -"cvY" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/landmark/nations{name = "Atmosia"},/turf/simulated/floor,/area/engine/break_room) "cvZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor,/area/engine/break_room) "cwa" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{level = 1},/obj/effect/spawner/window/reinforced,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "atmos"; name = "Atmos Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/atmos/control) "cwb" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor,/area/atmos/control) @@ -8311,7 +8309,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGacGafxacGacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAafyafyafAaeAafyafyafAaeAaaaagSaifaigaihagSaiiaijaikailaimainaioaipagvaiqairahhaisaitaiuahUaivaiwaixaiyaizaiAaiBaiCaiDaiEaiFaiGaiFaiHahAaieaieaieaieaieaieaieaieahAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagQaaaaaaaaaaiIaaaaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAafAafyaiJaeAafAafyaiKaeAaaaagSaiLaiMaiNagSaiOaiOaiOaiOaiPaiQaiRaiSagvaiTaiUaiVaiWaiXaiYahUaiZajaajbajcajdajeajfajgaiDaiEajhaiGajhajiahAaieaieaieaieaieaieaieaieahAagQagQajjaabagQagQagQagQagQagQagQagQagQagQagQagQagQagQaabaabajkajlajmaabaabagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafxaabajnaabafxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaeAajoajpajqajrajoajpajqajsajtajuajuajuajuajuajuajuajuajvajwajxajyajzajAajBajCajDajEajFajGahUajHajIajJajKajdajeajKajgajLaiEaiCaiCajMajNajOaieaieaieaieaieaieaieaieahAaabaabaabaabaabaabaaaaabaaaaabaabaabaabaabaabaabaabaaaaaaaaaajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGacGacGafxafxaabaabaaaajQaaaaabaabafxafxacGacGacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAajRajSajTafyajUajVajWajXajtajYajZakaakbakcakdakdajuakeakfakgakhakiajBakjakkaklakmaknajFakoakpakqakqajKakraksaktakuakvakwakxakyakzaiCakAaieaieaieaieaieaieaieaieahAaabakBakCakCakCakDakCakCakCakCakDakCakCakCakCakEaabaaaaaaaaaajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGacGacGafxafxaabaabaaaajQaaaaabaabafxafxacGacGacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAajRajSajTafyajUajVajWajXajtajYajZakaakbakcakdakdajuakeakfakgakhakiajBakjakkaklakmaknajFakoakpakqakqajKakraksaktakuakvakwakxakxakzaiCakAaieaieaieaieaieaieaieaieahAaabakBakCakCakCakDakCakCakCakCakDakCakCakCakCakEaabaaaaaaaaaajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaaaaaaaabaaaaabaaaaaaajQaaaaaaaabaaaaabaaaaaaacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAakFafyakGakHakIakJakKakLajtakMakNakOakOakPakQakRajuakSakTakUakVakiakWakXakYakZalaalbalcaldaleakqalfalgalhalialjalkallalmaiCaiCaiCalnajOaieaieaieaieaieaieaieaieahAaabaloaabaabaabaloaabaaaaaaaabaloaabaabaaaaaaaloaabaaaaabaabajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaabalpalpalpalpalpaaaalqaaaalpalpalpalpalpaabacGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeAalralsakGafyaltakJalualvajtalwalxalyalzakQakQakRajualAalBalCalDalEajBalFalGaklalHalIajFalJalKalLalLalMajdalNalOalPalQaiCaiFaiGaiCalRahAahAahAahAahAahAahAahAahAahAaabaloaabaaaajkajlajmaaaaaaajkajlajmaaaaaaajkajlajmaabaabaaaajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaaaalSalTalTalTalTalUalValWalXalXalXalXalYaaaacGaaaaaaaaaalZamaamaamaambamcaaaaaaaaaaeAaeAaeAamdamdameamfamgamdajuamhamiamjamkamlammamnajuamoampamqakVamrajGamsamtamuamvamwajGamxamyamzamAamBamCamDamEamFamGaiCajhamHamIamJahAamKamKamKamKamKaaaaaaaaaaaaaabaloaabaaaajkajPajmaaaaaaajkajPajmaaaaaaajkajPajmaaaaaaaaaajkajPajmaaaaaaagQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8356,7 +8354,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdCbdDaJrbdEbdFbdGbdHbdIbdJbdHbdKbdLbdHbdHbdMbdNbdObdPbdQbdQbdQbdRbdQbdSbdTaDEbdUbdVbdWbcobdXbdYbdZbeabebbecbedbeebefbegbehbeibcobejbekbctbelbembenbcvbeobepbeqbcvberbesbetberberberbeuaXJaXObcDaaaaaaaaaaaaaaaaaaaaabcEbevbewbexbeybezbeAbeBbeCbeDbeEbeFbcEaaaaaaaaaaaaaaaaaaaaabcKbeGaYibeHaMebeIbcNbcSbcSbcSbcSbcSbeJbeKbcSbcSbcSbeLbeMbeMbeNbeObePbeQbeRbeSbeTbeUaVbbeVbeWbeXbeYbeYbeXbeZbfaaVbaVhayHaRDbfbbfcaTvbbPbbQaTvbfdbfdaRDaRDbfeaRDaQbbffbbWbbZbfgbfgbfhbbZaQbaQbaQbbfibatbfjbfjbfkbfjbatbflbaAaabaaaaaabfmaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdCbfnbfobfnbfnbfnbfnbfnbfnbfobfnbfnbfpaJrbfqbfrbfsaJrbftaJrbfubfvbfwbfxbfyaDEbdVbdVbfzbcobfAbecbecbecbecbecbedbfBbecbecbecbfCbcobejbfDbctbfEbfFbfGbcvbfHbfIbfJbcvbfKbfLbfMbfNbfObesbeuaXJaXObcDaaaaaaaaaaaabcEbcEbcEbcEbfPbfQbfRbfSbfTbfUbfVbfWbfXbfYbfZbcEbcEbcEbcEaaaaaaaaaaaabcKbeGaYibgabgbbgcbgdbgebgfbgcbggbghbgibgjbgkbglbcSbeLbgmbeMbgnbgobeMbgpbgqbgrbgsbeMbgtbgubgvbeXbeYbeYbeXbgwbgxaVbaVhaKsaRDbdjaTvbbPbbPbbQbbPaTvaTvbgybgzaTvbgAaQbbgBbgCbgDbfgbfgbgEbgDbgFaQbbgGbgHbatbgIbgIbgJbgIbatbdAbaAbgKbaAbaAbaAaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCuaCuaInaInaInaInaInaInaInaInaInaCuaDEbgLbgMbgNbgNbgNbgNbgNbgNbgObgNbgNbgNaDEbdVbejbgPbcobgQbecbecbgRbgSbgTbgUbgRbecbecbecbgVbcobejbekbctbgWbgXbgYbcvbgZbhabhbbcvbhcbhdbhebhfbhgbesbhhbhiaXObcDbcDbhjbcEbcEbcEbhkbhlbhmbhnbhobhobhpbhqbhobhrbhobhsbhtbhubhvbhwbhxbcEbcEbcEbhjbcKbcKbeGaYiaYiaMebhybhzbgkbhAbcSbhBbhCbcSbhDbhEbglbcSbeLbeMbeMbhFbhGbhHbhIbhJbhKbhLbeMbhMbgubhNbeXbeYbeYbhObhPbhQaVbaVhayHaRDbhRbhSbhTbbPbbQbhUaTvaTvbhVaTvbhWbhXaQbbhYbhZbiabfgbfgbibbiabicaQbbidbgHbatbatbatbavbatbatbiebifbigbihbiibijaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabikbikbikbikbikbikbikbikbikbikbikbikaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecbgRbgTbizbiAbgRbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSbiTbiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbcSbjgbcSbcSbcSbjhbjibcSbhDbjjbglbcSbeLbeMbeMbjkbjlbjmbjnbjobjpbhLbjqaVbbjrbhNbeXbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatbjMbaAbgKbaAbaAbgKaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabikbikbikbikbikbikbikbikbikbikbikbikaabaInaLAaJtbilbgNbimbinbiobipbiqbirbisbitbgNbiubivbiwbixbcobiybecbecbgRbgTbizbiAbgRbecbecbiBbiCbcobejbekbctbctbiDbctbcvbiEbiFbiGbcvbiHbhfbiIbhfbiJbesbeubiKaXOaXPaXPbiLbiMbiNbcEbiObfRbiPbhobhobiQbiRbiSakybiSbiUbiVbiWbiXbiYbiZbjabcEbjbbiMbjcbjdbjebeGaYiaYibjfbcSbjgbcSbcSbcSbjhbjibcSbhDbjjbglbcSbeLbeMbeMbjkbjlbjmbjnbjobjpbhLbjqaVbbjrbhNbeXbeYbeYbeXbhPbjsaVbbjtbjuaRDbjvaRDaRDbjwbbQbjxbjyaTvbjzbjAaWSbjBbdvbjCbjDbjEbjFbjFbjGbjHbjIbdvbjJbjKbatbjLbatbavbatbatbjMbaAbgKbaAbaAbgKaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabikbikbikbikbikbikbikbikbikbikbikbikbikbjNaInaKzaKBbfqbgNbimbjObjPbimbjQbjRbjSbjTbgNbjUaFmbjWbcsbcobjXbjYbjZbkabkbbkcbkdbkebkebkebkfbkgbcobejbivbkhbkibkjbkkbcvbcvbcvbcvbcvbklbkmbknbkobkpbesbeubiKaXJaXJaXJbkqbkrbksbktbkubkvbhobkwbkxbkybkzbkAbkBbkCbkDbkEbkFbkGbkubkHbkIbkJbkKbkLbkMbkNbkObkPaYibkQaMebcSbkRbkSbglbcSbkTbkUbcSbkVbkWbglbcSbeLbeMbeMbeMbeNbeMbkXbeMbjpbhLbkYaVbbkZbhNbeXbeYbeYbeXbhPblaaVbblbblcbldbleblfblgblhblibljbljbljbljbljbljblkbllblmbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbatbatbavbatbatblqbaAblrblrblrbaAaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabikbikbikbikbikbikbikbikbikbikbikbikbikblsbltblublvbfqbgNblwbimblxblxblxblybimblzbgNblAblBbjWblCblCblCblCblDblCblEbecblFblGblHblHblIblJbcoblKblLblMblNblOblPblQblRblSblRblTblTblTblTblTblUberbeublVblWblXblYblZbmabmbbmcbmdbkBbmebmfbmgbmgbmgbmgbmhbmgbmibmjbmkbmlbmebmmbmnbcEbmobmpbmqbmrbmsbmtaYiaYibjfbcSbmubcSbcSbcSaRebcSbcSbmvbmvbmwbmwbmxbeMbeMbmybmzbeMbeMbeMbmAbmBbmCaVbbgxbhNbeXbeXbeXbeXbhPbmDaVbbmEbmFbmFbmGbmFbmHbbPbbPbbPbbPbmIbbPbbPbbPbmJblobfgbfgbfgbfgbfgbfgbfgblnbloblpbgHbatbfjbfjbfkbfjbatbmKbaAbmLbmMbmNbaAaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmObmObmObmOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabikbikbikbikbikbikbikbikbikbikbikbikbikaInaInaKzbmPbcjbmQbimbmRblxblxblxblybmRbimbgNbmSbmTbjWblCbmUbmVbmWbmXblCbmYbmZbnabcobnbbncbndbnebcobejbnfbngbngbnhbngbngbngbngbnibnjbnjbnjbnkbnjbnlbnmbnnbnobnpbnqbnqbnqbnqbnqbnqbnrbnsbnrbmgbmgbntbnubnvbnwbnxbnybntbnzbmgbnAbnBbnAbnAbnAbnAbnAbnAbnAbmtaYiaYiaMebnCbnDbcSbnEbcSbnFbcSbnGbnHbnIbmwbnJaUTbnKbnLaUTaUTbnMbnNbnNbnNaUTaUTaVbbnObnPbnQbnQbnQbnQbnPbnRaVbbnSbmFbmFbmGbnTaRDbnUbnVbnWbnXbnYbnZboabobbocaQbbodaRSboebfgbfgboeaRSbofaQbbogbgHbatbgIbgIbgJbgIbatblqbaAblrblrblrbaAaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaQfaaaaaaaaaaaaaaaaaaaaaaaabmObmObmObmObmObmObmOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8375,7 +8373,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbGVbGWbGVbGXbGYbGZbGYbGYbGYbGYbHabyvbAfbHbbngbngbHcbpIbAibFvbHdbtLbHebHfbHfbHgbHhbHibHjbHkbHlbHmbHnbHobHpbHqbHrbHsbCpbCqbAEbvjbHtbHubHvbHwbHxbvjaaabEkbHybHzbHybHybHybHybHybHAbHybHBbvvbFXbucbHCbHDbHDbHEbHFbEybHGbHHbHIbHJbHKbHLbHMbHIbHNbHObHPbHQbHRbHSbHTbHTbHUbHVbHWbHXbHYbHZbIabIbbIcbIdbIebIfbIfbIgbIhbIibxGbIjbxJbxJbIkbIlbEUbImbInbIobIpbIqbIrbIsbItbIubIvbIubusbusbIwbEXbEXbIxbIxbIxbIxbIxbEXbFfbFjbFhbFjbFjbIybFfaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmObmObmObmObmObmObmObmOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbIzbIAbIzbIBbAebFqbFrbFrbFrbAebAebyvbAfbICbIDbngbIEbpIbAibFvbIFbtLbIGbpIbrsbpIbIHbDXbvvbIIbHlbHmbIJbIKbILbIMbINbIObIPbIQbIRbISbISbITbIUbIVbvjbvjaaabEkbHybIWbIXbIYbIZbJabJbbJcbJdbJebvvbFXbCHbJfbJgbJhbJibJjbEybJkbJlbJmbJnbJobJpbJqbJrbJsbJtbJubJvbJwbJxbJybJzbJAbJBbJCbJDbJEbGwbJFbGybJGbJHbvYbJIbJJbJKbJLbJLbxGbJMbJNbJObxGbJPbEUbJQbxGbJRbJSbJTbJUbJVbJWbJXbJYbJZbKabKbbKcbKdbKebKfbKfbKgbKhbKibKjbKkbDzbDAbKlbDAbDzbKmaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmObmObmObmObmObmObmObmOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbFnbBRbBRbKnbAebFqbAebAebAebAebAebyvbAfbICbKobngbKpbpIbKqbKrbpIbKsbpHbpIbpIbKtbtLbDXbvvbIIbHlbHmbCpbKubKvbKwbKxbKybKzbKAbKBbKCbKDbwXbKEbKFbwXbwYbwYbKGbHybKHbKIbKJbKKbKLbKLbKMbKNbKObvvbKPbucbEybKQbEubKRbKSbEybJkbKTbKUbKVbKWbKXbKYbKUbJkbKZbLabLbbLbbLbbLcbLbbLdbLdbLebLfbLgbLhbLhbLibLgbLgbLhbLhbLjbLkbLjbLjbxGbxGbxGbxGbxGbLlbLmbBobxGbLnbLobLpbLqbLqbLrbLsbLtbLubLvbLwbLxbLybLzbLAbLAbLBbJVbLCbEXbLDbLDbLDbLEbEXbLFaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabmObmObmObmObmObmObmObmObmOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbIzbIAbIzbFobLGbLHbAebAebAebLGbAebyvbAfbICbLIbngbLJbpIbAibFvbpIbnmbLKbpIbpIbLLbtLbDXbvvbLMbHlbLNbCpbLObLPbLQbLRbLSbKzbLTbLUbLVbLWbLXbLYbLZbMaaaaaaaaaabHybMbbMcbMdbMdbMebMfbMgbHybMhbMibFXbMjbMkbMlbMmbMnbMobMpbMqbJlbMrbMsbMtbMubMvbMrbJkbKZbMwbMxbMybMzbMAbMBbLdbMCbMDbMEbLgbMFbMGbMHbMIbMJbMKbMLbKabMMbLqbLqbMNbMObLqbMPbMQbMRbMSbMTbLqbMUbMVbMWbMXbMYbMZbNabNbbNabNabNabIwbEXbEXbIxbIxbEXbNcbNdbNebNfbNgbNhbNibLDaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbIzbIAbIzbFobLGbLHbAebAebAebLGbAebyvbAfbICbLIbngbLJbpIbAibFvbpIbnmbLKbpIbpIbLLbtLbDXbvvbLMbHlbLNbCpbLObLPbLQbLRbLSbKzbLTbLUbLVbLWbLXbLYbLZbMaaaaaaaaaabHybMbbMcbMdbMdbMebMfbMgbHybMhbMibFXbMjbMkbMlbMmbMnbMobMpbMqbJlbMrbMsbMtbMubMvbMrbJkbKZbMwbMxbMybMzbMAbMBbLdbMCbMDbMEbLgbMFbMGbMHbMIbMJbMKbMLbKabMMbLqbLqbMNbMObLqbMPbMQbMRbMSbMTbLqbMUbiTbMWbMXbMYbMZbNabNbbNabNabNabIwbEXbEXbIxbIxbEXbNcbNdbNebNfbNgbNhbNibLDaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbNjbNkbNjbNlbNmbNnbNnbNnbNnbNnbNobNpbNqbICbNrbngbNsbNtbNubNvbNwbNxbNybNybNybNzbNzbNAbvvbNBbNCbHmbCpbNDbNEbNFbKvbNGbKzbNHbNIbNJbNKbNLbFNbNMbMaaaaaaaaaabHybNNbNObNPbNQbMebMfbMgbHybNRbNSbNTbNUbNVbNWbNXbNYbNZbOabObbOcbKUbKUbOdbOebKUbKUbJkbKZbOfbOgbOhbOibOjbOkbLdbOlbOmbOnbOobOpbOqbOrbOrbOsbOtbOubOvbOwbJVbJVbOxbJVbOybJVbOzbJVbOAbOBbOBbOCbODbOEbOFbOGbOHbOIbOJbOKbOLbNabOMbONaaaaaaaaabEXbOObOPbOQbORbOSbOTbOUbEXaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQbFnbBRbBRbngbngbBRbBRbBRbBRbBRbngbngbBRbBRbBRbngbOVbOVbOVbOWbOVbNzbOXbOYbOZbPabNzbDXbvvbPbbPcbPcbCpbCpbCpbCpbCpbPdbKzbISbIRbPebNKbPgbPhbMabMabvjbvjbvjbHybHzbHybHybHybHybHybHybHybPibvvbPjbPkbPlbPmbPnbPlbPlbPobPpbPqbPrbPsbPtbPubPvbPwbMqbPxbPybPzbPAbPBbPCbPDbPEbPFbPGbPHbPIbPJbPKbPLbMHbPMbLhbLhbPNbPObPNbPPbPQbPPbPPbPPbPRbPSbPTbPTbPUbPVbPWbPXbOFbPYbPZbQabQbbQcbQdbNabOMbONaaaaaaaaabEXbQebQfbEXbKjbEXbEXbKjbEXaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBQbBQbBQbBQbBQbBQbBQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabQgaabaaaaaaaaaaaabOVbQhbQibQjbQkbNzbQlbQmbQnbQobNzbDXbvvbQpbQqbQrbQsbQtbQubQvbQwbQxbQybQzbQAbQBbQCbQDbQEbQFbQGbQHbQIbQJbQKbQLbQMbQNbubbQObvvbQPbQQbQRbvvbQSbPlbQTbQUbQVbQWbQXbJkbQYbQZbRabRbbRcbRdbRebRfbRgbRhbRibLbbRjbOibRkbRlbRmbRnbRobRpbLgbRqbMHbMHbMHbRrbLhbPNbRsbRtbRubRvbRwbRxbRybPPbRzbRAbRBbPTbPTbRCbPWbRDbREbRFbRGbRHbRIbRJbRKbNabRLbwoaaaaaaaaabEXbEXbEXbEXaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8388,7 +8386,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbF aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaaaaaaaabFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmbFmaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaabUEcaVcaWcaXbUEbUIbUIbUIbOVcaYcaZcaZcaZbOVbOVbUTcbacbacbbcbcbUTcbdcbebUVbZHbYnbYnbYncbfbUZbYpbYqbYqcbgcbhcbicbjcbkcblbVfbVfbVfbVfbVfcbmbVfbVfcbncbobVkbVkcbpbVkbVnbVkbVkbPlcbqcbqbPlbPlcbrcbscbtcbucbvcbwcbxcbycbzcbAcbBcaocapcbCcbDcbEcbFcbGcbHbVAcbIcbJcbKcbLcbMcbNcbOcbPcbQcbPcbRcbRcbRcbPcbScbPcbPcbTcbUbZmbZmbPTcbVbZnbPXcbWcbXcbYcbZccaccbccccccccdcceccfccgcchcciccjcckcclccmccnccoccpccqccrccscctaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabWgbWhccuccvccvbXZbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccwbTgccxbTgccycczaabaaabOVbOVbUIbUIbUIbOVaaabUTccAccBccCccDbZFccEccFbUVccGccHccIbYnccJccKccLccMccNccOccPbUZccQccRccSccTccUccUccUccUccVccWccXccYccYccZccZcdacdbcdcbVibPlcddcdecdfcdgcdhbYKcdicbtcdjcdkcdlcdmbSwcdncdocdpcdqcdrcdrcdscdrcdrcdrcdtbVAcducdvcdwcdxcdycdzcdAcbPcdBcdCcdDcdEcdFcdCcdGcdHcdCcdIcdJbRBbPTbPTcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdUcdVcdWcdXcdYcdZceacebceaceccebcebcebcedceecefcegcehaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabWhbWhceibXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbXZbWhbWhaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabFlbFlbFlbFlbFlbFlbFlbFlbFlaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabcejbUTbUTbUTcekbUTbUTcelbUVcemcenceocepceqcercescetceucevcewccKcexceycezceAceBceBceBceBceCceDceEceFceGceFceHceIceJceKceLceMceNceOcePceQceRceSceTceUceVceWceXceYceZcfacfbcfccfdcfdcfdcfecffcfgcfhcficfjcfjcfkcfjcflcfmcfncfocbPcfpcfqcfrcfscfrcftcfucfvcdCbPTcfwbPTbPTcfxcfybZnbBxbEXbUAcfzbUAbUAcfAcfBcfCcfDcfEcebcfFcfGcfHcdUcfHcdUcfIcdUcdUbUAcfJcfKcfLcfMaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabWhbXZbXZbXZbXZbXZbXZcfNbXZcfObXZbXZbXZbXZbXZbWhbWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcfPcfQcfRbUTcfSbUVcfTcfUcfVbZHcfWcfXcfYbYpcfZcgacgbcfXcgccgdcgecgfcgfcggcghcgicgjcgkcglcgmbGycgnbVicgobGybGycgpcgqcgrcgscgtceQcgucgvcgwcgxcgycgzcgAcgBcgCcgzcgzcgDcgEcgEcgEcgEcgEcgGcgFcgHcgJcgJcgKcgLcgMcgNcgOcgPcbPcgQcgRcgScgTcgScgUcgVcfrcgWcgXcgYbBxcgZbBxcfybZnbBxbEXchachbchcbUAbUAbUAbUAbUAchdcdUchechfcfIcdUchgcdUbZpcdUchhbUAchichjchkbUAaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabWhchlchlchlchlchlchlchmbXZchnchlcfObXZbXZbXZbXZbWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcfPcfQcfRbUTcfSbUVcfTcfUcfVbZHcfWcfXcfYbYpcfZcgacgbcfXcgccgdcgecgfcgfcggcghcgicgjcgkcglcgmbGycgnbVicgobGybGycgpcgqcgrcgscgtceQcgucgvcgwcgxcgycgzbMVcgBcgCcgzcgzcgDcgEcgEcgEcgEcgEcgGcgFcgHcgJcgJcgKcgLcgMcgNcgOcgPcbPcgQcgRcgScgTcgScgUcgVcfrcgWcgXcgYbBxcgZbBxcfybZnbBxbEXchachbchcbUAbUAbUAbUAbUAchdcdUchechfcfIcdUchgcdUbZpcdUchhbUAchichjchkbUAaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabWhchlchlchlchlchlchlchmbXZchnchlcfObXZbXZbXZbXZbWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejchochpchqbUTcfSchrchrchrchrchrchrbUZbUZbUZbUZbUZbUZbUZchschtchuchvchwchxchychychzchAcglbGybGychBchCchDbGybGybGychEchFchGceOchHchIchJcgEchKchLchMbSqchLchNcfdcfdcfdcfdcfdcfdcfdcfdcfdcgIbSqchOchPchQchRchSchTchUchVcbPchWchXcfrchYcfrchZciacibciccidciecifbBxcigcfybZncihbEXbFeciicijcikbwobxXbxXbUAcilcimcinciocipciqcirciscitciucivbUAciwcixciycizaacaacaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaciAbXXbXXbXXbXXbXXbXXbXXciBciCbXZbXZbXZbXZciDbYabWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacejcejcejcejbUTcfScejaaaaaaaaaaaaciEbaTciGciHciIciJciKciLciMciNciOciPciQciRciSciSciTciUciVciWciWciWciWciXciWbGybGybPlciYciZcjacjbcjccjdchScjecjfcjgcjhcjicjjcjkcfdcfdcjlcjpcjpcjpcjpckNclSckUcjqcjqcjrcjscjtcbAcjucjvcbPcjwcjxcjycjzcjAcfrcjBcbPcbPbEXcjCbEXbEXbEXcjDcjEcjFbEXbxXciicjGcjHbwobwobwobUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAbUAaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabWhccvccvccvccvccvccvcjIbXZccuccvcjJbXZbXZbXZbXZbWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacAjaaaaabaabcjKcjKcjKcjKcjKcjKcjLcjKbUTcelcjMaaacjNcjOcjPcjQcjRcjScjTcjUcjVcjWcjXcjYcjZckackbckcckdckeckfckgckhciVckickjckjckjckkciWbGybGycklcklcklcklckmcklckncknckocklcklckpcklckqckrckscktcksclZaPKcmacmmcmlcmocmnckzckAckBckCckDckEckFcdccbPcbPckGcbPckHcbPckIckJckKcgnckLckMckvckOckPckQckRckSckPbxXciickTbxXbxXckVckWckXchabxXbxXbxXbxXbxXbxXbxXckYckZbONaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabWhbXZbXZbXZbXZbXZbXZcfNbXZcjJbXZbXZbXZbXZbXZbWhbWhaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8401,7 +8399,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsccsdcsecsfcsgcsgcshcsicsjcskcslcsmcsncsocspcspcspcsqcsrcsscstcstcsucsvcswcsxcsycsxcsxcsxcswcsxcsxcszcsAcsBcsCcgdcbkcsDcsEcsFcsGcgfcsHcmQcsIcsJcsKcsLcsMcsNcsObGybGycpFcsPcsQcsRcsScsTcsUcpFcsVcsTcsWcsXcsRcsYcwraaaaaaaaacEjdbAdbzdbAdbAdbCdbBdbEdbDdbycwFbVibGycuscoDcwpaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaactdckPcxGckSctdctfctgcthctictjctkctlcpXcpXctmctnctoctpctqbwocvzbxXcxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsccsdctuctvctwctvctxctyctzctActBctCctBctDctEctEctFctEcgdctGcblcblctEctHctEctEctEctEctEctEctEctEctEctEctIctJctKctLctMctNctOctPctQctRctSctTctUctVctWctXctYctZcuacnqcubcuccudcuecufcugcuhcuicpFcujcqKcugcukcqJculcwraaaaaaaaadbFcmkdbGdbJdbIdbCdbKdbMdbLdbOdbNceFceJdbPcoDcwpaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaackPcurcyFcutckPcnCcnCcnCcnCcnCcnCcuuctlcuvcuwcuxcuycnCcnCbwocvzbxXcxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacsccuBctvcuCcuDcuEcuFcuGcuHcuIcuJcuKcuLcuMcuNcuOcuPcuQcuRceAcuSceAcuNcuTcuNcuNcuNcuNcuNcuNcuNcuNcuNcuNcuUctEcuVcuWcuXcuYcuZcvacvbcvccvdcvecvfcvgcvhcvicvjcvkcsLceJcvlcvmcvncqKcqJcqKcqKcvocpFcvpcqKcqKcqNcqJcyGcwraaaaaaaaadbFdbRdbQdbTdbSdbVdbUdbXdbWdbybGychCcyHcuscoAaaaaaaaaaaaaaaaaabckPckPckPckPckPckPckPckPckPcvucxScvwckPcxOcxOcyIckPaabcnCcnCcvAcnCcvBcvCcvDcnCcyKcyJcvzbxXcxHaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbabLcrjcrjcrjcrjcrjcrjcvFcvGcvGcvHctBcvIcrjcrmcvJcvKcvKcvLcvKcvMcvKcvKcvNcvOcvKcvKcvOcvOcvOcvKcvKcvKcvKcvPcvQcvRcvScvTcvUcvVcvWcvXcvWcvWcvYcvWcvZcwacwbcwccwdcsObGycvrcwecwfcwgcwhcwicwjcwkcpFcwlcwjcwmcqNcwncwocpMaaaaaaaaadbFdbZdbYdcadbIdccdcbdbUczRdbycyObVibVicuscoAaaaaaaaaaaaaaaaaaackPcwtcwucwvcwwcwxcwycwzcwAcwBcxScwDckPcxOcBZcyPckPaabaabcwGcwHcwIcwJcwKcwLcwGbxXbxXcvzczfbwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadbabLcrjcrjcrjcrjcrjcrjcvFcvGcvGcvHctBcvIcrjcrmcvJcvKcvKcvLcvKcvMcvKcvKcvNcvOcvKcvKcvOcvOcvOcvKcvKcvKcvKcvPcvQcvRcvScvTcvUcvVcvWcvXcvWcvWcvWcvWcvZcwacwbcwccwdcsObGycvrcwecwfcwgcwhcwicwjcwkcpFcwlcwjcwmcqNcwncwocpMaaaaaaaaadbFdbZdbYdcadbIdccdcbdbUczRdbycyObVibVicuscoAaaaaaaaaaaaaaaaaaackPcwtcwucwvcwwcwxcwycwzcwAcwBcxScwDckPcxOcBZcyPckPaabaabcwGcwHcwIcwJcwKcwLcwGbxXbxXcvzczfbwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGacGacGafxafxacGafxafxafxagiafxafxaabagiaqZaaaaabaabcwNcwNcwNcrjcwOcwPcwQcwRcwScwTcwUcwVcwWcwXcwYcwZcxacxbcxccxdcxecxfcxgcvKcxfcxhcxicxjcxjcxkcvKcxlcxmcxncxocbkcxpcxqcxrcxscxtcxucxtcxvcxwcxxcxycxzcxAcsOcsOcvrcwecpMcpMcxBcpMcpMcxCcxDcxEcxEcxEcxFcxEcyUcpMaaaaaaaaadbFdbFdbFdbFdbFdbydcedcgdcfdbybGybGyczhcuscoAaaaaaaaaaaaaaaaaaackPcxOcxPcxOcxQcxRcqUcxScwAcxTczicxTckPcxOcxOcMpckPaabaaacwGcxWcxXcwJcwJcxYcwGczjbxXcvzbzNczMaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaaaaacGaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaaqZaaaaaaaaaaabaabcwNcrjcrjcrjcrjcrjcrjcrjcrjcybcwWcwXcyccydcyecyfcyfcyfcyfcygcyhcyicxjcyjcxjcxjcykcxjcylcymcyncyocxocbkcypcyqcyrcxscyscytcyucxscyvcywcyxcyycyzcyAcyBcyCcyDcyEcyEcAaczUcAdcAccAeczTcALceJcAhbGycAMcoAcoAcoAcoAcoAaaaaaaaaaaaadcidchdckdcjdbydclbVibVicuscoAcoAcoAcoAcoAaaaaaackPcxOcxOcxOcyZczaczbczcczdczecAiczgckPcAVcAYcAWckPaaaaaacwGczkcwJczlcwJczmcwGbxXbxXcvzczMbwoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacyacyacyacyacyacyacyaaaaaaaaaaaaaaaaaaaaaaacGaaaczoczpczqaaaczoczpczqaaaczoczpczqaabczraabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaczscwWcwXcztcxjcykczucxjcxjcxjczvcxjcztcztcxjcxjcxjcxjczwczxcymczyctEczzcbkcyqcyqczAcxsczBczCczDcxsczEctWczFczGczHczIczJczKbGyczLcdcczLbGycBacAZcBccBccBccBccBPcBNcBNcBNcBNcBNcBQcoAaaaaaaaaaaaadcidchdckdcmdcnbGyckObVicusbGybGybGycgmcoAaaaaaackPcwAcwAcwAcwAczWcqUczXczYczZcCfcAbckPcCGcCYcCIckPaaaaaacwGcAfcAgcDLcwJcDNcwGcEdbxXcvzbwoaabaabaabaabaaaaaaaaaaaaaahaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm index 3e3e219792b..293ba1f18ea 100644 --- a/code/__DEFINES/hud.dm +++ b/code/__DEFINES/hud.dm @@ -8,4 +8,3 @@ #define IMPTRACK_HUD 7 // tracking implant #define SPECIALROLE_HUD 8 // AntagHUD image #define STATUS_HUD_OOC 9 // STATUS_HUD without virus db check for someone being ill. -#define NATIONS_HUD 10 //Show nations icons during nations gamemode diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index a81a99c540b..00faf1864f9 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -31,11 +31,6 @@ var/datum/job/J = new T joblist[J.title] = J - paths = subtypesof(/datum/nations) - for(var/T in paths) - var/datum/nations/N = new T - all_nations[N.name] = N - paths = subtypesof(/datum/superheroes) for(var/T in paths) var/datum/superheroes/S = new T diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 452911908bc..c13ae732cee 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -2,7 +2,6 @@ var/global/list/all_species[0] var/global/list/all_languages[0] var/global/list/language_keys[0] // Table of say codes for all languages -var/global/list/all_nations[0] var/global/list/all_superheroes[0] var/global/list/whitelisted_species = list() diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index a001c55082f..e43177c0965 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -8,7 +8,6 @@ var/global/list/side_effects = list() //list of all medical sideeffects types var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking. var/global/list/spacepods_list = list() //list of all space pods. Used by hostile mobs target tracking. var/global/list/joblist = list() //list of all jobstypes, minus borg and AI -var/global/list/flag_list = list() //list of flags during Nations gamemode var/global/list/airlocks = list() //list of all airlocks var/global/list/singularities = list() //list of all singularities var/global/list/janitorial_equipment = list() //list of janitorial equipment diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index 048eaa55fd3..fc8e01984f9 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -167,18 +167,4 @@ if(istype(teleatom, /mob/living)) var/mob/living/MM = teleatom MM << "The bluespace interface on your bag of holding interferes with the teleport!" - return 1 - -/datum/teleport/instant/science/teleportChecks() - if(istype(teleatom, /obj/item/flag/nation)) // Don't let nation's flags get teleported either --Fox - teleatom.visible_message("The portal rejects [teleatom]!") - return 0 - - if(!isemptylist(teleatom.search_contents_for(/obj/item/flag/nation))) - if(istype(teleatom, /mob/living)) - var/mob/living/MM = teleatom - MM.visible_message("The portal rejects [MM]!","The flag that you're carrying seems to be unable to pass through the portal. Better drop it if you want to go through.") - else - teleatom.visible_message("The portal rejects [teleatom]!") - return 0 return 1 \ No newline at end of file diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f781ace9a90..0efec301d83 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -55,7 +55,6 @@ var/datum/faction/faction //associated faction var/datum/changeling/changeling //changeling holder - var/datum/nations/nation //associated nation for CTF var/datum/vampire/vampire //vampire holder var/rev_cooldown = 0 diff --git a/code/game/gamemodes/epidemic/epidemic.dm b/code/game/gamemodes/epidemic/epidemic.dm deleted file mode 100644 index e64100e2a12..00000000000 --- a/code/game/gamemodes/epidemic/epidemic.dm +++ /dev/null @@ -1,224 +0,0 @@ -/datum/game_mode/epidemic - name = "epidemic" - config_tag = "epidemic" - required_players = 1 - required_players_secret = 15 - - var/const/waittime_l = 300 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 600 //upper bound on time before intercept arrives (in tenths of seconds) - var/checkwin_counter =0 - var/finished = 0 - - var/cruiser_arrival - - var/virus_name = "" - - var/stage = 0 - var/doctors = 0 - -/////////////////////////// -//Announces the game type// -/////////////////////////// -/datum/game_mode/epidemic/announce() - world << "The current game mode is - Epidemic!" - world << "A deadly epidemic is spreading on the station. Find a cure as fast as possible, and keep your distance to anyone who speaks in a hoarse voice!" - - -/////////////////////////////////////////////////////////////////////////////// -//Gets the round setup, cancelling if there's not enough players at the start// -/////////////////////////////////////////////////////////////////////////////// -/datum/game_mode/epidemic/pre_setup() - doctors = 0 - for(var/mob/new_player/player in world) - if(player.mind.assigned_role in list("Chief Medical Officer","Medical Doctor")) - doctors++ - break - - if(doctors < 1) - return 0 - - return 1 - -/datum/game_mode/epidemic/proc/cruiser_seconds() - return (cruiser_arrival - world.time) / 10 - -////////////////////// INTERCEPT //////////////////////// -/// OVERWRITE THE INTERCEPT WITH A QUARANTINE WARNING /// -///////////////////////////////////////////////////////// - -/datum/game_mode/epidemic/send_intercept() - var/intercepttext = "CONFIDENTIAL REPORT
" - virus_name = "X-[rand(1,99)]™" - intercepttext += "Warning: Pathogen [virus_name] has been detected on [station_name()].

" - intercepttext += "Code violet quarantine of [station_name()] put under immediate effect.
" - intercepttext += "Class [rand(2,5)] cruiser has been dispatched. ETA: [round(cruiser_seconds() / 60)] minutes.
" - intercepttext += "
Instructions
" - intercepttext += "* ELIMINATE THREAT WITH EXTREME PREJUDICE. [virus_name] IS HIGHLY CONTAGIOUS. INFECTED CREW MEMBERS MUST BE QUARANTINED IMMEDIATELY.
" - intercepttext += "* [station_name()] is under QUARANTINE. Any vessels outbound from [station_name()] will be tracked down and destroyed.
" - intercepttext += "* The existence of [virus_name] is highly confidential. To prevent a panic, only high-ranking staff members are authorized to know of its existence. Crew members that illegally obtained knowledge of [virus_name] are to be neutralized.
" - intercepttext += "* A cure is to be researched immediately, but Nanotrasen intellectual property must be respected. To prevent knowledge of [virus_name] from falling into unauthorized hands, all medical staff that work with the pathogen must be enhanced with a Nanotrasen loyality implant.
" - - - for (var/obj/machinery/computer/communications/comm in world) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. CONFIDENTIAL REPORT") - comm.messagetext.Add(intercepttext) - - world << sound('sound/AI/commandreport.ogg') - - // add an extra law to the AI to make sure it cooperates with the heads - var/extra_law = "Crew authorized to know of pathogen [virus_name]'s existence are: Heads of command, any crew member with loyalty implant. Do not allow unauthorized personnel to gain knowledge of [virus_name]. Aid authorized personnel in quarantining and neutrlizing the outbreak. This law overrides all other laws." - for(var/mob/living/silicon/ai/M in world) - M.add_ion_law(extra_law) - M << "\red " + extra_law - -/datum/game_mode/epidemic/proc/announce_to_kill_crew() - var/intercepttext = "CONFIDENTIAL REPORT
" - intercepttext += "PATHOGEN [virus_name] IS STILL PRESENT ON [station_name()]. IN COMPLIANCE WITH NANOTRASEN LAWS FOR INTERSTELLAR SAFETY, EMERGENCY SAFETY MEASURES HAVE BEEN AUTHORIZED. ALL INFECTED CREW MEMBERS ON [station_name()] ARE TO BE NEUTRALIZED AND DISPOSED OF IN A MANNER THAT WILL DESTROY ALL TRACES OF THE PATHOGEN. FAILURE TO COMPLY WILL RESULT IN IMMEDIATE DESTRUCTION OF [station_name].
" - intercepttext += "CRUISER WILL ARRIVE IN [round(cruiser_seconds()/60)] MINUTES
" - - for (var/obj/machinery/computer/communications/comm in world) - if (!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - intercept.name = "paper" - intercept.info = intercepttext - - comm.messagetitle.Add("Cent. Com. CONFIDENTIAL REPORT") - comm.messagetext.Add(intercepttext) - world << sound('sound/AI/commandreport.ogg') - - -/datum/game_mode/epidemic/post_setup() - // make sure viral outbreak events don't happen on this mode - EventTypes.Remove(/datum/event/viralinfection) - - // scan the crew for possible infectees - var/list/crew = list() - for(var/mob/living/carbon/human/H in world) if(H.client) - // heads should not be infected - if(H.mind.assigned_role in command_positions) continue - crew += H - - if(crew.len < 2) - world << "\red There aren't enough players for this mode!" - world << "\red Rebooting world in 5 seconds." - - if(blackbox) - blackbox.save_all_data_to_sql() - sleep(50) - world.Reboot() - - var/datum/disease2/disease/lethal = new - lethal.makerandom(1) - lethal.infectionchance = 5 - - // the more doctors, the more will be infected - var/lethal_amount = doctors * 2 - - // keep track of initial infectees - var/list/infectees = list() - - for(var/i = 0, i < lethal_amount, i++) - var/mob/living/carbon/human/H = pick(crew) - if(lethal.uniqueID in H.virus2) - i-- - continue - H.virus2["[lethal.uniqueID]"] = lethal.getcopy() - infectees += H - - var/mob/living/carbon/human/patient_zero = pick(infectees) - var/datum/disease2/disease/V = patient_zero.virus2["[lethal.uniqueID]"] - V.stage = 3 - - cruiser_arrival = world.time + (10 * 90 * 60) - stage = 1 - - spawn (rand(waittime_l, waittime_h)) - send_intercept() - - - ..() - - -/datum/game_mode/epidemic/process() - if(stage == 1 && cruiser_seconds() < 60 * 30) - announce_to_kill_crew() - stage = 2 - else if(stage == 2 && cruiser_seconds() <= 60 * 5) - command_announcement.Announce("Inbound cruiser detected on collision course. Scans indicate the ship to be armed and ready to fire. Estimated time of arrival: 5 minutes.", "[station_name()] Early Warning System") - stage = 3 - else if(stage == 3 && cruiser_seconds() <= 0) - crew_lose() - stage = 4 - - checkwin_counter++ - if(checkwin_counter >= 20) - if(!finished) - ticker.mode.check_win() - checkwin_counter = 0 - return 0 - -////////////////////////////////////// -//Checks if the revs have won or not// -////////////////////////////////////// -/datum/game_mode/epidemic/check_win() - var/alive = 0 - var/sick = 0 - for(var/mob/living/carbon/human/H in world) - if(H.key && H.stat != 2) alive++ - if(H.virus2.len && H.stat != 2) sick++ - - if(alive == 0) - finished = 2 - if(sick == 0) - finished = 1 - return - -/////////////////////////////// -//Checks if the round is over// -/////////////////////////////// -/datum/game_mode/epidemic/check_finished() - if(finished != 0) - return 1 - else - return 0 - -/////////////////////////////////////////// -///Handle crew failure(station explodes)/// -/////////////////////////////////////////// -/datum/game_mode/epidemic/proc/crew_lose() - ticker.mode:explosion_in_progress = 1 - for(var/mob/M in world) - if(M.client) - M << 'sound/machines/Alarm.ogg' - world << "\blueIncoming missile detected.. Impact in 10.." - for (var/i=9 to 1 step -1) - sleep(10) - world << "\blue[i].." - sleep(10) - enter_allowed = 0 - if(ticker) - ticker.station_explosion_cinematic(0,null) - if(ticker.mode) - ticker.mode:station_was_nuked = 1 - ticker.mode:explosion_in_progress = 0 - finished = 2 - return - - -////////////////////////////////////////////////////////////////////// -//Announces the end of the game with all relavent information stated// -////////////////////////////////////////////////////////////////////// -/datum/game_mode/epidemic/declare_completion() - if(finished == 1) - feedback_set_details("round_end_result","win - epidemic cured") - world << "\red The virus outbreak was contained! The crew wins!" - else if(finished == 2) - feedback_set_details("round_end_result","loss - rev heads killed") - world << "\red The crew succumbed to the epidemic!" - ..() - return 1 \ No newline at end of file diff --git a/code/game/gamemodes/meme/meme.dm b/code/game/gamemodes/meme/meme.dm deleted file mode 100644 index 0f9bb44babe..00000000000 --- a/code/game/gamemodes/meme/meme.dm +++ /dev/null @@ -1,181 +0,0 @@ -//This file was auto-corrected by findeclaration.exe on 29/05/2012 15:03:04 - -/datum/game_mode/var/list/memes = list() - -/datum/game_mode/meme - name = "Memetic Anomaly" - config_tag = "meme" - required_players = 3 - required_players_secret = 10 - restricted_jobs = list("AI", "Cyborg") - recommended_enemies = 2 // need at least a meme and a host - votable = 0 // temporarily disable this mode for voting - - - - var/var/list/datum/mind/first_hosts = list() - var/var/list/assigned_hosts = list() - - var/const/prob_int_murder_target = 50 // intercept names the assassination target half the time - var/const/prob_right_murder_target_l = 25 // lower bound on probability of naming right assassination target - var/const/prob_right_murder_target_h = 50 // upper bound on probability of naimg the right assassination target - - var/const/prob_int_item = 50 // intercept names the theft target half the time - var/const/prob_right_item_l = 25 // lower bound on probability of naming right theft target - var/const/prob_right_item_h = 50 // upper bound on probability of naming the right theft target - - var/const/prob_int_sab_target = 50 // intercept names the sabotage target half the time - var/const/prob_right_sab_target_l = 25 // lower bound on probability of naming right sabotage target - var/const/prob_right_sab_target_h = 50 // upper bound on probability of naming right sabotage target - - var/const/prob_right_killer_l = 25 //lower bound on probability of naming the right operative - var/const/prob_right_killer_h = 50 //upper bound on probability of naming the right operative - var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly - var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly - - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - -/datum/game_mode/meme/announce() - world << "The current game mode is - Meme!" - world << "An unknown creature has infested the mind of a crew member. Find and destroy it by any means necessary." - -/datum/game_mode/meme/can_start() - if(!..()) - return 0 - - // for every 10 players, get 1 meme, and for each meme, get a host - // also make sure that there's at least one meme and one host - recommended_enemies = max(src.num_players() / 20 * 2, 2) - - var/list/datum/mind/possible_memes = get_players_for_role(BE_MEME) - - if(possible_memes.len < 2) - log_admin("MODE FAILURE: MEME. NOT ENOUGH MEME CANDIDATES.") - return 0 // not enough candidates for meme - - // for each 2 possible memes, add one meme and one host - while(possible_memes.len >= 2) - var/datum/mind/meme = pick(possible_memes) - possible_memes.Remove(meme) - - var/datum/mind/first_host = pick(possible_memes) - possible_memes.Remove(first_host) - - modePlayer += meme - modePlayer += first_host - memes += meme - first_hosts += first_host - - // so that we can later know which host belongs to which meme - assigned_hosts[meme.key] = first_host - - meme.assigned_role = "MODE" //So they aren't chosen for other jobs. - meme.special_role = "Meme" - - return 1 - -/datum/game_mode/meme/pre_setup() - return 1 - - -/datum/game_mode/meme/post_setup() - // create a meme and enter it - for(var/datum/mind/meme in memes) - var/mob/living/parasite/meme/M = new - var/mob/original = meme.current - meme.transfer_to(M) - M.clearHUD() - - // get the host for this meme - var/datum/mind/first_host = assigned_hosts[meme.key] - // this is a redundant check, but I don't think the above works.. - // if picking hosts works with this method, remove the method above - if(!first_host) - first_host = pick(first_hosts) - first_hosts.Remove(first_host) - M.enter_host(first_host.current) - forge_meme_objectives(meme, first_host) - - del original - - log_admin("Created [memes.len] memes.") - - spawn (rand(waittime_l, waittime_h)) - send_intercept() - ..() - return - - -/datum/game_mode/proc/forge_meme_objectives(var/datum/mind/meme, var/datum/mind/first_host) - // meme always needs to attune X hosts - var/datum/objective/meme_attune/attune_objective = new - attune_objective.owner = meme - attune_objective.gen_amount_goal(3,6) - meme.objectives += attune_objective - - // generate some random objectives, use standard traitor objectives - var/job = first_host.assigned_role - - for(var/datum/objective/o in SelectObjectives(job, meme)) - o.owner = meme - meme.objectives += o - - greet_meme(meme) - - return - -/datum/game_mode/proc/greet_meme(var/datum/mind/meme, var/you_are=1) - if (you_are) - meme.current << "\red You are a meme!" - - var/obj_count = 1 - for(var/datum/objective/objective in meme.objectives) - meme.current << "Objective #[obj_count]: [objective.explanation_text]" - obj_count++ - return - -/datum/game_mode/meme/check_finished() - var/memes_alive = 0 - for(var/datum/mind/meme in memes) - if(!istype(meme.current,/mob/living)) - continue - if(meme.current.stat==2) - continue - memes_alive++ - - if (memes_alive) - return ..() - else - return 1 - -/datum/game_mode/proc/auto_declare_completion_meme() - for(var/datum/mind/meme in memes) - var/memewin = 1 - var/attuned = 0 - if((meme.current) && istype(meme.current,/mob/living/parasite/meme)) - world << "The meme was [meme.current.key]." - world << "The last host was [meme.current:host.key]." - world << "Hosts attuned: [attuned]" - - var/count = 1 - for(var/datum/objective/objective in meme.objectives) - if(objective.check_completion()) - world << "Objective #[count]: [objective.explanation_text] \green Success" - feedback_add_details("meme_objective","[objective.type]|SUCCESS") - else - world << "Objective #[count]: [objective.explanation_text] \red Failed" - feedback_add_details("meme_objective","[objective.type]|FAIL") - memewin = 0 - count++ - - else - memewin = 0 - - if(memewin) - world << "The meme was successful!" - feedback_add_details("meme_success","SUCCESS") - else - world << "The meme has failed!" - feedback_add_details("meme_success","FAIL") - return 1 diff --git a/code/game/gamemodes/nations/flag_pinpointer.dm b/code/game/gamemodes/nations/flag_pinpointer.dm deleted file mode 100644 index 776932bbb7b..00000000000 --- a/code/game/gamemodes/nations/flag_pinpointer.dm +++ /dev/null @@ -1,65 +0,0 @@ -/obj/item/weapon/pinpointer/advpinpointer/flag - name = "\improper Flag Pinpointer" - desc = "Tracks the position of every nation's flag." - -/obj/item/weapon/pinpointer/advpinpointer/flag/attack_self() - switch(mode) - if (0) - mode = 1 - active = 1 - target = locate(/obj/item/flag/nation/atmos) - point_at(target) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - if (1) - mode = 2 - target = locate(/obj/item/flag/nation/sec) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - if (2) - mode = 3 - target = locate(/obj/item/flag/nation/cargo) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - if (3) - mode = 4 - target = locate(/obj/item/flag/nation/command) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - if (4) - mode = 5 - target = locate(/obj/item/flag/nation/med) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - if (5) - mode = 6 - target = locate(/obj/item/flag/nation/rnd) - usr << "\blue You calibrate \the [src] to locate the [target.name]" - else - mode = 0 - active = 0 - icon_state = "pinoff" - usr << "\blue You switch \the [src] off." - -/obj/item/weapon/pinpointer/advpinpointer/flag/examine(mob/user) - switch(mode) - if (1) - user << "Is is calibrated for the [target.name]" - if (2) - user << "Is is calibrated for the [target.name]" - if (3) - user << "Is is calibrated for the [target.name]" - if (4) - user << "Is is calibrated for the [target.name]" - if (5) - user << "Is is calibrated for the [target.name]" - else - user << "It is switched off." - -/datum/supply_packs/key_pinpointer_nations - name = "Nations Flag Pinpointer crate" - contains = list(/obj/item/weapon/pinpointer/advpinpointer/flag) - cost = 20 - containertype = /obj/structure/closet/crate - containername = "Nations Flag Pinpointer crate" - access = access_heads - group = "Operations" - - New() - if (istype(ticker.mode,/datum/game_mode/nations)) - ..() diff --git a/code/game/gamemodes/nations/flagprocs.dm b/code/game/gamemodes/nations/flagprocs.dm deleted file mode 100644 index aa516de1f3d..00000000000 --- a/code/game/gamemodes/nations/flagprocs.dm +++ /dev/null @@ -1,142 +0,0 @@ -/obj/item/flag/nation - density = 1 - anchored = 1 - var/turf/startloc = null - var/captured = 0 - var/list/vassals = list() - var/datum/nations/liege = null - var/datum/nations/nation = null - -/obj/item/flag/nation/New() - ..() - flag_list += src - -/obj/item/flag/nation/fire_act() - return - -/obj/item/flag/nation/Ignite() - return - -/obj/item/flag/nation/light() - return - -/obj/item/flag/nation/attackby(var/obj/item/weapon/W, var/mob/user, params) - return - - -/obj/item/flag/nation/ex_act() - return - -/obj/item/flag/nation/blob_act() - return - - -/obj/item/flag/nation/attack_hand(mob/user as mob) - if(user.mind) - if(user.mind.nation) - var/obj/item/flag/nation/F = locate(user.mind.nation.flagpath) - if(istype(user.mind.nation,nation)) //Same team as flag - if(liege && liege == F.liege) - user << "You can't steal your liege's flags!" - return - else if(loc != startloc) - loc = startloc - user.visible_message("[user] sends [src] back to base!", "You return [src] to your base!") - return - else - user << "You can't move your flag from it's home location!" - return - else - if(captured && Adjacent(F.startloc)) - user << "This flag has already been captured by your team!" - return - else if(..()) - captured = 0 - anchored = 0 - var/obj/item/flag/nation/N = null - if(liege) - N = locate(liege.flagpath) - for(var/mob/living/carbon/human/H in player_list) - if(H.mind && H.mind.nation && liege && nation) - if(H.mind.nation.name == liege.name) //we have to check based on the name var since they will be different instances of the nation datum - H.mind.current << "You are no longer the liege of [nation]!" - if(H.mind.nation.name == nation.name) - H.mind.current << "You are no longer vassals of [liege]!" - if(N) - N.vassals -= nation - liege = null - else - user << "You are not part of a nation and therefore cannot pick up any flags!" - return - return - -/obj/item/flag/nation/dropped(mob/user as mob) - ..() - spawn(20) - anchored = 1 - var/obj/item/flag/nation/F = locate(user.mind.nation.flagpath) - if(F.loc != F.startloc) return - for(var/obj/item/flag/nation/S in orange(1,F.startloc)) - if(S == src) - captured = 1 - liege = F.nation - F.vassals += nation - //Announce capture/vassalage here. - for(var/mob/living/carbon/human/H in player_list) - if(H.mind && H.mind.nation && F.nation && nation) - if(H.mind.nation.name == F.nation.name) - H.mind.current << "You have just vassalized [nation]! They must now obey any members of your nation!" - continue - if(H.mind.nation.name == nation.name) - H.mind.current << "You are now vassals of [liege]! You must now obey the orders of any of their members!" - continue - //Check for Victory - for(var/obj/item/flag/nation/N in flag_list) - if(F.nation && N.nation) - if(F.nation.name == N.nation.name) - continue - if(N.liege && F.nation) - if(N.captured && N.liege.name == F.nation.name) - continue - else - return - ticker.mode.declare_completion(F.nation) - - - -//Nations/Department flags --Nations Gamemode Specific -/obj/item/flag/nation/cargo - name = "Cargonia flag" - desc = "The flag of the independent, sovereign nation of Cargonia." - icon_state = "cargoflag" - nation = new /datum/nations/cargonia - -/obj/item/flag/nation/med - name = "Medistan flag" - desc = "The flag of the independent, sovereign nation of Medistan." - icon_state = "medflag" - nation = new /datum/nations/medistan - -/obj/item/flag/nation/sec - name = "Brigston flag" - desc = "The flag of the independent, sovereign nation of Brigston." - icon_state = "secflag" - nation = new /datum/nations/brigston - -/obj/item/flag/nation/rnd - name = "Scientopia flag" - desc = "The flag of the independent, sovereign nation of Scientopia." - icon_state = "rndflag" - nation = new /datum/nations/scientopia - -/obj/item/flag/nation/atmos - name = "Atmosia flag" - desc = "The flag of the independent, sovereign nation of Atmosia." - icon_state = "atmosflag" - nation = new /datum/nations/atmosia - -/obj/item/flag/nation/command - name = "People's Republic of Commandzakstan flag" - desc = "The flag of the independent, sovereign nation of the People's Republic of Commandzakstan." - icon_state = "ntflag" - nation = new /datum/nations/command \ No newline at end of file diff --git a/code/game/gamemodes/nations/nationdatums.dm b/code/game/gamemodes/nations/nationdatums.dm deleted file mode 100644 index 27ccb2ed2cc..00000000000 --- a/code/game/gamemodes/nations/nationdatums.dm +++ /dev/null @@ -1,30 +0,0 @@ -/datum/nations - var/name - var/flagpath - -/datum/nations/atmosia - name = "Atmosia" - flagpath = /obj/item/flag/nation/atmos - -/datum/nations/brigston - name = "Brigston" - flagpath = /obj/item/flag/nation/sec - -/datum/nations/cargonia - name = "Cargonia" - flagpath = /obj/item/flag/nation/cargo - -/datum/nations/command - name = "People's Republic of Commandzakstan" - flagpath = /obj/item/flag/nation/command - -/datum/nations/medistan - name = "Medistan" - flagpath = /obj/item/flag/nation/med - -/datum/nations/scientopia - name = "Scientopia" - flagpath = /obj/item/flag/nation/rnd - - - diff --git a/code/game/gamemodes/nations/nations.dm b/code/game/gamemodes/nations/nations.dm deleted file mode 100644 index 9efc2e4f6f4..00000000000 --- a/code/game/gamemodes/nations/nations.dm +++ /dev/null @@ -1,439 +0,0 @@ -var/global/no_synthetic = 0 - -datum/game_mode/nations - name = "nations" - config_tag = "nations" - required_players_secret = 25 - var/const/waittime_l = 1200 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 3000 //upper bound on time before intercept arrives (in tenths of seconds) - var/kickoff = 0 - var/victory = 0 - var/list/cargonians = list("Quartermaster","Cargo Technician","Shaft Miner") - -/datum/game_mode/nations/pre_pre_setup() - no_synthetic = 1 - -/datum/game_mode/nations/post_setup() - spawn (rand(waittime_l, waittime_h)) - remove_flags() - spawn(50) - kickoff=1 - send_intercept() - split_teams() - spawn_flags() - populate_vars() - for(var/mob/M in player_list) - if(!istype(M,/mob/new_player)) - M << sound('sound/effects/purge_siren.ogg') - return ..() - -/datum/game_mode/nations/send_intercept() - command_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 COMMAND.") - - - -/datum/game_mode/nations/proc/remove_flags() - for(var/obj/item/flag/F in world) - qdel(F) - -/datum/game_mode/nations/proc/spawn_flags() - - for(var/obj/effect/landmark/nations/N in landmarks_list) - switch(N.name) - if("Atmosia") - new /obj/item/flag/nation/atmos(get_turf(N)) - if("Brigston") - new /obj/item/flag/nation/sec(get_turf(N)) - if("Cargonia") - new /obj/item/flag/nation/cargo(get_turf(N)) - if("People's Republic of Commandzakstan") - new /obj/item/flag/nation/command(get_turf(N)) - if("Medistan") - new /obj/item/flag/nation/med(get_turf(N)) - if("Scientopia") - new /obj/item/flag/nation/rnd(get_turf(N)) - -/datum/game_mode/nations/proc/split_teams() - - for(var/mob/living/carbon/human/H in player_list) - if(H.mind) - if(H.mind.assigned_role in engineering_positions) - H.mind.nation = all_nations["Atmosia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudatmosia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in medical_positions) - H.mind.nation = all_nations["Medistan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudmedistan") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in science_positions) - H.mind.nation = all_nations["Scientopia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudscientopia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in security_positions) - H.mind.nation = all_nations["Brigston"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudbrigston") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in cargonians) - H.mind.nation = all_nations["Cargonia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcargonia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in support_positions) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcommand") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else if(H.mind.assigned_role in command_positions) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcommand") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - continue - else - message_admins("[H.name] with [H.mind.assigned_role] could not find any nation to assign!") - continue - -/datum/game_mode/nations/proc/populate_vars() - for(var/obj/effect/landmark/nations/N in landmarks_list) - switch(N.name) - if("Atmosia") - for(var/obj/item/flag/nation/atmos/A in flag_list) - A.startloc = get_turf(N) - continue - if("Brigston") - for(var/obj/item/flag/nation/sec/B in flag_list) - B.startloc = get_turf(N) - continue - if("Cargonia") - for(var/obj/item/flag/nation/cargo/C in flag_list) - C.startloc = get_turf(N) - continue - if("People's Republic of Commandzakstan") - for(var/obj/item/flag/nation/command/D in flag_list) - D.startloc = get_turf(N) - continue - if("Medistan") - for(var/obj/item/flag/nation/med/M in flag_list) - M.startloc = get_turf(N) - continue - if("Scientopia") - for(var/obj/item/flag/nation/rnd/S in flag_list) - S.startloc = get_turf(N) - continue - -/datum/game_mode/nations/check_finished() - if(victory) - return 1 - return 0 - -/datum/game_mode/nations/declare_completion(var/datum/nations/N) - world << "[N.name] has captured all of the station. All glory to [N.name]" - victory = 1 - - - -/mob/proc/nations_status() - set category = "OOC" - set name = "Nation Status" - set desc = "Information on your nation and your allies." - - if (!( ticker )) return - if (ticker.mode.name != "nations") return - if(!mind) return - if(!mind.nation) return - - var/obj/item/flag/nation/F = locate(mind.nation.flagpath) - - var/dat = "Nation Status

Nation Status

" - - dat += "You are part of the nation of [mind.nation.name].
" - dat += "You -cannot- defect to another nation. Doing so or helping
" - dat += "another nation you are not a vassal of is bannable.
" - - dat += "
" - if(F.liege) - dat += "You are currently the vassal of [F.liege.name] and must obey
" - dat += "the commands of ANY of their members.
" - else - dat += "You are not currently vassalized by anyone! Protect your flag!
" - dat += "
Liege
" - - dat += "
" - if(F.vassals.len) - for(var/datum/nations/V in F.vassals) - dat += "[V.name] is your vassal and must obey the commands of ANY of your members." - else - dat += "You do not currently have any vassals! Capture flags to vassalize!
" - dat += "
Vassals
" - dat += "
" - dat += "The following are considered OUTLAWED by the Geneva Space Convention and will result" - dat += "in severe consequences if used in warfare:
" - dat += "Scientopia - Large Scale Bombs - Nuclear Warfare" - dat += "Atmosia - Using atmos as a weapon - Chemical Warfare" - dat += "Medistan - Releasing harmful viruses - Biological Warfare" - dat += "
Geneva Space Convention
" - - dat += "" - usr << browse(dat, "window=nationstatus;size=400x500") - -/mob/proc/respawn_self() - set category = "OOC" - set name = "Respawn Character" - set desc = "Respawn yourself (15 minute cooldown)." - - if (!( ticker )) - usr << "\blue The round hasn't started!" - return - if(stat!=2) - usr << "\blue You must be dead to respawn." - return - if (ticker.mode.name != "nations") - usr << "\blue Respawn is disabled." - return - if(!mind) - return - if(!mind.nation) - src << "It appears you're not part of a nation. Use Respawn as NPC instead." - return - if(!mind.assigned_role) - src << "It appears you're not part of a nation. Use Respawn as NPC instead." - return - if(!mind.assigned_role in get_all_jobs()) - src << "It appears you're not part of a nation. Use Respawn as NPC instead." - return - if(mind.special_role) - src << "It appears you beame an antag and are longer part of a nation. Use Respawn as NPC instead." - return - else - var/deathtime = world.time - src.timeofdeath - var/deathtimeminutes = round(deathtime / 600) - var/pluralcheck = "minute" - if(deathtimeminutes == 0) - pluralcheck = "" - else if(deathtimeminutes == 1) - pluralcheck = " [deathtimeminutes] minute and" - else if(deathtimeminutes > 1) - pluralcheck = " [deathtimeminutes] minutes and" - var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10,1) - usr << "You have been dead for[pluralcheck] [deathtimeseconds] seconds." - if (deathtime < 9000) - usr << "You must wait 15 minutes to respawn!" - return - else - - //Ok, it's not a xeno or a monkey. So, spawn a human. - var/mob/living/carbon/human/new_character = new(pick(latejoin))//The mob being spawned. - - var/datum/data/record/record_found //Referenced to later to either randomize or not randomize the character. - if(mind) //mind isn't currently in use by someone/something - /*Try and locate a record for the person being respawned through data_core. - This isn't an exact science but it does the trick more often than not.*/ - var/id = md5("[real_name][mind.assigned_role]") - for(var/datum/data/record/t in data_core.locked) - if(t.fields["id"]==id) - record_found = t//We shall now reference the record. - break - - if(record_found)//If they have a record we can determine a few things. - new_character.real_name = record_found.fields["name"] - new_character.gender = record_found.fields["sex"] - new_character.age = record_found.fields["age"] - new_character.b_type = record_found.fields["b_type"] - else - new_character.gender = pick(MALE,FEMALE) - var/datum/preferences/A = new() - A.copy_to(new_character) - - if(!new_character.real_name) - if(new_character.gender == MALE) - new_character.real_name = capitalize(pick(first_names_male)) + " " + capitalize(pick(last_names)) - else - new_character.real_name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names)) - new_character.name = new_character.real_name - - if(mind) - mind.transfer_to(new_character) //be careful when doing stuff like this! I've already checked the mind isn't in use - new_character.mind.special_verbs = list() - else - new_character.mind_initialize() - if(!new_character.mind.assigned_role) new_character.mind.assigned_role = "Civilian"//If they somehow got a null assigned role. - - //DNA - if(record_found)//Pull up their name from database records if they did have a mind. - new_character.dna = new()//Let's first give them a new DNA. - new_character.dna.unique_enzymes = record_found.fields["b_dna"]//Enzymes are based on real name but we'll use the record for conformity. - - // I HATE BYOND. HATE. HATE. - N3X - var/list/newSE= record_found.fields["enzymes"] - var/list/newUI = record_found.fields["identity"] - new_character.dna.SE = newSE.Copy() //This is the default of enzymes so I think it's safe to go with. - new_character.dna.UpdateSE() - new_character.UpdateAppearance(newUI.Copy())//Now we configure their appearance based on their unique identity, same as with a DNA machine or somesuch. - else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile. - new_character.dna.ready_dna(new_character) - - new_character.key = key - - job_master.EquipRank(new_character, new_character.mind.assigned_role, 1)//Or we simply equip them. - - if(!record_found)//If there are no records for them. If they have a record, this info is already in there. MODE people are not announced anyway. - data_core.manifest_inject(new_character) - - new_character << "You have been fully respawned. Get back in the fight!." - new_character.hud_updateflag |= 1 << NATIONS_HUD - return new_character - - - -/** - * 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 - - var/list/cargonians = list("Quartermaster","Cargo Technician","Shaft Miner") - if(H.mind) - if(H.mind.assigned_role in engineering_positions) - H.mind.nation = all_nations["Atmosia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudatmosia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in medical_positions) - H.mind.nation = all_nations["Medistan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudmedistan") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in science_positions) - H.mind.nation = all_nations["Scientopia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudscientopia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in security_positions) - H.mind.nation = all_nations["Brigston"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudbrigston") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in cargonians) - H.mind.nation = all_nations["Cargonia"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcargonia") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in support_positions) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcommand") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else if(H.mind.assigned_role in command_positions) - H.mind.nation = all_nations["People's Republic of Commandzakstan"] - H.hud_updateflag |= 1 << NATIONS_HUD - var/I = image('icons/mob/hud.dmi', loc = H.mind.current, icon_state = "hudcommand") - H.client.images += I - H.verbs += /mob/proc/respawn_self - H.verbs += /mob/proc/nations_status - H.verbs -= /mob/living/verb/ghost - H.equip_or_collect(new /obj/item/weapon/pinpointer/advpinpointer/flag(H), slot_r_hand) - H << "You are now part of the great sovereign nation of [H.mind.nation.name]!" - return 1 - else - message_admins("[key_name_admin(H)] with [H.mind.assigned_role] could not find any nation to assign!") - return 1 - message_admins("[key_name_admin(H)] latejoined with no mind.") - return 1 - -/proc/get_nations_mode() - if(!ticker || !istype(ticker.mode, /datum/game_mode/nations)) - return null - - return ticker.mode \ No newline at end of file diff --git a/code/game/jobs/job_controller.dm b/code/game/jobs/job_controller.dm index 2ff04e63f6a..0de351c4917 100644 --- a/code/game/jobs/job_controller.dm +++ b/code/game/jobs/job_controller.dm @@ -14,29 +14,16 @@ var/global/datum/controller/occupations/job_master proc/SetupOccupations(var/list/faction = list("Station")) - if(no_synthetic) - occupations = list() - var/list/all_jobs = subtypesof(/datum/job) -list(/datum/job/ai,/datum/job/cyborg) - if(!all_jobs.len) - world << "\red \b Error setting up jobs, no job datums found" - return 0 - for(var/J in all_jobs) - var/datum/job/job = new J() - if(!job) continue - if(!job.faction in faction) continue - occupations += job - else - occupations = list() - var/list/all_jobs = subtypesof(/datum/job) - if(!all_jobs.len) - world << "\red \b Error setting up jobs, no job datums found" - return 0 - for(var/J in all_jobs) - var/datum/job/job = new J() - if(!job) continue - if(!job.faction in faction) continue - occupations += job - + occupations = list() + var/list/all_jobs = subtypesof(/datum/job) + if(!all_jobs.len) + world << "\red \b Error setting up jobs, no job datums found" + return 0 + for(var/J in all_jobs) + var/datum/job/job = new J() + if(!job) continue + if(!job.faction in faction) continue + occupations += job return 1 diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 5cc9eefd1cb..8d6aa799fd8 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -102,19 +102,6 @@ ..() return QDEL_HINT_HARDDEL_NOW -/obj/effect/landmark/nations - name = "nations" - icon = 'icons/mob/screen1.dmi' - icon_state = "x" - anchored = 1.0 - -/obj/effect/landmark/nations/New() - ..() - tag = "nations*[name]" - invisibility = 101 - - return 1 - /obj/effect/landmark/start name = "start" icon = 'icons/mob/screen1.dmi' diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index 6ff7e24a85e..db492efaf29 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -156,36 +156,36 @@ desc = "A flag proudly proclaiming the superior heritage of Unathi." icon_state = "unathiflag" -//Nation Flags (Able to spawn outside Nations gamemode) +//Department Flags /obj/item/flag/cargo - name = "Cargonia flag" - desc = "The flag of the independent, sovereign nation of Cargonia." + name = "cargo flag" + desc = "The flag of the cargo department." icon_state = "cargoflag" /obj/item/flag/med - name = "Medistan flag" - desc = "The flag of the independent, sovereign nation of Medistan." + name = "medical flag" + desc = "The flag of the medical department." icon_state = "medflag" /obj/item/flag/sec - name = "Brigston flag" - desc = "The flag of the independent, sovereign nation of Brigston." + name = "security flag" + desc = "The flag of the security department." icon_state = "secflag" /obj/item/flag/rnd - name = "Scientopia flag" - desc = "The flag of the independent, sovereign nation of Scientopia." + name = "science flag" + desc = "The flag of the science department." icon_state = "rndflag" /obj/item/flag/atmos - name = "Atmosia flag" - desc = "The flag of the independent, sovereign nation of Atmosia." + name = "atmospherics flag" + desc = "The flag of the atmospherics department." icon_state = "atmosflag" /obj/item/flag/command - name = "Command flag" - desc = "The flag of the independent, sovereign nation of Command." + name = "command flag" + desc = "The flag of the command department" icon_state = "ntflag" //Antags diff --git a/code/game/objects/items/weapons/storage/bags.dm b/code/game/objects/items/weapons/storage/bags.dm index 034483583fd..bd4dd452887 100644 --- a/code/game/objects/items/weapons/storage/bags.dm +++ b/code/game/objects/items/weapons/storage/bags.dm @@ -37,7 +37,7 @@ max_w_class = 2 storage_slots = 30 can_hold = list() // any - cant_hold = list("/obj/item/weapon/disk/nuclear","/obj/item/flag/nation") + cant_hold = list("/obj/item/weapon/disk/nuclear") /obj/item/weapon/storage/bag/trash/suicide_act(mob/user) user.visible_message("[user] puts the [src.name] over their head and starts chomping at the insides! Disgusting!") @@ -88,7 +88,7 @@ storage_slots = 7 display_contents_with_number = 0 //or else this will lead to stupid behavior. can_hold = list() // any - cant_hold = list("/obj/item/weapon/disk/nuclear","/obj/item/flag/nation") + cant_hold = list("/obj/item/weapon/disk/nuclear") var/head = 0 /obj/item/weapon/storage/bag/plasticbag/mob_can_equip(M as mob, slot) diff --git a/code/game/objects/structures/morgue.dm b/code/game/objects/structures/morgue.dm index ee2b57d19d7..d23de20410c 100644 --- a/code/game/objects/structures/morgue.dm +++ b/code/game/objects/structures/morgue.dm @@ -318,9 +318,6 @@ return else - if(!isemptylist(search_contents_for(/obj/item/flag/nation))) - usr << "You get the feeling that you shouldn't cremate one of the items in the cremator." - return for (var/mob/M in viewers(src)) M.show_message("\red You hear a roar as the crematorium activates.", 1) @@ -417,7 +414,7 @@ usr << "\red Access denied." return -/hook/Login/proc/update_morgue(var/client/client, var/mob/L) +/hook/Login/proc/update_morgue(var/client/client, var/mob/L) //Update morgues on login/logout if (L.stat == DEAD) var/obj/structure/morgue/Morgue = null @@ -440,8 +437,8 @@ Morgue = B.loc if (Morgue) Morgue.update() - -/hook/Logout/proc/update_morgue(var/client/client, var/mob/L) + +/hook/Logout/proc/update_morgue(var/client/client, var/mob/L) //Update morgues on login/logout if (L.stat == DEAD) var/obj/structure/morgue/Morgue = null diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 7960132730e..08887ddb02e 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -190,8 +190,6 @@ var/list/mechtoys = list( return 1 if(istype(A,/obj/item/weapon/disk/nuclear)) return 1 - if(istype(A,/obj/item/flag/nation)) - return 1 if(istype(A,/obj/machinery/nuclearbomb)) return 1 if(istype(A,/obj/item/device/radio/beacon)) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 92691e78d69..064878a7696 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -477,22 +477,6 @@ dat += "Head not found!" dat += "" - if(ticker.mode.name == "nations") - dat += "
" - for(var/obj/item/flag/nation/N in world) - dat += "" - dat += "
Flags(s)
[N.name], " - var/atom/flag_loc = N.loc - while(!istype(flag_loc, /turf)) - if(istype(flag_loc, /mob)) - var/mob/M = flag_loc - dat += "carried by [M.real_name] " - if(istype(flag_loc, /obj)) - var/obj/O = flag_loc - dat += "in \a [O.name] " - flag_loc = flag_loc.loc - dat += "in [flag_loc.loc] at ([flag_loc.x], [flag_loc.y], [flag_loc.z])
" - if(istype(ticker.mode, /datum/game_mode/blob)) var/datum/game_mode/blob/mode = ticker.mode dat += "
" diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index c483f1ee750..ed5441c06f1 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -119,7 +119,7 @@ Works together with spawning an observer, noted above. if(antagHUD) var/list/target_list = list() for(var/mob/living/target in oview(src, 14)) - if(target.mind && (target.mind.special_role || issilicon(target) || target.mind.nation)) + if(target.mind && (target.mind.special_role || issilicon(target))) target_list += target if(target_list.len) assess_targets(target_list, src) @@ -146,7 +146,6 @@ 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] // ??? THE SNOWFLAKE IS KILLING ME for(var/mob/living/silicon/target in target_list) C.images += target.hud_list[SPECIALROLE_HUD] @@ -172,10 +171,6 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp set name = "Ghost" set desc = "Relinquish your life and enter the land of the dead." - if(ticker && ticker.mode.name == "nations") - usr << "\blue Ghosting is disabled." - return - var/mob/M = src if(stat == DEAD) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 465e4a8d6f1..1ed6dc27afb 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -36,7 +36,6 @@ hud_list[IMPTRACK_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[SPECIALROLE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[STATUS_HUD_OOC] = image('icons/mob/hud.dmi', src, "hudhealthy") - hud_list[NATIONS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") ..() diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 8967e1519d6..78b2e6b3d6e 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1234,9 +1234,6 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc if(see_override) //Override all see_invisible = see_override - if(ticker && ticker.mode.name == "nations") - process_nations() - if(healths) if (analgesic) healths.icon_state = "health_health_numb" @@ -1826,34 +1823,8 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc holder.icon_state = "hudshadowlingthrall" hud_list[SPECIALROLE_HUD] = holder - - if(hud_updateflag & 1 << NATIONS_HUD) - var/image/holder = hud_list[NATIONS_HUD] - holder.icon_state = "hudblank" - - if(mind && mind.nation) - switch(mind.nation.name) - if("Atmosia") - holder.icon_state = "hudatmosia" - if("Brigston") - holder.icon_state = "hudbrigston" - if("Cargonia") - holder.icon_state = "hudcargonia" - if("People's Republic of Commandzakstan") - holder.icon_state = "hudcommand" - if("Medistan") - holder.icon_state = "hudmedistan" - if("Scientopia") - holder.icon_state = "hudscientopia" - - hud_list[NATIONS_HUD] = holder hud_updateflag = 0 -/mob/living/carbon/human/proc/process_nations() - var/client/C = client - for(var/mob/living/carbon/human/H in view(src, 14)) - C.images += H.hud_list[NATIONS_HUD] - /mob/living/carbon/human/handle_silent() if(..()) speech_problem_flag = 1 diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 0160049cbc6..2f824b06c60 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -183,7 +183,6 @@ var/list/ai_verbs_default = list( hud_list[IMPCHEM_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[IMPTRACK_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[SPECIALROLE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") - hud_list[NATIONS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") ai_list += src ..() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 329f1b04a91..2e1d7c1c910 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -149,7 +149,6 @@ var/list/robot_verbs_default = list( hud_list[IMPCHEM_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[IMPTRACK_HUD] = image('icons/mob/hud.dmi', src, "hudblank") hud_list[SPECIALROLE_HUD] = image('icons/mob/hud.dmi', src, "hudblank") - hud_list[NATIONS_HUD] = image('icons/mob/hud.dmi', src, "hudblank") scanner.Grant(src) /mob/living/silicon/robot/proc/init(var/alien=0) diff --git a/config/example/config.txt b/config/example/config.txt index 076a0e80766..6f5485ba6e6 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -86,7 +86,6 @@ PROBABILITY RAGINMAGES 0 PROBABILITY BORER 0 PROBABILITY XENOS 2 PROBABILITY MUTINY 1 -PROBABILITY NATIONS 0 PROBABILITY METEOR 0 ## Hash out to disable random events during the round. diff --git a/paradise.dme b/paradise.dme index 34ed30b4905..0bbc685e31b 100644 --- a/paradise.dme +++ b/paradise.dme @@ -351,10 +351,6 @@ #include "code\game\gamemodes\mutiny\directives\tau_ceti_needs_women_directive.dm" #include "code\game\gamemodes\mutiny\directives\terminations_directive.dm" #include "code\game\gamemodes\mutiny\directives\vox_heist.dm" -#include "code\game\gamemodes\nations\flag_pinpointer.dm" -#include "code\game\gamemodes\nations\flagprocs.dm" -#include "code\game\gamemodes\nations\nationdatums.dm" -#include "code\game\gamemodes\nations\nations.dm" #include "code\game\gamemodes\nuclear\nuclear.dm" #include "code\game\gamemodes\nuclear\nuclearbomb.dm" #include "code\game\gamemodes\nuclear\pinpointer.dm" From 8890f2c2061ebb1fffdb0474e41483e1bf17edd9 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 11 Oct 2015 20:06:55 -0400 Subject: [PATCH 2/3] hud icon cleanup --- icons/mob/hud.dmi | Bin 11983 -> 5378 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/hud.dmi b/icons/mob/hud.dmi index 2a7d6de6cb6d303d35b1c1fe2a10847339905460..cc0fcbf3e09ed8c610bb90a23d8d6aae4d666937 100644 GIT binary patch literal 5378 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 literal 11983 zcmcI~c|4SDy!Ti_5sC=e@_H8i6FzY)#=RN0qKJR(YALl*i{o^vZHD#}H$$V9y}mzz|<(008j#UF+K~)>7)i&jz|~ z8wVDj<+w#2wm9_Za=L?&2ys2K%^zK_<4fJmwR)1^bQ7LA$mJ1!peW&Oz(f#N)_eMJ zc=QCh0l$)cJ7d-d>Ep0OTDh-aRUH`|p`PoQ(VxMvQoZA-X4Cu~fBGoWQYra;d8*im zSx)H^gAAT+_3{%O4tua!oJwgAVri5g)>?m{zZeVzjUYWu(N$-7eVj})jTddBDa46Z zh6oR9`CI!pU5BmtC#eE^%H3JnFXi-nhN8f7jl1&v^2-Us2?YY_7uKbO!{%jE1q9z! zRK=M%m_JM-Qc{JXgv%b*Dwz z?Wdy<>-963I>-6^>UsSzRKOAF`=V?751I}&$+(1?;DUNEA_G5fY;Z;fe1FLgQRWeN zU3a-wQ*i2N9n3J|!STM?BTi}IS3?V_F19s1qrnRaeS~;QL1<}0xe#9Xss5fz2(#+% zq_8u!wh-H`Jo%@D`1{(|(rT_N97n}TC1k6a6D8*p7*%fv9#K#1W_37z>TqQKQs1lQ zr~8YYIA^zjsQx}tmN39@`~v^vUSN_CH(t2^wd-|J{TVMaaZv5L?5MD4??YYNESuR6 zEAJN!zMs6+^~#Q0`f|KJ;%JRwsJS96X6XFG4ju>jE6q-EJ7*_6E{2svTU~S)>4+Ip zzgE8McrVoRDtYp?&}4Nlu-Ysxom%zQ5wRwFMS5#aR_--#+!ZfQCiVQ~;r*5`*{Hz4 z6#0d6kJqJq9?35v%EXe)IZf@~xCvQ)ED;C;R(o#fr$3g?$x5p}qM>IncAhTF`M1of z`|H=qGT&?y8{@Bix4vPcUHa7)`1Jdr@gok4?oUgT`6XF|km?r~&y2mT-{q`iZ9Adu zg70@Zg90YsKCt`Je67&KE!Mt8=#!~D!SP$=$5g#xRDp>2)o67-u)P0J>!py{laLz~ z618U_XSIGh*Cf;L>^05{?QtyF|1CEAGB@XEK9715Do0IqAj4|^Ecef9?LpN>_=@|{mR_FRtt>GS77S*+-# z_43d06Rux#efs-b2w0rvHVoSw>jbbB3Blezy&{xgljOpAJyuyLOkdO^X z&60%mXEF7_nnMv*j`I171co@MVo6Kq=TT`+KOpo1s<*Zn1(|$u2kW|IgSTB)I-vV& z5r{myEIqFrzSx06)Z%U1G1ZXC4^}tH{AH6Tj;(YY&`DQ8T-#f&~-Y?b(kWhxq_$DHDJ#OG3SZ?%jc1|0q>}Fb_4~PPUPUtaL>- zO$KmG0zTL&EB8tGMh);UEx_?zz)3(1;AO9DgjLd((3e^ac#Xambu<$I5C+IUHF`hd zCLjZl%VxtMfRkN(?2=h|C;pR51=H@VI_aa;axv59e=}dkD!6Vixhm7n6o=bW zKy{C=ST7H}(;X3{wjLHyJQ;zoU5kfrv`(Dfq7P4pH81IS^iQ_^PKB2wz9J!JEAHeo z----Z@6&^G8;GawQ`Y^uR<-K)8_>L}M;IiX;{ZQQJq(4fFF#$qvGZxq5&z_{=|`dt zfy|1uZQeZ_Lc?L)e#!9bbFYrD+M7x&Y;9jz<{31#6RnWIX|2U7D@U!uQJs6tz3{}T zu3ZNM{qn=V0cj2HrKX#lI*0rRPp4&y652;UqWhuBD0>3&v$ zIKYyG`7#y6gz8NNpeyxJxu>=2Q}w>w3>?!efHO@pV@9JtTU|a(&0F!Nd_27LH^v9! z*DN#XaO;-GJmY!=^zS1ChYg`vxly_fd*c>w^(G-X2t)w7z-^G6r##s+{uB7CRV%PuJiCB)UHs^Et z%d_mspYcNH(aLvsnAfK3FKm1%8EkoI4Vk4)I*9MHP@wVV5hVCC8kZ=0xpC`xt}1t1 z+r?O6l(y^Dmsv~j$gtT1WbilHa+kqWDwBmQ3lJJ*P3PjYsYKAi6keIAdw$Ci^+@)H z-h5OGkYT{s(GPzhwa;lNws$>$5zpAQq)~^mHmpb*cpc__#puFO2a>GA-IaRE;*!s; zCO=jlJsMpd&%X5s&Vs>sRLI&{Pr|e!9vT65VpJ7B4=&%ITh#D)Y~c%xEZVK4N>6WQ zhrcse<-YdCZs5`?$$^v`G-A}y8a8%39KZ0LxfwP|_QBtaH-b^6)TR_{XIOqrD||SL z?C2@Pp+y)Hf?uGh(u^@X)HeYHLe!LsC+$*bDkRYn8+rJ_YD`}i#24KOEVnB&KGKmO z(CRSXb)st|Rnw2z{rs51DH3AzXe^RZ`$B(`Xy{oKWoZQ-x;Ti;Q%*^nR@X%gM7P%a zd{rbb4GctQ7nx+?P>B_Z&_@jr9%fY}!M}t31%S8CDj}AD;Vion7_sKaD~s&wmB^(m ztPkA{Z4uvJvzbdtg5RuM(OZm~dogq}@D6pR6I;({e9KDHO!R-!CX_;Nb6xFf=jS{c z|99;6MHaZCu__YLlcAzvm!}!PEHaTkcJc<3!<~%z5}Tjhnhl>yB3v__$;q{)fS2x@ z%ubGD>MUdvTtI5eoHt3>t@oM5>t3HfqY6sy_v)N498cBEJ5XkTFT7@gAE@}VNLRdh zZuSrx2RJ-}n1>D>(&Cg8-xlI5YUBU=XEj;cx41{G-+sHHXk4hA^A<@*m-FWDv18$P zdQ@%Kmd17jj65_%I<*lCqdGdBlb&Y+dGdQen*y`dV%2Xs8hcdKcz3%zJgLp=q?O}? z$6~3r5(voW*dpvs#ba)x9Kp@zsJ&7H@mQ3yh##ogLZgQcvAgVSI;3+~{jaZN-`pG|FC_ zva<+HF=H6Ox)JQPT%&PO<@2cdyBx%c=nI=vr-h<1pq5^l3G>leuCZG-D1i`&9WsU9 z>e=kt^th^`h_QZau-%R0{ew5D_W03tR~Og?@!h(~j_sHmn}~{?7r_#x8BTt6eg2gC zbXAyIzYEJkHmFbMHjiWlJny4gGf>332JW)TSUVEioZ{b#RV6P!AYhaEKddr@>_DqD zke~@z%4v!CCNhBJ=hrNR(i3Y1A`S}xUf%pem;X)1jroHy|JN}%xn^S5f!@G^uI!lTXqLC9hhY1Qb{;I}kr{qHDhEwg0XSo1_iJ!ua-4 ztbEU8Lv9z6+67TG9qn;~(cDa!ZfKvp_Xm6SRSB;x1`JUq2x1mv%JW`)TUFM#b*ZJ9 zzl0t(f<#uO)m~G8kMCj_uc3Gw1Z8Cqi>L06(RoLA(8c}LRoCPOpmdoTjAz>`m)Z%U zQvdP;=VY)giD2i2Nzgx{Q;JMJ4Ev#p(1Jn12y=7uB)4GZmv~$Xm)~CKM!Z%1fwJV0 z&*Myu-B%6S#IlqFF+G}+{vyrq&9U&N4~fw=J~eJZ6T~gm3mgY((JV}Lj+*~2 z@~_eRaf25f8IJttPM*YI{Ji|pzub*Ld}@4!jXXt-Oe>yPgqV9m(*RJF7|`U*B%ZOD zUlQ62r_~zzdpC0ATd0nhLtk!ZwkS0uK~xPZ8^LZ^V(7uIR`mP|FTOiZEGozZ+gaIk z>uhaVVEJy8Ph zjy<^^FQVUB&U-yTV(a!njwV$m_%}pjqgHB)>EO_keVZ+5eB!UnakhaZH6hG|`a0CL zfu|;1IM0~bkbz)Z~MCAvK*dM>!S^?y`D8YFf zL-v$_hsUB-0_(f;iYW8x7_;9#JhR_4>FdDTnlUpRi%>uAJpKVdNLPn5CDlXX?1Q#r z4PN={#j>w0uJ}=#cYmvJtc-Iz`35u7NgMJbdgecxSdVDT-w#6#nM3;H=G25h*(#YN zW@1`RQH$zMZTA=DxE`79x1}*#yPxYq2~RNg2M_9O1|JZNB}(ll=nKt7>+8oY!*`{F z4yBY}gSKarmGv^woC#T0Qetjxa zhhZy?$-&4dSHGd5dPI&W>^7O%6v@cqi#W>XRa`-hO<=3R<;6 zX^GXIjrlQApYuDQ;}R0m8vbP=Om!KVm9k0oWP1mXuKC3*Uso8uaaDwk97ccO<6kw) zzaIZ5w9Ba=fMt$$U**Q3+aD~eC23~X^nM-A0b-@@fOAtm%j5is$MoKi$xa%+*7tTk zoVK@-yo`k{$)SB5EbLL$Kd{q=fwrf2zny+#jt`Z#DY*s^KEzQU;qzkzRXko`yW zt3^a11-4o-o&C{-g^V-B{h6|V6uh{&IC`V?;2NWtLE8FH^Yb0(jMdWseO z92-7~(BxvXCJH*=`KtQuqGc2_VkLN^Zf6ZYvdIibS#{Omp_$u<;uq4{C@G1>sn+#I zr1~)3@cgk=?0YX6KpK)Nqt&+d9OeiY4Y)x_HDgpoFjl!}kyEcu!7e`sY?;vAg!l1} zW`Aw}_A2(ou!vGw#~LqhELbDyOx%k>&`FZRH_8BDYL9+U;9u4i`E2cJ49@LeamI%_ zA@6>bz&-J-?8C$1C!j>;hz&@3MPPmX+Phf9un`p`5OGLu05m7$*Ac7bKmI(4mF)r_ zzgrV9t#@}O6!t-lm&~v*YB%BFD1tSh%6oeS^8LCxQoAH#8g@lR1<{A(7BvCV+q7f? zKJ}X>AXUY=p1VHyIsr=;S-2pFhIsJIg2T2O#@<==0a^yT1miFF0%|hvS*m?8t`Oo? z=X$Px=FFMRWxW4Do}s?aZjm|v)kwmLyUc#fAy#1I1G#^--m3WajVWSB=3+s|AB zL+54VkKe4=8S=|{%I|EKv-R~Uztj=g(s8a3xYQqCZV4b{o}o zdoRp=sjqBs$aJr~d|s2PeKYoU1=5bw&m43_Q=1_mm$@tN&LhlQgc^7Pd!_`V?mlu7 z2{IwvX+^lo3m0R?@oTpdQ|cM`_scnwFw<&okviZhWA-v@8Kg#5d`1zq9*yyG0_3*k zU*3nwv6o&9yZ(*7|F1OupIGYu<5D^HFfr`|66gtH>aUd{2mqnov4gi1^|lh^hu{ zc1`n=qkO`Ec4bCM&&W}8n;GFtui&c+ z;j|wzyd|hbP{dAXmUNk!w?8plXQX6+Z#sIEZnJM*(&h67{PBf{BKFDs(v!^_AGx$0C~GwJf`Q}0fKDjlO$L;K9OZz#7PUL7 z&5(EJ)N! zdh=NIn^=AW7JBjR5OjPloD64T8lSz3k!p7vTtV6~UfSFFhu7I3Ax20s@C>x+{Z`Um%83INE25cveNVhP8kEDL3 z$C>=j?63DgtQ=!I(1YVQ(?1YZ82hFy=EBL5&qC~pC;uR8X?I0agP$;yjTq}B7#}Xp zh#0r$@hjwJF9vgk3tVI8rF`BKS81m7Np0I_A0^!+9_%G4D0Lfg$kBzL-y%F2!ijU* zuI7BA3|xn?XRKVoAG-MeVtM}z%FSc+>oeQ-y8meMRaRA^4)teF1sl}-kl=kcf)5w0 zi3+Q`PnLA179Pd&`8C&N){xq=k^6en<&HpFR`Z0OZ3sz89ksI~+| zjyB}TD3pMKUD#yZ(~LiqM-UOo3mhQEHvA1@sVjZ&V40-KK!^k^SnPu1&EM~KrV>$6 zI=+uqqyjqno2JWzR;w>RXkZ(dj% zuL!2$P+;P}L{x}R%Mn8~8{gqwu5dK#by3nZ!jJjm$B%$0C>-7{dR}=Na`$f5^v`QX zeF*$lNC3LDuyZ;?JOhm%KU1;6lGuW-OchjEN>}{}xKtoZJl8x0V=*w=q(!D`-C}Q+ zCo*K%Y*QoKo`hgZCd7AP&(&_{DCOGV z5JnPPxJZPA>&nmeb4nf@tlgk}bcAn_5uw21+FKe(%{{=4FCjVZ5AaAT6EU>P z3t)_kUg+vy_y%aEcVG4kue(9il@bfK6hU7QJqgg`|H&8@o}jhoB=61ps6>AS`r&{P zkYFXx4#}jywI&-`{T)N#?EN|`4>c+IENWw{rebZSnlB{@H`0^g{XZ1Hm zmJZa-nn|-*6H=OS(=MlT%l@Pfoyn&V5QJv( zxU<(%e{NXn=i9@qQDDt`k1R|0@~NhZH3Q20Cm*(H=s5NxOATH!HNB5zC`JTL$3eTT zK&!+}HxNmp>Csk+h%8Ye#)k@@yU6~_+(%<@mvjv@sbTOC1%&|GCcnNOi)Kw$uh_ZE&Jl85IagDd zo;Nw>Gn_XaMBG$dDa1##mimtpM(OMf;`f_-%obkN@GG!Ic8&~hi&)J{i!;Wdy^I-`NXWi zbi$Q?An?&g3QC!KRZm8#NNDb@He}%o+Q;d3zl4X{y1q+T9pPM}PTfmee#9vjmU{+w zfFG`nuy7R$rqory006Vu0x)CvXk&p@YWimoMK{7Kth@YM>MNKtNR|a~9D4YcypU0` z(Hcc*rbR?V)U-@oOzhzVq<#OGxahpblU!w!R<8jczC&S}>k^gS zA{>EjVrIAZHt^1l#&iidPIkk!to!}Jiyw0YAZbm?lZc2gy&&_Db)R*41kK z-C? zrN}+kmrrDV4;X`%UozaY*y%Sc%FR1Bd~eDi931zn`i0NaO~k+W9P3w-cvGSPfwgl9 zBKilJC986-$|E>F5q--(l%PO}Ce>(|NV>zF&PCgz_sOjwPjl<2_n+&I7lImkesAu@ ziDMn7eXtF8?J3Kz_+Xu`A+=yBJ$_+bC%qcmoN3|!BrK;;?Px@JWX$vI8 ztor;u^d-6CD^BOjc(=K4CQ_}ZTyYbQ`~-YNovTD3aujQ-%d_xq7-fs-v z-@8GI2~%bU9=RTUN@KCK3mV~Jo{Z_WG@Ac;kHzOoAYm7abjG8>>`3XG{6ki-58#a5 zvmD4*eyq1Q&!BUmg^@^-l#aESUJ((<#H9UtF^GM*25$lb`+JR_Ax5U*`#)PZ!^XG4 z8TixVSTUjdJTDbA0c->{8m&w@|x!fL;MF|yWg%)DC`VW70zs>R~U(iIEXZ)?ANN)a6GD+iHUOGKXDljLmW;&$EX@QFOCwZE-ajj@iZI4 zeUj4hxQF(dsq9HO?`L6u?C}?5#}SaL%$Mi=DSfK z-ydv~F(I-sV;Glsj9JrstG|g}If%`%NuH6~Kzi*;J|AZ7Te!zOXD5fGSXlAK@gi1* zEaO)UhAWj3AV1H{btaa*Rev3(>+ z#GS_o0Qf72=j9!kB@zH=+gFFn0RVHU_7e}zSVKDIDp7xa+8w-lr7&9u@BJ}gNqKCD z_&4{(e)qpysQ=V;{l^z#-fsVgM$3Nu`CA|F%wikUtxK*MVwI?rhBZCl!>+Va;y%XPC?9Z%|8DTw{h&7bMwZG zrgk%)osRanG+JL2bs;B>{lwC{ySv*w4-O8({VHE2(cTG6umS1Z}s_~cSY3uj+i7QCVH_Gn_F&f0oFeSPewc1_pd}P zuGJZeJbU(QtBBT>C#`lL$gFg@EFXwWLM_x??+>>R*hU#^i!PivaVz}<=VS>oaE{B! z3R4+)_T))qu!=Hmbo7!y(kqx|*}0sSFKa^-0Ro5<7Z#t#|0tD5gM~V!wu8e(gI|bn z?lcf_7a8lqXSGgo&O|+T-nZ;K!U3_V&}$cvlmC+=ieGS??dO@j{kI9N7a%F9g;?kY z5fr5`#9p9<&LK%?`aa>>l($^s=)Uv_h4*hS|kCDR;(mAFBQ8qK(lTa+@`M5{IH-?}}&R;OZT{IEF>uF8Guti14`H_vPi z$0ga;Y7^n_5FX(ZevLAw#Oa*NjJPv2`9PQbHGj2Eob{?h5phA=!Yd%#xN=V zJ8z8rLAi^;&oB#+!zsHW(b{SUz`1{<0Tbwhr8)fr!uxE2!GNP5>pHtel zy~}83dL}cdBe!fS_OfW}ly|Ki)0jv7VU>@)^3Md+Sq&1iOWSOdhfik4t{S@eNIbws z4b-4vTKfhBdX9=(62r4p_Ub4#VVt&hD>Y@0fp2`7vU4>oX>U0OBONa-=29RM3m-L+ z%KX#u%m<33>@a>5&#-Q8BEosLsAIe`%a7ulbWYX*FBv!yK-HC???Jsfy&&#HC)s@U zm*V%E{W_^5_iHC~*fGeZmcvSSW%F$h#UTEY`N3!4$JP5lhJ& zfa4MXC$FM6m#^?z-I--)KY*9Z5=NsYi9=ifV^Q{-jo9^Xf#v^0P@Y7>(w zsc*)J7FuNXXg=C``t)g?4En*|Qt@o#2aV9S#Z~6V;*Ib8&#JDqX|Xn^KT(`rsL$5l z;ajPWo<}(tJH$yW_`4v6Cv1M9OLR%=URK~JmFZtzQ=_rv2!~^&_pBU|n5bM`iYZ$( zC3|LgHDUed7}q~SyAkFV7R6RM+G7m1^)ms1N2p^Iu(V}}o9DyBr7eY56F&XjM(Edu zHEcYIMG!>cq*M{V`iWDmP~?r*iZ2E!gvYiwk?eg2*RNk6qt%PN^ZRPD+4r3Mtz8qW zHO*!yG|kJ)YZJas4h3W|45`$lLv5o@le{gJ-Sp6?ZAOQ2*ihrWi@Gv8G5+<3$0YQjMfVssuXQhn=UGrg?_B_h9hlG){q7!5@S7(}U=UJeSw@2zNnJy( zqts+>mWHM1hf{U%w~rUsgnlg{5pEwWvyLNRtP65$ZoOIO^Ia~oezKc}J!(-DMH8(0 z7fU&p!fcMk1o(T+7}hwwh%fGPB})l*P@>)sDAbrMC4V!?^f+FEQb0(PX{JofMEEjC zzD?7ba$NI1)AO`4JJ3LW?XthnV-)uxdQ5@zO|XpY_->bh1H<9)S+aN?CftBlP_{x5 ze~RfMjrd()?If-Y=p124%D?ntwtEA}xuySf{N+*z1*cCJX|SAPo@b|SfH?#FRfgt zjRDqSryE9B<=M0OKT-<&q#V0q*!5qer$3j(oZ^eQbKVOVYLIJ-i1>xc6QGr`=T|t*OB7lnf50)%8b!8^zl5X_- z?k*4QF&Q+kFMl7h&oDg(xR=GMXqa&#`Y#S3)!5TQvexEfO7!9d}+9k%UhQiWl0~8#!GF&|VPB(b{ zwY8qvI0~#L?i%unvGq+z$-`aZK)@*Ll5g5n7#>32tIGnqYCAkNLi?lMRJ>LqZG4aM zF%^8B+7bHZY6&a|$=)Ta_Z{pz$|U5;fK37(4Xd|3Uaod9hI8L&^A9) zHt$Zu}I1U+QP{0%B(7fdQ8Gme+QLUVN0zlkjdJv{q6CJnh4)3{mW(BYs+B7B2a32 zX+8_SM~Z2`(f%{O>mv&6uG2$2w>RWE1^4f8I%wRHjwtR>C`fG~AXqR9%jMzQe{JobmIk;xo0V6T5Ih~I-wDV1=gDH;Rso}+%Uik<&S|L4RG0_hD<|9+xmXp12 z=}#!H`z7U77veVMe%a5%lZw8h`9% z1nYpy$9%#oYhoO$)2g!5QD8z&^&PR7X^HxvweU`U?-r+t9QvbEJuL nMjv5g{C`KR{LweUJS^Fy{3ln9K9>HoL(}ZKwQ=QD_rL!atFA|` From 6db6dcd3f1c8376696c6e6bdb496e832a5f7bf83 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Tue, 13 Oct 2015 19:14:25 -0400 Subject: [PATCH 3/3] flag --- code/game/objects/items/flag.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/game/objects/items/flag.dm b/code/game/objects/items/flag.dm index db492efaf29..32171b19fbe 100644 --- a/code/game/objects/items/flag.dm +++ b/code/game/objects/items/flag.dm @@ -159,33 +159,33 @@ //Department Flags /obj/item/flag/cargo - name = "cargo flag" - desc = "The flag of the cargo department." + name = "Cargonia flag" + desc = "The flag of the independent, sovereign nation of Cargonia." icon_state = "cargoflag" /obj/item/flag/med - name = "medical flag" - desc = "The flag of the medical department." + name = "Medistan flag" + desc = "The flag of the independent, sovereign nation of Medistan." icon_state = "medflag" /obj/item/flag/sec - name = "security flag" - desc = "The flag of the security department." + name = "Brigston flag" + desc = "The flag of the independent, sovereign nation of Brigston." icon_state = "secflag" /obj/item/flag/rnd - name = "science flag" - desc = "The flag of the science department." + name = "Scientopia flag" + desc = "The flag of the independent, sovereign nation of Scientopia." icon_state = "rndflag" /obj/item/flag/atmos - name = "atmospherics flag" - desc = "The flag of the atmospherics department." + name = "Atmosia flag" + desc = "The flag of the independent, sovereign nation of Atmosia." icon_state = "atmosflag" /obj/item/flag/command - name = "command flag" - desc = "The flag of the command department" + name = "Command flag" + desc = "The flag of the independent, sovereign nation of Command." icon_state = "ntflag" //Antags
Blob