From a06c997629be5f879ae9ddbf3dd4eb637fa97603 Mon Sep 17 00:00:00 2001 From: Markolie Date: Mon, 23 Jan 2017 22:02:29 +0100 Subject: [PATCH 1/9] Add Station Goals Still to-do: * Remove old BSA computer. * Add NanoUI interfaces for all goals. * Test it. --- code/__DEFINES/is_helpers.dm | 2 + code/__DEFINES/misc.dm | 4 +- code/_globalvars/lists/flavor_misc.dm | 18 +- code/_globalvars/lists/objects.dm | 4 +- code/datums/supplypacks.dm | 59 ++- code/defines/procs/orphaned.dm | 9 + code/game/gamemodes/blob/blob_report.dm | 11 +- code/game/gamemodes/game_mode.dm | 36 +- code/game/gamemodes/gameticker.dm | 4 +- code/game/gamemodes/meteor/meteors.dm | 2 + .../miniantags/bot_swarm/swarmer_event.dm | 16 +- code/modules/admin/admin_verbs.dm | 3 +- code/modules/admin/topic.dm | 21 ++ code/modules/admin/verbs/randomverbs.dm | 43 +-- .../mob/living/carbon/human/human_defense.dm | 5 + .../living/carbon/human/species/species.dm | 1 + code/modules/shuttle/supply.dm | 4 +- code/modules/station_goals/bsa.dm | 344 ++++++++++++++++++ code/modules/station_goals/dna_vault.dm | 276 ++++++++++++++ code/modules/station_goals/shield.dm | 186 ++++++++++ code/modules/station_goals/station_goal.dm | 49 +++ icons/effects/beam.dmi | Bin 6547 -> 6780 bytes icons/obj/lavaland/cannon.dmi | Bin 0 -> 34466 bytes icons/obj/machines/dna_vault.dmi | Bin 0 -> 33625 bytes icons/obj/machines/satellite.dmi | Bin 0 -> 650 bytes paradise.dme | 5 + 26 files changed, 1050 insertions(+), 52 deletions(-) create mode 100644 code/defines/procs/orphaned.dm create mode 100644 code/modules/station_goals/bsa.dm create mode 100644 code/modules/station_goals/dna_vault.dm create mode 100644 code/modules/station_goals/shield.dm create mode 100644 code/modules/station_goals/station_goal.dm create mode 100644 icons/obj/lavaland/cannon.dmi create mode 100644 icons/obj/machines/dna_vault.dmi create mode 100644 icons/obj/machines/satellite.dmi diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index 3448fa11626..78ba0b12ce3 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -4,3 +4,5 @@ #define isradio(A) istype(A, /obj/item/device/radio) #define ispill(A) istype(A, /obj/item/weapon/reagent_containers/food/pill) + +#define isspaceturf(A) (istype(A, /turf/space)) \ No newline at end of file diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 5e9815b7758..699df755703 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -285,7 +285,6 @@ #define SOUND_MINIMUM_PRESSURE 10 #define FALLOFF_SOUNDS 0.5 - // Bluespace shelter deploy checks #define SHELTER_DEPLOY_ALLOWED "allowed" #define SHELTER_DEPLOY_BAD_TURFS "bad turfs" @@ -299,3 +298,6 @@ // The cooldown on OOC messages such as OOC, LOOC, praying and adminhelps #define OOC_COOLDOWN 5 + +// The number of station goals generated each round. +#define STATION_GOAL_BUDGET 1 \ No newline at end of file diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 713289c737c..c139b969df1 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -46,4 +46,20 @@ var/list/TAGGERLOCATIONS = list("Disposals", "Robotics", "HoP Office", "Library", "Chapel", "Captain's Office", "Bar", "Kitchen", "Hydroponics", "Janitor Closet","Genetics","Brig Physician") -var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") \ No newline at end of file +var/list/hit_appends = list("-OOF", "-ACK", "-UGH", "-HRNK", "-HURGH", "-GLORF") + +var/global/list/greek_letters = list("Alpha", "Beta", "Gamma", "Delta", + "Epsilon", "Zeta", "Eta", "Theta", "Iota", "Kappa", "Lambda", "Mu", + "Nu", "Xi", "Omicron", "Pi", "Rho", "Sigma", "Tau", "Upsilon", "Phi", + "Chi", "Psi", "Omega") + +var/global/list/phonetic_alphabet = list("Alpha", "Bravo", "Charlie", + "Delta", "Echo", "Foxtrot", "Golf", "Hotel", "India", "Juliet", + "Kilo", "Lima", "Mike", "November", "Oscar", "Papa", "Quebec", + "Romeo", "Sierra", "Tango", "Uniform", "Victor", "Whiskey", "X-ray", + "Yankee", "Zulu") + +var/global/list/numbers_as_words = list("One", "Two", "Three", "Four", + "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", + "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", + "Eighteen", "Nineteen") \ No newline at end of file diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 5a929ebeb30..9d07e177661 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -34,4 +34,6 @@ var/global/list/tracked_implants = list() //list of all current implants that var/global/list/pinpointer_list = list() //list of all pinpointers. Used to change stuff they are pointing to all at once. var/global/list/abductor_equipment = list() //list of all abductor equipment var/global/list/global_intercoms = list() //list of all intercomms, across all z-levels -var/global/list/global_radios = list() //list of all radios, across all z-levels \ No newline at end of file +var/global/list/global_radios = list() //list of all radios, across all z-levels + +var/global/list/meteor_list = list() // List of all meteors \ No newline at end of file diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 7a8f05e08fc..2e9152c52f2 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -53,6 +53,8 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine var/contraband = 0 var/group = supply_misc var/list/announce_beacons = list() // Particular beacons that we'll notify the relevant department when we reach + var/special = FALSE //Event/Station Goals/Admin enabled packs + var/special_enabled = FALSE /datum/supply_packs/New() @@ -1512,7 +1514,62 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/weapon/beach_ball) cost = 20 containername = "polo supply crate" + +///////////// Station Goals + +/datum/supply_packs/misc/bsa + name = "Bluespace Artillery Parts" + cost = 150 + special = TRUE + contains = list(/obj/item/weapon/circuitboard/machine/bsa/front, + /obj/item/weapon/circuitboard/machine/bsa/middle, + /obj/item/weapon/circuitboard/machine/bsa/back, + /obj/item/weapon/circuitboard/computer/bsa_control + ) + containername = "bluespace artillery parts crate" +/datum/supply_packs/misc/dna_vault + name = "DNA Vault Parts" + cost = 120 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/dna_vault + ) + containername = "dna vault parts crate" + +/datum/supply_packs/misc/dna_probes + name = "DNA Vault Samplers" + cost = 30 + special = TRUE + contains = list(/obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe, + /obj/item/device/dna_probe + ) + containername = "dna samplers crate" + + +/datum/supply_packs/misc/shield_sat + name = "Shield Generator Satellite" + cost = 30 + special = TRUE + contains = list( + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield, + /obj/machinery/satellite/meteor_shield + ) + containername = "shield sat crate" + + +/datum/supply_packs/misc/shield_sat_control + name = "Shield System Control Board" + cost = 50 + special = TRUE + contains = list( + /obj/item/weapon/circuitboard/machine/computer/sat_control + ) + containername = "shield control board crate" ////////////////////////////////////////////////////////////////////////////// //////////////////////////// Vending ///////////////////////////////////////// @@ -1585,4 +1642,4 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/weapon/vending_refill/cigarette, /obj/item/weapon/vending_refill/cigarette) cost = 15 - containername = "cigarette supply crate" + containername = "cigarette supply crate" \ No newline at end of file diff --git a/code/defines/procs/orphaned.dm b/code/defines/procs/orphaned.dm new file mode 100644 index 00000000000..4a7055b24e5 --- /dev/null +++ b/code/defines/procs/orphaned.dm @@ -0,0 +1,9 @@ +/proc/print_command_report(text = "", title = "Central Command Update") + for(var/obj/machinery/computer/communications/C in machines) + if(!(C.stat & (BROKEN|NOPOWER)) && C.z == STATION_LEVEL) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc) + P.name = "paper- '[title]'" + P.info = text + C.messagetitle.Add("[title]") + C.messagetext.Add(text) + P.update_icon() \ No newline at end of file diff --git a/code/game/gamemodes/blob/blob_report.dm b/code/game/gamemodes/blob/blob_report.dm index 9d24e4992df..25429267213 100644 --- a/code/game/gamemodes/blob/blob_report.dm +++ b/code/game/gamemodes/blob/blob_report.dm @@ -8,6 +8,7 @@ ..() return if(1) + interceptname = "Level 5-6 Biohazard Response Procedures" intercepttext += "Nanotrasen Update: Biohazard Alert.
" intercepttext += "Reports indicate the probable transfer of a biohazardous agent onto [station_name()] during the last crew deployment cycle.
" intercepttext += "Preliminary analysis of the organism classifies it as a level 5 biohazard. Its origin is unknown.
" @@ -26,6 +27,7 @@ if(is_station_level(bomb.z)) bomb.r_code = nukecode + interceptname = "Classified [command_name()] Update" intercepttext += "Nanotrasen Update: Biohazard Alert.
" intercepttext += "Directive 7-12 has been issued for [station_name()].
" intercepttext += "The biohazard has grown out of control and will soon reach critical mass.
" @@ -41,14 +43,7 @@ aiPlayer.set_zeroth_law(law) to_chat(aiPlayer, "Laws Updated: [law]") - for(var/obj/machinery/computer/communications/comm in world) - comm.messagetitle.Add(interceptname) - comm.messagetext.Add(intercepttext) - if(!(comm.stat & (BROKEN | NOPOWER)) && comm.prints_intercept) - var/obj/item/weapon/paper/intercept = new /obj/item/weapon/paper( comm.loc ) - playsound(comm.loc, "sound/goonstation/machines/printer_dotmatrix.ogg", 50, 1) - intercept.name = "Classified Central Command Update" - intercept.info = intercepttext + print_command_report(intercepttext, interceptname) event_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') return diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index b2344639c1d..5d4d7d7b93f 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -37,6 +37,8 @@ var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/list/player_draft_log = list() var/list/datum/mind/xenos = list() + + var/list/datum/station_goal/station_goals = list() // A list of all station goals for this game mode /datum/game_mode/proc/announce() //to be calles when round starts to_chat(world, "Notice: [src] did not define announce()") @@ -78,6 +80,7 @@ // if(revdata) // feedback_set_details("revision","[revdata.revision]") feedback_set_details("server_ip","[world.internet_address]:[world.port]") + generate_station_goals() start_state = new /datum/station_state() start_state.count() return 1 @@ -222,7 +225,7 @@ /datum/game_mode/proc/check_win() //universal trigger to be called at mob death, nuke explosion, etc. To be called from everywhere. return 0 - + /datum/game_mode/proc/get_players_for_role(var/role, override_jobbans=0) var/list/players = list() var/list/candidates = list() @@ -475,3 +478,34 @@ proc/get_nt_opposed() text += "
Objective #[count]: [objective.explanation_text] Fail." count++ return text + +/datum/game_mode/proc/generate_station_goals() + var/list/possible = list() + for(var/T in subtypesof(/datum/station_goal)) + var/datum/station_goal/G = T + if(config_tag in initial(G.gamemode_blacklist)) + continue + possible += T + var/goal_weights = 0 + while(possible.len && goal_weights < STATION_GOAL_BUDGET) + var/datum/station_goal/picked = pick_n_take(possible) + goal_weights += initial(picked.weight) + station_goals += new picked + + if(station_goals.len) + send_station_goals_message() + +/datum/game_mode/proc/send_station_goals_message() + var/message_text = "[command_name()] Orders
" + message_text += "Special Orders for [station_name()]:" + + for(var/datum/station_goal/G in station_goals) + G.on_report() + message_text += G.get_report() + + print_command_report(message_text, "[command_name()] Orders") + +/datum/game_mode/proc/declare_station_goal_completion() + for(var/V in station_goals) + var/datum/station_goal/G = V + G.print_result() \ No newline at end of file diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index 5a3d0599c8c..8067aabe719 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -416,7 +416,6 @@ var/round_start_time = 0 /datum/controller/gameticker/proc/declare_completion() - nologevent = 1 //end of round murder and shenanigans are legal; there's no need to jam up attack logs past this point. //Round statistics report var/datum/station_state/end_state = new /datum/station_state() @@ -471,6 +470,9 @@ var/round_start_time = 0 scoreboard() karmareminder() + // Declare the completion of the station goals + mode.declare_station_goal_completion() + //Ask the event manager to print round end information event_manager.RoundEnd() diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 890cc4e151c..e634a47c590 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -118,11 +118,13 @@ return . /obj/effect/meteor/Destroy() + meteor_list -= src walk(src,0) //this cancels the walk_towards() proc return ..() /obj/effect/meteor/New() ..() + meteor_list += src SpinAnimation() /obj/effect/meteor/Bump(atom/A) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm index d93bc601f89..7a16ef17857 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer_event.dm @@ -1,26 +1,14 @@ /datum/event/spawn_swarmer - //name = "Sawrmer Spawn" - //one_shot = 1 startWhen = 3 //30 minutes announceWhen = 10 - /datum/event/spawn_swarmer/announce() if(prob(25)) //25% chance to announce it to the crew var/swarmer_report = "[command_name()] High-Priority Update" swarmer_report += "

