diff --git a/code/controllers/subsystems/supply.dm b/code/controllers/subsystems/supply.dm index f379193c6a..0ba67f8ab6 100644 --- a/code/controllers/subsystems/supply.dm +++ b/code/controllers/subsystems/supply.dm @@ -24,9 +24,22 @@ SUBSYSTEM_DEF(supply) var/movetime = 1200 var/datum/shuttle/autodock/ferry/supply/shuttle var/list/material_points_conversion = list( // Any materials not named in this list are worth 0 points + "silver" = 2, + "marble" = 2, + "gold" = 2, + "uranium" = 2, + "lead" = 2, + "platinum" = 5, "phoron" = 5, - "platinum" = 5 - ) + "titanium" = 6, + "plasteel" = 6, + "osmium" = 6, + "mhydrogen" = 6, + "verdantium" = 8, + "diamond" = 8, + "durasteel" = 9, + "morphium" = 13 + )//SPOOKY number! /datum/controller/subsystem/supply/Initialize() ordernum = rand(1,9000) @@ -174,6 +187,8 @@ SUBSYSTEM_DEF(supply) var/list/clear_turfs = get_clear_turfs() + var/shopping_log = "SUPPLY_BUY: " + for(var/datum/supply_order/SO in shoppinglist) if(!clear_turfs.len) break @@ -184,6 +199,7 @@ SUBSYSTEM_DEF(supply) SO.status = SUP_ORDER_SHIPPED var/datum/supply_pack/SP = SO.object + shopping_log += "[SP.name];" var/obj/A = new SP.containertype(pickedloc) A.name = "[SP.containername] [SO.comment ? "([SO.comment])":"" ]" @@ -238,6 +254,7 @@ SUBSYSTEM_DEF(supply) slip.info += "
" slip.info += "CHECK CONTENTS AND STAMP BELOW THE LINE TO CONFIRM RECEIPT OF GOODS
" + log_game(shopping_log) return // Will attempt to purchase the specified order, returning TRUE on success, FALSE on failure diff --git a/code/datums/supplypacks/misc_vr.dm b/code/datums/supplypacks/misc_vr.dm index 27de833ba8..94f23fb61c 100644 --- a/code/datums/supplypacks/misc_vr.dm +++ b/code/datums/supplypacks/misc_vr.dm @@ -95,4 +95,19 @@ access_eva, access_explorer, access_pilot) + one_access = TRUE + +/datum/supply_pack/randomised/misc/explorer_shield + name = "Explorer shield" + num_contained = 2 + contains = list( + /obj/item/weapon/shield/riot/explorer, + /obj/item/weapon/shield/riot/explorer/purple + ) + cost = 75 + containertype = /obj/structure/closet/crate/secure/gear + containername = "exploration shield crate" + access = list(access_explorer, + access_eva, + access_pilot) one_access = TRUE \ No newline at end of file diff --git a/code/datums/uplink/ammunition_vr.dm b/code/datums/uplink/ammunition_vr.dm new file mode 100644 index 0000000000..3235bb7311 --- /dev/null +++ b/code/datums/uplink/ammunition_vr.dm @@ -0,0 +1,20 @@ +/************* +* Ammunition * +*************/ +/datum/uplink_item/item/ammo/cell + name = "Weapon cell" + +/datum/uplink_item/item/ammo/highcell + name = "High capacity cell" + path = /obj/item/weapon/cell/high + item_cost = 15 + +/datum/uplink_item/item/ammo/supercell + name = "Super capacity cell" + path = /obj/item/weapon/cell/super + item_cost = 30 + +/datum/uplink_item/item/ammo/voidcell + name = "Void cell" + path = /obj/item/weapon/cell/device/weapon/recharge/alien/hybrid + item_cost = DEFAULT_TELECRYSTAL_AMOUNT * 1.5 diff --git a/code/datums/uplink/medical_vr.dm b/code/datums/uplink/medical_vr.dm index 17a3ddf33a..8f0264d3e9 100644 --- a/code/datums/uplink/medical_vr.dm +++ b/code/datums/uplink/medical_vr.dm @@ -1,25 +1,10 @@ /********** * Medical * **********/ -/datum/uplink_item/item/medical/fire - name = "Fire medical kit" - item_cost = 10 - path = /obj/item/weapon/storage/firstaid/fire - -/datum/uplink_item/item/medical/toxin - name = "Toxin medical kit" - item_cost = 10 - path = /obj/item/weapon/storage/firstaid/toxin - -/datum/uplink_item/item/medical/o2 - name = "Oxygen medical kit" - item_cost = 10 - path = /obj/item/weapon/storage/firstaid/o2 - -/datum/uplink_item/item/medical/adv - name = "Advanced medical kit" - item_cost = 10 - path = /obj/item/weapon/storage/firstaid/adv +/datum/uplink_item/item/medical/pizza + name = "Free Pizza Voucher" + item_cost = 5 + path = /obj/item/pizzavoucher /datum/uplink_item/item/medical/mre name = "Meal, Ready to eat (Random)" @@ -36,6 +21,11 @@ item_cost = 5 path = /obj/item/weapon/storage/mre/menu11 +/datum/uplink_item/item/medical/medical + name = "Meal, Ready to eat (medical)" + item_cost = 5 + path = /obj/item/weapon/storage/mre/menu13 + /datum/uplink_item/item/medical/glucose name = "Glucose injector" item_cost = 5 @@ -71,11 +61,41 @@ item_cost = 5 path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/oxy +/datum/uplink_item/item/medical/fire + name = "Fire medical kit" + item_cost = 10 + path = /obj/item/weapon/storage/firstaid/fire + +/datum/uplink_item/item/medical/toxin + name = "Toxin medical kit" + item_cost = 10 + path = /obj/item/weapon/storage/firstaid/toxin + +/datum/uplink_item/item/medical/o2 + name = "Oxygen medical kit" + item_cost = 10 + path = /obj/item/weapon/storage/firstaid/o2 + +/datum/uplink_item/item/medical/adv + name = "Advanced medical kit" + item_cost = 10 + path = /obj/item/weapon/storage/firstaid/adv + /datum/uplink_item/item/medical/organ name = "Organ Repair injector" item_cost = 10 path = /obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/organ +/datum/uplink_item/item/medical/stasis + name = "Stasis Bag" + item_cost = 20 + path = /obj/item/bodybag/cryobag + +/datum/uplink_item/item/medical/synth + name = "Synthmorph Bag" + item_cost = 20 + path = /obj/item/bodybag/cryobag/robobag + /datum/uplink_item/item/medical/nanites name = "Healing Nanite pill bottle" item_cost = 30 diff --git a/code/datums/uplink/tools_vr.dm b/code/datums/uplink/tools_vr.dm index 34794c5cdf..30b2cd725e 100644 --- a/code/datums/uplink/tools_vr.dm +++ b/code/datums/uplink/tools_vr.dm @@ -1,6 +1,21 @@ /******************** * Devices and Tools * ********************/ +/datum/uplink_item/item/tools/oxygen + name = "Emergency Oxygen Tank" + item_cost = 2 + path = /obj/item/weapon/tank/emergency/oxygen/double + +/datum/uplink_item/item/tools/phoron + name = "Emergency Phoron Tank" + item_cost = 2 + path = /obj/item/weapon/tank/emergency/phoron/double + +/datum/uplink_item/item/tools/suitcooler + name = "Emergency Suit Cooler" + item_cost = 2 + path = /obj/item/device/suit_cooling_unit/emergency + /datum/uplink_item/item/tools/basiclaptop name = "Laptop (Basic)" item_cost = 5 @@ -16,6 +31,11 @@ item_cost = 10 path = /obj/item/stack/nanopaste/advanced +/datum/uplink_item/item/tools/autolok + name = "Autolok Voidsuit" + item_cost = 10 + path = /obj/item/clothing/suit/space/void/autolok + /datum/uplink_item/item/tools/elitetablet name = "Tablet (Advanced)" item_cost = 15 diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index d0686d0d99..0d2c4e78e8 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -242,7 +242,7 @@ Class Procs: return 1 if(user.lying || user.stat) return 1 - if(!(istype(user, /mob/living/carbon/human) || istype(user, /mob/living/silicon))) + if(!user.IsAdvancedToolUser()) //Vorestation edit to_chat(user, "You don't have the dexterity to do this!") return 1 if(ishuman(user)) @@ -312,6 +312,7 @@ Class Procs: qdel(C) C = new /obj/item/weapon/cell/high(src) component_parts += C + return C RefreshParts() /obj/machinery/proc/default_part_replacement(var/mob/user, var/obj/item/weapon/storage/part_replacer/R) diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 59d788b524..af7cdd5dfb 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -25,7 +25,7 @@ /obj/machinery/recharge_station/Initialize() . = ..() default_apply_parts() - default_use_hicell() + cell = default_use_hicell() update_icon() /obj/machinery/recharge_station/proc/has_cell_power() diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index d2ef8b1fec..b9c616c14e 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -69,7 +69,7 @@ network = "tcommsat" produces_heat = 0 autolinkers = list("receiverCent") - freq_listening = list(ERT_FREQ, DTH_FREQ) + freq_listening = list(ERT_FREQ, DTH_FREQ, SYND_FREQ) //Buses @@ -108,7 +108,7 @@ /obj/machinery/telecomms/bus/preset_cent id = "CentCom Bus" network = "tcommsat" - freq_listening = list(ERT_FREQ, DTH_FREQ) + freq_listening = list(ERT_FREQ, DTH_FREQ, SYND_FREQ) produces_heat = 0 autolinkers = list("processorCent", "centcom") @@ -201,7 +201,7 @@ /obj/machinery/telecomms/server/presets/centcomm id = "CentCom Server" - freq_listening = list(ERT_FREQ, DTH_FREQ) + freq_listening = list(ERT_FREQ, DTH_FREQ, SYND_FREQ) produces_heat = 0 autolinkers = list("centcom") diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index f2a73a369a..bf29ad6e3c 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -662,9 +662,6 @@ var/global/list/obj/item/device/pda/PDAs = list() ui.set_auto_update(auto_update) /obj/item/device/pda/attack_self(mob/user as mob) - var/datum/asset/assets = get_asset_datum(/datum/asset/simple/pda) - assets.send(user) - user.set_machine(src) if(active_uplink_check(user)) diff --git a/code/game/objects/items/weapons/shields_vr.dm b/code/game/objects/items/weapons/shields_vr.dm index ceab877d4a..5be1544d2e 100644 --- a/code/game/objects/items/weapons/shields_vr.dm +++ b/code/game/objects/items/weapons/shields_vr.dm @@ -18,4 +18,69 @@ item_icons = list(slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi', slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi', slot_back_str = 'icons/vore/custom_items_vr.dmi', slot_wear_suit_str = 'icons/vore/custom_items_vr.dmi') attack_verb = list("shoved", "bashed") var/cooldown = 0 //shield bash cooldown. based on world.time - allowed = list(/obj/item/weapon/melee/fluffstuff/wolfgirlsword) \ No newline at end of file + allowed = list(/obj/item/weapon/melee/fluffstuff/wolfgirlsword) + + +/obj/item/weapon/shield/riot/explorer + name = "green explorer shield" + desc = "A shield issued to exploration teams to help protect them when advancing into the unknown. It is lighter and cheaper but less protective than some of its counterparts. It has a flashlight straight in the middle to help draw attention." + icon = 'icons/obj/weapons_vr.dmi' + icon_state = "explorer_shield" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_melee_vr.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_melee_vr.dmi' + ) + base_block_chance = 40 + slot_flags = SLOT_BACK + var/brightness_on + brightness_on = 4 + var/on = 0 + var/light_applied + //var/light_overlay + +//POURPEL WHY U NO COVER + +/obj/item/weapon/shield/riot/explorer/attack_self(mob/user) + if(brightness_on) + if(!isturf(user.loc)) + to_chat(user, "You cannot turn the light on while in this [user.loc]") + return + on = !on + to_chat(user, "You [on ? "enable" : "disable"] the shield light.") + update_flashlight(user) + + if(istype(user,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = user + H.update_inv_l_hand() + H.update_inv_r_hand() + else + return ..(user) + +/obj/item/weapon/shield/riot/explorer/proc/update_flashlight(var/mob/user = null) + if(on && !light_applied) + set_light(brightness_on) + light_applied = 1 + else if(!on && light_applied) + set_light(0) + light_applied = 0 + update_icon(user) + user.update_action_buttons() + light = !light + playsound(src, 'sound/weapons/empty.ogg', 15, 1, -3) + +/obj/item/weapon/shield/riot/explorer/update_icon() + if(on) + icon_state = "explorer_shield_lighted" + else + icon_state = "explorer_shield" + +/obj/item/weapon/shield/riot/explorer/purple + name = "purple explorer shield" + desc = "A shield issued to exploration teams to help protect them when advancing into the unknown. It is lighter and cheaper but less protective than some of its counterparts. It has a flashlight straight in the middle to help draw attention. This one is POURPEL" + icon_state = "explorer_shield_P" + +/obj/item/weapon/shield/riot/explorer/purple/update_icon() + if(on) + icon_state = "explorer_shield_P_lighted" + else + icon_state = "explorer_shield_P" \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/backpack_vr.dm b/code/game/objects/items/weapons/storage/backpack_vr.dm index 4c9ff8c2db..744abb85d8 100644 --- a/code/game/objects/items/weapons/storage/backpack_vr.dm +++ b/code/game/objects/items/weapons/storage/backpack_vr.dm @@ -1,7 +1,7 @@ /obj/item/weapon/storage/backpack/saddlebag name = "Horse Saddlebags" desc = "A saddle that holds items. Seems slightly bulky." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "saddlebag" icon_state = "saddlebag" @@ -33,7 +33,7 @@ /obj/item/weapon/storage/backpack/saddlebag_common //Shared bag for other taurs with sturdy backs name = "Taur Saddlebags" desc = "A saddle that holds items. Seems slightly bulky." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "saddlebag" icon_state = "saddlebag" @@ -108,7 +108,7 @@ /obj/item/weapon/storage/backpack/saddlebag_common/robust //Shared bag for other taurs with sturdy backs name = "Robust Saddlebags" desc = "A saddle that holds items. Seems robust." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "robustsaddle" icon_state = "robustsaddle" @@ -117,7 +117,7 @@ /obj/item/weapon/storage/backpack/saddlebag_common/vest //Shared bag for other taurs with sturdy backs name = "Taur Duty Vest" desc = "An armored vest with the armor modules replaced with various handy compartments with decent storage capacity. Useless for protection though." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "taurvest" icon_state = "taurvest" @@ -141,49 +141,49 @@ /obj/item/weapon/storage/backpack/satchel/explorer name = "explorer satchel" desc = "A satchel for carrying a large number of supplies easily." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "satchel-explorer" icon_state = "satchel-explorer" /obj/item/weapon/storage/backpack/explorer name = "explorer backpack" desc = "A backpack for carrying a large number of supplies easily." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "explorerpack" icon_state = "explorerpack" /obj/item/weapon/storage/backpack/satchel/roboticist name = "roboticist satchel" desc = "A satchel for carrying a large number of spare parts easily." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "satchel-robo" icon_state = "satchel-robo" /obj/item/weapon/storage/backpack/roboticist name = "roboticist backpack" desc = "A backpack for carrying a large number of spare parts easily." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "backpack-robo" icon_state = "backpack-robo" /obj/item/weapon/storage/backpack/vietnam name = "vietnam backpack" desc = "There are tangos in the trees! We need napalm right now! Why is my gun jammed?" - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "nambackpack" icon_state = "nambackpack" /obj/item/weapon/storage/backpack/russian name = "russian backpack" desc = "Useful for carrying large quantities of vodka." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "ru_rucksack" icon_state = "ru_rucksack" /obj/item/weapon/storage/backpack/korean name = "korean backpack" desc = "Insert witty description here." - icon = 'icons/obj/storage_vr.dmi' + icon = 'icons/obj/clothing/backpack_vr.dmi' icon_override = 'icons/mob/back_vr.dmi' item_state = "kr_rucksack" icon_state = "kr_rucksack" diff --git a/code/game/objects/items/weapons/tanks/tank_types.dm b/code/game/objects/items/weapons/tanks/tank_types.dm index a838bf6c03..b9616b01b6 100644 --- a/code/game/objects/items/weapons/tanks/tank_types.dm +++ b/code/game/objects/items/weapons/tanks/tank_types.dm @@ -102,7 +102,7 @@ /obj/item/weapon/tank/vox/Initialize() . = ..() - air_contents.adjust_gas("phoron", (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) + air_contents.adjust_gas("phoron", (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)) //VOREStation Edit /obj/item/weapon/tank/phoron/pressurized name = "fuel can" diff --git a/code/game/objects/items/weapons/tanks/tank_types_vr.dm b/code/game/objects/items/weapons/tanks/tank_types_vr.dm index 73d094d0f9..68c18aebd2 100644 --- a/code/game/objects/items/weapons/tanks/tank_types_vr.dm +++ b/code/game/objects/items/weapons/tanks/tank_types_vr.dm @@ -85,6 +85,7 @@ icon_override = 'icons/mob/belt_vr.dmi' icon_state = "emergency_phoron_vox" gauge_icon = "indicator_smalltank" + volume = 6 gauge_cap = 3 /obj/item/weapon/tank/nitrogen diff --git a/code/game/objects/random/misc_vr.dm b/code/game/objects/random/misc_vr.dm new file mode 100644 index 0000000000..d8c3df7af0 --- /dev/null +++ b/code/game/objects/random/misc_vr.dm @@ -0,0 +1,11 @@ +//This file is for VR only + +/obj/random/explorer_shield + name = "random explorer shield" + desc = "This is a random shield for the explorer lockers." + icon = 'icons/obj/weapons_vr.dmi' + icon_state = "explorer_shield" + +/obj/random/explorer_shield/item_to_spawn() + return pick(/obj/item/weapon/shield/riot/explorer, + /obj/item/weapon/shield/riot/explorer/purple) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm index b8fca34a87..251183b6e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/misc_vr.dm +++ b/code/game/objects/structures/crates_lockers/closets/misc_vr.dm @@ -177,6 +177,7 @@ /obj/item/weapon/material/knife/machete/deluxe, /obj/item/weapon/gun/energy/locked/frontier/carbine, /obj/item/clothing/accessory/holster/machete, + /obj/random/explorer_shield, /obj/item/weapon/reagent_containers/food/snacks/liquidfood, /obj/item/weapon/reagent_containers/food/snacks/liquidprotein, /obj/item/device/cataloguer/compact/pathfinder) @@ -214,6 +215,23 @@ starts_with = list( /obj/item/clothing/suit/space/void/autolok, - /obj/item/weapon/tank/emergency/oxygen/double, + /obj/item/weapon/tank/emergency/oxygen/engi, + /obj/item/device/suit_cooling_unit/emergency + ) + +/obj/structure/closet/emergsuit_wall + name = "emergency suit storage" + desc = "It's wall-mounted storage unit for an emergency suit." + icon = 'icons/obj/closets/bases/wall.dmi' + closet_appearance = /decl/closet_appearance/wall/emergency + anchored = 1 + density = 0 + wall_mounted = 1 + store_mobs = 0 + + starts_with = list( + /obj/item/clothing/head/helmet/space/emergency, + /obj/item/clothing/suit/space/emergency, + /obj/item/weapon/tank/emergency/oxygen/engi, /obj/item/device/suit_cooling_unit/emergency ) diff --git a/code/modules/busy_space_vr/air_traffic.dm b/code/modules/busy_space_vr/air_traffic.dm new file mode 100644 index 0000000000..7c06b964e4 --- /dev/null +++ b/code/modules/busy_space_vr/air_traffic.dm @@ -0,0 +1,409 @@ +//Cactus, Speedbird, Dynasty, oh my +//Also, massive additions/refactors by Killian, because the original incarnation was full of holes + +var/datum/lore/atc_controller/atc = new/datum/lore/atc_controller + +/datum/lore/atc_controller + var/delay_min = 25 MINUTES //How long between ATC traffic + var/delay_max = 35 MINUTES //Adjusted to give approx 2 per hour, will work out to 10-14 over a full shift + //Shorter delays means more traffic, which gives the impression of a busier system, but also means a lot more radio noise + var/backoff_delay = 5 MINUTES //How long to back off if we can't talk and want to. Default is 5 mins. + var/initial_delay = 2 MINUTES //How long to wait before sending the first message of the shift. + var/next_message = 30 MINUTES //When the next message should happen in world.time - Making it default to min value + var/force_chatter_type //Force a specific type of messages + + var/squelched = 0 //If ATC is squelched currently + + //define a block of frequencies so we can have them be static instead of being random for each call + var/ertchannel + var/medchannel + var/engchannel + var/secchannel + var/sdfchannel + +/datum/lore/atc_controller/New() + //generate our static event frequencies for the shift. alternately they can be completely fixed, up in the core block + ertchannel = "[rand(700,749)].[rand(1,9)]" + medchannel = "[rand(750,799)].[rand(1,9)]" + engchannel = "[rand(800,849)].[rand(1,9)]" + secchannel = "[rand(850,899)].[rand(1,9)]" + sdfchannel = "[rand(900,999)].[rand(1,9)]" + spawn(450 SECONDS) //Lots of lag at the start of a shift. Yes, the following lines *have* to be indented or they're not delayed by the spawn properly. + msg("New shift beginning, resuming traffic control. This shift's Colony Frequencies are as follows: Emergency Responders: [ertchannel]. Medical: [medchannel]. Engineering: [engchannel]. Security: [secchannel]. System Defense: [sdfchannel].") + next_message = world.time + initial_delay + process() + +/datum/lore/atc_controller/process() + if(world.time >= next_message) + if(squelched) + next_message = world.time + backoff_delay + else + next_message = world.time + rand(delay_min,delay_max) + random_convo() + + spawn(1 MINUTE) //We don't really need high-accuracy here. + process() + +/datum/lore/atc_controller/proc/msg(var/message,var/sender) + ASSERT(message) + global_announcer.autosay("[message]", sender ? sender : "[using_map.dock_name] Control") + +/datum/lore/atc_controller/proc/reroute_traffic(var/yes = 1) + if(yes) + if(!squelched) + msg("Rerouting traffic away from [using_map.station_name].") + squelched = 1 + else + if(squelched) + msg("Resuming normal traffic routing around [using_map.station_name].") + squelched = 0 + +/datum/lore/atc_controller/proc/shift_ending(var/evac = 0) + msg("[using_map.shuttle_name], this is [using_map.dock_name] Control, you are cleared to complete routine transfer from [using_map.station_name] to [using_map.dock_name].") + sleep(5 SECONDS) + msg("[using_map.shuttle_name] departing [using_map.dock_name] for [using_map.station_name] on routine transfer route. Estimated time to arrival: ten minutes.","[using_map.shuttle_name]") + +/datum/lore/atc_controller/proc/random_convo() + var/one = pick(loremaster.organizations) //These will pick an index, not an instance + var/two = pick(loremaster.organizations) + + var/datum/lore/organization/source = loremaster.organizations[one] //Resolve to the instances + var/datum/lore/organization/secondary = loremaster.organizations[two] //repurposed for new fun stuff + + //Let's get some mission parameters, pick our first ship + var/name = source.name //get the name + var/owner = source.short_name //Use the short name + var/prefix = pick(source.ship_prefixes) //Pick a random prefix + var/mission = source.ship_prefixes[prefix] //The value of the prefix is the mission type that prefix does + var/shipname = pick(source.ship_names) //Pick a random ship name + var/destname = pick(source.destination_names) //destination is where? + var/law_abiding = source.lawful //do we fully observe system law (or are we otherwise favored by the system owners, i.e. NT)? + var/law_breaker = source.hostile //or are we part of a pirate group + var/system_defense = source.sysdef //are we actually system law/SDF? unlocks the SDF-specific events + + //pick our second ship + //var/secondname = secondary.name //not used atm, commented out to suppress errors + var/secondowner = secondary.short_name + var/secondprefix = pick(secondary.ship_prefixes) //Pick a random prefix + var/secondshipname = pick(secondary.ship_names) //Pick a random ship name + var/law_abiding2 = secondary.lawful + var/law_breaker2 = secondary.hostile + var/system_defense2 = secondary.sysdef //mostly here as a secondary check to ensure SDF don't interrogate other SDF + + var/combined_first_name = "[owner][prefix] |[shipname]|" + var/combined_second_name = "[secondowner][secondprefix] |[secondshipname]|" + + var/alt_atc_names = list("[using_map.dock_name] Traffic Control","[using_map.dock_name] TraCon","[using_map.dock_name] System Control","[using_map.dock_name] Star Control","[using_map.dock_name] SysCon","[using_map.dock_name] Tower","[using_map.dock_name] Control","[using_map.dock_name] STC","[using_map.dock_name] StarCon") + var/mission_noun = pick(source.flight_types) //pull from a list of owner-specific flight ops, to allow an extra dash of flavor + if(source.complex_tasks) //if our source has the complex_tasks flag, regenerate with a two-stage assignment + mission_noun = "[pick(source.task_types)] [pick(source.flight_types)]" + + //First response is 'yes', second is 'no' + var/requests = list( + "special flight rules" = list("authorizing special flight rules", "denying special flight rules, not allowed for your traffic class"), + "current solar weather info" = list("sending you the relevant information via tightbeam", "your request has been queued, stand by"), + "aerospace priority" = list("affirmative, aerospace priority is yours", "negative, another vessel has priority right now"), + "system traffic info" = list("sending you current traffic info", "request queued, please hold"), + "refueling information" = list("sending refueling information now", "depots currently experiencing fuel shortages, advise you move on"), + "a current system time sync" = list("sending time sync ping to you now", "your ship isn't compatible with our time sync, set time manually"), + "current system starcharts" = list("transmitting current starcharts", "your request is queued, overloaded right now") + ) + + //Random chance things for variety + var/chatter_type = "normal" + if(force_chatter_type) + chatter_type = force_chatter_type + else if(law_abiding && !system_defense) //I have to offload this from the chatter_type switch below and do it here, otherwise BYOND throws a shitfit for no discernable reason + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdenied",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest","normal",30;"undockingdenied",30;"undockingdelayed") + //the following filters *always* fire their 'unique' event when they're tripped, simply because the conditions behind them are quite rare to begin with + else if(name == "Smugglers" && !system_defense2) //just straight up funnel smugglers into always being caught, otherwise we get them asking for traffic info and stuff + chatter_type = "policeflee" + else if(name == "Smugglers" && system_defense2) //ditto, if an SDF ship catches them + chatter_type = "policeshipflee" + else if(law_abiding && law_breaker2) //on the offchance that we manage to roll a goodguy and a badguy, run a new distress event - it's like emerg but better + chatter_type = "distress" + else if(law_breaker && system_defense2) //if we roll this combo instead, time for the SDF to do their fucking job + chatter_type = "policeshipcombat" + else if(law_breaker && !system_defense2) //but if we roll THIS combo, time to alert the SDF to get off their asses + chatter_type = "hostiledetected" + //SDF-specific events that need to filter based on the second party (basically just the following SDF-unique list with the soft-result ship scan thrown in) + else if(system_defense && law_abiding2 && !system_defense2) //let's see if we can narrow this down, I didn't see many ship-to-ship scans + chatter_type = pick(75;"policeshipscan","sdfpatrolupdate",75;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",75;"sdfbeginpatrol",50;"normal") + //SDF-specific events that don't require the secondary at all, in the event that we manage to roll SDF + hostile/smuggler or something + else if(system_defense) + chatter_type = pick("sdfpatrolupdate",60;"sdfendingpatrol",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",20;"undockingrequest",80;"sdfbeginpatrol","normal") + //if we somehow don't match any of the other existing filters once we've run through all of them + else + chatter_type = pick(5;"emerg",25;"policescan",25;"traveladvisory",30;"pathwarning",30;"dockingrequestgeneric",30;"dockingrequestdelayed",30;"dockingrequestdenied",30;"dockingrequestsupply",30;"dockingrequestrepair",30;"dockingrequestmedical",30;"dockingrequestsecurity",30;"undockingrequest",30;"undockingdenied",30;"undockingdelayed","normal") + //I probably should do some kind of pass here to work through all the possible combinations of major factors and see if the filtering list needs reordering or modifying, but I really can't be arsed + + var/yes = prob(90) //Chance for them to say yes vs no + + var/request = pick(requests) + var/callname = pick(alt_atc_names) + var/response = requests[request][yes ? 1 : 2] //1 is yes, 2 is no + var/number = rand(1,42) + var/zone = pick("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega") + //fallbacks in case someone sets the dock_type on the map datum to null- it defaults to "station" normally + var/landing_zone = "LZ [zone]" + var/landing_move = "landing request" + var/landing_short = "land" + switch(using_map.dock_type) + if("surface") //formal installations with proper facilities + landing_zone = "landing pad [number]" + landing_move = "landing request" + landing_short = "land" + if("frontier") //for frontier bases - landing spots are literally just open ground, maybe concrete at best + landing_zone = "LZ [zone]" + landing_move = "landing request" + landing_short = "land" + if("station") //standard station pattern + landing_zone = "docking bay [number]" + landing_move = "docking request" + landing_short = "dock" + + // what you're about to witness is what feels like an extremely kludgy rework of the system, but it's more 'flexible' and allows events that aren't just ship-stc-ship + // something more elegant could probably be done, but it won't be done by somebody as half-competent as me + switch(chatter_type) + //mayday call + if("emerg") + var/problem = pick("We have hull breaches on multiple decks","We have unknown hostile life forms on board","Our primary drive is failing","We have asteroids impacting the hull","We're experiencing a total loss of engine power","We have hostile ships closing fast","There's smoke in the cockpit","We have unidentified boarders","Our life support has failed") + msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! [problem]!","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control, copy. Switch to emergency responder channel [ertchannel].") + sleep(5 SECONDS) + msg("Understood [using_map.dock_name] Control, switching now.","[prefix] [shipname]") + //Control scan event: soft outcome + if("policescan") + var/confirm = pick("Understood","Roger that","Affirmative") + var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") + var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear, move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") + msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.") + sleep(5 SECONDS) + msg("[confirm] [using_map.dock_name] Control, holding position.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Your compliance is appreciated, [combined_first_name]. Scan commencing.") + sleep(10 SECONDS) + msg(complain,"[prefix] [shipname]") + sleep(15 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Scan complete. [completed]") + //Control scan event: hard outcome + if("policeflee") + var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, Control.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") + msg("Unknown [pick("ship","vessel","starship")], this is [using_map.dock_name] Control, identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.") + sleep(5 SECONDS) + msg("[uhoh]","[shipname]") + sleep(5 SECONDS) + msg("This is [using_map.starsys_name] Defense Control to all local assets: vector to interdict and detain [combined_first_name]. Control out.","[using_map.starsys_name] Defense Control") + //SDF scan event: soft outcome + if("policeshipscan") + var/confirm = pick("Understood","Roger that","Affirmative") + var/complain = pick("I hope this doesn't take too long.","Can we hurry this up?","Make it quick.","This better not take too long.","Is this really necessary?") + var/completed = pick("You're free to proceed.","Everything looks fine, carry on.","You're clear. Move along.","Apologies for the delay, you're clear.","Switch to channel [sdfchannel] and await further instruction.") + msg("[combined_second_name], this is [combined_first_name], your [pick("ship","vessel","starship")] has been flagged for routine inspection. Hold position and prepare to be scanned.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[confirm] [combined_first_name], holding position.","[secondprefix] [secondshipname]") + sleep(5 SECONDS) + msg("Your compliance is appreciated, [combined_second_name]. Scan commencing.","[prefix] [shipname]") + sleep(10 SECONDS) + msg(complain,"[secondprefix] [secondshipname]") + sleep(15 SECONDS) + msg("[combined_second_name], this is [combined_first_name]. Scan complete. [completed]","[prefix] [shipname]") + //SDF scan event: hard outcome + if("policeshipflee") + var/uhoh = pick("No can do chief, we got places to be.","Sorry but we've got places to be.","Not happening.","Ah fuck, who ratted us out this time?!","You'll never take me alive!","Hey, I have a cloaking device! You can't see me!","I'm going to need to ask for a refund on that stealth drive...","I'm afraid I can't do that, |[shipname]|.","Ah |hell|.","Fuck!","This isn't the ship you're looking for.","Well. This is awkward.","Uh oh.","I surrender!") + msg("Unknown [pick("ship","vessel","starship")], this is [combined_second_name], identify yourself and submit to a full inspection. Flying without an active transponder is a violation of system regulations.","[secondprefix] [secondshipname]") + sleep(5 SECONDS) + msg("[uhoh]","[shipname]") + sleep(5 SECONDS) + msg("[using_map.starsys_name] Defense Control, this is [combined_second_name], we have a situation here, please advise.","[secondprefix] [secondshipname]") + sleep(5 SECONDS) + msg("Defense Control copies, [combined_second_name], reinforcements are en route. Switch further communications to encrypted band [sdfchannel].","[using_map.starsys_name] Defense Control") + //SDF scan event: engage primary in combat! fairly rare since it needs a pirate/vox + SDF roll + if("policeshipcombat") + var/battlestatus = pick("requesting reinforcements.","we need backup! Now!","holding steady.","we're holding our own for now.","we have them on the run.","they're trying to make a run for it!","we have them right where we want them.","we're badly outgunned!","we have them outgunned.","we're outnumbered here!","we have them outnumbered.","this'll be a cakewalk.",10;"notify their next of kin.") + msg("[using_map.starsys_name] Defense Control, this is [combined_second_name], engaging [combined_first_name] [pick("near route","in sector")] [rand(1,100)], [battlestatus]","[secondprefix] [secondshipname]") + sleep(5 SECONDS) + msg("[using_map.starsys_name] Defense Control copies, [combined_second_name]. Keep us updated.","[using_map.starsys_name] Defense Control") + //SDF event: patrol update + if("sdfpatrolupdate") + var/statusupdate = pick("nothing unusual so far","nothing of note","everything looks clear so far","ran off some [pick("pirates","marauders")] near route [pick(1,100)], [pick("no","minor")] damage sustained, continuing patrol","situation normal, no suspicious activity yet","minor incident on route [pick(1,100)]","Code 7-X [pick("on route","in sector")] [pick(1,100)], situation is under control","seeing a lot of traffic on route [pick(1,100)]","caught a couple of smugglers [pick("on route","in sector")] [pick(1,100)]","sustained some damage in a skirmish just now, we're heading back for repairs") + msg("[using_map.starsys_name] Defense Control, this is [combined_first_name] reporting in, [statusupdate], over.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[using_map.starsys_name] Defense Control copies, [combined_first_name]. Keep us updated, out.","[using_map.starsys_name] Defense Control") + //SDF event: end patrol + if("sdfendingpatrol") + var/appreciation = pick("Copy","Understood","Affirmative","10-4","Roger that") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name], returning from our system patrol route, requesting permission to [landing_short].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //DefCon event: hostile found + if("hostiledetected") + var/orders = pick("Engage on sight","Engage with caution","Engage with extreme prejudice","Engage at will","Search and destroy","Bring them in alive, if possible","Interdict and detain","Keep your eyes peeled","Bring them in, dead or alive","Stay alert") + msg("This is [using_map.starsys_name] Defense Control to all SDF assets. Priority update follows.","[using_map.starsys_name] Defense Control") + sleep(5 SECONDS) + msg("Be on the lookout for [combined_first_name], last sighted near route [rand(1,100)]. [orders]. DefCon, out.","[using_map.starsys_name] Defense Control") + //Ship event: distress call, under attack + if("distress") + msg("+Mayday, mayday, mayday!+ This is [combined_first_name] declaring an emergency! We are under attack by [combined_second_name]! Requesting immediate assistance!","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.starsys_name] Defense Control, copy. SDF is en route, contact on [sdfchannel].") + sleep(5 SECONDS) + msg("Understood [using_map.starsys_name] Defense Control, switching now.","[prefix] [shipname]") + //Control event: travel advisory + if("traveladvisory") + var/flightwarning = pick("Solar flare activity is spiking and expected to cause issues along main flight lanes [rand(1,33)], [rand(34,67)], and [rand(68,100)]","Pirate activity is on the rise, stay close to System Defense vessels","We're seeing a rise in illegal salvage operations, please report any unusual activity to the nearest SDF vessel via channel [sdfchannel]","Vox Marauder activity is higher than usual, report any unusual activity to the nearest System Defense vessel","A quarantined [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","A prison [pick("fleet","convoy")] is passing through the system along route [rand(1,100)], please observe minimum safe distance","Traffic volume is higher than normal, expect processing delays","Anomalous bluespace activity detected along route [rand(1,100)], exercise caution","Smugglers have been particularly active lately, expect increased security scans","Depots are currently experiencing a fuel shortage, expect delays and higher rates","Asteroid mining has displaced debris dangerously close to main flight lanes on route [rand(1,100)], watch for potential impactors","[pick("Pirate","Vox Marauder")] and System Defense forces are currently engaged in skirmishes throughout the system, please steer clear of any active combat zones","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] has collided with a [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] near route [rand(1,100)], watch for debris and do not impede emergency service vessels","A [pick("fuel tanker","cargo liner","passenger liner","freighter","transport ship")] on route [rand(1,100)] has experienced total engine failure. Emergency response teams are en route, please observe minimum safe distances and do not impede emergency service vessels","Transit routes have been recalculated to adjust for planetary drift. Please synch your astronav computers as soon as possible to avoid delays and difficulties","[pick("Bounty hunters","System Defense officers","Mercenaries")] are currently searching for a wanted fugitive, report any sightings of suspicious activity to System Defense via channel [sdfchannel]","Mercenary contractors are currently conducting aggressive [pick("piracy","marauder")] suppression operations",10;"It's space carp breeding season. [pick("Stars","Gods","God","Goddess")] have mercy on you all, because the carp won't") + msg("This is [using_map.dock_name] Control to all vessels in the [using_map.starsys_name] system. Priority travel advisory follows.") + sleep(5 SECONDS) + msg("[flightwarning]. Control out.") + //Control event: warning to a specific vessel + if("pathwarning") + var/navhazard = pick("a pocket of intense radiation","a pocket of unstable gas","a debris field","a secure installation","an active combat zone","a quarantined ship","a quarantined installation","a quarantined sector","a live-fire SDF training exercise","an ongoing Search & Rescue operation") + var/confirm = pick("Understood","Roger that","Affirmative","Our bad","Thanks for the heads up") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","Godspeed","Stars guide you","Don't let it happen again") + msg("[combined_first_name], this is [using_map.dock_name] Control, your [pick("ship","vessel","starship")] is approaching [navhazard], observe minimum safe distance and adjust your heading appropriately.") + sleep(5 SECONDS) + msg("[confirm] [using_map.dock_name] Control, adjusting course.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Your compliance is appreciated, [combined_first_name]. [safetravels].") + //Ship event: docking request (generic) + if("dockingrequestgeneric") + var/appreciation = pick("Much appreciated","Many thanks","Understood","Cheers") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: docking request (denied) + if("dockingrequestdenied") + var/reason = pick("we don't have any landing pads large enough for your vessel","we don't have the necessary facilities for your vessel type or class") + var/disappointed = pick("That's unfortunate. [combined_first_name], out.","Damn shame. We'll just have to keep moving. [combined_first_name], out.","[combined_first_name], out.") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_move].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason].") + sleep(5 SECONDS) + msg("Understood, [using_map.dock_name] Control. [disappointed]","[prefix] [shipname]") + //Ship event: docking request (delayed) + if("dockingrequestdelayed") + var/reason = pick("we don't have any free landing pads right now, please hold for three minutes","you're too far away, please close to ten thousand meters","we're seeing heavy traffic around the landing pads right now, please hold for three minutes","we're currently cleaning up a fuel spill on one of our free pads, please hold for three minutes","there are loose containers on our free pads, stand by for a couple of minutes whilst we secure them","another vessel has aerospace priority right now, please hold for three minutes") + var/appreciation = pick("Much appreciated","Many thanks","Understood","Perfect, thank you","Excellent, thanks","Great","Copy that") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name], [pick("stopping by","passing through")] on our way to [destname], requesting permission to [landing_short].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Request denied, [reason] and resubmit your request.") + sleep(5 SECONDS) + msg("Understood, [using_map.dock_name] Control.","[prefix] [shipname]") + sleep(180 SECONDS) + msg("[callname], this is [combined_first_name], resubmitting [landing_move].","[prefix] [shipname]") + sleep (5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: docking request (resupply) + if("dockingrequestsupply") + var/preintensifier = pick(75;"getting ",75;"running ","") //whitespace hack, sometimes they'll add a preintensifier, but not always + var/intensifier = pick("very","pretty","critically","extremely","dangerously","desperately","kinda","a little","a bit","rather","sorta") + var/low_thing = pick("ammunition","munitions","clean water","food","spare parts","medical supplies","reaction mass","gas","hydrogen fuel","phoron fuel","fuel",10;"tea",10;"coffee",10;"soda",10;"pizza",10;"beer",10;"booze",10;"vodka",10;"snacks") //low chance of a less serious shortage + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name]. We're [preintensifier][intensifier] low on [low_thing]. Requesting permission to [landing_short] for resupply.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in.") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: docking request (repair/maint) + if("dockingrequestrepair") + var/damagestate = pick("We've experienced some hull damage","We're suffering minor system malfunctions","We're having some technical issues","We're overdue maintenance","We have several minor space debris impacts","We've got some battle damage here","Our reactor output is fluctuating","We're hearing some weird noises from the [pick("engines","pipes","ducting","HVAC")]","Our artificial gravity generator has failed","Our life support is failing","Our environmental controls are busted","Our water recycling system has shorted out","Our navcomp is freaking out","Our systems are glitching out","We just got caught in a solar flare","We had a close call with an asteroid","We have a minor [pick("fuel","water","oxygen","gas")] leak","We have depressurized compartments","We have a hull breach","Our shield generator is on the fritz","Our RCS is acting up","One of our [pick("hydraulic","pneumatic")] systems has depressurized","Our repair bots are malfunctioning") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name]. [damagestate]. Requesting permission to [landing_short] for repairs and maintenance.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Repair crews are standing by, contact them on channel [engchannel].") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: docking request (medical) + if("dockingrequestmedical") + var/medicalstate = pick("multiple casualties","several cases of radiation sickness","an unknown virus","an unknown infection","a critically injured VIP","sick refugees","multiple cases of food poisoning","injured passengers","sick passengers","injured engineers","wounded marines","a delicate situation","a pregnant passenger","injured castaways","recovered escape pods","unknown escape pods") + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","We owe you one","I owe you one","Perfect, thank you") + var/dockingplan = pick("Starting final approach now.","Commencing landing procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name]. We have [medicalstate] on board. Requesting permission to [landing_short] for medical assistance.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Medtechs are standing by, contact them on channel [medchannel].") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: docking request (security) + if("dockingrequestsecurity") + var/species = pick("human","unathi","lizard","tajaran","feline","skrell","akula","promethean","sergal","synthetic","robotic","teshari","avian","vulpkanin","canine","vox","zorren","hybrid","mixed-species","vox","grey","alien") + var/securitystate = pick("several [species] convicts","a captured pirate","a wanted criminal","[species] stowaways","incompetent [species] shipjackers","a delicate situation","a disorderly passenger","disorderly [species] passengers","ex-mutineers","a captured vox marauder","captured vox marauders","stolen goods","a container full of confiscated contraband","containers full of confiscated contraband",5;"a very lost shadekin",5;"a raging case of [pick("spiders","crabs")]") //gotta have a little something to lighten the mood now and then + var/appreciation = pick("Much appreciated","Many thanks","Understood","You're a lifesaver","Perfect, thank you") + var/dockingplan = pick("Starting final approach now.","Commencing docking procedures.","Autopilot engaged.","Approach vector locked in.","In the pipe, five by five.") + msg("[callname], this is [combined_first_name]. We have [securitystate] on board and require security assistance. Requesting permission to [landing_short].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted, proceed to [landing_zone]. Follow the green lights on your way in. Security teams are standing by, contact them on channel [secchannel].") + sleep(5 SECONDS) + msg("[appreciation], [using_map.dock_name] Control. [dockingplan]","[prefix] [shipname]") + //Ship event: undocking request + if("undockingrequest") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") + var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") + var/takeoff = pick("depart","launch") + msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") + sleep(5 SECONDS) + msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") + //SDF event: starting patrol + if("sdfbeginpatrol") + var/safetravels = pick("Fly safe out there","Good luck","Good hunting","Safe travels","Godspeed","Stars guide you") + var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too") + var/takeoff = pick("depart","launch","take off","dust off") + msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone] to begin system patrol.","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Permission granted. Docking clamps released. [safetravels].") + sleep(5 SECONDS) + msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] beginning system patrol, out.","[prefix] [shipname]") + //Ship event: undocking request (denied) + if("undockingdenied") + var/takeoff = pick("depart","launch") + var/denialreason = pick("Security is requesting a full cargo inspection","Your ship has been impounded for multiple [pick("security","safety")] violations","Your ship is currently under quarantine lockdown","We have reason to believe there's an issue with your papers","Security personnel are currently searching for a fugitive and have ordered all outbound ships remain grounded until further notice") + msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Negative [combined_first_name], request denied. [denialreason].") + //Ship event: undocking request (delayed) + if("undockingdelayed") + var/denialreason = pick("Docking clamp malfunction, please hold","Fuel lines have not been secured","Ground crew are still on the pad","Loose containers are on the pad","Exhaust deflectors are not yet in position, please hold","There's heavy traffic right now, it's not safe for your vessel to launch","Another vessel has aerospace priority at this moment","Port officials are still aboard") + var/takeoff = pick("depart","launch") + var/safetravels = pick("Fly safe out there","Good luck","Safe travels","See you next week","Godspeed","Stars guide you") + var/thanks = pick("Appreciated","Thanks","Don't worry about us","We'll be fine","You too","So long") + msg("[callname], this is [combined_first_name], requesting permission to [takeoff] from [landing_zone].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("Negative [combined_first_name], request denied. [denialreason]. Try again in three minutes.") + sleep(180 SECONDS) //yes, three minutes + msg("[callname], this is [combined_first_name], re-requesting permission to depart from [landing_zone].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control. Everything appears to be in order now, permission granted. Docking clamps released. [safetravels].") + sleep(5 SECONDS) + msg("[thanks], [using_map.dock_name] Control. This is [combined_first_name] setting course for [destname], out.","[prefix] [shipname]") + else //time for generic message + msg("[callname], this is [combined_first_name] on [mission] [pick(mission_noun)] to [destname], requesting [request].","[prefix] [shipname]") + sleep(5 SECONDS) + msg("[combined_first_name], this is [using_map.dock_name] Control, [response].") + sleep(5 SECONDS) + msg("[using_map.dock_name] Control, [yes ? "thank you" : "understood"], out.","[prefix] [shipname]") + return //oops, forgot to restore this + +/* //OLD BLOCK, for reference + //Ship sends request to ATC + msg(full_request,"[prefix] [shipname]" + sleep(5 SECONDS) + //ATC sends response to ship + msg(full_response) + sleep(5 SECONDS) + //Ship sends response to ATC + msg(full_closure,"[prefix] [shipname]") + return +*/ \ No newline at end of file diff --git a/code/modules/busy_space_vr/loremaster.dm b/code/modules/busy_space_vr/loremaster.dm new file mode 100644 index 0000000000..28dca0055b --- /dev/null +++ b/code/modules/busy_space_vr/loremaster.dm @@ -0,0 +1,16 @@ +//I AM THE LOREMASTER, ARE YOU THE GATEKEEPER? + +var/datum/lore/loremaster/loremaster = new/datum/lore/loremaster + +/datum/lore/loremaster + var/list/organizations = list() + +/datum/lore/loremaster/New() + + var/list/paths = typesof(/datum/lore/organization) - /datum/lore/organization + for(var/path in paths) + // Some intermediate paths are not real organizations (ex. /datum/lore/organization/mil). Only do ones with names + var/datum/lore/organization/instance = path + if(initial(instance.name)) + instance = new path() + organizations[path] = instance diff --git a/code/modules/busy_space_vr/organizations.dm b/code/modules/busy_space_vr/organizations.dm new file mode 100644 index 0000000000..05df67ce87 --- /dev/null +++ b/code/modules/busy_space_vr/organizations.dm @@ -0,0 +1,2783 @@ +//Datums for different factions that can be used by busy_space +/datum/lore/organization + var/name = "" // Organization's name + var/short_name = "" // Organization's shortname (NanoTrasen for "NanoTrasen Incorporated") + var/acronym = "" // Organization's acronym, e.g. 'NT' for NanoTrasen'. + var/desc = "" // One or two paragraph description of the organization, but only current stuff. Currently unused. + var/history = "" // Historical discription of the organization's origins Currently unused. + var/work = "" // Short description of their work, eg "an arms manufacturer" + var/headquarters = "" // Location of the organization's HQ. Currently unused. + var/motto = "" // A motto/jingle/whatever, if they have one. Currently unused. + + var/list/ship_prefixes = list() //Some might have more than one! Like NanoTrasen. Value is the mission they perform, e.g. ("ABC" = "mission desc") + var/complex_tasks = FALSE //enables complex task generation + + //how does it work? simple: if you have complex tasks enabled, it goes; PREFIX + TASK_TYPE + FLIGHT_TYPE + //e.g. NDV = Asset Protection + Patrol + Flight + //this allows you to use the ship prefix for subfactions (warbands, religions, whatever) within a faction, and define task_types at the faction level + //task_types are picked from completely at random in air_traffic.dm, much like flight_types, so be careful not to potentially create combos that make no sense! + + var/list/task_types = list( + "logistics", + "patrol", + "training", + "peacekeeping", + "escort", + "search and rescue" + ) + var/list/flight_types = list( //operations and flights - we can override this if we want to remove the military-sounding ones or add our own + "flight", + "mission", + "route", + "assignment" + ) + var/list/ship_names = list( //Names of spaceships. This is a mostly generic list that all the other organizations inherit from if they don't have anything better. + "Scout", + "Beacon", + "Signal", + "Freedom", + "Liberty", + "Enterprise", + "Glory", + "Axiom", + "Eternal", + "Harmony", + "Light", + "Discovery", + "Endeavour", + "Explorer", + "Swift", + "Dragonfly", + "Ascendant", + "Tenacious", + "Pioneer", + "Surveyor", + "Haste", + "Radiant", + "Luminous", + "Calypso", + "Eclipse", + "Maverick", + "Polaris", + "Orion", + "Odyssey", + "Relentless", + "Valor", + "Zodiac", + "Avenger", + "Defiant", + "Dauntless", + "Interceptor", + "Providence", + "Thunderchild", + "Defender", + "Ranger", + "River", + "Jubilee", + "Gumdrop", + "Spider", + "Columbia", + "Eagle", + "Intrepid", + "Odyssey", + "Aquarius", + "Kitty Hawk", + "Antares", + "Falcon", + "Casper", + "Orion", + "Challenger" + ) + var/list/destination_names = list() //Names of static holdings that the organization's ships visit regularly. + + var/lawful = TRUE //Are we exempt from routine inspections? to avoid incidents where SysDef appears to go rogue -- defaults to TRUE now (regular ships always get the "soft" result) + var/hostile = FALSE //Are we explicitly lawless, hostile, or otherwise bad? allows for a finer alignment system, since my last checks weren't working properly + var/sysdef = FALSE //Are we the space cops? + var/autogenerate_destination_names = TRUE //Pad the destination lists with some extra random ones? see the proc below for info on that + +/datum/lore/organization/New() + ..() + if(autogenerate_destination_names) // Lets pad out the destination names. + var/i = rand(15, 30) //significantly increased from original values due to the greater length of rounds on YW + + //known planets and exoplanets, plus fictional ones + var/list/planets = list( + /* real planets in our solar system */ + "Earth","Luna","Mars","Titan","Europa", + /* named exoplanets, god knows if they're habitable */ + "Spe","Arion","Arkas","Orbitar","Dimidium", + "Galileo","Brahe","Lipperhey","Janssen","Harriot", + "Aegir","Amateru","Dagon","Meztli","Smertrios", + "Hypatia","Quijote","Dulcinea","Rocinante","Sancho", + "Thestias","Saffar","Samh","Majriti","Fortitudo", + "Draugr","Arber","Tassili","Madriu","Naqaya", + "Bocaprins","Yanyan","Sissi","Tondra","Eburonia", + "Drukyul","Yvaga","Naron","Guarani","Mastika", + "Bendida","Nakanbe","Awasis","Caleuche","Wangshu", + "Melquiades","Pipitea","Ditso","Asye","Veles", + "Finlay","Onasilos","Makropolus","Surt","Boinayel", + "Eyeke","Cayahuanca","Hamarik","Abol","Hiisi", + "Belisama","Mintome","Neri","Toge","Iolaus", + "Koyopa","Independance","Ixbalanque","Magor","Fold", + "Santamasa","Noifasui","Kavian","Babylonia","Bran", + "Alef","Lete","Chura","Wadirum","Buru", + "Umbaasaa","Vytis","Peitruss","Trimobe","Baiduri", + "Ggantija","Cuptor","Xolotl","Isli","Hairu", + "Bagan","Laligurans","Kereru","Equiano","Albmi", + "Perwana","Pollera","Tumearandu","Sumajmajta","Haik", + "Leklsullun","Pirx","Viriato","Aumatex","Negoiu", + "Teberda","Dopere","Vlasina","Viculus","Kralomoc", + "Iztok","Krotoa","Halla","Riosar","Samagiya", + "Isagel","Eiger","Ugarit","Sazum","Maeping", + "Agouto","Ramajay","Khomsa","Gokturk","Barajeel", + "Cruinlagh","Mulchatria","Ibirapita","Madalitso", + /* fictional planets from polarislore */ + "Sif","Kara","Rota","Root","Toledo, New Ohio", + "Meralar","Adhomai","Binma","Kishar","Anshar", + "Nisp","Elysium","Sophia, El","New Kyoto", + "Angessa's Pearl, Exalt's Light","Oasis","Love" + ) + + //existing systems, pruned for duplicates, includes systems that contain suspected or confirmed exoplanets + var/list/systems = list( + /* real solar systems, specifically ones that have possible planets */ + "Sol","Alpha Centauri","Sirius","Vega","Tau Ceti", + "Altair","Epsilon Eridani","Fomalhaut","Mu Arae","Pollux", + "Wolf 359","Ross 128","Gliese 1061","Luyten's Star","Teegarden's Star", + "Kapteyn","Wolf 1061","Aldebaran","Proxima Centauri","Kepler-90", + "HD 10180","HR 8832","TRAPPIST-1","55 Cancri","Gliese 876", + "Upsilon Andromidae","Mu Arae","WASP-47","82 G. Eridani","Rho Coronae Borealis", + "Pi Mensae","Beta Pictoris","Gamma Librae","Gliese 667 C","LHS 1140", + "Phact", + /* fictional systems from Polaris and other sources*/ + "Zhu Que","Oasis","Vir","Gavel","Ganesha", + "Sidhe","New Ohio","Parvati","Mahi-Mahi","Nyx", + "New Seoul","Kess-Gendar","Raphael","El","Eutopia", + /* skrell */ + "Qerr'valis","Harr'Qak","Qerrna-Lakirr","Kauq'xum", + /* tajaran */ + "Rarkajar","Arrakthiir","Mesomori", + /* other */ + "Vazzend","Thoth","Jahan's Post","Silk","New Singapore", + "Stove","Viola","Isavau's Gamble","Samsara", + "Vounna","Relan","Whythe","Exalt's Light", + /* generic territories */ + "deep space", + "Commonwealth space", + "Commonwealth territory", + "ArCon space", + "ArCon territory", + "independent space", + "a demilitarized zone", + "Elysian space", + "Elysian territory", + "Salthan space", + "Salthan territory", + "Skrell space", + "Skrell territories", + "Tajaran space", + "Hegemonic space", + "Hegemonic territory" + ) + var/list/owners = list("a government", "a civilian", "a corporate", "a private", "an independent", "a military") + var/list/purpose = list("an exploration", "a trade", "a research", "a survey", "a military", "a mercenary", "a corporate", "a civilian", "an independent") + + //unique or special locations + var/list/unique = list("the Jovian subcluster","Isavau International Spaceport","Terminus Station","Casini's Reach","the Shelf flotilla","the Ue'Orsi flotilla","|Heaven| Orbital Complex, Alpha Centauri","the |Saint Columbia| Complex") + + var/list/orbitals = list("[pick(owners)] shipyard","[pick(owners)] dockyard","[pick(owners)] station","[pick(owners)] vessel","a habitat","[pick(owners)] refinery","[pick(owners)] research facility","an industrial platform","[pick(owners)] installation") + var/list/surface = list("a colony","a settlement","a trade outpost","[pick(owners)] supply depot","a fuel depot","[pick(owners)] installation","[pick(owners)] research facility") + var/list/deepspace = list("[pick(owners)] asteroid base","a freeport","[pick(owners)] shipyard","[pick(owners)] dockyard","[pick(owners)] station","[pick(owners)] vessel","[pick(owners)] habitat","a trade outpost","[pick(owners)] supply depot","a fuel depot","[pick(owners)] installation","[pick(owners)] research facility") + var/list/frontier = list("[pick(purpose)] [pick("ship","vessel","outpost")]","a waystation","an outpost","a settlement","a colony") + + //patterns; orbital ("an x orbiting y"), surface ("an x on y"), deep space ("an x in y"), the frontier ("an x on the frontier") + //biased towards inhabited space sites + while(i) + destination_names.Add("[pick("[pick(orbitals)] orbiting [pick(planets)]","[pick(surface)] on [pick(planets)]","[pick(deepspace)] in [pick(systems)]",20;"[pick(unique)]",30;"[pick(frontier)] on the frontier")]") + i-- + //extensive rework for a much greater degree of variety compared to the old system, lists now include known exoplanets and star systems currently suspected or confirmed to have exoplanets + +////////////////////////////////////////////////////////////////////////////////// + +// TSCs +/datum/lore/organization/tsc/nanotrasen + name = "NanoTrasen Incorporated" + short_name = "NanoTrasen " + acronym = "NT" + desc = "NanoTrasen is one of the foremost research and development companies in Commonwealth space. \ + Originally focused on consumer products, their swift move into the field of Phoron has lead to \ + them being the foremost experts on the substance and its uses. In the modern day, NanoTrasen prides \ + itself on being an early adopter to as many new technologies as possible, often offering the newest \ + products to their employees. In an effort to combat complaints about being 'guinea pigs', Nanotrasen \ + also offers one of the most comprehensive medical plans in Commonwealth space, up to and including cloning \ + and therapy.\ +

\ + NT's most well known products are its phoron based creations, especially those used in Cryotherapy. \ + It also boasts an prosthetic line, which is provided to its employees as needed, and is used as an incentive \ + for newly tested posibrains to remain with the company. \ +

\ + NT's ships are named for famous scientists." + history = "" // To be written someday. + work = "research giant" + headquarters = "Luna, Sol" + motto = "" + + ship_prefixes = list("NTV" = "a general operations", "NEV" = "an exploration", "NGV" = "a hauling", "NDV" = "a patrol", "NRV" = "an emergency response", "NDV" = "an asset protection") + //Scientist naming scheme + ship_names = list( + "Bardeen", + "Einstein", + "Feynman", + "Sagan", + "Tyson", + "Galilei", + "Jans", + "Fhriede", + "Franklin", + "Tesla", + "Curie", + "Darwin", + "Newton", + "Pasteur", + "Bell", + "Mendel", + "Kepler", + "Edison", + "Cavendish", + "Nye", + "Hawking", + "Aristotle", + "Von Braun", + "Kaku", + "Oppenheimer", + "Renwick", + "Hubble", + "Alcubierre", + "Robineau", + "Glass" + ) + // Note that the current station being used will be pruned from this list upon being instantiated + destination_names = list( + "NT HQ on Luna", + "NSS Exodus in Nyx", + "NCS Northern Star in Vir", + "NLS Southern Cross in Vir", + "NAS Vir Central Command", + "NAB Smythside Central Headquarters in Sol", + "NAS Zeus orbiting Virgo-Prime", + "NIB Posideon in Alpha Centauri", + "NTB Anur on Virgo-Prime", + "a phoron refinery in Vilous", + "a dockyard orbiting Virgo-Prime", + "an asteroid orbiting Virgo 3", + "Vir Interstellar Spaceport" + ) + +/datum/lore/organization/tsc/nanotrasen/New() + ..() + spawn(1) // BYOND shenanigans means using_map is not initialized yet. Wait a tick. + // Get rid of the current map from the list, so ships flying in don't say they're coming to the current map. + var/string_to_test = "[using_map.station_name] in [using_map.starsys_name]" + if(string_to_test in destination_names) + destination_names.Remove(string_to_test) + +/datum/lore/organization/tsc/hephaestus + name = "Hephaestus Industries" + short_name = "Hephaestus " + acronym = "HI" + desc = "Hephaestus Industries is the largest supplier of arms, ammunition, and small millitary vehicles in Commonwealth space. \ + Hephaestus products have a reputation for reliability, and the corporation itself has a noted tendency to stay removed \ + from corporate politics. They enforce their neutrality with the help of a fairly large asset-protection contingent which \ + prevents any contracting polities from using their own materiel against them. The Commonwealth itself is one of Hephaestus' largest \ + bulk contractors owing to the above factors. \ +

\ + Hephaestus' fleet uses identifiers from various deities and spirits of war from Earth's various belief systems." + history = "" + work = "arms manufacturer" + headquarters = "Luna, Sol" + motto = "" + + ship_prefixes = list("HCV" = "a general operations", "HTV" = "a freight", "HLV" = "a munitions resupply", "HDV" = "an asset protection", "HDV" = "a preemptive deployment") + //War God Theme, updated + ship_names = list( + "Anhur", + "Bast", + "Horus", + "Maahes", + "Neith", + "Pakhet", + "Sekhmet", + "Set", + "Sobek", + "Maher", + "Kokou", + "Ogoun", + "Oya", + "Kovas", + "Agrona", + "Andraste", + "Anann", + "Badb", + "Belatucadros", + "Cicolluis", + "Macha", + "Neit", + "Nemain", + "Rudianos", + "Chiyou", + "Guan Yu", + "Jinzha", + "Nezha", + "Zhao Lang", + "Laran", + "Menrva", + "Tyr", + "Woden", + "Freya", + "Odin", + "Ullr", + "Ares", + "Deimos", + "Enyo", + "Kratos", + "Kartikeya", + "Mangala", + "Parvati", + "Shiva", + "Vishnu", + "Shaushka", + "Wurrukatte", + "Hadur", + "Futsunushi", + "Sarutahiko", + "Takemikazuchi", + "Neto", + "Agasaya", + "Belus", + "Ishtar", + "Shala", + "Huitzilopochtli", + "Tlaloc", + "Xipe-Totec", + "Qamaits", + "'Oro", + "Rongo", + "Ku", + "Pele", + "Maru", + "Tumatauenga", + "Bellona", + "Juno", + "Mars", + "Minerva", + "Victoria", + "Anat", + "Astarte", + "Perun", + "Cao Lo" + ) + destination_names = list( + "our headquarters on Luna", + "a Commonwealth dockyard on Luna", + "a Fleet outpost in the Almach Rim", + "a Fleet outpost on the Moghes border" + ) + +/datum/lore/organization/tsc/vey_med + name = "Vey-Medical" //The Wiki displays them as Vey-Medical. + short_name = "Vey-Med " + acronym = "VM" + desc = "Vey-Med is one of the newer TSCs on the block and is notable for being largely owned and operated by Skrell. \ + Despite the suspicion and prejudice leveled at them for their alien origin, Vey-Med has obtained market dominance in \ + the sale of medical equipment-- from surgical tools to large medical devices to the Odysseus trauma response mecha \ + and everything in between. Their equipment tends to be top-of-the-line, most obviously shown by their incredibly \ + human-like FBP designs. Vey's rise to stardom came from their introduction of resurrective cloning, although in \ + recent years they've been forced to diversify as their patents expired and NanoTrasen-made medications became \ + essential to modern cloning. \ +

\ + For reasons known only to the board, Vey-Med's ship names seem to follow the same naming pattern as the Dionae use." + history = "" + work = "medical equipment supplier" + headquarters = "Toledo, New Ohio" + motto = "" + + ship_prefixes = list("VMV" = "a general operations", "VTV" = "a transportation", "VHV" = "a medical resupply", "VSV" = "a research", "VRV" = "an emergency medical support") + // Diona names, mostly + ship_names = list( + "Wind That Stirs The Waves", + "Sustained Note Of Metal", + "Bright Flash Reflecting Off Glass", + "Veil Of Mist Concealing The Rock", + "Thin Threads Intertwined", + "Clouds Drifting Amid Storm", + "Loud Note And Breaking", + "Endless Vistas Expanding Before The Void", + "Fire Blown Out By Wind", + "Star That Fades From View", + "Eyes Which Turn Inwards", + "Joy Without Which The World Would Come Undone", + "A Thousand Thousand Planets Dangling From Branches", + "Light Streaming Through Interminable Branches", + "Smoke Brought Up From A Terrible Fire", + "Light of Qerr'Valis", + "King Xae'uoque", + "Memory of Kel'xi", + "Xi'Kroo's Herald" + ) + destination_names = list( + "our headquarters on Toledo, New Ohio", + "a research facility in Samsara", + "a sapientarian mission in the Almach Rim" + ) + +/datum/lore/organization/tsc/zeng_hu + name = "Zeng-Hu Pharmaceuticals" + short_name = "Zeng-Hu " + acronym = "ZH" + desc = "Zeng-Hu is an old TSC, based in the Sol system. Until the discovery of Phoron, Zeng-Hu maintained a stranglehold \ + on the market for medications, and many household names are patented by Zeng-Hu-- Bicaridine, Dylovene, Tricordrazine, \ + and Dexalin all came from Zeng-Hu medical laboratories. Zeng-Hu's fortunes have been in decline as Nanotrasen's near monopoly \ + on phoron and cloning research cuts into their R&D and Vey-Med's superior medical equipment effectively decimated their own equipment \ + interests. The three-way rivalry between these companies for dominance in the medical field is well-known and a matter of \ + constant economic speculation. \ +

\ + Not to be outdone by NT in the recognition of famous figures, Zeng-Hu has adopted the names of famous physicians for their fleet." + history = "" + work = "pharmaceuticals company" + headquarters = "Earth, Sol" + motto = "" + + ship_prefixes = list("ZHV" = "a general operations", "ZTV" = "a transportation", "ZMV" = "a medical resupply", "ZRV" = "a medical research") + //ship names: a selection of famous physicians who advanced the cause of medicine + ship_names = list( + "Averroes", + "Avicenna", + "Banting", + "Billroth", + "Blackwell", + "Blalock", + "Charaka", + "Chauliac", + "Cushing", + "Domagk", + "Galen", + "Fauchard", + "Favaloro", + "Fleming", + "Fracastoro", + "Goodfellow", + "Gray", + "Harvey", + "Heimlich", + "Hippocrates", + "Hunter", + "Isselbacher", + "Jenner", + "Joslin", + "Kocher", + "Laennec", + "Lane-Claypon", + "Lister", + "Lower", + "Madhav", + "Maimonides", + "Marshall", + "Mayo", + "Meyerhof", + "Minot", + "Morton", + "Needleman", + "Nicolle", + "Osler", + "Penfield", + "Raichle", + "Ransohoff", + "Rhazes", + "Semmelweis", + "Starzl", + "Still", + "Susruta", + "Urbani", + "Vesalius", + "Vidius", + "Whipple", + "White", + "Worcestor", + "Yegorov", + "Xichun" + ) + destination_names = list( + "our headquarters on Earth" + ) + +/datum/lore/organization/tsc/ward_takahashi + name = "Ward-Takahashi General Manufacturing Conglomerate" + short_name = "Ward-Takahashi " + acronym = "WT" + desc = "Ward-Takahashi focuses on the sale of small consumer electronics, with its computers, communicators, \ + and even mid-class automobiles a fixture of many households. Less famously, Ward-Takahashi also supplies most \ + of the AI cores on which vital control systems are mounted, and it is this branch of their industry that has \ + led to their tertiary interest in the development and sale of high-grade AI systems. Ward-Takahashi's economies \ + of scale frequently steal market share from Nanotrasen's high-price products, leading to a bitter rivalry in the \ + consumer electronics market. \ +

\ + Ward-Takahashi are a mild anomaly in the TSC fleet-naming game, as they've opted to use stellar phenomena." + history = "" + work = "electronics manufacturer" + headquarters = "" + motto = "" + + ship_prefixes = list("WTV" = "a general operations", "WTFV" = "a freight", "WTGV" = "a transport", "WTDV" = "an asset protection") + ship_names = list( + "Comet", + "Meteor", + "Heliosphere", + "Bolide", + "Superbolide", + "Aurora", + "Nova", + "Supernova", + "Nebula", + "Galaxy", + "Starburst", + "Constellation", + "Pulsar", + "Quark", + "Void", + "Asteroid", + "Wormhole", + "Sunspot", + "Supercluster", + "Supergiant", + "Protostar", + "Magnetar", + "Moon", + "Supermoon", + "Anomaly", + "Drift", + "Stream", + "Rift", + "Curtain", + "Planetar", + "Quasar", + "Binary" + ) + destination_names = list() + +/datum/lore/organization/tsc/bishop + name = "Bishop Cybernetics" + short_name = "Bishop " + acronym = "BC" + desc = "Bishop's focus is on high-class, stylish cybernetics. A favorite among transhumanists (and loathed by all \ + bioconservatives), Bishop manufactures not only prostheses but also brain augmentation, synthetic organ replacements, \ + and odds and ends like implanted wrist-watches. Their business model tends towards smaller, boutique operations, giving \ + it a reputation for high price and luxury, with Bishop cyberware often rivalling Vey-Med's for cost. Bishop's reputation \ + for catering towards the interests of human augmentation enthusiasts instead of positronics have earned it ire from the \ + Positronic Rights Group and puts it in ideological (but not economic) competition with Morpheus Cyberkinetics. \ +

\ + Each vessel in Bishop's sleek and stylish fleet is intended to advertise the corporate style, and bears the name of a famous mechanical engineer." + history = "" + work = "cybernetics and augmentation manufacturer" + headquarters = "" + motto = "" + + ship_prefixes = list("BCV" = "a general operations", "BCTV" = "a transportation", "BCSV" = "a research exchange") + //famous mechanical engineers + ship_names = list( + "Al-Jazari", + "Al-Muradi", + "Al-Zarqali", + "Archimedes", + "Arkwright", + "Armstrong", + "Babbage", + "Barsanti", + "Benz", + "Bessemer", + "Bramah", + "Brunel", + "Cardano", + "Cartwright", + "Cayley", + "Clement", + "Leonardo da Vinci", + "Diesel", + "Drebbel", + "Fairbairn", + "Fontana", + "Fourneyron", + "Fulton", + "Fung", + "Gantt", + "Garay", + "Hackworth", + "Harrison", + "Hornblower", + "Jacquard", + "Jendrassik", + "Leibniz", + "Ma Jun", + "Maudslay", + "Metzger", + "Murdoch", + "Nasmyth", + "Parsons", + "Rankine", + "Reynolds", + "Roberts", + "Scheutz", + "Sikorsky", + "Somerset", + "Stephenson", + "Stirling", + "Tesla", + "Vaucanson", + "Vishweswarayya", + "Wankel", + "Watt", + "Wiberg" + ) + destination_names = list( + "a medical facility in Angessa's Pearl" + ) + +/datum/lore/organization/tsc/morpheus + name = "Morpheus Cyberkinetics" + short_name = "Morpheus " + acronym = "MC" + desc = "The only large corporation run by positronic intelligences, Morpheus caters almost exclusively to their sensibilities \ + and needs. A product of the synthetic colony of Shelf, Morpheus eschews traditional advertising to keep their prices low and \ + relied on word of mouth among positronics to reach their current economic dominance. Morpheus in exchange lobbies heavily for \ + positronic rights, sponsors positronics through their Jans-Fhriede test, and tends to other positronic concerns to earn them \ + the good-will of the positronics, and the ire of those who wish to exploit them. \ +

\ + Morpheus' fleet bears the names of periodic elements. They initially wanted to go with complex compounds, but realized that \ + such designations would be unwieldy and inefficient for regular usage. In the event that multiple ships are working together, \ + they may use the periodic element as their flotilla designation, and a numerical identifier that corresponds with an isotope \ + of that element for individual ships." + history = "" + work = "cybernetics manufacturer" + headquarters = "Shelf flotilla" + motto = "" + + ship_prefixes = list("MCV" = "a general operations", "MTV" = "a freight", "MDV" = "a market protection", "MSV" = "an outreach") + //periodic elements; something 'unusual' for the posibrain TSC without being full on 'quirky' culture ship names (much as I love them, they're done to death) + ship_names = list( + "Hydrogen", + "Helium", + "Lithium", + "Beryllium", + "Boron", + "Carbon", + "Nitrogen", + "Oxygen", + "Fluorine", + "Neon", + "Sodium", + "Magnesium", + "Aluminium", + "Silicon", + "Phosphorus", + "Sulfur", + "Chlorine", + "Argon", + "Potassium", + "Calcium", + "Scandium", + "Titanium", + "Vanadium", + "Chromium", + "Manganese", + "Iron", + "Cobalt", + "Nickel", + "Copper", + "Zinc", + "Gallium", + "Germanium", + "Arsenic", + "Selenium", + "Bromine", + "Krypton", + "Rubidium", + "Strontium", + "Yttrium", + "Zirconium", + "Niobium", + "Molybdenum", + "Technetium", + "Ruthenium", + "Rhodium", + "Palladium", + "Silver", + "Cadmium", + "Indium", + "Tin", + "Antimony", + "Tellurium", + "Iodine", + "Xenon", + "Caesium", + "Barium" + ) + //some hebrew alphabet destinations for a little extra unusualness + destination_names = list( + "our headquarters, the Shelf flotilla", + "one of our factory complexes on Root", + "research outpost Aleph", + "logistics depot Dalet", + "research installation Zayin", + "research base Tsadi", + "manufacturing facility Samekh" + ) + +/datum/lore/organization/tsc/xion + name = "Xion Manufacturing Group" + short_name = "Xion " + acronym = "XMG" + desc = "Xion, quietly, controls most of the market for industrial equipment, especially on the frontier. Their portfolio includes mining exosuits, \ + factory equipment, rugged positronic chassis, and other pieces of equipment vital to the function of the economy. Xion \ + keeps its control of the market by leasing, not selling, their equipment, and through infamous and bloody patent protection \ + lawsuits. Xion are noted to be a favorite contractor for Commonwealth engineers, owing to their low cost and rugged design. \ + Dedicated frontiersmen tend to have an unfavorable view of the company however, as the leasing arrangements often make field repairs \ + challenging at best, and expensively contract-breaking at worst. Nobody wants an expensive piece of equipment to break down \ + three weeks of travel away from the closest Licensed Xion Repair Outlet. \ +

\ + Xion's fleet bears the name of mountains and terrain features on Mars." + history = "" + work = "industrial equipment manufacturer" + headquarters = "" + motto = "" + + ship_prefixes = list("XMV" = "a general operations", "XTV" = "a hauling", "XFV" = "a bulk transport", "XIV" = "a resupply") + //martian mountains + ship_names = list( + "Olympus Mons", + "Ascraeus Mons", + "Arsia Mons", + "Pavonis Mons", + "Elysium Mons", + "Hecates Tholus", + "Albor Tholus", + "Tharsis Tholus", + "Biblis Tholus", + "Alba Mons", + "Ulysses Tholus", + "Mount Sharp", + "Uranius Mons", + "Anseris Mons", + "Hadriacus Mons", + "Euripus Mons", + "Tyrrhenus Mons", + "Promethei Mons", + "Chronius Mons", + "Apollinaris Mons", + "Gonnus Mons", + "Syrtis Major Planum", + "Amphitrites Patera", + "Nili Patera", + "Pityusa Patera", + "Malea Patera", + "Peneus Patera", + "Labeatis Mons", + "Issidon Paterae", + "Pindus Mons", + "Meroe Patera", + "Orcus Patera", + "Oceanidum Mons", + "Horarum Mons", + "Peraea Mons", + "Octantis Mons", + "Galaxius Mons", + "Hellas Planitia" + ) + destination_names = list() + +/datum/lore/organization/tsc/ftu + name = "Free Trade Union" + short_name = "Trade Union " + acronym = "FTU" + desc = "The Free Trade Union is different from other transtellar companies in that they are not just a company; rather, they are a big conglomerate of various traders and merchants from all over the galaxy. The FTU is also partially responsible for many of the large scale 'freeport' trade stations across the known galaxy, even in non-human space. Generally, they are multi-purpose stations but they always keep areas filled with duty-free shops, where almost anything you can imagine can be found - so long as it's not outrageously illegal or hideously expensive.

They are the creators of the Tradeband language, created specially for being a lingua franca where every merchant can understand each other independent of language or nationality.

The Union doesn't maintain a particularly large fleet of its own; most members are card-carrying independents who fly under their own flags. When you do see a Union ship (they usually operate under the names of historic merchants) you can be assured that it's tending to something that the Union sees as being of the utmost importance to its interests." + history = "" + work = "" + headquarters = "" + motto = "" + + ship_prefixes = list("FTV" = "a general operations", "FTRP" = "a trade protection", "FTRR" = "a piracy suppression", "FTLV" = "a logistical support", "FTTV" = "a mercantile", "FTDV" = "a market establishment") + //famous merchants and traders, taken from Civ6's Great Merchants, plus the TSC's founder + ship_names = list( + "Isaac Adler", + "Colaeus", + "Marcus Licinius Crassus", + "Zhang Qian", + "Irene of Athens", + "Marco Polo", + "Piero de' Bardi", + "Giovanni de' Medici", + "Jakob Fugger", + "Raja Todar Mal", + "Adam Smith", + "John Jacob Astor", + "John Spilsbury", + "John Rockefeller", + "Sarah Breedlove", + "Mary Katherine Goddard", + "Helena Rubenstein", + "Levi Strauss", + "Melitta Bentz", + "Estee Lauder", + "Jamsetji Tata", + "Masaru Ibuka", + ) + destination_names = list( + "a Free Trade Union office", + "FTU HQ" + ) + +/datum/lore/organization/tsc/mbt + name = "Major Bill's Transportation" + short_name = "Major Bill's " + acronym = "MBT" + desc = "The most popular courier service and starliner, Major Bill's is an unassuming corporation whose greatest asset is their low cost and brand recognition. Major Bill's is known, perhaps unfavorably, for its mascot, Major Bill, a cartoonish military figure that spouts quotable slogans. Their main slogan, featured at least once in all their advertising, is \"With Major Bill's, you won't pay major bills!\", an earworm much of the galaxy longs to forget. \ +

\ + Their ships are named after some of Earth's greatest rivers." + history = "" + work = "courier and passenger transit" + headquarters = "Mars, Sol" + motto = "With Major Bill's, you won't pay major bills!" + + ship_prefixes = list("TTV" = "a general operations", "TTV" = "a transport", "TTV" = "a luxury transit", "TTV" = "a priority transit", "TTV" = "a secure data courier") + //ship names: big rivers + ship_names = list ( + "Nile", + "Kagera", + "Nyabarongo", + "Mwogo", + "Rukarara", + "Amazon", + "Ucayali", + "Tambo", + "Ene", + "Mantaro", + "Yangtze", + "Mississippi", + "Missouri", + "Jefferson", + "Beaverhead", + "Red Rock", + "Hell Roaring", + "Yenisei", + "Angara", + "Yelenge", + "Ider", + "Ob", + "Irtysh", + "Rio de la Plata", + "Parana", + "Rio Grande", + "Congo", + "Chambeshi", + "Amur", + "Argun", + "Kherlen", + "Lena", + "Mekong", + "Mackenzie", + "Peace", + "Finlay", + "Niger", + "Brahmaputra", + "Tsangpo", + "Murray", + "Darling", + "Culgoa", + "Balonne", + "Condamine", + "Tocantins", + "Araguaia", + "Volga" + ) + destination_names = list( + "Major Bill's Transportation HQ on Mars", + "a Major Bill's warehouse", + "a Major Bill's distribution center", + "a Major Bill's supply depot" + ) + +/datum/lore/organization/tsc/grayson + name = "Grayson Manufactories Ltd." + short_name = "Grayson " + acronym = "GM" + desc = "Grayson Manufactories Ltd. is one of the oldest surviving TSCs, having been in 'the biz' almost since mankind began to colonize the rest of the Sol system and thus exploit abundant 'extraterrestrial' resources. Where many choose to go into the high end markets, however, Grayson makes their money by providing foundations for other businesses; they run some of the largest mining and refining operations in all of human-inhabited space. Ore is hauled out of Grayson-owned mines, transported on Grayson-owned ships, and processed in Grayson-owned refineries, then sold by Grayson-licensed vendors to other industries. Several of their relatively newer ventures include heavy industrial equipment, which has earned a reputation for being surprisingly reliable.

Grayson may maintain a neutral stance towards their fellow TSCs, but can be quite aggressive in the markets that it already holds. A steady stream of rumors suggests they're not shy about engaging in industrial sabotage or calling in strikebreakers, either. \ +

\ + Fitting their 'down to earth' reputation, Grayson's corporate fleet uses the names of various forms of rock and mineral to identify their vessels." + history = "" + work = "" + headquarters = "Mars, Sol" + motto = "" + + ship_prefixes = list("GMV" = "a general operations", "GMT" = "a transport", "GMR" = "a resourcing", "GMS" = "a surveying", "GMH" = "a bulk transit") + //rocks + ship_names = list( + "Adakite", + "Andesite", + "Basalt", + "Basanite", + "Diorite", + "Dunite", + "Gabbro", + "Granite", + "Harzburgite", + "Ignimbrite", + "Kimberlite", + "Komatiite", + "Norite", + "Obsidian", + "Pegmatite", + "Picrite", + "Pumice", + "Rhyolite", + "Scoria", + "Syenite", + "Tachylyte", + "Wehrlite", + "Arkose", + "Chert", + "Dolomite", + "Flint", + "Laterite", + "Marl", + "Oolite", + "Sandstone", + "Shale", + "Anthracite", + "Gneiss", + "Granulite", + "Mylonite", + "Schist", + "Skarn", + "Slate" + ) + destination_names = list( + "our headquarters on Mars", + "one of our manufacturing complexes", + "one of our mining installations" + ) + +/datum/lore/organization/tsc/aether + name = "Aether Atmospherics & Recycling" + short_name = "Aether " + acronym = "AAR" + desc = "Aether Atmospherics and Recycling is the prime maintainer and provider of atmospherics systems across both the many ships that navigate the vast expanses of space, and the life support on current and future Human colonies. The byproducts from the filtration of atmospheres across the galaxy are then resold for a variety of uses to those willing to buy. With the nature of their services, most work they do is contracted for construction of these systems, or staffing to maintain them for colonies across human space. \ +

\ + Somewhat unimaginatively, Aether has adopted the names of various types of weather for their fleet." + history = "" + work = "" + headquarters = "" + motto = "Dum spiro spero" + + ship_prefixes = list("AARV" = "a general operations", "AARE" = "a resource extraction", "AARG" = "a gas transport", "AART" = "a transport") + //weather systems/patterns + ship_names = list ( + "Cloud", + "Nimbus", + "Fog", + "Vapor", + "Haze", + "Smoke", + "Thunderhead", + "Veil", + "Steam", + "Mist", + "Noctilucent", + "Nacreous", + "Cirrus", + "Cirrostratus", + "Cirrocumulus", + "Aviaticus", + "Altostratus", + "Altocumulus", + "Stratus", + "Stratocumulus", + "Cumulus", + "Fractus", + "Asperitas", + "Nimbostratus", + "Cumulonimbus", + "Pileus", + "Arcus" + ) + destination_names = list( + "Aether HQ", + "a gas mining orbital", + "a liquid extraction plant" + ) + +/datum/lore/organization/tsc/focalpoint + name = "Focal Point Energistics" + short_name = "Focal " + acronym = "FPE" + desc = "Focal Point Energistics is an electrical engineering solutions firm originally formed as a conglomerate of Earth power companies and affiliates. Focal Point manufactures and distributes vital components in modern power grids, such as TEGs, PSUs and their specialty product, the SMES. The company is often consulted and contracted by larger organisations due to their expertise in their field.\ +

\ + Keeping in theme with the other big TSCs, Focal's fleet (which is comprised almost entirely of transports and engineering vessels) uses the names of electrical engineers." + history = "" + work = "" + headquarters = "" + motto = "" + + ship_prefixes = list("FPV" = "a general operations", "FPH" = "a transport", "FPC" = "an energy relay", "FPT" = "a fuel transport") + //famous electrical engineers + ship_names = list ( + "Erlang", + "Blumlein", + "Taylor", + "Bell", + "Reeves", + "Bennett", + "Volta", + "Blondel", + "Beckman", + "Hirst", + "Lamme", + "Bright", + "Armstrong", + "Ayrton", + "Bardeen", + "Fuller", + "Boucherot", + "Brown", + "Brush", + "Burgess", + "Camras", + "Crompton", + "Deprez", + "Elwell", + "Entz", + "Faraday", + "Halas", + "Hounsfield", + "Immink", + "Laithwaite", + "McKenzie", + "Moog", + "Moore", + "Pierce", + "Ronalds", + "Shallenberger", + "Siemens", + "Spencer", + "Tesla", + "Yablochkov", + ) + destination_names = list( + "Focal Point HQ" + ) + +/datum/lore/organization/tsc/starlanes + name = "StarFlight Inc." + short_name = "StarFlight " + acronym = "SFI" + desc = "Founded in 2137 by Astara Junea, StarFlight Incorporated is now one of the biggest passenger liner businesses in human-occupied space and has even begun breaking into alien markets - all despite a rocky start, and several high-profile ship disappearances and shipjackings. With space traffic at an all-time high, it's a depressing reality that SFI's incidents are just a tiny drop in the bucket compared to everything else going on. \ +

\ + SFI's fleet is, somewhat endearingly, named after various species of bird, though the designation Pigeon was removed from the lineup after a particularly unusual chain of events involving a business liner. For reasons that have continued to remain unclear since the company's foundation, SFI vessels are permitted to use the same high-level identifier pattern as governmental vessels." + history = "" + work = "luxury, business, and economy passenger flights" + headquarters = "Spin Aerostat, Jupiter" + motto = "Sic itur ad astra" + + ship_prefixes = list("SFI-X" = "a VIP liner", "SFI-L" = "a luxury liner", "SFI-B" = "a business liner", "SFI-E" = "an economy liner", "SFI-M" = "a mixed class liner", "SFI-S" = "a sightseeing", "SFI-M" = "a wedding", "SFI-O" = "a marketing", "SFI-S" = "a safari", "SFI-A" = "an aquatic adventure") + flight_types = list( //no military-sounding ones here + "flight", + "route", + "tour" + ) + ship_names = list( //birbs + "Rhea", + "Ostrich", + "Cassowary", + "Emu", + "Kiwi", + "Duck", + "Swan", + "Chachalaca", + "Curassow", + "Guan", + "Guineafowl", + "Pheasant", + "Turkey", + "Francolin", + "Loon", + "Penguin", + "Grebe", + "Flamingo", + "Stork", + "Ibis", + "Heron", + "Pelican", + "Spoonbill", + "Shoebill", + "Gannet", + "Cormorant", + "Osprey", + "Kite", + "Hawk", + "Falcon", + "Caracara" + ) + destination_names = list( + "a resort planet", + "a beautiful ring system", + "a ski-resort world", + "an ocean resort planet", + "a desert resort world", + "an arctic retreat" + ) + +/datum/lore/organization/tsc/oculum + name = "Oculum Broadcasting Network" + short_name = "Oculus " + acronym = "OBN" + desc = "Oculum owns approximately 30% of Sol-wide news networks, including microblogging aggregate sites, network and comedy news, and even old-fashioned newspapers. Staunchly apolitical, they specialize in delivering the most popular news available- which means telling people what they already want to hear. Oculum is a specialist in branding, and most people don't know that the reactionary Daedalus Dispatch newsletter and the radically transhuman Liquid Steel webcrawler are controlled by the same organization." + history = "" + work = "news media" + headquarters = "" + motto = "News from all across the spectrum" + + ship_prefixes = list("OBV" = "an investigation", "OBV" = "a distribution", "OBV" = "a journalism", "OBV" = "a general operations") + destination_names = list( + "Oculus HQ" + ) + +/datum/lore/organization/tsc/centauriprovisions + name = "Centauri Provisions" + short_name = "Centauri " + acronym = "ACP" + desc = "Headquartered in Alpha Centauri, Centauri Provisions made a name in the snack-food industry primarily by being the first to focus on colonial holdings. The various brands of Centauri snackfoods are now household names, from SkrellSnax to Space Mountain Wind to the ubiquitous and supposedly-edible Bread Tube, and they are well known for targeting as many species as possible with each brand (which, some will argue, is at fault for some of those brands being rather bland in taste and texture). Their staying power is legendary, and many spacers have grown up on a mix of their cheap crap and protein shakes." + history = "" + work = "catering, food, drinks" + headquarters = "Alpha Centauri" + motto = "The largest brands of food and drink - most of them are Centauri." + + ship_prefixes = list("CPTV" = "a transport", "CPCV" = "a catering", "CPRV" = "a resupply", "CPV" = "a general operations") + destination_names = list( + "Centauri Provisions HQ", + "a Centauri Provisions depot", + "a Centauri Provisions warehouse" + ) + +/datum/lore/organization/tsc/einstein + name = "Einstein Engines" + short_name = "Einstein " + acronym = "EEN" + desc = "Einstein is an old company that has survived through rampant respecialization. In the age of phoron-powered exotic engines and ubiquitous solar power, Einstein makes its living through the sale of engine designs for power sources it has no access to, and emergency fission or hydrocarbon power supplies. Accusations of corporate espionage against research-heavy corporations like NanoTrasen and its chief rival Focal Point are probably unfounded. Probably." + history = "" + work = "catering, food, drinks" + headquarters = "" + motto = "Engine designs, emergency generators, and old memories" + + ship_prefixes = list("EETV" = "a transport", "EERV" = "a research", "EEV" = "a general operations") + destination_names = list( + "Einstein HQ" + ) + +/datum/lore/organization/tsc/wulf + name = "Wulf Aeronautics" + short_name = "Wulf Aero " + acronym = "WUFA" + desc = "Wulf Aeronautics is the chief producer of transport and hauling spacecraft. A favorite contractor of the CWS, Wulf manufactures most of their diplomatic and logistics craft, and does a brisk business with most other TSCs. The quiet reliance of the economy on their craft has kept them out of the spotlight and uninvolved in other corporations' back-room dealings; nobody is willing to try to undermine Wulf Aerospace in case it bites them in the ass, and everyone knows that trying to buy out the company would start a bidding war from which nobody would escape the PR fallout." + history = "" + work = "starship construction" + headquarters = "" + motto = "We build it - you fly it" + + ship_prefixes = list("WATV" = "a transport", "WARV" = "a repair", "WAV" = "a general operations") + destination_names = list( + "Wulf Aeronautics HQ", + "a Wulf Aeronautics supply depot", + "a Wulf Aeronautics Shipyard" + ) + +/datum/lore/organization/tsc/gilthari + name = "Gilthari Exports" + short_name = "Gilthari " + acronym = "GEX" + desc = "Gilthari is Sol's premier supplier of luxury goods, specializing in extracting money from the rich and successful that aren't already their own shareholders. Their largest holdings are in gambling, but they maintain subsidiaries in everything from VR equipment to luxury watches. Their holdings in mass media are a smaller but still important part of their empire. Gilthari is known for treating its positronic employees very well, sparking a number of conspiracy theories. The gorgeous FBP model that Gilthari provides them is a symbol of the corporation's wealth and reach ludicrous prices when available on the black market, with legal ownership of the chassis limited, by contract, to employees.

In fitting with their heritage, Gilthari ships are named after precious stones." + history = "" + work = "luxury goods" + headquarters = "" + motto = "" + + ship_prefixes = list("GETV" = "a transport", "GECV" = "a luxury catering", "GEV" = "a general operations") + //precious stones + ship_names = list( + "Afghanite", + "Agate", + "Alexandrite", + "Amazonite", + "Amber", + "Amethyst", + "Ametrine", + "Andalusite", + "Aquamarine", + "Azurite", + "Benitoite", + "Beryl", + "Carnelian", + "Chalcedony", + "Chrysoberyl", + "Chrysoprase", + "Citrine", + "Coral", + "Danburite", + "Diamond", + "Emerald", + "Fluorite", + "Garnet", + "Heliodor", + "Iolite", + "Jade", + "Jasper", + "Lapis Lazuli", + "Malachite", + "Moldavite", + "Moonstone", + "Obsidian", + "Onyx", + "Orthoclase", + "Pearl", + "Peridot", + "Quartz", + "Ruby", + "Sapphire", + "Scapolite", + "Selenite", + "Serpentine", + "Sphalerite", + "Sphene", + "Spinel", + "Sunstone", + "Tanzanite", + "Topaz", + "Tourmaline", + "Turquoise", + "Zircon" + ) + destination_names = list( + "Gilthari HQ", + "a GE supply depot", + "a GE warehouse", + "a GE-owned luxury resort" + ) + +/datum/lore/organization/tsc/coyotecorp + name = "Coyote Salvage Corp." + short_name = "Coyote " + acronym = "CSC" + desc = "The threat of Kessler Syndrome ever looms in this age of spaceflight, and it's only thanks to the dedication and hard work of unionized salvage groups like the Coyote Salvage Corporation that the spacelanes are kept clear and free of wrecks and debris. Painted in that distinctive industrial yellow, their fleets of roaming scrappers are contracted throughout civilized space and the frontier alike to clean up space debris. Some may look down on them for handling what would be seen as garbage and discarded scraps, but as far as the CSC is concerned everything would grind to a halt (or more accurately, rapidly expand in a cloud of red-hot scrap metal) without their tender care and watchful eyes.\ +

\ + Many spacers turn to join the ranks of the Salvage Corps when times are lean, or when they need a quick buck. The work is dangerous and the hours are long, but the benefits are generous and you're paid by what you salvage so if you've an eye for appraising scrap you can turn a good profit. For those who dedicate their lives to the work, they can become kings of the scrapheap and live like royalty. \ +

\ + CSC Contractors are no strangers to conflict either, often having to deal with claimjumpers and illegal salvage operations - or worse, the vox." + history = "" + work = "salvage and shipbreaking" + headquarters = "N/A" + motto = "one man's trash is another man's treasure" + + ship_prefixes = list("CSV" = "a salvage", "CRV" = "a recovery", "CTV" = "a transport", "CSV" = "a shipbreaking", "CHV" = "a towing") + //mostly-original, maybe some references, and more than a few puns + ship_names = list( + "Road Hog", + "Mine, Not Yours", + "Legal Salvage", + "Barely Legal", + "One Man's Trash", + "Held Together By Tape And Dreams", + "Ventilated Vagrant", + "Half A Wing And A Prayer", + "Scrap King", + "Make Or Break", + "Lead Into Gold", + "Under New Management", + "Pride of Centauri", + "Long Haul", + "Argonaut", + "Desert Nomad", + "Non-Prophet Organization", + "Rest In Pieces", + "Sweep Dreams", + "Home Sweep Home", + "Atomic Broom", + "Ship Broken", + "Rarely Sober", + "Barely Coherent", + "Piece Of Mind", + "War And Pieces", + "Bits 'n' Bobs", + "Home Wrecker", + "T-Wrecks", + "Dust Bunny", + "No Gears No Glory", + "Three Drinks In", + "The Almighty Janitor", + "Wreckless Endangerment", + "Scarab" + ) + //remove a couple types, add the more down-to-earth 'job' to reflect some personality + flight_types = list( + "job", + "op", + "operation", + "assignment", + "contract" + ) + destination_names = list ( + "a frontier scrapyard", + "a trashbelt", + "a local salvage yard", + "a nearby system" + ) + +/datum/lore/organization/tsc/chimera + name = "Chimera Genetics Corp." + short_name = "Chimera " + acronym = "CGC" + desc = "With the rise of personal body modification, companies specializing in this field were bound to spring up as well. The Chimera Genetics Corporation, or CGC, is one of the largest and most successful competitors in this ever-evolving and ever-adapting field. They originally made a foothold in the market through designer flora and fauna such as \"factory plants\" and \"fabricowtors\"; imagine growing high-strength carbon nanotubes on vines, or goats that can be milked for a substance with the tensile strength of spider silk. Once they had more funding? Chimera aggressively expanded into high-end designer bodies, both vat-grown-from-scratch and modification of existing bodies via extensive therapy procedures. Their best-known designer critter is the Drake line; hardy, cold-tolerant \'furred lizards\' that are unflinchingly loyal to their contract-holders. Drakes find easy work in heavy industries and bodyguard roles, despite constant lobbying from bioconservatives to, quote, \"keep these \"meat drones\" from taking jobs away from regular people.\" \ +

\ + Some things never change. \ +

\ + Unsurprisingly, Chimera names their ships after mythological creatures." + history = "" + work = "designer bodies and bioforms" + headquarters = "Titan, Sol" + motto = "the whole is greater than the sum of its parts" + + ship_prefixes = list("CGV" = "a general operations", "CGT" = "a transport", "CGT" = "a delivery", "CGH" = "a medical") + //edgy mythological critters! + ship_names = list( + "Dragon", + "Chimera", + "Titan", + "Hekatonchires", + "Gorgon", + "Scylla", + "Minotaur", + "Banshee", + "Basilisk", + "Black Dog", + "Centaur", + "Cerberus", + "Charybdis", + "Cyclops", + "Cynocephalus", + "Demon", + "Daemon", + "Echidna", + "Goblin", + "Golem", + "Griffin", + "Hobgoblin", + "Hydra", + "Imp", + "Ladon", + "Manticore", + "Medusa", + "Ogre", + "Pegasus", + "Sasquatch", + "Shade", + "Siren", + "Sphinx", + "Typhon", + "Valkyrie", + "Vampir", + "Wendigo", + "Werewolf", + "Wraith" + ) + destination_names = list ( + "Chimera HQ, Titan", + "a Chimera research lab" + ) + +////////////////////////////////////////////////////////////////////////////////// + +// Other +/datum/lore/organization/other/kitsuhana //sorry KHI, but you're not a coherent stellar government, and you're definitely not a TSC. you get to go in the Others pool. + name = "Kitsuhana Heavy Industries" + short_name = "" //whitespace haaaack + desc = "A large post-scarcity amalgamation of races, Kitsuhana is no longer a company but rather a loose association of 'members' \ + who only share the KHI name and their ideals in common. Kitsuhana accepts interviews to join their ranks, and though they have no \ + formal structure with regards to government or law, the concept of 'consent' drives most of the large decision making. Kitsuhanans \ + pride themselves on their ability to avoid consequence, essentially preferring to live care-free lives. Their post-scarcity allows \ + them to rebuild, regrow, and replenish almost any lost asset or resource nearly instantly. It leads to many of the Kitsuhana \ + 'members' treating everything with frivolity and lends them a care-free demeanor." + history = "Originally a heavy industrial equipment and space mining company. During a forced evacuation of their homeworld, \ + they were they only organization with enough ship capacity to relocate any significant portion of the population, starting with \ + their own employees. After the resulting slowship travel to nearby starsystems, most of the population decided to keep the moniker \ + of the company name. Over the years, Kitsuhana developed into a post-scarcity anarchy where virtually nothing has consequences and \ + Kitsuhana 'members' can live their lives as they see fit, often in isolation." + work = "utopian anarchy" + headquarters = "Kitsuhana Prime" + motto = "Do what you want. We know we will." + + //Culture ship names! + ship_prefixes = list("KHI" = "personal") //Everybody's out for themselves, yanno. + ship_names = list( + "Nervous Energy", + "Prosthetic Conscience", + "Revisionist", + "Trade Surplus", + "Flexible Demeanour", + "Just Read The Instructions", + "Limiting Factor", + "Cargo Cult", + "Gunboat Diplomat", + "A Ship With A View", + "Cantankerous", + "I Thought He Was With You", + "Never Talk To Strangers", + "Sacrificial Victim", + "Unwitting Accomplice", + "Bad For Business", + "Just Testing", + "Size Isn't Everything", + "Yawning Angel", + "Liveware Problem", + "Very Little Gravitas Indeed", + "Zero Gravitas", + "Gravitas Free Zone", + "Absolutely No You-Know-What" + ) + destination_names = list( + "Kitsuhana Prime", + "Kitsuhana Beta", + "Kitsuhana Gamma", + "the Kitsuhana Forge", + "a Kitsuhanan's home", + "a Kitsuhana ringworld in Pleis Ceti V", + "a Kitsuhana ringworld in Lund VI", + "a Kitsuhana ringworld in Dais IX", + "a Kitsuhana ringworld in Leibert II-b" + ) + +/datum/lore/organization/other/independent + name = "Independent Pilots Association" + short_name = "" //using the same whitespace hack as USDF + acronym = "IPA" + desc = "Though less common now than they were in the decades before the Sol Economic Organization took power, independent traders remain an important part of the galactic economy, owing in no small part to protective tariffs established by the Free Trade Union in the late twenty-second century. Further out on the frontier, independent pilots are often the only people keeping freight and supplies moving.\ +

\ + Independent ships use a wide variety of names, many of which are as unusual and eclectic as their crews." + history = "" + work = "everything under the sun" + headquarters = "N/A" + motto = "N/A" + + ship_prefixes = list("ISV" = "a general", "IEV" = "a prospecting", "IEC" = "a prospecting", "IFV" = "a bulk freight", "ITV" = "a passenger transport", "ITC" = "a just-in-time delivery", "IPV" = "a patrol", "IHV" = "a bounty hunting", "ICC" = "an escort", "IMV" = "a mining") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) + destination_names = list() //we have no hqs or facilities of our own + //ship names: blank, because we use the universal list + +//SPACE LAW +/datum/lore/organization/other/sysdef + name = "System Defense Force" + short_name = "" //whitespace hack again + acronym = "SDF" + desc = "Localized militias are used to secure systems throughout inhabited space, but are especially common on the frontier; by levying and maintaining these militia forces, larger governments can use their primary fleets (like the USDF) for more important matters and smaller ones can give travellers in their space some peace of mind given the ever-present threat of pirates and vox marauders whilst also helping cut down on smuggling (narcotic substances remain as popular in this century as they have throughout the last few millennia). System Defense Forces tend to be fairly poorly trained and modestly equipped compared to genuine military fleets, but are more than capable of contending with equally ramshackle pirate vessels and can generally stall greater threats long enough for reinforcements to arrive. They're also typically responsible for most search-and-rescue operations in their system.\ +

\ + SDF ships are traditionally named after various forms of historical weaponry; as their founding members tend to be veterans of other SDF services which used this system, this tradition has slowly propagated.\ +

\ + Common SDF ship designations include;
\ + SDF = System Defense Fleet (General)
\ + SDV/SDB = System Defense Vessel/Boat
\ + SAR = Search And Rescue (Emergency Services)
\ + SDT = System Defense Tender (Mobile Refuel & Resupply)
\ + SDJ = Prisoner Transport" + history = "" + work = "local security" + headquarters = "" + motto = "Serve, Protect, Survive" + sysdef = TRUE //we're the space law, we don't impersonate people and stuff + autogenerate_destination_names = FALSE //don't add extra destinations to our pool, or else we leave the system which makes no sense + + ship_prefixes = list ("SDB" = "a patrol", "SDF" = "a patrol", "SDV" = "a patrol", "SDB" = "an escort", "SDF" = "an escort", "SDV" = "an escort", "SAR" = "a search and rescue", "SDT" = "a logistics", "SDT" = "a resupply", "SDJ" = "a prisoner transport") //b = boat, f = fleet (generic), v = vessel, t = tender + //ship names: weapons + ship_names = list( + "Sword", + "Saber", + "Cutlass", + "Broadsword", + "Katar", + "Shamshir", + "Shashka", + "Epee", + "Estoc", + "Longsword", + "Katana", + "Baselard", + "Gladius", + "Kukri", + "Pick", + "Mattock", + "Hatchet", + "Machete", + "Axe", + "Tomahawk", + "Dirk", + "Dagger", + "Maul", + "Mace", + "Flail", + "Morningstar", + "Shillelagh", + "Cudgel", + "Truncheon", + "Hammer", + "Arbalest", + "Ballista", + "Catapult", + "Trebuchet", + "Longbow", + "Pike", + "Javelin", + "Glaive", + "Halberd", + "Scythe", + "Spear" + ) + destination_names = list( + "the outer system", + "the inner system", + "Waypoint Alpha", + "Waypoint Beta", + "Waypoint Gamma", + "Waypoint Delta", + "Waypoint Epsilon", + "Waypoint Zeta", + "Waypoint Eta", + "Waypoint Theta", + "Waypoint Iota", + "Waypoint Kappa", + "Waypoint Lambda", + "Waypoint Mu", + "Waypoint Nu", + "Waypoint Xi", + "Waypoint Omicron", + "Waypoint Pi", + "Waypoint Rho", + "Waypoint Sigma", + "Waypoint Tau", + "Waypoint Upsilon", + "Waypoint Phi", + "Waypoint Chi", + "Waypoint Psi", + "Waypoint Omega", + "System Defense Control", + "an SDF correctional facility", + "an SDF processing center", + "an SDF supply depot", + "an SDF Rapid Response Hub", + "an SDF outpost" + ) + +//basically just a dummy/placeholder 'org' for smuggler events +/datum/lore/organization/other/smugglers + name = "Smugglers" + short_name = "" //whitespace hack again + acronym = "ISC" + desc = "Where there's a market, there need to be merchants, and where there are buyers, there need to be suppliers. Most of all, wherever there's governments, there'll be somebody trying to control what people are and aren't allowed to do with their bodies. For those seeking goods deemed illegal (for good reasons or otherwise) they need to turn to smugglers and the fine art of sneaking things past the authorities.\ +

\ + The most common goods smuggled throughout space are narcotics, firearms, and occasionally slaves; whilst firearm ownership laws vary from location to location, most governments also take fairly hard stances on hard drugs, and slavery is consistently outlawed and punished viciously throughout the vast majority of civilized space.\ +

\ + Still, contrary to many conceptions, not all smuggling is nefarious. Entertainment media within human territories loves to paint romantic images of heroic smugglers sneaking aid supplies to refugees or even helping oppressed minorities escape the grasp of xenophobic regimes." + history = "" + work = "" + headquarters = "" + motto = "" + lawful = FALSE //if it wasn't obvious, these guys are usually criminals + hostile = FALSE //but they're not aggressive ones + sysdef = FALSE + autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need entries to avoid runtimes. + + ship_prefixes = list ("suspected smuggler" = "an illegal smuggling", "possible smuggler" = "an illegal smuggling") //as assigned by control, second part shouldn't even come up + //blank out our shipnames for redesignation + ship_names = list( + "Morally Bankrupt", + "Bucket of Bolts", + "Wallet Inspector", + "Laughing Stock", + "Wayward Son", + "Wide Load", + "No Refunds", + "Ugly Stick", + "Poetic Justice", + "Foreign Object", + "Why Me", + "Last Straw", + "Designated Driver", + "Slapped Together", + "Lowest Bidder", + "Harsh Language", + "Public Servant", + "Class Act", + "Deviant Citizen", + "Diminishing Returns", + "Calculated Risk", + "Logistical Nightmare", + "Gross Negligence", + "Holier Than Thou", + "Open Wide", + "Red Dread", + "Missing Link", + "Duct Taped", + "Robber Baron", + "Affront to Nature", + "Total Loss", + "Depth Perception", + "This Way", + "Mysterious Rash", + "Jolly Roger", + "Victim of Circumstance", + "Product of Society", + "Under Evaluation", + "Flying Coffin", + "Gilded Cage", + "Disgruntled Worker", + "Of Sound Mind", + "Ivory Tower", + "Bastard Son", + "Scarlet Tentacle", + "Down In Front", + "Learning Experience", + "Desperate Pauper", + "Born Lucky", + "Base Instincts", + "Check Please", + "Infinite Loop", + "Lazy Morning", + "Runtime Error", + "Pointless Platitude", + "Grey Matter", + "Conscientious Objector", + "Unexplained Itch", + "Out of Control", + "Unexpected Obstacle", + "Toxic Behavior", + "Controlled Explosion", + "Happy Camper", + "Unfortunate Ending", + "Criminally Insane", + "Not Guilty", + "Double Jeopardy", + "Perfect Pitch", + "Dark Forecast", + "Apologies in Advance", + "Reduced To This", + "Surprise Encounter", + "Meat Locker", + "Cardiac Arrest", + "Piece of Junk", + "Bottom Line", + "With Abandon", + "Unsound Methods", + "Beast of Burden", + "Red Claw", + "No Laughing Matter", + "Nothing Personal", + "Great Experiment", + "Looks Like Trouble", + "Turning Point", + "Murderous Intent", + "If Looks Could Kill", + "Liquid Courage", + "Attention Seeker", + "Juvenile Delinquent", + "Mystery Meat", + "Slippery Slope", + "Empty Gesture", + "Annoying Pest", + "Killing Implement", + "Blunt Object", + "Blockade Runner", + "Innocent Bystander", + "Lacking Purpose", + "Beyond Salvation", + "This Too Shall Pass", + "Guilty Pleasure", + "Exploratory Surgery", + "Inelegant Solution", + "Under New Ownership", + "Festering Wound", + "Red Smile", + "Mysterious Stranger", + "Process of Elimination", + "Prone to Hysteria", + "Star Beggar", + "Dream Shatterer", + "Do The Math", + "Big Boy", + "Teacher's Pet", + "Hell's Bells", + "Critical Mass", + "Star Wench", + "Double Standard", + "Blind Fury", + "Carrion Eater", + "Pound of Flesh", + "Short Fuse", + "Road Agent", + "Deceiving Looks", + "An Arrow in Flight", + "Gun-to-Head", + "Petty Theft", + "Grand Larceny", + "Pop Up", + "A Promise Kept", + "Frag Machine", + "Unrepentant Camper", + "Impersonal Space", + "Fallen Pillar", + "Motion Tabled", + "Outrageous Fortune", + "Pyrrhic and Proud", + "Wiggling Bait", + "Shoot for Loot", + "Tone Deaf Siren", + "The Worst Thing", + "Violence-Liker", + "Illegal Repercussions", + "Shameless Plagiarist", + "Dove & Crow", + "Barnacle Jim", + "Charles in Charge", + "Strange Aeons", + "Red Queen" + ) + /* + destination_names = list( + ) + */ + +/datum/lore/organization/other/pirates + name = "Pirates" + short_name = "" //whitespace hack again + acronym = "IPG" + desc = "Where there's prey, predators are sure to follow. In space, the prey are civilian merchants, and the predators are opportunistic pirates. This is about where the analogy breaks down, but the basic concept remains the same; civilian ships are usually full of valuable goods or important people, which can be sold on black markets or ransomed back for a healthy sum. Pirates seek to seize the assets of others to get rich, rather than make an honest thaler themselves.\ +

\ + In contrast to the colorful Ue-Katish and sneaky Vox, common pirates tend to be rough, practical, and brutally efficient in their work. System Defense units practice rapid response drills, and in most systems it's only a matter of minutes before The Law arrives unless the pirate is able to isolate their target and prevent them from sending a distress signal.\ +

\ + Complicating matters is the infrequent use of privateers by various minor colonial governments, mercenaries turning to piracy during hard times, and illegal salvage operations." + history = "" + work = "" + headquarters = "" + motto = "What\'s yours is mine." + lawful = FALSE + hostile = TRUE + autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need entries to avoid runtimes. + + ship_prefixes = list ("known pirate" = "a piracy", "suspected pirate" = "a piracy", "rogue privateer" = "a piracy", "Cartel enforcer" = "a piracy", "known outlaw" = "a piracy", "bandit" = "a piracy", "roving corsair" = "a piracy", "illegal salvager" = "an illegal salvage", "rogue mercenary" = "a mercenary") //as assigned by control, second part shouldn't even come up, but it exists to avoid hiccups/weirdness just in case + ship_names = list( + "Morally Bankrupt", + "Bucket of Bolts", + "Wallet Inspector", + "Laughing Stock", + "Wayward Son", + "Wide Load", + "No Refunds", + "Ugly Stick", + "Poetic Justice", + "Foreign Object", + "Why Me", + "Last Straw", + "Designated Driver", + "Slapped Together", + "Lowest Bidder", + "Harsh Language", + "Public Servant", + "Class Act", + "Deviant Citizen", + "Diminishing Returns", + "Calculated Risk", + "Logistical Nightmare", + "Gross Negligence", + "Holier Than Thou", + "Open Wide", + "Red Dread", + "Missing Link", + "Duct Taped", + "Robber Baron", + "Affront to Nature", + "Total Loss", + "Depth Perception", + "This Way", + "Mysterious Rash", + "Jolly Roger", + "Victim of Circumstance", + "Product of Society", + "Under Evaluation", + "Flying Coffin", + "Gilded Cage", + "Disgruntled Worker", + "Of Sound Mind", + "Ivory Tower", + "Bastard Son", + "Scarlet Tentacle", + "Down In Front", + "Learning Experience", + "Desperate Pauper", + "Born Lucky", + "Base Instincts", + "Check Please", + "Infinite Loop", + "Lazy Morning", + "Runtime Error", + "Pointless Platitude", + "Grey Matter", + "Conscientious Objector", + "Unexplained Itch", + "Out of Control", + "Unexpected Obstacle", + "Toxic Behavior", + "Controlled Explosion", + "Happy Camper", + "Unfortunate Ending", + "Criminally Insane", + "Not Guilty", + "Double Jeopardy", + "Perfect Pitch", + "Dark Forecast", + "Apologies in Advance", + "Reduced To This", + "Surprise Encounter", + "Meat Locker", + "Cardiac Arrest", + "Piece of Junk", + "Bottom Line", + "With Abandon", + "Unsound Methods", + "Beast of Burden", + "Red Claw", + "No Laughing Matter", + "Nothing Personal", + "Great Experiment", + "Looks Like Trouble", + "Turning Point", + "Murderous Intent", + "If Looks Could Kill", + "Liquid Courage", + "Attention Seeker", + "Juvenile Delinquent", + "Mystery Meat", + "Slippery Slope", + "Empty Gesture", + "Annoying Pest", + "Killing Implement", + "Blunt Object", + "Blockade Runner", + "Innocent Bystander", + "Lacking Purpose", + "Beyond Salvation", + "This Too Shall Pass", + "Guilty Pleasure", + "Exploratory Surgery", + "Inelegant Solution", + "Under New Ownership", + "Festering Wound", + "Red Smile", + "Mysterious Stranger", + "Process of Elimination", + "Prone to Hysteria", + "Star Beggar", + "Dream Shatterer", + "Do The Math", + "Big Boy", + "Teacher's Pet", + "Hell's Bells", + "Critical Mass", + "Star Wench", + "Double Standard", + "Blind Fury", + "Carrion Eater", + "Pound of Flesh", + "Short Fuse", + "Road Agent", + "Deceiving Looks", + "An Arrow in Flight", + "Gun-to-Head", + "Petty Theft", + "Grand Larceny", + "Pop Up", + "A Promise Kept", + "Frag Machine", + "Unrepentant Camper", + "Impersonal Space", + "Fallen Pillar", + "Motion Tabled", + "Outrageous Fortune", + "Pyrrhic and Proud", + "Wiggling Bait", + "Shoot for Loot", + "Tone Deaf Siren", + "The Worst Thing", + "Violence-Liker", + "Illegal Repercussions", + "Shameless Plagiarist", + "Dove & Crow", + "Barnacle Jim", + "Charles in Charge", + "Strange Aeons", + "Red Queen" + ) + /* + destination_names = list( + ) + */ + +/datum/lore/organization/other/uekatish + name = "Ue-Katish Pirates" + short_name = "" + acronym = "UEK" + desc = "Contrasting with the Qerr-Glia is a vibrant community of Ue-Katish pirates, who live in cargo flotillas on the edge of Skrellian space (especially on the Human-Skrell border). Ue-Katish ships have no caste system even for the truecaste Skrell and aliens who live there, although they are regimented by rank and role in the ship's functioning. Ue-Katish ships are floating black markets where everything is available for the right price, including some of the galaxy's most well-connected information brokers and most skilled guns-for-hire. The Ue-Katish present the greatest Skrellian counterculture and feature heavily in romanticized human media, although at their hearts they are still bandits and criminals, and the black markets are filled with goods plundered from human and Skrellian trade ships. Many of the Ue-Katish ships themselves bear the scars of the battle that brought them under the pirate flag.\ +

\ + Ue-Katish pirate culture is somewhat similar to many human countercultures, gleefully reclaiming slurs and subverting expectations for the sheer shock value. Nonetheless, Ue-Katish are still Skrell, and still organize in neat hierarchies under each ship's Captain. The Captain's word is absolute, and unlike the Qerr-Katish they lack any sort of anti-corruption institutions." + history = "" + work = "" + motto = "" + lawful = FALSE + hostile = TRUE + autogenerate_destination_names = TRUE + + ship_prefixes = list("Ue-Katish pirate" = "a raiding", "Ue-Katish bandit" = "a raiding", "Ue-Katish raider" = "a raiding", "Ue-Katish enforcer" = "an enforcement") + ship_names = list( + "Keqxuer'xeu's Prize", + "Xaeker'qux' Bounty", + "Teq'ker'qerr's Mercy", + "Ke'teq's Thunder", + "Xumxerr's Compass", + "Xue'qux' Greed", + "Xaexuer's Slave", + "Xue'taq's Dagger", + "Teqxae's Madness", + "Taeqtaq'kea's Pride", + "Keqxae'xeu's Saber", + "Xueaeq's Disgrace", + "Xum'taq'qux' Star", + "Ke'xae'xe's Scream", + "Keq'keax' Blade" + ) + +/datum/lore/organization/other/marauders + name = "Vox Marauders" + short_name = "" //whitespace hack again + acronym = "VOX" + desc = "Whilst rarely as directly threatening as 'common' pirates, the phoron-breathing vox nevertheless pose a constant nuisance for shipping; as far as vox are concerned, only vox and vox matters matter, and everyone else is a 'treeless dusthuffer'. Unlike sometimes over-confident pirates, the vox rarely engage in direct, open combat, preferring to make their profits by either stealth or gunboat diplomacy that tends to be more bluster than true brute force: vox raiders will only commit to an attack if they're confident that they can quickly overwhelm and subdue their victims, then get away with the spoils before any reinforcements can arrive.\ +

\ + As Vox ship names are generally impossible for the vast majority of other species to pronounce, System Defense tends to tag marauders with a designation based on the ancient NATO Phonetic Alphabet." + history = "Unknown" + work = "Looting and raiding" + headquarters = "Nowhere" + motto = "(unintelligible screeching)" + lawful = FALSE + hostile = TRUE + autogenerate_destination_names = TRUE //the events we get called for don't fire a destination, but we need *some* entries to avoid runtimes. + + ship_prefixes = list("vox marauder" = "a marauding", "vox raider" = "a raiding", "vox ravager" = "a raiding", "vox corsair" = "a raiding") //as assigned by control, second part shouldn't even come up + //blank out our shipnames for redesignation + ship_names = list( + ) + /* + destination_names = list( + ) + */ + +/datum/lore/organization/other/marauders/New() + ..() + var/i = 20 //give us twenty random names, marauders get tactical designations from SDF + var/list/letters = list( + "Alpha", + "Bravo", + "Charlie", + "Delta", + "Echo", + "Foxtrot", + "Golf", + "Hotel", + "India", + "Juliett", + "Kilo", + "Lima", + "Mike", + "November", + "Oscar", + "Papa", + "Quebec", + "Romeo", + "Sierra", + "Tango", + "Uniform", + "Victor", + "Whiskey", + "X-Ray", + "Yankee", + "Zulu" + ) + var/list/numbers = list( + "Zero", + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Nine" + ) + while(i) + ship_names.Add("[pick(letters)]-[pick(numbers)]") + i-- + +////////////////////////////////////////////////////////////////////////////////// + +// Governments +/datum/lore/organization/gov/commonwealth + name = "Commonwealth of Sol-Procyon" + short_name = "SolCom " + acronym = "CWS" + desc = "The Commonwealth of Sol-Procyon is the evolution of the many nation states of Earth and the outlying colonies \ + having spread amongst the stars. While not quite the hegemon of all Humanity, a narrow majority of them follow \ + the flag of the Commonwealth. The constant tug and pull of government versus corporation, democracy and power \ + troubles this federation of deeply entrenched human colonies much like it did in the 21st century. Some things \ + never change. However, they are economically and culturally quite dominant, although not everyone likes that fact. \ +

\ + Ships on official CWS assignments typically carry the designations of Earth\'s largest craters, as a reminder of everything the planet (and humanity itself) has endured." + history = "" // Todo + work = "governing polity of humanity's systems" + headquarters = "Luna, Sol" + motto = "Nil Mortalibus Ardui Est" // Latin, because latin. Says 'Nothing is too steep for mortals' + autogenerate_destination_names = TRUE + + ship_prefixes = list("CWS-A" = "an administrative", "CWS-T" = "a transportation", "CWS-D" = "a diplomatic", "CWS-F" = "a freight", "CWS-J" = "a prisoner transfer") + //earth's biggest impact craters + ship_names = list( + "Wabar", + "Kaali", + "Campo del Cielo", + "Henbury", + "Morasko", + "Boxhole", + "Macha", + "Rio Cuarto", + "Ilumetsa", + "Tenoumer", + "Xiuyan", + "Lonar", + "Agoudal", + "Tswaing", + "Zhamanshin", + "Bosumtwi", + "Elgygytgyn", + "Bigach", + "Karla", + "Karakul", + "Vredefort", + "Chicxulub", + "Sudbury", + "Popigai", + "Manicougan", + "Acraman", + "Morokweng", + "Kara", + "Beaverhead", + "Tookoonooka", + "Charlevoix", + "Siljan Ring", + "Montagnais", + "Araguinha", + "Chesapeake", + "Mjolnir", + "Puchezh-Katunki", + "Saint Martin", + "Woodleigh", + "Carswell", + "Clearwater West", + "Clearwater East", + "Manson", + "Slate", + "Yarrabubba", + "Keurusselka", + "Shoemaker", + "Mistastin", + "Kamensk", + "Steen", + "Strangways", + "Tunnunik", + "Boltysh", + "Nordlinger Ries", + "Presqu'ile", + "Haughton", + "Lappajarvi", + "Rochechouart", + "Gosses Bluff", + "Amelia Creek", + "Logancha", + "Obolon'", + "Nastapoka", + "Ishim", + "Bedout" + ) + destination_names = list( + "Venus", + "Earth", + "Luna", + "Mars", + "Titan", + "Europa", + "the Jovian subcluster", + "a Commonwealth embassy", + "a classified location" + ) + // autogen will add a lot of other places as well. + +/datum/lore/organization/gov/ares + name = "Third Ares Confederation" + short_name = "ArCon " + desc = "A loose coalition of socialist and communist movements on the fringes of the human diaspora \ + the Ares Confederation is a government-in-exile from the original uprisings of Mars to stop \ + the government of corporations and capitalist interests over Humanity. While they failed twice \ + they have made their own home far beyond the reach of an effective military response by the \ + Commonwealth. They have become renowned engineers and terraforming experts, mostly due to necessity." + history = "" + work = "idealist socialist government" + headquarters = "Paraiso a Àstrea" + motto = "Liberty to the Stars!" + + ship_prefixes = list("UFHV" = "military", "FFHV" = "classified") + ship_names = list( + "Bulwark of the Free", + "Charged Negotiation", + "Corporation Breaker", + "Cheeki Breeki", + "Dawnstar", + "Fiery Justice", + "Fist of Ares", + "Freedom", + "Marx Was Right", + "Endstage Capitalism", + "Neoluddism Is The Answer Guys", + "Anarchocapitalism Is A Joke", + "Front Toward Enemy", + "Path of Prosperity", + "Freedom Cry", + "Rebel Yell", + "We Will Return To Mars", + "According To Our Abilities", + "Posadism Gang", + "Accelerationism Doesn't Work In A Vaccuum", + "Don't Shoot, We're Unarmed I Think", + "The Big Stick For Speaking Softly", + "Bull Moose", + "Engels Needs Some Love Too", + "The Icepick", + "Gauntlet", + "Gellaume", + "Hero of the Revolution", + "Jerome", + "Laughing Maniac", + "Liberty", + "Mahama", + "Memory of Fallen", + "Miko", + "Mostly Harmless", + "None Of Your Business", + "Not Insured", + "People's Fist", + "Petrov", + "Prehensile Ethics", + "Pride of Liberty", + "Rodrick", + "Star of Tiamat", + "Torch of Freedom", + "Torch" + ) + destination_names = list( + "Drydocks of the Ares Confederation", + "a classified location", + "a Homestead on Paraiso", + "a contested sector of ArCon space", + "one of our free colonies", + "the Gateway 98-C at Ares", + "Sars Mara on Ares", + "Listening Post Maryland-Sigma", + "an emergency nav bouy", + "New Berlin on Nov-Ferrum", + "a settlement needing our help", + "Forward Base Sigma-Alpha in ArCon space" + ) + +/datum/lore/organization/gov/elysia + name = "The Elysian Colonies" + short_name = "Elysia " + acronym = "ECS" + desc = "The Elysian Colonies, located spinwards from the Commonwealth, are a disunited bunch of \ + vanity states, utopia projects and personal autocracies, whose only unifying characteristic is \ + a general disregard of 'normal' social conventions of Humanity as well as their inherent desire \ + to keep to their ways, in which cases they do sometimes unite to fight off an outside threat. \ + The Elysian Colonies are one of the few places where true slavery is not only accepted, but sadly also \ + rather commonplace if you go to the wrong worlds. Not that they don't internally have at least a dozen would-be liberators." + history = "" + work = "fracturous vanity colonies" + headquarters = "" + motto = "" + + ship_prefixes = list("ECS-M" = "a military", "ECS-T" = "a transport", "ECS-T" = "a special transport", "ECS-D" = "a diplomatic") //The Special Transport is SLAAAAVES. but let's not advertise that openly. + ship_names = list( + "Bring Me Wine!", + "I Can't Believe You", + "More Wives Your Grace?", + "Daddy Bought Me This", + "What Do You Mean It's Unethical", + "Libertine Ideals", + "The True Free", + "Unbound", + "No Man Shackled", + "All Men Shackled", + "All Women Shackled", + "All Hermaphrodites Shackled", + "You Know We Just Shackle Anyone", + "Nobody Deserves Shackles", + "Debt Slavery Is Ethical", + "Fashioned After Tradition", + "Sic Vic Pacem", + "Cultivate This", + "We Demand Self-Governance", + "A Thousand Cultures", + "There Is a Character Limit?", + "Slave Galley I", + "The Unconquered CCXXII" + ) + destination_names = list( + "Cygnus", + "The Ultra Dome of Brutal Kill Death", + "Sanctum", + "Infernum", + "The Most Esteemed Estates of Fred Fredson, Heir of the Fred Throne and All its illustrious Fredpendencies", + "Priory Melana", + "The Clone Pits of Meridiem Five", + "Forward Base Mara Alpha", + "a liberation intervention", + "a nav bouy within Cygnus Space", + "a Elysian only refuel outpost", + "to a killer party the Fredperor is holding right now" + ) + +/datum/lore/organization/gov/fyrds + name = "Unitary Alliance of Salthan Fyrds" + short_name = "Saltha " + acronym = "SMS" + desc = "Born out of neglect, the Salthan Fyrds are cast-off colonies of the Commonwealth after giving up on \ + pacifying the wartorn region and fighting off the stray Unathi Raiders after the Hegemony War. \ + In the end they self-organized into military pacts and have formed a militaristic society, in which \ + every person, be it organic or robot, is a soldier for the continued cause in serving as aegis against \ + another Unathi Incursion. They are very no-nonsense." + history = "" + work = "human stratocracy" + headquarters = "The Pact, Myria" + motto = "" + + ship_prefixes = list("SFM-M" = "a military", "SFM-M" = "a patrol") // The Salthans don't do anything else. + flight_types = list( + "mission", + "operation", + "exercise", + "assignment", + "deployment" + ) + //specifically-undefeated generals, just to shake up the usual list everyone knows + ship_names = list( + "Ahmose I", + "Thutmose I & III", + "Seti I", + "Ramesses II", + "Tariq ibn Ziyad", + "Shaka Zulu", + "Bai Qi", + "Ashoka the Great", + "Han Xin", + "Chen Qingzhi", + "Sargon of Akkad", + "Khalid ibn al-Walid", + "Narses", + "David IV", + "Yue Fei", + "Subutai", + "Tamerlane", + "Kumbha of Mewar", + "Akbar", + "Admiral Yi", + "Chatrapati Sambhaji Maharaj", + "Baji Rao", + "Nguyen Hue", + "Alexander the Great", + "Epaminondas", + "Nero Claudius Drusus", + "Burebista", + "Pepin the Short", + "El Cid", + "Jan Zizka", + "Scanderbeg", + "Edward IV", + "Pal Kinizsi", + "Ivan Sirko", + "John Churchill", + "Maurice of Nassau", + "Alvaro de Bazan", + "Blas de Lezo", + "Prince Henry", + "Alexander Suvorov", + "Fyodor Ushakov", + "Charles XI", + "August von Mackensen", + "Paul von Lettow-Vorbeck", + "George Henry Thomas" + ) + /* retained for archival, no longer necessary + destination_names = list( + "Base Alpha-Romero", + "Base Zeta-Xray", + "Base Epsilon-Epsilon", + "Base Xray-Beta", + "Base Gamma-Delta", + "Base Yotta-Epsilon" + ) + */ + +/datum/lore/organization/gov/fyrds/New() + ..() + var/fyrdsgen = rand(8, 16) //significantly increased from original values due to the greater length of rounds on YW + var/list/location = list( + "Base","Outpost","Installation","Station","Waypoint","Nav Point" + ) + var/list/greek = 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/list/phoenician = list( + "Aleph","Beth","Gimel","Daleth","He","Zayin","Heth","Teth","Yodh","Kaph","Lamedh","Mem","Nun","Samekh","'Ayin","Pe","Res","Sin","Taw","Waw","Sade","Qoph" + ) + var/list/russian = list( + "Anna","Boris","Vasily","Gregory","Galina","Dmitri","Yelena","Zhenya","Zinaida","Zoya","Ivan","Konstantin","Leonid","Mikhail","Mariya","Nikolai","Olga","Pavel","Roman","Semyon","Sergei","Tatyana","Tamara","Ulyana","Fyodor","Khariton","Tsaplya","Tsentr","Chelovek","Shura","Shchuka","Yery","Znak","Echo","Emma","Yuri","Yakov" + ) + var/list/american = list( + "Alfa","Bravo","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliet","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","Xray","Yankee","Zulu" + ) + + while(fyrdsgen) + destination_names.Add("[pick(location)] [pick(greek)]-[pick(greek)]","[pick(location)] [pick(phoenician)]-[pick(phoenician)]","[pick(location)] [pick(russian)]-[pick(russian)]","[pick(location)] [pick(american)]-[pick(american)]") + fyrdsgen-- + +/datum/lore/organization/gov/teshari + name = "Teshari Expeditionary Fleet" + short_name = "Teshari Expeditionary " + acronym = "TEF" + desc = "Though nominally a client state of the skrell, the teshari nevertheless maintain their own navy in the form of the Teshari Expeditionary Fleet. The TEF are as much civil and combat engineers as a competent space force, as they are the tip of the spear when it comes to locating and surveying new worlds suitable for teshari habitation, and in the establishment of full colonies. That isn't to say there aren't independent teshari colonies out there, but those that are founded under the wings of the TEF tend to be the largest and most prosperous. They're also responsible for maintaining the security of these colonies and protecting trade ships. Like the USDF (and unlike most other governmental fleets), TEF vessels almost universally sport the 'TEF' designator rather than specific terms.\ +

\ + The TEF's ships are named after famous teshari pioneers and explorers and the events surrounding those individuals." + history = "" + work = "teshari colonization and infrastructure maintenance" + headquarters = "Qerr'balak, Qerr'valis" + motto = "" + autogenerate_destination_names = TRUE //big list of own holdings to come + + //the tesh expeditionary fleet's closest analogue in modern terms would be the US Army Corps of Engineers, just with added combat personnel as well + ship_prefixes = list("TEF" = "a diplomatic", "TEF" = "a peacekeeping", "TEF" = "an escort", "TEF" = "an exploration", "TEF" = "a survey", "TEF" = "an expeditionary", "TEF" = "a pioneering") + //TODO: better ship names? I just took a bunch of random teshnames from the Random Name button and added a word. + ship_names = list( + "Leniri's Hope", + "Tatani's Venture", + "Ninai's Voyage", + "Miiescha's Claw", + "Ishena's Talons", + "Lili's Fang", + "Taalische's Wing", + "Cami's Pride", + "Schemisa's Glory", + "Shilirashi's Wit", + "Sanene's Insight", + "Aeimi's Wisdom", + "Ischica's Mind", + "Recite's Cry", + "Leseca's Howl", + "Iisi's Fury", + "Simascha's Revenge", + "Lisascheca's Vengeance" + ) + destination_names = list( + "an Expeditionary Fleet RV point", + "an Expeditionary Fleet Resupply Ship", + "an Expeditionary Fleet Supply Depot", + "a newly-founded Teshari colony", + "a prospective Teshari colony site", + "a potential Teshari colony site", + "Expeditionary Fleet HQ" + ) + +////////////////////////////////////////////////////////////////////////////////// + +// Military +/datum/lore/organization/mil/usdf + name = "United Solar Defense Force" + short_name = "" //Doesn't cause whitespace any more, with a little sneaky low-effort workaround + acronym = "USDF" + desc = "The USDF is the dedicated military force of the Commonwealth, originally formed by the United Nations. USDF ships are responsible for securing the major traffic lanes between Commonwealth member systems, as well as protecting them from threats that are too great for local SDF units to handle. Despite nominally being a 'Defense Force', a lot of dubious incidents and several notable firebrands within the USDF mean that the Fleet is considered by some to be the galaxy\'s eight-hundred-pound gorilla; it does whatever it wants whenever it wants, and there really isn\'t anything you (or anyone else, even the Commonwealth itself) can do about it. Thankfully a coalition of moderates and Commonwealth loyalists have so far managed to keep the hardliners from getting away with too much, at least for the time being." + history = "" + work = "peacekeeping and piracy suppression" + headquarters = "Paris, Earth" + motto = "Si Vis Pacem Para Bellum" //if you wish for peace, prepare for war + autogenerate_destination_names = TRUE + + ship_prefixes = list ("USDF" = "a logistical", "USDF" = "a training", "USDF" = "a patrol", "USDF" = "a piracy suppression", "USDF" = "a peacekeeping", "USDF" = "a relief", "USDF" = "an escort", "USDF" = "a search and rescue", "USDF" = "a classified") + flight_types = list( + "mission", + "operation", + "exercise", + "assignment", + "deployment" + ) + ship_names = list( + "Aphrodite", + "Apollo", + "Ares", + "Artemis", + "Athena", + "Demeter", + "Dionysus", + "Hades", + "Hephaestus", + "Hera", + "Hermes", + "Hestia", + "Poseidon", + "Zeus", + "Achlys", + "Aether", + "Aion", + "Ananke", + "Chaos", + "Chronos", + "Erebus", + "Eros", + "Gaia", + "Hemera", + "Hypnos", + "Nemesis", + "Nyx", + "Phanes", + "Pontus", + "Tartarus", + "Thalassa", + "Thanatos", + "Uranus", + "Coeus", + "Crius", + "Cronus", + "Hyperion", + "Iapetus", + "Mnemosyne", + "Oceanus", + "Phoebe", + "Rhea", + "Tethys", + "Theia", + "Themis", + "Asteria", + "Astraeus", + "Atlas", + "Aura", + "Clymene", + "Dione", + "Helios", + "Selene", + "Eos", + "Epimetheus", + "Eurybia", + "Eurynome", + "Lelantos", + "Leto", + "Menoetius", + "Metis", + "Ophion", + "Pallas", + "Perses", + "Prometheus", + "Styx" + ) + destination_names = list( + "USDF HQ", + "a USDF staging facility on the edge of Commonwealth territory", + "a USDF supply depot", + "a USDF rally point", + "a USDF forward base", + "a USDF repair facility", + "a USDF shipyard in Sol", + "a classified location" + ) + +/datum/lore/organization/mil/pcrc + name = "Proxima Centauri Risk Control" + short_name = "Proxima Centauri " + acronym = "PCRC" + desc = "Not a whole lot is known about the private security company known as PCRC, but it is known that they're irregularly contracted by the larger TSCs for certain delicate matters. Much of the company's inner workings are shrouded in mystery, and most citizens have never even heard of them. Amongst those who do know of them, they enjoy fairly good PR for a private security group, especially when compared to SAARE." + history = "" + work = "risk control and private security" + headquarters = "Proxima Centauri" + motto = "" + autogenerate_destination_names = TRUE + + ship_prefixes = list("PCRC" = "a risk control", "PCRC" = "a private security") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) + //law/protection terms + ship_names = list( + "Detective", + "Constable", + "Inspector", + "Judge", + "Adjudicator", + "Magistrate", + "Marshal", + "Sheriff", + "Deputy", + "Warden", + "Guardian", + "Defender", + "Peacemaker", + "Peacekeeper", + "Arbiter", + "Justice", + "Order", + "Jury", + "Inspector", + "Bluecoat", + "Gendarme", + "Gumshoe", + "Patrolman", + "Sentinel", + "Shield", + "Aegis", + "Auditor", + "Monitor", + "Investigator", + "Agent", + "Prosecutor", + "Sergeant" + ) + + destination_names = list( + "PCRC HQ, in Proxima Centauri", + "a PCRC training installation", + "a PCRC supply depot" + ) + +//I'm covered in beeeeeeees! +/datum/lore/organization/mil/hive + name = "HIVE Security" + short_name = "HIVE " + acronym = "HVS" + desc = "HIVE Security is a merging of several much smaller freelance companies, and operates throughout civilized space. Unlike some companies, it operates no planetside facilities whatsoever, opting instead for larger flotillas that are serviced by innumerable smallcraft. As with any PMC there's no small amount of controversy surrounding them, but they try to keep their operations cleaner than their competitors. They're fairly well known for running 'mercy' operations, which are low-cost no-strings-attached contracts for those in dire need." + history = "" + work = "mercenary contractors" + headquarters = "" + motto = "Strength in Numbers" + autogenerate_destination_names = TRUE + + ship_prefixes = list("HPF" = "a secure freight", "HPT" = "a training", "HPS" = "a logistics", "HPV" = "a patrol", "HPH" = "a bounty hunting", "HPX" = "an experimental", "HPC" = "a command", "HPI" = "a mercy") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) + //animals, preferably predators, all factual/extant critters + ship_names = list( + "Wolf", + "Bear", + "Eagle", + "Condor", + "Falcon", + "Hawk", + "Kestrel", + "Shark", + "Fox", + "Weasel", + "Mongoose", + "Bloodhound", + "Rhino", + "Tiger", + "Leopard", + "Panther", + "Cheetah", + "Lion", + "Vulture", + "Piranha", + "Crocodile", + "Alligator", + "Recluse", + "Tarantula", + "Scorpion", + "Orca", + "Coyote", + "Jackal", + "Hyena", + "Hornet", + "Wasp", + "Sealion", + "Viper", + "Cobra", + "Sidewinder", + "Asp", + "Python", + "Anaconda", + "Krait", + "Diamondback", + "Mamba", + "Fer de Lance", + "Keelback", + "Adder", + "Constrictor", + "Boa", + "Moray", + "Taipan", + "Rattlesnake" + ) + destination_names = list( + "the HIVE Command fleet", + "a HIVE patrol fleet", + "a HIVE flotilla", + "a HIVE training fleet", + "a HIVE logistics fleet" + ) + //some basics, padded with autogen + +//replaced the edgy blackstar group with polaris-canon SAARE +/datum/lore/organization/mil/saare + name = "Stealth Assault Enterprises" + short_name = "" + acronym = "SAARE" + desc = "SAARE consistently have the worst reputation of any paramilitary group. This is because they specialize in deniability and secrecy. Although publically they work in asset recovery, they have a substantiated reputation for info-theft and piracy that has lead to them butting heads with the law on more than one occasion. Nonetheless, they are an invaluable part of the Solar economy, and other TSCs and small colonial governments keep them in business.\ +

\ + For the purposes of plausible deniability, SAARE designates their ships using a series of rotating identifiers, with ships on a specific operation or in a particular area all using the same initial designation (e.g. 'Sledgehammer') and having a different numerical identifier, with the most important ships involved bearing a unique additional codename (such as 'Actual' for Command \& Control ships). As ships are shuffled in and out of operating areas, it can be difficult to pin down exactly which ship in SAARE's fleet was responsible for which act. SAARE's misdirection is multilayered, including elements such as extensive use of repainting, false IFFs, bribes, forged documents, intimidation, camouflage, and all manner of other underhanded tactics." + history = "" + work = "mercenary contractors" + headquarters = "" + motto = "Aut Neca Aut Necare" + autogenerate_destination_names = TRUE + + ship_prefixes = list("SAARE" = "a secure freight", "SAARE" = "a training", "SAARE" = "a logistics", "SAARE" = "a patrol", "SAARE" = "a security", "SAARE" = "an experimental", "SAARE" = "a command", "SAARE" = "a classified") + flight_types = list( + "flight", + "mission", + "route", + "operation", + "assignment", + "contract" + ) + ship_names = list() + destination_names = list( + "SAARE Command", + "a SAARE training site", + "a SAARE logistical depot", + "a SAARE-held shipyard" + ) + +/datum/lore/organization/mil/saare/New() + ..() + var/i = 20 //give us twenty random names, saare uses tacticool designations + var/list/letters = list( + "King", + "Queen", + "Duke", + "Cipher", + "Monarch", + "Marshal", + "Magnum", + "Longbow", + "Jupiter", + "Excalibur", + "Charon", + "Bloodhound", + "Daybreak", + "Tomahawk", + "Raptor", + "Cerberus", + "Apollo", + "Firebird", + "Outlaw", + "Outrider", + "Vector", + "Spearhead", + "Sledgehammer", + "Typhon", + "Sundown", + "Zodiac", + "Colossus", + "Jackhammer", + "Kodiak", + "Phalanx", + "Rainmaker", + "Shockwave", + "Warhammer", + "Crusader", + "Maverick", + "Nighthawk", + "Redshift", + "Challenger", + "Starlight", + "Sunray", + "Ironside", + "Holdfast", + "Foxhound" + ) + var/list/numbersone = list( + "Zero", + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Nine" + ) + var/list/numberstwo = list( + "Zero", + "One", + "Two", + "Three", + "Four", + "Five", + "Six", + "Seven", + "Eight", + "Niner" + ) + while(i) + ship_names.Add("[pick(letters)] [pick(40;"Actual","[pick(numbersone)]-[pick(numberstwo)]")]") + i-- + + //ex: "Phalanx One-Niner", "Sledgehammer Actual" (CO/VIP), "Kodiak Seven-Four", "Tomahawk Two-Zero" + //probably a more elegant (read: fancier) way to do the second part but fuck it, this works just fine diff --git a/code/modules/catalogue/catalogue_data.dm b/code/modules/catalogue/catalogue_data.dm index babd9f7491..bb8a5951b6 100644 --- a/code/modules/catalogue/catalogue_data.dm +++ b/code/modules/catalogue/catalogue_data.dm @@ -352,9 +352,9 @@ GLOBAL_DATUM_INIT(catalogue_data, /datum/category_collection/catalogue, new) name = "TSC - Major Bill's Transportation" datum_to_copy = /datum/lore/organization/tsc/mbt -/datum/category_item/catalogue/information/organization/solgov - name = "Government - Solar Confederate Government" - datum_to_copy = /datum/lore/organization/gov/solgov +/datum/category_item/catalogue/information/organization/commonwealth //VS EDIT 1 + name = "Government - Commonwealth of Sol-Procyon" //VS EDIT 2 + datum_to_copy = /datum/lore/organization/gov/commonwealth //VS EDIT 3 /* //VOREStation Removal /datum/category_item/catalogue/information/organization/virgov diff --git a/code/modules/catalogue/catalogue_data_vr.dm b/code/modules/catalogue/catalogue_data_vr.dm index fde60c17be..086291bc10 100644 --- a/code/modules/catalogue/catalogue_data_vr.dm +++ b/code/modules/catalogue/catalogue_data_vr.dm @@ -66,6 +66,6 @@ /* /datum/category_item/catalogue/information/organization/khi - name = "Government - Kitsuhana Heavy Industries" - datum_to_copy = /datum/lore/organization/gov/kitsuhana -*/ \ No newline at end of file + name = "Independents - Kitsuhana Heavy Industries" + datum_to_copy = /datum/lore/organization/other/kitsuhana +*/ diff --git a/code/modules/client/asset_cache.dm b/code/modules/client/asset_cache.dm index e10b1a89ce..2317cab19e 100644 --- a/code/modules/client/asset_cache.dm +++ b/code/modules/client/asset_cache.dm @@ -223,34 +223,6 @@ You can set verify to TRUE if you want send() to sleep until the client has the return "" //DEFINITIONS FOR ASSET DATUMS START HERE. -/datum/asset/simple/pda - assets = list( - "pda_atmos.png" = 'icons/pda_icons/pda_atmos.png', - "pda_back.png" = 'icons/pda_icons/pda_back.png', - "pda_bell.png" = 'icons/pda_icons/pda_bell.png', - "pda_blank.png" = 'icons/pda_icons/pda_blank.png', - "pda_boom.png" = 'icons/pda_icons/pda_boom.png', - "pda_bucket.png" = 'icons/pda_icons/pda_bucket.png', - "pda_crate.png" = 'icons/pda_icons/pda_crate.png', - "pda_cuffs.png" = 'icons/pda_icons/pda_cuffs.png', - "pda_eject.png" = 'icons/pda_icons/pda_eject.png', - "pda_exit.png" = 'icons/pda_icons/pda_exit.png', - "pda_flashlight.png" = 'icons/pda_icons/pda_flashlight.png', - "pda_honk.png" = 'icons/pda_icons/pda_honk.png', - "pda_mail.png" = 'icons/pda_icons/pda_mail.png', - "pda_medical.png" = 'icons/pda_icons/pda_medical.png', - "pda_menu.png" = 'icons/pda_icons/pda_menu.png', - "pda_mule.png" = 'icons/pda_icons/pda_mule.png', - "pda_notes.png" = 'icons/pda_icons/pda_notes.png', - "pda_power.png" = 'icons/pda_icons/pda_power.png', - "pda_rdoor.png" = 'icons/pda_icons/pda_rdoor.png', - "pda_reagent.png" = 'icons/pda_icons/pda_reagent.png', - "pda_refresh.png" = 'icons/pda_icons/pda_refresh.png', - "pda_scanner.png" = 'icons/pda_icons/pda_scanner.png', - "pda_signaler.png" = 'icons/pda_icons/pda_signaler.png', - "pda_status.png" = 'icons/pda_icons/pda_status.png' - ) - /datum/asset/simple/generic assets = list( "search.js" = 'html/search.js', @@ -261,20 +233,6 @@ You can set verify to TRUE if you want send() to sleep until the client has the "talisman.png" = 'html/images/talisman.png', "paper_bg.png" = 'html/images/paper_bg.png', "no_image32.png" = 'html/images/no_image32.png', - "sos_1.png" = 'icons/spideros_icons/sos_1.png', - "sos_2.png" = 'icons/spideros_icons/sos_2.png', - "sos_3.png" = 'icons/spideros_icons/sos_3.png', - "sos_4.png" = 'icons/spideros_icons/sos_4.png', - "sos_5.png" = 'icons/spideros_icons/sos_5.png', - "sos_6.png" = 'icons/spideros_icons/sos_6.png', - "sos_7.png" = 'icons/spideros_icons/sos_7.png', - "sos_8.png" = 'icons/spideros_icons/sos_8.png', - "sos_9.png" = 'icons/spideros_icons/sos_9.png', - "sos_10.png" = 'icons/spideros_icons/sos_10.png', - "sos_11.png" = 'icons/spideros_icons/sos_11.png', - "sos_12.png" = 'icons/spideros_icons/sos_12.png', - "sos_13.png" = 'icons/spideros_icons/sos_13.png', - "sos_14.png" = 'icons/spideros_icons/sos_14.png' ) /datum/asset/simple/changelog diff --git a/code/modules/client/client defines.dm b/code/modules/client/client defines.dm index 05bb6b17cd..17c858d3a7 100644 --- a/code/modules/client/client defines.dm +++ b/code/modules/client/client defines.dm @@ -53,8 +53,8 @@ var/related_accounts_cid = "(Requires database)" //So admins know why it isn't working - Used to determine what other accounts previously logged in from this computer id var/account_join_date = "(Requires database)" var/account_age = "(Requires database)" - var/list/department_hours // VOREStation Edit - Track hours of leave accured for each department. - var/list/play_hours // VOREStation Edit - Tracks total playtime hours for each departments. + var/list/department_hours = list() // VOREStation Edit - Track hours of leave accured for each department. + var/list/play_hours = list() // VOREStation Edit - Tracks total playtime hours for each departments. preload_rsc = PRELOAD_RSC diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm index 95c6e829e4..a775bf2568 100644 --- a/code/modules/client/client procs.dm +++ b/code/modules/client/client procs.dm @@ -360,14 +360,16 @@ log_admin("Couldn't perform IP check on [key] with [address]") // VOREStation Edit Start - Department Hours - if(config.time_off) - var/DBQuery/query_hours = dbcon.NewQuery("SELECT department, hours, total_hours FROM vr_player_hours WHERE ckey = '[sql_ckey]'") - query_hours.Execute() - LAZYINITLIST(department_hours) - LAZYINITLIST(play_hours) + var/DBQuery/query_hours = dbcon.NewQuery("SELECT department, hours, total_hours FROM vr_player_hours WHERE ckey = '[sql_ckey]'") + if(query_hours.Execute()) while(query_hours.NextRow()) department_hours[query_hours.item[1]] = text2num(query_hours.item[2]) play_hours[query_hours.item[1]] = text2num(query_hours.item[3]) + else + var/error_message = query_hours.ErrorMsg() // Need this out here since the spawn below will split the stack and who knows what'll happen by the time it runs + log_debug("Error loading play hours for [ckey]: [error_message]") + spawn(0) + alert(src, "The query to load your existing playtime failed. Screenshot this, give the screenshot to a developer, and reconnect, otherwise you may lose any recorded play hours (which may limit access to jobs). ERROR: [error_message]", "PROBLEMS!!") // VOREStation Edit End - Department Hours if(sql_id) diff --git a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm index f1c8ff21b6..ccea57728d 100644 --- a/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_fluffitems_vr.dm @@ -1115,6 +1115,19 @@ ckeywhitelist = list("xonkon") character_name = list("Ali") +/datum/gear/fluff/zena_suit + path = /obj/item/clothing/suit/space/void/engineering/zena + display_name = "Zena's Shroud Suit" + ckeywhitelist = list("xonkon") + character_name = list("Zena Aviv") + +/datum/gear/fluff/zena_helmet + path = /obj/item/clothing/head/helmet/space/void/engineering/zena + display_name = "Zena's Shroud Helmet" + ckeywhitelist = list("xonkon") + character_name = list("Zena Aviv") + + // Y CKEYS // Z CKEYS diff --git a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm index 35ce55e1fa..d4cd36fbc5 100644 --- a/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm +++ b/code/modules/client/preference_setup/loadout/loadout_suit_vr.dm @@ -50,3 +50,20 @@ display_name = "sleek modern coat (long), detective" path = /obj/item/clothing/suit/storage/det_trench/alt2 allowed_roles = list("Head of Security", "Detective") + +//Emergency Responder jackets for Parameds & EMTs, but also general Medical Staff +/datum/gear/suit/roles/medical/ems_jacket + display_name = "first responder jacket" + path = /obj/item/clothing/suit/storage/toggle/fr_jacket + allowed_roles = list("Chief Medical Officer","Paramedic","Medical Doctor") + +//imo-superior 'martian' style jacket with the star-of-life design +/datum/gear/suit/roles/medical/ems_jacket/alt + display_name = "first responder jacket, alt." + path = /obj/item/clothing/suit/storage/toggle/fr_jacket/ems + +//paramedic vest +/datum/gear/suit/roles/medical/paramedic_vest + display_name = "paramedic vest" + path = /obj/item/clothing/suit/storage/toggle/paramedic + allowed_roles = list("Chief Medical Officer","Paramedic","Medical Doctor") \ No newline at end of file diff --git a/code/modules/clothing/glasses/glasses_vr.dm b/code/modules/clothing/glasses/glasses_vr.dm index e1f71ddc36..ffbd36d1ee 100644 --- a/code/modules/clothing/glasses/glasses_vr.dm +++ b/code/modules/clothing/glasses/glasses_vr.dm @@ -61,6 +61,17 @@ item_flags = AIRTIGHT body_parts_covered = EYES +/obj/item/clothing/glasses/graviton/medgravpatch + name = "medical graviton eyepatch" + desc = "A graviton eyepatch with a medical overlay." + icon = 'icons/obj/clothing/glasses_vr.dmi' + icon_override = 'icons/mob/eyes_vr.dmi' + icon_state = "medgravpatch" + item_state_slots = list(slot_r_hand_str = "blindfold", slot_l_hand_str = "blindfold") + action_button_name = "Toggle Eyepatch" + off_state = "eyepatch" + enables_planes = list(VIS_CH_STATUS,VIS_CH_HEALTH,VIS_FULLBRIGHT,VIS_MESONS) + /*---Tajaran-specific Eyewear---*/ /obj/item/clothing/glasses/tajblind diff --git a/code/modules/clothing/spacesuits/void/void_vr.dm b/code/modules/clothing/spacesuits/void/void_vr.dm index 4cd03f36e5..9b821b9fae 100644 --- a/code/modules/clothing/spacesuits/void/void_vr.dm +++ b/code/modules/clothing/spacesuits/void/void_vr.dm @@ -141,7 +141,7 @@ icon_state = "autoloksuit" item_state = "autoloksuit" armor = list(melee = 15, bullet = 5, laser = 5,energy = 5, bomb = 5, bio = 100, rad = 80) - slowdown = 0 + slowdown = 0.5 siemens_coefficient = 1 species_restricted = list("exclude",SPECIES_DIONA,SPECIES_VOX) //this thing can autoadapt icon = 'icons/obj/clothing/suits_vr.dmi' diff --git a/code/modules/lore_codex/lore_data_vr/main.dm b/code/modules/lore_codex/lore_data_vr/main.dm index a5ee6c8252..7ecf53d937 100644 --- a/code/modules/lore_codex/lore_data_vr/main.dm +++ b/code/modules/lore_codex/lore_data_vr/main.dm @@ -10,6 +10,7 @@ /datum/lore/codex/category/important_locations, /datum/lore/codex/category/species, /datum/lore/codex/category/auto_org/tsc, + /datum/lore/codex/category/auto_org/other, /datum/lore/codex/category/auto_org/gov, /datum/lore/codex/category/auto_org/mil, /datum/lore/codex/category/political_factions, diff --git a/code/modules/lore_codex/lore_data_vr/orgs.dm b/code/modules/lore_codex/lore_data_vr/orgs.dm index 5f4c6cc650..6a9ced097c 100644 --- a/code/modules/lore_codex/lore_data_vr/orgs.dm +++ b/code/modules/lore_codex/lore_data_vr/orgs.dm @@ -27,13 +27,17 @@ the biggest and most influential of them all. Some people also categorize the different TSCs into 'major' and 'minor' TSCs." desired_type = /datum/lore/organization/tsc +/datum/lore/codex/category/auto_org/other + name = "Other Factions" + auto_keywords = list("KHI","SDF","Smuggler","Smugglers","Pirate","Pirates") + desired_type = /datum/lore/organization/other + /datum/lore/codex/category/auto_org/gov name = "Governments" auto_keywords = list("Gov","Government","Governments") desired_type = /datum/lore/organization/gov - /datum/lore/codex/category/auto_org/mil - name = "Militaries" + name = "Military Forces & PMCs" auto_keywords = list("Mil","Military", "Militaries") desired_type = /datum/lore/organization/mil diff --git a/code/modules/materials/material_recipes_vr.dm b/code/modules/materials/material_recipes_vr.dm index 674ec97e9e..ba2a95250a 100644 --- a/code/modules/materials/material_recipes_vr.dm +++ b/code/modules/materials/material_recipes_vr.dm @@ -82,4 +82,9 @@ /material/durasteel/generate_recipes() . = ..() - recipes += new/datum/stack_recipe("durasteel fishing rod", /obj/item/weapon/material/fishing_rod/modern/strong, 2) \ No newline at end of file + recipes += new/datum/stack_recipe("durasteel fishing rod", /obj/item/weapon/material/fishing_rod/modern/strong, 2) + recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 30) + +/material/plastitanium/generate_recipes() + . = ..() + recipes += new/datum/stack_recipe("whetstone", /obj/item/weapon/whetstone, 2, time = 20) diff --git a/code/modules/mining/drilling/drill.dm b/code/modules/mining/drilling/drill.dm index ca04d74650..c9423aa3aa 100644 --- a/code/modules/mining/drilling/drill.dm +++ b/code/modules/mining/drilling/drill.dm @@ -57,7 +57,7 @@ if(ispath(cell)) cell = new cell(src) default_apply_parts() - default_use_hicell() + cell = default_use_hicell() /obj/machinery/mining/drill/loaded cell = /obj/item/weapon/cell/high diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans.dm b/code/modules/mob/living/carbon/human/species/station/prometheans.dm index ae3cbec73a..c886b2bab3 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans.dm @@ -110,9 +110,6 @@ var/datum/species/shapeshifter/promethean/prometheans /mob/living/carbon/human/proc/shapeshifter_select_eye_colour, /mob/living/carbon/human/proc/shapeshifter_select_hair_colors, /mob/living/carbon/human/proc/shapeshifter_select_gender, - /mob/living/carbon/human/proc/shapeshifter_select_wings, //VOREStation Add, - /mob/living/carbon/human/proc/shapeshifter_select_tail, //VOREStation Add, - /mob/living/carbon/human/proc/shapeshifter_select_ears, //VOREStation Add, /mob/living/carbon/human/proc/regenerate ) @@ -186,35 +183,35 @@ var/datum/species/shapeshifter/promethean/prometheans if(istype(T)) if(!(H.shoes || (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)))) for(var/obj/O in T) - O.clean_blood() - H.adjust_nutrition(rand(5, 15)) + if(O.clean_blood()) + H.adjust_nutrition(rand(5, 15)) if (istype(T, /turf/simulated)) var/turf/simulated/S = T - T.clean_blood() - S.dirt = 0 - //VOREStation Edit Start - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + if(T.clean_blood()) + H.adjust_nutrition(rand(10, 20)) + if(S.dirt > 50) + S.dirt = 0 + H.adjust_nutrition(rand(10, 20)) if(H.clean_blood(1)) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + H.adjust_nutrition(rand(5, 15)) if(H.r_hand) if(H.r_hand.clean_blood()) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + H.adjust_nutrition(rand(5, 15)) if(H.l_hand) if(H.l_hand.clean_blood()) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + H.adjust_nutrition(rand(5, 15)) if(H.head) if(H.head.clean_blood()) H.update_inv_head(0) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + H.adjust_nutrition(rand(5, 15)) if(H.wear_suit) if(H.wear_suit.clean_blood()) H.update_inv_wear_suit(0) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) + H.adjust_nutrition(rand(5, 15)) if(H.w_uniform) if(H.w_uniform.clean_blood()) H.update_inv_w_uniform(0) - H.adjust_nutrition(H.nutrition < 500 ? rand(15, 30) : 0) - //VOREStation Edit End + H.adjust_nutrition(rand(5, 15)) //End cleaning code. var/datum/gas_mixture/environment = T.return_air() diff --git a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm index 198bd80232..91dc18ebac 100644 --- a/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/prometheans_vr.dm @@ -26,6 +26,9 @@ /mob/living/carbon/human/proc/shapeshifter_select_hair_colors, /mob/living/carbon/human/proc/shapeshifter_select_gender, /mob/living/carbon/human/proc/regenerate, + /mob/living/carbon/human/proc/shapeshifter_select_wings, + /mob/living/carbon/human/proc/shapeshifter_select_tail, + /mob/living/carbon/human/proc/shapeshifter_select_ears, /mob/living/proc/set_size, /mob/living/carbon/human/proc/succubus_drain, /mob/living/carbon/human/proc/succubus_drain_finalize, diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0de27e6e14..05031e9855 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -155,7 +155,7 @@ var/global/list/damage_icon_parts = list() //see UpdateDamageIcon() layer = MOB_LAYER -0.01 // Fix for a byond bug where turf entry order no longer matters else M.Scale(desired_scale_x, desired_scale_y) - M.Translate(0, 16*(desired_scale_y-1)) + M.Translate(0, (vis_height/2)*(desired_scale_y-1)) //VOREStation edit layer = MOB_LAYER // Fix for a byond bug where turf entry order no longer matters animate(src, transform = M, time = anim_time) diff --git a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax_vr.dm b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax_vr.dm index 5d0aad8ef4..e7ecc33332 100644 --- a/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/mechanical/mecha/adv_dark_gygax_vr.dm @@ -1,2 +1,8 @@ /datum/ai_holder/simple_mob/intentional/adv_dark_gygax intelligence_level = AI_SMART // Also knows not to walk while confused if it risks death. + +/mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/recursive + name = "recursive dark gygax" + desc = "Whoever pilots this cursed mecha has been stuck in eternal loop of death and rebirth forever. Their maddened rampage cannot be stopped." + wreckage = /obj/item/weapon/ectoplasm + pilot_type = /mob/living/simple_mob/mechanical/mecha/combat/gygax/dark/advanced/recursive diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm new file mode 100644 index 0000000000..92a8a46306 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Big.dm @@ -0,0 +1,44 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big + tt_desc = "E Homo sapiens corydon horrificus" //this clown is stronk + faction = "clown" + + maxHealth = 200 + health = 200 + see_in_dark = 8 + + melee_damage_lower = 15 + melee_damage_upper = 25 + attack_armor_pen = 5 + attack_sharp = FALSE + attack_edge = FALSE + melee_attack_delay = 1 SECOND + attacktext = list("clowned") + + ai_holder_type = /datum/ai_holder/simple_mob/melee/angryclowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + +/mob/living/simple_mob/mobs_monsters/clowns/big + min_oxy = 0 + max_oxy = 500 + min_tox = 0 + max_tox = 500 + min_co2 = 0 + max_co2 = 500 + min_n2 = 0 + max_n2 = 500 + minbodytemp = 0 + maxbodytemp = 700 + +/datum/ai_holder/simple_mob/melee/angryclowns + can_breakthrough = TRUE + violent_breakthrough = FALSE + hostile = TRUE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm new file mode 100644 index 0000000000..9e0130f2aa --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/Clowns.dm @@ -0,0 +1,45 @@ +/mob/living/simple_mob/mobs_monsters/clowns/ + tt_desc = "E Homo sapiens corydon" //this is a clown + faction = "clown" + movement_sound = 'sound/effects/clownstep2.ogg' + attack_sound = 'sound/effects/Whipcrack.ogg' + + faction = "clown" + + maxHealth = 100 + health = 100 + see_in_dark = 8 + + has_hands = TRUE + humanoid_hands = TRUE + + melee_damage_lower = 5 + melee_damage_upper = 30 + + ai_holder_type = /datum/ai_holder/simple_mob/melee/clowns + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + minbodytemp = 0 + maxbodytemp = 700 + + +/datum/ai_holder/simple_mob/melee/clowns + can_breakthrough = FALSE + violent_breakthrough = FALSE + hostile = FALSE // The majority of simplemobs are hostile, gaslamps are nice. + cooperative = FALSE + retaliate = TRUE //so the monster can attack back + returns_home = FALSE + can_flee = FALSE + speak_chance = 3 + wander = TRUE + base_wander_delay = 9 diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm new file mode 100644 index 0000000000..41e0c57dd7 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bigclowns.dm @@ -0,0 +1,379 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/normal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/tunnelclown + name = "A Clown?" + desc = "Have you heard about our lord and savior, Honkus Chrust?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "tunnel_new" + icon_living = "tunnel_new" + icon_dead = "tunnel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/sentinel + name = "A Clown?" + desc = "This guy means business..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "sentinel_new" + icon_living = "sentinel_new" + icon_dead = "sentinel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/punished + name = "A Clown?" + desc = "A clown at peak performance." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_punished" + icon_living = "c_punished" + icon_dead = "punished_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/thicc + name = "A Clown..." + desc = "I mean, you see it don't you?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thicc" + icon_living = "c_thicc" + icon_dead = "thicc_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/perm + name = "A Clown?" + desc = "That clown really needs to get that hair under control." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_perm" + icon_living = "c_perm" + icon_dead = "perm_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/wide + name = "A Clown?" + desc = "He looks good from some angles!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_wide" + icon_living = "c_wide" + icon_dead = "wide_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/thin + name = "A Clown?" + desc = "Is he eating enough?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thin" + icon_living = "c_thin" + icon_dead = "thin_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/hulk + name = "A Clown?" + desc = "Just look at those muscles." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkhulk" + icon_living = "honkhulk" + icon_dead = "hulk_dead" + icon_gib = "generic_gib" + vis_height = 64 + health = 350 + maxHealth = 350 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/longface + name = "A Clown?" + desc = "Why the long face?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "long face" + icon_living = "long face" + icon_dead = "long_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/giggles + name = "A Giggles?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "giggles" + icon_living = "giggles" + icon_dead = "giggles_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/destroyer + name = "A Clown?" + desc = "That clown looks like he means business." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "destroyer" + icon_living = "destroyer" + icon_dead = "destroyer_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + movement_cooldown = 10 + movement_sound = 'sound/weapons/heavysmash.ogg' + movement_shake_radius = 5 + + armor = list( + "melee" = 40, + "bullet" = 20, + "laser" = 10, + "energy" = 0, + "bomb" = 0, + "bio" = 0, + "rad" = 0 + ) + armor_soak = list( + "melee" = 10, + "bullet" = 5, + "laser" = 0, + "energy" = 0, + "bomb" = 0, + "bio" = 0, + "rad" = 0 + ) + + +/mob/living/simple_mob/mobs_monsters/clowns/big/chlown + name = "A Clown?" + desc = "No." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "chlown" + icon_living = "chlown" + icon_dead = "chlown_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/scary + name = "A Clown?" + desc = "Hey that clown looks familiar!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "scary_clown" + icon_living = "scary_clown" + icon_dead = "scary_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/flesh + name = "A Clown?" + desc = "WOOOOO STREAKING WOOOO!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "fleshclown" + icon_living = "fleshclown" + icon_dead = "flesh_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/clowns + name = "Definitely a singular clown" + desc = "Is it one clown, or many clowns in not a trenchcoat?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "clowns" + icon_living = "clowns" + icon_dead = "clowns_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/mutant + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "mutant" + icon_living = "mutant" + icon_dead = "mutant_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/blob + name = "A Clown?" + desc = "Go to a gym fatty!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "blob" + icon_living = "blob" + icon_dead = "blob_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/mayor + name = "A clown?" + desc = "One speaks in riddles..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/giantclowns.dmi' + icon_state = "c_mayor" + icon_living = "c_mayor" + icon_dead = "mayor_dead" + icon_gib = "generic_gib" + vis_height = 96 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/honkling + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkling" + icon_living = "honkling" + icon_dead = "honkling_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +//template + +///mob/living/simple_mob/mobs_monsters/clowns/big/ +// name = "A Clown?" +// desc = "Oh sweet space christ." +// tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown +// icon = 'icons/mob/mobs_monsters/tgclowns.dmi' +// icon_state = "" +// icon_living = "" +// icon_dead = "_dead" +// icon_gib = "generic_gib" +// vis_height = 64 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm new file mode 100644 index 0000000000..8a51b77018 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/bus.dm @@ -0,0 +1,7 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + faction = "clown" + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/New() + ..() + verbs += /mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm new file mode 100644 index 0000000000..c4b3a13033 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/busclowns.dm @@ -0,0 +1,365 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/anormal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/tunnelclown + name = "A Clown?" + desc = "Have you heard about our lord and savior, Honkus Chrust?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "tunnel_new" + icon_living = "tunnel_new" + icon_dead = "tunnel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/sentinel + name = "A Clown?" + desc = "This guy means business..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "sentinel_new" + icon_living = "sentinel_new" + icon_dead = "sentinel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/punished + name = "A Clown?" + desc = "A clown at peak performance." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_punished" + icon_living = "c_punished" + icon_dead = "punished_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thicc + name = "A Clown..." + desc = "I mean, you see it don't you?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thicc" + icon_living = "c_thicc" + icon_dead = "thicc_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/perm + name = "A Clown?" + desc = "That clown really needs to get that hair under control." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_perm" + icon_living = "c_perm" + icon_dead = "perm_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/wide + name = "A Clown?" + desc = "He looks good from some angles!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_wide" + icon_living = "c_wide" + icon_dead = "wide_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/thin + name = "A Clown?" + desc = "Is he eating enough?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thin" + icon_living = "c_thin" + icon_dead = "thin_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/hulk + name = "A Clown?" + desc = "Just look at those muscles." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkhulk" + icon_living = "honkhulk" + icon_dead = "hulk_dead" + icon_gib = "generic_gib" + vis_height = 64 + health = 350 + maxHealth = 350 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/longface + name = "A Clown?" + desc = "Why the long face?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "long face" + icon_living = "long face" + icon_dead = "long_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/giggles + name = "A Giggles?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "giggles" + icon_living = "giggles" + icon_dead = "giggles_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/destroyer + name = "A Clown?" + desc = "That clown looks like he means business." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "destroyer" + icon_living = "destroyer" + icon_dead = "destroyer_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + movement_cooldown = 10 + movement_sound = 'sound/weapons/heavysmash.ogg' + movement_shake_radius = 5 + + armor = list( + "melee" = 40, + "bullet" = 20, + "laser" = 10, + "energy" = 0, + "bomb" = 0, + "bio" = 0, + "rad" = 0 + ) + armor_soak = list( + "melee" = 10, + "bullet" = 5, + "laser" = 0, + "energy" = 0, + "bomb" = 0, + "bio" = 0, + "rad" = 0 + ) + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/chlown + name = "A Clown?" + desc = "No." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "chlown" + icon_living = "chlown" + icon_dead = "chlown_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/scary + name = "A Clown?" + desc = "Hey that clown looks familiar!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "scary_clown" + icon_living = "scary_clown" + icon_dead = "scary_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/flesh + name = "A Clown?" + desc = "WOOOOO STREAKING WOOOO!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "fleshclown" + icon_living = "fleshclown" + icon_dead = "flesh_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/clowns + name = "Definitely a singular clown" + desc = "Is it one clown, or many clowns in not a trenchcoat?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "clowns" + icon_living = "clowns" + icon_dead = "clowns_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mutant + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "mutant" + icon_living = "mutant" + icon_dead = "mutant_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/blob + name = "A Clown?" + desc = "Go to a gym fatty!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "blob" + icon_living = "blob" + icon_dead = "blob_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/mayor + name = "A clown?" + desc = "One speaks in riddles..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/giantclowns.dmi' + icon_state = "c_mayor" + icon_living = "c_mayor" + icon_dead = "mayor_dead" + icon_gib = "generic_gib" + vis_height = 96 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkling + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkling" + icon_living = "honkling" + icon_dead = "honkling_dead" + icon_gib = "generic_gib" + vis_height = 32 \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm new file mode 100644 index 0000000000..5c37f269d7 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/c_shift.dm @@ -0,0 +1,95 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift + var/ability_flags = 0 //Flags for active abilities + +// Phase shifting procs (and related procs) +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/proc/phase_shift() + var/turf/T = get_turf(src) + if(!T.CanPass(src,T) || loc != T) + to_chat(src,"You can't use that here!") + return FALSE + + forceMove(T) + var/original_canmove = canmove + SetStunned(0) + SetWeakened(0) + if(buckled) + buckled.unbuckle_mob() + if(pulledby) + pulledby.stop_pulling() + stop_pulling() + canmove = FALSE + + //Shifting in + if(ability_flags & AB_PHASE_SHIFTED) + ability_flags &= ~AB_PHASE_SHIFTED + mouse_opacity = 2 + name = real_name + + + overlays.Cut() + alpha = initial(alpha) + invisibility = initial(invisibility) + see_invisible = initial(see_invisible) + incorporeal_move = initial(incorporeal_move) + density = initial(density) + force_max_speed = initial(force_max_speed) + + //Cosmetics mostly + flick("tp_in",src) + custom_emote(1,"phases in!") + sleep(5) //The duration of the TP animation + canmove = original_canmove + + // Do this after the potential vore, so we get the belly + update_icon() + + //Affect nearby lights + + + for(var/obj/machinery/light/L in machines) + if(L.z != z || get_dist(src,L) > 10) + continue + + L.flicker(10) + + //Shifting out + else + ability_flags |= AB_PHASE_SHIFTED + mouse_opacity = 0 + custom_emote(1,"phases out!") + real_name = name + name = "Something" + + overlays.Cut() + flick("tp_out",src) + sleep(5) + invisibility = INVISIBILITY_LEVEL_TWO + see_invisible = INVISIBILITY_LEVEL_TWO + update_icon() + alpha = 127 + + canmove = original_canmove + incorporeal_move = TRUE + density = FALSE + force_max_speed = TRUE + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/UnarmedAttack() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope. + + . = ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/can_fall() + if(ability_flags & AB_PHASE_SHIFTED) + return FALSE //Nope! + + return ..() + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/zMove(direction) + if(ability_flags & AB_PHASE_SHIFTED) + var/turf/destination = (direction == UP) ? GetAbove(src) : GetBelow(src) + if(destination) + forceMove(destination) + return TRUE + + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm new file mode 100644 index 0000000000..585fdab893 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/hespawner.dm @@ -0,0 +1,30 @@ +// These are used to spawn a specific mob when triggered, with the mob controlled by a player pulled from the ghost pool, hense its name. +/obj/structure/ghost_pod/manual/clegg + name = "Clown Egg?" + desc = "Why does this have to be what this is?" + icon = 'icons/mob/mobs_monsters/giantclowns.dmi' + icon_state = "c_egg" + icon_state_opened = "c_egg_opened" // Icon to switch to when 'used'. + ghost_query_type = /datum/ghost_query/hellclown + +/datum/ghost_query/hellclown + role_name = "egg clown" + question = "THE HONKMOTHER REQUESTS SUBJECTS. REPORT TO THE ELEMENTAL TO JOIN THE HONKENING." + cutoff_number = 1 + +/obj/structure/ghost_pod/manual/clegg/trigger() + ..("\The [usr] places their hand on the egg!", "is attempting to make a mistake!") + +/obj/structure/ghost_pod/manual/clegg/create_occupant(var/mob/M) + lightning_strike(get_turf(src), cosmetic = TRUE) + var/list/choices = list(/mob/living/simple_mob/mobs_monsters/clowns/normal, /mob/living/simple_mob/mobs_monsters/clowns/honkling, /mob/living/simple_mob/mobs_monsters/clowns/mayor, /mob/living/simple_mob/mobs_monsters/clowns/blob, /mob/living/simple_mob/mobs_monsters/clowns/mutant, /mob/living/simple_mob/mobs_monsters/clowns/clowns, /mob/living/simple_mob/mobs_monsters/clowns/flesh, /mob/living/simple_mob/mobs_monsters/clowns/scary, /mob/living/simple_mob/mobs_monsters/clowns/chlown, /mob/living/simple_mob/mobs_monsters/clowns/destroyer, /mob/living/simple_mob/mobs_monsters/clowns/giggles, /mob/living/simple_mob/mobs_monsters/clowns/longface, /mob/living/simple_mob/mobs_monsters/clowns/hulk, /mob/living/simple_mob/mobs_monsters/clowns/thin, /mob/living/simple_mob/mobs_monsters/clowns/wide, /mob/living/simple_mob/mobs_monsters/clowns/perm, /mob/living/simple_mob/mobs_monsters/clowns/thicc, /mob/living/simple_mob/mobs_monsters/clowns/punished, /mob/living/simple_mob/mobs_monsters/clowns/sentinel, /mob/living/simple_mob/mobs_monsters/clowns/tunnelclown, /mob/living/simple_mob/mobs_monsters/clowns/cluwne, /mob/living/simple_mob/mobs_monsters/clowns/honkmunculus) + var/chosen_clown = input(M, "Redspace clowns like themes, what's yours?") in choices + density = FALSE + var/mob/living/simple_mob/R = new chosen_clown(get_turf(src)) + if(M.mind) + M.mind.transfer_to(R) + to_chat(M, "You are a Clown!! HONK!") + R.ckey = M.ckey + visible_message("With a bright flash of light, \the [src] disappears, and in its place you see a... Clown?") + log_and_message_admins("successfully touched \a [src] and summoned a mistake!") + ..() \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm new file mode 100644 index 0000000000..00dab095de --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/honkelemental.dm @@ -0,0 +1,35 @@ +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental + name = "Honk Elemental" + desc = "That thing can't be real, right?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/giantclowns.dmi' + icon_state = "honk_elemental" + icon_living = "honk_elemental" + icon_dead = "he_dead" + icon_gib = "generic_gib" + vis_height = 96 + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + +/mob/living/simple_mob/mobs_monsters/clowns/big/c_shift/honkelemental/verb/spawn_egg() + set category = "Abilities" + set name = "Spawn Clown Egg" + set desc = "Spawns an egg that a player can touch, which will call on ghosts to spawn as clowns." + + if(is_dead()) + return + + new /obj/structure/ghost_pod/manual/clegg(get_turf(src)) + flick("he_lay",src) \ No newline at end of file diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm new file mode 100644 index 0000000000..1e30c139f2 --- /dev/null +++ b/code/modules/mob/living/simple_mob/subtypes/vore/mobs_monsters/clowns/regularclowns.dm @@ -0,0 +1,362 @@ +/mob/living/simple_mob/mobs_monsters/clowns/ + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" + + say_list_type = /datum/say_list/clown + +/datum/say_list/clown + speak = list("HONK", "Honk!", "Henk!") + emote_see = list("honks") + + + +/mob/living/simple_mob/mobs_monsters/clowns/honkmunculus + name = "A Clown?" + desc = "That clown has some interesting proportions." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/TGClowns.dmi' + icon_state = "honkmunculus" + icon_living = "honkmunculus" + icon_dead = "honkmunculus_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/cluwne + name = "A Clown?" + desc = "Oh no not that thing." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "cluwne" + icon_living = "cluwne" + icon_dead = "cluwne_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/tunnelclown + name = "A Clown?" + desc = "Have you heard about our lord and savior, Honkus Chrust?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "tunnel_new" + icon_living = "tunnel_new" + icon_dead = "tunnel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/sentinel + name = "A Clown?" + desc = "This guy means business..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "sentinel_new" + icon_living = "sentinel_new" + icon_dead = "sentinel_dead" + icon_gib = "generic_gib" + vis_height = 32 + + + +/mob/living/simple_mob/mobs_monsters/clowns/punished + name = "A Clown?" + desc = "A clown at peak performance." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_punished" + icon_living = "c_punished" + icon_dead = "punished_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/thicc + name = "A Clown..." + desc = "I mean, you see it don't you?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thicc" + icon_living = "c_thicc" + icon_dead = "thicc_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/perm + name = "A Clown?" + desc = "That clown really needs to get that hair under control." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_perm" + icon_living = "c_perm" + icon_dead = "perm_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/wide + name = "A Clown?" + desc = "He looks good from some angles!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_wide" + icon_living = "c_wide" + icon_dead = "wide_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/thin + name = "A Clown?" + desc = "Is he eating enough?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_thin" + icon_living = "c_thin" + icon_dead = "thin_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/hulk + name = "A Clown?" + desc = "Just look at those muscles." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkhulk" + icon_living = "honkhulk" + icon_dead = "hulk_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/longface + name = "A Clown?" + desc = "Why the long face?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "long face" + icon_living = "long face" + icon_dead = "long_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/giggles + name = "A Giggles?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "giggles" + icon_living = "giggles" + icon_dead = "giggles_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/destroyer + name = "A Clown?" + desc = "That clown looks like he means business." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "destroyer" + icon_living = "destroyer" + icon_dead = "destroyer_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/chlown + name = "A Clown?" + desc = "No." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "chlown" + icon_living = "chlown" + icon_dead = "chlown_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/scary + name = "A Clown?" + desc = "Hey that clown looks familiar!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "scary_clown" + icon_living = "scary_clown" + icon_dead = "scary_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/flesh + name = "A Clown?" + desc = "WOOOOO STREAKING WOOOO!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "fleshclown" + icon_living = "fleshclown" + icon_dead = "flesh_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/clowns + name = "Definitely a singular clown" + desc = "Is it one clown, or many clowns in not a trenchcoat?" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "clowns" + icon_living = "clowns" + icon_dead = "clowns_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/mutant + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "mutant" + icon_living = "mutant" + icon_dead = "mutant_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/blob + name = "A Clown?" + desc = "Go to a gym fatty!" + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "blob" + icon_living = "blob" + icon_dead = "blob_dead" + icon_gib = "generic_gib" + vis_height = 64 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/mayor + name = "A clown?" + desc = "One speaks in riddles..." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/giantclowns.dmi' + icon_state = "c_mayor" + icon_living = "c_mayor" + icon_dead = "mayor_dead" + icon_gib = "generic_gib" + vis_height = 96 + + old_x = -16 + old_y = 0 + default_pixel_x = -16 + pixel_x = -16 + pixel_y = 0 + + +/mob/living/simple_mob/mobs_monsters/clowns/honkling + name = "A Clown?" + desc = "Oh sweet space christ." + tt_desc = "E Homo sapiens corydon horrificus" //this is a redspace clown + icon = 'icons/mob/mobs_monsters/tgclowns.dmi' + icon_state = "honkling" + icon_living = "honkling" + icon_dead = "honkling_dead" + icon_gib = "generic_gib" + vis_height = 32 + + +/mob/living/simple_mob/mobs_monsters/clowns/normal + name = "Clown" + desc = "A regular, every tuesday Clown." + tt_desc = "E Homo sapiens corydon" //this is a clown + icon = 'icons/mob/mobs_monsters/newclowns.dmi' + icon_state = "c_normal" + icon_living = "c_normal" + icon_dead = "clown_dead" + icon_gib = "generic_gib" + vis_height = 32 + + faction = "clown" + + loot_list = list(/obj/item/weapon/bikehorn = 100) + + response_help = "pokes" + response_disarm = "gently pushes aside" + response_harm = "hits" \ No newline at end of file diff --git a/code/modules/nano/interaction/default_vr.dm b/code/modules/nano/interaction/default_vr.dm new file mode 100644 index 0000000000..963963b3d7 --- /dev/null +++ b/code/modules/nano/interaction/default_vr.dm @@ -0,0 +1,6 @@ +/mob/living/simple_mob/default_can_use_topic(var/src_object) + . = shared_nano_interaction(src_object) + if(. != STATUS_CLOSE) + . = min(., shared_living_nano_distance(src_object)) + +//Allows simple mobs to interact with nanoui as long as they have "has_hands = TRUE" \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Recipes_vr.dm b/code/modules/reagents/Chemistry-Recipes_vr.dm index 61ecfb4a3a..697dae4c63 100644 --- a/code/modules/reagents/Chemistry-Recipes_vr.dm +++ b/code/modules/reagents/Chemistry-Recipes_vr.dm @@ -161,8 +161,8 @@ name = "Space Bulldog" id = "bulldog" result = "bulldog" - required_reagents = list("blackrussian" = 3, "cola" =1) // YW edit, cream makes it turn into white russian, when they change on vorestation and we update, can change this - result_amount = 5 + required_reagents = list("vodka" = 1, "cola" =1, "cream" =1, "kahlua" =1) + result_amount = 4 /datum/chemical_reaction/drinks/sbagliato name = "Negroni Sbagliato" diff --git a/code/modules/vore/eating/belly_obj_vr.dm b/code/modules/vore/eating/belly_obj_vr.dm index fb0bdcb726..e0bd0da7e0 100644 --- a/code/modules/vore/eating/belly_obj_vr.dm +++ b/code/modules/vore/eating/belly_obj_vr.dm @@ -20,8 +20,8 @@ var/nonhuman_prey_swallow_time = 30 // Time in deciseconds to swallow anything else var/emote_time = 60 SECONDS // How long between stomach emotes at prey var/nutrition_percent = 100 // Nutritional percentage per tick in digestion mode - var/digest_brute = 2 // Brute damage per tick in digestion mode - var/digest_burn = 2 // Burn damage per tick in digestion mode + var/digest_brute = 0.5 // Brute damage per tick in digestion mode + var/digest_burn = 0.5 // Burn damage per tick in digestion mode var/immutable = FALSE // Prevents this belly from being deleted var/escapable = FALSE // Belly can be resisted out of at any time var/escapetime = 60 SECONDS // Deciseconds, how long to escape this belly diff --git a/code/modules/vore/fluffstuff/custom_clothes_vr.dm b/code/modules/vore/fluffstuff/custom_clothes_vr.dm index 6927fba35d..ad2cf9f8e7 100644 --- a/code/modules/vore/fluffstuff/custom_clothes_vr.dm +++ b/code/modules/vore/fluffstuff/custom_clothes_vr.dm @@ -1965,3 +1965,28 @@ Departamental Swimsuits, for general use icon_override = 'icons/vore/custom_onmob_vr.dmi' icon_state = "azuracollar" + + +//Xonkon: Zena Aviv +/obj/item/clothing/head/helmet/space/void/engineering/zena + name = "custom shroud helmet" + desc = "A black and orange engineering shroud helmet. Orange plated and specially crafted and augmented for a variety of activites." + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "zenahelmet" + + icon_override = 'icons/vore/custom_clothes_vr.dmi' + item_state = "zenahelmet_mob" + + species_restricted = null + + +/obj/item/clothing/suit/space/void/engineering/zena + name = "custom shroud suit" + desc = "A black and orange engineering shroud helmet. Skintight and specially crafted and augmented for a variety of activites." + icon = 'icons/vore/custom_clothes_vr.dmi' + icon_state = "zenasuit" + + icon_override = 'icons/vore/custom_clothes_vr.dmi' + item_state = "zenasuit_mob" + + species_restricted = null \ No newline at end of file diff --git a/icons/mob/eyes_vr.dmi b/icons/mob/eyes_vr.dmi index 15a473ebbe..89805954f7 100644 Binary files a/icons/mob/eyes_vr.dmi and b/icons/mob/eyes_vr.dmi differ diff --git a/icons/mob/items/lefthand_melee_vr.dmi b/icons/mob/items/lefthand_melee_vr.dmi index dd43d4a503..69ff6b6610 100644 Binary files a/icons/mob/items/lefthand_melee_vr.dmi and b/icons/mob/items/lefthand_melee_vr.dmi differ diff --git a/icons/mob/items/righthand_melee_vr.dmi b/icons/mob/items/righthand_melee_vr.dmi index 399c1d902d..655dbc371d 100644 Binary files a/icons/mob/items/righthand_melee_vr.dmi and b/icons/mob/items/righthand_melee_vr.dmi differ diff --git a/icons/mob/mobs_monsters/TGClowns.dmi b/icons/mob/mobs_monsters/TGClowns.dmi new file mode 100644 index 0000000000..2ade8104e0 Binary files /dev/null and b/icons/mob/mobs_monsters/TGClowns.dmi differ diff --git a/icons/mob/mobs_monsters/giantclowns.dmi b/icons/mob/mobs_monsters/giantclowns.dmi new file mode 100644 index 0000000000..5365a0acad Binary files /dev/null and b/icons/mob/mobs_monsters/giantclowns.dmi differ diff --git a/icons/mob/mobs_monsters/newclowns.dmi b/icons/mob/mobs_monsters/newclowns.dmi new file mode 100644 index 0000000000..cb41a76596 Binary files /dev/null and b/icons/mob/mobs_monsters/newclowns.dmi differ diff --git a/icons/mob/species/werebeast/uniform.dmi b/icons/mob/species/werebeast/uniform.dmi index 5c7dada67a..e441c4af6d 100644 Binary files a/icons/mob/species/werebeast/uniform.dmi and b/icons/mob/species/werebeast/uniform.dmi differ diff --git a/icons/obj/clothing/backpack_vr.dmi b/icons/obj/clothing/backpack_vr.dmi index ecab5d00db..3a376ae8e5 100644 Binary files a/icons/obj/clothing/backpack_vr.dmi and b/icons/obj/clothing/backpack_vr.dmi differ diff --git a/icons/obj/clothing/glasses_vr.dmi b/icons/obj/clothing/glasses_vr.dmi index bff9c7b3a8..eee1bd9bfc 100644 Binary files a/icons/obj/clothing/glasses_vr.dmi and b/icons/obj/clothing/glasses_vr.dmi differ diff --git a/icons/obj/storage_vr.dmi b/icons/obj/storage_vr.dmi index c3be0263e1..bf884c2ded 100644 Binary files a/icons/obj/storage_vr.dmi and b/icons/obj/storage_vr.dmi differ diff --git a/icons/obj/weapons_vr.dmi b/icons/obj/weapons_vr.dmi index 96ecf1e99e..aa67af7326 100644 Binary files a/icons/obj/weapons_vr.dmi and b/icons/obj/weapons_vr.dmi differ diff --git a/icons/pda_icons/pda_atmos.png b/icons/pda_icons/pda_atmos.png deleted file mode 100644 index 89a55a0a6c..0000000000 Binary files a/icons/pda_icons/pda_atmos.png and /dev/null differ diff --git a/icons/pda_icons/pda_back.png b/icons/pda_icons/pda_back.png deleted file mode 100644 index 4708824853..0000000000 Binary files a/icons/pda_icons/pda_back.png and /dev/null differ diff --git a/icons/pda_icons/pda_bell.png b/icons/pda_icons/pda_bell.png deleted file mode 100644 index 1e989c2747..0000000000 Binary files a/icons/pda_icons/pda_bell.png and /dev/null differ diff --git a/icons/pda_icons/pda_blank.png b/icons/pda_icons/pda_blank.png deleted file mode 100644 index 665861d3c7..0000000000 Binary files a/icons/pda_icons/pda_blank.png and /dev/null differ diff --git a/icons/pda_icons/pda_boom.png b/icons/pda_icons/pda_boom.png deleted file mode 100644 index 70e473c3c4..0000000000 Binary files a/icons/pda_icons/pda_boom.png and /dev/null differ diff --git a/icons/pda_icons/pda_bucket.png b/icons/pda_icons/pda_bucket.png deleted file mode 100644 index ee030e3a37..0000000000 Binary files a/icons/pda_icons/pda_bucket.png and /dev/null differ diff --git a/icons/pda_icons/pda_chatroom.png b/icons/pda_icons/pda_chatroom.png deleted file mode 100644 index a00221c4e0..0000000000 Binary files a/icons/pda_icons/pda_chatroom.png and /dev/null differ diff --git a/icons/pda_icons/pda_crate.png b/icons/pda_icons/pda_crate.png deleted file mode 100644 index e1e076e279..0000000000 Binary files a/icons/pda_icons/pda_crate.png and /dev/null differ diff --git a/icons/pda_icons/pda_cuffs.png b/icons/pda_icons/pda_cuffs.png deleted file mode 100644 index 71958c8abc..0000000000 Binary files a/icons/pda_icons/pda_cuffs.png and /dev/null differ diff --git a/icons/pda_icons/pda_eject.png b/icons/pda_icons/pda_eject.png deleted file mode 100644 index 4168be03f6..0000000000 Binary files a/icons/pda_icons/pda_eject.png and /dev/null differ diff --git a/icons/pda_icons/pda_exit.png b/icons/pda_icons/pda_exit.png deleted file mode 100644 index cd983a4a9a..0000000000 Binary files a/icons/pda_icons/pda_exit.png and /dev/null differ diff --git a/icons/pda_icons/pda_flashlight.png b/icons/pda_icons/pda_flashlight.png deleted file mode 100644 index 3476727930..0000000000 Binary files a/icons/pda_icons/pda_flashlight.png and /dev/null differ diff --git a/icons/pda_icons/pda_honk.png b/icons/pda_icons/pda_honk.png deleted file mode 100644 index 55632bf40b..0000000000 Binary files a/icons/pda_icons/pda_honk.png and /dev/null differ diff --git a/icons/pda_icons/pda_locked.PNG b/icons/pda_icons/pda_locked.PNG deleted file mode 100644 index 79fe582916..0000000000 Binary files a/icons/pda_icons/pda_locked.PNG and /dev/null differ diff --git a/icons/pda_icons/pda_mail.png b/icons/pda_icons/pda_mail.png deleted file mode 100644 index 6bfb1e8cd7..0000000000 Binary files a/icons/pda_icons/pda_mail.png and /dev/null differ diff --git a/icons/pda_icons/pda_medical.png b/icons/pda_icons/pda_medical.png deleted file mode 100644 index 448063ecf5..0000000000 Binary files a/icons/pda_icons/pda_medical.png and /dev/null differ diff --git a/icons/pda_icons/pda_menu.png b/icons/pda_icons/pda_menu.png deleted file mode 100644 index abd6ccb225..0000000000 Binary files a/icons/pda_icons/pda_menu.png and /dev/null differ diff --git a/icons/pda_icons/pda_mule.png b/icons/pda_icons/pda_mule.png deleted file mode 100644 index b8c1b636f5..0000000000 Binary files a/icons/pda_icons/pda_mule.png and /dev/null differ diff --git a/icons/pda_icons/pda_notes.png b/icons/pda_icons/pda_notes.png deleted file mode 100644 index eb076d3ca3..0000000000 Binary files a/icons/pda_icons/pda_notes.png and /dev/null differ diff --git a/icons/pda_icons/pda_power.png b/icons/pda_icons/pda_power.png deleted file mode 100644 index 04175e7c83..0000000000 Binary files a/icons/pda_icons/pda_power.png and /dev/null differ diff --git a/icons/pda_icons/pda_rdoor.png b/icons/pda_icons/pda_rdoor.png deleted file mode 100644 index 6eab5a8817..0000000000 Binary files a/icons/pda_icons/pda_rdoor.png and /dev/null differ diff --git a/icons/pda_icons/pda_reagent.png b/icons/pda_icons/pda_reagent.png deleted file mode 100644 index b900af5ae6..0000000000 Binary files a/icons/pda_icons/pda_reagent.png and /dev/null differ diff --git a/icons/pda_icons/pda_refresh.png b/icons/pda_icons/pda_refresh.png deleted file mode 100644 index 08439c6bca..0000000000 Binary files a/icons/pda_icons/pda_refresh.png and /dev/null differ diff --git a/icons/pda_icons/pda_scanner.png b/icons/pda_icons/pda_scanner.png deleted file mode 100644 index eabdc511cd..0000000000 Binary files a/icons/pda_icons/pda_scanner.png and /dev/null differ diff --git a/icons/pda_icons/pda_signaler.png b/icons/pda_icons/pda_signaler.png deleted file mode 100644 index f71398f70d..0000000000 Binary files a/icons/pda_icons/pda_signaler.png and /dev/null differ diff --git a/icons/pda_icons/pda_status.png b/icons/pda_icons/pda_status.png deleted file mode 100644 index fe955e66a6..0000000000 Binary files a/icons/pda_icons/pda_status.png and /dev/null differ diff --git a/icons/spideros_icons/sos_1.png b/icons/spideros_icons/sos_1.png deleted file mode 100644 index 079f548fde..0000000000 Binary files a/icons/spideros_icons/sos_1.png and /dev/null differ diff --git a/icons/spideros_icons/sos_10.png b/icons/spideros_icons/sos_10.png deleted file mode 100644 index 5f962d60f4..0000000000 Binary files a/icons/spideros_icons/sos_10.png and /dev/null differ diff --git a/icons/spideros_icons/sos_11.png b/icons/spideros_icons/sos_11.png deleted file mode 100644 index fd68c8a4ac..0000000000 Binary files a/icons/spideros_icons/sos_11.png and /dev/null differ diff --git a/icons/spideros_icons/sos_12.png b/icons/spideros_icons/sos_12.png deleted file mode 100644 index ff3a064c03..0000000000 Binary files a/icons/spideros_icons/sos_12.png and /dev/null differ diff --git a/icons/spideros_icons/sos_13.png b/icons/spideros_icons/sos_13.png deleted file mode 100644 index c396182cfe..0000000000 Binary files a/icons/spideros_icons/sos_13.png and /dev/null differ diff --git a/icons/spideros_icons/sos_14.png b/icons/spideros_icons/sos_14.png deleted file mode 100644 index 9d90684d8c..0000000000 Binary files a/icons/spideros_icons/sos_14.png and /dev/null differ diff --git a/icons/spideros_icons/sos_2.png b/icons/spideros_icons/sos_2.png deleted file mode 100644 index 40009fe562..0000000000 Binary files a/icons/spideros_icons/sos_2.png and /dev/null differ diff --git a/icons/spideros_icons/sos_3.png b/icons/spideros_icons/sos_3.png deleted file mode 100644 index 138b110b02..0000000000 Binary files a/icons/spideros_icons/sos_3.png and /dev/null differ diff --git a/icons/spideros_icons/sos_4.png b/icons/spideros_icons/sos_4.png deleted file mode 100644 index 4d5d23149c..0000000000 Binary files a/icons/spideros_icons/sos_4.png and /dev/null differ diff --git a/icons/spideros_icons/sos_5.png b/icons/spideros_icons/sos_5.png deleted file mode 100644 index 7e43c9d8a4..0000000000 Binary files a/icons/spideros_icons/sos_5.png and /dev/null differ diff --git a/icons/spideros_icons/sos_6.png b/icons/spideros_icons/sos_6.png deleted file mode 100644 index ea6494a912..0000000000 Binary files a/icons/spideros_icons/sos_6.png and /dev/null differ diff --git a/icons/spideros_icons/sos_7.png b/icons/spideros_icons/sos_7.png deleted file mode 100644 index d93d2b13fe..0000000000 Binary files a/icons/spideros_icons/sos_7.png and /dev/null differ diff --git a/icons/spideros_icons/sos_8.png b/icons/spideros_icons/sos_8.png deleted file mode 100644 index fd540cb3a8..0000000000 Binary files a/icons/spideros_icons/sos_8.png and /dev/null differ diff --git a/icons/spideros_icons/sos_9.png b/icons/spideros_icons/sos_9.png deleted file mode 100644 index 05d36c3e6f..0000000000 Binary files a/icons/spideros_icons/sos_9.png and /dev/null differ diff --git a/icons/vore/custom_clothes_vr.dmi b/icons/vore/custom_clothes_vr.dmi index 1abc46e4d4..45123b5352 100644 Binary files a/icons/vore/custom_clothes_vr.dmi and b/icons/vore/custom_clothes_vr.dmi differ diff --git a/maps/southern_cross/southern_cross-1.dmm b/maps/southern_cross/southern_cross-1.dmm index fd7edc716c..9b94f82256 100644 --- a/maps/southern_cross/southern_cross-1.dmm +++ b/maps/southern_cross/southern_cross-1.dmm @@ -726,7 +726,7 @@ "anX" = (/obj/machinery/telecomms/bus/preset_two/southerncross,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "anY" = (/obj/machinery/telecomms/relay/preset/southerncross/d1,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "anZ" = (/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) -"aoa" = (/obj/machinery/telecomms/relay/preset/station,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) +"aoa" = (/turf/simulated/floor/reinforced,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/shuttle1/start) "aob" = (/obj/machinery/telecomms/bus/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "aoc" = (/obj/machinery/telecomms/processor/preset_four,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "aod" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) @@ -771,7 +771,7 @@ "aoQ" = (/obj/machinery/telecomms/bus/preset_three,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "aoR" = (/obj/machinery/atmospherics/pipe/simple/hidden/black,/obj/machinery/camera/network/telecom{c_tag = "Tcoms - Central Compartment Starboard"; dir = 8},/turf/simulated/floor/bluegrid{name = "Mainframe Base"; nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "aoS" = (/obj/structure/cable/cyan{d2 = 2; icon_state = "0-2"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/tcomm/computer) -"aoT" = (/turf/simulated/floor/reinforced,/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/shuttle1/start) +"aoT" = (/turf/simulated/floor/airless,/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod2/station) "aoU" = (/obj/structure/cable/cyan{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/cyan{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/tiled,/area/tcomm/computer) "aoV" = (/obj/structure/cable/cyan{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/atmospherics/unary/vent_scrubber/on,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/light{dir = 1},/obj/machinery/alarm{pixel_y = 22},/turf/simulated/floor/tiled,/area/tcomm/computer) "aoW" = (/obj/structure/cable/cyan{d1 = 2; d2 = 8; icon_state = "2-8"},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"},/turf/simulated/floor/tiled,/area/tcomm/computer) @@ -1203,7 +1203,7 @@ "axg" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/table/glass,/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/item/device/radio{frequency = 1487; icon_state = "med_walkietalkie"; name = "Medbay Emergency Radio Link"},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) "axh" = (/obj/structure/extinguisher_cabinet{pixel_y = -30},/obj/structure/bed/chair/office/light{dir = 4},/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) "axi" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/obj/machinery/camera/network/medbay{c_tag = "MED - FA Station Deck One"; dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/obj/structure/table/rack,/obj/item/weapon/tool/crowbar,/obj/item/weapon/tool/crowbar,/obj/item/roller,/obj/item/roller,/obj/effect/floor_decal/borderfloorwhite,/obj/effect/floor_decal/corner/paleblue/border,/turf/simulated/floor/tiled/white,/area/medical/first_aid_station/firstdeck) -"axj" = (/turf/simulated/floor/airless,/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"},/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/large_escape_pod2/station) +"axj" = (/obj/machinery/telecomms/relay/preset/southerncross/centcomm,/turf/simulated/floor/tiled/dark{nitrogen = 100; oxygen = 0; temperature = 80},/area/tcomm/chamber) "axk" = (/turf/simulated/floor,/area/tcomm/tcomstorage) "axl" = (/obj/item/weapon/storage/toolbox/mechanical,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/tcomm/tcomstorage) "axm" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/obj/item/weapon/stock_parts/subspace/ansible,/turf/simulated/floor,/area/tcomm/tcomstorage) @@ -11140,10 +11140,10 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakLakLakLakLakLakLakLakLakLakLakLakLakLaeFaeFakMakgafFafGalzakOakNakNakPakQakRakSafFafKakTaeFaeFaeFaioakUadlaaaaaaaaaaaaajpajpakoakVakWakWakXakYakZalaalbalcaldalealfalgalhalialjalkallalmalmalnakIajxajxaaaaaaaaaaaaadFaloaiyaeZaeZaeZalpaiAagmagmagmagmagmagmagmagmagmagmagmagValqaeZaeZdVQdVSdVRapiaqzdVUdVTdVVdVTdVVdVWdVYdVXdWadVZdVVdVVdVVdVVdWbbmqdWddWcdWedWcdWcdWfdWgaowaafaafaafaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsalsaltaltaltalualtaltalualtaltaltalvaeFalwalxakgafFafGalAalBaAxalCaAyalBaDdafGafFafKalDalEaeFahcaioadladlaaaaaaaaaajpajpakoakoalFakoalGalHalHalHalHalHalHalHalHalHalHalHalHalIalIalIalJakIalKakIakIajxajxaaaaaaaaaadFadFaiyaikaeZalLalMaiAagmagmagmagmagmagmagmagmagmagmagmagValNaijaeZambdfZcYadWibmqdWkdWjdWmdWldWodWndWqdWpdWsdWrdWudWtdWwdWvdWxbmqdWzdWydWBdWAbHAdWCdWDaowaaaaaaaaaaaaaadaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsaltalRalSalTalUalValWalXalYalZamaamraeFamcajEafEafFaiDaiDahBafFafFafFahBaiDaiDafFafKajEamdaeFameaioadLaaaaaaaaaaaaajpakoakVakWamfamgalHalHalHalHalHalHalHalHalHalHalHalHalHalIalIalIalIamhamialmalnakIajxaaaaaaaaaaaaaejaiyamjaeZaiSamkaiAagmagmagmagmagmagmagmagmagmagmagmagVakfagpaeZamsdWGdWFdWHbmqdWIarMdWJarMbmqbmqdWLdWKdWNdWMbmqarMdWJarMdWObmqdWQdWPdWSdWRdWUdWTdWVaowaaaaaaaaaaaaaafaaaaadaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsammamnamoamoamoamoamoamoamoampamaamraeFamqajEafEafFanEaoTafFafFafFafFafFanEaoTafFafKajEamtaeFamudWWadLaaaaaaaaaajoajoamvalFakoamwamxalHalHalHamyamzamAamBamCamDamEamBamFamGamHamIamJalIamKamLakIalKamMajwajwaaaaaaaaaaejaiyamNaeZamOamkaiAagmagmagmagmagmagmagmagmagmagmagmagVakfamPaeZapTdWZdWYdXbdXadXddXcdXbdXbdXfdXedXhdXgdXjdXidXkdXbdXmdXldXnaSNdXodXodXodXodXodXodXodXodXoaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsammamnamoamoamoamoamoamoamoampamaamraeFamqajEafEafFanEaoaafFafFafFafFafFanEaoaafFafKajEamtaeFamudWWadLaaaaaaaaaajoajoamvalFakoamwamxalHalHalHamyamzamAamBamCamDamEamBamFamGamHamIamJalIamKamLakIalKamMajwajwaaaaaaaaaaejaiyamNaeZamOamkaiAagmagmagmagmagmagmagmagmagmagmagmagVakfamPaeZapTdWZdWYdXbdXadXddXcdXbdXbdXfdXedXhdXgdXjdXidXkdXbdXmdXldXnaSNdXodXodXodXodXodXodXodXodXoaaaaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsaltalRamRamSamTaSjamUamVamWamXamaamraeFamYamZanaanbanbanbanbanbanbanbanbanbanbanbancandaneaeFanfaioadLaaaaaaaaaajoanganhalFalGanianianialHalHanjanjanjanjanjankanlanmanmannanoanpanqalIalIalIalJalKanransajwaaaaaaaaaaejaiyantaeZanuanvanwanxanxanxanxanxanxanxanxanxanxanxanyanzanAaeZdXpdXrdXqdXqdXsdXudXtdXwdXvdXxdXvdXzdXydXBdXAdXDdXCdXFdXEdXHdXGdXodXIdXKdXJdXMdXLdXKdXNdXobhgbhgaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsalsaltaltaltaluanDanDalualtaltaltaxjaeFanFanGanHanHanIanHanHanJanKanLanManNanNanNanNanOamtaeFanPaioadladlaaaaaaajpanQanRanSanianiaoJaoKanialHanVanWanXanYanZanZaoaaobaocaodaoealIaofalIaogalIalIaohaoiaojajxaaaaaaadFadFaiyaokaeZaolaomaonaonaonaonaooaopaoqaoraosaosaotaosaosaouaovaeZdXOdXQdXPdXRapiatLdXSapidXUdXWdXVdXXaSNaSNdXYaSNaZYdXZcfodXHdYadXodYbdYcdXJdXMdXLdXKdYddXodXodYfdYedXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaakLatTatTakLakLakLakLaoxaoxaoyaoyaoyaoyaoyaeFaeFaeFaeFaeFaeFaeFaeFaozahcaoAaeFaoBaoBaoBaeFaeFaeFaeFafMaoCaoDadlaaaaaaajpaoEaoFaoGaoHaoIapOarganialHanjaoLaoMaoNaEyanZaoOaoPaoQaoRaoSaGeaoUaoVaoWaoXalIaoYaoZapaajxaaaaaaadFapbapcapdaeZaeZaeZaikapeapeapeaikapfaikapgaikaeZaeZaeZaeZaeZaeZaeZaphaphaphaphaphdYgdYgalralralralralralrdYidYhalralrdXZdYjdYkdWHdXodYldXKdXJdXMdXLdXKdYldXodYmdYodYndXodXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaalsalsaltaltaltaluanDanDalualtaltaltaoTaeFanFanGanHanHanIanHanHanJanKanLanManNanNanNanNanOamtaeFanPaioadladlaaaaaaajpanQanRanSanianiaoJaoKanialHanVanWanXanYanZanZaEyaobaocaodaoealIaofalIaogalIalIaohaoiaojajxaaaaaaadFadFaiyaokaeZaolaomaonaonaonaonaooaopaoqaoraosaosaotaosaosaouaovaeZdXOdXQdXPdXRapiatLdXSapidXUdXWdXVdXXaSNaSNdXYaSNaZYdXZcfodXHdYadXodYbdYcdXJdXMdXLdXKdYddXodXodYfdYedXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaaaakLatTatTakLakLakLakLaoxaoxaoyaoyaoyaoyaoyaeFaeFaeFaeFaeFaeFaeFaeFaozahcaoAaeFaoBaoBaoBaeFaeFaeFaeFafMaoCaoDadlaaaaaaajpaoEaoFaoGaoHaoIapOarganialHanjaoLaoMaoNaxjanZaoOaoPaoQaoRaoSaGeaoUaoVaoWaoXalIaoYaoZapaajxaaaaaaadFapbapcapdaeZaeZaeZaikapeapeapeaikapfaikapgaikaeZaeZaeZaeZaeZaeZaeZaphaphaphaphaphdYgdYgalralralralralralrdYidYhalralrdXZdYjdYkdWHdXodYldXKdXJdXMdXLdXKdYldXodYmdYodYndXodXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaafaafaafakLakLapjapkaplapmapnakLapoapoappapqaprapsaptapuapvapwapxapyapyapzapuapAapAapBapCapDapEapFapCapGafMadlapHapIapJadlaaaaaaajpapKapLapManiapNaNGaNHanialHanjanjanjanjanjapPapQapQapQapRapSaGzapUapVapWapXalIapYapZaqaajxaaaaaaadFaqbaghaqcaqdaqeaqfaqgaqhaqiaqjaqgaqkaqlaqlaqmaqnaqoaqoaqpaqqaqraqmaqsaqtaquaqvaqwaqxaqxalraqydYpaqAaqBaqCalOdYqatMalrdYtdYsdXodXodXodYudYwdYvdYydYxdYAdYzdXodYBdYDdYCdYFdYEdYGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaadaaaaaaakLakLaqDaqDapkaqEaqFaqFaqGaqHaqIaqJaqKaqLaqMaqNapuapvaqOaqPapyapyapyapuaqQaqQaqRaqSaqTaqUaqVapCaqWaqXaqYaqZaraarbadlaaaaaaajoarcardareaniarfaOdaNWanialHarhariarjarkarlarmarnarkaroarparqarrarsartaruarvalIarwapZarxajwaaaaaaadFaryaghaghaghaghagharzarAarBarCarDarEarFarFaqmarGarHaqoarIaqqaqqaqmarJarKarLdYHarNarOarPdYIarRarRarRarRarRarRalOalralrdYKdYJdXodYLdYNdYMaShdYOdYRdYQaShdYSdYUdYTdYWdYVdXodXodXodXodXoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadaaaaaaaaaakLarSapkakLakLakLakLakLakLarTarUarUarUarVarWarXapuarYapyaqParZasaasbapuascasdaseapCasfasgashapCasiasjaskaslasmasnadlasoasoaspasqasrajSamxarfaOdaOzanialHalHalHalHalHalHalHalHalHalHalHalIalIalIamHassastalIasuasvaswasxasyasyadFaszaghasAasAasAasAaqgasBasCasDaqgasEasFasGaqmasHasIasJarIasKaqqaqmasLasMasNasOasOasOaphalralralralralralralOalPalrdYXdYYdXHdZadYZdZcdZbdZedZddZfdZddZgdZddZhdZddZjdZidZldZkdZndZmdXoaaaaaaaaaaadaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/maps/southern_cross/southern_cross-6.dmm b/maps/southern_cross/southern_cross-6.dmm index 59ade6cd67..7d0d531f40 100644 --- a/maps/southern_cross/southern_cross-6.dmm +++ b/maps/southern_cross/southern_cross-6.dmm @@ -765,7 +765,7 @@ "oK" = (/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/item/weapon/reagent_containers/food/drinks/cans/cola,/obj/structure/table/standard,/turf/unsimulated/floor{icon_state = "lino"},/area/tdome/tdomeobserve) "oL" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/item/weapon/reagent_containers/food/snacks/spesslaw,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) "oM" = (/obj/effect/floor_decal/corner/white/diagonal,/obj/structure/table/marble,/obj/item/weapon/reagent_containers/food/snacks/stuffing,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/bar) -"oN" = (/obj/machinery/telecomms/hub/preset_cent,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall) +"oN" = (/obj/machinery/telecomms/hub/preset/southerncross/centcomm,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/main_hall) "oO" = (/obj/machinery/computer/shuttle_control/centcom{dir = 8},/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) "oP" = (/obj/structure/table/reinforced,/obj/machinery/photocopier/faxmachine,/obj/structure/window/reinforced,/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command) "oQ" = (/obj/structure/window/reinforced{dir = 1; health = 1e+006},/obj/structure/window/reinforced{dir = 8},/obj/machinery/computer/supplycomp/control{dir = 4},/turf/unsimulated/floor{icon_state = "vault"; dir = 5},/area/centcom/command) @@ -2280,7 +2280,7 @@ "RR" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_station/start) "RS" = (/turf/space,/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/simulated/shuttle/plating/airless/carry,/area/syndicate_station/start) "RT" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/skipjack_station/start) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -2538,3 +2538,4 @@ aaaaRfababababababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} + diff --git a/maps/southern_cross/southern_cross_defines.dm b/maps/southern_cross/southern_cross_defines.dm index c1d099af29..9a9bda5e9b 100644 --- a/maps/southern_cross/southern_cross_defines.dm +++ b/maps/southern_cross/southern_cross_defines.dm @@ -87,26 +87,33 @@ planet_datums_to_make = list(/datum/planet/sif) - -// Short range computers see only the six main levels, others can see the surrounding surface levels. -/datum/map/southern_cross/get_map_levels(var/srcz, var/long_range = TRUE) - if (long_range && (srcz in map_levels)) - return map_levels - else if (srcz == Z_LEVEL_TRANSIT) - return list() // Nothing on these z-levels- sensors won't show, and GPSes won't see each other. - else if (srcz >= Z_LEVEL_STATION_ONE && srcz <= Z_LEVEL_STATION_THREE) // Station can see other decks. - return list( + map_levels = list( Z_LEVEL_STATION_ONE, Z_LEVEL_STATION_TWO, Z_LEVEL_STATION_THREE, Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, - Z_LEVEL_SURFACE_WILD) + Z_LEVEL_SURFACE_WILD + ) + +// Short range computers see only the six main levels, others can see the surrounding surface levels. +/datum/map/southern_cross/get_map_levels(var/srcz, var/long_range = TRUE) + if (long_range && (srcz in map_levels)) + return map_levels + else if (srcz == Z_LEVEL_TRANSIT && !long_range) + return list() // Nothing on these z-levels- sensors won't show, and GPSes won't see each other. + else if (srcz >= Z_LEVEL_STATION_ONE && srcz <= Z_LEVEL_STATION_THREE) // Station can see other decks. + return list( + Z_LEVEL_STATION_ONE, + Z_LEVEL_STATION_TWO, + Z_LEVEL_STATION_THREE, + ) else if(srcz in list(Z_LEVEL_SURFACE, Z_LEVEL_SURFACE_MINE, Z_LEVEL_SURFACE_WILD)) // Being on the surface lets you see other surface Zs. return list( - Z_LEVEL_SURFACE, - Z_LEVEL_SURFACE_MINE, - Z_LEVEL_SURFACE_WILD) + Z_LEVEL_SURFACE, + Z_LEVEL_SURFACE_MINE, + Z_LEVEL_SURFACE_WILD + ) else return list(srcz) //prevents runtimes when using CMC. any Z-level not defined above will be 'isolated' and only show to GPSes/CMCs on that same Z (e.g. CentCom). @@ -281,13 +288,6 @@ teleport_z = src.z return ..() -/datum/planet/sif - expected_z_levels = list( - Z_LEVEL_SURFACE, - Z_LEVEL_SURFACE_MINE, - Z_LEVEL_SURFACE_WILD - ) - //Suit Storage Units /obj/machinery/suit_cycler/exploration diff --git a/maps/southern_cross/southern_cross_presets.dm b/maps/southern_cross/southern_cross_presets.dm index a21b1c02c0..f5a86e3c07 100644 --- a/maps/southern_cross/southern_cross_presets.dm +++ b/maps/southern_cross/southern_cross_presets.dm @@ -60,21 +60,33 @@ var/const/NETWORK_MAIN_OUTPOST = "Main Outpost" autolinkers = list("wld_relay") /obj/machinery/telecomms/relay/preset/southerncross/transit - id = "Wild Relay" + id = "Transit Relay" listening_level = Z_LEVEL_TRANSIT autolinkers = list("tns_relay") +/obj/machinery/telecomms/relay/preset/southerncross/centcomm + id = "Centcom Relay" + listening_level = Z_LEVEL_CENTCOM + autolinkers = list("cnt_relay") + // #### Telecomms #### /obj/machinery/telecomms/hub/preset/southerncross id = "Hub" network = "tcommsat" autolinkers = list("hub", - "d1_relay", "d2_relay", "d3_relay", "pnt_relay", "cve_relay", "wld_relay", "tns_relay", "explorer", - "c_relay", "m_relay", "r_relay", + "d1_relay", "d2_relay", "d3_relay", "pnt_relay", "cve_relay", "wld_relay", "tns_relay", "cnt_relay", "explorer", "science", "medical", "supply", "service", "common", "command", "engineering", "security", "unused", "hb_relay", "receiverA", "broadcasterA" ) +/obj/machinery/telecomms/hub/preset/southerncross/centcomm + id = "CentCom Hub" + network = "tcommsat" + produces_heat = 0 + autolinkers = list("hub_cent", "centcom", "receiverCent", "broadcasterCent", + "d1_relay", "d2_relay", "d3_relay", "pnt_relay", "cve_relay", "wld_relay", "tns_relay" + ) + /obj/machinery/telecomms/receiver/preset_right/southerncross freq_listening = list(AI_FREQ, SCI_FREQ, MED_FREQ, SUP_FREQ, SRV_FREQ, COMM_FREQ, ENG_FREQ, SEC_FREQ, ENT_FREQ, EXP_FREQ) diff --git a/maps/tether/submaps/space/guttersite.dmm b/maps/tether/submaps/space/guttersite.dmm index e6eebe5507..698861bc6b 100644 --- a/maps/tether/submaps/space/guttersite.dmm +++ b/maps/tether/submaps/space/guttersite.dmm @@ -371,17 +371,17 @@ /area/tether_away/guttersite/atmos) "br" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ - dir = 6 + dir = 4; + icon_state = "intact" }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bs" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline/red, -/obj/machinery/portable_atmospherics/canister/air, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bt" = ( @@ -568,9 +568,8 @@ /area/tether_away/guttersite/atmos) "bK" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ - dir = 8 + dir = 10 }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bL" = ( @@ -580,15 +579,18 @@ /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bM" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/blue, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4; + icon_state = "intact" + }, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bN" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline, -/obj/machinery/portable_atmospherics/canister/air, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bO" = ( @@ -734,9 +736,9 @@ /area/tether_away/guttersite/atmos) "cd" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ - dir = 8 + dir = 10; + icon_state = "intact" }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "ce" = ( @@ -746,17 +748,11 @@ /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cf" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/red{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/visible/blue, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cg" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/outline/blue, -/obj/machinery/portable_atmospherics/canister/empty, +/obj/machinery/atmospherics/pipe/simple/visible/red, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "ch" = ( @@ -810,18 +806,20 @@ /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) "cm" = ( -/obj/machinery/atmospherics/pipe/simple/visible/red{ +/obj/machinery/atmospherics/pipe/simple/visible/blue{ dir = 5 }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cn" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/light{ + dir = 1; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/empty, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "co" = ( @@ -866,30 +864,35 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/atmos) "cv" = ( -/obj/structure/table/steel, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/atmospherics/pipe/manifold/visible/blue{ + dir = 1 + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cw" = ( -/obj/machinery/firealarm{ +/obj/machinery/light{ dir = 1; - pixel_x = 0; - pixel_y = -25 + icon_state = "tube1" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 10 + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cx" = ( -/obj/machinery/alarm{ - alarm_id = null; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 5; + icon_state = "intact" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cy" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 1; + icon_state = "map" + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cz" = ( /obj/machinery/light{ @@ -1307,26 +1310,36 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/commons) "dv" = ( -/turf/simulated/wall/skipjack, -/area/tether_away/guttersite/office) -"dw" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_northeast_lock"; - locked = 0; - req_access = list(150) - }, -/turf/simulated/shuttle/plating, -/area/tether_away/guttersite/office) -"dx" = ( /obj/machinery/access_button{ command = "cycle_exterior"; - frequency = 1331; - master_tag = "vox_east_control"; - req_access = list(150) + frequency = 448; + master_tag = "guttersite_northlock"; + name = "exterior access button"; + pixel_x = -5; + pixel_y = -26; + req_one_access = list() }, -/turf/simulated/wall/skipjack, +/turf/simulated/mineral/floor/vacuum, +/area/space) +"dw" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"dx" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dy" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -1353,19 +1366,29 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dA" = ( -/obj/machinery/airlock_sensor{ - frequency = 1331; - id_tag = "vox_east_sensor"; - pixel_x = -25 - }, -/turf/simulated/shuttle/plating, +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dB" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1331; - id_tag = "vox_east_vent" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/simulated/shuttle/plating, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dC" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -1407,31 +1430,24 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dH" = ( -/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ - frequency = 1331; - id_tag = ""; - pixel_x = -24; - req_access = list(150); - tag_airpump = "vox_east_vent"; - tag_chamber_sensor = "vox_east_sensor"; - tag_exterior_door = "vox_northeast_lock"; - tag_interior_door = "vox_southeast_lock" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1331; - id_tag = "vox_east_vent" - }, -/obj/machinery/light/small, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dI" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + frequency = 448; + id_tag = "guttersite_northlock"; + name = "Airlock controller"; + pixel_x = -25; + pixel_y = 0 }, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dJ" = ( /obj/machinery/alarm{ @@ -1443,15 +1459,13 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dK" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_southeast_lock"; - locked = 0; - req_access = list(150) +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dL" = ( /obj/structure/window/basic{ @@ -1474,24 +1488,33 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/simulated/floor/plating, -/area/tether_away/guttersite/office) +/area/tether_away/guttersite/commons) "dP" = ( -/obj/structure/table/rack, -/obj/item/weapon/tank/oxygen, -/obj/random/multiple/voidsuit, -/turf/simulated/shuttle/plating, +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + frequency = 448; + id_tag = "guttersite_northlock_pump" + }, +/obj/machinery/airlock_sensor{ + frequency = 448; + id_tag = "guttersite_northlock_sensor"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dQ" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1331; - master_tag = "vox_east_control"; - pixel_x = 22; - req_access = list(150) +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dR" = ( /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -2260,13 +2283,15 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/bridge) "fn" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 +/obj/structure/bed/chair/bay/comfy/black{ + dir = 4; + icon_state = "bay_comfychair_preview" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/vault) +/mob/living/simple_mob/vore/catgirl{ + name = "Lucy" + }, +/turf/simulated/floor/tiled/eris/white/techfloor_grid, +/area/tether_away/guttersite/office) "fo" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance_hatch{ @@ -2574,12 +2599,18 @@ dir = 8 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/vault/bolted, /obj/structure/cable/cyan{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/door/airlock/hatch{ + frequency = 12341; + icon_state = "door_closed"; + id_tag = "gutter vault"; + locked = 0; + req_access = list(150) + }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "fU" = ( @@ -2612,10 +2643,11 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" + }, /turf/simulated/floor/plating, /area/tether_away/guttersite/security) "fY" = ( @@ -2688,12 +2720,12 @@ /obj/machinery/door/airlock/glass_external, /obj/machinery/access_button{ command = "cycle_exterior"; - frequency = 1380; - master_tag = "dock_d2a2"; + frequency = 1999; + master_tag = "westlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; - req_one_access = list(13) + req_one_access = list() }, /obj/effect/map_helper/airlock/door/ext_door, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -2701,18 +2733,18 @@ "gi" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 4; - frequency = 1380; - id_tag = "dock_d2a2_pump" + frequency = 1999; + id_tag = "westlock_pump" }, /obj/machinery/light/small, /obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = ""; + frequency = 1999; + id_tag = "westlock"; pixel_y = 28 }, /obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "dock_d2a2_sensor"; + frequency = 1999; + id_tag = "westlock_sensor"; pixel_x = 0; pixel_y = -25 }, @@ -2734,12 +2766,12 @@ }, /obj/machinery/access_button{ command = "cycle_interior"; - frequency = 1380; - master_tag = "dock_d2a2"; + frequency = 1999; + master_tag = "westlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; - req_one_access = list(13) + req_one_access = list() }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 @@ -2772,13 +2804,13 @@ "go" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 8 + dir = 4 }, -/obj/machinery/door/firedoor/glass, /turf/simulated/floor/plating, -/area/tether_away/guttersite/security) +/area/tether_away/guttersite/commons) "gp" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -2800,24 +2832,15 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "gs" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 +/obj/structure/bed/chair/office/dark{ + dir = 8; + icon_state = "officechair_dark" }, -/obj/structure/window/reinforced{ - dir = 1 +/mob/living/simple_mob/humanoid/merc/ranged/poi{ + faction = "wolfgirl" }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/plating, -/area/tether_away/guttersite/docking) +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) "gt" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -2969,7 +2992,9 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "gH" = ( -/obj/machinery/door/airlock/glass_external, +/obj/machinery/door/airlock/glass_external{ + req_one_access = list() + }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, @@ -3048,11 +3073,19 @@ "gQ" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 8 + dir = 1 }, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/window/reinforced, /turf/simulated/floor/plating, /area/tether_away/guttersite/docking) "gR" = ( @@ -3113,9 +3146,8 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "gY" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4; - icon_state = "map_vent_out" +/obj/machinery/light{ + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) @@ -3204,18 +3236,23 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hi" = ( -/turf/simulated/wall/skipjack, -/area/tether_away/guttersite/docking) -"hj" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_northeast_lock"; - locked = 0; - req_access = list(150) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4; + icon_state = "intact-scrubbers" }, -/turf/simulated/shuttle/plating, -/area/tether_away/guttersite/docking) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + icon_state = "intact-supply" + }, +/obj/structure/bed/chair/office/dark{ + dir = 4; + icon_state = "officechair_dark" + }, +/mob/living/simple_mob/humanoid/merc/ranged/laser{ + faction = "wolfgirl" + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) "hk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4; @@ -3264,19 +3301,31 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "ho" = ( -/obj/machinery/airlock_sensor{ - frequency = 1331; - id_tag = "vox_east_sensor"; - pixel_x = -25 +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 }, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/plating, /area/tether_away/guttersite/docking) "hp" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1331; - id_tag = "vox_east_vent" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/turf/simulated/shuttle/plating, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hq" = ( /obj/machinery/alarm{ @@ -3297,12 +3346,21 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "hs" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/turf/simulated/shuttle/plating, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "ht" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ @@ -3320,15 +3378,11 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hv" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_southeast_lock"; - locked = 0; - req_access = list(150) +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hw" = ( /obj/structure/table/rack/steel, @@ -3600,14 +3654,18 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, /turf/simulated/floor/plating, -/area/tether_away/guttersite/bridge) +/area/tether_away/guttersite/commons) "ia" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/simulated/floor/plating, -/area/tether_away/guttersite/walkway) +/area/tether_away/guttersite/medbay) "ib" = ( /obj/machinery/vending/cola/soft, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -3616,30 +3674,19 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/simulated/floor/plating, /area/tether_away/guttersite/medbay) "id" = ( -/obj/machinery/door/airlock/glass_external, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "dock_d2a2"; - name = "exterior access button"; - pixel_x = -5; - pixel_y = -26; - req_one_access = list() - }, -/obj/effect/map_helper/airlock/door/ext_door, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/docking) -"ie" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 }, /obj/machinery/access_button{ command = "cycle_interior"; frequency = 1380; - master_tag = "dock_d2a2"; + master_tag = "guttersite_sshuttle"; name = "interior access button"; pixel_x = -28; pixel_y = 26; @@ -3650,6 +3697,15 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) +"ie" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/walkway) "if" = ( /obj/random/mob/mouse, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -3846,13 +3902,16 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "iI" = ( -/obj/structure/bed/chair/bay/comfy/black{ - dir = 4; - icon_state = "bay_comfychair_preview" +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -25 }, -/mob/living/simple_mob/vore/catgirl, -/turf/simulated/floor/tiled/eris/white/techfloor_grid, -/area/tether_away/guttersite/office) +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/vault) "iJ" = ( /mob/living/simple_mob/vore/aggressive/mimic, /turf/simulated/mineral/floor/vacuum, @@ -3863,14 +3922,14 @@ d2 = 8; icon_state = "4-8" }, -/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi, +/mob/living/simple_mob/humanoid/merc/ranged/grenadier, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "iL" = ( -/obj/structure/table/rack, -/obj/item/weapon/tank/oxygen, -/obj/random/multiple/voidsuit, -/turf/simulated/shuttle/plating, +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iM" = ( /obj/machinery/power/apc{ @@ -3893,43 +3952,33 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "iO" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1331; - master_tag = "vox_east_control"; - req_access = list() +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/simulated/wall/skipjack, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iP" = ( -/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ - frequency = 1331; - id_tag = "guttersite_lshuttle"; - pixel_x = -24; - req_access = list(); - tag_airpump = "vox_east_vent"; - tag_chamber_sensor = "vox_east_sensor"; - tag_exterior_door = "vox_northeast_lock"; - tag_interior_door = "vox_southeast_lock" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1331; - id_tag = "vox_east_vent" - }, -/obj/machinery/light/small, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iQ" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1331; - master_tag = "vox_east_control"; - pixel_x = 22; - req_access = list() +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + frequency = 1276; + id_tag = "guttersite_lshuttle"; + name = "Airlock controller"; + pixel_x = -25; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iR" = ( /mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic, @@ -4009,45 +4058,19 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "jg" = ( -/mob/living/simple_mob/humanoid/merc/melee/poi{ - desc = "A lone space clown, taking on the world."; - icon = 'icons/mob/clowns_vr.dmi'; - icon_dead = "cluwne_dead"; - icon_gib = "clown_gib"; - icon_living = "cluwne"; - icon_state = "cluwne"; - name = "Green Clown" - }, +/obj/item/trash/liquidfood, +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) -"jh" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8; - icon_state = "officechair_dark" - }, -/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi{ - faction = "wolfgirl" - }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/security) "ji" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 10; + icon_state = "intact" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/structure/bed/chair/office/dark{ - dir = 4; - icon_state = "officechair_dark" - }, -/mob/living/simple_mob/humanoid/merc/ranged/technician/poi{ - faction = "wolfgirl" - }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/security) +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "jj" = ( /obj/random/curseditem, /turf/simulated/mineral/floor/vacuum, @@ -4201,6 +4224,11 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) +"jG" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "jH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 1 @@ -4350,6 +4378,14 @@ }, /turf/simulated/wall/r_wall, /area/tether_away/guttersite/security) +"jZ" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 6; + icon_state = "intact" + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "ka" = ( /obj/structure/bed/chair/bay/comfy/black{ dir = 4; @@ -4936,6 +4972,13 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"lE" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 4; + icon_state = "map" + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "lF" = ( /obj/machinery/light, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -4954,6 +4997,12 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) +"lI" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/blue{ + dir = 8 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "lJ" = ( /obj/item/weapon/storage/toolbox/electrical{ pixel_x = 1; @@ -5022,6 +5071,167 @@ /obj/item/clothing/suit/storage/hooded/techpriest, /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) +"lX" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 10 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"lY" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"lZ" = ( +/obj/machinery/light, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"ma" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mc" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"md" = ( +/obj/structure/outcrop/phoron, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/teleporter) +"me" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman, +/turf/simulated/floor/airless, +/area/tether_away/guttersite/teleporter) +"mf" = ( +/obj/item/stack/material/phoron, +/obj/item/stack/material/phoron, +/turf/simulated/floor/airless, +/area/tether_away/guttersite/teleporter) +"mg" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/walkway) +"mi" = ( +/obj/machinery/atmospherics/binary/pump/on, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mj" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 1; + target_pressure = 200 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/office) +"ml" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/office) +"mm" = ( +/obj/structure/table/rack, +/obj/item/weapon/tank/oxygen, +/obj/random/multiple/voidsuit, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mn" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 448; + master_tag = "guttersite_northlock"; + name = "interior access button"; + pixel_x = -28; + pixel_y = 26; + req_one_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mo" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mp" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/blue, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mq" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mr" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"ms" = ( +/obj/structure/table/steel, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/atmos) +"mt" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -25 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "mu" = ( /obj/structure/window/basic{ dir = 4; @@ -5030,11 +5240,164 @@ /obj/structure/table/darkglass, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/bridge) "mw" = ( /obj/structure/table/darkglass, /obj/item/device/flashlight/lamp/green, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/bridge) +"my" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mA" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/wall/r_wall, +/area/tether_away/guttersite/docking) +"mG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mI" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + frequency = 1276; + id_tag = "guttersite_lshuttle_pump" + }, +/obj/machinery/airlock_sensor{ + frequency = 1276; + id_tag = "guttersite_lshuttle_sensor"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mK" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mL" = ( +/obj/structure/table/rack, +/obj/item/weapon/tank/oxygen, +/obj/random/multiple/voidsuit, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) "mM" = ( /obj/structure/table/darkglass, /obj/item/weapon/pen/blue, @@ -5056,6 +5419,42 @@ /obj/item/weapon/paper_bin, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mP" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 1276; + master_tag = "guttersite_lshuttle"; + name = "interior access button"; + pixel_x = -28; + pixel_y = 26; + req_one_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mQ" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mR" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list() + }, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mS" = ( +/obj/structure/flora/pumpkin/carved/owo, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) "mT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10; @@ -5067,6 +5466,48 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"mU" = ( +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mV" = ( +/obj/item/device/radio/headset/nanotrasen/alt{ + desc = "The headset of am Eltorro employee."; + name = "Weird Headset" + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mW" = ( +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mX" = ( +/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mY" = ( +/obj/item/weapon/material/twohanded/baseballbat/metal, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mZ" = ( +/obj/item/weapon/light/bulb, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"na" = ( +/obj/item/clothing/mask/gas/wwii, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"nb" = ( +/obj/machinery/floodlight, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nc" = ( +/obj/effect/landmark/corpse/syndicatecommando, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nd" = ( +/obj/effect/landmark/corpse/syndicatesoldier, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) "ne" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9; @@ -5083,6 +5524,98 @@ /obj/random/janusmodule, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"ng" = ( +/obj/effect/landmark/corpse/engineer/rig, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nh" = ( +/obj/item/mecha_parts/mecha_equipment/tool/drill, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"ni" = ( +/obj/structure/loot_pile/mecha/ripley, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nj" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nk" = ( +/obj/item/clothing/head/helmet/space/syndicate/black, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nl" = ( +/obj/structure/bonfire, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nm" = ( +/obj/item/clothing/suit/space/syndicate/black, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nn" = ( +/obj/item/weapon/tank/air, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"no" = ( +/obj/item/weapon/bedsheet/pirate, +/obj/structure/bed, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"np" = ( +/obj/structure/trash_pile, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nq" = ( +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, +/obj/item/trash/candy, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nr" = ( +/obj/item/trash/liquidfood, +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, +/obj/item/trash/candy, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"ns" = ( +/obj/item/trash/liquidprotein, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nt" = ( +/obj/structure/signpost, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nu" = ( +/obj/random/outcrop, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nv" = ( +/mob/living/simple_mob/mechanical/hivebot/tank/armored, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nw" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) +"nx" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4; + icon_state = "map_vent_out" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) +"ny" = ( +/mob/living/simple_mob/vore/catgirl{ + name = "Blaire" + }, +/turf/simulated/floor/tiled/eris/steel/bar_light, +/area/tether_away/guttersite/commons) "Ob" = ( /obj/structure/cable/cyan{ d1 = 1; @@ -5091,6 +5624,34 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/maint) +"QN" = ( +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) +"Uv" = ( +/obj/machinery/access_button{ + command = "cycle_exterior"; + frequency = 1276; + master_tag = "guttersite_lshuttle"; + name = "exterior access button"; + pixel_x = 26; + pixel_y = -26; + req_one_access = list() + }, +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) +"Yg" = ( +/obj/machinery/access_button{ + command = "cycle_exterior"; + frequency = 1380; + master_tag = "guttersite_sshuttle"; + name = "exterior access button"; + pixel_x = -5; + pixel_y = -26; + req_one_access = list(); + step_x = 0 + }, +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) (1,1,1) = {" aa @@ -5697,17 +6258,17 @@ aa aa aa aa +ag +ag +ag +ag aa aa aa aa aa -aa -aa -aa -aa -aa -aa +ag +ag aa aa aa @@ -5839,6 +6400,19 @@ aa aa aa aa +ag +ag +ag +ag +aa +aa +aa +aa +aa +ag +ag +ag +ag aa aa aa @@ -5859,21 +6433,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +nu +nu aa aa aa @@ -5981,6 +6542,20 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag aa aa aa @@ -6000,23 +6575,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +nu aa aa aa @@ -6123,6 +6684,30 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ag +ag +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag aa aa aa @@ -6132,34 +6717,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +ag +ag aa aa aa @@ -6259,6 +6820,36 @@ ad ad ag ad +ad +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +nu +ag +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag aa aa aa @@ -6269,6 +6860,9 @@ aa aa aa aa +ag +ag +ag aa aa aa @@ -6279,44 +6873,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag aa aa aa @@ -6400,6 +6961,8 @@ aa ad ad ad +ad +ad aa aa aa @@ -6413,6 +6976,35 @@ aa aa aa aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ag +ag +nu +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ag aa aa aa @@ -6424,41 +7016,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ag +ag aa aa aa @@ -6534,7 +7095,7 @@ ag ag ag ad -ad +nu ag aa aa @@ -6560,6 +7121,32 @@ aa aa aa aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ag +nu +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad aa aa aa @@ -6572,6 +7159,9 @@ aa aa aa aa +ad +ad +ad aa aa aa @@ -6583,38 +7173,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag aa aa aa @@ -6702,6 +7263,21 @@ aa aa aa aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad aa aa aa @@ -6726,37 +7302,22 @@ aa aa aa aa +ad +ad aa aa aa aa aa aa +ad +ad aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ag aa aa aa @@ -6809,7 +7370,7 @@ aa aa aa aa -ag +ad ag ag aa @@ -6856,6 +7417,9 @@ aa aa aa aa +ad +ad +ag aa aa aa @@ -6888,17 +7452,14 @@ aa aa aa aa +ad +ad aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad aa aa aa @@ -6959,7 +7520,47 @@ aa aa ad ad -ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad ag aa aa @@ -6993,56 +7594,16 @@ aa aa aa aa +nu +ad +ag aa aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag aa aa aa @@ -7101,6 +7662,7 @@ aa aa aa ad +ad aa aa aa @@ -7133,9 +7695,15 @@ aa aa aa aa +ad +ad +ad aa aa aa +ad +ad +ad aa aa aa @@ -7168,23 +7736,16 @@ aa aa aa aa +ag +ag +ag +ag aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag aa aa aa @@ -7264,6 +7825,21 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad aa aa aa @@ -7282,6 +7858,10 @@ aa aa aa aa +ad +ag +ag +ag aa aa aa @@ -7298,29 +7878,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag aa aa aa @@ -7406,6 +7967,21 @@ aa aa aa aa +ag +ag +ag +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad aa aa aa @@ -7424,26 +8000,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ag +ag +ag aa aa aa @@ -7548,6 +8109,22 @@ aa aa aa aa +ag +ag +ag +ag +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ag +ag aa aa aa @@ -7565,27 +8142,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ag +ag aa aa aa @@ -7700,6 +8261,33 @@ aa aa aa aa +ad +ad +ad +ad +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad aa aa aa @@ -7726,34 +8314,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag aa aa aa @@ -7842,6 +8403,45 @@ aa aa aa aa +ad +ad +ag +ag +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ag aa aa aa @@ -7854,46 +8454,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad aa aa aa @@ -7949,7 +8510,7 @@ ag ag ag ad -aa +ad aa aa aa @@ -7985,6 +8546,24 @@ aa aa aa aa +ag +ag +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ag aa aa aa @@ -8000,29 +8579,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ag +ag aa aa aa @@ -8091,8 +8652,8 @@ ag ag lM ad -aa -aa +ad +ad aa aa aa @@ -8140,6 +8701,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8155,15 +8721,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ad +ag aa aa aa @@ -8232,7 +8793,7 @@ aa ad ad ad -aa +ad aa aa aa @@ -8282,6 +8843,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8297,14 +8863,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +ad aa aa aa @@ -8423,6 +8984,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8441,12 +9007,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +ad aa aa aa @@ -8564,11 +9125,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ad +ad +ad +nu +ag aa aa aa @@ -8706,11 +9267,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ad +ad +ag +ag +ag aa aa aa @@ -8804,7 +9365,7 @@ aa aa aa aa -aa +ad ad aa aa @@ -8850,8 +9411,8 @@ aa aa aa aa -aa -aa +ag +ag aa aa aa @@ -8885,7 +9446,7 @@ ag ag ag ag -ad +nu ad ad ad @@ -8946,7 +9507,7 @@ aa aa aa aa -aa +ad ag ag ag @@ -9026,7 +9587,7 @@ ag ag ag ag -ad +nu ad ad ad @@ -9088,7 +9649,7 @@ aa aa aa aa -aa +ad lM ag ag @@ -9160,7 +9721,7 @@ aa ag jl ad -ad +nu ag ag ag @@ -9230,7 +9791,7 @@ aa aa aa aa -aa +ad ad ag ag @@ -9320,7 +9881,7 @@ ad ad ad aL -ad +nu ag ag ag @@ -9597,7 +10158,7 @@ ag ad fX gh -go +gp aL ag ag @@ -9869,7 +10430,7 @@ aa ad ad ad -ad +nu ag ag ad @@ -10011,8 +10572,8 @@ aa ad ad ad -ad -ad +nu +nu ag ag ag @@ -10020,7 +10581,7 @@ ag fu fu jJ -fw +gY ga gk gq @@ -10154,8 +10715,8 @@ ad ad ad ad -ad -ad +nu +nu ag ag fu @@ -10253,7 +10814,7 @@ aB ag hd jk -jg +ad aA ad ad @@ -10297,9 +10858,9 @@ ad ad ad ad -ad -ad -ad +nu +ag +ag fu fz fD @@ -10407,8 +10968,8 @@ ag ag ad ad -aa -aa +ad +ad aa aa aa @@ -10439,9 +11000,9 @@ ad ad ad ad -ad -ad -ad +nu +nu +ag fu fz fE @@ -10518,7 +11079,7 @@ aa aa aa aa -aa +ad ac ac ac @@ -10582,8 +11143,8 @@ ad ad ad ad -ad -ad +nu +ag fu lG fF @@ -10593,7 +11154,7 @@ gd gd gd gz -fw +gX fu fw gX @@ -10653,13 +11214,13 @@ aa aa aa aa +ad +ad aa aa aa aa -aa -aa -aa +ad ac ac ac @@ -10724,8 +11285,8 @@ ad ad ad ad -ad -ad +nu +ag fu fA fG @@ -10733,7 +11294,7 @@ jX fw hU ge -jh +gs gz fw fu @@ -10794,13 +11355,13 @@ aa aa aa aa +ag +ad +ad aa aa aa -aa -aa -aa -aa +ad ab ab ab @@ -10815,10 +11376,10 @@ by bF bP cu +ms +ms aT ag -ag -ag ad ad ad @@ -10866,8 +11427,8 @@ ad ad ad ad -ad -ad +nu +ag fu fB fH @@ -10883,7 +11444,7 @@ fx if fw jp -fw +gY fu fu ag @@ -10936,13 +11497,13 @@ aa aa aa aa +ag +ag +ad aa aa aa -aa -aa -aa -aa +ad ac ac lS @@ -10956,11 +11517,11 @@ bq bI cc bq -cv +bq +bq +bq aT ag -ag -ag ad ad ad @@ -11079,12 +11640,12 @@ aa aa aa aa +ag +ag aa aa aa -aa -aa -aa +ad ac ac lS @@ -11098,12 +11659,12 @@ bq bJ bJ bq -cw +bq +bq +mt aT ag ag -ag -ag az ag ag @@ -11222,7 +11783,7 @@ aa aa aa aa -aa +ag aa aa aa @@ -11237,15 +11798,15 @@ cA aR bh bq -bK -cd +br +bM +bq +bq +bq bq -bh aT ag ag -ag -ag ad ag ag @@ -11382,12 +11943,12 @@ bq bL ce bq -cx +bq +bq +bq aT ag ag -ag -ag ad ad ad @@ -11520,11 +12081,13 @@ aB cA aQ bi -br -bM -cf -cm -cy +bq +bs +bN +bq +bq +bq +bq aT ag ag @@ -11533,8 +12096,6 @@ ag ag ag ag -ag -ag cF cF cF @@ -11662,11 +12223,13 @@ aB cA aQ bh -bs -bN +bq +br +cd cg -cn -bh +cx +bq +bq aT ag ag @@ -11674,8 +12237,6 @@ ag ag ag ag -ag -ag cF cF dh @@ -11804,19 +12365,19 @@ aB cA aQ bh -bh -bh -bh -bh -bh +bq +bK +cf +cm +bM +bq +bq aT ag ag ag ag ag -ag -ag cF cF dh @@ -11868,7 +12429,7 @@ fw kE gD fw -fw +gX fu gC fu @@ -11949,12 +12510,12 @@ aT aT aT aT +br +bM +bq +bq aT aT -aT -ag -ag -ag ag ag ag @@ -11976,14 +12537,14 @@ dn dn dn dn -ia -ia -ia -ia -ia -ia -ia -ia +mh +mh +mh +mh +mh +mh +mh +mh dn ib ee @@ -11991,13 +12552,13 @@ fp ee ee dn -ia -ia -ia -ia -ia -ia -ia +mh +mh +mh +mh +mh +mh +mh dn dn dn @@ -12012,11 +12573,11 @@ fw fw gn fu -ji +hi fw gm fw -gY +nx fw fw gP @@ -12090,13 +12651,13 @@ cE cE cE cV -aP -ag -ag -ag -ag -ag -ag +aQ +cn +bM +bq +jZ +mo +aT ag ag ag @@ -12232,13 +12793,13 @@ aE aE aE cA -aP -ag -ag -ag -ag -ag -ag +aQ +br +cy +mi +lE +mp +aT ag ag cF @@ -12257,17 +12818,17 @@ jD cF dn dn -ia -ia -ia -ia +ie +ie +ie +ie dn -ia -ia -ia -ia -ia -ia +ie +ie +ie +ie +ie +ie dn ef ep @@ -12275,13 +12836,13 @@ fv eI ee dn -ia -ia -ia -ia -ia -ia -ia +ie +ie +ie +ie +ie +ie +ie dn dn dn @@ -12374,19 +12935,19 @@ aB aB aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bM +bq +jZ +mo +aT ag cF cF cZ jv -cZ +ny dh dW jD @@ -12516,13 +13077,13 @@ ac ac aB cW -aB -ag -ag -ag -ag -ag -ag +aT +br +cy +mi +lE +mp +aT ag cF cU @@ -12658,13 +13219,13 @@ ac ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bM +bq +jZ +mo +aT cF cF db @@ -12696,9 +13257,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -12800,13 +13361,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +ji +mi +lE +mp +aT cF cF cF @@ -12838,9 +13399,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -12872,7 +13433,7 @@ fw gP jx fw -fw +gX fu ag ag @@ -12942,13 +13503,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cv +jG +mj +lI +mq +aT cF jL jP @@ -12980,9 +13541,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -13084,13 +13645,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bq +bq +lX +mr +aT cF cI cH @@ -13146,7 +13707,7 @@ aa aa aa fu -fw +nw fw jx gP @@ -13226,13 +13787,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cv +jG +mj +lI +mq +aT cF jM jQ @@ -13368,13 +13929,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bq +bq +lX +mr +aT cF cF cF @@ -13404,7 +13965,7 @@ aa aa aa aa -hZ +mv ih eg fK @@ -13510,13 +14071,13 @@ ac ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cw +jG +mj +lI +mq +aT dk dk dk @@ -13546,7 +14107,7 @@ aa aa aa aa -hZ +mv iX eg fN @@ -13578,9 +14139,9 @@ ag ag ag bb -ag -ag -ag +cs +cs +cs ag ag ag @@ -13652,13 +14213,13 @@ ac ac aB cW -aB -ag -ag -ag -ag -ag -ag +aT +bq +bq +bq +lX +mr +aT cF cF cF @@ -13688,7 +14249,7 @@ aa aa aa aa -hZ +mv lw eg fK @@ -13696,7 +14257,7 @@ eg fK eg kw -hZ +mx aa aa aa @@ -13719,13 +14280,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -13797,10 +14358,10 @@ cX ax ax ax -ag -ag -ag -ag +aT +aT +aT +aT cF jN jR @@ -13838,7 +14399,7 @@ eL fK ja eg -hZ +mx aa aa aa @@ -13861,13 +14422,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -13972,7 +14533,7 @@ aa aa aa aa -hZ +mv iY eg fP @@ -13980,7 +14541,7 @@ eg fK jb eg -hZ +mx aa aa aa @@ -14003,13 +14564,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -14145,12 +14706,12 @@ aa aa ag ag -cs -cs -cs ag ag ag +cs +cs +ag ag ig ag @@ -14289,9 +14850,9 @@ ag ag ag ag -jz ag ag +cs ag ag ag @@ -14379,32 +14940,32 @@ kN ev kA lu -df -aa -aa -aa -aa -aa -aa -aa -aa -aa -de -de -de -de -de -de -aa -aa -aa -aa -aa -aa -aa hZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +de +de +de +de +de +de +aa +aa +aa +aa +aa +aa +aa +mv fK -hZ +mx aa aa aa @@ -14431,9 +14992,9 @@ aa ag ag ag -cs ag ag +jz ag ag ag @@ -14521,7 +15082,7 @@ kO ew cH cH -df +hZ aa aa aa @@ -14544,9 +15105,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -14663,32 +15224,32 @@ cH eo cH cH -df -aa -aa -aa -aa -aa -aa -aa -aa -de -de -dp -dD -dp -dD -dp -de -aa -aa -aa -aa -aa -aa hZ +aa +aa +aa +aa +aa +aa +aa +aa +de +de +dp +dD +dp +dD +dp +de +aa +aa +aa +aa +aa +aa +mv fK -hZ +mx aa aa aa @@ -14828,9 +15389,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -14947,7 +15508,7 @@ cH cH cH cH -df +hZ aa aa aa @@ -14970,9 +15531,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15090,14 +15651,14 @@ cH cH cH de -ic -ic -ic -ic -ic -ic -ic -ic +ia +ia +ia +ia +ia +ia +ia +ia de dp dp @@ -15112,9 +15673,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15254,9 +15815,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15396,9 +15957,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15513,8 +16074,8 @@ cH cH cH df -df -df +dO +go aa aa aa @@ -15538,9 +16099,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15654,7 +16215,7 @@ kA cR cH df -df +go aa aa aa @@ -15680,9 +16241,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15794,8 +16355,8 @@ cF cF cF cF -df -df +dO +go aa aa aa @@ -15824,7 +16385,7 @@ aa aa eb hc -hZ +mx aa aa aa @@ -15964,9 +16525,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16106,9 +16667,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16248,9 +16809,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16390,9 +16951,9 @@ ab ab ab ab -hZ +mv fK -hZ +mx aa aa aa @@ -16532,7 +17093,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17242,7 +17803,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17384,7 +17945,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17526,7 +18087,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17630,10 +18191,10 @@ aa aa aa aa +ad +ad ag ag -ag -aa aa aa aa @@ -17664,10 +18225,10 @@ ab ab ab dN -dO -dO +ml +ml dN -dO +ml dN hk dN @@ -17772,10 +18333,10 @@ aa aa aa aa -ag -ag +ad +ad lQ -aa +ag aa aa aa @@ -17803,8 +18364,8 @@ aa ab ab dN -dO -dO +ml +ml dN kv dR @@ -17944,7 +18505,7 @@ aa ab ab ab -dO +mk dR iF dV @@ -17976,7 +18537,7 @@ eE eE eE eE -eE +hS eE eE eE @@ -18086,7 +18647,7 @@ aa ab ab ab -dO +mk dR iG dR @@ -18118,7 +18679,7 @@ eE eE eE eE -hS +eE eE eE eE @@ -18228,7 +18789,7 @@ ab ab ab ab -dO +mk dR iH dR @@ -18259,9 +18820,9 @@ eE eE eE eE -eE -eE -eE +gQ +Yg +ho eE eE eE @@ -18370,7 +18931,7 @@ ab ab ab ab -dO +mk dR dR dR @@ -18401,9 +18962,9 @@ eE eE eE eE -gs -id -gQ +gt +mR +gR eE eE eE @@ -18512,7 +19073,7 @@ ab ab ab ab -dO +mk dR iF dR @@ -18654,7 +19215,7 @@ ab ab ab ab -dO +mk dR iG dR @@ -18671,35 +19232,35 @@ fq fq fq fq -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu +my +my +my +my +my +my +my +my +my +my +my +my +my +my gu gH gu -gu -gu -gu -gu -gu -gu +my +my +my +my +my +my fq -gu -gu -gu -gu -gu +my +my +my +my +my fq eE eE @@ -18792,29 +19353,29 @@ aa ab ab ab -dv -dv -dv -dv -dv +dw +dH +dH +dH +dA dS iH dR ec fb ik -iI +fn ik hY dR dR fo fr +lY fr fr fr -fr -fr +ma fr fr fr @@ -18828,7 +19389,7 @@ fr fr fr gv -ie +id gS fr fr @@ -18839,7 +19400,7 @@ fr hq fr fr -fr +lY fr hQ fq @@ -18934,11 +19495,11 @@ aa ab ab ab -dw -dA -dH -dv +dx +dI dP +dA +mm dR dR dR @@ -18956,7 +19517,7 @@ jF jF jF jF -jF +kH jF jF jF @@ -18984,7 +19545,7 @@ hh hF hN fr -gu +mG eE eE eE @@ -19075,12 +19636,12 @@ aa ab ab ab -ab -dx -dB -dI -dK +dv +dA +dR dQ +mg +mn dT dT dT @@ -19098,7 +19659,7 @@ fr ft fr fr -fr +gx fr fr fr @@ -19126,7 +19687,7 @@ fr hG hO fr -gu +mG eE eE eE @@ -19218,11 +19779,11 @@ ab ab ab ab -dv -dv -dv -dv -dv +dB +dK +dK +dK +dA dR dR dR @@ -19240,35 +19801,35 @@ fq fq fq fq -gu -gu -gu -gu -gu +mz +mz +mz +mz +mz fq -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz fq -gu -gu -gu -gu +mz +mz +mz +mz gu hG hO fr -gu +mG eE eE eE @@ -19324,7 +19885,7 @@ aa af ae aa -ae +md ai aa aa @@ -19364,7 +19925,7 @@ ab ab ab ab -dO +mk ip dR dR @@ -19377,11 +19938,11 @@ hV dR dR dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19406,11 +19967,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19464,9 +20025,9 @@ aa aa ai ai +md ae -ae -ae +md ai ai ae @@ -19506,7 +20067,7 @@ ab ab ab ab -dO +mk iC dR dR @@ -19519,11 +20080,11 @@ hV dR dF dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19548,11 +20109,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19648,7 +20209,7 @@ ab ab ab ab -dO +mk iD dR ci @@ -19661,11 +20222,11 @@ is dR dN dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19690,11 +20251,11 @@ eE eE eE eE -gu -hG -hO -fr -gu +mC +mb +mc +hR +mG eE eE eE @@ -19744,13 +20305,13 @@ aa aa aa aa -ae -ae +ah +ah ah ah at ap -ap +ar ah ah ae @@ -19780,16 +20341,16 @@ aa aa aa aa -aa +ad ab ab ab -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag dN iE dU @@ -19802,12 +20363,12 @@ ci it dR dN -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag eE eE eE @@ -19832,11 +20393,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19886,9 +20447,9 @@ aa aa aa aa -ae -ah ah +ap +ap ao ba ap @@ -19922,16 +20483,16 @@ aa aa aa aa -aa +ad ab -ac -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag +ag dN dN dN @@ -19944,12 +20505,12 @@ fS ne lx dN -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag eE eE eE @@ -19974,11 +20535,11 @@ eE eE eE eE -fq +mF hH hO fr -gu +mG eE eE eE @@ -20028,15 +20589,15 @@ aa aa aa aa -ae ah +ap al ap ap ap ap ap -ap +me ah ae ai @@ -20064,19 +20625,19 @@ aa aa aa aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag dN dN dN @@ -20086,11 +20647,11 @@ fT dN dN dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -20116,11 +20677,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20170,8 +20731,8 @@ aa aa aa aa -ae ah +ap am aq ap @@ -20206,33 +20767,33 @@ aa aa aa aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ed gw ed -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -20258,11 +20819,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20312,15 +20873,15 @@ aa aa aa aa -ae ah +ap an ap eZ ai ai ai -ap +mf ah ae ai @@ -20348,33 +20909,33 @@ aa aa aa aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +nb +ad +nt +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ed gw ed -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -20400,11 +20961,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20454,13 +21015,13 @@ aa aa aa aa -ae ah -ah -ar ap ap -ae +ap +ap +ap +ap lJ ah ah @@ -20489,21 +21050,21 @@ aa aa aa aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ad +ag +ag +ad +ad +ad +ad +ag +ag +ag +ag +ag +ag +ag ed ed ed @@ -20513,10 +21074,10 @@ ed ed ed ed -ac -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20540,13 +21101,13 @@ eE eE eE eE -gu -gu +mB +mE gu hG hO fr -gu +mG eE eE eE @@ -20596,8 +21157,8 @@ aa aa aa aa -ae -ai +ah +ah ah ah av @@ -20631,21 +21192,21 @@ aa aa aa aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ad +ad +ad +ad +ag +ag +ag +ag +ag +ag +ad ed el iU @@ -20653,11 +21214,12 @@ em gT iw iz -fn +iI ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20681,14 +21243,13 @@ eE eE eE eE -eE -gu +mC lz hx hI hO fr -gu +mG eE eE eE @@ -20773,21 +21334,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ad +ad +ag +ag +az +ag +ag +ag +ag +ag +ad +ad ed eP em @@ -20797,9 +21358,10 @@ ff iB hr ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20823,14 +21385,13 @@ eE eE eE eE -eE -gu +mC fr hy hJ hO fr -gu +mG eE eE eE @@ -20915,21 +21476,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ad +ad +ad +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed gF em @@ -20939,9 +21500,10 @@ nf iK hE ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20965,14 +21527,13 @@ eE eE eE eE -eE -gu +mC fr hz hJ hO fr -gu +mG eE eE eE @@ -21057,21 +21618,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ad +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed lC iA @@ -21081,8 +21642,10 @@ hD iM iN ed -ac -ac +ag +ag +ag +ag eE eE eE @@ -21106,15 +21669,13 @@ eE eE eE eE -eE -eE -gu +mC fr hA hJ hO fr -gu +mG eE eE eE @@ -21199,21 +21760,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac +ad +ad +ad +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed ed ed @@ -21223,8 +21784,10 @@ ed ed ed ed -ac -ac +ag +ag +ag +ag eE eE eE @@ -21248,15 +21811,13 @@ eE eE eE eE -eE -eE -gu +mC ht hB hJ hO fr -gu +mG eE eE eE @@ -21341,32 +21902,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa +ag +ag +ag +ag +ag +ag +ag +az +ag +ag +ag +ag +ag +ad +ad +nh +ni +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -21391,14 +21953,13 @@ eE eE eE eE -eE -gu +mC hu hC hJ hO fr -gu +mG eE eE eE @@ -21483,32 +22044,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +ad +ag +ag +nb +ad +ad +ad +ag +ag +ag +ag +ag +ag +ad +nk +nm +ag eE eE eE @@ -21533,14 +22095,13 @@ eE eE eE eE -eE -gu -gu +mD +mz gu hJ hO fr -gu +mG eE eE eE @@ -21625,32 +22186,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa +ag +ag +ag +ad +np +ag +ag +ad +ag +ag +ad +ag +ag +ag +ad +iR +ad +ad +ad +ag +ag +nb +ad +ad +ad +nn +ag eE eE eE @@ -21677,12 +22239,11 @@ eE eE eE eE -eE -gu +mC hJ hO fr -gu +mG eE eE eE @@ -21767,33 +22328,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -eE +ag +ag +ag +nb +nq +ad +ad +ad +ag +ag +ad +ad +ag +ag +ad +ad +ad +ad +ad +ag +ag +ad +nv +ad +nl +ad +ag eE eE eE @@ -21824,7 +22385,7 @@ fq hK hO fr -gu +mG eE eE eE @@ -21909,32 +22470,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +jg +nr +ns +ag +ad +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad +ag +ag +ad +ad +ad +ad +ad +ag eE eE eE @@ -21961,12 +22523,11 @@ eE eE eE eE -eE -gu +mC hJ hO fr -gu +mG eE eE eE @@ -22051,32 +22612,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +np +np +np +ag +ad +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad +ag +ag +nj +ad +ad +ad +no +ag eE eE eE @@ -22103,12 +22665,11 @@ eE eE eE eE -eE -gu +mC hL hP hR -gu +mG eE eE eE @@ -22194,31 +22755,32 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag +ad +az +ad +ad +ad +ag +ad +ag +ag +ag +ag +ag +ag +az +ag +ag eE eE eE @@ -22245,12 +22807,11 @@ eE eE eE eE -eE -gu +mC hJ fr fr -gu +mG eE eE eE @@ -22336,31 +22897,31 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ad +ag +ag +ag +ag +ag +ag +ad +az +ad +ag +ag +ag +ag +ag +ad +ad +ag eE eE eE @@ -22383,16 +22944,16 @@ eE eE eE eE -eE -hi -hi -hi -hi -hi +hp +hs +iP +iP +iP +iL hJ fr fr -gu +mG eE eE eE @@ -22479,30 +23040,30 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ad +ag +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ag +ag eE eE eE @@ -22525,16 +23086,16 @@ eE eE eE eE -eE -hj -ho -iP -hi +Uv +hv +iQ +mI iL +mL hJ fr fr -gu +mG eE eE eE @@ -22621,29 +23182,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ag +ad +ad +nd +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ag aa eE eE @@ -22667,16 +23228,16 @@ eE eE eE eE -eE -iO -hp -hs -hv -iQ +QN +iL +fr +mJ +mK +mP hM fr fr -gu +mG eE eE eE @@ -22763,29 +23324,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +nc +ad +ad +ag +ag +ad +az +ad +ad +ad +az +ad +ag aa eE eE @@ -22809,16 +23370,16 @@ eE eE eE eE -eE -hi -hi -hi -hi -hi +mA +iO +iO +iO +iO +iL fr fr -fr -gu +lZ +mG eE eE eE @@ -22906,28 +23467,28 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +ad +nd +ag +ag +ad +ag +ag +ag +ag +ag +ag +ag aa eE eE @@ -22956,11 +23517,11 @@ eE eE eE eE -fq -gu -gu -gu -gu +mQ +mz +mz +mz +mH eE eE eE @@ -22988,6 +23549,11 @@ eE aa aa aa +ag +ag +ag +ag +ag aa aa aa @@ -23043,31 +23609,26 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ag +cM +ad +ng +ad +ag +ag +ad +ag +ag +ag +ag +ag aa aa aa @@ -23129,6 +23690,13 @@ eE (128,1,1) = {" aa aa +ag +ag +ad +ad +ad +ag +ag aa aa aa @@ -23185,35 +23753,27 @@ aa aa aa aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -eE eE eE eE @@ -23267,9 +23827,19 @@ eE eE eE eE +eE "} (129,1,1) = {" aa +ag +ag +mS +ad +ad +ad +mS +ag +ag aa aa aa @@ -23328,26 +23898,17 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +az +ag aa aa aa @@ -23412,6 +23973,15 @@ eE "} (130,1,1) = {" aa +ag +ad +ad +mU +mU +mU +ad +ad +ag aa aa aa @@ -23472,22 +24042,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag aa aa aa @@ -23554,15 +24115,15 @@ eE "} (131,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mU +mW +mU +mU +ad +ag aa aa aa @@ -23696,15 +24257,15 @@ eE "} (132,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mZ +mX +mU +mU +ad +ag aa aa aa @@ -23838,15 +24399,15 @@ eE "} (133,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +na +mU +mU +mU +ad +ag aa aa aa @@ -23980,15 +24541,15 @@ eE "} (134,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mV +mY +mU +mU +ad +ag aa aa aa @@ -24122,15 +24683,15 @@ eE "} (135,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mU +mU +mU +mU +ad +ag aa aa aa @@ -24264,15 +24825,15 @@ eE "} (136,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +ad +mU +mU +mU +ad +ad +ag aa aa aa @@ -24406,15 +24967,15 @@ eE "} (137,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +mS +ad +ad +ad +mS +ag +ag aa aa aa @@ -24549,13 +25110,13 @@ eE (138,1,1) = {" aa aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ad +ad +ad +ag +ag aa aa aa @@ -24692,11 +25253,11 @@ eE aa aa aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag aa aa aa diff --git a/maps/tether/tether-03-surface3.dmm b/maps/tether/tether-03-surface3.dmm index e3f7c29292..4ccd5fb59b 100644 --- a/maps/tether/tether-03-surface3.dmm +++ b/maps/tether/tether-03-surface3.dmm @@ -28772,6 +28772,26 @@ }, /turf/simulated/floor/tiled, /area/hallway/lower/third_south) +"cnN" = ( +/obj/structure/bed/chair/bay/chair{ + dir = 4; + icon_state = "bay_chair_preview" + }, +/obj/structure/closet/emergsuit_wall{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/eris/dark/golden, +/area/shuttle/tourbus/general) +"cnZ" = ( +/obj/structure/bed/chair/bay/chair{ + dir = 4; + icon_state = "bay_chair_preview" + }, +/obj/structure/closet/emergsuit_wall{ + pixel_x = -32 + }, +/turf/simulated/floor/tiled/eris/dark/golden, +/area/shuttle/tourbus/general) "cpd" = ( /obj/effect/floor_decal/borderfloor{ dir = 1 @@ -29940,6 +29960,9 @@ d2 = 8; icon_state = "2-8" }, +/obj/structure/closet/emergsuit_wall{ + pixel_x = 32 + }, /turf/simulated/floor/tiled/eris/dark/golden, /area/shuttle/tourbus/general) "isl" = ( @@ -30325,6 +30348,9 @@ /area/tether/surfacebase/surface_three_hall) "kdx" = ( /obj/structure/table/standard, +/obj/structure/closet/emergsuit_wall{ + pixel_y = 32 + }, /turf/simulated/floor/tiled/eris/white/orangecorner, /area/shuttle/tourbus/cockpit) "keX" = ( @@ -31396,6 +31422,16 @@ }, /turf/simulated/floor/tiled/monotile, /area/tether/surfacebase/shuttle_pad) +"rzV" = ( +/obj/structure/bed/chair/bay/chair{ + dir = 8; + icon_state = "bay_chair_preview" + }, +/obj/structure/closet/emergsuit_wall{ + pixel_y = 32 + }, +/turf/simulated/floor/tiled/eris/dark/golden, +/area/shuttle/tourbus/general) "rAe" = ( /obj/machinery/light{ dir = 1 @@ -43599,10 +43635,10 @@ jvK jvK kdx jvK -oPm +cnN mDf eiO -oPm +cnZ fYr qwm qwm @@ -44167,7 +44203,7 @@ jvK jvK ivq jvK -uhm +rzV fcg tcW iqb diff --git a/maps/tether/tether-05-station1.dmm b/maps/tether/tether-05-station1.dmm index adc501ee90..0178eb04a3 100644 --- a/maps/tether/tether-05-station1.dmm +++ b/maps/tether/tether-05-station1.dmm @@ -50,6 +50,29 @@ }, /turf/simulated/wall/r_wall, /area/space) +"aah" = ( +/obj/effect/floor_decal/steeldecal/steel_decals4, +/obj/effect/floor_decal/steeldecal/steel_decals4{ + dir = 10 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/alarm{ + dir = 1; + icon_state = "alarm0"; + pixel_y = -22 + }, +/turf/simulated/floor/tiled, +/area/engineering/gravity_lobby) "aai" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -93,6 +116,23 @@ }, /turf/simulated/floor/tiled, /area/hallway/station/atrium) +"aal" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/disposalpipe/segment, +/obj/machinery/alarm{ + dir = 4; + pixel_x = -35; + pixel_y = 0 + }, +/turf/simulated/floor, +/area/maintenance/station/eng_lower) "aam" = ( /obj/machinery/light/small{ dir = 8; @@ -20998,24 +21038,6 @@ }, /turf/simulated/floor/tiled, /area/hallway/station/atrium) -"dnX" = ( -/obj/effect/floor_decal/steeldecal/steel_decals4, -/obj/effect/floor_decal/steeldecal/steel_decals4{ - dir = 10 - }, -/obj/structure/cable{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/tiled, -/area/engineering/gravity_lobby) "dop" = ( /obj/effect/decal/cleanable/dirt, /obj/random/cutout, @@ -33311,7 +33333,7 @@ shi anD aoH apU -apU +aal apU atT avP @@ -33450,7 +33472,7 @@ aik aik aik rxE -dnX +aah aik ioI ach diff --git a/maps/tether/tether-07-station3.dmm b/maps/tether/tether-07-station3.dmm index d0cd323292..e9b0b65873 100644 --- a/maps/tether/tether-07-station3.dmm +++ b/maps/tether/tether-07-station3.dmm @@ -30200,7 +30200,7 @@ /turf/simulated/floor/tiled, /area/hallway/station/upper) "iPK" = ( -/obj/structure/closet/walllocker/emerglocker{ +/obj/structure/closet/emergsuit_wall{ pixel_x = -32 }, /turf/simulated/floor/tiled/eris/dark/techfloor_grid, @@ -31583,9 +31583,6 @@ /turf/simulated/floor/plating, /area/shuttle/securiship/general) "qcm" = ( -/obj/structure/closet/walllocker/emerglocker{ - pixel_x = 32 - }, /obj/machinery/atmospherics/pipe/simple/hidden/supply, /obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, /obj/machinery/atmospherics/pipe/simple/hidden, @@ -31594,6 +31591,9 @@ d2 = 2; icon_state = "1-2" }, +/obj/structure/closet/emergsuit_wall{ + pixel_x = 32 + }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/shuttle/excursion/cargo) "qgj" = ( diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm index 32eb37da87..23c94f3b30 100644 --- a/maps/tether/tether_defines.dm +++ b/maps/tether/tether_defines.dm @@ -74,6 +74,7 @@ station_name = "Yawn Wider Station" station_short = "Tether" dock_name = "Virgo-3B Colony" + dock_type = "surface" boss_name = "Central Command" boss_short = "CentCom" company_name = "NanoTrasen" @@ -84,6 +85,7 @@ shuttle_leaving_dock = "The Orange Line tram has left the station. Estimate %ETA% until the tram arrives at %dock_name%." shuttle_called_message = "A scheduled crew transfer to the %dock_name% is occuring. The tram will be arriving shortly. Those departing should proceed to the Orange Line tram station within %ETA%." shuttle_recall_message = "The scheduled crew transfer has been cancelled." + shuttle_name = "Automated Tram" emergency_shuttle_docked_message = "The evacuation tram has arrived at the tram station. You have approximately %ETD% to board the tram." emergency_shuttle_leaving_dock = "The emergency tram has left the station. Estimate %ETA% until the shuttle arrives at %dock_name%." emergency_shuttle_called_message = "An emergency evacuation has begun, and an off-schedule tram has been called. It will arrive at the tram station in approximately %ETA%." diff --git a/maps/virgo_minitest/virgo_minitest_defines.dm b/maps/virgo_minitest/virgo_minitest_defines.dm index db438c6476..abee28169d 100644 --- a/maps/virgo_minitest/virgo_minitest_defines.dm +++ b/maps/virgo_minitest/virgo_minitest_defines.dm @@ -22,6 +22,7 @@ station_name = "NSS Ade-testing" station_short = "VORE-testing" dock_name = "Virgo-test CC" + dock_type = "surface" boss_name = "Central Command-testing" boss_short = "CentCom-testing" company_name = "NanoTrasen-testing" @@ -32,6 +33,7 @@ shuttle_leaving_dock = "Test Shuttle Leaving" shuttle_called_message = "Test Shuttle Coming" shuttle_recall_message = "Test Shuttle Cancelled" + shuttle_name = "NAS |Hawking|" emergency_shuttle_docked_message = "Test E-Shuttle Docked" emergency_shuttle_leaving_dock = "Test E-Shuttle Left" emergency_shuttle_called_message = "Test E-Shuttle Coming" diff --git a/maps/yw/submaps/space/guttersite.dmm b/maps/yw/submaps/space/guttersite.dmm index e6eebe5507..698861bc6b 100644 --- a/maps/yw/submaps/space/guttersite.dmm +++ b/maps/yw/submaps/space/guttersite.dmm @@ -371,17 +371,17 @@ /area/tether_away/guttersite/atmos) "br" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ - dir = 6 + dir = 4; + icon_state = "intact" }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bs" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline/red, -/obj/machinery/portable_atmospherics/canister/air, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bt" = ( @@ -568,9 +568,8 @@ /area/tether_away/guttersite/atmos) "bK" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ - dir = 8 + dir = 10 }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bL" = ( @@ -580,15 +579,18 @@ /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bM" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/blue, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4; + icon_state = "intact" + }, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bN" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline, -/obj/machinery/portable_atmospherics/canister/air, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "bO" = ( @@ -734,9 +736,9 @@ /area/tether_away/guttersite/atmos) "cd" = ( /obj/machinery/atmospherics/pipe/simple/visible/red{ - dir = 8 + dir = 10; + icon_state = "intact" }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "ce" = ( @@ -746,17 +748,11 @@ /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cf" = ( -/obj/machinery/atmospherics/pipe/manifold/visible/red{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/visible/blue, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cg" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 - }, -/obj/effect/floor_decal/industrial/outline/blue, -/obj/machinery/portable_atmospherics/canister/empty, +/obj/machinery/atmospherics/pipe/simple/visible/red, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "ch" = ( @@ -810,18 +806,20 @@ /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) "cm" = ( -/obj/machinery/atmospherics/pipe/simple/visible/red{ +/obj/machinery/atmospherics/pipe/simple/visible/blue{ dir = 5 }, -/obj/machinery/meter, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cn" = ( -/obj/machinery/atmospherics/portables_connector{ - dir = 8 +/obj/machinery/light{ + dir = 1; + icon_state = "tube1" + }, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 4; + icon_state = "intact" }, -/obj/effect/floor_decal/industrial/outline/yellow, -/obj/machinery/portable_atmospherics/canister/empty, /turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "co" = ( @@ -866,30 +864,35 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/atmos) "cv" = ( -/obj/structure/table/steel, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/atmospherics/pipe/manifold/visible/blue{ + dir = 1 + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cw" = ( -/obj/machinery/firealarm{ +/obj/machinery/light{ dir = 1; - pixel_x = 0; - pixel_y = -25 + icon_state = "tube1" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 10 + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cx" = ( -/obj/machinery/alarm{ - alarm_id = null; - breach_detection = 0; - dir = 1; - icon_state = "alarm0"; - pixel_y = -22 +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 5; + icon_state = "intact" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cy" = ( -/obj/machinery/light, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 1; + icon_state = "map" + }, +/turf/simulated/floor/plating/eris/under, /area/tether_away/guttersite/atmos) "cz" = ( /obj/machinery/light{ @@ -1307,26 +1310,36 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/commons) "dv" = ( -/turf/simulated/wall/skipjack, -/area/tether_away/guttersite/office) -"dw" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_northeast_lock"; - locked = 0; - req_access = list(150) - }, -/turf/simulated/shuttle/plating, -/area/tether_away/guttersite/office) -"dx" = ( /obj/machinery/access_button{ command = "cycle_exterior"; - frequency = 1331; - master_tag = "vox_east_control"; - req_access = list(150) + frequency = 448; + master_tag = "guttersite_northlock"; + name = "exterior access button"; + pixel_x = -5; + pixel_y = -26; + req_one_access = list() }, -/turf/simulated/wall/skipjack, +/turf/simulated/mineral/floor/vacuum, +/area/space) +"dw" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"dx" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dy" = ( /obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ @@ -1353,19 +1366,29 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dA" = ( -/obj/machinery/airlock_sensor{ - frequency = 1331; - id_tag = "vox_east_sensor"; - pixel_x = -25 - }, -/turf/simulated/shuttle/plating, +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dB" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1331; - id_tag = "vox_east_vent" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/simulated/shuttle/plating, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dC" = ( /obj/machinery/atmospherics/unary/vent_pump/on{ @@ -1407,31 +1430,24 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dH" = ( -/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ - frequency = 1331; - id_tag = ""; - pixel_x = -24; - req_access = list(150); - tag_airpump = "vox_east_vent"; - tag_chamber_sensor = "vox_east_sensor"; - tag_exterior_door = "vox_northeast_lock"; - tag_interior_door = "vox_southeast_lock" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1331; - id_tag = "vox_east_vent" - }, -/obj/machinery/light/small, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dI" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + frequency = 448; + id_tag = "guttersite_northlock"; + name = "Airlock controller"; + pixel_x = -25; + pixel_y = 0 }, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dJ" = ( /obj/machinery/alarm{ @@ -1443,15 +1459,13 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/medbay) "dK" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_southeast_lock"; - locked = 0; - req_access = list(150) +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dL" = ( /obj/structure/window/basic{ @@ -1474,24 +1488,33 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/simulated/floor/plating, -/area/tether_away/guttersite/office) +/area/tether_away/guttersite/commons) "dP" = ( -/obj/structure/table/rack, -/obj/item/weapon/tank/oxygen, -/obj/random/multiple/voidsuit, -/turf/simulated/shuttle/plating, +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + frequency = 448; + id_tag = "guttersite_northlock_pump" + }, +/obj/machinery/airlock_sensor{ + frequency = 448; + id_tag = "guttersite_northlock_sensor"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dQ" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1331; - master_tag = "vox_east_control"; - pixel_x = 22; - req_access = list(150) +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "dR" = ( /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -2260,13 +2283,15 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/bridge) "fn" = ( -/obj/machinery/firealarm{ - dir = 1; - pixel_x = 0; - pixel_y = -25 +/obj/structure/bed/chair/bay/comfy/black{ + dir = 4; + icon_state = "bay_comfychair_preview" }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/vault) +/mob/living/simple_mob/vore/catgirl{ + name = "Lucy" + }, +/turf/simulated/floor/tiled/eris/white/techfloor_grid, +/area/tether_away/guttersite/office) "fo" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/maintenance_hatch{ @@ -2574,12 +2599,18 @@ dir = 8 }, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/vault/bolted, /obj/structure/cable/cyan{ d1 = 4; d2 = 8; icon_state = "4-8" }, +/obj/machinery/door/airlock/hatch{ + frequency = 12341; + icon_state = "door_closed"; + id_tag = "gutter vault"; + locked = 0; + req_access = list(150) + }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "fU" = ( @@ -2612,10 +2643,11 @@ /obj/structure/window/reinforced{ dir = 1 }, -/obj/structure/window/reinforced{ - dir = 8 - }, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" + }, /turf/simulated/floor/plating, /area/tether_away/guttersite/security) "fY" = ( @@ -2688,12 +2720,12 @@ /obj/machinery/door/airlock/glass_external, /obj/machinery/access_button{ command = "cycle_exterior"; - frequency = 1380; - master_tag = "dock_d2a2"; + frequency = 1999; + master_tag = "westlock"; name = "exterior access button"; pixel_x = -5; pixel_y = -26; - req_one_access = list(13) + req_one_access = list() }, /obj/effect/map_helper/airlock/door/ext_door, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -2701,18 +2733,18 @@ "gi" = ( /obj/machinery/atmospherics/unary/vent_pump/high_volume{ dir = 4; - frequency = 1380; - id_tag = "dock_d2a2_pump" + frequency = 1999; + id_tag = "westlock_pump" }, /obj/machinery/light/small, /obj/machinery/embedded_controller/radio/airlock/docking_port{ - frequency = 1380; - id_tag = ""; + frequency = 1999; + id_tag = "westlock"; pixel_y = 28 }, /obj/machinery/airlock_sensor{ - frequency = 1380; - id_tag = "dock_d2a2_sensor"; + frequency = 1999; + id_tag = "westlock_sensor"; pixel_x = 0; pixel_y = -25 }, @@ -2734,12 +2766,12 @@ }, /obj/machinery/access_button{ command = "cycle_interior"; - frequency = 1380; - master_tag = "dock_d2a2"; + frequency = 1999; + master_tag = "westlock"; name = "interior access button"; pixel_x = -28; pixel_y = 26; - req_one_access = list(13) + req_one_access = list() }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 @@ -2772,13 +2804,13 @@ "go" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, /obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 8 + dir = 4 }, -/obj/machinery/door/firedoor/glass, /turf/simulated/floor/plating, -/area/tether_away/guttersite/security) +/area/tether_away/guttersite/commons) "gp" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -2800,24 +2832,15 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "gs" = ( -/obj/structure/grille, -/obj/structure/window/reinforced/full, -/obj/structure/sign/securearea{ - desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; - icon_state = "space"; - layer = 4; - name = "EXTERNAL AIRLOCK"; - pixel_x = 0 +/obj/structure/bed/chair/office/dark{ + dir = 8; + icon_state = "officechair_dark" }, -/obj/structure/window/reinforced{ - dir = 1 +/mob/living/simple_mob/humanoid/merc/ranged/poi{ + faction = "wolfgirl" }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/machinery/door/firedoor/glass, -/turf/simulated/floor/plating, -/area/tether_away/guttersite/docking) +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) "gt" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, @@ -2969,7 +2992,9 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "gH" = ( -/obj/machinery/door/airlock/glass_external, +/obj/machinery/door/airlock/glass_external{ + req_one_access = list() + }, /obj/machinery/atmospherics/pipe/simple/hidden{ dir = 4 }, @@ -3048,11 +3073,19 @@ "gQ" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, -/obj/structure/window/reinforced, /obj/structure/window/reinforced{ - dir = 8 + dir = 1 }, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/obj/structure/window/reinforced, /turf/simulated/floor/plating, /area/tether_away/guttersite/docking) "gR" = ( @@ -3113,9 +3146,8 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "gY" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4; - icon_state = "map_vent_out" +/obj/machinery/light{ + dir = 8 }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) @@ -3204,18 +3236,23 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hi" = ( -/turf/simulated/wall/skipjack, -/area/tether_away/guttersite/docking) -"hj" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_northeast_lock"; - locked = 0; - req_access = list(150) +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4; + icon_state = "intact-scrubbers" }, -/turf/simulated/shuttle/plating, -/area/tether_away/guttersite/docking) +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + icon_state = "intact-supply" + }, +/obj/structure/bed/chair/office/dark{ + dir = 4; + icon_state = "officechair_dark" + }, +/mob/living/simple_mob/humanoid/merc/ranged/laser{ + faction = "wolfgirl" + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) "hk" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 4; @@ -3264,19 +3301,31 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "ho" = ( -/obj/machinery/airlock_sensor{ - frequency = 1331; - id_tag = "vox_east_sensor"; - pixel_x = -25 +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 }, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/plating, /area/tether_away/guttersite/docking) "hp" = ( -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - frequency = 1331; - id_tag = "vox_east_vent" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/turf/simulated/shuttle/plating, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hq" = ( /obj/machinery/alarm{ @@ -3297,12 +3346,21 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "hs" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/hidden{ - dir = 4; - icon_state = "map" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/turf/simulated/shuttle/plating, +/obj/structure/sign/securearea{ + desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; + icon_state = "space"; + layer = 4; + name = "EXTERNAL AIRLOCK"; + pixel_x = 0 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "ht" = ( /obj/machinery/atmospherics/pipe/simple/visible/blue{ @@ -3320,15 +3378,11 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hv" = ( -/obj/machinery/door/airlock/hatch{ - frequency = 1331; - icon_state = "door_closed"; - id_tag = "vox_southeast_lock"; - locked = 0; - req_access = list(150) +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "hw" = ( /obj/structure/table/rack/steel, @@ -3600,14 +3654,18 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, /turf/simulated/floor/plating, -/area/tether_away/guttersite/bridge) +/area/tether_away/guttersite/commons) "ia" = ( /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, /turf/simulated/floor/plating, -/area/tether_away/guttersite/walkway) +/area/tether_away/guttersite/medbay) "ib" = ( /obj/machinery/vending/cola/soft, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -3616,30 +3674,19 @@ /obj/structure/grille, /obj/structure/window/reinforced/full, /obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/simulated/floor/plating, /area/tether_away/guttersite/medbay) "id" = ( -/obj/machinery/door/airlock/glass_external, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1380; - master_tag = "dock_d2a2"; - name = "exterior access button"; - pixel_x = -5; - pixel_y = -26; - req_one_access = list() - }, -/obj/effect/map_helper/airlock/door/ext_door, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/docking) -"ie" = ( /obj/effect/floor_decal/industrial/warning{ dir = 8 }, /obj/machinery/access_button{ command = "cycle_interior"; frequency = 1380; - master_tag = "dock_d2a2"; + master_tag = "guttersite_sshuttle"; name = "interior access button"; pixel_x = -28; pixel_y = 26; @@ -3650,6 +3697,15 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) +"ie" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/walkway) "if" = ( /obj/random/mob/mouse, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -3846,13 +3902,16 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/office) "iI" = ( -/obj/structure/bed/chair/bay/comfy/black{ - dir = 4; - icon_state = "bay_comfychair_preview" +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -25 }, -/mob/living/simple_mob/vore/catgirl, -/turf/simulated/floor/tiled/eris/white/techfloor_grid, -/area/tether_away/guttersite/office) +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/vault) "iJ" = ( /mob/living/simple_mob/vore/aggressive/mimic, /turf/simulated/mineral/floor/vacuum, @@ -3863,14 +3922,14 @@ d2 = 8; icon_state = "4-8" }, -/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi, +/mob/living/simple_mob/humanoid/merc/ranged/grenadier, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "iL" = ( -/obj/structure/table/rack, -/obj/item/weapon/tank/oxygen, -/obj/random/multiple/voidsuit, -/turf/simulated/shuttle/plating, +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iM" = ( /obj/machinery/power/apc{ @@ -3893,43 +3952,33 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) "iO" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1331; - master_tag = "vox_east_control"; - req_access = list() +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 }, -/turf/simulated/wall/skipjack, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iP" = ( -/obj/machinery/embedded_controller/radio/airlock/airlock_controller{ - frequency = 1331; - id_tag = "guttersite_lshuttle"; - pixel_x = -24; - req_access = list(); - tag_airpump = "vox_east_vent"; - tag_chamber_sensor = "vox_east_sensor"; - tag_exterior_door = "vox_northeast_lock"; - tag_interior_door = "vox_southeast_lock" +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 8; + icon_state = "rwindow" }, -/obj/machinery/atmospherics/unary/vent_pump/high_volume{ - dir = 4; - frequency = 1331; - id_tag = "vox_east_vent" - }, -/obj/machinery/light/small, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iQ" = ( -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1331; - master_tag = "vox_east_control"; - pixel_x = 22; - req_access = list() +/obj/machinery/embedded_controller/radio/airlock/docking_port{ + frequency = 1276; + id_tag = "guttersite_lshuttle"; + name = "Airlock controller"; + pixel_x = -25; + pixel_y = 0 }, -/obj/machinery/atmospherics/pipe/simple/hidden, -/turf/simulated/shuttle/plating, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) "iR" = ( /mob/living/simple_mob/mechanical/hivebot/ranged_damage/basic, @@ -4009,45 +4058,19 @@ /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) "jg" = ( -/mob/living/simple_mob/humanoid/merc/melee/poi{ - desc = "A lone space clown, taking on the world."; - icon = 'icons/mob/clowns_vr.dmi'; - icon_dead = "cluwne_dead"; - icon_gib = "clown_gib"; - icon_living = "cluwne"; - icon_state = "cluwne"; - name = "Green Clown" - }, +/obj/item/trash/liquidfood, +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) -"jh" = ( -/obj/structure/bed/chair/office/dark{ - dir = 8; - icon_state = "officechair_dark" - }, -/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/poi{ - faction = "wolfgirl" - }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/security) "ji" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4; - icon_state = "intact-scrubbers" +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 10; + icon_state = "intact" }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4; - icon_state = "intact-supply" - }, -/obj/structure/bed/chair/office/dark{ - dir = 4; - icon_state = "officechair_dark" - }, -/mob/living/simple_mob/humanoid/merc/ranged/technician/poi{ - faction = "wolfgirl" - }, -/turf/simulated/floor/tiled/eris/dark/gray_perforated, -/area/tether_away/guttersite/security) +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "jj" = ( /obj/random/curseditem, /turf/simulated/mineral/floor/vacuum, @@ -4201,6 +4224,11 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/docking) +"jG" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "jH" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 1 @@ -4350,6 +4378,14 @@ }, /turf/simulated/wall/r_wall, /area/tether_away/guttersite/security) +"jZ" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/red{ + dir = 6; + icon_state = "intact" + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "ka" = ( /obj/structure/bed/chair/bay/comfy/black{ dir = 4; @@ -4936,6 +4972,13 @@ /obj/machinery/atmospherics/unary/vent_scrubber/on, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"lE" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/red{ + dir = 4; + icon_state = "map" + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "lF" = ( /obj/machinery/light, /turf/simulated/floor/tiled/eris/dark/gray_perforated, @@ -4954,6 +4997,12 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/security) +"lI" = ( +/obj/machinery/atmospherics/pipe/manifold/visible/blue{ + dir = 8 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "lJ" = ( /obj/item/weapon/storage/toolbox/electrical{ pixel_x = 1; @@ -5022,6 +5071,167 @@ /obj/item/clothing/suit/storage/hooded/techpriest, /turf/simulated/mineral/floor/vacuum, /area/tether_away/guttersite/unexplored) +"lX" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/visible/blue{ + dir = 10 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"lY" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"lZ" = ( +/obj/machinery/light, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"ma" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mc" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"md" = ( +/obj/structure/outcrop/phoron, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/teleporter) +"me" = ( +/obj/structure/cable, +/obj/machinery/power/port_gen/pacman, +/turf/simulated/floor/airless, +/area/tether_away/guttersite/teleporter) +"mf" = ( +/obj/item/stack/material/phoron, +/obj/item/stack/material/phoron, +/turf/simulated/floor/airless, +/area/tether_away/guttersite/teleporter) +"mg" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mh" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/walkway) +"mi" = ( +/obj/machinery/atmospherics/binary/pump/on, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mj" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 1; + target_pressure = 200 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mk" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/office) +"ml" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/office) +"mm" = ( +/obj/structure/table/rack, +/obj/item/weapon/tank/oxygen, +/obj/random/multiple/voidsuit, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mn" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 448; + master_tag = "guttersite_northlock"; + name = "interior access button"; + pixel_x = -28; + pixel_y = 26; + req_one_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/office) +"mo" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/yellow, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mp" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/blue, +/obj/machinery/portable_atmospherics/canister/empty, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mq" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"mr" = ( +/obj/machinery/atmospherics/portables_connector{ + dir = 1 + }, +/obj/effect/floor_decal/industrial/outline/red, +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) +"ms" = ( +/obj/structure/table/steel, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/atmos) +"mt" = ( +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -25 + }, +/turf/simulated/floor/plating/eris/under, +/area/tether_away/guttersite/atmos) "mu" = ( /obj/structure/window/basic{ dir = 4; @@ -5030,11 +5240,164 @@ /obj/structure/table/darkglass, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mv" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/bridge) "mw" = ( /obj/structure/table/darkglass, /obj/item/device/flashlight/lamp/green, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mx" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/bridge) +"my" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mz" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mA" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + health = 1e+006 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mB" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mC" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mD" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mE" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mF" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/wall/r_wall, +/area/tether_away/guttersite/docking) +"mG" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced/full, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/tether_away/guttersite/docking) +"mI" = ( +/obj/machinery/atmospherics/unary/vent_pump/high_volume{ + dir = 4; + frequency = 1276; + id_tag = "guttersite_lshuttle_pump" + }, +/obj/machinery/airlock_sensor{ + frequency = 1276; + id_tag = "guttersite_lshuttle_sensor"; + pixel_x = 0; + pixel_y = -25 + }, +/obj/effect/map_helper/airlock/sensor/chamber_sensor, +/obj/effect/map_helper/airlock/atmos/chamber_pump, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10; + icon_state = "intact" + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mK" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list(15) + }, +/obj/effect/map_helper/airlock/door/int_door, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mL" = ( +/obj/structure/table/rack, +/obj/item/weapon/tank/oxygen, +/obj/random/multiple/voidsuit, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) "mM" = ( /obj/structure/table/darkglass, /obj/item/weapon/pen/blue, @@ -5056,6 +5419,42 @@ /obj/item/weapon/paper_bin, /turf/simulated/floor/tiled/eris/white/monofloor, /area/tether_away/guttersite/office) +"mP" = ( +/obj/machinery/access_button{ + command = "cycle_interior"; + frequency = 1276; + master_tag = "guttersite_lshuttle"; + name = "interior access button"; + pixel_x = -28; + pixel_y = 26; + req_one_access = list() + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mQ" = ( +/obj/structure/grille, +/obj/machinery/door/firedoor/glass, +/obj/structure/window/reinforced/full, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mR" = ( +/obj/machinery/door/airlock/glass_external{ + req_one_access = list() + }, +/obj/effect/map_helper/airlock/door/ext_door, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/docking) +"mS" = ( +/obj/structure/flora/pumpkin/carved/owo, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) "mT" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 10; @@ -5067,6 +5466,48 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"mU" = ( +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mV" = ( +/obj/item/device/radio/headset/nanotrasen/alt{ + desc = "The headset of am Eltorro employee."; + name = "Weird Headset" + }, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mW" = ( +/obj/item/weapon/reagent_containers/food/drinks/cans/cola, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mX" = ( +/obj/item/weapon/gun/projectile/shotgun/doublebarrel/sawn, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mY" = ( +/obj/item/weapon/material/twohanded/baseballbat/metal, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"mZ" = ( +/obj/item/weapon/light/bulb, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"na" = ( +/obj/item/clothing/mask/gas/wwii, +/turf/simulated/floor/carpet/gaycarpet, +/area/tether_away/guttersite/unexplored) +"nb" = ( +/obj/machinery/floodlight, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nc" = ( +/obj/effect/landmark/corpse/syndicatecommando, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nd" = ( +/obj/effect/landmark/corpse/syndicatesoldier, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) "ne" = ( /obj/machinery/atmospherics/pipe/simple/hidden/supply{ dir = 9; @@ -5083,6 +5524,98 @@ /obj/random/janusmodule, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/vault) +"ng" = ( +/obj/effect/landmark/corpse/engineer/rig, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nh" = ( +/obj/item/mecha_parts/mecha_equipment/tool/drill, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"ni" = ( +/obj/structure/loot_pile/mecha/ripley, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nj" = ( +/obj/structure/closet/secure_closet/freezer/fridge, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nk" = ( +/obj/item/clothing/head/helmet/space/syndicate/black, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nl" = ( +/obj/structure/bonfire, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nm" = ( +/obj/item/clothing/suit/space/syndicate/black, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nn" = ( +/obj/item/weapon/tank/air, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"no" = ( +/obj/item/weapon/bedsheet/pirate, +/obj/structure/bed, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"np" = ( +/obj/structure/trash_pile, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nq" = ( +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, +/obj/item/trash/candy, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nr" = ( +/obj/item/trash/liquidfood, +/obj/item/trash/liquidprotein, +/obj/item/trash/cheesie, +/obj/item/trash/candy, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"ns" = ( +/obj/item/trash/liquidprotein, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nt" = ( +/obj/structure/signpost, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nu" = ( +/obj/random/outcrop, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nv" = ( +/mob/living/simple_mob/mechanical/hivebot/tank/armored, +/turf/simulated/mineral/floor/vacuum, +/area/tether_away/guttersite/unexplored) +"nw" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) +"nx" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4; + icon_state = "map_vent_out" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/tiled/eris/dark/gray_perforated, +/area/tether_away/guttersite/security) +"ny" = ( +/mob/living/simple_mob/vore/catgirl{ + name = "Blaire" + }, +/turf/simulated/floor/tiled/eris/steel/bar_light, +/area/tether_away/guttersite/commons) "Ob" = ( /obj/structure/cable/cyan{ d1 = 1; @@ -5091,6 +5624,34 @@ }, /turf/simulated/floor/tiled/eris/dark/gray_perforated, /area/tether_away/guttersite/maint) +"QN" = ( +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) +"Uv" = ( +/obj/machinery/access_button{ + command = "cycle_exterior"; + frequency = 1276; + master_tag = "guttersite_lshuttle"; + name = "exterior access button"; + pixel_x = 26; + pixel_y = -26; + req_one_access = list() + }, +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) +"Yg" = ( +/obj/machinery/access_button{ + command = "cycle_exterior"; + frequency = 1380; + master_tag = "guttersite_sshuttle"; + name = "exterior access button"; + pixel_x = -5; + pixel_y = -26; + req_one_access = list(); + step_x = 0 + }, +/turf/simulated/floor/plating/eris/under/airless, +/area/tether_away/guttersite/docking) (1,1,1) = {" aa @@ -5697,17 +6258,17 @@ aa aa aa aa +ag +ag +ag +ag aa aa aa aa aa -aa -aa -aa -aa -aa -aa +ag +ag aa aa aa @@ -5839,6 +6400,19 @@ aa aa aa aa +ag +ag +ag +ag +aa +aa +aa +aa +aa +ag +ag +ag +ag aa aa aa @@ -5859,21 +6433,8 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +nu +nu aa aa aa @@ -5981,6 +6542,20 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +ag +ag +ag +ag +ag aa aa aa @@ -6000,23 +6575,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +nu aa aa aa @@ -6123,6 +6684,30 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +ad +ad +ad +ad +ag +ag +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag aa aa aa @@ -6132,34 +6717,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +ag +ag aa aa aa @@ -6259,6 +6820,36 @@ ad ad ag ad +ad +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +nu +ag +aa +aa +aa +aa +aa +aa +aa +ag +ag +ag aa aa aa @@ -6269,6 +6860,9 @@ aa aa aa aa +ag +ag +ag aa aa aa @@ -6279,44 +6873,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag aa aa aa @@ -6400,6 +6961,8 @@ aa ad ad ad +ad +ad aa aa aa @@ -6413,6 +6976,35 @@ aa aa aa aa +ad +ad +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ag +ag +nu +ad +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ag +ag aa aa aa @@ -6424,41 +7016,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ag +ag aa aa aa @@ -6534,7 +7095,7 @@ ag ag ag ad -ad +nu ag aa aa @@ -6560,6 +7121,32 @@ aa aa aa aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ag +nu +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad aa aa aa @@ -6572,6 +7159,9 @@ aa aa aa aa +ad +ad +ad aa aa aa @@ -6583,38 +7173,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag aa aa aa @@ -6702,6 +7263,21 @@ aa aa aa aa +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad aa aa aa @@ -6726,37 +7302,22 @@ aa aa aa aa +ad +ad aa aa aa aa aa aa +ad +ad aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ag aa aa aa @@ -6809,7 +7370,7 @@ aa aa aa aa -ag +ad ag ag aa @@ -6856,6 +7417,9 @@ aa aa aa aa +ad +ad +ag aa aa aa @@ -6888,17 +7452,14 @@ aa aa aa aa +ad +ad aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad aa aa aa @@ -6959,7 +7520,47 @@ aa aa ad ad -ag +ad +ad +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad ag aa aa @@ -6993,56 +7594,16 @@ aa aa aa aa +nu +ad +ag aa aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag aa aa aa @@ -7101,6 +7662,7 @@ aa aa aa ad +ad aa aa aa @@ -7133,9 +7695,15 @@ aa aa aa aa +ad +ad +ad aa aa aa +ad +ad +ad aa aa aa @@ -7168,23 +7736,16 @@ aa aa aa aa +ag +ag +ag +ag aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag aa aa aa @@ -7264,6 +7825,21 @@ aa aa aa aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad aa aa aa @@ -7282,6 +7858,10 @@ aa aa aa aa +ad +ag +ag +ag aa aa aa @@ -7298,29 +7878,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag aa aa aa @@ -7406,6 +7967,21 @@ aa aa aa aa +ag +ag +ag +ad +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ad aa aa aa @@ -7424,26 +8000,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ag +ag +ag aa aa aa @@ -7548,6 +8109,22 @@ aa aa aa aa +ag +ag +ag +ag +ad +aa +aa +aa +aa +aa +ad +ad +ad +ad +ag +ag aa aa aa @@ -7565,27 +8142,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ag +ag aa aa aa @@ -7700,6 +8261,33 @@ aa aa aa aa +ad +ad +ad +ad +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +ad +ad +ad aa aa aa @@ -7726,34 +8314,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag aa aa aa @@ -7842,6 +8403,45 @@ aa aa aa aa +ad +ad +ag +ag +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ag aa aa aa @@ -7854,46 +8454,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad aa aa aa @@ -7949,7 +8510,7 @@ ag ag ag ad -aa +ad aa aa aa @@ -7985,6 +8546,24 @@ aa aa aa aa +ag +ag +ag +ag +aa +aa +aa +aa +aa +aa +aa +aa +aa +ad +ad +ad +ag +ag aa aa aa @@ -8000,29 +8579,11 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ad +ad +ag +ag aa aa aa @@ -8091,8 +8652,8 @@ ag ag lM ad -aa -aa +ad +ad aa aa aa @@ -8140,6 +8701,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8155,15 +8721,10 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +nu +ad +ag aa aa aa @@ -8232,7 +8793,7 @@ aa ad ad ad -aa +ad aa aa aa @@ -8282,6 +8843,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8297,14 +8863,9 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa +ad +ag +ad aa aa aa @@ -8423,6 +8984,11 @@ aa aa aa aa +ad +ad +ad +ag +ag aa aa aa @@ -8441,12 +9007,7 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa +ad aa aa aa @@ -8564,11 +9125,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ad +ad +ad +nu +ag aa aa aa @@ -8706,11 +9267,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +ad +ad +ag +ag +ag aa aa aa @@ -8804,7 +9365,7 @@ aa aa aa aa -aa +ad ad aa aa @@ -8850,8 +9411,8 @@ aa aa aa aa -aa -aa +ag +ag aa aa aa @@ -8885,7 +9446,7 @@ ag ag ag ag -ad +nu ad ad ad @@ -8946,7 +9507,7 @@ aa aa aa aa -aa +ad ag ag ag @@ -9026,7 +9587,7 @@ ag ag ag ag -ad +nu ad ad ad @@ -9088,7 +9649,7 @@ aa aa aa aa -aa +ad lM ag ag @@ -9160,7 +9721,7 @@ aa ag jl ad -ad +nu ag ag ag @@ -9230,7 +9791,7 @@ aa aa aa aa -aa +ad ad ag ag @@ -9320,7 +9881,7 @@ ad ad ad aL -ad +nu ag ag ag @@ -9597,7 +10158,7 @@ ag ad fX gh -go +gp aL ag ag @@ -9869,7 +10430,7 @@ aa ad ad ad -ad +nu ag ag ad @@ -10011,8 +10572,8 @@ aa ad ad ad -ad -ad +nu +nu ag ag ag @@ -10020,7 +10581,7 @@ ag fu fu jJ -fw +gY ga gk gq @@ -10154,8 +10715,8 @@ ad ad ad ad -ad -ad +nu +nu ag ag fu @@ -10253,7 +10814,7 @@ aB ag hd jk -jg +ad aA ad ad @@ -10297,9 +10858,9 @@ ad ad ad ad -ad -ad -ad +nu +ag +ag fu fz fD @@ -10407,8 +10968,8 @@ ag ag ad ad -aa -aa +ad +ad aa aa aa @@ -10439,9 +11000,9 @@ ad ad ad ad -ad -ad -ad +nu +nu +ag fu fz fE @@ -10518,7 +11079,7 @@ aa aa aa aa -aa +ad ac ac ac @@ -10582,8 +11143,8 @@ ad ad ad ad -ad -ad +nu +ag fu lG fF @@ -10593,7 +11154,7 @@ gd gd gd gz -fw +gX fu fw gX @@ -10653,13 +11214,13 @@ aa aa aa aa +ad +ad aa aa aa aa -aa -aa -aa +ad ac ac ac @@ -10724,8 +11285,8 @@ ad ad ad ad -ad -ad +nu +ag fu fA fG @@ -10733,7 +11294,7 @@ jX fw hU ge -jh +gs gz fw fu @@ -10794,13 +11355,13 @@ aa aa aa aa +ag +ad +ad aa aa aa -aa -aa -aa -aa +ad ab ab ab @@ -10815,10 +11376,10 @@ by bF bP cu +ms +ms aT ag -ag -ag ad ad ad @@ -10866,8 +11427,8 @@ ad ad ad ad -ad -ad +nu +ag fu fB fH @@ -10883,7 +11444,7 @@ fx if fw jp -fw +gY fu fu ag @@ -10936,13 +11497,13 @@ aa aa aa aa +ag +ag +ad aa aa aa -aa -aa -aa -aa +ad ac ac lS @@ -10956,11 +11517,11 @@ bq bI cc bq -cv +bq +bq +bq aT ag -ag -ag ad ad ad @@ -11079,12 +11640,12 @@ aa aa aa aa +ag +ag aa aa aa -aa -aa -aa +ad ac ac lS @@ -11098,12 +11659,12 @@ bq bJ bJ bq -cw +bq +bq +mt aT ag ag -ag -ag az ag ag @@ -11222,7 +11783,7 @@ aa aa aa aa -aa +ag aa aa aa @@ -11237,15 +11798,15 @@ cA aR bh bq -bK -cd +br +bM +bq +bq +bq bq -bh aT ag ag -ag -ag ad ag ag @@ -11382,12 +11943,12 @@ bq bL ce bq -cx +bq +bq +bq aT ag ag -ag -ag ad ad ad @@ -11520,11 +12081,13 @@ aB cA aQ bi -br -bM -cf -cm -cy +bq +bs +bN +bq +bq +bq +bq aT ag ag @@ -11533,8 +12096,6 @@ ag ag ag ag -ag -ag cF cF cF @@ -11662,11 +12223,13 @@ aB cA aQ bh -bs -bN +bq +br +cd cg -cn -bh +cx +bq +bq aT ag ag @@ -11674,8 +12237,6 @@ ag ag ag ag -ag -ag cF cF dh @@ -11804,19 +12365,19 @@ aB cA aQ bh -bh -bh -bh -bh -bh +bq +bK +cf +cm +bM +bq +bq aT ag ag ag ag ag -ag -ag cF cF dh @@ -11868,7 +12429,7 @@ fw kE gD fw -fw +gX fu gC fu @@ -11949,12 +12510,12 @@ aT aT aT aT +br +bM +bq +bq aT aT -aT -ag -ag -ag ag ag ag @@ -11976,14 +12537,14 @@ dn dn dn dn -ia -ia -ia -ia -ia -ia -ia -ia +mh +mh +mh +mh +mh +mh +mh +mh dn ib ee @@ -11991,13 +12552,13 @@ fp ee ee dn -ia -ia -ia -ia -ia -ia -ia +mh +mh +mh +mh +mh +mh +mh dn dn dn @@ -12012,11 +12573,11 @@ fw fw gn fu -ji +hi fw gm fw -gY +nx fw fw gP @@ -12090,13 +12651,13 @@ cE cE cE cV -aP -ag -ag -ag -ag -ag -ag +aQ +cn +bM +bq +jZ +mo +aT ag ag ag @@ -12232,13 +12793,13 @@ aE aE aE cA -aP -ag -ag -ag -ag -ag -ag +aQ +br +cy +mi +lE +mp +aT ag ag cF @@ -12257,17 +12818,17 @@ jD cF dn dn -ia -ia -ia -ia +ie +ie +ie +ie dn -ia -ia -ia -ia -ia -ia +ie +ie +ie +ie +ie +ie dn ef ep @@ -12275,13 +12836,13 @@ fv eI ee dn -ia -ia -ia -ia -ia -ia -ia +ie +ie +ie +ie +ie +ie +ie dn dn dn @@ -12374,19 +12935,19 @@ aB aB aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bM +bq +jZ +mo +aT ag cF cF cZ jv -cZ +ny dh dW jD @@ -12516,13 +13077,13 @@ ac ac aB cW -aB -ag -ag -ag -ag -ag -ag +aT +br +cy +mi +lE +mp +aT ag cF cU @@ -12658,13 +13219,13 @@ ac ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bM +bq +jZ +mo +aT cF cF db @@ -12696,9 +13257,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -12800,13 +13361,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +ji +mi +lE +mp +aT cF cF cF @@ -12838,9 +13399,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -12872,7 +13433,7 @@ fw gP jx fw -fw +gX fu ag ag @@ -12942,13 +13503,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cv +jG +mj +lI +mq +aT cF jL jP @@ -12980,9 +13541,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -13084,13 +13645,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bq +bq +lX +mr +aT cF cI cH @@ -13146,7 +13707,7 @@ aa aa aa fu -fw +nw fw jx gP @@ -13226,13 +13787,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cv +jG +mj +lI +mq +aT cF jM jQ @@ -13368,13 +13929,13 @@ ab ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +br +bq +bq +lX +mr +aT cF cF cF @@ -13404,7 +13965,7 @@ aa aa aa aa -hZ +mv ih eg fK @@ -13510,13 +14071,13 @@ ac ac aB cA -aB -ag -ag -ag -ag -ag -ag +aT +cw +jG +mj +lI +mq +aT dk dk dk @@ -13546,7 +14107,7 @@ aa aa aa aa -hZ +mv iX eg fN @@ -13578,9 +14139,9 @@ ag ag ag bb -ag -ag -ag +cs +cs +cs ag ag ag @@ -13652,13 +14213,13 @@ ac ac aB cW -aB -ag -ag -ag -ag -ag -ag +aT +bq +bq +bq +lX +mr +aT cF cF cF @@ -13688,7 +14249,7 @@ aa aa aa aa -hZ +mv lw eg fK @@ -13696,7 +14257,7 @@ eg fK eg kw -hZ +mx aa aa aa @@ -13719,13 +14280,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -13797,10 +14358,10 @@ cX ax ax ax -ag -ag -ag -ag +aT +aT +aT +aT cF jN jR @@ -13838,7 +14399,7 @@ eL fK ja eg -hZ +mx aa aa aa @@ -13861,13 +14422,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -13972,7 +14533,7 @@ aa aa aa aa -hZ +mv iY eg fP @@ -13980,7 +14541,7 @@ eg fK jb eg -hZ +mx aa aa aa @@ -14003,13 +14564,13 @@ aa ag ag ag +ag +ag +ag cs ag ag ag -ag -ag -ag ad ag ag @@ -14145,12 +14706,12 @@ aa aa ag ag -cs -cs -cs ag ag ag +cs +cs +ag ag ig ag @@ -14289,9 +14850,9 @@ ag ag ag ag -jz ag ag +cs ag ag ag @@ -14379,32 +14940,32 @@ kN ev kA lu -df -aa -aa -aa -aa -aa -aa -aa -aa -aa -de -de -de -de -de -de -aa -aa -aa -aa -aa -aa -aa hZ +aa +aa +aa +aa +aa +aa +aa +aa +aa +de +de +de +de +de +de +aa +aa +aa +aa +aa +aa +aa +mv fK -hZ +mx aa aa aa @@ -14431,9 +14992,9 @@ aa ag ag ag -cs ag ag +jz ag ag ag @@ -14521,7 +15082,7 @@ kO ew cH cH -df +hZ aa aa aa @@ -14544,9 +15105,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -14663,32 +15224,32 @@ cH eo cH cH -df -aa -aa -aa -aa -aa -aa -aa -aa -de -de -dp -dD -dp -dD -dp -de -aa -aa -aa -aa -aa -aa hZ +aa +aa +aa +aa +aa +aa +aa +aa +de +de +dp +dD +dp +dD +dp +de +aa +aa +aa +aa +aa +aa +mv fK -hZ +mx aa aa aa @@ -14828,9 +15389,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -14947,7 +15508,7 @@ cH cH cH cH -df +hZ aa aa aa @@ -14970,9 +15531,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15090,14 +15651,14 @@ cH cH cH de -ic -ic -ic -ic -ic -ic -ic -ic +ia +ia +ia +ia +ia +ia +ia +ia de dp dp @@ -15112,9 +15673,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15254,9 +15815,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15396,9 +15957,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15513,8 +16074,8 @@ cH cH cH df -df -df +dO +go aa aa aa @@ -15538,9 +16099,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15654,7 +16215,7 @@ kA cR cH df -df +go aa aa aa @@ -15680,9 +16241,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -15794,8 +16355,8 @@ cF cF cF cF -df -df +dO +go aa aa aa @@ -15824,7 +16385,7 @@ aa aa eb hc -hZ +mx aa aa aa @@ -15964,9 +16525,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16106,9 +16667,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16248,9 +16809,9 @@ aa aa aa aa -hZ +mv fK -hZ +mx aa aa aa @@ -16390,9 +16951,9 @@ ab ab ab ab -hZ +mv fK -hZ +mx aa aa aa @@ -16532,7 +17093,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17242,7 +17803,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17384,7 +17945,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17526,7 +18087,7 @@ ab ab ab ab -hZ +mv fK eb ac @@ -17630,10 +18191,10 @@ aa aa aa aa +ad +ad ag ag -ag -aa aa aa aa @@ -17664,10 +18225,10 @@ ab ab ab dN -dO -dO +ml +ml dN -dO +ml dN hk dN @@ -17772,10 +18333,10 @@ aa aa aa aa -ag -ag +ad +ad lQ -aa +ag aa aa aa @@ -17803,8 +18364,8 @@ aa ab ab dN -dO -dO +ml +ml dN kv dR @@ -17944,7 +18505,7 @@ aa ab ab ab -dO +mk dR iF dV @@ -17976,7 +18537,7 @@ eE eE eE eE -eE +hS eE eE eE @@ -18086,7 +18647,7 @@ aa ab ab ab -dO +mk dR iG dR @@ -18118,7 +18679,7 @@ eE eE eE eE -hS +eE eE eE eE @@ -18228,7 +18789,7 @@ ab ab ab ab -dO +mk dR iH dR @@ -18259,9 +18820,9 @@ eE eE eE eE -eE -eE -eE +gQ +Yg +ho eE eE eE @@ -18370,7 +18931,7 @@ ab ab ab ab -dO +mk dR dR dR @@ -18401,9 +18962,9 @@ eE eE eE eE -gs -id -gQ +gt +mR +gR eE eE eE @@ -18512,7 +19073,7 @@ ab ab ab ab -dO +mk dR iF dR @@ -18654,7 +19215,7 @@ ab ab ab ab -dO +mk dR iG dR @@ -18671,35 +19232,35 @@ fq fq fq fq -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu +my +my +my +my +my +my +my +my +my +my +my +my +my +my gu gH gu -gu -gu -gu -gu -gu -gu +my +my +my +my +my +my fq -gu -gu -gu -gu -gu +my +my +my +my +my fq eE eE @@ -18792,29 +19353,29 @@ aa ab ab ab -dv -dv -dv -dv -dv +dw +dH +dH +dH +dA dS iH dR ec fb ik -iI +fn ik hY dR dR fo fr +lY fr fr fr -fr -fr +ma fr fr fr @@ -18828,7 +19389,7 @@ fr fr fr gv -ie +id gS fr fr @@ -18839,7 +19400,7 @@ fr hq fr fr -fr +lY fr hQ fq @@ -18934,11 +19495,11 @@ aa ab ab ab -dw -dA -dH -dv +dx +dI dP +dA +mm dR dR dR @@ -18956,7 +19517,7 @@ jF jF jF jF -jF +kH jF jF jF @@ -18984,7 +19545,7 @@ hh hF hN fr -gu +mG eE eE eE @@ -19075,12 +19636,12 @@ aa ab ab ab -ab -dx -dB -dI -dK +dv +dA +dR dQ +mg +mn dT dT dT @@ -19098,7 +19659,7 @@ fr ft fr fr -fr +gx fr fr fr @@ -19126,7 +19687,7 @@ fr hG hO fr -gu +mG eE eE eE @@ -19218,11 +19779,11 @@ ab ab ab ab -dv -dv -dv -dv -dv +dB +dK +dK +dK +dA dR dR dR @@ -19240,35 +19801,35 @@ fq fq fq fq -gu -gu -gu -gu -gu +mz +mz +mz +mz +mz fq -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu -gu +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz +mz fq -gu -gu -gu -gu +mz +mz +mz +mz gu hG hO fr -gu +mG eE eE eE @@ -19324,7 +19885,7 @@ aa af ae aa -ae +md ai aa aa @@ -19364,7 +19925,7 @@ ab ab ab ab -dO +mk ip dR dR @@ -19377,11 +19938,11 @@ hV dR dR dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19406,11 +19967,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19464,9 +20025,9 @@ aa aa ai ai +md ae -ae -ae +md ai ai ae @@ -19506,7 +20067,7 @@ ab ab ab ab -dO +mk iC dR dR @@ -19519,11 +20080,11 @@ hV dR dF dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19548,11 +20109,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19648,7 +20209,7 @@ ab ab ab ab -dO +mk iD dR ci @@ -19661,11 +20222,11 @@ is dR dN dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -19690,11 +20251,11 @@ eE eE eE eE -gu -hG -hO -fr -gu +mC +mb +mc +hR +mG eE eE eE @@ -19744,13 +20305,13 @@ aa aa aa aa -ae -ae +ah +ah ah ah at ap -ap +ar ah ah ae @@ -19780,16 +20341,16 @@ aa aa aa aa -aa +ad ab ab ab -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag dN iE dU @@ -19802,12 +20363,12 @@ ci it dR dN -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag eE eE eE @@ -19832,11 +20393,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -19886,9 +20447,9 @@ aa aa aa aa -ae -ah ah +ap +ap ao ba ap @@ -19922,16 +20483,16 @@ aa aa aa aa -aa +ad ab -ac -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag +ag dN dN dN @@ -19944,12 +20505,12 @@ fS ne lx dN -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag eE eE eE @@ -19974,11 +20535,11 @@ eE eE eE eE -fq +mF hH hO fr -gu +mG eE eE eE @@ -20028,15 +20589,15 @@ aa aa aa aa -ae ah +ap al ap ap ap ap ap -ap +me ah ae ai @@ -20064,19 +20625,19 @@ aa aa aa aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag dN dN dN @@ -20086,11 +20647,11 @@ fT dN dN dN -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag eE eE eE @@ -20116,11 +20677,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20170,8 +20731,8 @@ aa aa aa aa -ae ah +ap am aq ap @@ -20206,33 +20767,33 @@ aa aa aa aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ed gw ed -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -20258,11 +20819,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20312,15 +20873,15 @@ aa aa aa aa -ae ah +ap an ap eZ ai ai ai -ap +mf ah ae ai @@ -20348,33 +20909,33 @@ aa aa aa aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +nb +ad +nt +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag ed gw ed -ac -ac -ac -ac -ac -ac -ac +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -20400,11 +20961,11 @@ eE eE eE eE -gu +mC hG hO fr -gu +mG eE eE eE @@ -20454,13 +21015,13 @@ aa aa aa aa -ae ah -ah -ar ap ap -ae +ap +ap +ap +ap lJ ah ah @@ -20489,21 +21050,21 @@ aa aa aa aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ad +ag +ag +ad +ad +ad +ad +ag +ag +ag +ag +ag +ag +ag ed ed ed @@ -20513,10 +21074,10 @@ ed ed ed ed -ac -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20540,13 +21101,13 @@ eE eE eE eE -gu -gu +mB +mE gu hG hO fr -gu +mG eE eE eE @@ -20596,8 +21157,8 @@ aa aa aa aa -ae -ai +ah +ah ah ah av @@ -20631,21 +21192,21 @@ aa aa aa aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ag +ad +ad +ad +ad +ag +ag +ag +ag +ag +ag +ad ed el iU @@ -20653,11 +21214,12 @@ em gT iw iz -fn +iI ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20681,14 +21243,13 @@ eE eE eE eE -eE -gu +mC lz hx hI hO fr -gu +mG eE eE eE @@ -20773,21 +21334,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ag +ad +ad +ag +ag +az +ag +ag +ag +ag +ag +ad +ad ed eP em @@ -20797,9 +21358,10 @@ ff iB hr ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20823,14 +21385,13 @@ eE eE eE eE -eE -gu +mC fr hy hJ hO fr -gu +mG eE eE eE @@ -20915,21 +21476,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ad +ad +ad +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed gF em @@ -20939,9 +21500,10 @@ nf iK hE ed -ac -ac -ac +ag +ag +ag +ag eE eE eE @@ -20965,14 +21527,13 @@ eE eE eE eE -eE -gu +mC fr hz hJ hO fr -gu +mG eE eE eE @@ -21057,21 +21618,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac +ad +ag +ad +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed lC iA @@ -21081,8 +21642,10 @@ hD iM iN ed -ac -ac +ag +ag +ag +ag eE eE eE @@ -21106,15 +21669,13 @@ eE eE eE eE -eE -eE -gu +mC fr hA hJ hO fr -gu +mG eE eE eE @@ -21199,21 +21760,21 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac +ad +ad +ad +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad ed ed ed @@ -21223,8 +21784,10 @@ ed ed ed ed -ac -ac +ag +ag +ag +ag eE eE eE @@ -21248,15 +21811,13 @@ eE eE eE eE -eE -eE -gu +mC ht hB hJ hO fr -gu +mG eE eE eE @@ -21341,32 +21902,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa +ag +ag +ag +ag +ag +ag +ag +az +ag +ag +ag +ag +ag +ad +ad +nh +ni +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag eE eE eE @@ -21391,14 +21953,13 @@ eE eE eE eE -eE -gu +mC hu hC hJ hO fr -gu +mG eE eE eE @@ -21483,32 +22044,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -ac -ac -ac -ac -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +ad +ag +ag +nb +ad +ad +ad +ag +ag +ag +ag +ag +ag +ad +nk +nm +ag eE eE eE @@ -21533,14 +22095,13 @@ eE eE eE eE -eE -gu -gu +mD +mz gu hJ hO fr -gu +mG eE eE eE @@ -21625,32 +22186,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ac -ac -ac -ac -ac -aa -aa -aa -aa +ag +ag +ag +ad +np +ag +ag +ad +ag +ag +ad +ag +ag +ag +ad +iR +ad +ad +ad +ag +ag +nb +ad +ad +ad +nn +ag eE eE eE @@ -21677,12 +22239,11 @@ eE eE eE eE -eE -gu +mC hJ hO fr -gu +mG eE eE eE @@ -21767,33 +22328,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -eE +ag +ag +ag +nb +nq +ad +ad +ad +ag +ag +ad +ad +ag +ag +ad +ad +ad +ad +ad +ag +ag +ad +nv +ad +nl +ad +ag eE eE eE @@ -21824,7 +22385,7 @@ fq hK hO fr -gu +mG eE eE eE @@ -21909,32 +22470,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +jg +nr +ns +ag +ad +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad +ag +ag +ad +ad +ad +ad +ad +ag eE eE eE @@ -21961,12 +22523,11 @@ eE eE eE eE -eE -gu +mC hJ hO fr -gu +mG eE eE eE @@ -22051,32 +22612,33 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +np +np +np +ag +ad +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ad +ag +ag +nj +ad +ad +ad +no +ag eE eE eE @@ -22103,12 +22665,11 @@ eE eE eE eE -eE -gu +mC hL hP hR -gu +mG eE eE eE @@ -22194,31 +22755,32 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag +ad +az +ad +ad +ad +ag +ad +ag +ag +ag +ag +ag +ag +az +ag +ag eE eE eE @@ -22245,12 +22807,11 @@ eE eE eE eE -eE -gu +mC hJ fr fr -gu +mG eE eE eE @@ -22336,31 +22897,31 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ad +ag +ag +ag +ag +ag +ag +ad +az +ad +ag +ag +ag +ag +ag +ad +ad +ag eE eE eE @@ -22383,16 +22944,16 @@ eE eE eE eE -eE -hi -hi -hi -hi -hi +hp +hs +iP +iP +iP +iL hJ fr fr -gu +mG eE eE eE @@ -22479,30 +23040,30 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ad +ad +ag +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ag +ag eE eE eE @@ -22525,16 +23086,16 @@ eE eE eE eE -eE -hj -ho -iP -hi +Uv +hv +iQ +mI iL +mL hJ fr fr -gu +mG eE eE eE @@ -22621,29 +23182,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ag +ad +ad +nd +ag +ag +ag +ad +ag +ag +ag +ag +ag +ad +ag aa eE eE @@ -22667,16 +23228,16 @@ eE eE eE eE -eE -iO -hp -hs -hv -iQ +QN +iL +fr +mJ +mK +mP hM fr fr -gu +mG eE eE eE @@ -22763,29 +23324,29 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +nc +ad +ad +ag +ag +ad +az +ad +ad +ad +az +ad +ag aa eE eE @@ -22809,16 +23370,16 @@ eE eE eE eE -eE -hi -hi -hi -hi -hi +mA +iO +iO +iO +iO +iL fr fr -fr -gu +lZ +mG eE eE eE @@ -22906,28 +23467,28 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ad +ad +ad +ad +nd +ag +ag +ad +ag +ag +ag +ag +ag +ag +ag aa eE eE @@ -22956,11 +23517,11 @@ eE eE eE eE -fq -gu -gu -gu -gu +mQ +mz +mz +mz +mH eE eE eE @@ -22988,6 +23549,11 @@ eE aa aa aa +ag +ag +ag +ag +ag aa aa aa @@ -23043,31 +23609,26 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ag +cM +ad +ng +ad +ag +ag +ad +ag +ag +ag +ag +ag aa aa aa @@ -23129,6 +23690,13 @@ eE (128,1,1) = {" aa aa +ag +ag +ad +ad +ad +ag +ag aa aa aa @@ -23185,35 +23753,27 @@ aa aa aa aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ag +ad +ag +ag +ag aa aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -eE eE eE eE @@ -23267,9 +23827,19 @@ eE eE eE eE +eE "} (129,1,1) = {" aa +ag +ag +mS +ad +ad +ad +mS +ag +ag aa aa aa @@ -23328,26 +23898,17 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag +ag +ag +az +ag aa aa aa @@ -23412,6 +23973,15 @@ eE "} (130,1,1) = {" aa +ag +ad +ad +mU +mU +mU +ad +ad +ag aa aa aa @@ -23472,22 +24042,13 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag +ag +ag aa aa aa @@ -23554,15 +24115,15 @@ eE "} (131,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mU +mW +mU +mU +ad +ag aa aa aa @@ -23696,15 +24257,15 @@ eE "} (132,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mZ +mX +mU +mU +ad +ag aa aa aa @@ -23838,15 +24399,15 @@ eE "} (133,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +na +mU +mU +mU +ad +ag aa aa aa @@ -23980,15 +24541,15 @@ eE "} (134,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mV +mY +mU +mU +ad +ag aa aa aa @@ -24122,15 +24683,15 @@ eE "} (135,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +mU +mU +mU +mU +mU +ad +ag aa aa aa @@ -24264,15 +24825,15 @@ eE "} (136,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ad +ad +mU +mU +mU +ad +ad +ag aa aa aa @@ -24406,15 +24967,15 @@ eE "} (137,1,1) = {" aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +mS +ad +ad +ad +mS +ag +ag aa aa aa @@ -24549,13 +25110,13 @@ eE (138,1,1) = {" aa aa -aa -aa -aa -aa -aa -aa -aa +ag +ag +ad +ad +ad +ag +ag aa aa aa @@ -24692,11 +25253,11 @@ eE aa aa aa -aa -aa -aa -aa -aa +ag +ag +ag +ag +ag aa aa aa diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm index 5b497cdbff..cea7b08c30 100644 --- a/maps/~map_system/maps.dm +++ b/maps/~map_system/maps.dm @@ -38,7 +38,7 @@ var/list/all_maps = list() // Z-levels available to various consoles, such as the crew monitor. Defaults to station_levels if unset. var/list/map_levels - + // E-mail TLDs to use for NTnet modular computer e-mail addresses var/list/usable_email_tlds = list("freemail.nt") @@ -78,6 +78,7 @@ var/list/all_maps = list() var/station_name = "BAD Station" var/station_short = "Baddy" var/dock_name = "THE PirateBay" + var/dock_type = "station" //VOREStation Edit - for a list of valid types see the switch block in air_traffic.dm at line 148 var/boss_name = "Captain Roger" var/boss_short = "Cap'" var/company_name = "BadMan" @@ -89,6 +90,7 @@ var/list/all_maps = list() var/shuttle_leaving_dock var/shuttle_called_message var/shuttle_recall_message + var/shuttle_name = "NAS |Hawking|" //VS ADD var/emergency_shuttle_docked_message var/emergency_shuttle_leaving_dock var/emergency_shuttle_called_message diff --git a/nano/To BYOND Cache.bat b/nano/To BYOND Cache.bat deleted file mode 100644 index 486b8d1bea..0000000000 --- a/nano/To BYOND Cache.bat +++ /dev/null @@ -1,4 +0,0 @@ -copy css\* "%USERPROFILE%\Documents\BYOND\cache" /y -copy images\* "%USERPROFILE%\Documents\BYOND\cache" /y -copy js\* "%USERPROFILE%\Documents\BYOND\cache" /y -copy templates\* "%USERPROFILE%\Documents\BYOND\cache" /y diff --git a/nano/Update BYOND Cache.py b/nano/Update BYOND Cache.py new file mode 100644 index 0000000000..032c42ff1b --- /dev/null +++ b/nano/Update BYOND Cache.py @@ -0,0 +1,53 @@ +#!/usr/bin/python3 +# Setup +import os, json, shutil, glob, platform + +if(platform.system() != "Windows"): + print("Error: This script doesn't work on anything but Windows. How are you even planning to develop BYOND off windows?") + exit() + +cdir = (os.getcwd()) +if(cdir[-4:] != "nano"): + print("This script must be run from the nano directory.") + exit() + +def find_cache(): + target = os.path.join(os.path.expanduser("~"), "Documents", "BYOND", "cache") + for root, dirs, files in os.walk(target): + if "nano_templates_bundle.js" in files: + return root + +cache = find_cache() +if cache == None: + print("Failed to find BYOND Cache.") + exit() + +# Send all of the random files to the cache +def send_to_cache(arrayOfFiles): + for file in arrayOfFiles: + target = os.path.join(cache, os.path.split(file)[1]) + shutil.copyfile(file, target) + +send_to_cache([os.path.join(cdir, "css", f) for f in os.listdir(os.path.join(cdir, "css")) if os.path.isfile(os.path.join(cdir, "css", f))]) +send_to_cache([os.path.join(cdir, "images", f) for f in os.listdir(os.path.join(cdir, "images")) if os.path.isfile(os.path.join(cdir, "images", f))]) +send_to_cache([os.path.join(cdir, "js", f) for f in os.listdir(os.path.join(cdir, "js")) if os.path.isfile(os.path.join(cdir, "js", f))]) + +# Handle creating the tmpl bundle +arrOfFiles = glob.glob(os.path.join(cdir, "templates", "*.tmpl")) + +tmpl_bundle_header = "function nanouiTemplateBundle(){return " +tmpl_bundle_footer = ";}" + +big_json_array = {} + +for file in arrOfFiles: + tmpl_name = os.path.split(file)[1] + with open(file, 'r') as tmpl: + big_json_array[tmpl_name] = tmpl.read() + +tmpl_bundle = tmpl_bundle_header + json.dumps(big_json_array) + tmpl_bundle_footer + +# Send the tmpl bundle to the cache +with open(os.path.join(cache, "nano_templates_bundle.js"), "w") as templateBundleFile: + templateBundleFile.write(tmpl_bundle) + templateBundleFile.close() \ No newline at end of file diff --git a/sound/effects/Whipcrack.ogg b/sound/effects/Whipcrack.ogg new file mode 100644 index 0000000000..39e63741ca Binary files /dev/null and b/sound/effects/Whipcrack.ogg differ diff --git a/vorestation.dme b/vorestation.dme index c81e8b2703..8ca9dbc853 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -444,6 +444,7 @@ #include "code\datums\underwear\undershirts.dm" #include "code\datums\underwear\underwear.dm" #include "code\datums\uplink\ammunition.dm" +#include "code\datums\uplink\ammunition_vr.dm" #include "code\datums\uplink\announcements.dm" #include "code\datums\uplink\armor.dm" #include "code\datums\uplink\backup.dm" @@ -1370,6 +1371,7 @@ #include "code\game\objects\random\maintenance.dm" #include "code\game\objects\random\mapping.dm" #include "code\game\objects\random\misc.dm" +#include "code\game\objects\random\misc_vr.dm" #include "code\game\objects\random\mob.dm" #include "code\game\objects\random\mob_vr.dm" #include "code\game\objects\random\spacesuits.dm" @@ -2863,6 +2865,15 @@ #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_abilities.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\demon_subtypes.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\demon\~defines.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Big.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bigclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\bus.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\busclowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\c_shift.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\Clowns.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\hespawner.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\honkelemental.dm" +#include "code\modules\mob\living\simple_mob\subtypes\vore\mobs_monsters\clowns\regularclowns.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\morph\morph.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\_defines.dm" #include "code\modules\mob\living\simple_mob\subtypes\vore\shadekin\ability_objects.dm" @@ -2971,6 +2982,7 @@ #include "code\modules\nano\interaction\conscious.dm" #include "code\modules\nano\interaction\contained.dm" #include "code\modules\nano\interaction\default.dm" +#include "code\modules\nano\interaction\default_vr.dm" #include "code\modules\nano\interaction\interactive.dm" #include "code\modules\nano\interaction\inventory.dm" #include "code\modules\nano\interaction\inventory_deep.dm"