Merge branch 'master' of https://github.com/PolarisSS13/Polaris into vatborn
@@ -36,7 +36,7 @@
|
||||
#define R_SOUNDS 0x800
|
||||
#define R_SPAWN 0x1000
|
||||
#define R_MOD 0x2000
|
||||
#define R_MENTOR 0x4000
|
||||
#define R_EVENT 0x4000
|
||||
#define R_HOST 0x8000 //higher than this will overflow
|
||||
|
||||
#define R_MAXPERMISSION 0x8000 // This holds the maximum value for a permission. It is used in iteration, so keep it updated.
|
||||
@@ -148,7 +148,7 @@
|
||||
if (rights & R_SOUNDS) . += "[seperator]+SOUND"
|
||||
if (rights & R_SPAWN) . += "[seperator]+SPAWN"
|
||||
if (rights & R_MOD) . += "[seperator]+MODERATOR"
|
||||
if (rights & R_MENTOR) . += "[seperator]+MENTOR"
|
||||
if (rights & R_EVENT) . += "[seperator]+EVENT"
|
||||
return .
|
||||
|
||||
// Converts a hexadecimal color (e.g. #FF0050) to a list of numbers for red, green, and blue (e.g. list(255,0,80) ).
|
||||
|
||||
@@ -67,7 +67,7 @@ var/list/gamemode_cache = list()
|
||||
var/kick_inactive = 0 //force disconnect for inactive players after this many minutes, if non-0
|
||||
var/show_mods = 0
|
||||
var/show_devs = 0
|
||||
var/show_mentors = 0
|
||||
var/show_event_managers = 0
|
||||
var/mods_can_tempban = 0
|
||||
var/mods_can_job_tempban = 0
|
||||
var/mod_tempban_max = 1440
|
||||
@@ -511,8 +511,8 @@ var/list/gamemode_cache = list()
|
||||
if("show_devs")
|
||||
config.show_devs = 1
|
||||
|
||||
if("show_mentors")
|
||||
config.show_mentors = 1
|
||||
if("show_event_managers")
|
||||
config.show_event_managers = 1
|
||||
|
||||
if("mods_can_tempban")
|
||||
config.mods_can_tempban = 1
|
||||
|
||||
@@ -92,6 +92,13 @@
|
||||
question = "An Alien has just been created on the facility. Would you like to play as them?"
|
||||
be_special_flag = BE_ALIEN
|
||||
|
||||
/datum/ghost_query/syndicate_drone
|
||||
role_name = "Mercenary Drone"
|
||||
question = "A team of dubious mercenaries have purchased a powerful drone, and they are attempting to activate it. Would you like to play as the drone?"
|
||||
be_special_flag = BE_AI
|
||||
check_bans = list("AI", "Cyborg", "Syndicate")
|
||||
cutoff_number = 1
|
||||
|
||||
// Surface stuff.
|
||||
/datum/ghost_query/lost_drone
|
||||
role_name = "Lost Drone"
|
||||
|
||||
@@ -1,3 +1,7 @@
|
||||
#define OUTFIT_HAS_JETPACK 1
|
||||
#define OUTFIT_HAS_BACKPACK 2
|
||||
#define OUTFIT_EXTENDED_SURVIVAL 4
|
||||
|
||||
#define OUTFIT_JOB_NAME(job_name) ("Job - " + job_name)
|
||||
#define OUTFIT_MILITARY(job_name) ("Military Uniform - " + job_name)
|
||||
#define OUTFIT_COSTUME(job_name) ("Costume - " + job_name)
|
||||
@@ -0,0 +1,2 @@
|
||||
/decl/hierarchy/outfit/costume
|
||||
undress = 0
|
||||
@@ -1,5 +1,5 @@
|
||||
/decl/hierarchy/outfit/h_masked_killer
|
||||
name = "Costume - Masked Killer"
|
||||
/decl/hierarchy/outfit/costume/masked_killer
|
||||
name = OUTFIT_COSTUME("Masked Killer")
|
||||
uniform = /obj/item/clothing/under/overalls
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
gloves = /obj/item/clothing/gloves/sterile/latex
|
||||
@@ -8,20 +8,20 @@
|
||||
suit = /obj/item/clothing/suit/storage/apron
|
||||
r_hand = /obj/item/weapon/material/twohanded/fireaxe/foam
|
||||
|
||||
/decl/hierarchy/outfit/masked_killer/post_equip(var/mob/living/carbon/human/H)
|
||||
/decl/hierarchy/outfit/costume/masked_killer/post_equip(var/mob/living/carbon/human/H)
|
||||
var/victim = get_mannequin(H.ckey)
|
||||
for(var/obj/item/carried_item in H.get_equipped_items(TRUE))
|
||||
carried_item.add_blood(victim) //Oh yes, there will be blood.. just not blood from the killer because that's odd. //If I knew how to make fake blood, I would
|
||||
|
||||
/decl/hierarchy/outfit/h_professional
|
||||
name = "Costume - Professional"
|
||||
/decl/hierarchy/outfit/costume/professional
|
||||
name = OUTFIT_COSTUME("Professional")
|
||||
uniform = /obj/item/clothing/under/suit_jacket{ starting_accessories=list(/obj/item/clothing/accessory/wcoat) }
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
gloves = /obj/item/clothing/gloves/black
|
||||
glasses = /obj/item/clothing/glasses/fakesunglasses
|
||||
l_pocket = /obj/item/toy/sword
|
||||
|
||||
/decl/hierarchy/outfit/h_professional/post_equip(var/mob/living/carbon/human/H)
|
||||
/decl/hierarchy/outfit/costume/professional/post_equip(var/mob/living/carbon/human/H)
|
||||
var/obj/item/weapon/storage/briefcase/new_briefcase = new(H)
|
||||
for(var/obj/item/briefcase_item in new_briefcase)
|
||||
qdel(briefcase_item)
|
||||
@@ -30,9 +30,9 @@
|
||||
new_briefcase.contents += new /obj/item/clothing/mask/gas/clown_hat
|
||||
H.equip_to_slot_or_del(new_briefcase, slot_l_hand)
|
||||
|
||||
/decl/hierarchy/outfit/h_horrorcop
|
||||
name = "Costume - Slasher Movie Cop"
|
||||
uniform = /obj/item/clothing/under/pcrc{ starting_accessories=list(/obj/item/clothing/accessory/holster) }
|
||||
/decl/hierarchy/outfit/costume/horrorcop
|
||||
name = OUTFIT_COSTUME("Slasher Movie Cop")
|
||||
uniform = /obj/item/clothing/under/pcrc{ starting_accessories=list(/obj/item/clothing/accessory/holster/hip) }
|
||||
shoes = /obj/item/clothing/shoes/black
|
||||
gloves = /obj/item/clothing/gloves/black
|
||||
glasses = /obj/item/clothing/glasses/fakesunglasses
|
||||
@@ -40,7 +40,7 @@
|
||||
head = /obj/item/clothing/head/beret
|
||||
r_hand = /obj/item/weapon/gun/projectile/revolver/capgun
|
||||
|
||||
/decl/hierarchy/outfit/h_horrorcop/post_equip(var/mob/living/carbon/human/H)
|
||||
/decl/hierarchy/outfit/costume/horrorcop/post_equip(var/mob/living/carbon/human/H)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
if(U.accessories.len)
|
||||
for(var/obj/item/clothing/accessory/A in U.accessories)
|
||||
@@ -48,16 +48,16 @@
|
||||
var/obj/item/clothing/accessory/holster/O = A
|
||||
O.holster_verb()
|
||||
|
||||
/decl/hierarchy/outfit/h_cowboy
|
||||
name = "Costume - Cowboy"
|
||||
uniform = /obj/item/clothing/under/pants{ starting_accessories=list(/obj/item/clothing/accessory/holster) }
|
||||
/decl/hierarchy/outfit/costume/cowboy
|
||||
name = OUTFIT_COSTUME("Cowboy")
|
||||
uniform = /obj/item/clothing/under/pants{ starting_accessories=list(/obj/item/clothing/accessory/holster/hip) }
|
||||
shoes = /obj/item/clothing/shoes/boots/cowboy
|
||||
head = /obj/item/clothing/head/cowboy_hat
|
||||
gloves = /obj/item/clothing/gloves/fingerless
|
||||
suit = /obj/item/clothing/accessory/poncho
|
||||
r_hand = /obj/item/weapon/gun/projectile/revolver/capgun
|
||||
|
||||
/decl/hierarchy/outfit/h_cowboy/post_equip(var/mob/living/carbon/human/H)
|
||||
/decl/hierarchy/outfit/costume/cowboy/post_equip(var/mob/living/carbon/human/H)
|
||||
var/obj/item/clothing/under/U = H.w_uniform
|
||||
if(U.accessories.len)
|
||||
for(var/obj/item/clothing/accessory/A in U.accessories)
|
||||
@@ -65,8 +65,8 @@
|
||||
var/obj/item/clothing/accessory/holster/O = A
|
||||
O.holster_verb()
|
||||
|
||||
/decl/hierarchy/outfit/h_lumberjack
|
||||
name = "Costume - Lumberjack"
|
||||
/decl/hierarchy/outfit/costume/lumberjack
|
||||
name = OUTFIT_COSTUME("Lumberjack")
|
||||
uniform = /obj/item/clothing/under/pants{ starting_accessories=list(/obj/item/clothing/accessory/sweater/blackneck) }
|
||||
shoes = /obj/item/clothing/shoes/boots/workboots
|
||||
head = /obj/item/clothing/head/beanie
|
||||
@@ -74,8 +74,8 @@
|
||||
suit = /obj/item/clothing/suit/storage/flannel/red
|
||||
r_hand = /obj/item/weapon/material/twohanded/fireaxe/foam
|
||||
|
||||
/decl/hierarchy/outfit/h_firefighter
|
||||
name = "Costume - Firefighter"
|
||||
/decl/hierarchy/outfit/costume/firefighter
|
||||
name = OUTFIT_COSTUME("Firefighter")
|
||||
uniform = /obj/item/clothing/under/pants
|
||||
shoes = /obj/item/clothing/shoes/boots/workboots
|
||||
head = /obj/item/clothing/head/hardhat/red
|
||||
@@ -83,22 +83,22 @@
|
||||
suit = /obj/item/clothing/suit/fire/firefighter
|
||||
mask = /obj/item/clothing/mask/gas
|
||||
|
||||
/decl/hierarchy/outfit/h_highlander
|
||||
name = "Costume - Highlander"
|
||||
/decl/hierarchy/outfit/costume/highlander
|
||||
name = OUTFIT_COSTUME("Highlander")
|
||||
uniform = /obj/item/clothing/under/kilt
|
||||
shoes = /obj/item/clothing/shoes/boots/jackboots
|
||||
head = /obj/item/clothing/head/beret
|
||||
r_hand = /obj/item/weapon/material/sword/foam
|
||||
|
||||
/decl/hierarchy/outfit/h_vampire
|
||||
name = "Costume - Vampire"
|
||||
/decl/hierarchy/outfit/costume/vampire
|
||||
name = OUTFIT_COSTUME("Vampire")
|
||||
uniform = /obj/item/clothing/under/suit_jacket/really_black
|
||||
shoes = /obj/item/clothing/shoes/dress
|
||||
gloves = /obj/item/clothing/gloves/white
|
||||
r_hand = /obj/item/weapon/bedsheet/red
|
||||
|
||||
/decl/hierarchy/outfit/h_vampire_hunter
|
||||
name = "Costume - Vampire Hunter"
|
||||
/decl/hierarchy/outfit/costume/vampire_hunter
|
||||
name = OUTFIT_COSTUME("Vampire Hunter")
|
||||
uniform = /obj/item/clothing/under/pants/tan
|
||||
suit = /obj/item/clothing/suit/storage/toggle/brown_jacket/sleeveless
|
||||
shoes = /obj/item/clothing/shoes/boots/jackboots
|
||||
@@ -106,10 +106,18 @@
|
||||
l_pocket = /obj/item/toy/crossbow
|
||||
r_pocket = /obj/item/device/flashlight/color/red
|
||||
|
||||
/decl/hierarchy/outfit/h_pirate
|
||||
name = "Costume - Pirate"
|
||||
/decl/hierarchy/outfit/costume/pirate
|
||||
name = OUTFIT_COSTUME("Pirate")
|
||||
uniform = /obj/item/clothing/under/pirate
|
||||
shoes = /obj/item/clothing/shoes/brown
|
||||
head = /obj/item/clothing/head/helmet/space
|
||||
head = /obj/item/clothing/head/pirate
|
||||
suit = /obj/item/clothing/suit/pirate
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
glasses = /obj/item/clothing/glasses/eyepatch
|
||||
|
||||
/decl/hierarchy/outfit/costume/whiteout
|
||||
name = OUTFIT_COSTUME("Snow Ghost")
|
||||
uniform = /obj/item/clothing/under/color/white{ starting_accessories=list(/obj/item/clothing/accessory/scarf/white) }
|
||||
shoes = /obj/item/clothing/shoes/white
|
||||
suit = /obj/item/clothing/suit/storage/hooded/chaplain_hoodie/whiteout
|
||||
gloves = /obj/item/clothing/gloves/white
|
||||
mask = /obj/item/clothing/mask/surgical
|
||||
@@ -1,2 +0,0 @@
|
||||
#define OUTFIT_JOB_NAME(job_name) ("Job - " + job_name)
|
||||
#define OUTFIT_MILITARY(job_name) ("Military Uniform - " + job_name)
|
||||
@@ -57,6 +57,8 @@ var/list/outfits_decls_by_type_
|
||||
|
||||
var/flags // Specific flags
|
||||
|
||||
var/undress = 1 //Does the outfit undress the mob upon equp?
|
||||
|
||||
/decl/hierarchy/outfit/New()
|
||||
..()
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
/*********
|
||||
* Back up *
|
||||
**********/
|
||||
/datum/uplink_item/item/backup
|
||||
category = /datum/uplink_category/backup
|
||||
blacklisted = 1
|
||||
|
||||
/datum/uplink_item/item/backup/syndicate_drone_protector
|
||||
name = "Drone (Protector)"
|
||||
desc = "A miniature teleport which will bring a powerful and loyal drone to you. \
|
||||
This type comes with a directional shield projector, a supressive fire energy weapon, \
|
||||
a stunbaton, handcuffs, an agent ID, energy sword, pinpointer, and a jetpack."
|
||||
item_cost = DEFAULT_TELECRYSTAL_AMOUNT * 1.5
|
||||
antag_roles = list("mercenary")
|
||||
path = /obj/item/weapon/antag_spawner/syndicate_drone/protector
|
||||
|
||||
/datum/uplink_item/item/backup/syndicate_drone_combat_medic
|
||||
name = "Drone (Combat Medic)"
|
||||
desc = "A miniature teleport which will bring a powerful and loyal drone to you. \
|
||||
This type comes with standard medical equipment, full set of surgery tools, \
|
||||
a powerful hypospray that can create many potent chemicals, an agent ID, energy \
|
||||
sword, pinpointer, and a jetpack."
|
||||
item_cost = DEFAULT_TELECRYSTAL_AMOUNT * 1.5
|
||||
antag_roles = list("mercenary")
|
||||
path = /obj/item/weapon/antag_spawner/syndicate_drone/combat_medic
|
||||
|
||||
/datum/uplink_item/item/backup/syndicate_drone_mechanist
|
||||
name = "Drone (Mechanist)"
|
||||
desc = "A miniature teleport which will bring a powerful and loyal drone to you. \
|
||||
This type comes with a full set of tools, an RCD, the ability to unlock other bound synthetics, \
|
||||
a cryptographic sequencer, an AI detector, the ability to analyze and repair full-body prosthetics, \
|
||||
a set of construction materials, an ionic rapier, an agent ID, energy sword, pinpointer, and a jetpack."
|
||||
item_cost = DEFAULT_TELECRYSTAL_AMOUNT * 1.5
|
||||
antag_roles = list("mercenary")
|
||||
path = /obj/item/weapon/antag_spawner/syndicate_drone/mechanist
|
||||
@@ -49,4 +49,7 @@ datum/uplink_category/ammunition
|
||||
name = "Highly Visible and Dangerous Weapons"
|
||||
|
||||
/datum/uplink_category/telecrystals
|
||||
name = "Telecrystals"
|
||||
name = "Telecrystals"
|
||||
|
||||
/datum/uplink_category/backup
|
||||
name = "Backup"
|
||||
@@ -112,6 +112,12 @@
|
||||
path = /obj/item/weapon/storage/secure/briefcase/rifle
|
||||
antag_roles = list("traitor", "autotraitor", "infiltrator")
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/fuelrodcannon
|
||||
name = "Fuel-Rod Cannon"
|
||||
desc = "An incredibly bulky weapon whose devastating firepower is only matched by its severe need for expensive, and rare, ammunition. This device will likely require extra preparation to use, you are warned."
|
||||
item_cost = DEFAULT_TELECRYSTAL_AMOUNT
|
||||
path = /obj/item/weapon/storage/secure/briefcase/fuelrod
|
||||
|
||||
/datum/uplink_item/item/visible_weapons/tommygun
|
||||
name = "Tommygun (.45)" // We're keeping this because it's CLASSY. -Spades
|
||||
item_cost = 60
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 500)
|
||||
preserve_item = 1
|
||||
var/obj/item/weapon/disk/nuclear/the_disk = null
|
||||
var/active = 0
|
||||
|
||||
@@ -263,3 +264,57 @@
|
||||
icon_state = "pinonfar"
|
||||
|
||||
spawn(5) .()
|
||||
|
||||
|
||||
// This one only points to the ship. Useful if there is no nuking to occur today.
|
||||
/obj/item/weapon/pinpointer/shuttle
|
||||
var/shuttle_comp_id = null
|
||||
var/obj/machinery/computer/shuttle_control/our_shuttle = null
|
||||
|
||||
/obj/item/weapon/pinpointer/shuttle/attack_self(mob/user as mob)
|
||||
if(!active)
|
||||
active = TRUE
|
||||
find_shuttle()
|
||||
to_chat(user, "<span class='notice'>Shuttle Locator active.</span>")
|
||||
else
|
||||
active = FALSE
|
||||
icon_state = "pinoff"
|
||||
to_chat(user, "<span class='notice'>You deactivate the pinpointer.</span>")
|
||||
|
||||
/obj/item/weapon/pinpointer/shuttle/proc/find_shuttle()
|
||||
if(!active)
|
||||
return
|
||||
|
||||
if(!our_shuttle)
|
||||
for(var/obj/machinery/computer/shuttle_control/S in machines)
|
||||
if(S.shuttle_tag == shuttle_comp_id) // Shuttle tags are used so that it will work if the computer path changes, as it does on the southern cross map.
|
||||
our_shuttle = S
|
||||
break
|
||||
|
||||
if(!our_shuttle)
|
||||
icon_state = "pinonnull"
|
||||
return
|
||||
|
||||
if(loc.z != our_shuttle.z) //If you are on a different z-level from the shuttle
|
||||
icon_state = "pinonnull"
|
||||
else
|
||||
set_dir(get_dir(src, our_shuttle))
|
||||
switch(get_dist(src, our_shuttle))
|
||||
if(0)
|
||||
icon_state = "pinondirect"
|
||||
if(1 to 8)
|
||||
icon_state = "pinonclose"
|
||||
if(9 to 16)
|
||||
icon_state = "pinonmedium"
|
||||
if(16 to INFINITY)
|
||||
icon_state = "pinonfar"
|
||||
|
||||
spawn(5)
|
||||
.()
|
||||
|
||||
|
||||
/obj/item/weapon/pinpointer/shuttle/merc
|
||||
shuttle_comp_id = "Mercenary"
|
||||
|
||||
/obj/item/weapon/pinpointer/shuttle/heist
|
||||
shuttle_comp_id = "Skipjack"
|
||||
@@ -10,90 +10,6 @@
|
||||
cost = 300
|
||||
obj_path = /obj/item/weapon/antag_spawner/technomancer_apprentice
|
||||
|
||||
/obj/item/weapon/antag_spawner
|
||||
w_class = ITEMSIZE_TINY
|
||||
var/used = 0
|
||||
var/ghost_query_type = null
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T)
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/equip_antag(mob/target)
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/request_player()
|
||||
if(!ghost_query_type)
|
||||
return
|
||||
|
||||
var/datum/ghost_query/Q = new ghost_query_type()
|
||||
var/list/winner = Q.query()
|
||||
if(winner.len)
|
||||
var/mob/observer/dead/D = winner[1]
|
||||
spawn_antag(D.client, get_turf(src))
|
||||
else
|
||||
reset_search()
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/reset_search()
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice
|
||||
name = "apprentice teleporter"
|
||||
desc = "A teleportation device, which will bring a less potent manipulator of space to you."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "oldshieldoff"
|
||||
ghost_query_type = /datum/ghost_query/apprentice
|
||||
var/searching = 0
|
||||
var/datum/effect/effect/system/spark_spread/sparks
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/New()
|
||||
..()
|
||||
sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(5, 0, src)
|
||||
sparks.attach(loc)
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/Destroy()
|
||||
qdel(sparks)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/attack_self(mob/user)
|
||||
user << "<span class='notice'>Teleporter attempting to lock on to your apprentice.</span>"
|
||||
request_player()
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/request_player()
|
||||
searching = 1
|
||||
icon_state = "oldshieldon"
|
||||
..()
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/reset_search()
|
||||
searching = 0
|
||||
if(!used)
|
||||
icon_state = "oldshieldoff"
|
||||
visible_message("<span class='warning'>The teleporter failed to find the apprentice. Perhaps another attempt could be made later?</span>")
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/spawn_antag(client/C, turf/T)
|
||||
sparks.start()
|
||||
var/mob/living/carbon/human/H = new/mob/living/carbon/human(T)
|
||||
C.prefs.copy_to(H)
|
||||
H.key = C.key
|
||||
|
||||
H << "<b>You are the Technomancer's apprentice! Your goal is to assist them in their mission at the [station_name()].</b>"
|
||||
H << "<b>Your service has not gone unrewarded, however. Studying under them, you have learned how to use a Manipulation Core \
|
||||
of your own. You also have a catalog, to purchase your own functions and equipment as you see fit.</b>"
|
||||
H << "<b>It would be wise to speak to your master, and learn what their plans are for today.</b>"
|
||||
|
||||
spawn(1)
|
||||
technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
|
||||
equip_antag(H)
|
||||
used = 1
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/equip_antag(mob/technomancer_mob)
|
||||
var/datum/antagonist/technomancer/antag_datum = all_antag_types[MODE_TECHNOMANCER]
|
||||
antag_datum.equip_apprentice(technomancer_mob)
|
||||
|
||||
|
||||
/*
|
||||
// For when no one wants to play support.
|
||||
/datum/technomancer/assistance/golem
|
||||
|
||||
@@ -226,24 +226,6 @@
|
||||
var/last_no_computer_message = 0
|
||||
var/applies_stasis = 1
|
||||
|
||||
// These items are preserved when the process() despawn proc occurs.
|
||||
var/list/preserve_items = list(
|
||||
/obj/item/weapon/hand_tele,
|
||||
/obj/item/weapon/card/id/captains_spare,
|
||||
/obj/item/device/aicard,
|
||||
/obj/item/device/paicard,
|
||||
/obj/item/weapon/gun,
|
||||
/obj/item/weapon/cell/device,
|
||||
/obj/item/ammo_magazine,
|
||||
/obj/item/ammo_casing,
|
||||
/obj/item/weapon/pinpointer,
|
||||
/obj/item/clothing/suit,
|
||||
/obj/item/clothing/shoes/magboots,
|
||||
/obj/item/blueprints,
|
||||
/obj/item/clothing/head/helmet/space,
|
||||
/obj/item/weapon/storage/internal
|
||||
)
|
||||
|
||||
/obj/machinery/cryopod/robot
|
||||
name = "robotic storage unit"
|
||||
desc = "A storage unit for robots."
|
||||
@@ -407,12 +389,10 @@
|
||||
|
||||
for(var/obj/item/W in items)
|
||||
|
||||
var/preserve = null
|
||||
var/preserve = 0
|
||||
|
||||
for(var/T in preserve_items)
|
||||
if(istype(W,T))
|
||||
preserve = 1
|
||||
break
|
||||
if(W.preserve_item)
|
||||
preserve = 1
|
||||
|
||||
if(istype(W,/obj/item/weapon/implant/health))
|
||||
for(var/obj/machinery/computer/cloning/com in world)
|
||||
|
||||
@@ -120,6 +120,17 @@ obj/machinery/recharger
|
||||
update_use_power(1)
|
||||
return
|
||||
|
||||
if(istype(charging, /obj/item/weapon/gun/magnetic))
|
||||
var/obj/item/weapon/gun/magnetic/M = charging
|
||||
if(!M.cell.fully_charged())
|
||||
icon_state = icon_state_charging
|
||||
M.cell.give(active_power_usage*CELLRATE)
|
||||
update_use_power(2)
|
||||
else
|
||||
icon_state = icon_state_charged
|
||||
update_use_power(1)
|
||||
return
|
||||
|
||||
if(istype(charging, /obj/item/weapon/melee/baton))
|
||||
var/obj/item/weapon/melee/baton/B = charging
|
||||
if(B.bcell)
|
||||
@@ -226,7 +237,7 @@ obj/machinery/recharger
|
||||
icon = 'icons/obj/stationobjs.dmi'
|
||||
icon_state = "wrecharger0"
|
||||
active_power_usage = 25000 //25 kW , It's more specialized than the standalone recharger (guns, batons, and flashlights only) so make it more powerful
|
||||
allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/melee/baton, /obj/item/device/flashlight, /obj/item/weapon/cell/device)
|
||||
allowed_devices = list(/obj/item/weapon/gun/energy, /obj/item/weapon/gun/magnetic, /obj/item/weapon/melee/baton, /obj/item/device/flashlight, /obj/item/weapon/cell/device)
|
||||
icon_state_charged = "wrecharger2"
|
||||
icon_state_charging = "wrecharger1"
|
||||
icon_state_idle = "wrecharger0"
|
||||
|
||||
@@ -52,11 +52,17 @@
|
||||
|
||||
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/New(newLoc, amt = 1, d = 0)
|
||||
set_dir(d) //Setting this direction means you won't get torched by your own flamethrower.
|
||||
if(istype(newLoc, /turf/simulated))
|
||||
var/turf/simulated/T = newLoc
|
||||
T.hotspot_expose((T20C*2) + 380,500) //Ignite the fuel.
|
||||
. = ..()
|
||||
|
||||
/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/Spread()
|
||||
//The spread for flamethrower fuel is much more precise, to create a wide fire pattern.
|
||||
if(amount < 0.1) return
|
||||
if(amount <= 0.1)
|
||||
if(amount < 0.025) //Hopefully stops fuel spreading into unburnable puddles.
|
||||
qdel(src)
|
||||
return
|
||||
var/turf/simulated/S = loc
|
||||
if(!istype(S)) return
|
||||
|
||||
@@ -65,7 +71,12 @@
|
||||
if(locate(/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel) in O)
|
||||
continue
|
||||
if(O.CanPass(null, S, 0, 0) && S.CanPass(null, O, 0, 0))
|
||||
new/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(O,amount*0.25,d)
|
||||
var/new_pool_amount = amount * 0.25
|
||||
if(new_pool_amount > 0.1)
|
||||
var/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel/F = new(O, new_pool_amount, d)
|
||||
if(F.amount < 0.025) //Safety.
|
||||
qdel(F)
|
||||
return
|
||||
O.hotspot_expose((T20C*2) + 380,500) //Light flamethrower fuel on fire immediately.
|
||||
|
||||
amount *= 0.25
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
/obj/item/weapon/antag_spawner
|
||||
w_class = ITEMSIZE_TINY
|
||||
var/used = 0
|
||||
var/ghost_query_type = null
|
||||
var/searching = FALSE
|
||||
var/datum/effect/effect/system/spark_spread/sparks
|
||||
|
||||
/obj/item/weapon/antag_spawner/New()
|
||||
..()
|
||||
sparks = new /datum/effect/effect/system/spark_spread()
|
||||
sparks.set_up(5, 0, src)
|
||||
sparks.attach(loc)
|
||||
|
||||
/obj/item/weapon/antag_spawner/Destroy()
|
||||
qdel(sparks)
|
||||
return ..()
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/spawn_antag(client/C, turf/T)
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/equip_antag(mob/target)
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/request_player()
|
||||
if(!ghost_query_type)
|
||||
return
|
||||
if(searching)
|
||||
return // Already searching.
|
||||
searching = TRUE
|
||||
|
||||
var/datum/ghost_query/Q = new ghost_query_type()
|
||||
var/list/winner = Q.query()
|
||||
if(winner.len)
|
||||
var/mob/observer/dead/D = winner[1]
|
||||
spawn_antag(D.client, get_turf(src))
|
||||
else
|
||||
reset_search()
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/proc/reset_search()
|
||||
searching = FALSE
|
||||
return
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice
|
||||
name = "apprentice teleporter"
|
||||
desc = "A teleportation device, which will bring a less potent manipulator of space to you."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "oldshieldoff"
|
||||
ghost_query_type = /datum/ghost_query/apprentice
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/attack_self(mob/user)
|
||||
user << "<span class='notice'>Teleporter attempting to lock on to your apprentice.</span>"
|
||||
request_player()
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/request_player()
|
||||
icon_state = "oldshieldon"
|
||||
..()
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/reset_search()
|
||||
..()
|
||||
if(!used)
|
||||
icon_state = "oldshieldoff"
|
||||
visible_message("<span class='warning'>The teleporter failed to find the apprentice. Perhaps another attempt could be made later?</span>")
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/spawn_antag(client/C, turf/T)
|
||||
sparks.start()
|
||||
var/mob/living/carbon/human/H = new/mob/living/carbon/human(T)
|
||||
C.prefs.copy_to(H)
|
||||
H.key = C.key
|
||||
|
||||
H << "<b>You are the Technomancer's apprentice! Your goal is to assist them in their mission at the [station_name()].</b>"
|
||||
H << "<b>Your service has not gone unrewarded, however. Studying under them, you have learned how to use a Manipulation Core \
|
||||
of your own. You also have a catalog, to purchase your own functions and equipment as you see fit.</b>"
|
||||
H << "<b>It would be wise to speak to your master, and learn what their plans are for today.</b>"
|
||||
|
||||
spawn(1)
|
||||
technomancers.add_antagonist(H.mind, 0, 1, 0, 0, 0)
|
||||
equip_antag(H)
|
||||
used = 1
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/antag_spawner/technomancer_apprentice/equip_antag(mob/technomancer_mob)
|
||||
var/datum/antagonist/technomancer/antag_datum = all_antag_types[MODE_TECHNOMANCER]
|
||||
antag_datum.equip_apprentice(technomancer_mob)
|
||||
|
||||
|
||||
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone
|
||||
name = "drone teleporter"
|
||||
desc = "A teleportation device, which will bring a powerful and loyal drone to you."
|
||||
icon = 'icons/obj/objects.dmi'
|
||||
icon_state = "oldshieldoff"
|
||||
ghost_query_type = /datum/ghost_query/syndicate_drone
|
||||
var/drone_type = null
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/attack_self(mob/user)
|
||||
to_chat(user, "<span class='notice'>Teleporter attempting to lock on to an available unit.</span>")
|
||||
request_player()
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/request_player()
|
||||
icon_state = "oldshieldon"
|
||||
..()
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/reset_search()
|
||||
..()
|
||||
if(!used)
|
||||
icon_state = "oldshieldoff"
|
||||
visible_message("<span class='warning'>The teleporter failed to find any available. Perhaps another attempt could be made later?</span>")
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/spawn_antag(client/C, turf/T)
|
||||
sparks.start()
|
||||
var/mob/living/silicon/robot/R = new drone_type(T)
|
||||
|
||||
// Put this text here before ckey change so that their laws are shown below it, since borg login() shows it.
|
||||
to_chat(C, "<span class='notice'>You are a <b>Mercenary Drone</b>, activated to serve your team.</span>")
|
||||
to_chat(C, "<span class='notice'><b>Be sure to examine your currently loaded lawset closely.</b> It would be wise \
|
||||
to speak with your team, and learn what their plan is for today.</span>")
|
||||
|
||||
R.key = C.key
|
||||
// R.Namepick() // Apparnetly making someone a merc lets them pick a name, so this isn't needed.
|
||||
|
||||
spawn(1)
|
||||
mercs.add_antagonist(R.mind, FALSE, TRUE, FALSE, FALSE, FALSE)
|
||||
//add_antagonist(var/datum/mind/player, var/ignore_role, var/do_not_equip, var/move_to_spawn, var/do_not_announce, var/preserve_appearance)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/protector
|
||||
drone_type = /mob/living/silicon/robot/syndicate/protector
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/combat_medic
|
||||
drone_type = /mob/living/silicon/robot/syndicate/combat_medic
|
||||
|
||||
/obj/item/weapon/antag_spawner/syndicate_drone/mechanist
|
||||
drone_type = /mob/living/silicon/robot/syndicate/mechanist
|
||||
@@ -4,6 +4,7 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "blueprints"
|
||||
attack_verb = list("attacked", "bapped", "hit")
|
||||
preserve_item = 1
|
||||
var/const/AREA_ERRNONE = 0
|
||||
var/const/AREA_STATION = 1
|
||||
var/const/AREA_SPACE = 2
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
slot_flags = SLOT_BELT
|
||||
show_messages = 0
|
||||
preserve_item = 1
|
||||
|
||||
var/flush = null
|
||||
origin_tech = list(TECH_DATA = 4, TECH_MATERIAL = 4)
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
slot_flags = SLOT_BACK
|
||||
force = 5
|
||||
throwforce = 6
|
||||
preserve_item = 1
|
||||
w_class = ITEMSIZE_LARGE
|
||||
origin_tech = list(TECH_BIO = 4, TECH_POWER = 2)
|
||||
action_button_name = "Remove/Replace Paddles"
|
||||
@@ -542,6 +543,13 @@
|
||||
var/mob/living/silicon/robot/R = src.loc
|
||||
return (R.cell && R.cell.checked_use(charge_amt))
|
||||
|
||||
/obj/item/weapon/shockpaddles/robot/combat
|
||||
name = "combat defibrillator paddles"
|
||||
desc = "A pair of advanced shockpaddles powered by a robot's internal power cell, able to penetrate thick clothing. This version \
|
||||
appears to be optimized for combat situations, foregoing the safety inhabitors in favor of a faster charging time."
|
||||
safety = 0
|
||||
chargetime = (1 SECONDS)
|
||||
|
||||
/*
|
||||
Shockpaddles that are linked to a base unit
|
||||
*/
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = list(TECH_DATA = 2)
|
||||
show_messages = 0
|
||||
preserve_item = 1
|
||||
|
||||
var/obj/item/device/radio/radio
|
||||
var/looking_for_personality = 0
|
||||
|
||||
@@ -177,8 +177,9 @@
|
||||
if(M.brainmob.mind)
|
||||
for(var/mob/observer/dead/G in player_list)
|
||||
if(G.can_reenter_corpse && G.mind == M.brainmob.mind)
|
||||
ghost_can_reenter = 1
|
||||
break
|
||||
ghost_can_reenter = 1 //May come in use again at another point.
|
||||
to_chat(user, "<span class='notice'>\The [W] is completely unresponsive; though it may be able to auto-resuscitate.</span>") //Jamming a ghosted brain into a borg is likely detrimental, and may result in some problems.
|
||||
return
|
||||
if(!ghost_can_reenter)
|
||||
user << "<span class='notice'>\The [W] is completely unresponsive; there's no point.</span>"
|
||||
return
|
||||
|
||||
@@ -18,6 +18,7 @@ AI MODULES
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
origin_tech = list(TECH_DATA = 3)
|
||||
preserve_item = 1
|
||||
var/datum/ai_laws/laws = null
|
||||
|
||||
/obj/item/weapon/aiModule/proc/install(var/atom/movable/AM, var/mob/living/user)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
origin_tech = list(TECH_ENGINEERING = 4, TECH_MATERIAL = 2)
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50000)
|
||||
preserve_item = 1
|
||||
var/datum/effect/effect/system/spark_spread/spark_system
|
||||
var/stored_matter = 0
|
||||
var/max_stored_matter = 30
|
||||
@@ -178,6 +179,9 @@
|
||||
/obj/item/weapon/rcd/borg
|
||||
canRwall = 1
|
||||
|
||||
/obj/item/weapon/rcd/borg/lesser
|
||||
canRwall = FALSE
|
||||
|
||||
/obj/item/weapon/rcd/borg/useResource(var/amount, var/mob/user)
|
||||
if(isrobot(user))
|
||||
var/mob/living/silicon/robot/R = user
|
||||
|
||||
@@ -138,6 +138,7 @@
|
||||
desc = "A golden card which shows power and might."
|
||||
icon_state = "gold"
|
||||
item_state = "gold_id"
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/card/id/gold/captain/New()
|
||||
assignment = "Colony Director"
|
||||
@@ -145,18 +146,12 @@
|
||||
access = get_all_station_access()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/captains_spare
|
||||
/obj/item/weapon/card/id/gold/captain/spare
|
||||
name = "colony director's spare ID"
|
||||
desc = "The spare ID of the High Lord himself."
|
||||
icon_state = "gold"
|
||||
item_state = "gold_id"
|
||||
registered_name = "Colony Director"
|
||||
assignment = "Colony Director"
|
||||
|
||||
/obj/item/weapon/card/id/captains_spare/New()
|
||||
access = get_all_station_access()
|
||||
..()
|
||||
|
||||
/obj/item/weapon/card/id/synthetic
|
||||
name = "\improper Synthetic ID"
|
||||
desc = "Access module for NanoTrasen Synthetics"
|
||||
@@ -171,7 +166,7 @@
|
||||
/obj/item/weapon/card/id/centcom
|
||||
name = "\improper CentCom. ID"
|
||||
desc = "An ID straight from Central Command."
|
||||
icon_state = "centcom"
|
||||
icon_state = "nanotrasen"
|
||||
registered_name = "Central Command"
|
||||
assignment = "General"
|
||||
|
||||
@@ -186,6 +181,7 @@
|
||||
/obj/item/weapon/card/id/centcom/ERT
|
||||
name = "\improper Emergency Response Team ID"
|
||||
assignment = "Emergency Response Team"
|
||||
icon_state = "centcom"
|
||||
|
||||
/obj/item/weapon/card/id/centcom/ERT/New()
|
||||
..()
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
throw_range = 7
|
||||
maxcharge = 480
|
||||
matter = list("metal" = 350, "glass" = 50)
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/cell/device/weapon
|
||||
name = "weapon power cell"
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
/obj/item/weapon/shield
|
||||
name = "shield"
|
||||
var/base_block_chance = 50
|
||||
preserve_item = 1
|
||||
item_icons = list(
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
//A storage item intended to be used by other items to provide storage functionality.
|
||||
//Types that use this should consider overriding emp_act() and hear_talk(), unless they shield their contents somehow.
|
||||
/obj/item/weapon/storage/internal
|
||||
preserve_item = 1
|
||||
var/obj/item/master_item
|
||||
|
||||
/obj/item/weapon/storage/internal/New(obj/item/MI)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
max_w_class = ITEMSIZE_NORMAL
|
||||
max_storage_space = ITEMSIZE_COST_NORMAL * 4 //The sum of the w_classes of all the items in this storage item.
|
||||
req_access = list(access_armory)
|
||||
preserve_item = 1
|
||||
var/locked = 1
|
||||
var/broken = 0
|
||||
var/icon_locked = "lockbox+l"
|
||||
|
||||
@@ -295,3 +295,22 @@
|
||||
|
||||
for(var/i = 1 to 4)
|
||||
new /obj/item/ammo_casing/a145(src)
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod
|
||||
name = "heavy briefcase"
|
||||
desc = "A heavy, locked briefcase."
|
||||
description_fluff = "The container, upon opening, looks to have a few oddly shaped indentations in its packing."
|
||||
description_antag = "This case will likely contain a charged fuel rod gun, and a few fuel rods to go with it. It can only hold the fuel rod gun, fuel rods, batteries, a screwdriver, and stock machine parts."
|
||||
force = 12 //Anti-rad lined i.e. Lead, probably gonna hurt a bit if you get bashed with it.
|
||||
can_hold = list(/obj/item/weapon/gun/magnetic/fuelrod, /obj/item/weapon/fuel_assembly, /obj/item/weapon/cell, /obj/item/weapon/stock_parts, /obj/item/weapon/screwdriver)
|
||||
|
||||
|
||||
/obj/item/weapon/storage/secure/briefcase/fuelrod/New()
|
||||
..()
|
||||
new /obj/item/weapon/gun/magnetic/fuelrod(src)
|
||||
new /obj/item/weapon/fuel_assembly/deuterium(src)
|
||||
new /obj/item/weapon/fuel_assembly/deuterium(src)
|
||||
new /obj/item/weapon/fuel_assembly/tritium(src)
|
||||
new /obj/item/weapon/fuel_assembly/tritium(src)
|
||||
new /obj/item/weapon/fuel_assembly/phoron(src)
|
||||
new /obj/item/weapon/screwdriver(src)
|
||||
|
||||
@@ -129,6 +129,7 @@ Frequency:
|
||||
throw_range = 5
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_BLUESPACE = 3)
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 10000)
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/hand_tele/attack_self(mob/user as mob)
|
||||
var/turf/current_location = get_turf(user)//What turf is the user on?
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
var/damtype = "brute"
|
||||
var/armor_penetration = 0
|
||||
var/show_messages
|
||||
var/preserve_item = 0 //whether this object is preserved when its owner goes into cryo-storage, gateway, etc
|
||||
|
||||
/obj/Destroy()
|
||||
processing_objects -= src
|
||||
|
||||
@@ -973,7 +973,7 @@ var/list/multi_point_spawns
|
||||
/obj/random_multi/single_item/captains_spare_id
|
||||
name = "Multi Point - Captain's Spare"
|
||||
id = "Captain's spare id"
|
||||
item_path = /obj/item/weapon/card/id/captains_spare
|
||||
item_path = /obj/item/weapon/card/id/gold/captain/spare
|
||||
|
||||
//Multiple Object Spawn
|
||||
|
||||
|
||||
@@ -70,16 +70,16 @@
|
||||
var/msg = ""
|
||||
var/modmsg = ""
|
||||
var/devmsg = ""
|
||||
var/mentmsg = ""
|
||||
var/eventMmsg = ""
|
||||
var/num_mods_online = 0
|
||||
var/num_admins_online = 0
|
||||
var/num_devs_online = 0
|
||||
var/num_mentors_online = 0
|
||||
var/num_event_managers_online = 0
|
||||
if(holder)
|
||||
for(var/client/C in admins)
|
||||
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_MENTOR & C.holder.rights)) //Used to determine who shows up in admin rows
|
||||
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights)) //Used to determine who shows up in admin rows
|
||||
|
||||
if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Mentors can't see stealthmins
|
||||
if(C.holder.fakekey && (!R_ADMIN & holder.rights && !R_MOD & holder.rights)) //Event Managerss can't see stealthmins
|
||||
continue
|
||||
|
||||
msg += "\t[C] is a [C.holder.rank]"
|
||||
@@ -102,7 +102,7 @@
|
||||
msg += "\n"
|
||||
|
||||
num_admins_online++
|
||||
else if(R_MOD & C.holder.rights) //Who shows up in mod/mentor rows.
|
||||
else if(R_MOD & C.holder.rights) //Who shows up in mod rows.
|
||||
modmsg += "\t[C] is a [C.holder.rank]"
|
||||
|
||||
if(isobserver(C.mob))
|
||||
@@ -137,26 +137,26 @@
|
||||
devmsg += "\n"
|
||||
num_devs_online++
|
||||
|
||||
else if(R_MENTOR & C.holder.rights)
|
||||
mentmsg += "\t[C] is a [C.holder.rank]"
|
||||
else if(R_EVENT & C.holder.rights)
|
||||
eventMmsg += "\t[C] is a [C.holder.rank]"
|
||||
if(isobserver(C.mob))
|
||||
mentmsg += " - Observing"
|
||||
eventMmsg += " - Observing"
|
||||
else if(istype(C.mob,/mob/new_player))
|
||||
mentmsg += " - Lobby"
|
||||
eventMmsg += " - Lobby"
|
||||
else
|
||||
mentmsg += " - Playing"
|
||||
eventMmsg += " - Playing"
|
||||
|
||||
if(C.is_afk())
|
||||
var/seconds = C.last_activity_seconds()
|
||||
mentmsg += " (AFK - "
|
||||
mentmsg += "[round(seconds / 60)] minutes, "
|
||||
mentmsg += "[seconds % 60] seconds)"
|
||||
mentmsg += "\n"
|
||||
num_mentors_online++
|
||||
eventMmsg += " (AFK - "
|
||||
eventMmsg += "[round(seconds / 60)] minutes, "
|
||||
eventMmsg += "[seconds % 60] seconds)"
|
||||
eventMmsg += "\n"
|
||||
num_event_managers_online++
|
||||
|
||||
else
|
||||
for(var/client/C in admins)
|
||||
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_MENTOR & C.holder.rights))
|
||||
if(R_ADMIN & C.holder.rights || (!R_MOD & C.holder.rights && !R_EVENT & C.holder.rights))
|
||||
if(!C.holder.fakekey)
|
||||
msg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_admins_online++
|
||||
@@ -166,9 +166,9 @@
|
||||
else if (R_SERVER & C.holder.rights)
|
||||
devmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_devs_online++
|
||||
else if (R_MENTOR & C.holder.rights)
|
||||
mentmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_mentors_online++
|
||||
else if (R_EVENT & C.holder.rights)
|
||||
eventMmsg += "\t[C] is a [C.holder.rank]\n"
|
||||
num_event_managers_online++
|
||||
|
||||
if(config.admin_irc)
|
||||
src << "<span class='info'>Adminhelps are also sent to IRC. If no admins are available in game try anyway and an admin on IRC may see it and respond.</span>"
|
||||
@@ -180,7 +180,7 @@
|
||||
if(config.show_devs)
|
||||
msg += "\n<b> Current Developers ([num_devs_online]):</b>\n" + devmsg
|
||||
|
||||
if(config.show_mentors)
|
||||
msg += "\n<b> Current Mentors ([num_mentors_online]):</b>\n" + mentmsg
|
||||
if(config.show_event_managers)
|
||||
msg += "\n<b> Current Event Managers ([num_event_managers_online]):</b>\n" + eventMmsg
|
||||
|
||||
src << msg
|
||||
|
||||
@@ -860,7 +860,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
set desc="Delay the game start/end"
|
||||
set name="Delay"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
if(!check_rights(R_SERVER|R_EVENT)) return
|
||||
if (!ticker || ticker.current_state != GAME_STATE_PREGAME)
|
||||
ticker.delay_end = !ticker.delay_end
|
||||
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
|
||||
@@ -1225,16 +1225,16 @@ proc/admin_notice(var/message, var/rights)
|
||||
|
||||
|
||||
/*
|
||||
helper proc to test if someone is a mentor or not. Got tired of writing this same check all over the place.
|
||||
helper proc to test if someone is an event manager or not. Got tired of writing this same check all over the place.
|
||||
*/
|
||||
/proc/is_mentor(client/C)
|
||||
/proc/is_eventM(client/C)
|
||||
|
||||
if(!istype(C))
|
||||
return 0
|
||||
if(!C.holder)
|
||||
return 0
|
||||
|
||||
if(C.holder.rights == R_MENTOR)
|
||||
if(C.holder.rights == R_EVENT)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
@@ -1266,7 +1266,7 @@ proc/admin_notice(var/message, var/rights)
|
||||
var/ref_mob = "\ref[M]"
|
||||
return "<b>[key_name(C, link, name, highlight_special)](<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>)([admin_jump_link(M, src)]) (<A HREF='?_src_=holder;take_question=\ref[M]'>TAKE</A>)</b>"
|
||||
|
||||
if(4) //Mentors
|
||||
if(4) //Event Managers
|
||||
var/ref_mob = "\ref[M]"
|
||||
return "<b>[key_name(C, link, name, highlight_special)] (<A HREF='?_src_=holder;adminmoreinfo=\ref[M]'>?</A>) (<A HREF='?_src_=holder;adminplayeropts=[ref_mob]'>PP</A>) (<A HREF='?_src_=vars;Vars=[ref_mob]'>VV</A>) (<A HREF='?_src_=holder;subtlemessage=[ref_mob]'>SM</A>) ([admin_jump_link(M, src)]) (<A HREF='?_src_=holder;take_question=\ref[M]'>TAKE</A>)</b>"
|
||||
|
||||
|
||||
@@ -37,11 +37,11 @@ var/list/admin_ranks = list() //list of all ranks with associated rights
|
||||
if("stealth") rights |= R_STEALTH
|
||||
if("rejuv","rejuvinate") rights |= R_REJUVINATE
|
||||
if("varedit") rights |= R_VAREDIT
|
||||
if("everything","host","all") rights |= (R_HOST | R_BUILDMODE | R_ADMIN | R_BAN | R_FUN | R_SERVER | R_DEBUG | R_PERMISSIONS | R_POSSESS | R_STEALTH | R_REJUVINATE | R_VAREDIT | R_SOUNDS | R_SPAWN | R_MOD| R_MENTOR)
|
||||
if("everything","host","all") rights |= (R_HOST | R_BUILDMODE | R_ADMIN | R_BAN | R_FUN | R_SERVER | R_DEBUG | R_PERMISSIONS | R_POSSESS | R_STEALTH | R_REJUVINATE | R_VAREDIT | R_SOUNDS | R_SPAWN | R_MOD| R_EVENT)
|
||||
if("sound","sounds") rights |= R_SOUNDS
|
||||
if("spawn","create") rights |= R_SPAWN
|
||||
if("mod") rights |= R_MOD
|
||||
if("mentor") rights |= R_MENTOR
|
||||
if("event") rights |= R_EVENT
|
||||
|
||||
admin_ranks[rank] = rights
|
||||
previous_rights = rights
|
||||
|
||||
@@ -8,7 +8,7 @@ var/list/admin_verbs_default = list(
|
||||
/client/proc/debug_variables, //allows us to -see- the variables of any instance in the game. +VAREDIT needed to modify,
|
||||
// /client/proc/check_antagonists, //shows all antags,
|
||||
// /client/proc/cmd_mod_say,
|
||||
/client/proc/cmd_mentor_check_new_players,
|
||||
/client/proc/cmd_eventM_check_new_players,
|
||||
// /client/proc/deadchat //toggles deadchat on/off,
|
||||
// /client/proc/toggle_ahelp_sound,
|
||||
)
|
||||
@@ -186,7 +186,7 @@ var/list/admin_verbs_debug = list(
|
||||
/client/proc/cmd_debug_tog_aliens,
|
||||
/client/proc/air_report,
|
||||
/client/proc/reload_admins,
|
||||
/client/proc/reload_mentors,
|
||||
/client/proc/reload_eventMs,
|
||||
/client/proc/restart_controller,
|
||||
/datum/admins/proc/restart,
|
||||
/client/proc/print_random_map,
|
||||
@@ -327,19 +327,53 @@ var/list/admin_verbs_mod = list(
|
||||
/client/proc/getserverlog, //allows us to fetch server logs (diary) for other days,
|
||||
/datum/admins/proc/view_txt_log, //shows the server log (diary) for today,
|
||||
/datum/admins/proc/view_atk_log //shows the server combat-log, doesn't do anything presently,
|
||||
|
||||
|
||||
)
|
||||
|
||||
var/list/admin_verbs_mentor = list(
|
||||
var/list/admin_verbs_event_manager = list(
|
||||
/client/proc/cmd_admin_pm_context,
|
||||
/client/proc/cmd_admin_pm_panel,
|
||||
/datum/admins/proc/PlayerNotes,
|
||||
/client/proc/admin_ghost,
|
||||
/client/proc/cmd_mod_say,
|
||||
/datum/admins/proc/show_player_info,
|
||||
// /client/proc/dsay,
|
||||
/client/proc/cmd_admin_subtle_message
|
||||
/client/proc/dsay,
|
||||
/client/proc/cmd_admin_subtle_message,
|
||||
/client/proc/debug_variables,
|
||||
/client/proc/check_antagonists,
|
||||
/client/proc/aooc,
|
||||
/datum/admins/proc/paralyze_mob,
|
||||
/client/proc/cmd_admin_direct_narrate,
|
||||
/client/proc/allow_character_respawn,
|
||||
/datum/admins/proc/sendFax,
|
||||
/client/proc/respawn_character,
|
||||
/proc/possess,
|
||||
/proc/release,
|
||||
/client/proc/callproc,
|
||||
/client/proc/callproc_target,
|
||||
/client/proc/debug_controller,
|
||||
/client/proc/show_gm_status,
|
||||
/datum/admins/proc/change_weather,
|
||||
/datum/admins/proc/change_time,
|
||||
/client/proc/admin_give_modifier,
|
||||
/client/proc/Jump,
|
||||
/client/proc/jumptomob,
|
||||
/client/proc/jumptocoord,
|
||||
/client/proc/cmd_admin_delete,
|
||||
/datum/admins/proc/delay,
|
||||
/client/proc/Set_Holiday,
|
||||
/client/proc/make_sound,
|
||||
/client/proc/toggle_random_events,
|
||||
/datum/admins/proc/cmd_admin_dress,
|
||||
/client/proc/cmd_admin_gib_self,
|
||||
/client/proc/drop_bomb,
|
||||
/client/proc/cmd_admin_add_freeform_ai_law,
|
||||
/client/proc/cmd_admin_add_random_ai_law,
|
||||
/client/proc/make_sound,
|
||||
/client/proc/toggle_random_events,
|
||||
/client/proc/editappear,
|
||||
/client/proc/roll_dices,
|
||||
/datum/admins/proc/call_supply_drop,
|
||||
/datum/admins/proc/call_drop_pod
|
||||
)
|
||||
|
||||
/client/proc/add_admin_verbs()
|
||||
@@ -361,7 +395,7 @@ var/list/admin_verbs_mentor = list(
|
||||
if(holder.rights & R_SOUNDS) verbs += admin_verbs_sounds
|
||||
if(holder.rights & R_SPAWN) verbs += admin_verbs_spawn
|
||||
if(holder.rights & R_MOD) verbs += admin_verbs_mod
|
||||
if(holder.rights & R_MENTOR) verbs += admin_verbs_mentor
|
||||
if(holder.rights & R_EVENT) verbs += admin_verbs_event_manager
|
||||
|
||||
/client/proc/remove_admin_verbs()
|
||||
verbs.Remove(
|
||||
@@ -424,12 +458,10 @@ var/list/admin_verbs_mentor = list(
|
||||
if(istype(mob,/mob/observer/dead))
|
||||
//re-enter
|
||||
var/mob/observer/dead/ghost = mob
|
||||
if(!is_mentor(usr.client))
|
||||
ghost.can_reenter_corpse = 1
|
||||
if(ghost.can_reenter_corpse)
|
||||
ghost.reenter_corpse()
|
||||
else
|
||||
ghost << "<font color='red'>Error: Aghost: Can't reenter corpse, mentors that use adminHUD while aghosting are not permitted to enter their corpse again</font>"
|
||||
ghost << "<font color='red'>Error: Aghost: Can't reenter corpse, event managers that use adminHUD while aghosting are not permitted to enter their corpse again</font>"
|
||||
return
|
||||
|
||||
feedback_add_details("admin_verb","P") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
@@ -367,7 +367,7 @@
|
||||
|
||||
if(usr.client)
|
||||
var/client/C = usr.client
|
||||
if(is_mentor(C))
|
||||
if(is_eventM(C))
|
||||
dat += {"<td align=center> N/A </td>"}
|
||||
else
|
||||
switch(is_special_character(M))
|
||||
|
||||
@@ -237,7 +237,7 @@
|
||||
href_list["secretsadmin"] = "check_antagonist"
|
||||
|
||||
else if(href_list["delay_round_end"])
|
||||
if(!check_rights(R_SERVER)) return
|
||||
if(!check_rights(R_SERVER|R_EVENT)) return
|
||||
|
||||
ticker.delay_end = !ticker.delay_end
|
||||
log_admin("[key_name(usr)] [ticker.delay_end ? "delayed the round end" : "has made the round end normally"].")
|
||||
@@ -1194,7 +1194,7 @@
|
||||
show_player_panel(M)
|
||||
|
||||
else if(href_list["adminplayerobservejump"])
|
||||
if(!check_rights(R_MENTOR|R_MOD|R_ADMIN|R_SERVER)) return
|
||||
if(!check_rights(R_EVENT|R_MOD|R_ADMIN|R_SERVER|R_EVENT)) return
|
||||
|
||||
var/mob/M = locate(href_list["adminplayerobservejump"])
|
||||
|
||||
@@ -1204,7 +1204,7 @@
|
||||
C.jumptomob(M)
|
||||
|
||||
else if(href_list["adminplayerobservefollow"])
|
||||
if(!check_rights(R_MENTOR|R_MOD|R_ADMIN|R_SERVER))
|
||||
if(!check_rights(R_EVENT|R_MOD|R_ADMIN|R_SERVER|R_EVENT))
|
||||
return
|
||||
|
||||
var/mob/M = locate(href_list["adminplayerobservefollow"])
|
||||
@@ -1224,14 +1224,14 @@
|
||||
if(ismob(M))
|
||||
var/take_msg = "<span class='notice'><b>ADMINHELP</b>: <b>[key_name(usr.client)]</b> is attending to <b>[key_name(M)]'s</b> adminhelp, please don't dogpile them.</span>"
|
||||
for(var/client/X in admins)
|
||||
if((R_ADMIN|R_MOD|R_MENTOR) & X.holder.rights)
|
||||
if((R_ADMIN|R_MOD|R_EVENT) & X.holder.rights)
|
||||
to_chat(X, take_msg)
|
||||
to_chat(M, "<span class='notice'><b>Your adminhelp is being attended to by [usr.client]. Thanks for your patience!</b></span>")
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Unable to locate mob.</span>")
|
||||
|
||||
else if(href_list["adminplayerobservecoodjump"])
|
||||
if(!check_rights(R_ADMIN|R_SERVER|R_MOD)) return
|
||||
if(!check_rights(R_ADMIN|R_SERVER|R_MOD|R_EVENT)) return
|
||||
|
||||
var/x = text2num(href_list["X"])
|
||||
var/y = text2num(href_list["Y"])
|
||||
@@ -1843,7 +1843,7 @@
|
||||
vsc.SetDefault(usr)
|
||||
|
||||
else if(href_list["toglang"])
|
||||
if(check_rights(R_SPAWN))
|
||||
if(check_rights(R_SPAWN|R_EVENT))
|
||||
var/mob/M = locate(href_list["toglang"])
|
||||
if(!istype(M))
|
||||
usr << "[M] is illegal type, must be /mob!"
|
||||
|
||||
@@ -88,24 +88,20 @@ var/list/adminhelp_ignored_words = list("unknown","the","a","an","of","monkey","
|
||||
if(ai_found)
|
||||
ai_cl = " (<A HREF='?_src_=holder;adminchecklaws=\ref[mob]'>CL</A>)"
|
||||
|
||||
//Options bar: mob, details ( admin = 2, dev = 3, mentor = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
|
||||
//Options bar: mob, details ( admin = 2, dev = 3, event manager = 4, character name (0 = just ckey, 1 = ckey and character name), link? (0 no don't make it a link, 1 do so),
|
||||
// highlight special roles (0 = everyone has same looking name, 1 = antags / special roles get a golden name)
|
||||
|
||||
var/mentor_msg = "<b><font color=red>Request for Help: </font></b><font color='blue'><b>[get_options_bar(mob, 4, 1, 1, 0)][ai_cl]:</b> [msg]</font>"
|
||||
msg = "<b><font color=red>Request for Help: </font></b><font color='blue'><b>[get_options_bar(mob, 2, 1, 1)][ai_cl]</b> [msg]</font>"
|
||||
|
||||
var/admin_number_afk = 0
|
||||
|
||||
for(var/client/X in admins)
|
||||
if((R_ADMIN|R_MOD|R_MENTOR|R_SERVER) & X.holder.rights)
|
||||
if((R_ADMIN|R_MOD|R_EVENT|R_SERVER) & X.holder.rights)
|
||||
if(X.is_afk())
|
||||
admin_number_afk++
|
||||
X << msg
|
||||
if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping))
|
||||
X << 'sound/effects/adminhelp.ogg'
|
||||
if(X.holder.rights == R_MENTOR)
|
||||
X << mentor_msg // Mentors won't see coloring of names on people with special_roles (Antags, etc.)
|
||||
else
|
||||
X << msg
|
||||
|
||||
//show it to the person adminhelping too
|
||||
src << "<font color='blue'>PM to-<b>Staff </b>: [original_msg]</font>"
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
//check client/X is an admin and isn't the sender or recipient
|
||||
if(X == C || X == src)
|
||||
continue
|
||||
if(X.key != key && X.key != C.key && (X.holder.rights & R_ADMIN|R_MOD|R_MENTOR))
|
||||
if(X.key != key && X.key != C.key && (X.holder.rights & R_ADMIN|R_MOD|R_EVENT))
|
||||
X << "<span class='pm'><span class='other'>" + create_text_tag("pm_other", "PM:", X) + " <span class='name'>[key_name(src, X, 0)]</span> to <span class='name'>[key_name(C, X, 0)]</span>: <span class='message'>[msg]</span></span></span>"
|
||||
|
||||
/client/proc/cmd_admin_irc_pm(sender)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
set name = "Msay"
|
||||
set hidden = 1
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_MENTOR|R_SERVER))
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_SERVER))
|
||||
return
|
||||
|
||||
msg = sanitize(msg)
|
||||
@@ -45,7 +45,7 @@
|
||||
set name = "Esay"
|
||||
set hidden = 1
|
||||
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_MENTOR|R_SERVER))
|
||||
if(!check_rights(R_ADMIN|R_MOD|R_EVENT|R_SERVER))
|
||||
return
|
||||
|
||||
msg = sanitize(msg)
|
||||
|
||||
@@ -408,10 +408,10 @@
|
||||
feedback_add_details("admin_verb","SEQ")
|
||||
dressup_human(H, outfit, 1)
|
||||
|
||||
/proc/dressup_human(var/mob/living/carbon/human/H, var/decl/hierarchy/outfit/outfit, var/undress = 1)
|
||||
/proc/dressup_human(var/mob/living/carbon/human/H, var/decl/hierarchy/outfit/outfit)
|
||||
if(!H || !outfit)
|
||||
return
|
||||
if(undress)
|
||||
if(outfit.undress)
|
||||
H.delete_inventory()
|
||||
outfit.equip(H)
|
||||
log_and_message_admins("changed the equipment of [key_name(H)] to [outfit.name].")
|
||||
|
||||
@@ -108,13 +108,13 @@
|
||||
load_admins()
|
||||
feedback_add_details("admin_verb","RLDA") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/reload_mentors()
|
||||
set name = "Reload Mentors"
|
||||
/client/proc/reload_eventMs()
|
||||
set name = "Reload Event Managers"
|
||||
set category = "Debug"
|
||||
|
||||
if(!check_rights(R_SERVER)) return
|
||||
|
||||
message_admins("[usr] manually reloaded Mentors")
|
||||
message_admins("[usr] manually reloaded Event Managers")
|
||||
world.load_mods()
|
||||
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
message_admins("<font color='blue'><B>SubtleMessage: [key_name_admin(usr)] -> [key_name_admin(M)] : [msg]</B></font>", 1)
|
||||
feedback_add_details("admin_verb","SMS") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||
|
||||
/client/proc/cmd_mentor_check_new_players() //Allows mentors / admins to determine who the newer players are.
|
||||
/client/proc/cmd_eventM_check_new_players() //Allows event managers / admins to determine who the newer players are.
|
||||
set category = "Admin"
|
||||
set name = "Check new Players"
|
||||
if(!holder)
|
||||
@@ -82,7 +82,7 @@
|
||||
var/msg = ""
|
||||
|
||||
var/highlight_special_characters = 1
|
||||
if(is_mentor(usr.client))
|
||||
if(is_eventM(usr.client))
|
||||
highlight_special_characters = 0
|
||||
|
||||
for(var/client/C in clients)
|
||||
@@ -610,7 +610,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set category = "Special Verbs"
|
||||
set name = "Explosion"
|
||||
|
||||
if(!check_rights(R_DEBUG|R_FUN)) return
|
||||
if(!check_rights(R_DEBUG|R_FUN|R_EVENT)) return
|
||||
|
||||
var/devastation = input("Range of total devastation. -1 to none", text("Input")) as num|null
|
||||
if(devastation == null) return
|
||||
@@ -638,7 +638,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set category = "Special Verbs"
|
||||
set name = "EM Pulse"
|
||||
|
||||
if(!check_rights(R_DEBUG|R_FUN)) return
|
||||
if(!check_rights(R_DEBUG|R_FUN|R_EVENT)) return
|
||||
|
||||
var/heavy = input("Range of heavy pulse.", text("Input")) as num|null
|
||||
if(heavy == null) return
|
||||
@@ -664,7 +664,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set category = "Special Verbs"
|
||||
set name = "Gib"
|
||||
|
||||
if(!check_rights(R_ADMIN|R_FUN)) return
|
||||
if(!check_rights(R_ADMIN|R_FUN|R_EVENT)) return
|
||||
|
||||
var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
|
||||
if(confirm != "Yes") return
|
||||
@@ -820,7 +820,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if ((!( ticker ) || !emergency_shuttle.location()))
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
|
||||
var/confirm = alert(src, "You sure?", "Confirm", "Yes", "No")
|
||||
if(confirm != "Yes") return
|
||||
@@ -849,7 +849,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set category = "Admin"
|
||||
set name = "Cancel Shuttle"
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
|
||||
if(alert(src, "You sure?", "Confirm", "Yes", "No") != "Yes") return
|
||||
|
||||
@@ -870,7 +870,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
if (!ticker)
|
||||
return
|
||||
|
||||
if(!check_rights(R_ADMIN)) return
|
||||
if(!check_rights(R_ADMIN|R_EVENT)) return
|
||||
|
||||
emergency_shuttle.deny_shuttle = !emergency_shuttle.deny_shuttle
|
||||
|
||||
@@ -926,7 +926,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
set name = "Toggle random events on/off"
|
||||
|
||||
set desc = "Toggles random events such as meteors, black holes, blob (but not space dust) on/off"
|
||||
if(!check_rights(R_SERVER)) return
|
||||
if(!check_rights(R_SERVER|R_EVENT)) return
|
||||
|
||||
if(!config.allow_random_events)
|
||||
config.allow_random_events = 1
|
||||
|
||||
@@ -548,6 +548,7 @@
|
||||
var/blood_overlay_type = "suit"
|
||||
siemens_coefficient = 0.9
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
preserve_item = 1
|
||||
|
||||
sprite_sheets = list(
|
||||
"Teshari" = 'icons/mob/species/seromi/suit.dmi',
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
force = 3
|
||||
overshoes = 1
|
||||
shoes_under_pants = -1 //These things are huge
|
||||
preserve_item = 1
|
||||
var/magpulse = 0
|
||||
var/icon_base = "magboots"
|
||||
action_button_name = "Toggle Magboots"
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
siemens_coefficient = 0.2
|
||||
permeability_coefficient = 0.1
|
||||
unacidable = 1
|
||||
preserve_item = 1
|
||||
|
||||
var/interface_path = "hardsuit.tmpl"
|
||||
var/ai_interface_path = "hardsuit.tmpl"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.9
|
||||
species_restricted = list("exclude","Diona")
|
||||
preserve_item = 1
|
||||
|
||||
var/obj/machinery/camera/camera
|
||||
var/list/camera_networks
|
||||
@@ -59,6 +60,7 @@
|
||||
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.9
|
||||
species_restricted = list("exclude","Diona")
|
||||
preserve_item = 1
|
||||
|
||||
var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit.
|
||||
|
||||
|
||||
@@ -18,4 +18,22 @@
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60)
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs)
|
||||
siemens_coefficient = 0.6
|
||||
siemens_coefficient = 0.6
|
||||
|
||||
/obj/item/clothing/head/helmet/space/void/merc/fire
|
||||
icon_state = "rig0-firebug"
|
||||
name = "soot-covered voidsuit helmet"
|
||||
desc = "A blackened helmet that has had many of its protective plates coated in or replaced with high-grade thermal insulation, to protect against incineration. Property of Gorlex Marauders."
|
||||
armor = list(melee = 40, bullet = 40, laser = 60, energy = 20, bomb = 50, bio = 100, rad = 50)
|
||||
max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
siemens_coefficient = 0.7
|
||||
light_overlay = "helmet_light_fire"
|
||||
|
||||
/obj/item/clothing/suit/space/void/merc/fire
|
||||
icon_state = "rig-firebug"
|
||||
name = "soot-covered voidsuit"
|
||||
desc = "A blackened suit that has had many of its protective plates coated in or replaced with high-grade thermal insulation, to protect against incineration. Property of Gorlex Marauders."
|
||||
armor = list(melee = 40, bullet = 40, laser = 60, energy = 20, bomb = 50, bio = 100, rad = 50)
|
||||
max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE
|
||||
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs,/obj/item/weapon/material/twohanded/fireaxe,/obj/item/weapon/flamethrower)
|
||||
siemens_coefficient = 0.7
|
||||
|
||||
@@ -310,7 +310,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
|
||||
if(!client)
|
||||
return
|
||||
var/mentor = is_mentor(usr.client)
|
||||
var/mentor = is_eventM(usr.client)
|
||||
if(!config.antag_hud_allowed && (!client.holder || mentor))
|
||||
src << "<font color='red'>Admins have disabled this for this round.</font>"
|
||||
return
|
||||
|
||||
@@ -174,9 +174,11 @@
|
||||
if ("clap")
|
||||
if (!src.restrained())
|
||||
message = "claps."
|
||||
playsound(src.loc, 'sound/misc/clapping.ogg')
|
||||
m_type = 2
|
||||
if(miming)
|
||||
m_type = 1
|
||||
|
||||
if ("flap")
|
||||
if (!src.restrained())
|
||||
message = "flaps [get_visible_gender() == MALE ? "his" : get_visible_gender() == FEMALE ? "her" : "their"] wings."
|
||||
@@ -700,6 +702,20 @@
|
||||
vomit()
|
||||
return
|
||||
|
||||
if("whistle" || "whistles")
|
||||
if(!muzzled)
|
||||
message = "whistles a tune."
|
||||
playsound(loc, 'sound/misc/longwhistle.ogg') //praying this doesn't get abused
|
||||
else
|
||||
message = "makes a light spitting noise, a poor attempt at a whistle."
|
||||
|
||||
if("qwhistle")
|
||||
if(!muzzled)
|
||||
message = "whistles quietly."
|
||||
playsound(loc, 'sound/misc/shortwhistle.ogg')
|
||||
else
|
||||
message = "makes a light spitting noise, a poor attempt at a whistle."
|
||||
|
||||
if ("help")
|
||||
src << "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough, cry, custom, deathgasp, drool, eyebrow, fastsway/qwag, \
|
||||
frown, gasp, giggle, glare-(none)/mob, grin, groan, grumble, handshake, hug-(none)/mob, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, \
|
||||
|
||||
@@ -1241,7 +1241,7 @@
|
||||
W.message = message
|
||||
W.add_fingerprint(src)
|
||||
|
||||
/mob/living/carbon/human/can_inject(var/mob/user, var/error_msg, var/target_zone)
|
||||
/mob/living/carbon/human/can_inject(var/mob/user, var/error_msg, var/target_zone, var/ignore_thickness = FALSE)
|
||||
. = 1
|
||||
|
||||
if(!target_zone)
|
||||
@@ -1261,10 +1261,10 @@
|
||||
else
|
||||
switch(target_zone)
|
||||
if(BP_HEAD)
|
||||
if(head && head.item_flags & THICKMATERIAL)
|
||||
if(head && (head.item_flags & THICKMATERIAL) && !ignore_thickness)
|
||||
. = 0
|
||||
else
|
||||
if(wear_suit && wear_suit.item_flags & THICKMATERIAL)
|
||||
if(wear_suit && (wear_suit.item_flags & THICKMATERIAL) && !ignore_thickness)
|
||||
. = 0
|
||||
if(!. && error_msg && user)
|
||||
if(!fail_msg)
|
||||
|
||||
@@ -26,12 +26,13 @@
|
||||
)
|
||||
var/id
|
||||
|
||||
// All syndie modules get these, and the base borg items (flash, crowbar, etc).
|
||||
/obj/item/weapon/robot_module/robot/syndicate/New(var/mob/living/silicon/robot/R)
|
||||
..()
|
||||
loc = R
|
||||
src.modules += new /obj/item/weapon/pinpointer/shuttle/merc(src)
|
||||
src.modules += new /obj/item/weapon/melee/energy/sword(src)
|
||||
src.modules += new /obj/item/weapon/gun/energy/pulse_rifle/destroyer(src)
|
||||
src.modules += new /obj/item/weapon/card/emag(src)
|
||||
|
||||
var/jetpack = new/obj/item/weapon/tank/jetpack/carbondioxide(src)
|
||||
src.modules += jetpack
|
||||
R.internals = jetpack
|
||||
@@ -43,3 +44,141 @@
|
||||
src.modules -= id
|
||||
id = null
|
||||
return ..()
|
||||
|
||||
// Gets a big shield and a gun that shoots really fast to scare the opposing force.
|
||||
/obj/item/weapon/robot_module/robot/syndicate/protector
|
||||
name = "protector robot module"
|
||||
sprites = list(
|
||||
"Cerberus - Treaded" = "syndie_treadhound",
|
||||
"Cerberus" = "syndie_bloodhound",
|
||||
"Ares" = "squats",
|
||||
"XI-ALP" = "syndi-heavy"
|
||||
)
|
||||
|
||||
/obj/item/weapon/robot_module/robot/syndicate/protector/New(var/mob/living/silicon/robot/R)
|
||||
..()
|
||||
src.modules += new /obj/item/shield_projector/rectangle/weak(src)
|
||||
src.modules += new /obj/item/weapon/gun/energy/dakkalaser(src)
|
||||
src.modules += new /obj/item/weapon/handcuffs/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/melee/baton/robot(src)
|
||||
|
||||
// 95% engi-borg and 15% roboticist.
|
||||
/obj/item/weapon/robot_module/robot/syndicate/mechanist
|
||||
name = "mechanist robot module"
|
||||
sprites = list(
|
||||
"XI-GUS" = "spidersyndi",
|
||||
"WTOperator" = "sleekhos"
|
||||
)
|
||||
|
||||
/obj/item/weapon/robot_module/robot/syndicate/mechanist/New(var/mob/living/silicon/robot/R)
|
||||
..()
|
||||
// General engineering/hacking.
|
||||
src.modules += new /obj/item/borg/sight/meson(src)
|
||||
src.modules += new /obj/item/weapon/weldingtool/electric/mounted/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/screwdriver/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/wrench/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/wirecutters/cyborg(src)
|
||||
src.modules += new /obj/item/device/multitool/ai_detector(src)
|
||||
src.modules += new /obj/item/weapon/pickaxe/plasmacutter(src)
|
||||
src.modules += new /obj/item/weapon/rcd/borg/lesser(src) // Can't eat rwalls to prevent AI core cheese.
|
||||
src.modules += new /obj/item/weapon/melee/energy/sword/ionic_rapier(src)
|
||||
|
||||
// FBP repair.
|
||||
src.modules += new /obj/item/device/robotanalyzer(src)
|
||||
src.modules += new /obj/item/weapon/shockpaddles/robot/jumper(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/organ/robotics(src)
|
||||
|
||||
// Hacking other things.
|
||||
src.modules += new /obj/item/weapon/card/robot(src)
|
||||
src.modules += new /obj/item/weapon/card/emag(src)
|
||||
|
||||
// Materials.
|
||||
var/datum/matter_synth/nanite = new /datum/matter_synth/nanite(10000)
|
||||
synths += nanite
|
||||
var/datum/matter_synth/wire = new /datum/matter_synth/wire()
|
||||
synths += wire
|
||||
var/datum/matter_synth/metal = new /datum/matter_synth/metal(40000)
|
||||
synths += metal
|
||||
var/datum/matter_synth/glass = new /datum/matter_synth/glass(40000)
|
||||
synths += glass
|
||||
|
||||
var/obj/item/stack/nanopaste/N = new /obj/item/stack/nanopaste(src)
|
||||
N.uses_charge = 1
|
||||
N.charge_costs = list(1000)
|
||||
N.synths = list(nanite)
|
||||
src.modules += N
|
||||
|
||||
var/obj/item/stack/material/cyborg/steel/M = new (src)
|
||||
M.synths = list(metal)
|
||||
src.modules += M
|
||||
|
||||
var/obj/item/stack/material/cyborg/glass/G = new (src)
|
||||
G.synths = list(glass)
|
||||
src.modules += G
|
||||
|
||||
var/obj/item/stack/rods/cyborg/rods = new /obj/item/stack/rods/cyborg(src)
|
||||
rods.synths = list(metal)
|
||||
src.modules += rods
|
||||
|
||||
var/obj/item/stack/cable_coil/cyborg/C = new /obj/item/stack/cable_coil/cyborg(src)
|
||||
C.synths = list(wire)
|
||||
src.modules += C
|
||||
|
||||
var/obj/item/stack/material/cyborg/glass/reinforced/RG = new (src)
|
||||
RG.synths = list(metal, glass)
|
||||
src.modules += RG
|
||||
|
||||
|
||||
|
||||
|
||||
// Mediborg optimized for on-the-field healing, but can also do surgery if needed.
|
||||
/obj/item/weapon/robot_module/robot/syndicate/combat_medic
|
||||
name = "combat medic robot module"
|
||||
sprites = list(
|
||||
"Telemachus" = "toiletbotantag"
|
||||
)
|
||||
|
||||
/obj/item/weapon/robot_module/robot/syndicate/combat_medic/New(var/mob/living/silicon/robot/R)
|
||||
..()
|
||||
src.modules += new /obj/item/borg/sight/hud/med(src)
|
||||
src.modules += new /obj/item/device/healthanalyzer(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/borghypo/merc(src)
|
||||
|
||||
// Surgery things.
|
||||
src.modules += new /obj/item/weapon/surgical/scalpel/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/hemostat/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/retractor/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/cautery/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/bonegel/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/FixOVein/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/bonesetter/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/circular_saw/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/surgical/surgicaldrill/cyborg(src)
|
||||
src.modules += new /obj/item/weapon/gripper/no_use/organ(src)
|
||||
|
||||
// General healing.
|
||||
src.modules += new /obj/item/weapon/gripper/medical(src)
|
||||
src.modules += new /obj/item/weapon/shockpaddles/robot/combat(src)
|
||||
src.modules += new /obj/item/weapon/reagent_containers/dropper(src) // Allows borg to fix necrosis apparently
|
||||
src.modules += new /obj/item/weapon/reagent_containers/syringe(src)
|
||||
src.modules += new /obj/item/roller_holder(src)
|
||||
|
||||
// Materials.
|
||||
var/datum/matter_synth/medicine = new /datum/matter_synth/medicine(15000)
|
||||
synths += medicine
|
||||
|
||||
var/obj/item/stack/medical/advanced/ointment/O = new /obj/item/stack/medical/advanced/ointment(src)
|
||||
var/obj/item/stack/medical/advanced/bruise_pack/B = new /obj/item/stack/medical/advanced/bruise_pack(src)
|
||||
var/obj/item/stack/medical/splint/S = new /obj/item/stack/medical/splint(src)
|
||||
O.uses_charge = 1
|
||||
O.charge_costs = list(1000)
|
||||
O.synths = list(medicine)
|
||||
B.uses_charge = 1
|
||||
B.charge_costs = list(1000)
|
||||
B.synths = list(medicine)
|
||||
S.uses_charge = 1
|
||||
S.charge_costs = list(1000)
|
||||
S.synths = list(medicine)
|
||||
src.modules += O
|
||||
src.modules += B
|
||||
src.modules += S
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/gravekeeper/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/lost/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
/mob/living/silicon/robot/syndicate
|
||||
lawupdate = 0
|
||||
scrambledcodes = 1
|
||||
icon_state = "syndie_bloodhound"
|
||||
modtype = "Syndicate"
|
||||
lawchannel = "State"
|
||||
braintype = "Drone"
|
||||
idcard_type = /obj/item/weapon/card/id/syndicate
|
||||
icon_selected = FALSE
|
||||
|
||||
/mob/living/silicon/robot/syndicate/init()
|
||||
aiCamera = new/obj/item/device/camera/siliconcam/robot_camera(src)
|
||||
|
||||
mmi = new /obj/item/device/mmi/digital/robot(src) // Explicitly a drone.
|
||||
overlays.Cut()
|
||||
init_id()
|
||||
|
||||
updatename("Syndicate")
|
||||
|
||||
if(!cell)
|
||||
cell = new /obj/item/weapon/cell/high(src) // 15k cell, because Antag.
|
||||
|
||||
laws = new /datum/ai_laws/syndicate_override()
|
||||
|
||||
radio.keyslot = new /obj/item/device/encryptionkey/syndicate(radio)
|
||||
radio.recalculateChannels()
|
||||
|
||||
playsound(loc, 'sound/mecha/nominalsyndi.ogg', 75, 0)
|
||||
|
||||
/mob/living/silicon/robot/syndicate/protector/init()
|
||||
..()
|
||||
module = new /obj/item/weapon/robot_module/robot/syndicate/protector(src)
|
||||
updatename("Protector")
|
||||
|
||||
/mob/living/silicon/robot/syndicate/mechanist/init()
|
||||
..()
|
||||
module = new /obj/item/weapon/robot_module/robot/syndicate/mechanist(src)
|
||||
updatename("Mechanist")
|
||||
|
||||
/mob/living/silicon/robot/syndicate/combat_medic/init()
|
||||
..()
|
||||
module = new /obj/item/weapon/robot_module/robot/syndicate/combat_medic(src)
|
||||
updatename("Combat Medic")
|
||||
|
||||
/mob/living/silicon/robot/syndicate/speech_bubble_appearance()
|
||||
return "synthetic_evil"
|
||||
@@ -66,6 +66,19 @@
|
||||
projectiletype = /obj/item/projectile/energy/neurotoxin/toxic
|
||||
projectilesound = 'sound/weapons/pierce.ogg'
|
||||
|
||||
/mob/living/simple_animal/hostile/alien/sentinel/praetorian
|
||||
name = "alien praetorian"
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
icon_state = "prat_s"
|
||||
icon_living = "prat_s"
|
||||
icon_dead = "prat_dead"
|
||||
move_to_delay = 5
|
||||
maxHealth = 200
|
||||
health = 200
|
||||
|
||||
pixel_x = -16
|
||||
old_x = -16
|
||||
meat_amount = 5
|
||||
|
||||
/mob/living/simple_animal/hostile/alien/queen
|
||||
name = "alien queen"
|
||||
@@ -83,15 +96,36 @@
|
||||
rapid = 1
|
||||
status_flags = 0
|
||||
|
||||
/mob/living/simple_animal/hostile/alien/queen/large
|
||||
/mob/living/simple_animal/hostile/alien/queen/empress
|
||||
name = "alien empress"
|
||||
icon = 'icons/mob/alienqueen.dmi'
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
icon_state = "queen_s"
|
||||
icon_living = "queen_s"
|
||||
icon_dead = "queen_dead"
|
||||
move_to_delay = 4
|
||||
maxHealth = 400
|
||||
health = 400
|
||||
meat_amount = 5
|
||||
speed = 1
|
||||
|
||||
pixel_x = -16
|
||||
old_x = -16
|
||||
|
||||
/mob/living/simple_animal/hostile/alien/queen/empress/mother
|
||||
name = "alien mother"
|
||||
icon = 'icons/mob/96x96.dmi'
|
||||
icon_state = "empress_s"
|
||||
icon_living = "empress_s"
|
||||
icon_dead = "empress_dead"
|
||||
maxHealth = 600
|
||||
health = 600
|
||||
meat_amount = 10
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 25
|
||||
speed = 2
|
||||
|
||||
pixel_x = -32
|
||||
old_x = -32
|
||||
|
||||
/mob/living/simple_animal/hostile/alien/death()
|
||||
..()
|
||||
|
||||
@@ -36,6 +36,43 @@
|
||||
|
||||
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/large
|
||||
name = "elder carp"
|
||||
desc = "An older, more matured carp. Few survive to this age due to their aggressiveness."
|
||||
icon = 'icons/mob/64x32.dmi'
|
||||
icon_state = "shark"
|
||||
icon_living = "shark"
|
||||
icon_dead = "shark_dead"
|
||||
turns_per_move = 2
|
||||
move_to_delay = 2
|
||||
mob_size = MOB_LARGE
|
||||
|
||||
pixel_x = -16
|
||||
old_x = -16
|
||||
|
||||
health = 50
|
||||
maxHealth = 50
|
||||
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/large/huge
|
||||
name = "great white carp"
|
||||
desc = "A very rare breed of carp- and a very aggressive one."
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
icon_dead = "megacarp_dead"
|
||||
icon_living = "megacarp"
|
||||
icon_state = "megacarp"
|
||||
maxHealth = 230
|
||||
health = 230
|
||||
attack_same = 1
|
||||
speed = 1
|
||||
|
||||
meat_amount = 10
|
||||
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 25
|
||||
old_y = -16
|
||||
pixel_y = -16
|
||||
|
||||
/mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0)
|
||||
return 1 //No drifting in space for space carp! //original comments do not steal
|
||||
|
||||
@@ -50,4 +87,5 @@
|
||||
if(istype(L))
|
||||
if(prob(15))
|
||||
L.Weaken(3)
|
||||
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
|
||||
L.visible_message("<span class='danger'>\the [src] knocks down \the [L]!</span>")
|
||||
|
||||
|
||||
@@ -74,6 +74,27 @@
|
||||
var/atom/cocoon_target
|
||||
var/egg_inject_chance = 5
|
||||
|
||||
/mob/living/simple_animal/hostile/giant_spider/nurse/queen
|
||||
desc = "Absolutely gigantic, this creature is horror itself."
|
||||
icon = 'icons/mob/64x64.dmi'
|
||||
icon_state = "spider_queen"
|
||||
icon_living = "spider_queen"
|
||||
icon_dead = "spider_queen_dead"
|
||||
|
||||
maxHealth = 320
|
||||
health = 320
|
||||
|
||||
melee_damage_lower = 15
|
||||
melee_damage_upper = 25
|
||||
poison_per_bite = 10
|
||||
|
||||
egg_inject_chance = 10
|
||||
|
||||
pixel_x = -16
|
||||
pixel_y = -16
|
||||
old_x = -16
|
||||
old_y = -16
|
||||
|
||||
//hunters have the most poison and move the fastest, so they can find prey
|
||||
/mob/living/simple_animal/hostile/giant_spider/hunter
|
||||
desc = "Furry and black, it makes you shudder to look at it. This one has sparkling purple eyes."
|
||||
|
||||
@@ -400,7 +400,7 @@ proc/is_blind(A)
|
||||
return // Can't talk in deadchat if you can't see it.
|
||||
|
||||
for(var/mob/M in player_list)
|
||||
if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && !is_mentor(M.client))) && M.is_preference_enabled(/datum/client_preference/show_dsay))
|
||||
if(M.client && ((!istype(M, /mob/new_player) && M.stat == DEAD) || (M.client.holder && !is_eventM(M.client))) && M.is_preference_enabled(/datum/client_preference/show_dsay))
|
||||
var/follow
|
||||
var/lname
|
||||
if(M.forbid_seeing_deadchat && !M.client.holder)
|
||||
|
||||
@@ -25,9 +25,9 @@
|
||||
thing.reagents.remove_reagent(R.id, R.volume)
|
||||
user.put_in_hands(F)
|
||||
|
||||
else if(istype(thing, /obj/machinery/power/supermatter/shard))
|
||||
else if(istype(thing, /obj/machinery/power/supermatter))
|
||||
var/obj/item/weapon/fuel_assembly/F = new(get_turf(src), "supermatter")
|
||||
visible_message("<span class='notice'>\The [src] compresses the \[thing] into a new fuel assembly.</span>")
|
||||
visible_message("<span class='notice'>\The [src] compresses \the [thing] into a new fuel assembly.</span>")
|
||||
qdel(thing)
|
||||
user.put_in_hands(F)
|
||||
return 1
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 1
|
||||
w_class = ITEMSIZE_TINY
|
||||
preserve_item = 1
|
||||
|
||||
var/leaves_residue = 1
|
||||
var/caliber = "" //Which kind of guns it can be loaded into
|
||||
@@ -75,6 +76,7 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throw_speed = 4
|
||||
throw_range = 10
|
||||
preserve_item = 1
|
||||
|
||||
var/list/stored_ammo = list()
|
||||
var/mag_type = SPEEDLOADER //ammo_magazines can only be used with compatible guns. This is not a bitflag, the load_method var on guns is.
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 1800)
|
||||
origin_tech = list(TECH_COMBAT = 1)
|
||||
var/remaining = 9
|
||||
preserve_item = 1
|
||||
|
||||
/obj/item/weapon/magnetic_ammo/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
throw_speed = 4
|
||||
throw_range = 5
|
||||
force = 5
|
||||
preserve_item = 1
|
||||
origin_tech = list(TECH_COMBAT = 1)
|
||||
attack_verb = list("struck", "hit", "bashed")
|
||||
zoomdevicename = "scope"
|
||||
|
||||
@@ -177,4 +177,24 @@ obj/item/weapon/gun/energy/staff/focus
|
||||
charge_cost = 200
|
||||
user << "<span class='warning'>The [src.name] will now strike only a single person.</span>"
|
||||
projectile_type = "/obj/item/projectile/forcebolt"
|
||||
*/
|
||||
*/
|
||||
|
||||
/obj/item/weapon/gun/energy/dakkalaser
|
||||
name = "suppression gun"
|
||||
desc = "A massive weapon, designed to pressure the opposition by raining down a torrent of energy pellets."
|
||||
icon_state = "dakkalaser"
|
||||
item_state = "dakkalaser"
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
w_class = ITEMSIZE_HUGE
|
||||
charge_cost = 24 // 100 shots, it's a spray and pray (to RNGesus) weapon.
|
||||
projectile_type = /obj/item/projectile/energy/blue_pellet
|
||||
self_recharge = 1
|
||||
accuracy = 5 // Suppressive weapons don't work too well if there's no risk of being hit.
|
||||
burst_delay = 1 // Burst faster than average.
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MAGNET = 6, TECH_ILLEGAL = 6)
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="single shot", burst = 1, burst_accuracy = list(5), dispersion = list(0), charge_cost = 24),
|
||||
list(mode_name="five shot burst", burst = 5, burst_accuracy = list(5,5,5,5,5), dispersion = list(1,1,1,1,1)),
|
||||
list(mode_name="ten shot burst", burst = 10, burst_accuracy = list(5,5,5,5,5,5,5,5,5,5), dispersion = list(2,2,2,2,2,2,2,2,2,2)),
|
||||
)
|
||||
@@ -4,7 +4,7 @@
|
||||
icon_state = "coilgun"
|
||||
item_state = "coilgun"
|
||||
icon = 'icons/obj/railgun.dmi'
|
||||
// one_hand_penalty = 1
|
||||
// one_handed_penalty = 1
|
||||
origin_tech = list(TECH_COMBAT = 5, TECH_MATERIAL = 4, TECH_ILLEGAL = 2, TECH_MAGNET = 4)
|
||||
w_class = ITEMSIZE_LARGE
|
||||
|
||||
@@ -193,3 +193,66 @@
|
||||
qdel(src)
|
||||
|
||||
return new projectile_type(src)
|
||||
|
||||
/obj/item/weapon/gun/magnetic/fuelrod
|
||||
name = "Fuel-Rod Cannon"
|
||||
desc = "A bulky weapon designed to fire reactor core fuel rods at absurd velocities... who thought this was a good idea?!"
|
||||
description_antag = "This device is capable of firing reactor fuel assemblies, acquired from a R-UST fuel compressor and an appropriate fueltype. Be warned, Supermatter rods may have unforseen consequences."
|
||||
description_fluff = "Morpheus' second entry into the arms manufacturing field, the Morpheus B.F.G, or 'Big Fuel-rod Gun' made some noise when it was initially sent to the market. By noise, they mean it was rapidly declared 'incredibly dangerous to the wielder and civilians within a mile radius alike'."
|
||||
icon_state = "fuelrodgun"
|
||||
item_state = "coilgun"
|
||||
icon = 'icons/obj/railgun.dmi'
|
||||
origin_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 4)
|
||||
w_class = ITEMSIZE_LARGE
|
||||
|
||||
removable_components = TRUE
|
||||
gun_unreliable = 0
|
||||
|
||||
load_type = /obj/item/weapon/fuel_assembly
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
|
||||
|
||||
power_cost = 500
|
||||
|
||||
/obj/item/weapon/gun/magnetic/fuelrod/consume_next_projectile()
|
||||
if(!check_ammo() || !capacitor || capacitor.charge < power_cost)
|
||||
return
|
||||
|
||||
if(loaded) //Safety.
|
||||
if(istype(loaded, /obj/item/weapon/fuel_assembly))
|
||||
var/obj/item/weapon/fuel_assembly/rod = loaded
|
||||
if(rod.fuel_type == "composite" || rod.fuel_type == "deuterium") //Safety check for rods spawned in without a fueltype.
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
|
||||
else if(rod.fuel_type == "tritium")
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/tritium
|
||||
else if(rod.fuel_type == "phoron")
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/phoron
|
||||
else if(rod.fuel_type == "supermatter")
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod/supermatter
|
||||
visible_message("<span class='danger'>The barrel of \the [src] glows a blinding white!</span>")
|
||||
spawn(5)
|
||||
visible_message("<span class='danger'>\The [src] begins to rattle, its acceleration chamber collapsing in on itself!</span>")
|
||||
removable_components = FALSE
|
||||
spawn(15)
|
||||
audible_message("<span class='critical'>\The [src]'s power supply begins to overload as the device crumples!</span>") //Why are you still holding this?
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 10, 1)
|
||||
var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread()
|
||||
var/turf/T = get_turf(src)
|
||||
sparks.set_up(2, 1, T)
|
||||
sparks.start()
|
||||
spawn(15)
|
||||
visible_message("<span class='critical'>\The [src] explodes in a blinding white light!</span>")
|
||||
explosion(src.loc, -1, 1, 2, 3)
|
||||
qdel(src)
|
||||
else
|
||||
projectile_type = /obj/item/projectile/bullet/magnetic/fuelrod
|
||||
|
||||
use_ammo()
|
||||
capacitor.use(power_cost)
|
||||
update_icon()
|
||||
|
||||
return new projectile_type(src)
|
||||
|
||||
/obj/item/weapon/gun/magnetic/fuelrod/New()
|
||||
cell = new /obj/item/weapon/cell/high
|
||||
capacitor = new /obj/item/weapon/stock_parts/capacitor
|
||||
. = ..()
|
||||
|
||||
@@ -67,9 +67,9 @@
|
||||
w_class = ITEMSIZE_NO_CONTAINER
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_hand_penalty=1, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_hand_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
|
||||
list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_hand_penalty=2, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)),
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_handed_penalty=1, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
|
||||
list(mode_name="long bursts", burst=6, fire_delay=null, move_delay=10, one_handed_penalty=2, burst_accuracy=list(0,-1,-1,-1,-2), dispersion=list(0.6, 0.6, 1.0, 1.0, 1.2)),
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/magnetic/railgun/automatic/examine(var/mob/user)
|
||||
@@ -94,8 +94,8 @@
|
||||
fire_sound = 'sound/weapons/rapidslice.ogg'
|
||||
|
||||
firemodes = list(
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_hand_penalty=1, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_hand_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
|
||||
list(mode_name="semiauto", burst=1, fire_delay=0, move_delay=null, one_handed_penalty=1, burst_accuracy=null, dispersion=null),
|
||||
list(mode_name="short bursts", burst=3, fire_delay=null, move_delay=5, one_handed_penalty=2, burst_accuracy=list(0,-1,-1), dispersion=list(0.0, 0.6, 1.0)),
|
||||
)
|
||||
|
||||
/obj/item/weapon/gun/magnetic/railgun/flechette/out_of_ammo()
|
||||
|
||||
@@ -333,9 +333,11 @@
|
||||
else if(!bumped)
|
||||
tracer_effect(effect_transform)
|
||||
|
||||
if(incendiary >= 2)
|
||||
var/trail_volume = (flammability * 0.10)
|
||||
new /obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(src.loc, trail_volume, src.dir)
|
||||
if(incendiary >= 2) //This should cover the bases of 'Why is there fuel here?' in a much cleaner way than previous.
|
||||
if(src && src.loc) //Safety.
|
||||
if(!src.loc.density)
|
||||
var/trail_volume = (flammability * 0.20)
|
||||
new /obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(src.loc, trail_volume, src.dir)
|
||||
|
||||
if(!hitscan)
|
||||
sleep(step_delay) //add delay between movement iterations if it's not a hitscan weapon
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
flammability = 4
|
||||
agony = 30
|
||||
kill_count = 4
|
||||
vacuum_traversal = 0
|
||||
|
||||
/obj/item/projectile/bullet/incendiary/flamethrower/large
|
||||
damage = 15
|
||||
|
||||
@@ -182,4 +182,17 @@
|
||||
|
||||
/obj/item/projectile/energy/plasmastun/on_hit(var/atom/target)
|
||||
bang(target)
|
||||
. = ..()
|
||||
. = ..()
|
||||
|
||||
/obj/item/projectile/energy/blue_pellet
|
||||
name = "suppressive pellet"
|
||||
icon_state = "blue_pellet"
|
||||
damage = 5
|
||||
armor_penetration = 75
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
damage_type = BURN
|
||||
check_armour = "energy"
|
||||
light_color = "#0000FF"
|
||||
|
||||
embed_chance = 0
|
||||
muzzle_type = /obj/effect/projectile/pulse/muzzle
|
||||
@@ -18,4 +18,100 @@
|
||||
name = "flechette"
|
||||
icon_state = "flechette"
|
||||
damage = 20
|
||||
armor_penetration = 100
|
||||
armor_penetration = 100
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod
|
||||
name = "fuel rod"
|
||||
icon_state = "fuel-deuterium"
|
||||
damage = 30
|
||||
stun = 1
|
||||
weaken = 0
|
||||
agony = 30
|
||||
incendiary = 1
|
||||
flammability = 0 //Deuterium and Tritium are both held in water, but the object moving so quickly will ignite the target.
|
||||
penetrating = 2
|
||||
embed_chance = 0
|
||||
armor_penetration = 40
|
||||
kill_count = 20
|
||||
|
||||
var/searing = 0 //Does this fuelrod ignore shields?
|
||||
var/detonate_travel = 0 //Will this fuelrod explode when it reaches maximum distance?
|
||||
var/detonate_mob = 0 //Will this fuelrod explode when it hits a mob?
|
||||
var/energetic_impact = 0 //Does this fuelrod cause a bright flash on impact with a mob?
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) //Future-proofing. Special effects for impact.
|
||||
if(istype(target,/mob/living))
|
||||
var/mob/living/V = target
|
||||
if(detonate_mob)
|
||||
if(V.loc)
|
||||
explosion(V.loc, -1, -1, 2, 3)
|
||||
|
||||
if(energetic_impact)
|
||||
var/eye_coverage = 0
|
||||
for(var/mob/living/carbon/M in viewers(world.view, location))
|
||||
eye_coverage = 0
|
||||
if(iscarbon(M))
|
||||
eye_coverage = M.eyecheck()
|
||||
if(eye_coverage < 2)
|
||||
M.flash_eyes()
|
||||
M.Stun(2)
|
||||
M.Weaken(10)
|
||||
|
||||
if(searing)
|
||||
if(blocked)
|
||||
blocked = 0
|
||||
|
||||
return ..(target, blocked, def_zone)
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/on_impact(var/atom/A) //Future-proofing, again. In the event new fuel rods are introduced, and have special effects for when they stop flying.
|
||||
if(src.loc)
|
||||
if(detonate_travel && detonate_mob)
|
||||
visible_message("<span class='warning'>\The [src] shatters in a violent explosion!</span>")
|
||||
explosion(src.loc, 1, 1, 3, 4)
|
||||
else if(detonate_travel)
|
||||
visible_message("<span class='warning'>\The [src] explodes in a shower of embers!</span>")
|
||||
explosion(src.loc, -1, 1, 2, 3)
|
||||
..(A)
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/tritium
|
||||
icon_state = "fuel-tritium"
|
||||
damage = 40
|
||||
flammability = -1
|
||||
armor_penetration = 50
|
||||
penetrating = 3
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/phoron
|
||||
name = "blazing fuel rod"
|
||||
icon_state = "fuel-phoron"
|
||||
damage = 35
|
||||
incendiary = 2
|
||||
flammability = 2
|
||||
armor_penetration = 60
|
||||
penetrating = 5
|
||||
irradiate = 20
|
||||
detonate_mob = 1
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter
|
||||
name = "painfully incandescent fuel rod"
|
||||
icon_state = "fuel-supermatter"
|
||||
damage = 15
|
||||
incendiary = 2
|
||||
flammability = 4
|
||||
weaken = 2
|
||||
armor_penetration = 100
|
||||
penetrating = 100 //Theoretically, this shouldn't stop flying for a while, unless someone lines it up with a wall or fires it into a mountain.
|
||||
irradiate = 120
|
||||
kill_count = 75
|
||||
searing = 1
|
||||
detonate_travel = 1
|
||||
detonate_mob = 1
|
||||
energetic_impact = 1
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter/on_hit(var/atom/target, var/blocked = 0, var/def_zone = null) //You cannot touch the supermatter without disentigrating. Assumedly, this is true for condensed rods of it flying at relativistic speeds.
|
||||
if(istype(target,/turf/simulated/wall) || istype(target,/mob/living))
|
||||
target.visible_message("<span class='danger'>The [src] burns a perfect hole through \the [target] with a blinding flash!</span>")
|
||||
playsound(target.loc, 'sound/effects/teleport.ogg', 40, 0)
|
||||
return ..(target, blocked, def_zone)
|
||||
|
||||
/obj/item/projectile/bullet/magnetic/fuelrod/supermatter/check_penetrate()
|
||||
return 1
|
||||
@@ -691,4 +691,21 @@
|
||||
else
|
||||
if(world.time > data + ANTIDEPRESSANT_MESSAGE_DELAY)
|
||||
data = world.time
|
||||
to_chat(M, "<span class='notice'>You feel invigorated and calm.</span>")
|
||||
to_chat(M, "<span class='notice'>You feel invigorated and calm.</span>")
|
||||
|
||||
// This exists to cut the number of chemicals a merc borg has to juggle on their hypo.
|
||||
/datum/reagent/healing_nanites
|
||||
name = "Restorative Nanites"
|
||||
id = "healing_nanites"
|
||||
description = "Miniature medical robots that swiftly restore bodily damage."
|
||||
taste_description = "metal"
|
||||
reagent_state = SOLID
|
||||
color = "#555555"
|
||||
metabolism = REM * 4 // Nanomachines gotta go fast.
|
||||
scannable = 1
|
||||
|
||||
/datum/reagent/healing_nanites/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
|
||||
M.heal_organ_damage(2 * removed, 2 * removed)
|
||||
M.adjustOxyLoss(-4 * removed)
|
||||
M.adjustToxLoss(-2 * removed)
|
||||
M.adjustCloneLoss(-2 * removed)
|
||||
@@ -12,6 +12,7 @@
|
||||
var/charge_cost = 50
|
||||
var/charge_tick = 0
|
||||
var/recharge_time = 5 //Time it takes for shots to recharge (in seconds)
|
||||
var/bypass_protection = FALSE // If true, can inject through things like spacesuits and armor.
|
||||
|
||||
var/list/reagent_ids = list("tricordrazine", "inaprovaline", "anti_toxin", "tramadol", "dexalin" ,"spaceacillin")
|
||||
var/list/reagent_volumes = list()
|
||||
@@ -26,6 +27,13 @@
|
||||
/obj/item/weapon/reagent_containers/borghypo/lost
|
||||
reagent_ids = list("tricordrazine", "bicaridine", "dexalin", "anti_toxin", "tramadol", "spaceacillin")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/merc
|
||||
name = "advanced cyborg hypospray"
|
||||
desc = "An advanced nanite and chemical synthesizer and injection system, designed for heavy-duty medical equipment. This type is capable of safely bypassing \
|
||||
thick materials that other hyposprays would struggle with."
|
||||
bypass_protection = TRUE // Because mercs tend to be in spacesuits.
|
||||
reagent_ids = list("healing_nanites", "hyperzine", "tramadol", "oxycodone", "spaceacillin", "peridaxon", "osteodaxon", "myelamine")
|
||||
|
||||
/obj/item/weapon/reagent_containers/borghypo/New()
|
||||
..()
|
||||
|
||||
@@ -72,7 +80,7 @@
|
||||
user << "<span class='danger'>You cannot inject a robotic limb.</span>"
|
||||
return
|
||||
|
||||
if (M.can_inject(user, 1))
|
||||
if(M.can_inject(user, 1, ignore_thickness = bypass_protection))
|
||||
user << "<span class='notice'>You inject [M] with the injector.</span>"
|
||||
M << "<span class='notice'>You feel a tiny prick!</span>"
|
||||
|
||||
|
||||
@@ -157,8 +157,7 @@
|
||||
user << "<span class='notice'>You splash the solution onto [target].</span>"
|
||||
reagents.splash(target, reagents.total_volume)
|
||||
return 1
|
||||
else
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/glass2/standard_feed_mob(var/mob/user, var/mob/target)
|
||||
if(afterattack(target, user)) //Check to see if harm intent & splash.
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
possible_transfer_amounts = null
|
||||
flags = OPENCONTAINER
|
||||
slot_flags = SLOT_BELT
|
||||
preserve_item = 1
|
||||
var/reusable = 1
|
||||
var/used = 0
|
||||
var/filled = 0
|
||||
@@ -70,6 +71,7 @@
|
||||
reusable = 0
|
||||
filled = 1
|
||||
filled_reagents = list("inaprovaline" = 5)
|
||||
preserve_item = 0
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/autoinjector/on_reagent_change()
|
||||
..()
|
||||
|
||||
@@ -639,6 +639,13 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/ammo_casing/chemdart
|
||||
sort_string = "TACAF"
|
||||
|
||||
/datum/design/item/weapon/fuelrod
|
||||
id = "fuelrod_gun"
|
||||
req_tech = list(TECH_COMBAT = 6, TECH_MATERIAL = 4, TECH_PHORON = 4, TECH_ILLEGAL = 5, TECH_MAGNET = 5)
|
||||
materials = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 2000, "gold" = 500, "silver" = 500, "uranium" = 1000, "phoron" = 3000, "diamond" = 1000)
|
||||
build_path = /obj/item/weapon/gun/magnetic/fuelrod
|
||||
sort_string = "TACBA"
|
||||
|
||||
/datum/design/item/weapon/flora_gun
|
||||
id = "flora_gun"
|
||||
req_tech = list(TECH_MATERIAL = 2, TECH_BIO = 3, TECH_POWER = 3)
|
||||
|
||||
@@ -73,6 +73,7 @@ h1.alert, h2.alert {color: #000000;}
|
||||
.disarm {color: #990000;}
|
||||
.passive {color: #660000;}
|
||||
|
||||
.critical {color: #ff0000; font-weight: bold; font-size: 150%;}
|
||||
.danger {color: #ff0000; font-weight: bold;}
|
||||
.warning {color: #ff0000; font-style: italic;}
|
||||
.rose {color: #ff5050;}
|
||||
|
||||
@@ -93,7 +93,7 @@ SHOW_DEVS
|
||||
SHOW_MODS
|
||||
|
||||
##Show mentors on staffwho
|
||||
SHOW_MENTORS
|
||||
SHOW_EVENT
|
||||
|
||||
## Chooses whether mods have the ability to tempban or not
|
||||
MODS_CAN_TEMPBAN
|
||||
|
||||
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 385 KiB After Width: | Height: | Size: 385 KiB |
|
Before Width: | Height: | Size: 470 KiB After Width: | Height: | Size: 472 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 91 KiB After Width: | Height: | Size: 91 KiB |
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 165 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 3.7 KiB |
@@ -5177,7 +5177,7 @@
|
||||
"bVC" = (/obj/machinery/ai_status_display{pixel_y = 32},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVE" = (/obj/structure/table/woodentable,/obj/item/weapon/storage/secure/safe{pixel_x = 5; pixel_y = 28},/obj/machinery/recharger{pixel_y = 4},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVF" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/captains_spare,/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVF" = (/obj/machinery/computer/card,/obj/item/weapon/card/id/gold/captain/spare,/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVG" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_x = 0; pixel_y = 32},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVH" = (/obj/machinery/keycard_auth{pixel_x = 0; pixel_y = 24},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
"bVI" = (/obj/structure/table/rack,/obj/item/weapon/tank/jetpack/oxygen,/obj/item/clothing/mask/gas,/obj/item/clothing/suit/armor/captain,/obj/item/clothing/head/helmet/space/capspace,/obj/machinery/newscaster/security_unit{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/wood,/area/crew_quarters/captain)
|
||||
|
||||
@@ -1329,7 +1329,7 @@
|
||||
"zD" = (/obj/structure/bed/chair{dir = 8},/obj/effect/floor_decal/corner/white/diagonal,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/restaurant)
|
||||
"zE" = (/obj/machinery/door/airlock/centcom{name = "Bridge"; opacity = 1; req_access = list(109)},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zF" = (/obj/structure/table/reinforced,/obj/item/device/pda/captain,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zG" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/captains_spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zG" = (/obj/structure/table/reinforced,/obj/item/weapon/card/id/gold/captain/spare,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zH" = (/obj/structure/table/reinforced,/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zI" = (/obj/structure/table/reinforced,/obj/machinery/recharger{pixel_y = 4},/turf/unsimulated/floor{icon_state = "steel"},/area/centcom/command)
|
||||
"zJ" = (/turf/simulated/shuttle/wall,/area/shuttle/transport1/centcom)
|
||||
|
||||
@@ -32,7 +32,6 @@
|
||||
destination_class = /datum/shuttle_destination/shuttle2
|
||||
starting_destination = /datum/shuttle_destination/shuttle2/root
|
||||
|
||||
|
||||
/datum/shuttle_destination/shuttle1/root
|
||||
name = "Southern Cross Hangar One"
|
||||
my_area = /area/shuttle/shuttle1/start
|
||||
|
||||
@@ -1124,7 +1124,7 @@
|
||||
"avF" = (/obj/machinery/status_display,/turf/simulated/wall,/area/medical/first_aid_station/firstdeck)
|
||||
"avG" = (/obj/turbolift_map_holder/southern_cross/center,/turf/unsimulated/mask,/area/hallway/primary/firstdeck/elevator)
|
||||
"avH" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/transmitter,/obj/item/weapon/stock_parts/subspace/transmitter,/turf/simulated/floor,/area/tcomm/tcomstorage)
|
||||
"avI" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/item/weapon/stock_parts/subspace/filter,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/tcomm/tcomstorage)
|
||||
"avI" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/item/weapon/stock_parts/subspace/sub_filter,/obj/machinery/atmospherics/unary/vent_pump/on{dir = 1},/turf/simulated/floor,/area/tcomm/tcomstorage)
|
||||
"avJ" = (/obj/structure/table/standard,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/item/weapon/stock_parts/subspace/crystal,/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/tcomm/tcomstorage)
|
||||
"avK" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/turf/simulated/floor/tiled/dark,/area/hallway/primary/starboard)
|
||||
"avL" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/door/airlock/maintenance{req_access = null; req_one_access = list(5,12,25,27,28,35)},/turf/simulated/floor/plating,/area/maintenance/firstdeck/aftstarboard)
|
||||
@@ -3223,9 +3223,9 @@
|
||||
"bjY" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "co2_in"; name = "Carbon Dioxide Supply Control"; output_tag = "co2_out"; sensors = list("co2_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bjZ" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bka" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 2; name = "N2 to Mixing"},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkb" = (/obj/machinery/atmospherics/omni/filter{tag_east = 2; tag_north = 4; tag_south = 1; tag_west = 5; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkb" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 4; tag_south = 1; tag_west = 5; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkc" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkd" = (/obj/machinery/atmospherics/omni/filter{tag_east = 2; tag_north = 3; tag_south = 0; tag_west = 1; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkd" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 3; tag_south = 0; tag_west = 1; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bke" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/binary/pump{dir = 2; name = "O2 to Mixing"},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkf" = (/obj/machinery/atmospherics/pipe/manifold/visible/red{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bkg" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan,/obj/machinery/atmospherics/binary/pump{dir = 4},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
@@ -3365,7 +3365,7 @@
|
||||
"bmK" = (/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "tox_in"; pixel_y = 1; use_power = 1},/obj/effect/floor_decal/corner/purple/diagonal,/obj/effect/floor_decal/corner/orange{dir = 4},/turf/simulated/floor/reinforced/phoron,/area/engineering/atmos)
|
||||
"bmL" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "tox_in"; name = "Phoron Supply Control"; output_tag = "tox_out"; sensors = list("tox_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmM" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmN" = (/obj/machinery/atmospherics/omni/filter{tag_east = 0; tag_north = 2; tag_south = 1; tag_west = 6; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmN" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 0; tag_north = 2; tag_south = 1; tag_west = 6; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmO" = (/obj/machinery/atmospherics/binary/pump{dir = 1},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmP" = (/obj/machinery/atmospherics/pipe/manifold/visible/cyan{dir = 8; icon_state = "map"; tag = "icon-map (EAST)"},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bmQ" = (/obj/machinery/atmospherics/pipe/simple/visible/cyan{dir = 4; icon_state = "intact"; tag = "icon-intact (EAST)"},/obj/machinery/atmospherics/binary/pump{dir = 1; name = "Waste to Port"},/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
@@ -3561,7 +3561,7 @@
|
||||
"bqy" = (/obj/effect/floor_decal/corner/white{dir = 4},/obj/effect/floor_decal/corner/red/diagonal,/obj/machinery/atmospherics/unary/outlet_injector{dir = 4; frequency = 1441; icon_state = "map_injector"; id = "n2o_in"; pixel_y = 1; use_power = 1},/turf/simulated/floor/reinforced/n20,/area/engineering/atmos)
|
||||
"bqz" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/blast/regular{density = 0; dir = 1; icon_state = "pdoor0"; id = "atmoslockdown"; name = "Atmospherics Lockdown"; opacity = 0},/turf/simulated/floor/plating,/area/engineering/atmos)
|
||||
"bqA" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/computer/general_air_control/large_tank_control{frequency = 1441; input_tag = "n2o_in"; name = "Nitrous Oxide Supply Control"; output_tag = "n2o_out"; sensors = list("n2o_sensor" = "Tank")},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bqB" = (/obj/machinery/atmospherics/omni/filter{tag_east = 1; tag_north = 2; tag_south = 0; tag_west = 7; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bqB" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 1; tag_north = 2; tag_south = 0; tag_west = 7; use_power = 1},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bqC" = (/obj/machinery/atmospherics/pipe/manifold/visible/red,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bqD" = (/obj/machinery/atmospherics/pipe/simple/visible/red{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/machinery/atmospherics/pipe/simple/visible/yellow,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
"bqE" = (/obj/machinery/atmospherics/pipe/manifold/visible/red{tag = "icon-map (NORTH)"; icon_state = "map"; dir = 1},/obj/machinery/meter,/turf/simulated/floor/tiled,/area/engineering/atmos)
|
||||
@@ -4979,7 +4979,7 @@
|
||||
"bRM" = (/obj/machinery/atmospherics/portables_connector{dir = 4},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRN" = (/obj/machinery/atmospherics/omni/mixer{tag_east = 2; tag_east_con = null; tag_north = 1; tag_north_con = 0.5; tag_south = 0; tag_south_con = null; tag_west = 1; tag_west_con = 0.5; use_power = 0},/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -21},/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRO" = (/obj/machinery/atmospherics/pipe/manifold/visible,/obj/machinery/meter,/obj/machinery/camera/network/research{c_tag = "SCI - Toxins Lab 2"; dir = 1},/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRP" = (/obj/machinery/atmospherics/omni/filter{tag_east = 2; tag_north = 6; tag_south = 0; tag_west = 1; use_power = 0},/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRP" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 2; tag_north = 6; tag_south = 0; tag_west = 1; use_power = 0},/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRQ" = (/obj/machinery/atmospherics/portables_connector{dir = 8},/obj/effect/floor_decal/industrial/outline/yellow,/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRR" = (/obj/machinery/light,/turf/simulated/floor/tiled,/area/rnd/mixing)
|
||||
"bRS" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/black,/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
|
||||
@@ -4990,9 +4990,9 @@
|
||||
"bRX" = (/obj/machinery/atmospherics/pipe/cap/visible{dir = 1},/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor,/area/engineering/engine_room)
|
||||
"bRY" = (/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor,/area/engineering/engine_room)
|
||||
"bRZ" = (/obj/machinery/atmospherics/pipe/simple/visible/green,/turf/simulated/floor,/area/engineering/engine_room)
|
||||
"bSa" = (/obj/machinery/atmospherics/omni/filter{tag_east = 0; tag_north = 2; tag_south = 4; tag_west = 1; use_power = 0},/obj/effect/floor_decal/industrial/outline/blue,/obj/structure/sign/warning/nosmoking_2{pixel_x = 32},/obj/effect/engine_setup/filter,/turf/simulated/floor/plating,/area/engineering/engine_room)
|
||||
"bSa" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 0; tag_north = 2; tag_south = 4; tag_west = 1; use_power = 0},/obj/effect/floor_decal/industrial/outline/blue,/obj/structure/sign/warning/nosmoking_2{pixel_x = 32},/obj/effect/engine_setup/atmo_filter,/turf/simulated/floor/plating,/area/engineering/engine_room)
|
||||
"bSb" = (/obj/machinery/atmospherics/pipe/manifold4w/visible/cyan,/turf/simulated/floor,/area/engineering/engine_room)
|
||||
"bSc" = (/obj/machinery/atmospherics/omni/filter{tag_east = 1; tag_north = 2; tag_south = 4; tag_west = 0; use_power = 0},/obj/effect/floor_decal/industrial/outline/blue,/obj/effect/engine_setup/filter,/turf/simulated/floor/plating,/area/engineering/engine_room)
|
||||
"bSc" = (/obj/machinery/atmospherics/omni/atmos_filter{tag_east = 1; tag_north = 2; tag_south = 4; tag_west = 0; use_power = 0},/obj/effect/floor_decal/industrial/outline/blue,/obj/effect/engine_setup/atmo_filter,/turf/simulated/floor/plating,/area/engineering/engine_room)
|
||||
"bSd" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/plating,/area/engineering/drone_fabrication)
|
||||
"bSe" = (/obj/effect/landmark{name = "JoinLateCyborg"},/obj/effect/floor_decal/industrial/warning,/turf/simulated/floor/plating,/area/engineering/drone_fabrication)
|
||||
"bSf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/disposalpipe/segment,/turf/simulated/floor/tiled,/area/engineering/hallway/engineer_hallway)
|
||||
@@ -8777,7 +8777,7 @@
|
||||
"dmO" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmP" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled/dark,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmQ" = (/obj/machinery/ai_status_display{pixel_y = -32},/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmR" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Four"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmR" = (/obj/machinery/light,/obj/machinery/embedded_controller/radio/docking_port_multi{child_names_txt = "Airlock One;Airlock Two"; child_tags_txt = "arrivals_dock_north_airlock;arrivals_dock_south_airlock"; frequency = 1380; id_tag = "arrivals_dock"; pixel_x = 0; pixel_y = -25; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmS" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_y = -30},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/effect/floor_decal/sign/dock/three,/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Hallway Five"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dmU" = (/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
|
||||
@@ -8831,8 +8831,8 @@
|
||||
"dnQ" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dnR" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dnS" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dnT" = (/turf/simulated/shuttle/wall,/area/shuttle/arrival/station)
|
||||
"dnU" = (/obj/structure/shuttle/window,/obj/structure/grille,/turf/simulated/shuttle/plating,/area/shuttle/arrival/station)
|
||||
"dnT" = (/turf/space,/area/shuttle/arrival/station)
|
||||
"dnU" = (/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
|
||||
"dnV" = (/obj/structure/cable,/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dnW" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dnX" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "centcom_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
@@ -8846,8 +8846,8 @@
|
||||
"dof" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dog" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"doh" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"doi" = (/turf/simulated/shuttle/wall/hard_corner,/area/shuttle/arrival/station)
|
||||
"doj" = (/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"doi" = (/obj/machinery/door/firedoor/border_only,/obj/structure/sign/securearea{desc = "A warning sign which reads 'KEEP CLEAR OF DOCKING AREA'."; name = "KEEP CLEAR: DOCKING AREA"; pixel_y = 0},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
|
||||
"doj" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dok" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dol" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dom" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
@@ -8855,19 +8855,19 @@
|
||||
"doo" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
|
||||
"dop" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
|
||||
"doq" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dor" = (/obj/structure/table/standard,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"dos" = (/obj/structure/bed/chair{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"dor" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_north_airlock"; master_tag = "arrivals_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "arrivals_dock_north_mech"; tag_airpump = "arrivals_dock_north_pump"; tag_chamber_sensor = "arrivals_dock_north_sensor"; tag_exterior_door = "arrivals_dock_north_outer"; tag_interior_door = "arrivals_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dos" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "escape_dock_north_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dot" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dou" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Fore"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dov" = (/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dow" = (/obj/machinery/light,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"dow" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dox" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Three Fore"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doy" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = -32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"doz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"doA" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"doB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"doC" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"doD" = (/obj/machinery/door/unpowered/shuttle,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"doD" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doG" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D1)
|
||||
@@ -8883,9 +8883,9 @@
|
||||
"doQ" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"doR" = (/obj/effect/floor_decal/industrial/warning/corner,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"doS" = (/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
|
||||
"doT" = (/obj/structure/closet/emcloset,/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"doU" = (/obj/machinery/light{dir = 1},/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"doV" = (/obj/effect/wingrille_spawn/reinforced,/obj/machinery/door/firedoor/border_only,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
|
||||
"doT" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_snorth_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_starboard_mech"; tag_airpump = "escape_dock_north_starboard_pump"; tag_chamber_sensor = "escape_dock_north_starboard_sensor"; tag_exterior_door = "escape_dock_north_starboard_outer"; tag_interior_door = "escape_dock_north_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_starboard_mech"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doU" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "escape_dock_north_mech"; pixel_y = 19},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"doV" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"doW" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning/corner{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"doY" = (/obj/structure/sign/warning/docking_area,/turf/simulated/wall/r_wall,/area/hallway/secondary/entry/D3)
|
||||
@@ -8901,14 +8901,14 @@
|
||||
"dpi" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpj" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_north_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = 26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpk" = (/obj/effect/floor_decal/industrial/warning{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpl" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpm" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpn" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpo" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpp" = (/obj/machinery/door/airlock/external{name = "Arrival Airlock"},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpq" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpr" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dps" = (/obj/machinery/door/airlock/glass_external,/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpl" = (/obj/machinery/light/small,/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpm" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_sensor"; pixel_x = 0; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "escape_dock_north_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpn" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "arrivals_dock_north_outer"; locked = 1; name = "Arrivals Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "arrivals_dock_north_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = -26; req_one_access = list(13)},/obj/machinery/mech_sensor{dir = 8; frequency = 1380; id_tag = "arrival_dock_north_mech"; pixel_y = -19},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpo" = (/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_starboard_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpp" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpq" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_north_starboard_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpr" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"; tag = "icon-intact-f (NORTHWEST)"},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D2)
|
||||
"dps" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpv" = (/turf/space,/area/shuttle/shuttle2/arrivals_dock)
|
||||
@@ -8920,12 +8920,12 @@
|
||||
"dpB" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_north_starboard_sensor"; pixel_x = 0; pixel_y = -25},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpC" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_north_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpD" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpE" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpF" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpG" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dpH" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dpI" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpJ" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpE" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "arrivals_dock_south_airlock"; master_tag = "escape_dock"; pixel_y = 30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_north_mech"; tag_airpump = "escape_dock_north_pump"; tag_chamber_sensor = "escape_dock_north_sensor"; tag_exterior_door = "escape_dock_north_outer"; tag_interior_door = "escape_dock_north_inner"; tag_shuttle_mech_sensor = "shuttle_dock_north_mech"},/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpF" = (/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_sensor"; pixel_x = 0; pixel_y = 25},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "escape_dock_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpG" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "exterior access button"; pixel_x = 4; pixel_y = 26; req_one_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/machinery/airlock_sensor{frequency = 1380; id_tag = "escape_dock_south_starboard_sensor"; pixel_x = 0; pixel_y = 25},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpI" = (/obj/effect/floor_decal/industrial/loading{tag = "icon-loadingarea (WEST)"; icon_state = "loadingarea"; dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; icon_state = "intact"; tag = "icon-intact-f (SOUTHWEST)"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpJ" = (/obj/machinery/door/airlock/external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_outer"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "exterior access button"; pixel_x = -4; pixel_y = 26; req_one_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/shield_diffuser,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpK" = (/turf/space,/area/shuttle/response_ship/arrivals_dock)
|
||||
"dpL" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dpM" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
@@ -8936,10 +8936,10 @@
|
||||
"dpR" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpS" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpT" = (/obj/machinery/door/firedoor/border_only,/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpU" = (/turf/simulated/shuttle/wall/no_join,/area/shuttle/arrival/station)
|
||||
"dpV" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dpW" = (/obj/effect/landmark/start,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"dpX" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dpU" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dpV" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"dpW" = (/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_south_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_mech"; tag_airpump = "escape_dock_south_pump"; tag_chamber_sensor = "escape_dock_south_sensor"; tag_exterior_door = "escape_dock_south_outer"; tag_interior_door = "escape_dock_south_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_mech"},/obj/effect/floor_decal/industrial/loading{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpX" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1380; id_tag = "escape_dock_south_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dpY" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 4; icon_state = "map"; tag = "icon-manifold-f (EAST)"},/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dpZ" = (/obj/machinery/door/firedoor/glass,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqa" = (/obj/effect/wingrille_spawn/reinforced,/obj/structure/sign/warning/airlock,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
|
||||
@@ -8949,10 +8949,9 @@
|
||||
"dqe" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dqf" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dqg" = (/obj/structure/bed/chair{dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dqh" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqi" = (/obj/structure/bed/chair{dir = 4},/obj/structure/window/reinforced{dir = 8; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqj" = (/obj/structure/bed/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; health = 1e+006},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqk" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqh" = (/obj/effect/floor_decal/industrial/loading{dir = 4},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqi" = (/obj/machinery/atmospherics/pipe/manifold/hidden,/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_ssouth_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_starboard_mech"; tag_airpump = "escape_dock_south_starboard_pump"; tag_chamber_sensor = "escape_dock_south_starboard_sensor"; tag_exterior_door = "escape_dock_south_starboard_outer"; tag_interior_door = "escape_dock_south_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_starboard_mech"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqj" = (/obj/machinery/atmospherics/pipe/simple/hidden{tag = "icon-intact (EAST)"; icon_state = "intact"; dir = 4},/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Docking Port Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
"dql" = (/obj/structure/bed/chair{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqm" = (/obj/effect/floor_decal/industrial/warning/corner,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqn" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1; icon_state = "map"; tag = "icon-manifold-f (NORTH)"},/obj/machinery/door/firedoor/border_only,/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D3)
|
||||
@@ -8966,9 +8965,7 @@
|
||||
"dqv" = (/obj/structure/closet/emcloset,/obj/structure/extinguisher_cabinet{pixel_x = -28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dqw" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/hologram/holopad,/obj/effect/floor_decal/industrial/outline/grey,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dqx" = (/obj/machinery/alarm{dir = 8; pixel_x = 22; pixel_y = 0},/obj/structure/closet/emcloset,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dqy" = (/obj/structure/bed/chair{dir = 4},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqz" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/ninja_dojo/arrivals_dock)
|
||||
"dqA" = (/obj/structure/bed/chair{dir = 8},/obj/effect/landmark{name = "JoinLate"},/obj/machinery/light{dir = 4; icon_state = "tube1"},/turf/simulated/shuttle/floor/white,/area/shuttle/arrival/station)
|
||||
"dqB" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqC" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "s2s_dock_airlock"; name = "interior access button"; pixel_x = 28; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dqD" = (/obj/effect/floor_decal/industrial/hatch/yellow,/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "s2s_dock_inner"; locked = 1; name = "Dock Three Internal Airlock"; req_access = list(13)},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D3)
|
||||
@@ -9000,8 +8997,6 @@
|
||||
"drd" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"dre" = (/obj/machinery/door/airlock/glass_external{frequency = 1380; icon_state = "door_locked"; id_tag = "escape_dock_south_starboard_inner"; locked = 1; name = "Escape Airlock"; req_access = list(13)},/obj/effect/floor_decal/industrial/hatch/yellow,/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"drf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drg" = (/obj/effect/floor_decal/industrial/warning{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drh" = (/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 5},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"dri" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drj" = (/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_airlock"; name = "interior access button"; pixel_x = 26; pixel_y = -26; req_one_access = list(13)},/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/industrial/warning{icon_state = "warning"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"drk" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
@@ -9011,8 +9006,6 @@
|
||||
"dro" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/embedded_controller/radio/airlock/docking_port_multi{frequency = 1380; id_tag = "escape_dock_ssouth_airlock"; master_tag = "escape_dock"; pixel_y = -30; req_one_access = list(13); tag_airlock_mech_sensor = "escape_dock_south_starboard_mech"; tag_airpump = "escape_dock_south_starboard_pump"; tag_chamber_sensor = "escape_dock_south_starboard_sensor"; tag_exterior_door = "escape_dock_south_starboard_outer"; tag_interior_door = "escape_dock_south_starboard_inner"; tag_shuttle_mech_sensor = "shuttle_dock_south_starboard_mech"},/turf/simulated/floor/tiled/dark,/area/hallway/secondary/entry/D2)
|
||||
"drp" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 2; frequency = 1380; id_tag = "escape_dock_south_starboard_pump"},/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drq" = (/obj/effect/floor_decal/industrial/warning{dir = 8},/obj/machinery/access_button{command = "cycle_interior"; frequency = 1380; master_tag = "escape_dock_south_starboard_airlock"; name = "interior access button"; pixel_x = -26; pixel_y = -26; req_one_access = list(13)},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drr" = (/obj/effect/floor_decal/industrial/warning{dir = 10},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drs" = (/obj/effect/floor_decal/industrial/warning{dir = 6},/obj/machinery/light/small,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drt" = (/obj/machinery/firealarm{dir = 8; pixel_x = -24},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock One Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"dru" = (/obj/effect/floor_decal/industrial/warning/corner{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8; icon_state = "map"; tag = "icon-manifold-f (WEST)"},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"drv" = (/obj/effect/floor_decal/industrial/warning/corner{icon_state = "warningcorner"; dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/camera/network/second_deck{c_tag = "Second Deck - Dock Two Aft"; dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
@@ -9024,15 +9017,12 @@
|
||||
"drB" = (/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drC" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drD" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drE" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/airless,/area/shuttle/arrival/station)
|
||||
"drF" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/item/device/radio/intercom{dir = 8; name = "Station Intercom (General)"; pixel_x = -21},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drG" = (/obj/machinery/atmospherics/unary/vent_scrubber/on{dir = 1},/obj/structure/extinguisher_cabinet{pixel_x = 28; pixel_y = 0},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drH" = (/obj/effect/floor_decal/sign/dock/one,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"drI" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{dir = 4},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D1)
|
||||
"drJ" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drK" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/effect/floor_decal/sign/dock/two,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D2)
|
||||
"drL" = (/turf/space,/obj/structure/shuttle/engine/propulsion,/turf/simulated/shuttle/plating/airless/carry,/area/shuttle/arrival/station)
|
||||
"drM" = (/obj/structure/shuttle/engine/heater,/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating/airless,/area/shuttle/arrival/station)
|
||||
"drN" = (/obj/machinery/atmospherics/pipe/simple/hidden,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drO" = (/obj/effect/floor_decal/sign/dock/three,/turf/simulated/floor/tiled,/area/hallway/secondary/entry/D3)
|
||||
"drP" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/obj/effect/wingrille_spawn/reinforced,/turf/simulated/floor/plating,/area/hallway/secondary/entry/D1)
|
||||
@@ -10107,7 +10097,6 @@
|
||||
"dMs" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/space)
|
||||
"dMt" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/obj/structure/lattice,/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/space)
|
||||
"dMu" = (/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/atmospherics/pipe/simple/hidden{dir = 4},/obj/effect/landmark{name = "Observer-Start"},/turf/simulated/floor/tiled,/area/hallway/primary/seconddeck/dockhallway)
|
||||
"dMv" = (/obj/machinery/hologram/holopad,/turf/simulated/shuttle/floor,/area/shuttle/arrival/station)
|
||||
"dMw" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/shuttle/shuttle2/arrivals_dock)
|
||||
"dMx" = (/obj/effect/landmark{name = "carpspawn"},/turf/space,/area/shuttle/response_ship/thirddeck)
|
||||
"dMy" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/blast/shutters{dir = 2; id = "Skynet_launch"; name = "Mech Bay"},/turf/simulated/floor/tiled/dark,/area/assembly/chargebay)
|
||||
@@ -10571,25 +10560,25 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkaaaaaaaaaaaaaaadmUdnhdnidnjaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadnkdnldnmdnndnkaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadnodnpdnqdneaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkaaaaaaaaadnjdmUdnrdnidnsaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadntdnldnmdnndntaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadnudnpdnvdnednoaaaaaaaaadnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkdnxdnydnjdnjdnzdnAdnBdnjaaaaaaaafaaaaaadnCdnCdnCdnCdnCdnCdnCaaaaaaaafaaaaaadnkdnldnDdnEdnkaaaaaaaafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaaaaaadnodnFdnGdnHdnodnodnIdnJdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkdnKdnLdMBdnNdnOdnPdnQdmUaaaaaaaafaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaafaaaaaadmYdnRdnmdnSdmYaaaaaaaafaaaaaadnTdnUdnUdnUdnUdnUdnTaaaaaaaafaaaaaadnednVdnWdnXdnYdnZdoadobdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkdnydocdoddoedofdogdohdnjaaaaaaaafaafdnCdnCdnCdnCdnCdnCdnCdnCdnCaafaafaaaaaadnkdnndnmdnndnkaaaaaaaafaafdnTdoidojdojdojdojdojdoidnTaafaafaaaaaadnodokdoldomdondoodopdnIdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkaaaaaaaaadnjdnjdnhdoqdnjaaaaaadMqaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaadMqaaaaaadnkdnndnmdnndnkaaaaaadMqaaadnUdordosdosdojdosdosdordnUaaadMqaaaaaadnodotdnqdnodnoaaaaaaaaadnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkaaaaaaaaadlkdlkdlkaaaaaaaaaaaadnjdnhdoudnjaaaaaaaafaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaafaaaaaadnkdovdnmdnndnkaaaaaaaafaaadnTdojdowdojdojdojdowdojdnTaaaaafaaaaaadnodoxdnqdnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNaaaaaaaaadlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkaaaaaaaaaaaaaaadlkdlkaaaaaaaaaaaadmUdoydozdmUaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadmYdoAdoBdoCdmYaaaaaaaaadnTdoidnTdnTdnTdoDdnTdnTdnTdoidnTaaaaaaaaadnedoEdoFdneaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNaaaaaaaaaaaaaaadlNdlNaaaaaaaaadlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadoGdmUdmUdmUdmUdoHdoIdoedoJdoKdnxdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoLdoMdoNdoOdoPdoQdoRdnkdnkdoSdoLdnTdoTdojdoUdojdojdojdoUdojdoTdnTdnJdnIdoVdnodoWdoXdnednednednedoYaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdoZdpadpbdpcdpddpednCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdpfdpgdphdpidpjdnmdpkdpldpmdpndpodoDdojdojdojdojdojdojdojdojdojdoDdppdpqdprdpsdptdpudneaaaaaaaaaaaadpvdpvaaaaaaaaaaaaaaadpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdnhdpwdpbdpxdpydpzdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdpAdpBdpCdpidpDdnmdpkdpldpEdpFdpodoDdojdojdpGdpHdojdpGdpHdojdojdoDdppdpIdpJdpsdptdnqdnoaaaaaaaaaaaadpvdpvdpvaaaaaaaaadpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKaaaaaaaaaaaadnjdnjdpLdpMdoedpNdpOdnydnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoSdpPdpQdoOdpRdpSdpTdnkdnkdoSdoSdpUdpVdojdpGdpHdpWdpGdpHdojdpXdpUdnIdnIdoVdnodpYdpZdnodnoaaaaaaaaadpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdqadqbdqcdoedqddogdohdqednjaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadnkdqfdnndnmdnndqgdnkaaaaaadnUdqhdojdpGdqidojdqjdpHdojdqkdnUaaaaaadnodqldokdoldqmdondqndqodnIdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdqpdqqdqrdqsdqtdnPdoqdqudmUaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadmYdqvdnndqwdnndqxdmYaaaaaadnUdqydojdpGdqidMvdqjdpHdojdqAdnUaaaaaadnedqBdotdnWdqCdqDdMCdqFdqGdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdnydnydnjdnjdqHdqIdqJdqednjaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadnkdqfdnndqKdqLdqgdnkaaaaaadnUdqhdojdpGdqidojdqjdpHdojdqkdnUaaaaaadnodqldqMdqNdqOdnodnodnIdnJdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKaaaaaaaaaaaadnjdnjdqPdqQdoedoJdoKdnydnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoSdoMdoNdoOdqRdqSdqTdnkdnkdoSdoSdpUdpVdojdpGdpHdojdpGdpHdojdpXdpUdnIdnIdoVdnodqUdqVdnodnoaaaaaaaaadpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdnhdqWdqXdqYdqZdradnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdrbdrcdrddredpDdrfdpkdpldrgdpndpodoDdojdojdpGdpHdojdpGdpHdojdojdoDdppdpqdrhdpsdridnqdnoaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdnhdrjdqXdrkdrldrmdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdrndrodrpdredrqdrfdpkdpldrrdpFdpodoDdojdojdojdojdojdojdojdojdojdoDdppdpIdrsdpsdridnqdneaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadoGdmUdmUdmUdmUdrtdrudoedpNdpOdnxdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoLdpPdpQdoOdrvdqSdrwdnkdnkdoSdoLdnTdoTdojdowdojdojdojdowdojdoTdnTdnJdnIdoVdnodrxdrydnednednednedoYaaadpvdMwdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdrzdrAdmUaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadmYdrBdrCdrDdmYaaaaaaaaadnTdrEdrEdoidnTdnTdnTdoidrEdrEdnTaaaaaaaaadnedrFdrGdneaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdrHdrIdnjaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadntdrJdrKdnndntaaaaaaaaadnTdrLdrLdnTdrMdrMdrMdnTdrLdrLdnTaaaaaaaaadnodrNdrOdnoaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrQdrRdrSaaaaaaaabdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaabaaaaaadnkdoRdrTdrUdnkaaaaaaaabaaaaaaaaadnTdrLdrLdrLdnTaaaaaaaaaaabaaaaaadrVdrWdrXdrYaaaaaaaabaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkdnKdnLdMBdnNdnOdnPdnQdmUaaaaaaaafaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaafaaaaaadmYdnRdnmdnSdmYaaaaaaaafaaaaaaaaadnTdnTdnTdnTdnTaaaaaaaaaaafaaaaaadnednVdnWdnXdnYdnZdoadobdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkdnydocdoddoedofdogdohdnjaaaaaaaafaafdnCdnCdnCdnCdnCdnCdnCdnCdnCaafaafaaaaaadnkdnndnmdnndnkaaaaaaaafaaaaaadnTdnTdnTdnTdnTdnTdnTaaaaaaaafaaaaaadnodokdoldomdondoodopdnIdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkdlkdlkdlkdlkdlkdlkaaaaaaaaadnjdnjdnhdoqdnjaaaaaadMqaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaadMqaaaaaadnkdnndnmdnndnkaaaaaadMqaaaaaadnTdnTdnTdnTdnTdnTdnTaaaaaadMqaaaaaadnodotdnqdnodnoaaaaaaaaadnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwdnwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNdlNdlNdlNdlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkdlkaaaaaaaaadlkdlkdlkaaaaaaaaaaaadnjdnhdoudnjaaaaaaaafaaadnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaafaaaaaadnkdovdnmdnndnkaaaaaaaafaaadnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaafaaaaaadnodoxdnqdnoaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNdlNaaaaaaaaadlNdlNdlNaaaaaadlOdlOdlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlkdlkaaaaaaaaaaaaaaadlkdlkaaaaaaaaaaaadmUdoydozdmUaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadmYdoAdoBdoCdmYaaaaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaaaaadnedoEdoFdneaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlNdlNaaaaaaaaaaaaaaadlNdlNaaaaaaaaadlOdlOdlOdlOdlOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadoGdmUdmUdmUdmUdoHdoIdoedoJdoKdnxdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoLdoMdoNdoOdoPdoQdoRdnkdnkdnkdnUdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdoidnodnodnodoWdoXdnednednednedoYaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdoZdpadpbdpcdpddpednCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdpfdpgdphdpidpjdnmdpkdojdordosdowdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdoUdoDdoTdoVdptdpudneaaaaaaaaaaaadpvdpvaaaaaaaaaaaaaaadpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdnhdpwdpbdpxdpydpzdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdpAdpBdpCdpidpDdnmdpkdojdpldpmdpndnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdpndpodppdpqdptdnqdnoaaaaaaaaaaaadpvdpvdpvaaaaaaaaadpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKaaaaaaaaaaaadnjdnjdpLdpMdoedpNdpOdnydnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoSdpPdpQdoOdpRdpSdpTdoOdprdnkdnkdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnodnodnodnIdpYdpZdnodnoaaaaaaaaadpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdqadqbdqcdoedqddogdohdqednjaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadnkdqfdnndnmdnndqgdnkaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaadnodqldokdoldqmdondqndqodnIdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdqpdqqdqrdqsdqtdnPdoqdqudmUaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadmYdqvdnndqwdnndqxdmYaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaadnedqBdotdnWdqCdqDdMCdqFdqGdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdnydnydnjdnjdqHdqIdqJdqednjaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaadnkdqfdnndqKdqLdqgdnkaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaadnodqldqMdqNdqOdnodnodnIdnJdpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadpKdpKdpKdpKdpKdpKdpKdpKdpKdpKdpKaaaaaaaaaaaadnjdnjdqPdqQdoedoJdoKdnydnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoSdoMdoNdoOdqRdqSdqTdnkdnkdnkdnkdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnodnodnodnodqUdqVdnodnoaaaaaaaaadpvdpvdpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdnhdqWdqXdqYdqZdradnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdrbdrcdrddredpDdrfdpkdpsdpEdpFdpGdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdpJdpHdpIdpUdridnqdnoaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdnhdrjdqXdrkdrldrmdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdrndrodrpdredrqdrfdpkdpVdpWdpXdpndnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdpndqhdqidqjdridnqdneaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaadoGdmUdmUdmUdmUdrtdrudoedpNdpOdnxdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdoLdpPdpQdoOdrvdqSdrwdnkdnkdnkdnUdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdoidnodnodnodrxdrydnednednednedoYaaadpvdMwdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmUdrzdrAdmUaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadmYdrBdrCdrDdmYaaaaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaaaaadnedrFdrGdneaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnjdrHdrIdnjaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadntdrJdrKdnndntaaaaaaaaadnTdnTdnTdnTdnTdnTdnTdnTdnTdnTdnTaaaaaaaaadnodrNdrOdnoaaaaaaaaaaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrPdrQdrRdrSaaaaaaaabdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaabaaaaaadnkdoRdrTdrUdnkaaaaaaaabaaaaaaaaadnTdnTdnTdnTdnTaaaaaaaaaaabaaaaaadrVdrWdrXdrYaaaaaaaabaaaaaadpvdpvdpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadrZdsadsbdrZaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadmYdnkdscdmYdmYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsddsedsedsdaaaaaaaaaaaaaaaaaadpvdpvdpvdpvdpvaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsfdsgdshdsiaaaaaaaaadnCdnCdnCdnCdnCdnCdnCdnCdnCdnCdnCaaaaaaaaadnkdsjdskdsldnkaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsmdsndsodspaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadocdsqdsrdpOaaaaaaaaaaaaaaaaaadnCdnCdnCdnCdnCaaaaaaaaaaaaaaaaaadoSdssdstdsudoSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsvdswdsxdopaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||