Our long-range sensors have detected an odd signal emanating from your station's gateway. We recommend immediate investigation of your gateway, as something may have come \ through." - for(var/obj/machinery/computer/communications/C in machines) - if(! (C.stat & (BROKEN|NOPOWER) ) ) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc ) - P.name = "'Classified [command_name()] Update'" - P.info = swarmer_report - P.update_icon() - C.messagetitle.Add("Classified [command_name()] Update") - C.messagetext.Add(P.info) - command_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') - - + print_command_report(swarmer_report, "Classified [command_name()] Update") + event_announcement.Announce("A report has been downloaded and printed out at all communications consoles.", "Incoming Classified Message", 'sound/AI/commandreport.ogg') /datum/event/spawn_swarmer/start() if(find_swarmer()) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 8678e3b6641..2eb6ed7ed97 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -110,7 +110,8 @@ var/list/admin_verbs_event = list( /client/proc/response_team, // Response Teams admin verb /client/proc/cmd_admin_create_centcom_report, /client/proc/fax_panel, - /client/proc/event_manager_panel + /client/proc/event_manager_panel, + /client/proc/modify_goals ) var/list/admin_verbs_spawn = list( diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index bb8014037d0..e18384a9fff 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -3017,6 +3017,27 @@ error_viewer.showTo(usr, locate(href_list["viewruntime_backto"]), href_list["viewruntime_linear"]) else error_viewer.showTo(usr, null, href_list["viewruntime_linear"]) + + else if(href_list["add_station_goal"]) + if(!check_rights(R_EVENT)) + return + var/list/type_choices = typesof(/datum/station_goal) + var/picked = input("Choose goal type") in type_choices|null + if(!picked) + return + var/datum/station_goal/G = new picked() + if(picked == /datum/station_goal) + var/newname = input("Enter goal name:") as text|null + if(!newname) + return + G.name = newname + var/description = input("Enter centcom message contents:") as message|null + if(!description) + return + G.report_message = description + message_admins("[key_name_admin(usr)] created \"[G.name]\" station goal.") + ticker.mode.station_goals += G + modify_goals() /proc/admin_jump_link(var/atom/target) if(!target) return diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 79ee34fb635..263758ee605 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -561,36 +561,22 @@ Traitors and the like can also be revived with the previous role mostly intact. if("Yes") communications_announcement.Announce(input, customname, , , , from); if("No") - to_chat(world, "\red [from] available at all communications consoles.") - - for(var/obj/machinery/computer/communications/C in machines) - if(! (C.stat & (BROKEN|NOPOWER) ) ) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc ) - P.name = "[from]" - P.info = input - P.update_icon() - C.messagetitle.Add("[from]") - C.messagetext.Add(P.info) + to_chat(world, "[from] available at all communications consoles.") + print_command_report(input, from) if(type == "Centcom Report") if(!customname) customname = "Nanotrasen Update" - switch(alert("Should this be announced to the general population?",,"Yes","No")) + var/announce = alert("Should this be announced to the general population?",,"Yes","No") + switch(announce) if("Yes") command_announcement.Announce(input, customname); if("No") - to_chat(world, "\red New Nanotrasen Update available at all communication consoles.") + to_chat(world, "New Nanotrasen Update available at all communication consoles.") - for(var/obj/machinery/computer/communications/C in machines) - if(! (C.stat & (BROKEN|NOPOWER) ) ) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper( C.loc ) - P.name = "'[command_name()] Update.'" - P.info = input - P.update_icon() - C.messagetitle.Add("[command_name()] Update") - C.messagetext.Add(P.info) + print_command_report(input, "[announce == "No" ? "Classified " : ""][command_name()] Update") // world << sound('sound/AI/commandreport.ogg') log_admin("[key_name(src)] has created a communications report: [input]") @@ -892,7 +878,6 @@ Traitors and the like can also be revived with the previous role mostly intact. message_admins("[key_name_admin(usr)] blanked all telecomms scripts.") feedback_add_details("admin_verb","RAT") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /client/proc/toggle_ert_calling() set category = "Event" set name = "Toggle ERT" @@ -911,3 +896,19 @@ Traitors and the like can also be revived with the previous role mostly intact. to_chat(usr, "\red ERT has been Disabled.") log_admin("Admin [key_name(src)] has disabled ERT calling.") message_admins("Admin [key_name_admin(usr)] has disabled ERT calling.", 1) + +/client/proc/modify_goals() + set category = "Event" + set name = "Modify station goals" + + if(!check_rights(R_EVENT)) + return + + holder.modify_goals() + +/datum/admins/proc/modify_goals() + var/dat = "" + for(var/datum/station_goal/S in ticker.mode.station_goals) + dat += "[S.name] - Announce | Remove
" + dat += "
Add New Goal" + usr << browse(dat, "window=goals;size=400x400") \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 48cc455c113..bad85285f33 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -73,6 +73,7 @@ emp_act for(var/obj/item/organ/external/organ in organs) armorval += getarmor_organ(organ, type) organnum++ + return (armorval/max(organnum, 1)) @@ -87,6 +88,10 @@ emp_act var/obj/item/clothing/C = bp if(C.body_parts_covered & def_zone.body_part) protection += C.armor[type] + + if(species) + protection += species.armor + return protection //this proc returns the Siemens coefficient of electrical resistivity for a particular external organ. diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index e2238057533..f2dd851f36c 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -75,6 +75,7 @@ var/clone_mod = 1 // Clone damage reduction/amplification var/brain_mod = 1 // Brain damage damage reduction/amplification var/stun_mod = 1 // If a species is more/less impacated by stuns/weakens/paralysis + var/armor = 0 // overall defense for the race... or less defense, if it's negative. var/total_health = 100 var/punchdamagelow = 0 //lowest possible punch damage diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index 970daf16e80..d578660b5a9 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -443,7 +443,7 @@ var/packs_list[0] for(var/set_name in shuttle_master.supply_packs) var/datum/supply_packs/pack = shuttle_master.supply_packs[set_name] - if(!pack.contraband && !pack.hidden && pack.group == cat) + if(!pack.contraband && !pack.hidden && !pack.special && pack.group == cat) // 0/1 after the pack name (set_name) is a boolean for ordering multiple crates packs_list.Add(list(list("name" = pack.name, "amount" = pack.amount, "cost" = pack.cost, "command1" = list("doorder" = "[set_name]0"), "command2" = list("doorder" = "[set_name]1"), "command3" = list("contents" = set_name)))) @@ -592,7 +592,7 @@ var/packs_list[0] for(var/set_name in shuttle_master.supply_packs) var/datum/supply_packs/pack = shuttle_master.supply_packs[set_name] - if((pack.hidden && src.hacked) || (pack.contraband && src.can_order_contraband) || (!pack.contraband && !pack.hidden)) + if((pack.hidden && hacked) || (pack.contraband && can_order_contraband) || (pack.special && pack.special_enabled) || (!pack.contraband && !pack.hidden && !pack.special)) if(pack.group == cat) // 0/1 after the pack name (set_name) is a boolean for ordering multiple crates packs_list.Add(list(list("name" = pack.name, "amount" = pack.amount, "cost" = pack.cost, "command1" = list("doorder" = "[set_name]0"), "command2" = list("doorder" = "[set_name]1"), "command3" = list("contents" = set_name)))) diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm new file mode 100644 index 00000000000..e890783195c --- /dev/null +++ b/code/modules/station_goals/bsa.dm @@ -0,0 +1,344 @@ +// Crew has to build a bluespace cannon +// Cargo orders part for high price +// Requires high amount of power +// Requires high level stock parts +/datum/station_goal/bluespace_cannon + name = "Bluespace Artillery" + +/datum/station_goal/bluespace_cannon/get_report() + return {"Our military presence is inadequate in your sector. + We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. + + Base parts should be availible for shipping by your cargo shuttle. + -Nanotrasen Naval Command"} + +/datum/station_goal/bluespace_cannon/on_report() + //Unlock BSA parts + var/datum/supply_packs/misc/bsa/P = shuttle_master.supply_packs[/datum/supply_packs/misc/bsa] + P.special_enabled = TRUE + +/datum/station_goal/bluespace_cannon/check_completion() + if(..()) + return TRUE + var/obj/machinery/bsa/full/B = locate() + if(B && !B.stat) + return TRUE + return FALSE + +/obj/machinery/bsa + icon = 'icons/obj/machines/particle_accelerator.dmi' + density = 1 + anchored = 1 + +/obj/machinery/bsa/back + name = "Bluespace Artillery Generator" + desc = "Generates cannon pulse. Needs to be linked with a fusor. " + icon_state = "power_box" + +/obj/machinery/bsa/back/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + to_chat(user, "You store linkage information in [W]'s buffer.") + else if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 10) + return TRUE + else + return ..() + +/obj/machinery/bsa/front + name = "Bluespace Artillery Bore" + desc = "Do not stand in front of cannon during operation. Needs to be linked with a fusor." + icon_state = "emitter_center" + +/obj/machinery/bsa/front/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + M.buffer = src + to_chat(user, "You store linkage information in [W]'s buffer.") + else if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 10) + return TRUE + else + return ..() + +/obj/machinery/bsa/middle + name = "Bluespace Artillery Fusor" + desc = "Contents classifed by Nanotrasen Naval Command. Needs to be linked with the other BSA parts using multitool." + icon_state = "fuel_chamber" + var/obj/machinery/bsa/back/back + var/obj/machinery/bsa/front/front + +/obj/machinery/bsa/middle/attackby(obj/item/weapon/W, mob/user, params) + if(istype(W, /obj/item/device/multitool)) + var/obj/item/device/multitool/M = W + if(M.buffer) + if(istype(M.buffer,/obj/machinery/bsa/back)) + back = M.buffer + M.buffer = null + to_chat(user, "You link [src] with [back].") + else if(istype(M.buffer,/obj/machinery/bsa/front)) + front = M.buffer + M.buffer = null + to_chat(user, "You link [src] with [front].") + else if(istype(W, /obj/item/weapon/wrench)) + default_unfasten_wrench(user, W, 10) + return TRUE + else + return ..() + +/obj/machinery/bsa/middle/proc/check_completion() + if(!front || !back) + return "No linked parts detected!" + if(!front.anchored || !back.anchored || !anchored) + return "Linked parts unwrenched!" + if(front.y != y || back.y != y || !(front.x > x && back.x < x || front.x < x && back.x > x) || front.z != z || back.z != z) + return "Parts misaligned!" + if(!has_space()) + return "Not enough free space!" + +/obj/machinery/bsa/middle/proc/has_space() + var/cannon_dir = get_cannon_direction() + var/x_min + var/x_max + switch(cannon_dir) + if(EAST) + x_min = x - 4 //replace with defines later + x_max = x + 6 + if(WEST) + x_min = x + 4 + x_max = x - 6 + + for(var/turf/T in block(locate(x_min,y-1,z),locate(x_max,y+1,z))) + if(T.density || isspaceturf(T)) + return FALSE + return TRUE + +/obj/machinery/bsa/middle/proc/get_cannon_direction() + if(front.x > x && back.x < x) + return EAST + else if(front.x < x && back.x > x) + return WEST + + +/obj/machinery/bsa/full + name = "Bluespace Artillery" + desc = "Long range bluespace artillery." + icon = 'icons/obj/lavaland/cannon.dmi' + icon_state = "orbital_cannon1" + var/static/image/top_layer = null + var/ex_power = 3 + var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it + var/ready + pixel_y = -32 + pixel_x = -192 + bound_width = 352 + bound_x = -192 + +/obj/machinery/bsa/full/proc/get_front_turf() + switch(dir) + if(WEST) + return locate(x - 6,y,z) + if(EAST) + return locate(x + 4,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_back_turf() + switch(dir) + if(WEST) + return locate(x + 4,y,z) + if(EAST) + return locate(x - 6,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/proc/get_target_turf() + switch(dir) + if(WEST) + return locate(1,y,z) + if(EAST) + return locate(world.maxx,y,z) + return get_turf(src) + +/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) + ..() + switch(cannon_direction) + if(WEST) + dir = WEST + pixel_x = -192 + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_west") + top_layer.layer = 4.1 + icon_state = "cannon_west" + if(EAST) + dir = EAST + top_layer = image("icons/obj/lavaland/orbital_cannon.dmi", "top_east") + top_layer.layer = 4.1 + icon_state = "cannon_east" + overlays += top_layer + reload() + +/obj/machinery/bsa/full/proc/fire(mob/user, turf/bullseye) + var/turf/point = get_front_turf() + for(var/turf/T in getline(get_step(point,dir),get_target_turf())) + T.ex_act(1) + point.Beam(get_target_turf(),icon_state="bsa_beam",time=50,maxdistance = world.maxx) //ZZZAP + + message_admins("[key_name_admin(user)] has launched an artillery strike.") + explosion(bullseye,ex_power,ex_power*2,ex_power*4) + + reload() + +/obj/machinery/bsa/full/proc/reload() + ready = FALSE + use_power(power_used_per_shot) + spawn(600) + ready_cannon() + +/obj/machinery/bsa/full/proc/ready_cannon() + ready = TRUE + +/obj/structure/filler + name = "big machinery part" + density = 1 + anchored = 1 + invisibility = 101 + var/obj/machinery/parent + +/obj/structure/filler/ex_act() + return + +/obj/item/weapon/circuitboard/machine/bsa/back + name = "Bluespace Artillery Generator (Machine Board)" + build_path = /obj/machinery/bsa/back + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/middle + name = "Bluespace Artillery Fusor (Machine Board)" + build_path = /obj/machinery/bsa/middle + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/ore/bluespace_crystal = 20, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/machine/bsa/front + name = "Bluespace Artillery Bore (Machine Board)" + build_path = /obj/machinery/bsa/front + origin_tech = "engineering=2;combat=2;bluespace=2" + req_components = list( + /obj/item/weapon/stock_parts/manipulator/femto = 5, + /obj/item/stack/cable_coil = 2) + +/obj/item/weapon/circuitboard/computer/bsa_control + name = "Bluespace Artillery Controls (Computer Board)" + build_path = /obj/machinery/computer/bsa_control + origin_tech = "engineering=2;combat=2;bluespace=2" + +/obj/machinery/computer/bsa_control + name = "Bluespace Artillery Control" + var/obj/machinery/bsa/full/cannon + var/notice + var/target + use_power = 0 + circuit = /obj/item/weapon/circuitboard/computer/bsa_control + icon = 'icons/obj/machines/particle_accelerator.dmi' + icon_state = "control_boxp" + var/area_aim = FALSE //should also show areas for targeting + +/obj/machinery/computer/bsa_control/attack_hand(mob/user) + if(..()) + return 1 + ui_interact(user) + +/obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "dna_vault.tmpl", name, 350, 400) + ui.open() + + +/obj/machinery/computer/bsa_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "bsa.tmpl", name, 400, 305) + ui.open() + +/obj/machinery/computer/bsa_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state) + var/list/data = list() + data["ready"] = cannon ? cannon.ready : FALSE + data["connected"] = cannon + data["notice"] = notice + if(target) + data["target"] = get_target_name() + return data + +/obj/machinery/computer/bsa_control/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["build"]) + cannon = deploy() + . = TRUE + if(href_list["fire"]) + fire(usr) + . = TRUE + if(href_list["recalibrate"]) + calibrate(usr) + . = TRUE + update_icon() + +/obj/machinery/computer/bsa_control/proc/calibrate(mob/user) + var/list/gps_locators = list() + for(var/obj/item/device/gps/G in GPS_list) //nulls on the list somehow + gps_locators[G.gpstag] = G + + var/list/options = gps_locators + if(area_aim) + options += teleportlocs + var/V = input(user,"Select target", "Select target",null) in options|null + target = options[V] + + +/obj/machinery/computer/bsa_control/proc/get_target_name() + if(istype(target,/area)) + var/area/A = target + return A.name + else if(istype(target,/obj/item/device/gps)) + var/obj/item/device/gps/G = target + return G.gpstag + +/obj/machinery/computer/bsa_control/proc/get_impact_turf() + if(istype(target,/area)) + return pick(get_area_turfs(target)) + else if(istype(target,/obj/item/device/gps)) + return get_turf(target) + +/obj/machinery/computer/bsa_control/proc/fire(mob/user) + if(cannon.stat) + notice = "Cannon unpowered!" + return + notice = null + cannon.fire(user, get_impact_turf()) + +/obj/machinery/computer/bsa_control/proc/deploy(force=FALSE) + var/obj/machinery/bsa/full/prebuilt = locate() in range(7) //In case of adminspawn + if(prebuilt) + return prebuilt + + var/obj/machinery/bsa/middle/centerpiece = locate() in range(7) + if(!centerpiece) + notice = "No BSA parts detected nearby." + return null + notice = centerpiece.check_completion() + if(notice) + return null + //Totally nanite construction system not an immersion breaking spawning + var/datum/effect/system/harmless_smoke_spread/s = new /datum/effect/system/harmless_smoke_spread() + s.set_up(4, 0, get_turf(centerpiece)) + s.start() + var/obj/machinery/bsa/full/cannon = new(get_turf(centerpiece),cannon_direction=centerpiece.get_cannon_direction()) + qdel(centerpiece.front) + qdel(centerpiece.back) + qdel(centerpiece) + return cannon diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm new file mode 100644 index 00000000000..482c1c5069d --- /dev/null +++ b/code/modules/station_goals/dna_vault.dm @@ -0,0 +1,276 @@ +//Crew has to create dna vault +// Cargo can order DNA samplers + DNA vault boards +// DNA vault requires x animals ,y plants, z human dna +// DNA vaults require high tier stock parts and cold +// After completion each crewmember can receive single upgrade chosen out of 2 for the mob. +#define VAULT_TOXIN "Toxin Adaptation" +#define VAULT_NOBREATH "Lung Enhancement" +#define VAULT_FIREPROOF "Thermal Regulation" +#define VAULT_STUNTIME "Neural Repathing" +#define VAULT_ARMOUR "Bone Reinforcement" + +/datum/station_goal/dna_vault + name = "DNA Vault" + var/animal_count + var/human_count + var/plant_count + +/datum/station_goal/dna_vault/New() + ..() + animal_count = rand(15,20) //might be too few given ~15 roundstart stationside ones + human_count = rand(round(0.75 * ticker.mode.num_players()) , ticker.mode.num_players()) // 75%+ roundstart population. + var/non_standard_plants = non_standard_plants_count() + plant_count = rand(round(0.5 * non_standard_plants),round(0.7 * non_standard_plants)) + +/datum/station_goal/dna_vault/proc/non_standard_plants_count() + . = 0 + for(var/T in subtypesof(/datum/seed)) //put a cache if it's used anywhere else + var/datum/seed/S = T + if(S.get_trait(TRAIT_RARITY) > 0) + .++ + +/datum/station_goal/dna_vault/get_report() + return {"Our long term prediction systems say there's 99% chance of system-wide cataclysm in near future. + We need you to construct DNA Vault aboard your station. + + DNA Vault needs to contain samples of: + [animal_count] unique animal data + [plant_count] unique non-standard plant data + [human_count] unique sapient humanoid DNA data + + Base vault parts should be availible for shipping by your cargo shuttle."} + +/datum/station_goal/dna_vault/on_report() + var/datum/supply_packs/P = shuttle_master.supply_packs[/datum/supply_packs/misc/dna_vault] + P.special_enabled = TRUE + + P = shuttle_master.supply_packs[/datum/supply_packs/misc/dna_probes] + P.special_enabled = TRUE + +/datum/station_goal/dna_vault/check_completion() + if(..()) + return TRUE + for(var/obj/machinery/dna_vault/V in machines) + if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count) + return TRUE + return FALSE + + +/obj/item/device/dna_probe + name = "DNA Sampler" + desc = "Can be used to take chemical and genetic samples of pretty much anything." + icon = 'icons/obj/hypo.dmi' + item_state = "hypo" + icon_state = "hypo" + flags = NOBLUDGEON + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + +/obj/item/device/dna_probe/proc/clear_data() + animals = list() + plants = list() + dna = list() + +var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/mob/living/carbon/alien)) + +/obj/item/device/dna_probe/afterattack(atom/target, mob/user, proximity) + ..() + if(!proximity || !target) + return + //tray plants + if(istype(target,/obj/machinery/portable_atmospherics/hydroponics)) + var/obj/machinery/portable_atmospherics/hydroponics/H = target + if(!H.seed) + return + if(!H.harvest)// So it's bit harder. + to_chat(user, "Plants needs to be ready to harvest to perform full data scan.") //Because space dna is actually magic + return + if(plants[H.seed.type]) + to_chat(user, "Plant data already present in local storage.") + return + plants[H.seed.type] = 1 + to_chat(user, "Plant data added to local storage.") + + //animals + if(isanimal(target) || is_type_in_typecache(target,non_simple_animals)) + if(isanimal(target)) + var/mob/living/simple_animal/A = target + if(!A.healable)//simple approximation of being animal not a robot or similar + to_chat(user, "No compatibile DNA detected") + return + if(animals[target.type]) + to_chat(user, "Animal data already present in local storage.") + return + animals[target.type] = 1 + to_chat(user, "Animal data added to local storage.") + + //humans + if(ishuman(target)) + var/mob/living/carbon/human/H = target + if(dna[H.dna.uni_identity]) + to_chat(user, "Humanoid data already present in local storage.") + return + dna[H.dna.uni_identity] = 1 + to_chat(user, "Humanoid data added to local storage.") + + +/obj/item/weapon/circuitboard/machine/dna_vault + name = "DNA Vault (Machine Board)" + build_path = /obj/machinery/dna_vault + origin_tech = "engineering=2;combat=2;bluespace=2" //No freebies! + req_components = list( + /obj/item/weapon/stock_parts/capacitor/quadratic = 5, + /obj/item/stack/cable_coil = 2) + +/obj/machinery/dna_vault + name = "DNA Vault" + desc = "Break glass in case of apocalypse." + icon = 'icons/obj/machines/dna_vault.dmi' + icon_state = "vault" + density = 1 + anchored = 1 + idle_power_usage = 5000 + pixel_x = -32 + pixel_y = -64 + luminosity = 1 + + //High defaults so it's not completed automatically if there's no station goal + var/animals_max = 100 + var/plants_max = 100 + var/dna_max = 100 + var/list/animals = list() + var/list/plants = list() + var/list/dna = list() + + var/completed = FALSE + var/list/power_lottery = list() + + var/list/obj/structure/fillers = list() + +/obj/machinery/dna_vault/New() + //TODO: Replace this,bsa and gravgen with some big machinery datum + var/list/occupied = list() + for(var/direct in list(EAST,WEST,SOUTHEAST,SOUTHWEST)) + occupied += get_step(src,direct) + occupied += locate(x+1,y-2,z) + occupied += locate(x-1,y-2,z) + + for(var/T in occupied) + var/obj/structure/filler/F = new(T) + F.parent = src + fillers += F + + if(ticker.mode) + for(var/datum/station_goal/dna_vault/G in ticker.mode.station_goals) + animals_max = G.animal_count + plants_max = G.plant_count + dna_max = G.human_count + break + +/obj/machinery/dna_vault/Destroy() + for(var/V in fillers) + var/obj/structure/filler/filler = V + filler.parent = null + qdel(filler) + . = ..() + +/obj/machinery/dna_vault/attack_hand(mob/user) + if(..()) + return 1 + ui_interact(user) + +/obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "dna_vault.tmpl", name, 350, 400) + ui.open() + +/obj/machinery/dna_vault/proc/roll_powers(mob/user) + if(user in power_lottery) + return + var/list/L = list() + var/list/possible_powers = list(VAULT_TOXIN,VAULT_NOBREATH,VAULT_FIREPROOF,VAULT_STUNTIME,VAULT_ARMOUR) + L += pick_n_take(possible_powers) + L += pick_n_take(possible_powers) + power_lottery[user] = L + +/obj/machinery/dna_vault/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state) //TODO Make it % bars maybe + var/list/data = list() + data["plants"] = plants.len + data["plants_max"] = plants_max + data["animals"] = animals.len + data["animals_max"] = animals_max + data["dna"] = dna.len + data["dna_max"] = dna_max + data["completed"] = completed + data["used"] = TRUE + data["choiceA"] = "" + data["choiceB"] = "" + if(user && completed) + var/list/L = power_lottery[user] + if(L && L.len) + data["used"] = FALSE + data["choiceA"] = L[1] + data["choiceB"] = L[2] + return data + +/obj/machinery/dna_vault/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["gene"]) + upgrade(usr,href_list["choice"]) + . = TRUE + +/obj/machinery/dna_vault/proc/check_goal() + if(plants.len >= plants_max && animals.len >= animals_max && dna.len >= dna_max) + completed = TRUE + +/obj/machinery/dna_vault/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/dna_probe)) + var/obj/item/device/dna_probe/P = I + var/uploaded = 0 + for(var/plant in P.plants) + if(!plants[plant]) + uploaded++ + plants[plant] = 1 + for(var/animal in P.animals) + if(!animals[animal]) + uploaded++ + animals[animal] = 1 + for(var/ui in P.dna) + if(!dna[ui]) + uploaded++ + dna[ui] = 1 + check_goal() + to_chat(user, "[uploaded] new datapoints uploaded.") + else + return ..() + +/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) + if(!(upgrade_type in power_lottery[H])) + return + var/datum/species/S = H.dna.species + switch(upgrade_type) + if(VAULT_TOXIN) + to_chat(H, "You feel resistant to airborne toxins.") + S.tox_mod = 0 + S.virus_immune = 1 + if(VAULT_NOBREATH) + to_chat(H, "Your lungs feel great.") + S.flags |= NO_BREATHE + if(VAULT_FIREPROOF) + to_chat(H, "Your feel fireproof.") + S.burn_mod = 0.5 + S.heat_level_1 = 999999999 + S.heat_level_2 = 999999999 + S.heat_level_3 = 999999999 + S.heat_level_3_breathe = 999999999 + if(VAULT_STUNTIME) + to_chat(H, "Nothing can keep you down for long.") + S.stun_mod = 0.5 + if(VAULT_ARMOUR) + to_chat(H, "Your feel tough.") + S.armor = 30 + power_lottery[H] = list() \ No newline at end of file diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm new file mode 100644 index 00000000000..5348f5f9a69 --- /dev/null +++ b/code/modules/station_goals/shield.dm @@ -0,0 +1,186 @@ +//Station Shield +// A chain of satellites encircles the station +// Satellites be actived to generate a shield that will block unorganic matter from passing it. +/datum/station_goal/station_shield + name = "Station Shield" + var/coverage_goal = 500 + +/datum/station_goal/station_shield/get_report() + return {"The station is located in a zone full of space debris. + We have a prototype shielding system you will deploy to reduce collision related accidents. + + You can order the satellites and control systems through cargo shuttle. + "} + + +/datum/station_goal/station_shield/on_report() + //Unlock + var/datum/supply_packs/P = shuttle_master.supply_packs[/datum/supply_packs/misc/shield_sat] + P.special_enabled = TRUE + + P = shuttle_master.supply_packs[/datum/supply_packs/misc/shield_sat_control] + P.special_enabled = TRUE + +/datum/station_goal/station_shield/check_completion() + if(..()) + return TRUE + if(get_coverage() >= coverage_goal) + return TRUE + return FALSE + +/datum/station_goal/proc/get_coverage() + var/list/coverage = list() + for(var/obj/machinery/satellite/meteor_shield/A in machines) + if(!A.active || (A.z != STATION_LEVEL)) + continue + coverage |= view(A.kill_range,A) + return coverage.len + +/obj/item/weapon/circuitboard/machine/computer/sat_control + name = "Satellite Network Control (Computer Board)" + build_path = /obj/machinery/computer/sat_control + origin_tech = "engineering=3" + +/obj/machinery/computer/sat_control + name = "Satellite control" + desc = "Used to control the satellite network." + circuit = /obj/item/weapon/circuitboard/machine/computer/sat_control + var/notice + +/obj/machinery/computer/sat_control/attack_hand(mob/user) + if(..()) + return 1 + ui_interact(user) + +/obj/machinery/computer/sat_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) + ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "sat_control.tmpl", name, 400, 305) + ui.open() + +/obj/machinery/computer/sat_control/Topic(href, href_list) + if(..()) + return 1 + + if(href_list["toggle"]) + toggle(text2num(href_list["id"])) + . = TRUE + +/obj/machinery/computer/sat_control/proc/toggle(id) + for(var/obj/machinery/satellite/S in machines) + if(S.id == id && S.z == z) + S.toggle() + +/obj/machinery/computer/sat_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state) + var/list/data = list() + + data["satellites"] = list() + for(var/obj/machinery/satellite/S in machines) + data["satellites"] += list(list( + "id" = S.id, + "active" = S.active, + "mode" = S.mode + )) + data["notice"] = notice + + var/datum/station_goal/station_shield/G = locate() in ticker.mode.station_goals + if(G) + data["meteor_shield"] = 1 + data["meteor_shield_coverage"] = G.get_coverage() + data["meteor_shield_coverage_max"] = G.coverage_goal + return data + +/obj/machinery/satellite + name = "Defunct Satellite" + desc = "" + icon = 'icons/obj/machines/satellite.dmi' + icon_state = "sat_inactive" + var/mode = "NTPROBEV0.8" + var/active = FALSE + density = 1 + use_power = FALSE + var/static/gid = 0 + var/id = 0 + +/obj/machinery/satellite/New() + ..() + id = gid++ + +/obj/machinery/satellite/interact(mob/user) + toggle(user) + +/obj/machinery/satellite/proc/toggle(mob/user) + if(!active && !isinspace()) + if(user) + to_chat(user, "You can only active the [src] in space.") + return FALSE + if(user) + to_chat(user, "You [active ? "deactivate": "activate"] the [src]") + active = !active + if(active) + animate(src, pixel_y = 2, time = 10, loop = -1) + anchored = 1 + else + animate(src, pixel_y = 0, time = 10) + anchored = 0 + update_icon() + +/obj/machinery/satellite/update_icon() + icon_state = active ? "sat_active" : "sat_inactive" + +/obj/machinery/satellite/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/device/multitool)) + to_chat(user, "// NTSAT-[id] // Mode : [active ? "PRIMARY" : "STANDBY"] //[emagged ? "DEBUG_MODE //" : ""]") + else + return ..() + +/obj/machinery/satellite/meteor_shield + name = "Meteor Shield Satellite" + desc = "Meteor Point Defense Satellite" + mode = "M-SHIELD" + speed_process = TRUE + var/kill_range = 14 + +/obj/machinery/satellite/meteor_shield/proc/space_los(meteor) + for(var/turf/T in getline(src,meteor)) + if(!isspaceturf(T)) + return FALSE + return TRUE + +/obj/machinery/satellite/meteor_shield/process() + if(!active) + return + for(var/obj/effect/meteor/M in meteor_list) + if(M.z != z) + continue + if(get_dist(M,src) > kill_range) + continue + if(!emagged && space_los(M)) + Beam(get_turf(M),icon_state="sat_beam",time=5,maxdistance=kill_range) + qdel(M) + +/obj/machinery/satellite/meteor_shield/toggle(user) + if(!..(user)) + return FALSE + if(emagged) + if(active) + change_meteor_chance(2) + else + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/proc/change_meteor_chance(mod) + for(var/datum/event_container/container in event_manager.event_containers) + for(var/datum/event_meta/M in container.available_events) + if(M.event_type == /datum/event/meteor_wave) + M.weight *= mod + +/obj/machinery/satellite/meteor_shield/Destroy() + . = ..() + if(active && emagged) + change_meteor_chance(0.5) + +/obj/machinery/satellite/meteor_shield/emag_act() + if(!emagged) + emagged = 1 + if(active) + change_meteor_chance(2) diff --git a/code/modules/station_goals/station_goal.dm b/code/modules/station_goals/station_goal.dm new file mode 100644 index 00000000000..5a97f0ee2f3 --- /dev/null +++ b/code/modules/station_goals/station_goal.dm @@ -0,0 +1,49 @@ +//TODO +// Admin button to override with your own +// Sabotage objective for tators +// Multiple goals with less impact but more department focused + +/datum/station_goal + var/name = "Generic Goal" + var/weight = 1 //In case of multiple goals later. + var/required_crew = 10 + var/list/gamemode_blacklist = list() + var/completed = FALSE + var/report_message = "Complete this goal." + +/datum/station_goal/proc/send_report() + priority_announcement.Announce("Priority Nanotrasen directive received. Project \"[name]\" details inbound.", "Incoming Priority Message", 'sound/AI/commandreport.ogg') + print_command_report(get_report(), "Nanotrasen Directive [pick(phonetic_alphabet)] \Roman[rand(1,50)]") + on_report() + +/datum/station_goal/proc/on_report() + //Additional unlocks/changes go here + return + +/datum/station_goal/proc/get_report() + return report_message + +/datum/station_goal/proc/check_completion() + return completed + +/datum/station_goal/proc/print_result() + if(check_completion()) + to_chat(world, "Station Goal : [name] : Completed!") + else + to_chat(world, "Station Goal : [name] : Failed!") + +/datum/station_goal/Destroy() + ticker.mode.station_goals -= src + . = ..() + +/datum/station_goal/Topic(href, href_list) + ..() + + if(!check_rights(R_EVENT)) + return + + if(href_list["announce"]) + on_report() + send_report() + else if(href_list["remove"]) + qdel(src) \ No newline at end of file diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index 657a2d4341899a5ac566d86b7b1a40a7c4cf010f..c64e233644953abf30d1e1338ba9c04557700a55 100644 GIT binary patch literal 6780 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 BN9X_m diff --git a/icons/obj/lavaland/cannon.dmi b/icons/obj/lavaland/cannon.dmi new file mode 100644 index 0000000000000000000000000000000000000000..82efad1bc5ed58eae5a4da103e3222ad2ef028bf GIT binary patch literal 34466 zcmZU)Wl&vRur0cAcY?bU+}+(Z1Pku&!QI{6o!~CP-Q5Z9Zoz`x^__Rmt5@}Yz%CZW zV$RvKyGM7A5uvOog#?cW4+4RZWTeGaK_D<=;ENd+8hB!~irNNzM0%=gx`>-P8#`G# zxLDfTfk5urF_ZQ1{mht>yF5>{zUx2ewR5h>XcG&3px_>@SksdajP$qrrbIe&cK4gw z5WjQv#l~)_T1~=5@7pPv#WX@QBl{>(Nqa*>?Ryvg(u0aVx>6fIrRug4Gm9+=oJ;V) z{7kg}T>r+YIW^HzaddcHKg6uHIyVO+BO^+>fki6~0+E1Z#6{HIvoCx+yfIf&uFASf zu2MZ0MCDNF;p*xbgm<9UpaVpp@sl8%l-lF&28=gHTa9(-F@Xh=7>91qZ zN5*jYa9D>|4FY0%Np_*e41zQ}@S}@UwY$nGUB#>~pQIkDyTAST_M=PIzk6Fr$aVXd zv;ETLuj^c|E1u(0c1}(s^dxC2D=VuvP~8b}cc}U2=_~DRx%2z`)5}n7*T?Yo-uy5H zRf2SJ+!K`i-Z%uQ4lRG1BSh?j%kbiKT&~|R3J5#4wV%la^!Q}93Vd26_Pg8n#mkSA7xT9lsF%8@)%v|@Q-^lXIm=6Ap4wH-VEmfe z-mx0R1MGu+sTraDxYYR9OGf&(D_(X@Tf^%FVH<-?ic^`J1oY|*(bz|4j$JFC_Ww4E zV)w`YyPl5%rw9iJao^cDI>*9FhzF)_OvfGp{m(=po$7vzJZzA`bv*=#wKItH7@4jS z1OnCo@^9j&WJGem5#Jm@Yt?yL9r$4VAsDR|>2Opy7m|w8zpMj-uz`y!eS+ zf9rOwwp(+7gbS2|vz;lkSYWlP^_tQ7eqNfv$(D>KB=h;cA%J=(O_$tPKS;66SdZZC zUy#xt&i5}oz91YM_u01gUS16}FWo!3ujqNdPHn&MY?k@GOxO!_pxbxP1$NIUH6CLq zWJqe~Ccg9AUcyi6a6?>o-eA8CGzw|H?{$54-si@g&o-U=Oy&w8@O?gRTUZN@=YFn5 zS;ueM1|o+z-9y*N#cMKR_+6#3<2 z-BfPJ;n8Uv$&u&>V+l6pD-4pCP%mI)sMiX^?GL)tcsLJKg)~%5QXQ5* zF8kiVp%9#(4sw_)ImOymIOM<3wf6tB#P`kPC6xQlI1uuvsJ`h)_h{#ZFVSc&Y)LQv zb3q03+sp`;2KH``5bltxe)YTQfSA&!|Ms#_&s!9>5TDmkJ%=gRj*yZM{Ld`7 z(2ZVa@ZtHD$i!(!l;A$7j%&!>;&{uQp{oB^x+^#%!?O$4$rVDHN)FH6NOb;I} z%=eSYKsy%83R6<6`(wU&CoPtM$CgH?;U?O>TH(|8XVSXxGJtxyMpySSwX|&3C<5Cu zUoB_6Ub(j?#$_pIwgKyE)M`ig{ziyGGG;ykLty)Hle+D%U=LxzheYy)2BdEFrBs0- zl#Gx2{FxXZYhS2}(}jyrVr&l=G|mi;iN*LM{QPK2?C}KW7t+G5el>A_=$vU~%$M|x z%rK6%A@_gP+q)%xI>BLiJg^{T6FO#KYrs1}29-PY{PXc5t;=g{S7q+ydrBB^Kyr?hbx-oiqcdt4{0`*2MJ%uGB5XNDO zmSO=W zp69@%@j*KGb7vTd+uCUK*q{8114zdZwBB*kFQBG*XWh`WKOi;*@?SR2YrJzq6tkos z?0rElE-4#$f1xe!*7kB4T2Ha>RQvol?Wfm{EV1_W&Ea%qJ#*)Z-{m5S=L>?hVPiG~ z$fSH6jM?Pvv2tV8(~IHK-C!E$t2tX~_=w-D;SQ|W>^nJQ+q`p~^NL+^7_I{>u;ZH@ly`L| zogdvC4()-N!fh~TRw0@~KV&Ev{?`5HuGAZf112p%JP`|v%V)mnXX1?RYs&{u!F_js zyR7lI^d}XvJyrkXyCLch%}#FCOUl-UwnkOiI_TNZPg}Ud|rN

&00kHd3#qT=DIsdA)AQ8%$>^ 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 literal 0 HcmV?d00001 diff --git a/icons/obj/machines/dna_vault.dmi b/icons/obj/machines/dna_vault.dmi new file mode 100644 index 0000000000000000000000000000000000000000..35503336d427a84260d9374c1451183d4bea9b76 GIT binary patch literal 33625 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ʃz33N9j{FQbOdgjSa}H&OtzcA-z}i#MpVY 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 YEw1k;yD3{22?+R7l2endk~RzaKU2{U=>Px# literal 0 HcmV?d00001 diff --git a/icons/obj/machines/satellite.dmi b/icons/obj/machines/satellite.dmi new file mode 100644 index 0000000000000000000000000000000000000000..efe3dade763878fb1ad128a0a0bbea84bb34a008 GIT binary patch literal 650 zcmV;50(Jd~P)IDj!u#0|o#900DGTPE!Ct=GbNc004A)R9JLGWpiV4X>fFD zZ*Bkpc$`yKaB_9`^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w z;*!LYR3KBSII$!?F}WnOELDk%GbOXA7$|7S#hF%=n41b=qbSYH!>?Fb!PU<|D? z=_$s&cyfIJ00BBlL_t(YiS1NtZ-X!lWFB^Ea7ka3z9=nyrT_mA&ZJeft$|8>*`)0x z1R}cgITt62{_zX(_TvKZX9YYBJo*=gcaQ!G5F-)B0H&XS0URh0*qEe;Knm(W5d+JR zU%3ql7|0rkwN}#Sb!OHl;WTa8XErbzPo}fHfdu#w5o>p*ZHp2!M=T1Y1z8EUz)M)o z+oNV)tv6-4tr|Q#Q0(^g8b?`-aWHCTsO$Q0BsCCpz^8M)!EuHI44)NR?#~zJuH+mA zEyATPi-`(Q*a7kG1mu*jpP>Te4rMWI7w~P+jm%#Ze1Oc(9k)1ZZQ;)0==1Bb#*Kq3 zRg{b0#0KB*t`33QFGo}@a{FRpx&0J7XVrn#xH|a3+7Am-+1!fhoYoEpL{dpE!|rMC kFrZloOUiv_{T@UJAC4IjenyJ-M*si-07*qoM6N<$f_{(z%>V!Z literal 0 HcmV?d00001 diff --git a/paradise.dme b/paradise.dme index 93d922f35fc..d7bbae0330b 100644 --- a/paradise.dme +++ b/paradise.dme @@ -331,6 +331,7 @@ #include "code\defines\procs\announce.dm" #include "code\defines\procs\AStar.dm" #include "code\defines\procs\dbcore.dm" +#include "code\defines\procs\orphaned.dm" #include "code\defines\procs\radio.dm" #include "code\defines\procs\records.dm" #include "code\defines\procs\statistics.dm" @@ -2025,6 +2026,10 @@ #include "code\modules\spacepods\parts.dm" #include "code\modules\spacepods\pod_fabricator.dm" #include "code\modules\spacepods\spacepod.dm" +#include "code\modules\station_goals\bsa.dm" +#include "code\modules\station_goals\dna_vault.dm" +#include "code\modules\station_goals\shield.dm" +#include "code\modules\station_goals\station_goal.dm" #include "code\modules\store\items.dm" #include "code\modules\store\store.dm" #include "code\modules\surgery\bones.dm" From 14dc136fe83144787b8c01698dd63f52629ab9ca Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 24 Jan 2017 20:24:29 +0100 Subject: [PATCH 2/9] Further station goal updates --- _maps/map_files/cyberiad/z2.dmm | 125 ++++++++---------- code/modules/admin/topic.dm | 2 +- .../awaymissions/bluespaceartillery.dm | 79 ----------- .../mob/living/carbon/human/human_defense.dm | 5 +- code/modules/mob/living/carbon/human/life.dm | 2 +- .../living/carbon/human/species/species.dm | 1 - code/modules/mob/living/living_defines.dm | 1 + code/modules/station_goals/bsa.dm | 34 +++-- code/modules/station_goals/dna_vault.dm | 73 +++++----- code/modules/station_goals/shield.dm | 11 +- icons/obj/machines/artillery.dmi | Bin 14117 -> 0 bytes nano/templates/bluespace_artillery.tmpl | 26 ---- paradise.dme | 1 - 13 files changed, 119 insertions(+), 241 deletions(-) delete mode 100644 code/modules/awaymissions/bluespaceartillery.dm delete mode 100644 icons/obj/machines/artillery.dmi delete mode 100644 nano/templates/bluespace_artillery.tmpl diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index 2a0ec563b73..e5706c55edc 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -206,19 +206,15 @@ "dX" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) "dY" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpet15-11"},/area/centcom/control) "dZ" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_y = 5},/obj/item/weapon/pen/multi,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/control) -"ea" = (/obj/machinery/computer/artillerycontrol,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) +"ea" = (/obj/machinery/computer/bsa_control,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) "eb" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "carpet15-14"; tag = "icon-carpet (WEST)"},/area/centcom/control) -"ec" = (/obj/structure/artilleryplaceholder{tag = "icon-1"; icon_state = "1"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/centcom/control) +"ec" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/centcom/control) "ed" = (/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/prison/solitary) "ee" = (/turf/unsimulated/floor{icon_state = "floorscorched2"},/area/prison/solitary) -"ef" = (/obj/structure/artilleryplaceholder{tag = "icon-3"; icon_state = "3"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"eg" = (/obj/structure/artilleryplaceholder{tag = "icon-2"; icon_state = "2"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"eh" = (/obj/structure/artilleryplaceholder{tag = "icon-5"; icon_state = "5"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"ei" = (/obj/structure/artilleryplaceholder{tag = "icon-4"; icon_state = "4"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) +"ef" = (/obj/machinery/bsa/full/admin,/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) "ej" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "ek" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "el" = (/turf/unsimulated/wall{tag = "icon-iron11"; icon_state = "iron11"},/area/space) -"em" = (/obj/structure/artilleryplaceholder{tag = "icon-7"; icon_state = "7"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) "en" = (/turf/simulated/floor/holofloor{tag = "icon-1 (NORTHEAST)"; icon_state = "1"; dir = 5},/area/holodeck/source_space) "eo" = (/turf/simulated/floor/holofloor{tag = "icon-17 (NORTHEAST)"; icon_state = "17"; dir = 5},/area/holodeck/source_space) "ep" = (/turf/simulated/floor/holofloor{tag = "icon-22 (NORTHEAST)"; icon_state = "22"; dir = 5},/area/holodeck/source_space) @@ -234,7 +230,6 @@ "ez" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 9; icon_state = "red"},/area/holodeck/source_boxingcourt) "eA" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_boxingcourt) "eB" = (/obj/structure/table/holotable,/obj/item/clothing/gloves/boxing/hologlove,/turf/simulated/floor/holofloor{dir = 5; icon_state = "red"},/area/holodeck/source_boxingcourt) -"eC" = (/obj/structure/artilleryplaceholder{tag = "icon-6"; icon_state = "6"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) "eD" = (/obj/structure/flora/grass/both,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield) "eE" = (/turf/simulated/floor/holofloor{tag = "icon-carpet4-0 (EAST)"; icon_state = "carpet4-0"; dir = 4},/area/holodeck/source_meetinghall) "eF" = (/turf/simulated/floor/holofloor{tag = "icon-carpetsymbol (SOUTHEAST)"; icon_state = "carpetsymbol"; dir = 6},/area/holodeck/source_meetinghall) @@ -250,33 +245,22 @@ "eP" = (/turf/simulated/floor/holofloor{dir = 8; icon_state = "red"},/area/holodeck/source_boxingcourt) "eQ" = (/turf/simulated/floor/holofloor,/area/holodeck/source_boxingcourt) "eR" = (/turf/simulated/floor/holofloor{dir = 4; icon_state = "red"},/area/holodeck/source_boxingcourt) -"eS" = (/obj/structure/artilleryplaceholder{tag = "icon-9"; icon_state = "9"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"eT" = (/obj/structure/artilleryplaceholder{tag = "icon-8"; icon_state = "8"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"eU" = (/obj/structure/artilleryplaceholder{tag = "icon-11"; icon_state = "11"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/centcom/control) -"eV" = (/obj/structure/artilleryplaceholder{tag = "icon-10"; icon_state = "10"},/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) -"eW" = (/obj/structure/artilleryplaceholder{tag = "icon-12"; icon_state = "12"},/turf/space,/area/centcom/control) +"eU" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/centcom/control) +"eV" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) "eX" = (/obj/structure/flora/tree/pine,/turf/simulated/floor/holofloor{tag = "icon-snow"; icon_state = "snow"},/area/holodeck/source_snowfield) "eY" = (/obj/structure/table/woodentable,/turf/simulated/floor/holofloor{tag = "icon-grimy"; icon_state = "grimy"; dir = 2},/area/holodeck/source_meetinghall) "eZ" = (/turf/simulated/floor/holofloor{dir = 1; icon_state = "red"},/area/holodeck/source_basketball) "fa" = (/turf/unsimulated/floor{dir = 2; icon_state = "carpet15-5"},/area/centcom/control) "fb" = (/obj/structure/table/woodentable,/obj/machinery/photocopier{icon_state = "fax"; name = "fax machine"},/obj/item/weapon/photo{name = "butts"},/turf/unsimulated/floor{dir = 10; icon_state = "carpetside"},/area/centcom/control) "fc" = (/obj/machinery/computer/communications,/turf/unsimulated/floor{dir = 6; icon_state = "carpetside"},/area/centcom/control) -"fd" = (/obj/structure/artilleryplaceholder{tag = "icon-13"; icon_state = "13"},/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/centcom/control) -"fe" = (/obj/structure/artilleryplaceholder{tag = "icon-15"; icon_state = "15"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) +"fd" = (/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/centcom/control) "ff" = (/turf/unsimulated/wall,/area/ninja/outpost) "fg" = (/turf/unsimulated/wall,/area/ninja/holding) "fh" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (WEST)"; icon_state = "fakewindows"; dir = 8},/area/ninja/holding) "fi" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows2 (WEST)"; icon_state = "fakewindows2"; dir = 8},/area/ninja/holding) "fj" = (/turf/unsimulated/wall/fakeglass{tag = "icon-fakewindows (EAST)"; icon_state = "fakewindows"; dir = 4},/area/ninja/holding) "fk" = (/turf/unsimulated/wall{desc = "The door appears to be locked tightly."; icon = 'icons/obj/doors/Doorhatchele.dmi'; icon_state = "door_closed"; name = "Locked Door"},/area/ninja/holding) -"fl" = (/obj/structure/artilleryplaceholder{tag = "icon-14"; icon_state = "14"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fm" = (/obj/structure/artilleryplaceholder{tag = "icon-17"; icon_state = "17"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fn" = (/obj/structure/artilleryplaceholder{tag = "icon-16"; icon_state = "16"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fo" = (/obj/structure/artilleryplaceholder{tag = "icon-19"; icon_state = "19"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fp" = (/obj/structure/artilleryplaceholder{tag = "icon-18"; icon_state = "18"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fq" = (/obj/structure/artilleryplaceholder{tag = "icon-21"; icon_state = "21"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fr" = (/obj/structure/artilleryplaceholder{tag = "icon-20"; icon_state = "20"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fs" = (/obj/structure/artilleryplaceholder{tag = "icon-23"; icon_state = "23"},/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/centcom/control) +"fs" = (/turf/unsimulated/floor{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/centcom/control) "ft" = (/turf/unsimulated/wall{desc = "The door appears to be locked tightly."; icon = 'icons/obj/doors/Doorhatchele.dmi'; icon_state = "door_closed"; name = "Locked Door"},/area/ninja/outpost) "fu" = (/turf/unsimulated/floor{icon_state = "dark"},/area/ninja/outpost) "fv" = (/obj/structure/ninjatele{pixel_y = 25},/turf/unsimulated/floor{icon_state = "dark"},/area/ninja/outpost) @@ -288,8 +272,8 @@ "fB" = (/obj/machinery/vending/boozeomat,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fC" = (/obj/structure/table,/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/box/donkpockets{pixel_x = 3; pixel_y = 3},/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/ninja/holding) "fD" = (/obj/structure/rack,/obj/item/device/camera,/obj/machinery/light/spot{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) -"fE" = (/obj/structure/artilleryplaceholder{tag = "icon-22"; icon_state = "22"},/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) -"fF" = (/obj/structure/artilleryplaceholder{tag = "icon-24"; icon_state = "24"},/turf/space,/area/centcom/control) +"fE" = (/turf/unsimulated/floor{tag = "icon-warnplate"; icon_state = "warnplate"; dir = 2},/area/centcom/control) +"fF" = (/turf/space,/area/centcom/control) "fG" = (/obj/machinery/computer/arcade,/turf/unsimulated/floor{icon_state = "cafeteria"; dir = 2},/area/ninja/holding) "fH" = (/turf/unsimulated/beach/sand,/area/ninja/holding) "fI" = (/obj/effect/overlay/palmtree_r,/obj/effect/overlay/coconut,/turf/unsimulated/beach/sand,/area/ninja/holding) @@ -990,7 +974,7 @@ "vJ" = (/obj/machinery/newscaster{layer = 3.3; pixel_x = 0; pixel_y = -27},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "vL" = (/obj/item/device/radio/intercom/specops{pixel_y = -28},/turf/unsimulated/floor{icon_state = "dark"},/area/centcom/specops) "vM" = (/obj/structure/table/woodentable{dir = 10},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "SPECOPS"; name = "Ready Room"; pixel_y = 16; req_access_txt = "114"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "ASSAULT"; name = "Assault Armor"; pixel_y = -4; req_access_txt = "114"},/obj/machinery/door_control{desc = "A remote control switch to block view of the singularity."; icon_state = "doorctrl0"; id = "specopsoffice"; name = "Privacy Shutters"; pixel_y = 6; req_access_txt = "114"},/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/centcom/specops) -"vO" = (/obj/machinery/computer/artillerycontrol{luminosity = 255},/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/centcom/specops) +"vO" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/centcom/specops) "vP" = (/obj/structure/stool/bed/chair{dir = 1},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops) "vQ" = (/obj/machinery/telecomms/processor/preset_cent,/turf/unsimulated/floor{icon_state = "green"; dir = 8},/area/centcom/control) "vS" = (/obj/machinery/newscaster/security_unit{pixel_x = -32},/turf/unsimulated/floor{icon_state = "grimy"},/area/centcom/specops) @@ -1160,7 +1144,6 @@ "DH" = (/obj/structure/rack,/obj/item/weapon/storage/backpack/holding,/obj/item/weapon/storage/backpack/duffel/clown,/obj/item/weapon/storage/backpack/duffel/captain,/obj/item/weapon/storage/backpack/duffel/science,/obj/item/weapon/storage/backpack/duffel/syndie/ammo,/obj/item/weapon/storage/backpack/duffel/syndie/med,/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DI" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end (WEST)"},/area/admin) "DJ" = (/obj/structure/rack,/obj/item/clothing/under/shorts/black{pixel_x = -3; pixel_y = 3},/obj/item/clothing/under/shorts/blue,/obj/item/clothing/under/shorts/red{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) -"DK" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DL" = (/obj/structure/rack,/obj/item/clothing/suit/space/deathsquad,/obj/item/clothing/suit/space/deathsquad/officer{pixel_x = 3; pixel_y = -3},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "DM" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{dir = 2; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5"; name = "window"; opacity = 0; tag = "icon-window5"},/area/admin) "DN" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/turf/unsimulated/wall{dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_mid"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin) @@ -1296,7 +1279,7 @@ "Gs" = (/obj/structure/table/woodentable,/obj/item/toy/cards/deck/syndicate,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin) "Gt" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/devilskiss,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin) "Gu" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 8; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5_end (WEST)"},/area/admin) -"Gv" = (/obj/machinery/computer/artillerycontrol{luminosity = 255},/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) +"Gv" = (/turf/unsimulated/floor{tag = "icon-floor"; icon_state = "floor"},/area/admin) "Gx" = (/obj/item/weapon/stool,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin) "Gy" = (/obj/structure/table/woodentable,/obj/item/weapon/lighter/zippo/engraved,/obj/item/weapon/storage/fancy/cigarettes/dromedaryco,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/admin) "Gz" = (/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/turf/unsimulated/wall{desc = "This window appears to be reinforced, it looks nearly impossible to break."; dir = 4; icon = 'icons/turf/shuttle.dmi'; icon_state = "window5_end"; name = "window"; opacity = 0; tag = "icon-window5 (EAST)"},/area/admin) @@ -1552,8 +1535,8 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatbtctdtdtesqsqsqsqsqsEsEmnsMsCmnsEsEsEsEsEsQsQsQsQtfsQsQtgsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititjtktitititjtltmtntdtdtdsqsrssstsqtosEmnsMtpmnsEsEsEsEsutqsQsQsQtrsQsQtssqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqswsssssxsEsEsEsEsEsEsEsEsEsEsqsusususususususqsqdWdXsqsqsqsqsqsqsqsqsqsqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititvtktitititvtwtmtntdtdtdsqsqsqsqsqsqsqtxsqsqsqsqsEsEtysqtztztztztztztzsudZdYebeasuecegefeieheCemeTeSeVeUeWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtAsqtBtCtDsqtEtFtFtFtFtGsqsEsEtHsqtztztztztztztzsufbfatLfcsufdflfefnfmfpfofrfqfEfsfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititvtktitititvtwtmtntdtdtdsqsqsqsqsqsqsqtxsqsqsqsqsEsEtysqtztztztztztztzsudZdYebeasueceVeVeVeVeVefeVeVeVeUfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtAsqtBtCtDsqtEtFtFtFtFtGsqsEsEtHsqtztztztztztztzsufbfatLfcsufdfEfEfEfEfEfEfEfEfEfsfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititItktitititItJtmtntdtdtdsqtKtLtMtNtFtFtFtFtFtOsqsusxsusqsusususususususqsqfLsqsqsqsqsqsqsqsqsqsqsqsqsqsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqsqsususqsqsqsususususqtQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititVtktitititVtWtXtYtdtdtdsqtztztztztztztztztztzsqtQtRtRtRtRtRtRtRtRtRtRtRtRtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN @@ -1625,50 +1608,50 @@ aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbW aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtaNaNaNaNaNDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvDtDwDxDyDyDyDzDwiEaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDADBDCDDDEDFDGDHDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDJDKDKDKDKDKDLDADuaNaNaNaNaNaNDvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDODKDPcQDRDKDSDADwDMDwDMDwDMDwDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDZDKDKDKDKDKEdDADTDKDUDKDVDWDXDYDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfEgDKEaEbEcDKEiDADKDKDKDKDKDKDKEeDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNiQDAiRDKDKDKDKDKjfDAEjDKEkDKElDWDXDYEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAjGEhDKDKDKEhjHDADKDKDKDKDKDKDKEmDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDJGvGvGvGvGvDLDADuaNaNaNaNaNaNDvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDOGvDPcQDRGvDSDADwDMDwDMDwDMDwDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDZGvGvGvGvGvEdDADTGvDUGvDVDWDXDYDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfEgGvEaEbEcGvEiDAGvGvGvGvGvGvGvEeDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNiQDAiRGvGvGvGvGvjfDAEjGvEkGvElDWDXDYEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAjGEhGvGvGvEhjHDAGvGvGvGvGvGvGvEmDADvaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDuaNDADwDwDMEoDMDwDwDwDwDwDMEpDMDwDwDwEnaNDtDwEqErErEsDwDuaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwEtDKDKDKDKDKDKDKDKDKDKDKDKEuDAEnaNDvDwEvEwExEyEwEzDwjIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEBDKECDKDKDKDKDKDKDKDKDKDKDKDKDKDKDAaNaNaNEDEEEFEwEwEwEGEDaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWnnbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwDwDwDwDMEHDMDwDwDwDwDwEIDKDKDAaNaNaNEJEKEwEwEwEwELEJaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEnaNEMDAENEOEPDKDKEQERESETEuDADKDKDAiEaNDtDAEUEwEVEWEwEXDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWjLbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKDKDKDKDKDKDKEYDKDKDADwEZDwDwDwFaDwDwFaDwDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFbFcFdDKDKDKFeFeFeDKEHDKDKDAFfEwEwdfDADKDAFhFiFjDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYDKDKDKDKkhFkDwDwDwDwDADKDKDAEwEwFlFmDADKDAFnFoFpDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFqFrFsDKFtDAFuFvFwFxDADKDKDAFyEwEwFzDADKDAFAFBFCDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYlfDKDKDKFDDAFEFvFvFvFFDKDKDAFGEwEwFHDADKDKDKDKDKEfaNaNaNaNDtDwFIFJFKDwDuaNaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFMFNFODKFPDAFQFvFRFSDADKDKDAnpFUEwEwFVDKDKDKDKDKDAaNaNaNDtDwFWFXFXFXFYDwDuaNaNaNaNaNaN -aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDwDwDwDwDwDwDwDwGaDKDKGbDwDwDwDwDwDwDwDwGcDwDADuaNDtDwFWFXFXFXFXFXFYDADuaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAGaGdGeGfGgGhGiGjGbDAGaDKDKDKDKDKDKGbDwDwDwDwDwGaDKGbDwDwGkDwFWFXFXFXGlFXFXFXFYDAaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGmlhDKDKlvDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXFXGrGsGtFXFXFXGuaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNDKlwDKDKDKDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKDKGqFXFXFXFXFXGxGyGrGrGxFXFXGzaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGAGvDKDKlJDKDKDKDKDKGoDKDKGpGpGpGpDKDKDKDKDKDKDKDKDKFkDwDwGkDwGCFXFXGxGxGxFXFXGDDAaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAEIGEGFGGGHGIGJGKFkDAEIDKDKDKDKDKDKFkDwDwEIDKFkDwDwDwDAEnaNEMDwGCFXFXFXFXFXGDDAEnaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwDwDwDwDwDwDwDwDwEIDKDKFkDwDwDwDwDwGLDwDwDwDADAaNaNaNEMDwGCFXFXFXGDDwEnaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwEtGvGvGvGvGvGvGvGvGvGvGvGvEuDAEnaNDvDwEvEwExEyEwEzDwjIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEBGvECGvGvGvGvGvGvGvGvGvGvGvGvGvGvDAaNaNaNEDEEEFEwEwEwEGEDaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWnnbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDADwDwDwDwDwDMEHDMDwDwDwDwDwEIGvGvDAaNaNaNEJEKEwEwEwEwELEJaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEnaNEMDAENEOEPGvGvEQERESETEuDAGvGvDAiEaNDtDAEUEwEVEWEwEXDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWjLbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYGvGvGvGvGvGvGvGvGvGvEYGvGvDADwEZDwDwDwFaDwDwFaDwDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFbFcFdGvGvGvFeFeFeGvEHGvGvDAFfEwEwdfDAGvDAFhFiFjDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYGvGvGvGvkhFkDwDwDwDwDAGvGvDAEwEwFlFmDAGvDAFnFoFpDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFqFrFsGvFtDAFuFvFwFxDAGvGvDAFyEwEwFzDAGvDAFAFBFCDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEYlfGvGvGvFDDAFEFvFvFvFFGvGvDAFGEwEwFHDAGvGvGvGvGvEfaNaNaNaNDtDwFIFJFKDwDuaNaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAFMFNFOGvFPDAFQFvFRFSDAGvGvDAnpFUEwEwFVGvGvGvGvGvDAaNaNaNDtDwFWFXFXFXFYDwDuaNaNaNaNaNaN +aNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDwDwDwDwDwDwDwDwGaGvGvGbDwDwDwDwDwDwDwDwGcDwDADuaNDtDwFWFXFXFXFXFXFYDADuaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWbWaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAGaGdGeGfGgGhGiGjGbDAGaGvGvGvGvGvGvGbDwDwDwDwDwGaGvGbDwDwGkDwFWFXFXFXGlFXFXFXFYDAaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGmlhGvGvlvGvGvGvGvGvGoGvGvGpGpGpGpGvGvGvGvGvGvGvGvGvGvGqFXFXFXFXFXFXGrGsGtFXFXFXGuaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNGvlwGvGvGvGvGvGvGvGvGoGvGvGpGpGpGpGvGvGvGvGvGvGvGvGvGvGqFXFXFXFXFXGxGyGrGrGxFXFXGzaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGAGvGvGvlJGvGvGvGvGvGoGvGvGpGpGpGpGvGvGvGvGvGvGvGvGvFkDwDwGkDwGCFXFXGxGxGxFXFXGDDAaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAEIGEGFGGGHGIGJGKFkDAEIGvGvGvGvGvGvFkDwDwEIGvFkDwDwDwDAEnaNEMDwGCFXFXFXFXFXGDDAEnaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwDwDwDwDwDwDwDwDwEIGvGvFkDwDwDwDwDwGLDwDwDwDADAaNaNaNEMDwGCFXFXFXGDDwEnaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDvDAGMGMDAaNDAFvGNFvFvFvGNFvDADAaNaNaNaNEMDwFIFJFKDwEnaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwGaDKDKDAaNDAGOFvFvGPFvFvGQDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKDKDKDKDAaNDAGRGPFvFvFvGPGSDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfDKDKDKDKDKDKDKDAaNDAGTFvFvGPFvFvGUDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDuaNEMDxDyDyDzEIDKDKDAaNDAGVFvFvFvFvFvGWDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtaNaNDtDAGXGYGZDuaNaNaNaNaNDIDKDKDAaNEMDwHaHbHcHbHdDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWjVjYjXkajZaNjUjWktkvkukajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDAHeHfDADwDwDwDwDuaNEfDKDKDAaNaNEMDwHgHhHiDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHjHjHjHkHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwkykxkxkxkAkzaNkwkDkxkxkxkAkzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAHlHmHnDAHoFvFvHpDAHqHrHsHpDwGaDKDKDAaNaNaNHtHuHvHwHtaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHxHyHyHyHyHzHjHjHjHjHjHjHjHjHkHjHjHjHjHjHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGkFkIkHkNkMaNkEkGkOkIkPkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNHAFvFvFvHBFvFvFvFvHCFvFvFvFvHCDKDKDKDAaNaNEMDwDwHDDwDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHxHyHyHyHyHzHjHEHFHGHFHHHIHJHJHJHIHHHJHHHJHKHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAHLdacZDAGVFvFvGWDAHOHPHQGWDwEIDKDKDAaNaNaNEMaNaNaNEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHRHyHyHyHyHSHjHJHTHTHTHTHTHJHJHJHTHTHTHTHTHUHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVlkljlmllaNkUlikVlkljlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwGZHVHWDADwDwDwDwEnaNDIDKDKDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHRHXHYHYHyHyHZHJHJHJIaHJHJHJHJHJHJHJIaHJHJHJHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMaNaNEMDAGXIbDAEnaNaNaNaNaNEfDKDKDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNHjHjHjHjHjHjHjHjHJHTHTHTHTHTHJHJHJHTHTHTHTHTHJHjHjHjHjHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwEnaNDtDxDyDyDzGaDKDKDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNHjdHdHdHdHdHHjIdIeIeIeIeIeIeIeIeIeIeIeIeIeIfHjdIdIdIdIdIHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKDKDKDKDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNHjHjHjIhIhIhIhIhjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaIhIhIhIhIhHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWlLlNlMkajZaNjUjWlOlQlPkajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfDKDKDKDKDKDKFkDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwGaGvGvDAaNDAGOFvFvGPFvFvGQDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGvGvGvGvGvGvGvDAaNDAGRGPFvFvFvGPGSDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGvGvGvGvGvGvGvDAaNDAGTFvFvGPFvFvGUDADAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDuaNEMDxDyDyDzEIGvGvDAaNDAGVFvFvFvFvFvGWDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtaNaNDtDAGXGYGZDuaNaNaNaNaNDIGvGvDAaNEMDwHaHbHcHbHdDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWjVjYjXkajZaNjUjWktkvkukajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDwDwDwDwDAHeHfDADwDwDwDwDuaNEfGvGvDAaNaNEMDwHgHhHiDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHjHjHjHkHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwkykxkxkxkAkzaNkwkDkxkxkxkAkzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDtDAHlHmHnDAHoFvFvHpDAHqHrHsHpDwGaGvGvDAaNaNaNHtHuHvHwHtaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHxHyHyHyHyHzHjHjHjHjHjHjHjHjHkHjHjHjHjHjHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGkFkIkHkNkMaNkEkGkOkIkPkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNHAFvFvFvHBFvFvFvFvHCFvFvFvFvHCGvGvGvDAaNaNEMDwDwHDDwDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHxHyHyHyHyHzHjHEHFHGHFHHHIHJHJHJHIHHHJHHHJHKHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDAHLdacZDAGVFvFvGWDAHOHPHQGWDwEIGvGvDAaNaNaNEMaNaNaNEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHRHyHyHyHyHSHjHJHTHTHTHTHTHJHJHJHTHTHTHTHTHUHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVlkljlmllaNkUlikVlkljlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDwDwGZHVHWDADwDwDwDwEnaNDIGvGvDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHRHXHYHYHyHyHZHJHJHJIaHJHJHJHJHJHJHJIaHJHJHJHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMaNaNEMDAGXIbDAEnaNaNaNaNaNEfGvGvDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNHjHjHjHjHjHjHjHjHJHTHTHTHTHTHJHJHJHTHTHTHTHTHJHjHjHjHjHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwEnaNDtDxDyDyDzGaGvGvDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNHjdHdHdHdHdHHjIdIeIeIeIeIeIeIeIeIeIeIeIeIeIfHjdIdIdIdIdIHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjQjPjSjRjTaNaNaNjQjPjSjRjTaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGvGvGvGvGvGvGvDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNHjHjHjIhIhIhIhIhjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaIhIhIhIhIhHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNjUjWlLlNlMkajZaNjUjWlOlQlPkajZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfGvGvGvGvGvGvFkDAEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNHjIiIjIkIkIkIkIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIoIoIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkwlRkxkxkxkAkzaNkwlSkxkxkxkAkzaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDwDMIqDMDwDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGlTkIlUkNkMaNkEkGlVkIlYkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAItDKDKDKIuDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNHjIiIjIkIkIvIkIkIlImjcjcjcjcjcIwIxIwjcjcjcjcjcInIlIoIoIyIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIDKDKDKDKlKDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcIwIzIwjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVlkljlmllaNkUlikVlkljlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNIADKDKDKIBDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNHjIiIjIkIkIkIkIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIoIoIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfICDKDKDKIDEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkEkGlTkIlUkNkMaNkEkGlVkIlYkNkMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDAItGvGvGvIuDAaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNHjIiIjIkIkIvIkIkIlImjcjcjcjcjcIwIxIwjcjcjcjcjcInIlIoIoIyIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkQkRkxkxkxkAkSaNkQkRkxkxkxkAkSaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDIGvGvGvGvlKDIaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNHjIiIjIkIrIkIrIkIlImjcjcjcjcjcIwIzIwjcjcjcjcjcInIlIoIsIoIsIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNkUlikVlkljlmllaNkUlikVlkljlmllaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNDNIAGvGvGvIBDNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNHjIiIjIkIkIkIkIkIlImjcjcjcjcjcjcjcjcjcjcjcjcjcInIlIoIoIoIoIoIjIpHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNlylnlAlzlFaNaNaNlylnlAlzlFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEfICGvGvGvIDEfaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNHjHjHjIEIEIEIEIEjajbjcjcjcjcjcjcjcjcjcjcjcjcjcjbjaIEIEIEIEIEHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFZFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwIFIGIHmsIJDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNHjIKIKIKIKIKHjIdIeIeIeIeIeIeIeIeIeIeIeIeIeIfHjILILILILILHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLFLaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMDwDxDyDzDwEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNHjHjHjHjHjHjHjIMINININININIOIPIQINININININIMHjHjHjHjHjHjHjaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNEMaNaNaNEnaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index e18384a9fff..b38c9a98a70 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -3031,7 +3031,7 @@ if(!newname) return G.name = newname - var/description = input("Enter centcom message contents:") as message|null + var/description = input("Enter [command_name()] message contents:") as message|null if(!description) return G.report_message = description diff --git a/code/modules/awaymissions/bluespaceartillery.dm b/code/modules/awaymissions/bluespaceartillery.dm deleted file mode 100644 index 1da3d3bfc55..00000000000 --- a/code/modules/awaymissions/bluespaceartillery.dm +++ /dev/null @@ -1,79 +0,0 @@ -/obj/machinery/computer/artillerycontrol - name = "bluespace artillery control" - icon_screen = "accelerator" - icon_keyboard = "accelerator_key" - icon_state = "computer-wires" - req_access = list(access_cent_commander) - var/last_fire = 0 - var/reload_cooldown = 180 // 3 minute cooldown - var/area/targetarea - - light_color = LIGHT_COLOR_LIGHTBLUE - -/obj/machinery/computer/artillerycontrol/attack_ai(user as mob) - to_chat(user, "Access denied.") - return - -/obj/machinery/computer/artillerycontrol/attack_hand(user as mob) - ui_interact(user) - -/obj/machinery/computer/artillerycontrol/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "bluespace_artillery.tmpl", "Bluespace Control", 400, 260) - ui.open() - ui.set_auto_update(1) - -/obj/machinery/computer/artillerycontrol/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) - var/data[0] - - var/time_to_wait = round(reload_cooldown - ((world.time / 10) - last_fire), 1) - var/mins = round(time_to_wait / 60) - var/seconds = time_to_wait - (60*mins) - data["reloadtime_mins"] = mins - data["reloadtime_secs"] = (seconds < 10) ? "0[seconds]" : seconds - if(targetarea) - var/areaname = sanitize(targetarea.name) - data["target"] = "Locked on to [areaname]" - else - data["target"] = "No Lock" - - return data - -/obj/machinery/computer/artillerycontrol/Topic(href, href_list) - if(..()) - return 1 - - if(href_list["area"]) - var/A - A = input("Select the target area.", "Select Area", A) in ghostteleportlocs|null - var/area/thearea = ghostteleportlocs[A] - if(..() || !istype(thearea)) - return - - targetarea = thearea - - if(href_list["fire"]) - var/delta = (world.time / 10) - last_fire - if(reload_cooldown > delta) - return 1 - - event_announcement.Announce("Bluespace artillery fire detected. Brace for impact.") - message_admins("[key_name_admin(usr)] has launched an artillery strike.", 1) - var/list/L = list() - for(var/turf/T in get_area_turfs(targetarea.type)) - L += T - var/loc = pick(L) - explosion(loc,2,5,11) - last_fire = world.time / 10 - - nanomanager.update_uis(src) - -/obj/structure/artilleryplaceholder - name = "artillery" - icon = 'icons/obj/machines/artillery.dmi' - anchored = 1 - density = 1 - -/obj/structure/artilleryplaceholder/decorative - density = 0 diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index bad85285f33..199398e9a80 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -87,10 +87,7 @@ emp_act if(bp && istype(bp ,/obj/item/clothing)) var/obj/item/clothing/C = bp if(C.body_parts_covered & def_zone.body_part) - protection += C.armor[type] - - if(species) - protection += species.armor + protection += C.armor[type] return protection diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 8448c786302..b2e609c92f2 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -171,7 +171,7 @@ if(gene.is_active(src)) speech_problem_flag = 1 gene.OnMobLife(src) - if(gene_stability < GENETIC_DAMAGE_STAGE_1) + if(!ignore_gene_stability && gene_stability < GENETIC_DAMAGE_STAGE_1) var/instability = DEFAULT_GENE_STABILITY - gene_stability if(prob(instability * 0.1)) adjustFireLoss(min(5, instability * 0.67)) diff --git a/code/modules/mob/living/carbon/human/species/species.dm b/code/modules/mob/living/carbon/human/species/species.dm index f2dd851f36c..e2238057533 100644 --- a/code/modules/mob/living/carbon/human/species/species.dm +++ b/code/modules/mob/living/carbon/human/species/species.dm @@ -75,7 +75,6 @@ var/clone_mod = 1 // Clone damage reduction/amplification var/brain_mod = 1 // Brain damage damage reduction/amplification var/stun_mod = 1 // If a species is more/less impacated by stuns/weakens/paralysis - var/armor = 0 // overall defense for the race... or less defense, if it's negative. var/total_health = 100 var/punchdamagelow = 0 //lowest possible punch damage diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 0ec5f16c787..0b1c1c6167f 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -52,3 +52,4 @@ var/list/surgeries = list() //a list of surgery datums. generally empty, they're added when the player wants them. var/gene_stability = DEFAULT_GENE_STABILITY + var/ignore_gene_stability = 0 diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index e890783195c..7546338ea5b 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -9,19 +9,19 @@ return {"Our military presence is inadequate in your sector. We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. - Base parts should be availible for shipping by your cargo shuttle. + Base parts should be available for shipping by your cargo shuttle. -Nanotrasen Naval Command"} /datum/station_goal/bluespace_cannon/on_report() //Unlock BSA parts - var/datum/supply_packs/misc/bsa/P = shuttle_master.supply_packs[/datum/supply_packs/misc/bsa] + var/datum/supply_packs/misc/bsa/P = shuttle_master.supply_packs["[/datum/supply_packs/misc/bsa]"] P.special_enabled = TRUE /datum/station_goal/bluespace_cannon/check_completion() if(..()) return TRUE var/obj/machinery/bsa/full/B = locate() - if(B && !B.stat) + if(B && !B.stat && B.z == STATION_LEVEL) return TRUE return FALSE @@ -120,12 +120,11 @@ else if(front.x < x && back.x > x) return WEST - /obj/machinery/bsa/full name = "Bluespace Artillery" desc = "Long range bluespace artillery." icon = 'icons/obj/lavaland/cannon.dmi' - icon_state = "orbital_cannon1" + icon_state = "cannon_east" var/static/image/top_layer = null var/ex_power = 3 var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it @@ -134,6 +133,9 @@ pixel_x = -192 bound_width = 352 bound_x = -192 + +/obj/machinery/bsa/full/admin + power_used_per_shot = 0 /obj/machinery/bsa/full/proc/get_front_turf() switch(dir) @@ -242,22 +244,19 @@ var/target use_power = 0 circuit = /obj/item/weapon/circuitboard/computer/bsa_control - icon = 'icons/obj/machines/particle_accelerator.dmi' - icon_state = "control_boxp" + icon_screen = "accelerator" + icon_keyboard = "accelerator_key" + icon_state = "computer-wires" var/area_aim = FALSE //should also show areas for targeting +/obj/machinery/computer/bsa_control/admin + area_aim = TRUE + /obj/machinery/computer/bsa_control/attack_hand(mob/user) if(..()) return 1 ui_interact(user) -/obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) - ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) - if(!ui) - ui = new(user, src, ui_key, "dna_vault.tmpl", name, 350, 400) - ui.open() - - /obj/machinery/computer/bsa_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) @@ -280,10 +279,10 @@ if(href_list["build"]) cannon = deploy() . = TRUE - if(href_list["fire"]) + else if(href_list["fire"]) fire(usr) . = TRUE - if(href_list["recalibrate"]) + else if(href_list["recalibrate"]) calibrate(usr) . = TRUE update_icon() @@ -295,11 +294,10 @@ var/list/options = gps_locators if(area_aim) - options += teleportlocs + options += ghostteleportlocs var/V = input(user,"Select target", "Select target",null) in options|null target = options[V] - /obj/machinery/computer/bsa_control/proc/get_target_name() if(istype(target,/area)) var/area/A = target diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 482c1c5069d..a9fc977b02f 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -3,11 +3,11 @@ // DNA vault requires x animals ,y plants, z human dna // DNA vaults require high tier stock parts and cold // After completion each crewmember can receive single upgrade chosen out of 2 for the mob. -#define VAULT_TOXIN "Toxin Adaptation" -#define VAULT_NOBREATH "Lung Enhancement" -#define VAULT_FIREPROOF "Thermal Regulation" -#define VAULT_STUNTIME "Neural Repathing" -#define VAULT_ARMOUR "Bone Reinforcement" +#define VAULT_SPACEIMMUNE "Space Immunity" +#define VAULT_XRAY "X-Ray Vision" +#define VAULT_TELEKINESIS "Telekinesis" +#define VAULT_PSYCHIC "Psychic Powers" +#define VAULT_SPEED "Speed" /datum/station_goal/dna_vault name = "DNA Vault" @@ -41,21 +41,20 @@ Base vault parts should be availible for shipping by your cargo shuttle."} /datum/station_goal/dna_vault/on_report() - var/datum/supply_packs/P = shuttle_master.supply_packs[/datum/supply_packs/misc/dna_vault] + var/datum/supply_packs/P = shuttle_master.supply_packs["[/datum/supply_packs/misc/dna_vault]"] P.special_enabled = TRUE - P = shuttle_master.supply_packs[/datum/supply_packs/misc/dna_probes] + P = shuttle_master.supply_packs["[/datum/supply_packs/misc/dna_probes]"] P.special_enabled = TRUE /datum/station_goal/dna_vault/check_completion() if(..()) return TRUE for(var/obj/machinery/dna_vault/V in machines) - if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count) + if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count && V.z == STATION_LEVEL) return TRUE return FALSE - /obj/item/device/dna_probe name = "DNA Sampler" desc = "Can be used to take chemical and genetic samples of pretty much anything." @@ -93,7 +92,7 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ to_chat(user, "Plant data added to local storage.") //animals - if(isanimal(target) || is_type_in_typecache(target,non_simple_animals)) + if(isanimal(target) || is_type_in_typecache(target, non_simple_animals)) if(isanimal(target)) var/mob/living/simple_animal/A = target if(!A.healable)//simple approximation of being animal not a robot or similar @@ -190,7 +189,7 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ if(user in power_lottery) return var/list/L = list() - var/list/possible_powers = list(VAULT_TOXIN,VAULT_NOBREATH,VAULT_FIREPROOF,VAULT_STUNTIME,VAULT_ARMOUR) + var/list/possible_powers = list(VAULT_SPACEIMMUNE,VAULT_XRAY,VAULT_TELEKINESIS,VAULT_PSYCHIC,VAULT_SPEED) L += pick_n_take(possible_powers) L += pick_n_take(possible_powers) power_lottery[user] = L @@ -248,29 +247,35 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ else return ..() -/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H,upgrade_type) +/obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H, upgrade_type) if(!(upgrade_type in power_lottery[H])) return - var/datum/species/S = H.dna.species + to_chat(H, "[src] stabilizes your genes, granting you the ability to have multiple powers.") + H.ignore_gene_stability = 1 switch(upgrade_type) - if(VAULT_TOXIN) - to_chat(H, "You feel resistant to airborne toxins.") - S.tox_mod = 0 - S.virus_immune = 1 - if(VAULT_NOBREATH) - to_chat(H, "Your lungs feel great.") - S.flags |= NO_BREATHE - if(VAULT_FIREPROOF) - to_chat(H, "Your feel fireproof.") - S.burn_mod = 0.5 - S.heat_level_1 = 999999999 - S.heat_level_2 = 999999999 - S.heat_level_3 = 999999999 - S.heat_level_3_breathe = 999999999 - if(VAULT_STUNTIME) - to_chat(H, "Nothing can keep you down for long.") - S.stun_mod = 0.5 - if(VAULT_ARMOUR) - to_chat(H, "Your feel tough.") - S.armor = 30 - power_lottery[H] = list() \ No newline at end of file + if(VAULT_SPACEIMMUNE) + to_chat(H, "You suddenly don't feel the need to breathe anymore. Your body also feels very warm.") + grant_power(H, NOBREATHBLOCK, NO_BREATH) + grant_power(H, COLDBLOCK, RESIST_COLD) + if(VAULT_XRAY) + to_chat(H, "You can suddenly see through walls.") + grant_power(H, XRAYBLOCK, XRAY) + if(VAULT_TELEKINESIS) + to_chat(H, "You gain the ability to control objects from a distance.") + grant_power(H, TELEBLOCK, TK) + if(VAULT_PSYCHIC) + to_chat(H, "Your mind expands, giving you psychic powers.") + grant_power(H, REMOTETALKBLOCK, REMOTE_TALK) + grant_power(H, REMOTEVIEWBLOCK, REMOTE_VIEW) + grant_power(H, EMPATHBLOCK, EMPATH) + grant_power(H, PSYRESISTBLOCK, PSY_RESIST) + if(VAULT_SPEED) + to_chat(H, "You feel very fast and agile.") + grant_power(H, JUMPBLOCK, JUMPY) + grant_power(H, INCREASERUNBLOCK, RUN) + power_lottery[H] = list() + +/obj/machinery/dna_vault/proc/grant_power(mob/living/carbon/human/H, block, power) + H.dna.SetSEState(block, 1, 1) + H.mutations |= power + genemutcheck(H, block, null, MUTCHK_FORCED) \ No newline at end of file diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 5348f5f9a69..9b5478285ed 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -12,13 +12,12 @@ You can order the satellites and control systems through cargo shuttle. "} - /datum/station_goal/station_shield/on_report() //Unlock - var/datum/supply_packs/P = shuttle_master.supply_packs[/datum/supply_packs/misc/shield_sat] + var/datum/supply_packs/P = shuttle_master.supply_packs["[/datum/supply_packs/misc/shield_sat]"] P.special_enabled = TRUE - P = shuttle_master.supply_packs[/datum/supply_packs/misc/shield_sat_control] + P = shuttle_master.supply_packs["[/datum/supply_packs/misc/shield_sat_control]"] P.special_enabled = TRUE /datum/station_goal/station_shield/check_completion() @@ -33,7 +32,7 @@ for(var/obj/machinery/satellite/meteor_shield/A in machines) if(!A.active || (A.z != STATION_LEVEL)) continue - coverage |= view(A.kill_range,A) + coverage |= view(A.kill_range, A) return coverage.len /obj/item/weapon/circuitboard/machine/computer/sat_control @@ -45,6 +44,8 @@ name = "Satellite control" desc = "Used to control the satellite network." circuit = /obj/item/weapon/circuitboard/machine/computer/sat_control + icon_screen = "accelerator" + icon_keyboard = "accelerator_key" var/notice /obj/machinery/computer/sat_control/attack_hand(mob/user) @@ -156,7 +157,7 @@ if(get_dist(M,src) > kill_range) continue if(!emagged && space_los(M)) - Beam(get_turf(M),icon_state="sat_beam",time=5,maxdistance=kill_range) + Beam(get_turf(M), icon_state="sat_beam", time=5, maxdistance=kill_range) qdel(M) /obj/machinery/satellite/meteor_shield/toggle(user) diff --git a/icons/obj/machines/artillery.dmi b/icons/obj/machines/artillery.dmi deleted file mode 100644 index 887af9fdc077dbe5482f63268d86520c63cd6c66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14117 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 diff --git a/nano/templates/bluespace_artillery.tmpl b/nano/templates/bluespace_artillery.tmpl deleted file mode 100644 index 344a6d1fd48..00000000000 --- a/nano/templates/bluespace_artillery.tmpl +++ /dev/null @@ -1,26 +0,0 @@ - -

Bluespace Artillery Control

-
-
Target Lock
-
{{:data.target}}
-
-
-
Fire Cooldown
-
- {{if data.reloadtime_mins > 0 || data.reloadtime_mins == 0 && data.reloadtime_secs > 0}} - {{:data.reloadtime_mins}}:{{:data.reloadtime_secs}} - {{else}} - Ready - {{/if}} -
-
-
- {{:helper.link('Select Target', 'exclamation-triangle', { 'area' : 1 })}} - {{:helper.link('Fire', 'exclamation-triangle', { 'fire' : 1 }, data.reloadtime_mins > 0 || data.reloadtime_mins == 0 && data.reloadtime_secs > 0 ? 'disabled' : '')}} -
-
-Deployment of weapon authorized by Nanotrasen Naval Command. Remember, friendly fire is grounds for termination of your contract and life. - diff --git a/paradise.dme b/paradise.dme index d7bbae0330b..961f9bead81 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1089,7 +1089,6 @@ #include "code\modules\atmos_automation\implementation\scrubbers.dm" #include "code\modules\atmos_automation\implementation\sensors.dm" #include "code\modules\atmos_automation\implementation\vent_pump.dm" -#include "code\modules\awaymissions\bluespaceartillery.dm" #include "code\modules\awaymissions\corpse.dm" #include "code\modules\awaymissions\exile.dm" #include "code\modules\awaymissions\gateway.dm" From 62afefaf2cd4c8b23b81145bdddb17ae7a7e8ca6 Mon Sep 17 00:00:00 2001 From: Markolie Date: Tue, 24 Jan 2017 22:07:12 +0100 Subject: [PATCH 3/9] Further station goal fixes, fix communication computer messages --- code/__DEFINES/misc.dm | 2 +- code/defines/procs/orphaned.dm | 2 +- code/game/gamemodes/game_mode.dm | 6 ++- .../game/machinery/computer/communications.dm | 41 ++++++++++--------- code/modules/admin/verbs/randomverbs.dm | 6 +-- code/modules/station_goals/bsa.dm | 17 ++++---- code/modules/station_goals/dna_vault.dm | 30 +++++++------- code/modules/station_goals/shield.dm | 11 +++-- nano/templates/comm_console.tmpl | 10 ++--- 9 files changed, 66 insertions(+), 59 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 699df755703..e160f5327b6 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -300,4 +300,4 @@ #define OOC_COOLDOWN 5 // The number of station goals generated each round. -#define STATION_GOAL_BUDGET 1 \ No newline at end of file +#define STATION_GOAL_BUDGET 3 \ No newline at end of file diff --git a/code/defines/procs/orphaned.dm b/code/defines/procs/orphaned.dm index 4a7055b24e5..5ceafcf0031 100644 --- a/code/defines/procs/orphaned.dm +++ b/code/defines/procs/orphaned.dm @@ -1,6 +1,6 @@ /proc/print_command_report(text = "", title = "Central Command Update") for(var/obj/machinery/computer/communications/C in machines) - if(!(C.stat & (BROKEN|NOPOWER)) && C.z == STATION_LEVEL) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_contact(C.z)) var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc) P.name = "paper- '[title]'" P.info = text diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 5d4d7d7b93f..2a9c9851478 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -496,12 +496,14 @@ proc/get_nt_opposed() send_station_goals_message() /datum/game_mode/proc/send_station_goals_message() - var/message_text = "[command_name()] Orders
" - message_text += "Special Orders for [station_name()]:" + var/message_text = "
" + message_text += "

[command_name()] Orders


" + message_text += "Special Orders for [station_name()]:

" for(var/datum/station_goal/G in station_goals) G.on_report() message_text += G.get_report() + message_text += "
" print_command_report(message_text, "[command_name()] Orders") diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 8b838ceade5..ed5e3d2fb00 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -172,24 +172,26 @@ setMenuState(usr,COMM_SCREEN_MAIN) if("messagelist") - src.currmsg = 0 + currmsg = 0 if(href_list["msgid"]) setCurrentMessage(usr, text2num(href_list["msgid"])) setMenuState(usr,COMM_SCREEN_MESSAGES) if("delmessage") if(href_list["msgid"]) - src.currmsg = text2num(href_list["msgid"]) + currmsg = text2num(href_list["msgid"]) var/response = alert("Are you sure you wish to delete this message?", "Confirm", "Yes", "No") if(response == "Yes") - if(src.currmsg) + if(currmsg) var/id = getCurrentMessage() - var/title = src.messagetitle[id] - var/text = src.messagetext[id] - src.messagetitle.Remove(title) - src.messagetext.Remove(text) - if(currmsg==id) currmsg=0 - if(aicurrmsg==id) aicurrmsg=0 + var/title = messagetitle[id] + var/text = messagetext[id] + messagetitle.Remove(title) + messagetext.Remove(text) + if(currmsg == id) + currmsg = 0 + if(aicurrmsg == id) + aicurrmsg = 0 setMenuState(usr,COMM_SCREEN_MESSAGES) if("status") @@ -336,7 +338,7 @@ /obj/machinery/computer/communications/ui_data(mob/user, ui_key = "main", datum/topic_state/state = default_state) var/data[0] - data["is_ai"] = isAI(user)||isrobot(user) + data["is_ai"] = isAI(user) || isrobot(user) data["menu_state"] = data["is_ai"] ? ai_menu_state : menu_state data["emagged"] = emagged data["authenticated"] = is_authenticated(user, 0) @@ -368,16 +370,15 @@ list("id" = SEC_LEVEL_BLUE, "name" = "Blue"), //SEC_LEVEL_RED = list("name"="Red"), ) - - var/msg_data[0] - for(var/i = 1; i <= src.messagetext.len; i++) - var/cur_msg[0] - cur_msg["title"] = messagetitle[i] - cur_msg["body"] = messagetext[i] - msg_data += list(cur_msg) + + var/list/msg_data = list() + for(var/i = 1; i <= messagetext.len; i++) + msg_data.Add(list(list("title" = messagetitle[i], "body" = messagetext[i], "id" = i))) data["messages"] = msg_data - data["current_message"] = data["is_ai"] ? aicurrmsg : currmsg + if((data["is_ai"] && aicurrmsg) || (!data["is_ai"] && currmsg)) + data["current_message"] = data["is_ai"] ? messagetext[aicurrmsg] : messagetext[currmsg] + data["current_message_title"] = data["is_ai"] ? messagetitle[aicurrmsg] : messagetitle[currmsg] data["lastCallLoc"] = shuttle_master.emergencyLastCallLoc ? format_text(shuttle_master.emergencyLastCallLoc.name) : null @@ -403,9 +404,9 @@ /obj/machinery/computer/communications/proc/setCurrentMessage(var/mob/user,var/value) if(isAI(user) || isrobot(user)) - aicurrmsg=value + aicurrmsg = value else - currmsg=value + currmsg = value /obj/machinery/computer/communications/proc/getCurrentMessage(var/mob/user) if(isAI(user) || isrobot(user)) diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index 263758ee605..6b4660a8a37 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -899,7 +899,7 @@ Traitors and the like can also be revived with the previous role mostly intact. /client/proc/modify_goals() set category = "Event" - set name = "Modify station goals" + set name = "Modify Station Goals" if(!check_rights(R_EVENT)) return @@ -909,6 +909,6 @@ Traitors and the like can also be revived with the previous role mostly intact. /datum/admins/proc/modify_goals() var/dat = "" for(var/datum/station_goal/S in ticker.mode.station_goals) - dat += "[S.name] -
Announce | Remove
" - dat += "
Add New Goal" + dat += "[S.name] - Announce | Remove
" + dat += "
Add New Goal" usr << browse(dat, "window=goals;size=400x400") \ No newline at end of file diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 7546338ea5b..1c886ce71a3 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -6,11 +6,12 @@ name = "Bluespace Artillery" /datum/station_goal/bluespace_cannon/get_report() - return {"Our military presence is inadequate in your sector. - We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. - - Base parts should be available for shipping by your cargo shuttle. - -Nanotrasen Naval Command"} + return {"Bluespace Artillery position construction
+ Our military presence is inadequate in your sector. We need you to construct BSA-[rand(1,99)] Artillery position aboard your station. +

+ Its base parts should be available for shipping by your cargo shuttle. +
+ -Nanotrasen Naval Command"} /datum/station_goal/bluespace_cannon/on_report() //Unlock BSA parts @@ -21,7 +22,7 @@ if(..()) return TRUE var/obj/machinery/bsa/full/B = locate() - if(B && !B.stat && B.z == STATION_LEVEL) + if(B && !B.stat && is_station_contact(B.z)) return TRUE return FALSE @@ -248,9 +249,11 @@ icon_keyboard = "accelerator_key" icon_state = "computer-wires" var/area_aim = FALSE //should also show areas for targeting + var/target_all_areas = FALSE //allows all areas (including admin areas) to be targetted /obj/machinery/computer/bsa_control/admin area_aim = TRUE + target_all_areas = TRUE /obj/machinery/computer/bsa_control/attack_hand(mob/user) if(..()) @@ -294,7 +297,7 @@ var/list/options = gps_locators if(area_aim) - options += ghostteleportlocs + options += target_all_areas ? ghostteleportlocs : teleportlocs var/V = input(user,"Select target", "Select target",null) in options|null target = options[V] diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index a9fc977b02f..38855aece3c 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -24,21 +24,22 @@ /datum/station_goal/dna_vault/proc/non_standard_plants_count() . = 0 - for(var/T in subtypesof(/datum/seed)) //put a cache if it's used anywhere else - var/datum/seed/S = T + for(var/T in plant_controller.seeds) + var/datum/seed/S = plant_controller.seeds[T] if(S.get_trait(TRAIT_RARITY) > 0) .++ /datum/station_goal/dna_vault/get_report() - return {"Our long term prediction systems say there's 99% chance of system-wide cataclysm in near future. - We need you to construct DNA Vault aboard your station. - - DNA Vault needs to contain samples of: - [animal_count] unique animal data - [plant_count] unique non-standard plant data - [human_count] unique sapient humanoid DNA data - - Base vault parts should be availible for shipping by your cargo shuttle."} + return {"DNA Vault construction
+ Our long term prediction systems say there's 99% chance of system-wide cataclysm in near future. As such, we need you to construct a DNA Vault aboard your station. +

+ The DNA Vault needs to contain samples of: +
    +
  • [animal_count] unique animal data.
  • +
  • [plant_count] unique non-standard plant data.
  • +
  • [human_count] unique sapient humanoid DNA data.
  • +
+ The base vault parts should be available for shipping by your cargo shuttle."} /datum/station_goal/dna_vault/on_report() var/datum/supply_packs/P = shuttle_master.supply_packs["[/datum/supply_packs/misc/dna_vault]"] @@ -51,7 +52,7 @@ if(..()) return TRUE for(var/obj/machinery/dna_vault/V in machines) - if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count && V.z == STATION_LEVEL) + if(V.animals.len >= animal_count && V.plants.len >= plant_count && V.dna.len >= human_count && is_station_contact(V.z)) return TRUE return FALSE @@ -250,8 +251,9 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ /obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H, upgrade_type) if(!(upgrade_type in power_lottery[H])) return - to_chat(H, "[src] stabilizes your genes, granting you the ability to have multiple powers.") - H.ignore_gene_stability = 1 + if(!H.ignore_gene_stability) + to_chat(H, "[src] stabilizes your genes, granting you the ability to have multiple powers.") + H.ignore_gene_stability = 1 switch(upgrade_type) if(VAULT_SPACEIMMUNE) to_chat(H, "You suddenly don't feel the need to breathe anymore. Your body also feels very warm.") diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index 9b5478285ed..f39f731e9c4 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -6,11 +6,10 @@ var/coverage_goal = 500 /datum/station_goal/station_shield/get_report() - return {"The station is located in a zone full of space debris. - We have a prototype shielding system you will deploy to reduce collision related accidents. - - You can order the satellites and control systems through cargo shuttle. - "} + return {"Station Shield construction
+ The station is located in a zone full of space debris. We have a prototype shielding system you will deploy to reduce collision related accidents. +

+ You can order the satellites and control systems through cargo shuttle."} /datum/station_goal/station_shield/on_report() //Unlock @@ -30,7 +29,7 @@ /datum/station_goal/proc/get_coverage() var/list/coverage = list() for(var/obj/machinery/satellite/meteor_shield/A in machines) - if(!A.active || (A.z != STATION_LEVEL)) + if(!A.active || is_station_level(A.z)) continue coverage |= view(A.kill_range, A) return coverage.len diff --git a/nano/templates/comm_console.tmpl b/nano/templates/comm_console.tmpl index c4e1799afcf..062c8d844f3 100644 --- a/nano/templates/comm_console.tmpl +++ b/nano/templates/comm_console.tmpl @@ -111,17 +111,17 @@ Used In File(s): /code/game/machinery/computers/communications.dm

Messages

{{if data.current_message}} {{:helper.link('Messages','home',{'operation':'messagelist'})}} -

{{>title}}

+

{{:data.current_message_title}}

- {{>body}} + {{:data.current_message}}
{{else}} {{:helper.link('Back','home',{'operation':'main'})}} {{for data.messages}}
- {{:helper.link('Open','envelope-o',{'operation':'messagelist','msgid':data.id})}} - {{:helper.link('Delete','close',{'operation':'delmessage','msgid':data.id},'red')}} - {{>data.title}} + {{:value.title}}
+ {{:helper.link('Open','envelope-o',{'operation':'messagelist','msgid':value.id})}} + {{:helper.link('Delete','close',{'operation':'delmessage','msgid':value.id})}}
{{/for}} {{/if}} From 14fd8ec3ec9b1ec706b0ca3e6ce84ee6a192af68 Mon Sep 17 00:00:00 2001 From: Markolie Date: Wed, 25 Jan 2017 02:43:58 +0100 Subject: [PATCH 4/9] Final station goal changes --- _maps/map_files/cyberiad/z2.dmm | 10 ++- code/__DEFINES/misc.dm | 2 +- code/datums/beam.dm | 12 +-- code/datums/supplypacks.dm | 2 +- code/game/machinery/computer/atmos_control.dm | 2 +- .../game/machinery/computer/buildandrepair.dm | 7 +- .../game/machinery/computer/communications.dm | 46 ++++++---- code/modules/station_goals/bsa.dm | 82 ++++++++++++++---- code/modules/station_goals/dna_vault.dm | 15 ++-- code/modules/station_goals/shield.dm | 29 ++++--- icons/effects/beam.dmi | Bin 6780 -> 6818 bytes icons/obj/machines/particle_accelerator3.dmi | Bin 0 -> 106297 bytes nano/templates/bsa.tmpl | 51 +++++++++++ nano/templates/dna_vault.tmpl | 49 +++++++++++ nano/templates/sat_control.tmpl | 32 +++++++ sound/machines/bsa_fire.ogg | Bin 0 -> 29594 bytes 16 files changed, 268 insertions(+), 71 deletions(-) create mode 100644 icons/obj/machines/particle_accelerator3.dmi create mode 100644 nano/templates/bsa.tmpl create mode 100644 nano/templates/dna_vault.tmpl create mode 100644 nano/templates/sat_control.tmpl create mode 100644 sound/machines/bsa_fire.ogg diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index e5706c55edc..e9363cdd8e7 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -206,12 +206,14 @@ "dX" = (/obj/structure/filingcabinet/filingcabinet,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) "dY" = (/turf/unsimulated/floor{dir = 1; icon_state = "carpet15-11"},/area/centcom/control) "dZ" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_y = 5},/obj/item/weapon/pen/multi,/turf/unsimulated/floor{dir = 9; icon_state = "carpetside"},/area/centcom/control) -"ea" = (/obj/machinery/computer/bsa_control,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) +"ea" = (/obj/machinery/computer/bsa_control/admin,/turf/unsimulated/floor{dir = 5; icon_state = "carpetside"},/area/centcom/control) "eb" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "carpet15-14"; tag = "icon-carpet (WEST)"},/area/centcom/control) "ec" = (/turf/unsimulated/floor{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/centcom/control) "ed" = (/turf/unsimulated/floor{icon_state = "platingdmg1"},/area/prison/solitary) "ee" = (/turf/unsimulated/floor{icon_state = "floorscorched2"},/area/prison/solitary) -"ef" = (/obj/machinery/bsa/full/admin,/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) +"ef" = (/obj/machinery/bsa/full/admin/east,/turf/unsimulated/floor{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/centcom/control) +"eg" = (/turf/unsimulated/wall/fakeglass{dir = 1; icon_state = "fakewindows"; tag = "icon-fakewindows2 (NORTH)"},/area/centcom/control) +"eh" = (/turf/unsimulated/wall/fakeglass{dir = 7; icon_state = "fakewindows"; tag = "icon-fakewindows2 (NORTH)"},/area/centcom/control) "ej" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "ek" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/unsimulated/wall{tag = "icon-iron12"; icon_state = "iron12"},/area/space) "el" = (/turf/unsimulated/wall{tag = "icon-iron11"; icon_state = "iron11"},/area/space) @@ -1535,8 +1537,8 @@ aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatbtctdtdtesqsqsqsqsqsEsEmnsMsCmnsEsEsEsEsEsQsQsQsQtfsQsQtgsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititjtktitititjtltmtntdtdtdsqsrssstsqtosEmnsMtpmnsEsEsEsEsutqsQsQsQtrsQsQtssqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqswsssssxsEsEsEsEsEsEsEsEsEsEsqsusususususususqsqdWdXsqsqsqsqsqsqsqsqsqsqsqsqsqdVaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititvtktitititvtwtmtntdtdtdsqsqsqsqsqsqsqtxsqsqsqsqsEsEtysqtztztztztztztzsudZdYebeasueceVeVeVeVeVefeVeVeVeUfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN -aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtAsqtBtCtDsqtEtFtFtFtFtGsqsEsEtHsqtztztztztztztzsufbfatLfcsufdfEfEfEfEfEfEfEfEfEfsfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititvtktitititvtwtmtntdtdtdsqsqsqsqsqsqsqtxsqsqsqsqsEsEtysqtztztztztztztzsudZdYebeaegeceVeVeVeVeVefeVeVeVeUfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN +aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtAsqtBtCtDsqtEtFtFtFtFtGsqsEsEtHsqtztztztztztztzsufbfatLfcehfdfEfEfEfEfEfEfEfEfEfsfFaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititItktitititItJtmtntdtdtdsqtKtLtMtNtFtFtFtFtFtOsqsusxsusqsusususususususqsqfLsqsqsqsqsqsqsqsqsqsqsqsqsqsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXtatttutdtdtdsqsqsususqsqsqsususususqtQtRtStTtTtTtTtTtTtTtTtTuEtRtZsqfXaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN aNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNthtitititititititititVtktitititVtWtXtYtdtdtdsqtztztztztztztztztztzsqtQtRtRtRtRtRtRtRtRtRtRtRtRtRtZsqaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaN diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e160f5327b6..1da36cd3bda 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -300,4 +300,4 @@ #define OOC_COOLDOWN 5 // The number of station goals generated each round. -#define STATION_GOAL_BUDGET 3 \ No newline at end of file +#define STATION_GOAL_BUDGET 1 \ No newline at end of file diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 1b48dd37560..4c0ebba46b1 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -15,7 +15,6 @@ var/static_beam = 0 var/beam_type = /obj/effect/ebeam //must be subtype - /datum/beam/New(beam_origin,beam_target,beam_icon='icons/effects/beam.dmi',beam_icon_state="b_beam",time=50,maxdistance=10,btype = /obj/effect/ebeam) endtime = world.time+time origin = beam_origin @@ -30,7 +29,6 @@ icon_state = beam_icon_state beam_type = btype - /datum/beam/proc/Start() Draw() while(!finished && origin && target && world.time < endtime && get_dist(origin,target)\The [user] does something \the [src], causing the screen to flash!",\ "You cause the screen to flash as you gain full control.",\ diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 0c09bc5f2c5..42f89a01f54 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -30,7 +30,12 @@ var/frame_desc = null var/contain_parts = 1 - +/obj/item/weapon/circuitboard/computer + board_type = "computer" + +/obj/item/weapon/circuitboard/machine + board_type = "machine" + /obj/item/weapon/circuitboard/message_monitor name = "Circuit board (Message Monitor)" build_path = /obj/machinery/computer/message_monitor diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index ed5e3d2fb00..3cf2600aa48 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -53,6 +53,24 @@ to_chat(user, "Access denied.") return COMM_AUTHENTICATION_NONE +/obj/machinery/computer/communications/proc/change_security_level(var/new_level) + tmp_alertlevel = new_level + var/old_level = security_level + if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN + if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this + set_security_level(tmp_alertlevel) + if(security_level != old_level) + //Only notify the admins if an actual change happened + log_game("[key_name(usr)] has changed the security level to [get_security_level()].") + message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") + switch(security_level) + if(SEC_LEVEL_GREEN) + feedback_inc("alert_comms_green",1) + if(SEC_LEVEL_BLUE) + feedback_inc("alert_comms_blue",1) + tmp_alertlevel = 0 + /obj/machinery/computer/communications/Topic(href, href_list) if(..(href, href_list)) return 1 @@ -100,35 +118,25 @@ if("newalertlevel") if(isAI(usr) || isrobot(usr)) to_chat(usr, "Firewalls prevent you from changing the alert level.") - nanomanager.update_uis(src) return 1 - tmp_alertlevel = text2num(href_list["level"]) + else if(usr.can_admin_interact()) + change_security_level(text2num(href_list["level"])) + return 1 + else if(!ishuman(usr)) + to_chat(usr, "Security measures prevent you from changing the alert level.") + return 1 + var/mob/living/carbon/human/L = usr var/obj/item/card = L.get_active_hand() - var/obj/item/weapon/card/id/I = (card && card.GetID())||L.wear_id||L.wear_pda + var/obj/item/weapon/card/id/I = (card && card.GetID()) || L.wear_id || L.wear_pda if(istype(I, /obj/item/device/pda)) var/obj/item/device/pda/pda = I I = pda.id if(I && istype(I)) if(access_captain in I.access) - var/old_level = security_level - if(!tmp_alertlevel) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel < SEC_LEVEL_GREEN) tmp_alertlevel = SEC_LEVEL_GREEN - if(tmp_alertlevel > SEC_LEVEL_BLUE) tmp_alertlevel = SEC_LEVEL_BLUE //Cannot engage delta with this - set_security_level(tmp_alertlevel) - if(security_level != old_level) - //Only notify the admins if an actual change happened - log_game("[key_name(usr)] has changed the security level to [get_security_level()].") - message_admins("[key_name_admin(usr)] has changed the security level to [get_security_level()].") - switch(security_level) - if(SEC_LEVEL_GREEN) - feedback_inc("alert_comms_green",1) - if(SEC_LEVEL_BLUE) - feedback_inc("alert_comms_blue",1) - tmp_alertlevel = 0 + change_security_level(text2num(href_list["level"])) else to_chat(usr, "You are not authorized to do this.") - tmp_alertlevel = 0 setMenuState(usr,COMM_SCREEN_MAIN) else to_chat(usr, "You need to swipe your ID.") diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 1c886ce71a3..5ea24bbd864 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -27,7 +27,7 @@ return FALSE /obj/machinery/bsa - icon = 'icons/obj/machines/particle_accelerator.dmi' + icon = 'icons/obj/machines/particle_accelerator3.dmi' density = 1 anchored = 1 @@ -125,18 +125,38 @@ name = "Bluespace Artillery" desc = "Long range bluespace artillery." icon = 'icons/obj/lavaland/cannon.dmi' - icon_state = "cannon_east" + icon_state = "cannon_west" + + var/obj/machinery/computer/bsa_control/controller + var/cannon_direction = WEST var/static/image/top_layer = null var/ex_power = 3 var/power_used_per_shot = 2000000 //enough to kil standard apc - todo : make this use wires instead and scale explosion power with it - var/ready + var/last_fire_time = 0 // The time at which the gun was last fired + var/reload_cooldown = 600 // The gun's cooldown + pixel_y = -32 pixel_x = -192 bound_width = 352 bound_x = -192 +/obj/machinery/bsa/full/Destroy() + if(controller && controller.cannon == src) + controller.cannon = null + controller = null + return ..() + /obj/machinery/bsa/full/admin power_used_per_shot = 0 + reload_cooldown = 100 + +/obj/machinery/bsa/full/east + icon_state = "cannon_east" + cannon_direction = EAST + +/obj/machinery/bsa/full/admin/east + icon_state = "cannon_east" + cannon_direction = EAST /obj/machinery/bsa/full/proc/get_front_turf() switch(dir) @@ -162,8 +182,12 @@ return locate(world.maxx,y,z) return get_turf(src) -/obj/machinery/bsa/full/New(loc,cannon_direction = WEST) +/obj/machinery/bsa/full/New(loc, direction) ..() + + if(direction) + cannon_direction = direction + switch(cannon_direction) if(WEST) dir = WEST @@ -183,21 +207,19 @@ var/turf/point = get_front_turf() for(var/turf/T in getline(get_step(point,dir),get_target_turf())) T.ex_act(1) - point.Beam(get_target_turf(),icon_state="bsa_beam",time=50,maxdistance = world.maxx) //ZZZAP - + for(var/atom/A in T) + A.ex_act(1) + point.Beam(get_target_turf(), icon_state = "bsa_beam", time = 50, maxdistance = world.maxx, beam_type = /obj/effect/ebeam/deadly) //ZZZAP + playsound(src, 'sound/machines/bsa_fire.ogg', 70, 1) + message_admins("[key_name_admin(user)] has launched an artillery strike.") explosion(bullseye,ex_power,ex_power*2,ex_power*4) reload() /obj/machinery/bsa/full/proc/reload() - ready = FALSE use_power(power_used_per_shot) - spawn(600) - ready_cannon() - -/obj/machinery/bsa/full/proc/ready_cannon() - ready = TRUE + last_fire_time = world.time / 10 /obj/structure/filler name = "big machinery part" @@ -245,12 +267,19 @@ var/target use_power = 0 circuit = /obj/item/weapon/circuitboard/computer/bsa_control - icon_screen = "accelerator" - icon_keyboard = "accelerator_key" - icon_state = "computer-wires" + icon = 'icons/obj/machines/particle_accelerator3.dmi' + icon_state = "control_boxp" + layer = 3.1 + var/area_aim = FALSE //should also show areas for targeting var/target_all_areas = FALSE //allows all areas (including admin areas) to be targetted +/obj/machinery/computer/bsa_control/Destroy() + if(cannon && cannon.controller == src) + cannon.controller = null + cannon = null + return ..() + /obj/machinery/computer/bsa_control/admin area_aim = TRUE target_all_areas = TRUE @@ -268,11 +297,24 @@ /obj/machinery/computer/bsa_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state) var/list/data = list() - data["ready"] = cannon ? cannon.ready : FALSE data["connected"] = cannon data["notice"] = notice if(target) data["target"] = get_target_name() + + if(cannon) + var/reload_cooldown = cannon.reload_cooldown + var/last_fire_time = cannon.last_fire_time + var/time_to_wait = max(0, round(reload_cooldown - ((world.time / 10) - last_fire_time))) + var/minutes = max(0, round(time_to_wait / 60)) + var/seconds = max(0, time_to_wait - (60 * minutes)) + + data["reloadtime_mins"] = minutes + data["reloadtime_secs"] = (seconds < 10) ? "0[seconds]" : seconds + data["ready"] = minutes == 0 && seconds == 0 + else + data["ready"] = FALSE + return data /obj/machinery/computer/bsa_control/Topic(href, href_list) @@ -316,15 +358,18 @@ return get_turf(target) /obj/machinery/computer/bsa_control/proc/fire(mob/user) + if(!cannon || !target) + return if(cannon.stat) notice = "Cannon unpowered!" return notice = null cannon.fire(user, get_impact_turf()) -/obj/machinery/computer/bsa_control/proc/deploy(force=FALSE) +/obj/machinery/computer/bsa_control/proc/deploy() var/obj/machinery/bsa/full/prebuilt = locate() in range(7) //In case of adminspawn if(prebuilt) + prebuilt.controller = src return prebuilt var/obj/machinery/bsa/middle/centerpiece = locate() in range(7) @@ -338,7 +383,8 @@ var/datum/effect/system/harmless_smoke_spread/s = new /datum/effect/system/harmless_smoke_spread() s.set_up(4, 0, get_turf(centerpiece)) s.start() - var/obj/machinery/bsa/full/cannon = new(get_turf(centerpiece),cannon_direction=centerpiece.get_cannon_direction()) + var/obj/machinery/bsa/full/cannon = new(get_turf(centerpiece),centerpiece.get_cannon_direction()) + cannon.controller = src qdel(centerpiece.front) qdel(centerpiece.back) qdel(centerpiece) diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 38855aece3c..c920a8b0247 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -7,7 +7,7 @@ #define VAULT_XRAY "X-Ray Vision" #define VAULT_TELEKINESIS "Telekinesis" #define VAULT_PSYCHIC "Psychic Powers" -#define VAULT_SPEED "Speed" +#define VAULT_SPEED "Speediness" /datum/station_goal/dna_vault name = "DNA Vault" @@ -18,7 +18,7 @@ /datum/station_goal/dna_vault/New() ..() animal_count = rand(15,20) //might be too few given ~15 roundstart stationside ones - human_count = rand(round(0.75 * ticker.mode.num_players()) , ticker.mode.num_players()) // 75%+ roundstart population. + human_count = rand(round(0.75 * ticker.mode.num_players_started()), ticker.mode.num_players_started()) // 75%+ roundstart population. var/non_standard_plants = non_standard_plants_count() plant_count = rand(round(0.5 * non_standard_plants),round(0.7 * non_standard_plants)) @@ -97,7 +97,7 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ if(isanimal(target)) var/mob/living/simple_animal/A = target if(!A.healable)//simple approximation of being animal not a robot or similar - to_chat(user, "No compatibile DNA detected") + to_chat(user, "No compatible DNA detected") return if(animals[target.type]) to_chat(user, "Animal data already present in local storage.") @@ -183,7 +183,8 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ /obj/machinery/dna_vault/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "dna_vault.tmpl", name, 350, 400) + roll_powers(user) + ui = new(user, src, ui_key, "dna_vault.tmpl", name, 550, 400) ui.open() /obj/machinery/dna_vault/proc/roll_powers(mob/user) @@ -251,14 +252,16 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ /obj/machinery/dna_vault/proc/upgrade(mob/living/carbon/human/H, upgrade_type) if(!(upgrade_type in power_lottery[H])) return + if(!completed) + return if(!H.ignore_gene_stability) to_chat(H, "[src] stabilizes your genes, granting you the ability to have multiple powers.") H.ignore_gene_stability = 1 switch(upgrade_type) if(VAULT_SPACEIMMUNE) - to_chat(H, "You suddenly don't feel the need to breathe anymore. Your body also feels very warm.") + to_chat(H, "You suddenly don't feel the need to breathe anymore. You also don't feel any cold anymore.") grant_power(H, NOBREATHBLOCK, NO_BREATH) - grant_power(H, COLDBLOCK, RESIST_COLD) + grant_power(H, FIREBLOCK, RESIST_COLD) if(VAULT_XRAY) to_chat(H, "You can suddenly see through walls.") grant_power(H, XRAYBLOCK, XRAY) diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index f39f731e9c4..fae4b3cf4bd 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -29,12 +29,12 @@ /datum/station_goal/proc/get_coverage() var/list/coverage = list() for(var/obj/machinery/satellite/meteor_shield/A in machines) - if(!A.active || is_station_level(A.z)) + if(!A.active || !is_station_level(A.z)) continue coverage |= view(A.kill_range, A) return coverage.len -/obj/item/weapon/circuitboard/machine/computer/sat_control +/obj/item/weapon/circuitboard/computer/sat_control name = "Satellite Network Control (Computer Board)" build_path = /obj/machinery/computer/sat_control origin_tech = "engineering=3" @@ -42,7 +42,7 @@ /obj/machinery/computer/sat_control name = "Satellite control" desc = "Used to control the satellite network." - circuit = /obj/item/weapon/circuitboard/machine/computer/sat_control + circuit = /obj/item/weapon/circuitboard/computer/sat_control icon_screen = "accelerator" icon_keyboard = "accelerator_key" var/notice @@ -55,7 +55,7 @@ /obj/machinery/computer/sat_control/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1) ui = nanomanager.try_update_ui(user, src, ui_key, ui, force_open) if(!ui) - ui = new(user, src, ui_key, "sat_control.tmpl", name, 400, 305) + ui = new(user, src, ui_key, "sat_control.tmpl", name, 475, 400) ui.open() /obj/machinery/computer/sat_control/Topic(href, href_list) @@ -88,8 +88,9 @@ data["meteor_shield"] = 1 data["meteor_shield_coverage"] = G.get_coverage() data["meteor_shield_coverage_max"] = G.coverage_goal + data["meteor_shield_coverage_percentage"] = (G.get_coverage() / G.coverage_goal) * 100 return data - + /obj/machinery/satellite name = "Defunct Satellite" desc = "" @@ -105,6 +106,11 @@ /obj/machinery/satellite/New() ..() id = gid++ + +/obj/machinery/satellite/attack_hand(mob/user) + if(..()) + return 1 + interact(user) /obj/machinery/satellite/interact(mob/user) toggle(user) @@ -113,7 +119,7 @@ if(!active && !isinspace()) if(user) to_chat(user, "You can only active the [src] in space.") - return FALSE + return TRUE if(user) to_chat(user, "You [active ? "deactivate": "activate"] the [src]") active = !active @@ -153,15 +159,15 @@ for(var/obj/effect/meteor/M in meteor_list) if(M.z != z) continue - if(get_dist(M,src) > kill_range) + if(get_dist(M, src) > kill_range) continue if(!emagged && space_los(M)) - Beam(get_turf(M), icon_state="sat_beam", time=5, maxdistance=kill_range) + Beam(get_turf(M), icon_state = "sat_beam", time = 5, maxdistance = kill_range) qdel(M) /obj/machinery/satellite/meteor_shield/toggle(user) - if(!..(user)) - return FALSE + if(..(user)) + return TRUE if(emagged) if(active) change_meteor_chance(2) @@ -179,8 +185,9 @@ if(active && emagged) change_meteor_chance(0.5) -/obj/machinery/satellite/meteor_shield/emag_act() +/obj/machinery/satellite/meteor_shield/emag_act(mob/user) if(!emagged) + to_chat(user, "You override the shield's circuits, causing it to attract meteors instead of destroying them.") emagged = 1 if(active) change_meteor_chance(2) diff --git a/icons/effects/beam.dmi b/icons/effects/beam.dmi index c64e233644953abf30d1e1338ba9c04557700a55..b7bc119cfbeb8dce793634ad8af591ce7b0bc02c 100644 GIT binary patch literal 6818 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 PjR5=K9Cw%4cwYK1lt1DK literal 6780 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 z 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⪼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
B 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 literal 0 HcmV?d00001 diff --git a/nano/templates/bsa.tmpl b/nano/templates/bsa.tmpl new file mode 100644 index 00000000000..a0e8a60deb5 --- /dev/null +++ b/nano/templates/bsa.tmpl @@ -0,0 +1,51 @@ + +{{if data.notice}} +
{{:data.notice}}
+{{/if}} +

Bluespace Artillery Control

+
+
+ Target: +
+
+ {{:helper.link(data.target ? data.target : "None", 'crosshairs', {'recalibrate' : 1})}} +
+
+
+
+ Reload Cooldown: +
+
+ {{if data.ready}} + Ready + {{else data.reloadtime_mins || data.reloadtime_secs}} + {{:data.reloadtime_mins}}:{{:data.reloadtime_secs}} + {{else}} + No cannon connected! + {{/if}} +
+
+
+
+ Controls: +
+
+ {{:helper.link('FIRE!', 'warning', {'fire' : 1}, data.ready && data.target ? null : 'disabled')}} +
+
+{{if !data.connected}} +
+
+ Maintenance: +
+
+ {{:helper.link('Complete Deployment', 'wrench', {'build' : 1})}} +
+
+{{else}} +
+Deployment of weapon authorized by Nanotrasen Naval Command. Remember, friendly fire is grounds for termination of your contract and life. +{{/if}} \ No newline at end of file diff --git a/nano/templates/dna_vault.tmpl b/nano/templates/dna_vault.tmpl new file mode 100644 index 00000000000..a5d631414d1 --- /dev/null +++ b/nano/templates/dna_vault.tmpl @@ -0,0 +1,49 @@ + +

DNA Vault Database

+
+
+ Human DNA: +
+
+ {{:helper.displayBar(data.dna, 0, data.dna_max, data.dna >= data.dna_max ? 'good' : 'average')}} +
+ {{:data.dna}}/{{:data.dna_max}} Samples +
+
+
+
+
+ Plant Data: +
+
+ {{:helper.displayBar(data.plants, 0, data.plants_max, data.plants >= data.plants_max ? 'good' : 'average')}} +
+ {{:data.plants}}/{{:data.plants_max}} Samples +
+
+
+
+
+ Animal Data: +
+
+ {{:helper.displayBar(data.animals, 0, data.animals_max, data.animals >= data.animals_max ? 'good' : 'average')}} +
+ {{:data.animals}}/{{:data.animals_max}} Samples +
+
+
+{{if data.completed && !data.used}} +
+
+ Applicable gene therapy treatments: +
+
+ {{:helper.link(data.choiceA, null, {'gene' : 1, 'choice' : data.choiceA})}} + {{:helper.link(data.choiceB, null, {'gene' : 1, 'choice' : data.choiceB})}} +
+
+{{/if}} \ No newline at end of file diff --git a/nano/templates/sat_control.tmpl b/nano/templates/sat_control.tmpl new file mode 100644 index 00000000000..a3b5ad40cb1 --- /dev/null +++ b/nano/templates/sat_control.tmpl @@ -0,0 +1,32 @@ + +{{if data.notice}} +
{{:data.notice}}
+{{/if}} +

Satellite Network Control

+{{for data.satellites}} +
+
+ #{{:value.id}} - {{:value.mode}} +
+
+ + {{:helper.link(value.active ? 'Deactivate' : 'Activate', null, {'toggle' : 1, 'id' : value.id})}} +
+
+{{/for}} +{{if data.meteor_shield}} +
+
+ Station Shield Coverage: +
+
+ {{:helper.displayBar(data.meteor_shield_coverage, 0, data.meteor_shield_coverage_max, data.meteor_shield_coverage_percentage >= 100 ? 'good' : 'average')}} +
+ {{:data.meteor_shield_coverage_percentage}}% +
+
+
+{{/if}} \ No newline at end of file diff --git a/sound/machines/bsa_fire.ogg b/sound/machines/bsa_fire.ogg new file mode 100644 index 0000000000000000000000000000000000000000..19244ff69d6ae4401654eea1ab24137f4705a7ce GIT binary patch literal 29594 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 Date: Wed, 25 Jan 2017 16:14:40 +0100 Subject: [PATCH 5/9] Final touches to station goals --- code/datums/beam.dm | 7 +-- code/modules/station_goals/bsa.dm | 61 ++++++++++++++++--------- code/modules/station_goals/dna_vault.dm | 10 ++++ 3 files changed, 53 insertions(+), 25 deletions(-) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index 4c0ebba46b1..7a8c802b42d 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -113,13 +113,14 @@ mouse_opacity = 0 anchored = 1 var/datum/beam/owner - -/obj/effect/ebeam/deadly/Crossed(atom/A) - A.ex_act(1) /obj/effect/ebeam/Destroy() owner = null return ..() + +/obj/effect/ebeam/deadly/Crossed(atom/A) + ..() + A.ex_act(1) /atom/proc/Beam(atom/BeamTarget,icon_state="b_beam",icon='icons/effects/beam.dmi',time=50, maxdistance=10,beam_type=/obj/effect/ebeam) var/datum/beam/newbeam = new(src,BeamTarget,icon,icon_state,time,maxdistance,beam_type) diff --git a/code/modules/station_goals/bsa.dm b/code/modules/station_goals/bsa.dm index 5ea24bbd864..6697aa0af26 100644 --- a/code/modules/station_goals/bsa.dm +++ b/code/modules/station_goals/bsa.dm @@ -146,14 +146,14 @@ controller = null return ..() -/obj/machinery/bsa/full/admin - power_used_per_shot = 0 - reload_cooldown = 100 - /obj/machinery/bsa/full/east icon_state = "cannon_east" cannon_direction = EAST +/obj/machinery/bsa/full/admin + power_used_per_shot = 0 + reload_cooldown = 100 + /obj/machinery/bsa/full/admin/east icon_state = "cannon_east" cannon_direction = EAST @@ -209,8 +209,9 @@ T.ex_act(1) for(var/atom/A in T) A.ex_act(1) + point.Beam(get_target_turf(), icon_state = "bsa_beam", time = 50, maxdistance = world.maxx, beam_type = /obj/effect/ebeam/deadly) //ZZZAP - playsound(src, 'sound/machines/bsa_fire.ogg', 70, 1) + playsound(src, 'sound/machines/bsa_fire.ogg', 100, 1) message_admins("[key_name_admin(user)] has launched an artillery strike.") explosion(bullseye,ex_power,ex_power*2,ex_power*4) @@ -221,16 +222,6 @@ use_power(power_used_per_shot) last_fire_time = world.time / 10 -/obj/structure/filler - name = "big machinery part" - density = 1 - anchored = 1 - invisibility = 101 - var/obj/machinery/parent - -/obj/structure/filler/ex_act() - return - /obj/item/weapon/circuitboard/machine/bsa/back name = "Bluespace Artillery Generator (Machine Board)" build_path = /obj/machinery/bsa/back @@ -269,10 +260,23 @@ circuit = /obj/item/weapon/circuitboard/computer/bsa_control icon = 'icons/obj/machines/particle_accelerator3.dmi' icon_state = "control_boxp" - layer = 3.1 + var/icon_state_broken = "control_box" + var/icon_state_nopower = "control_boxw" + var/icon_state_reloading = "control_boxp1" + var/icon_state_active = "control_boxp0" + layer = 3.1 // Just above the cannon sprite var/area_aim = FALSE //should also show areas for targeting - var/target_all_areas = FALSE //allows all areas (including admin areas) to be targetted + var/target_all_areas = FALSE //allows all areas (including admin areas) to be targeted + +/obj/machinery/computer/bsa_control/admin + area_aim = TRUE + target_all_areas = TRUE + +/obj/machinery/computer/bsa_control/admin/initialize() + ..() + if(!cannon) + cannon = deploy() /obj/machinery/computer/bsa_control/Destroy() if(cannon && cannon.controller == src) @@ -280,9 +284,21 @@ cannon = null return ..() -/obj/machinery/computer/bsa_control/admin - area_aim = TRUE - target_all_areas = TRUE +/obj/machinery/computer/bsa_control/process() + ..() + update_icon() + +/obj/machinery/computer/bsa_control/update_icon() + if(stat & BROKEN) + icon_state = icon_state_broken + else if(stat & NOPOWER) + icon_state = icon_state_nopower + else if(cannon && (cannon.last_fire_time + cannon.reload_cooldown) > (world.time / 10)) + icon_state = icon_state_reloading + else if(cannon) + icon_state = icon_state_active + else + icon_state = initial(icon_state) /obj/machinery/computer/bsa_control/attack_hand(mob/user) if(..()) @@ -294,6 +310,7 @@ if(!ui) ui = new(user, src, ui_key, "bsa.tmpl", name, 400, 305) ui.open() + ui.set_auto_update(1) /obj/machinery/computer/bsa_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state) var/list/data = list() @@ -367,12 +384,12 @@ cannon.fire(user, get_impact_turf()) /obj/machinery/computer/bsa_control/proc/deploy() - var/obj/machinery/bsa/full/prebuilt = locate() in range(7) //In case of adminspawn + var/obj/machinery/bsa/full/prebuilt = locate() in range(7, src) //In case of adminspawn if(prebuilt) prebuilt.controller = src return prebuilt - var/obj/machinery/bsa/middle/centerpiece = locate() in range(7) + var/obj/machinery/bsa/middle/centerpiece = locate() in range(7, src) if(!centerpiece) notice = "No BSA parts detected nearby." return null diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index c920a8b0247..678599856b5 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -123,6 +123,16 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ /obj/item/weapon/stock_parts/capacitor/quadratic = 5, /obj/item/stack/cable_coil = 2) +/obj/structure/filler + name = "big machinery part" + density = 1 + anchored = 1 + invisibility = 101 + var/obj/machinery/parent + +/obj/structure/filler/ex_act() + return + /obj/machinery/dna_vault name = "DNA Vault" desc = "Break glass in case of apocalypse." From ea74866f03b5901d6f05bdbba8a2e88df6295b6f Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 26 Jan 2017 15:11:48 +0100 Subject: [PATCH 6/9] Move print_command_report proc --- code/defines/procs/orphaned.dm | 9 --------- code/game/machinery/computer/communications.dm | 10 ++++++++++ paradise.dme | 1 - 3 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 code/defines/procs/orphaned.dm diff --git a/code/defines/procs/orphaned.dm b/code/defines/procs/orphaned.dm deleted file mode 100644 index 5ceafcf0031..00000000000 --- a/code/defines/procs/orphaned.dm +++ /dev/null @@ -1,9 +0,0 @@ -/proc/print_command_report(text = "", title = "Central Command Update") - for(var/obj/machinery/computer/communications/C in machines) - if(!(C.stat & (BROKEN|NOPOWER)) && is_station_contact(C.z)) - var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc) - P.name = "paper- '[title]'" - P.info = text - C.messagetitle.Add("[title]") - C.messagetext.Add(text) - P.update_icon() \ No newline at end of file diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 3cf2600aa48..6087bc68d08 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -549,3 +549,13 @@ message_admins("All the AI's, communication consoles and boards are destroyed. Shuttle called.", 1) return ..() + +/proc/print_command_report(text = "", title = "Central Command Update") + for(var/obj/machinery/computer/communications/C in machines) + if(!(C.stat & (BROKEN|NOPOWER)) && is_station_contact(C.z)) + var/obj/item/weapon/paper/P = new /obj/item/weapon/paper(C.loc) + P.name = "paper- '[title]'" + P.info = text + C.messagetitle.Add("[title]") + C.messagetext.Add(text) + P.update_icon() \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index 961f9bead81..632626ec09c 100644 --- a/paradise.dme +++ b/paradise.dme @@ -331,7 +331,6 @@ #include "code\defines\procs\announce.dm" #include "code\defines\procs\AStar.dm" #include "code\defines\procs\dbcore.dm" -#include "code\defines\procs\orphaned.dm" #include "code\defines\procs\radio.dm" #include "code\defines\procs\records.dm" #include "code\defines\procs\statistics.dm" From f2db6078abddfc9b9fc6b7f57f740f69e37a59ef Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 5 Feb 2017 20:22:41 +0100 Subject: [PATCH 7/9] Implement new botany changes --- code/__DEFINES/misc.dm | 4 +++- code/modules/station_goals/dna_vault.dm | 16 ++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index ec5e1f8e2ef..89e7e276de3 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -17,6 +17,8 @@ #define CLICK_CD_TKSTRANGLE 10 #define CLICK_CD_POINT 10 #define CLICK_CD_RESIST 20 +#define CLICK_CD_CLICK_ABILITY 6 +#define CLICK_CD_RAPID 2 //Sizes of mobs, used by mob/living/var/mob_size #define MOB_SIZE_TINY 0 @@ -160,6 +162,7 @@ #define MAT_PLASMA "$plasma" #define MAT_BANANIUM "$bananium" #define MAT_TRANQUILLITE "$tranquillite" +#define MAT_BIOMASS "$biomass" #define MAX_STACK_SIZE 50 @@ -299,7 +302,6 @@ // The cooldown on OOC messages such as OOC, LOOC, praying and adminhelps #define OOC_COOLDOWN 5 - // Medal names #define BOSS_KILL_MEDAL "Killer" #define ALL_KILL_MEDAL "Exterminator" //Killing all of x type diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 678599856b5..3109e907216 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -24,9 +24,9 @@ /datum/station_goal/dna_vault/proc/non_standard_plants_count() . = 0 - for(var/T in plant_controller.seeds) - var/datum/seed/S = plant_controller.seeds[T] - if(S.get_trait(TRAIT_RARITY) > 0) + for(var/T in subtypesof(/obj/item/seeds)) //put a cache if it's used anywhere else + var/obj/item/seeds/S = T + if(initial(S.rarity) > 0) .++ /datum/station_goal/dna_vault/get_report() @@ -79,17 +79,17 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ if(!proximity || !target) return //tray plants - if(istype(target,/obj/machinery/portable_atmospherics/hydroponics)) - var/obj/machinery/portable_atmospherics/hydroponics/H = target - if(!H.seed) + if(istype(target,/obj/machinery/hydroponics)) + var/obj/machinery/hydroponics/H = target + if(!H.myseed) return if(!H.harvest)// So it's bit harder. to_chat(user, "Plants needs to be ready to harvest to perform full data scan.") //Because space dna is actually magic return - if(plants[H.seed.type]) + if(plants[H.myseed.type]) to_chat(user, "Plant data already present in local storage.") return - plants[H.seed.type] = 1 + plants[H.myseed.type] = 1 to_chat(user, "Plant data added to local storage.") //animals From ee12315a55b1b5247276bfe294d5c52a04fbff7b Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 5 Feb 2017 20:28:10 +0100 Subject: [PATCH 8/9] Let ghosts interact with the DNA vault --- code/modules/station_goals/dna_vault.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/modules/station_goals/dna_vault.dm b/code/modules/station_goals/dna_vault.dm index 3109e907216..26d00e6360d 100644 --- a/code/modules/station_goals/dna_vault.dm +++ b/code/modules/station_goals/dna_vault.dm @@ -185,6 +185,11 @@ var/list/non_simple_animals = typecacheof(list(/mob/living/carbon/human/monkey,/ qdel(filler) . = ..() +/obj/machinery/dna_vault/attack_ghost(mob/user) + if(stat & (BROKEN|MAINT)) + return + return ui_interact(user) + /obj/machinery/dna_vault/attack_hand(mob/user) if(..()) return 1 From c26e6d15598d899d4a76c7087fc78da62d97375f Mon Sep 17 00:00:00 2001 From: Markolie Date: Thu, 16 Feb 2017 19:16:16 +0100 Subject: [PATCH 9/9] Replace z check with atoms_share_level(a,b) --- code/modules/station_goals/shield.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm index fae4b3cf4bd..2090b34baa5 100644 --- a/code/modules/station_goals/shield.dm +++ b/code/modules/station_goals/shield.dm @@ -68,7 +68,7 @@ /obj/machinery/computer/sat_control/proc/toggle(id) for(var/obj/machinery/satellite/S in machines) - if(S.id == id && S.z == z) + if(S.id == id && atoms_share_level(src, S)) S.toggle() /obj/machinery/computer/sat_control/ui_data(mob/user, ui_key = "main", datum/topic_state/state = physical_state)