diff --git a/code/__defines/is_helpers.dm b/code/__defines/is_helpers.dm
index 9a1b3871df6..07c25a40ab5 100644
--- a/code/__defines/is_helpers.dm
+++ b/code/__defines/is_helpers.dm
@@ -21,6 +21,8 @@
#define isstorage(A) istype(A, /obj/item/weapon/storage)
+#define ismecha(A) istype(A, /obj/mecha)
+
//---------------
//#define isarea(D) istype(D, /area) //Built in
diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm
index 9e9a2af168e..bcf78539a79 100644
--- a/code/game/machinery/atm_ret_field.dm
+++ b/code/game/machinery/atm_ret_field.dm
@@ -230,4 +230,11 @@
desc = "A shimmering forcefield that keeps the good air inside and the bad air outside. It seems fairly solid, almost like it's made out of some kind of hardened light.
Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences."
icon = 'icons/obj/atm_fieldgen.dmi'
icon_state = "arfg_field"
- density = TRUE
\ No newline at end of file
+ density = TRUE
+
+/obj/machinery/atmospheric_field_generator/perma/underdoors
+ field_type = /obj/structure/atmospheric_retention_field/underdoors
+
+/obj/structure/atmospheric_retention_field/underdoors
+ plane = OBJ_PLANE
+ layer = UNDER_JUNK_LAYER
diff --git a/code/game/machinery/doors/door_vr.dm b/code/game/machinery/doors/door_vr.dm
index 6583b841b85..1a504065cc3 100644
--- a/code/game/machinery/doors/door_vr.dm
+++ b/code/game/machinery/doors/door_vr.dm
@@ -101,7 +101,19 @@
/obj/machinery/door/blast/regular/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
return // blast doors are immune to fire completely.
-/obj/machinery/door/blast/regular/
+/obj/machinery/door/blast/regular
+ heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
+
+/obj/machinery/door/blast/angled/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ return // blast doors are immune to fire completely.
+
+/obj/machinery/door/blast/angled
+ heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
+
+/obj/machinery/door/blast/puzzle/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
+ return // blast doors are immune to fire completely.
+
+/obj/machinery/door/blast/puzzle
heat_proof = 1 //just so repairing them doesn't try to fireproof something that never takes fire damage
/obj/machinery/door/proc/toggle()
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 51ee1430f5f..7ff7638995f 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -77,6 +77,12 @@
endgame_exits += loc
delete_me = 1
return
+ //VOREStation Add Start
+ if("vinestart")
+ vinestart += loc
+ delete_me = 1
+ return
+ //VORE Station Add End
landmarks_list += src
return 1
diff --git a/code/game/objects/effects/landmarks_vr.dm b/code/game/objects/effects/landmarks_vr.dm
index b9dd81e9673..e436447109d 100644
--- a/code/game/objects/effects/landmarks_vr.dm
+++ b/code/game/objects/effects/landmarks_vr.dm
@@ -1,6 +1,12 @@
/obj/effect/landmark
var/abductor = 0
+/obj/effect/landmark/vines
+ name = "vinestart"
+
+/obj/effect/landmark/vermin
+ name = "verminstart"
+
/obj/effect/landmark/late_antag
name = "Antag Latespawn"
var/antag_id
@@ -39,4 +45,4 @@
/obj/effect/landmark/late_antag/raider
name = "Raider - Lateload"
- antag_id = MODE_RAIDER
\ No newline at end of file
+ antag_id = MODE_RAIDER
diff --git a/code/game/objects/items/weapons/storage/belt.dm b/code/game/objects/items/weapons/storage/belt.dm
index 1c92c3e94e8..00647f37f37 100644
--- a/code/game/objects/items/weapons/storage/belt.dm
+++ b/code/game/objects/items/weapons/storage/belt.dm
@@ -158,7 +158,8 @@
/obj/item/stack/nanopaste,
/obj/item/weapon/cell, //this is a bigger belt, might as well make it hold bigger cells too
/obj/item/weapon/pipe_dispenser, //bigger belt for bigger tools
- /obj/item/weapon/rcd //see above
+ /obj/item/weapon/rcd, //see above
+ /obj/item/device/quantum_pad_booster
)
diff --git a/code/game/objects/random/mapping.dm b/code/game/objects/random/mapping.dm
index a98edbf5983..c67b06d8401 100644
--- a/code/game/objects/random/mapping.dm
+++ b/code/game/objects/random/mapping.dm
@@ -1456,3 +1456,193 @@
return pick(prob(5);/turf/simulated/floor/lava,
prob(3);/turf/simulated/floor/outdoors/rocks/caves,
prob(1);/turf/simulated/mineral)
+
+//VOREStation Add Start - Underdark stuff that would be cool if existed if the underdark doesn't.
+
+/obj/random/underdark
+ name = "random underdark loot"
+ desc = "Random loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+
+/obj/random/underdark/item_to_spawn()
+ return pick(prob(3);/obj/random/multiple/underdark/miningdrills,
+ prob(3);/obj/random/multiple/underdark/ores,
+ prob(2);/obj/random/multiple/underdark/treasure,
+ prob(1);/obj/random/multiple/underdark/mechtool)
+
+/obj/random/underdark/uncertain
+ icon_state = "upickaxe"
+ spawn_nothing_percentage = 65 //only 33% to spawn loot
+
+/obj/random/multiple/underdark/miningdrills
+ name = "random underdark mining tool loot"
+ desc = "Random mining tool loot for Underdark."
+ icon = 'icons/obj/items.dmi'
+ icon_state = "spickaxe"
+
+/obj/random/multiple/underdark/miningdrills/item_to_spawn()
+ return pick(
+ prob(10);list(/obj/item/weapon/pickaxe/silver),
+ prob(8);list(/obj/item/weapon/pickaxe/drill),
+ prob(6);list(/obj/item/weapon/pickaxe/jackhammer),
+ prob(5);list(/obj/item/weapon/pickaxe/gold),
+ prob(4);list(/obj/item/weapon/pickaxe/plasmacutter),
+ prob(2);list(/obj/item/weapon/pickaxe/diamond),
+ prob(1);list(/obj/item/weapon/pickaxe/diamonddrill)
+ )
+
+/obj/random/multiple/underdark/ores
+ name = "random underdark mining ore loot"
+ desc = "Random mining utility loot for Underdark."
+ icon = 'icons/obj/mining.dmi'
+ icon_state = "satchel"
+
+/obj/random/multiple/underdark/ores/item_to_spawn()
+ return pick(
+ prob(9);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/shovel,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/glass,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen,
+ /obj/item/weapon/ore/hydrogen
+ ),
+ prob(7);list(
+ /obj/item/weapon/storage/bag/ore,
+ /obj/item/weapon/pickaxe,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium,
+ /obj/item/weapon/ore/osmium
+ ),
+ prob(4);list(
+ /obj/item/clothing/suit/radiation,
+ /obj/item/clothing/head/radiation,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium,
+ /obj/item/weapon/ore/uranium),
+ prob(2);list(
+ /obj/item/device/flashlight/lantern,
+ /obj/item/clothing/glasses/material,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond,
+ /obj/item/weapon/ore/diamond
+ ),
+ prob(1);list(
+ /obj/item/weapon/mining_scanner,
+ /obj/item/weapon/shovel/spade,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium,
+ /obj/item/weapon/ore/verdantium
+ )
+ )
+
+/obj/random/multiple/underdark/treasure
+ name = "random underdark treasure"
+ desc = "Random treasure loot for Underdark."
+ icon = 'icons/obj/storage.dmi'
+ icon_state = "cashbag"
+
+/obj/random/multiple/underdark/treasure/item_to_spawn()
+ return pick(
+ prob(5);list(
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/random/coin,
+ /obj/item/clothing/head/pirate
+ ),
+ prob(4);list(
+ /obj/item/weapon/storage/bag/cash,
+ /obj/item/weapon/spacecash/c500,
+ /obj/item/weapon/spacecash/c100,
+ /obj/item/weapon/spacecash/c50
+ ),
+ prob(3);list(
+ /obj/item/clothing/head/hardhat/orange,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold,
+ /obj/item/stack/material/gold),
+ prob(1);list(
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/phoron,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond,
+ /obj/item/stack/material/diamond
+ )
+ )
+
+/obj/random/multiple/underdark/mechtool
+ name = "random underdark mech equipment"
+ desc = "Random mech equipment loot for Underdark."
+ icon = 'icons/mecha/mecha_equipment.dmi'
+ icon_state = "mecha_clamp"
+
+/obj/random/multiple/underdark/mechtool/item_to_spawn()
+ return pick(
+ prob(12);list(/obj/item/mecha_parts/mecha_equipment/tool/drill),
+ prob(10);list(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp),
+ prob(8);list(/obj/item/mecha_parts/mecha_equipment/generator),
+ prob(7);list(/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged),
+ prob(6);list(/obj/item/mecha_parts/mecha_equipment/repair_droid),
+ prob(3);list(/obj/item/mecha_parts/mecha_equipment/gravcatapult),
+ prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser),
+ prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer/rigged),
+ prob(1);list(/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill),
+ )
+//VOREStation Add End
\ No newline at end of file
diff --git a/code/global_vr.dm b/code/global_vr.dm
index 1187b4a5dcc..6ed3403aaf7 100644
--- a/code/global_vr.dm
+++ b/code/global_vr.dm
@@ -1,3 +1,6 @@
+var/list/vinestart = list()
+var/list/verminstart = list()
+
var/list/awayabductors = list() // List of scatter landmarks for Abductors in Gateways
var/list/eventdestinations = list() // List of scatter landmarks for VOREStation event portals
var/list/eventabductors = list() // List of scatter landmarks for VOREStation abductor portals
diff --git a/code/modules/ai/ai_holder_combat.dm b/code/modules/ai/ai_holder_combat.dm
index 29c58e56706..e21d8de5b28 100644
--- a/code/modules/ai/ai_holder_combat.dm
+++ b/code/modules/ai/ai_holder_combat.dm
@@ -310,15 +310,20 @@
// Kill common obstacle in the way like tables.
var/obj/structure/obstacle = locate(/obj/structure, problem_turf)
- if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille) || istype(obstacle, /obj/effect/weaversilk/wall)) //VOREStation Edit: spdr
+ if(istype(obstacle, /obj/structure/window) || istype(obstacle, /obj/structure/closet) || istype(obstacle, /obj/structure/table) || istype(obstacle, /obj/structure/grille))
ai_log("destroy_surroundings() : Attacking generic structure.", AI_LOG_INFO)
return melee_attack(obstacle)
+ var/obj/effect/weaversilk/web = locate(/obj/effect/weaversilk, problem_turf)
+ if(istype(web, /obj/effect/weaversilk/wall)) //VOREStation Edit: spdr
+ ai_log("destroy_surroundings() : Attacking weaversilk effect.", AI_LOG_INFO)
+ return melee_attack(web)
+
for(var/obj/machinery/door/D in problem_turf) // Required since firelocks take up the same turf.
if(D.density)
ai_log("destroy_surroundings() : Attacking closed door.", AI_LOG_INFO)
return melee_attack(D)
-
+
// Should always be last thing attempted
if(!problem_turf.opacity)
ai_log("destroy_surroundings() : Attacking a transparent (window?) turf.", AI_LOG_INFO)
diff --git a/code/modules/economy/vending_machines.dm b/code/modules/economy/vending_machines.dm
index 817f9398ba2..146134b53b5 100644
--- a/code/modules/economy/vending_machines.dm
+++ b/code/modules/economy/vending_machines.dm
@@ -57,7 +57,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/bluecuracao = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/cognac = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/grenadine = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/kahlua = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/melonliquor = 5,
/obj/item/weapon/reagent_containers/food/drinks/bottle/peppermintschnapps = 5,
@@ -587,7 +587,7 @@
icon_state = "dinnerware"
products = list(
/obj/item/weapon/reagent_containers/food/condiment/yeast = 5,
- /obj/item/weapon/reagent_containers/food/condiment/cornoil = 5,
+ /obj/item/weapon/reagent_containers/food/condiment/cookingoil = 5,
/obj/item/weapon/tray = 8,
/obj/item/weapon/material/kitchen/utensil/fork = 6,
/obj/item/weapon/material/knife/plastic = 6,
diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm
index 2e4d9d84cf9..0af166fe230 100644
--- a/code/modules/events/aurora_caelus.dm
+++ b/code/modules/events/aurora_caelus.dm
@@ -5,13 +5,13 @@
endWhen = 126
/datum/event/aurora_caelus/announce()
- command_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your station, and will exhaust their energy battering the hull. \
+ command_announcement.Announce("[station_name()]: A harmless cloud of ions is approaching your [using_map.facility_type], and will exhaust their energy battering the hull. \
Nanotrasen has approved a short break for all employees to relax and observe this very rare event. \
During this time, starlight will be bright but gentle, shifting between quiet green and blue colors. \
Any staff who would like to view these lights for themselves may proceed to the area nearest to them with viewing ports to open space. \
You will have approximately two minutes before the ions begin to reach the hull. \
We hope you enjoy the lights.", "Nanotrasen Meteorology Division", new_sound = 'sound/AI/aurora.ogg') //VOREStation Edit
-
+
/datum/event/aurora_caelus/start()
affecting_z -= global.using_map.sealed_levels // Space levels only please!
for(var/mob/M in player_list)
@@ -31,6 +31,6 @@ Please return to your workplace and continue work as normal. \
Have a pleasant shift, [station_name()], and thank you for watching with us.",
"Nanotrasen Meteorology Division", new_sound = 'sound/AI/aurora_end.ogg') //VOREStation Edit
..()
-
+
/datum/event/aurora_caelus/overmap/announce()
return
diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm
index d4fb6faa973..7f991b44fc2 100644
--- a/code/modules/events/carp_migration.dm
+++ b/code/modules/events/carp_migration.dm
@@ -26,7 +26,7 @@
if(activeFor % 5 != 0)
return // Only process every 10 seconds.
if(count_spawned_carps() < carp_cap)
- spawn_fish(rand(1, severity * 2) - 1, severity, severity * 2)
+ spawn_fish(rand(3, 3 + severity * 2) - 1, 1, severity + 2)
/datum/event/carp_migration/proc/spawn_fish(var/num_groups, var/group_size_min, var/group_size_max, var/dir)
if(isnull(dir))
diff --git a/code/modules/events/drone_pod_vr.dm b/code/modules/events/drone_pod_vr.dm
index 54ddd7bdba9..c93911e7779 100644
--- a/code/modules/events/drone_pod_vr.dm
+++ b/code/modules/events/drone_pod_vr.dm
@@ -22,7 +22,7 @@
qdel(target_spot)
/datum/event/drone_pod_drop/announce()
- command_announcement.Announce("An unidentified drone pod has been detected landing near the surface facilty. Open and examine at your own risk.", "NanoTrasen Orbital Monitoring")
+ command_announcement.Announce("An unidentified drone pod has been detected on a collision course towards the [location_name()]. Open and examine at your own risk.", "[location_name()] Sensor Network")
/datum/event/drone_pod_drop/start()
if(!land_target)
diff --git a/code/modules/events/event_container_vr.dm b/code/modules/events/event_container_vr.dm
index e82fa420d4f..7b429f94477 100644
--- a/code/modules/events/event_container_vr.dm
+++ b/code/modules/events/event_container_vr.dm
@@ -84,7 +84,8 @@
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Grub Infestation", /datum/event/grub_infestation, 0, list(ASSIGNMENT_SECURITY = 10, ASSIGNMENT_ENGINEER = 30), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Drone Pod Drop", /datum/event/drone_pod_drop, 10, list(ASSIGNMENT_SCIENTIST = 40), 1),
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Morph Spawn", /datum/event/morph_spawn, 75, list(ASSIGNMENT_SECURITY = 30, ASSIGNMENT_SCIENTIST = 10), 1),
- new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 75, list(ASSIGNMENT_SECURITY = 40), 0)
+ new /datum/event_meta(EVENT_LEVEL_MODERATE, "Maintenance Predator", /datum/event/maintenance_predator, 75, list(ASSIGNMENT_SECURITY = 40), 0),
+ new /datum/event_meta(EVENT_LEVEL_MODERATE, "Jellyfish School", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
)
add_disabled_events(list(
new /datum/event_meta(EVENT_LEVEL_MODERATE, "Appendicitis", /datum/event/spontaneous_appendicitis, 0, list(ASSIGNMENT_MEDICAL = 30), 1),
@@ -97,17 +98,18 @@
/datum/event_container/major/New()
available_events = list(
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 7), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station,0, list(ASSIGNMENT_ANY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Nothing", /datum/event/nothing, 3600),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Atmos Leak", /datum/event/atmos_leak, 30, list(ASSIGNMENT_ENGINEER = 25), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Space Vines", /datum/event/spacevine, 20, list(ASSIGNMENT_ENGINEER = 7), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Carp Migration", /datum/event/carp_migration, 10, list(ASSIGNMENT_SECURITY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Containment Breach", /datum/event/prison_break/station, 0, list(ASSIGNMENT_ANY = 5), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Jellyfish Migration", /datum/event/jellyfish_migration, 5, list(ASSIGNMENT_ANY = 1, ASSIGNMENT_SECURITY = 5, ASSIGNMENT_MEDICAL = 3), 1),
)
add_disabled_events(list(
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
- new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Strike", /datum/event/meteor_strike, 10, list(ASSIGNMENT_ENGINEER = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Blob", /datum/event/blob, 10, list(ASSIGNMENT_ENGINEER = 60), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Meteor Wave", /datum/event/meteor_wave, 30, list(ASSIGNMENT_ENGINEER = 15), 1),
+ new /datum/event_meta(EVENT_LEVEL_MAJOR, "Supply Demand", /datum/event/supply_demand, 0, list(ASSIGNMENT_ANY = 5, ASSIGNMENT_SCIENCE = 15, ASSIGNMENT_GARDENER = 10, ASSIGNMENT_ENGINEER = 10, ASSIGNMENT_MEDICAL = 15), 1),
))
#undef ASSIGNMENT_ANY
diff --git a/code/modules/events/ian_storm_vr.dm b/code/modules/events/ian_storm_vr.dm
index 8e654cff437..dc9aee617d4 100644
--- a/code/modules/events/ian_storm_vr.dm
+++ b/code/modules/events/ian_storm_vr.dm
@@ -4,7 +4,7 @@
endWhen = 3
/datum/event/ianstorm/announce()
- command_announcement.Announce("It has come to our attention that the station passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert", 'sound/AI/ian_storm.ogg')
+ command_announcement.Announce("It has come to our attention that the [using_map.facility_type] passed through an ion storm. Please monitor all electronic equipment for malfunctions.", "Anomaly Alert", 'sound/AI/ian_storm.ogg')
spawn(7 SECONDS)
command_announcement.Announce("Wait. No, thats wrong. The station passed through an IAN storm!.", "Ian Alert")
diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm
index 985518067bf..d0d221d5fd1 100644
--- a/code/modules/events/infestation.dm
+++ b/code/modules/events/infestation.dm
@@ -1,120 +1,78 @@
-#define LOC_KITCHEN 0
-#define LOC_ATMOS 1
-#define LOC_CHAPEL 2
-#define LOC_LIBRARY 3
-#define LOC_HYDRO 4
-#define LOC_CONSTR 5
-#define LOC_TECH 6
-#define LOC_GARDEN 7
-#define LOC_STEMNGR 8
-#define LOC_RESEARCH 9
-
#define VERM_MICE 0
#define VERM_LIZARDS 1
-#define VERM_SPIDERS 2
/datum/event/infestation
announceWhen = 10
endWhen = 11
- var/location
var/locstring
var/vermin
var/vermstring
+ var/list/spawned_vermin = list()
+ var/spawn_types
+ var/num_groups
+ var/prep_size_min
+ var/prep_size_max
+ var/vermin_cap = 40
+ var/list/spawn_locations = list()
/datum/event/infestation/start()
-
- location = rand(0,9)
- var/list/turf/simulated/floor/turfs = list()
- var/spawn_area_type
- switch(location)
- if(LOC_KITCHEN)
- spawn_area_type = /area/crew_quarters/kitchen
- locstring = "the kitchen"
- if(LOC_ATMOS)
- spawn_area_type = /area/engineering/atmos
- locstring = "atmospherics"
- if(LOC_CHAPEL)
- spawn_area_type = /area/chapel/main
- locstring = "the chapel"
- if(LOC_LIBRARY)
- spawn_area_type = /area/library
- locstring = "the library"
- if(LOC_HYDRO)
- spawn_area_type = /area/hydroponics
- locstring = "hydroponics"
- if(LOC_CONSTR)
- spawn_area_type = /area/construction
- locstring = "the construction area"
- if(LOC_TECH)
- spawn_area_type = /area/storage/tech
- locstring = "technical storage"
- if(LOC_GARDEN)
- spawn_area_type = /area/hydroponics/garden
- locstring = "the public garden"
- if(LOC_STEMNGR)
- spawn_area_type = /area/crew_quarters/captain
- locstring = "the site manager's office"
- if(LOC_RESEARCH)
- spawn_area_type = /area/rnd/research
- locstring = "the research division"
-
- for(var/areapath in typesof(spawn_area_type))
- var/area/A = locate(areapath)
- for(var/turf/simulated/floor/F in A.contents)
- //VOREStation Edit - Fixes event
- var/blocked = FALSE
- for(var/atom/movable/AM in F)
- if(AM.density)
- blocked = TRUE
- if(!blocked)
- turfs += F
- //VOREStation Edit - Fixes event
-
- var/list/spawn_types = list()
- var/max_number
- vermin = rand(0,2)
+ vermin = rand(0,1)
switch(vermin)
if(VERM_MICE)
- spawn_types = list(/mob/living/simple_mob/animal/passive/mouse/gray, /mob/living/simple_mob/animal/passive/mouse/brown, /mob/living/simple_mob/animal/passive/mouse/white)
- max_number = 12
+ spawn_types = /mob/living/simple_mob/animal/passive/mouse/gray
+ prep_size_min = 1
+ prep_size_max = 4
vermstring = "mice"
if(VERM_LIZARDS)
- spawn_types = list(/mob/living/simple_mob/animal/passive/lizard)
- max_number = 6
+ spawn_types = /mob/living/simple_mob/animal/passive/lizard
+ prep_size_min = 1
+ prep_size_max = 3
vermstring = "lizards"
- if(VERM_SPIDERS)
- spawn_types = list(/obj/effect/spider/spiderling)
- max_number = 3
- vermstring = "spiders"
+ // Check if any landmarks exist!
+ for(var/obj/effect/landmark/C in landmarks_list)
+ if(C.name == "verminstart")
+ spawn_locations.Add(C.loc)
- spawn(0)
- var/num = rand(2,max_number)
- while(turfs.len > 0 && num > 0)
- var/turf/simulated/floor/T = pick(turfs)
- turfs.Remove(T)
- num--
- if(vermin == VERM_SPIDERS)
- var/obj/effect/spider/spiderling/S = new(T)
- S.amount_grown = -1
- else
- var/spawn_type = pick(spawn_types)
- new spawn_type(T)
+/datum/event/infestation/tick()
+ if(activeFor % 5 != 0)
+ return // Only process every 10 seconds.
+ if(count_spawned_vermin() < vermin_cap)
+ spawn_vermin(rand(4,10), prep_size_min, prep_size_max)
+
+/datum/event/infestation/proc/spawn_vermin(var/num_groups, var/group_size_min, var/group_size_max)
+ if(spawn_locations.len) // Okay we've got landmarks, lets use those!
+ shuffle_inplace(spawn_locations)
+ num_groups = min(num_groups, spawn_locations.len)
+ for (var/i = 1, i <= num_groups, i++)
+ var/group_size = rand(group_size_min, group_size_max)
+ for (var/j = 0, j < group_size, j++)
+ spawn_one_vermin(spawn_locations[i])
+ return
+
+// Spawn a single vermin at given location.
+/datum/event/infestation/proc/spawn_one_vermin(var/loc)
+ var/mob/living/simple_mob/animal/M = new spawn_types(loc)
+ GLOB.destroyed_event.register(M, src, .proc/on_vermin_destruction)
+ spawned_vermin.Add(M)
+ return M
+
+// Counts living vermin spawned by this event.
+/datum/event/infestation/proc/count_spawned_vermin()
+ . = 0
+ for(var/mob/living/simple_mob/animal/M as anything in spawned_vermin)
+ if(!QDELETED(M) && M.stat != DEAD)
+ . += 1
+
+// If vermin is kill, remove it from the list.
+/datum/event/infestation/proc/on_vermin_destruction(var/mob/M)
+ spawned_vermin -= M
+ GLOB.destroyed_event.unregister(M, src, .proc/on_vermin_destruction)
+
/datum/event/infestation/announce()
- command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding in [locstring]. Clear them out, before this starts to affect productivity.", "Vermin infestation")
-
-#undef LOC_KITCHEN
-#undef LOC_ATMOS
-#undef LOC_CHAPEL
-#undef LOC_LIBRARY
-#undef LOC_HYDRO
-#undef LOC_TECH
-#undef LOC_GARDEN
-#undef LOC_STEMNGR
-#undef LOC_RESEARCH
+ command_announcement.Announce("Bioscans indicate that [vermstring] have been breeding all over the facility. Clear them out, before this starts to affect productivity.", "Vermin infestation")
#undef VERM_MICE
-#undef VERM_LIZARDS
-#undef VERM_SPIDERS
+#undef VERM_LIZARDS
\ No newline at end of file
diff --git a/code/modules/events/jellyfish_migration.dm b/code/modules/events/jellyfish_migration.dm
new file mode 100644
index 00000000000..7498539ae14
--- /dev/null
+++ b/code/modules/events/jellyfish_migration.dm
@@ -0,0 +1,102 @@
+/datum/event/jellyfish_migration
+ startWhen = 0 // Start immediately
+ announceWhen = 45 // Adjusted by setup
+ endWhen = 75 // Adjusted by setup
+ var/jellyfish_cap = 20
+ var/list/spawned_jellyfish = list()
+
+/datum/event/jellyfish_migration/setup()
+ announceWhen = rand(30, 60) // 1 to 2 minutes
+ endWhen += severity * 25
+ jellyfish_cap = 2 + 3 ** severity // No more than this many at once regardless of waves. (5, 11, 29)
+
+/datum/event/jellyfish_migration/start()
+ affecting_z -= global.using_map.sealed_levels // Space levels only please!
+ ..()
+
+/datum/event/jellyfish_migration/announce()
+ var/announcement = ""
+ if(severity == EVENT_LEVEL_MAJOR)
+ announcement = "Massive migration of unknown biological entities has been detected near [location_name()], please stand-by."
+ else
+ announcement = "Unknown biological [spawned_jellyfish.len == 1 ? "entity has" : "entities have"] been detected near [location_name()], please stand-by."
+ command_announcement.Announce(announcement, "Lifesign Alert")
+
+/datum/event/jellyfish_migration/tick()
+ if(activeFor % 5 != 0)
+ return // Only process every 10 seconds.
+ if(count_spawned_jellyfish() < jellyfish_cap)
+ spawn_fish(rand(3, 3 + severity * 2) - 1, 1, severity + 2)
+
+/datum/event/jellyfish_migration/proc/spawn_fish(var/num_groups, var/group_size_min, var/group_size_max, var/dir)
+ if(isnull(dir))
+ dir = (victim && prob(80)) ? victim.fore_dir : pick(GLOB.cardinal)
+
+ // Check if any landmarks exist! These will use the carp spawn since they already would spawn in these similar spots.
+ var/list/spawn_locations = list()
+ for(var/obj/effect/landmark/C in landmarks_list)
+ if(C.name == "carpspawn" && (C.z in affecting_z))
+ spawn_locations.Add(C.loc)
+ if(spawn_locations.len) // Okay we've got landmarks, lets use those!
+ shuffle_inplace(spawn_locations)
+ num_groups = min(num_groups, spawn_locations.len)
+ for (var/i = 1, i <= num_groups, i++)
+ var/group_size = rand(group_size_min, group_size_max)
+ for (var/j = 0, j < group_size, j++)
+ spawn_one_jellyfish(spawn_locations[i])
+ return
+
+ // Okay we did *not* have any landmarks, so lets do our best!
+ var/i = 1
+ while (i <= num_groups)
+ var/Z = pick(affecting_z)
+ var/group_size = rand(group_size_min, group_size_max)
+ var/turf/map_center = locate(round(world.maxx/2), round(world.maxy/2), Z)
+ var/turf/group_center = pick_random_edge_turf(dir, Z, TRANSITIONEDGE + 2)
+ var/list/turfs = getcircle(group_center, 2)
+ for (var/j = 0, j < group_size, j++)
+ var/mob/living/simple_mob/animal/M = spawn_one_jellyfish(turfs[(i % turfs.len) + 1])
+ // Ray trace towards middle of the map to find where they can stop just outside of structure/ship.
+ var/turf/target
+ for(var/turf/T in getline(get_turf(M), map_center))
+ if(!T.is_space())
+ break;
+ target = T
+ if(target)
+ M.ai_holder?.give_destination(target) // Ask jellyfish to swim towards the middle of the map
+ i++
+
+// Spawn a single jellyfish at given location.
+/datum/event/jellyfish_migration/proc/spawn_one_jellyfish(var/loc)
+ var/mob/living/simple_mob/animal/M = new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc)
+ GLOB.destroyed_event.register(M, src, .proc/on_jellyfish_destruction)
+ spawned_jellyfish.Add(M)
+ return M
+
+// Counts living jellyfish spawned by this event.
+/datum/event/jellyfish_migration/proc/count_spawned_jellyfish()
+ . = 0
+ for(var/mob/living/simple_mob/animal/M as anything in spawned_jellyfish)
+ if(!QDELETED(M) && M.stat != DEAD)
+ . += 1
+
+// If jellyfish is bomphed, remove it from the list.
+/datum/event/jellyfish_migration/proc/on_jellyfish_destruction(var/mob/M)
+ spawned_jellyfish -= M
+ GLOB.destroyed_event.unregister(M, src, .proc/on_jellyfish_destruction)
+
+/datum/event/jellyfish_migration/end()
+ . = ..()
+ // Clean up jellyfish that died in space for some reason.
+ spawn(0)
+ for(var/mob/living/simple_mob/SM in spawned_jellyfish)
+ if(SM.stat == DEAD)
+ var/turf/T = get_turf(SM)
+ if(istype(T, /turf/space))
+ if(prob(75))
+ qdel(SM)
+ CHECK_TICK
+
+// Overmap version
+/datum/event/jellyfish_migration/overmap/announce()
+ return
diff --git a/code/modules/events/prison_break.dm b/code/modules/events/prison_break.dm
index f2675a0ede1..2575873aae2 100644
--- a/code/modules/events/prison_break.dm
+++ b/code/modules/events/prison_break.dm
@@ -37,7 +37,7 @@
/datum/event/prison_break/announce()
if(areas && areas.len > 0)
- command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] [(eventDept == "Security")? "imprisonment":"containment"] subroutines. Secure any compromised areas immediately. Station AI involvement is recommended.", "[eventDept] Alert")
+ command_announcement.Announce("[pick("Gr3y.T1d3 virus","Malignant trojan")] detected in [station_name()] [(eventDept == "Security")? "imprisonment":"containment"] subroutines. Secure any compromised areas immediately. Involvement of [using_map.facility_type] AI is recommended.", "[eventDept] Alert")
/datum/event/prison_break/start()
diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm
index 13f853dd3c2..a8668e561a4 100644
--- a/code/modules/events/radiation_storm.dm
+++ b/code/modules/events/radiation_storm.dm
@@ -16,7 +16,7 @@
/datum/event/radiation_storm/tick()
if(activeFor == enterBelt)
- command_announcement.Announce("The station has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
+ command_announcement.Announce("The [using_map.facility_type] has entered the radiation belt. Please remain in a sheltered area until we have passed the radiation belt.", "Anomaly Alert")
radiate()
if(activeFor >= enterBelt && activeFor <= leaveBelt)
@@ -27,7 +27,7 @@
radiate()
else if(activeFor == leaveBelt)
- command_announcement.Announce("The station has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
+ command_announcement.Announce("The [using_map.facility_type] has passed the radiation belt. Please allow for up to one minute while radiation levels dissipate, and report to medbay if you experience any unusual symptoms. Maintenance will lose all access again shortly.", "Anomaly Alert")
/datum/event/radiation_storm/proc/radiate()
var/radiation_level = rand(15, 35)
for(var/z in using_map.station_levels)
diff --git a/code/modules/events/rogue_drones.dm b/code/modules/events/rogue_drones.dm
index f6ac58b1e41..b7e9f37552a 100644
--- a/code/modules/events/rogue_drones.dm
+++ b/code/modules/events/rogue_drones.dm
@@ -35,7 +35,7 @@
if(4)
msg = "A passing derelict ship's drone defense systems have just activated. If any are sighted in the area, use caution."
if(5)
- msg = "We're detecting a swarm of small objects approaching your station. Most likely a bunch of drones. Please exercise caution if you see any."
+ msg = "We're detecting a swarm of small objects approaching your [using_map.facility_type]. Most likely a bunch of drones. Please exercise caution if you see any."
//VOREStation Edit End
command_announcement.Announce(msg, "Rogue drone alert")
diff --git a/code/modules/events/solar_storm.dm b/code/modules/events/solar_storm.dm
index a8d4b92a3c0..33c2c477edf 100644
--- a/code/modules/events/solar_storm.dm
+++ b/code/modules/events/solar_storm.dm
@@ -9,7 +9,7 @@
endWhen = startWhen + rand(30,90) + rand(30,90) //2-6 minute duration
/datum/event/solar_storm/announce()
- command_announcement.Announce("A solar storm has been detected approaching \the [station_name()]. Please halt all EVA activites immediately and return to the interior of the station.", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
+ command_announcement.Announce("A solar storm has been detected approaching \the [station_name()]. Please halt all EVA activites immediately and return to the interior of the [using_map.facility_type].", "Anomaly Alert", new_sound = 'sound/AI/radiation.ogg')
adjust_solar_output(1.5)
/datum/event/solar_storm/proc/adjust_solar_output(var/mult = 1)
@@ -18,7 +18,7 @@
/datum/event/solar_storm/start()
- command_announcement.Announce("The solar storm has reached the station. Please refrain from EVA and remain inside the station until it has passed.", "Anomaly Alert")
+ command_announcement.Announce("The solar storm has reached the [using_map.facility_type]. Please refrain from EVA and remain inside the station until it has passed.", "Anomaly Alert")
adjust_solar_output(5)
@@ -40,7 +40,7 @@
L.rad_act(rand(15, 30))
/datum/event/solar_storm/end()
- command_announcement.Announce("The solar storm has passed the station. It is now safe to resume EVA activities. Please report to medbay if you experience any unusual symptoms. ", "Anomaly Alert")
+ command_announcement.Announce("The solar storm has passed the [using_map.facility_type]. It is now safe to resume EVA activities. Please report to medbay if you experience any unusual symptoms. ", "Anomaly Alert")
adjust_solar_output()
diff --git a/code/modules/events/supply_demand_vr.dm b/code/modules/events/supply_demand_vr.dm
index 6e229e1b483..f61d4744c44 100644
--- a/code/modules/events/supply_demand_vr.dm
+++ b/code/modules/events/supply_demand_vr.dm
@@ -63,7 +63,7 @@
send_console_message(message, dpt);
// Also announce over main comms so people know to look
- command_announcement.Announce("An order for the station to deliver supplies to [command_name()] has been delivered to all supply Request Consoles", my_department)
+ command_announcement.Announce("An order for the [using_map.facility_type] to deliver supplies to [command_name()] has been delivered to all supply Request Consoles", my_department)
/datum/event/supply_demand/tick()
if(required_items.len == 0)
diff --git a/code/modules/events/wallrot.dm b/code/modules/events/wallrot.dm
index e09cc50d2f5..311003a05ea 100644
--- a/code/modules/events/wallrot.dm
+++ b/code/modules/events/wallrot.dm
@@ -15,7 +15,7 @@
/datum/event/wallrot/announce()
if(center)
- command_announcement.Announce("Harmful fungi detected on \the [station_name()] nearby [center.loc.name]. Station structures may be contaminated.", "Biohazard Alert")
+ command_announcement.Announce("Harmful fungi detected on \the [station_name()] and [using_map.facility_type] structures nearby [center.loc.name] may be contaminated.", "Biohazard Alert")
/datum/event/wallrot/start()
spawn()
diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm
index a9581341c5d..3ff2cf6b7b3 100644
--- a/code/modules/events/wormholes.dm
+++ b/code/modules/events/wormholes.dm
@@ -6,4 +6,4 @@
wormhole_event()
/datum/event/wormholes/end()
- command_announcement.Announce("There are no more space-time anomalies detected on the station.", "Anomaly Alert")
+ command_announcement.Announce("There are no more space-time anomalies detected on the [using_map.facility_type].", "Anomaly Alert")
diff --git a/code/modules/food/food/condiment.dm b/code/modules/food/food/condiment.dm
index abf4f89b373..5b137957db7 100644
--- a/code/modules/food/food/condiment.dm
+++ b/code/modules/food/food/condiment.dm
@@ -101,9 +101,9 @@
desc = "Often used to flavor food or make people sneeze."
icon_state = "peppermillsmall"
center_of_mass = list("x"=17, "y"=11)
- if("cornoil")
- name = "Corn Oil"
- desc = "A delicious oil used in cooking. Made from corn."
+ if("cookingoil")
+ name = "Cooking Oil"
+ desc = "A delicious oil used in cooking. General purpose."
icon_state = "oliveoil"
center_of_mass = list("x"=16, "y"=6)
if("sugar")
@@ -175,6 +175,13 @@
. = ..()
reagents.add_reagent("capsaicin", 50)
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil
+ name = "Cooking Oil"
+
+/obj/item/weapon/reagent_containers/food/condiment/cookingoil/Initialize()
+ . = ..()
+ reagents.add_reagent("cookingoil", 50)
+
/obj/item/weapon/reagent_containers/food/condiment/cornoil
name = "Corn Oil"
diff --git a/code/modules/food/food/snacks.dm b/code/modules/food/food/snacks.dm
index 8e87f8d71d0..51ec3d82e65 100644
--- a/code/modules/food/food/snacks.dm
+++ b/code/modules/food/food/snacks.dm
@@ -3361,7 +3361,7 @@
. = ..()
reagents.add_reagent("blackpepper", 1)
reagents.add_reagent("sodiumchloride", 1)
- reagents.add_reagent("cornoil", 1)
+ reagents.add_reagent("cookingoil", 1)
/obj/item/weapon/reagent_containers/food/snacks/turkeyslice
name = "turkey drumstick"
diff --git a/code/modules/food/kitchen/cooking_machines/fryer.dm b/code/modules/food/kitchen/cooking_machines/fryer.dm
index 6c2e0d9b71c..bcaad4e6939 100644
--- a/code/modules/food/kitchen/cooking_machines/fryer.dm
+++ b/code/modules/food/kitchen/cooking_machines/fryer.dm
@@ -13,13 +13,13 @@
appliancetype = FRYER
active_power_usage = 12 KILOWATTS
heating_power = 12 KILOWATTS
-
+
light_y = 15
-
+
min_temp = 140 + T0C // Same as above, increasing this to just under 2x to make the % increase on efficiency not quite so painful as it would be at 80.
optimal_temp = 400 + T0C // Increasing this to be 2x Oven to allow for a much higher/realistic frying temperatures. Doesn't really do anything but make heating the fryer take a bit longer.
optimal_power = 0.95 // .35 higher than the default to give fryers faster cooking speed.
-
+
idle_power_usage = 3.6 KILOWATTS
// Power used to maintain temperature once it's heated.
// Going with 25% of the active power. This is a somewhat arbitrary value.
@@ -33,11 +33,11 @@
var/datum/reagents/oil
var/optimal_oil = 9000 //90 litres of cooking oil
-
+
/obj/machinery/appliance/cooker/fryer/Initialize()
. = ..()
fry_loop = new(list(src), FALSE)
-
+
oil = new/datum/reagents(optimal_oil * 1.25, src)
var/variance = rand()*0.15
// Fryer is always a little below full, but its usually negligible
@@ -45,18 +45,18 @@
if(prob(20))
// Sometimes the fryer will start with much less than full oil, significantly impacting efficiency until filled
variance = rand()*0.5
- oil.add_reagent("cornoil", optimal_oil*(1 - variance))
+ oil.add_reagent("cookingoil", optimal_oil*(1 - variance))
/obj/machinery/appliance/cooker/fryer/Destroy()
QDEL_NULL(fry_loop)
QDEL_NULL(oil)
return ..()
-
+
/obj/machinery/appliance/cooker/fryer/examine(var/mob/user)
. = ..()
if(Adjacent(user))
to_chat(user, "Oil Level: [oil.total_volume]/[optimal_oil]")
-
+
/obj/machinery/appliance/cooker/fryer/update_icon() // We add our own version of the proc to use the special fryer double-lights.
cut_overlays()
var/image/light
@@ -69,7 +69,7 @@
light.pixel_x = light_x
light.pixel_y = light_y
add_overlay(light)
-
+
/obj/machinery/appliance/cooker/fryer/heat_up()
if (..())
//Set temperature of oil reagent
@@ -102,7 +102,7 @@
cooking_power *= oil_efficiency
-
+
/obj/machinery/appliance/cooker/fryer/update_icon()
if(!stat)
..()
@@ -119,7 +119,7 @@
if(fry_loop)
fry_loop.stop(src)
..()
-
+
//Fryer gradually infuses any cooked food with oil. Moar calories
//This causes a slow drop in oil levels, encouraging refill after extended use
/obj/machinery/appliance/cooker/fryer/do_cooking_tick(var/datum/cooking_item/CI)
@@ -177,13 +177,13 @@
return
// user.visible_message("\The [user] starts pushing \the [victim] into \the [src]!")
-
+
//Removed delay on this action in favour of a cooldown after it
//If you can lure someone close to the fryer and grab them then you deserve success.
//And a delay on this kind of niche action just ensures it never happens
//Cooldown ensures it can't be spammed to instakill someone
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN*3)
-
+
fry_loop.start(src)
if(!do_mob(user, victim, 20))
@@ -239,9 +239,9 @@
//Coat the victim in some oil
oil.trans_to(victim, 40)
-
+
fry_loop.stop()
-
+
/obj/machinery/appliance/cooker/fryer/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/reagent_containers/glass) && I.reagents)
if (I.reagents.total_volume <= 0 && oil)
diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm
index c909c29fc51..34f4146159c 100644
--- a/code/modules/food/recipes_microwave.dm
+++ b/code/modules/food/recipes_microwave.dm
@@ -522,13 +522,20 @@ I said no!
)
result = /obj/item/weapon/reagent_containers/food/snacks/cutlet
-/datum/recipe/roastedsunflowerseeds
+/datum/recipe/roastedcornsunflowerseeds
reagents = list("sodiumchloride" = 1, "cornoil" = 1)
items = list(
/obj/item/weapon/reagent_containers/food/snacks/rawsunflower
)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+/datum/recipe/roastedsunflowerseeds
+ reagents = list("sodiumchloride" = 1, "cookingoil" = 1)
+ items = list(
+ /obj/item/weapon/reagent_containers/food/snacks/rawsunflower
+ )
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
+
/datum/recipe/roastedpeanutsunflowerseeds
reagents = list("sodiumchloride" = 1, "peanutoil" = 1)
items = list(
@@ -537,10 +544,20 @@ I said no!
result = /obj/item/weapon/reagent_containers/food/snacks/roastedsunflower
/datum/recipe/roastedpeanuts
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "cookingoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
+/datum/recipe/roastedpeanutscorn
fruit = list("peanut" = 2)
reagents = list("sodiumchloride" = 2, "cornoil" = 1)
result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+/datum/recipe/roastedpeanutspeanut
+ fruit = list("peanut" = 2)
+ reagents = list("sodiumchloride" = 2, "peanutoil" = 1)
+ result = /obj/item/weapon/reagent_containers/food/snacks/roastedpeanuts
+
/datum/recipe/mint
reagents = list("sugar" = 5, "frostoil" = 5)
result = /obj/item/weapon/reagent_containers/food/snacks/mint
diff --git a/code/modules/hydroponics/spreading/spreading.dm b/code/modules/hydroponics/spreading/spreading.dm
index e55bb448bd3..393089ebff0 100644
--- a/code/modules/hydroponics/spreading/spreading.dm
+++ b/code/modules/hydroponics/spreading/spreading.dm
@@ -3,15 +3,8 @@
/proc/spacevine_infestation(var/potency_min=70, var/potency_max=100, var/maturation_min=5, var/maturation_max=15)
spawn() //to stop the secrets panel hanging
- var/list/turf/simulated/floor/turfs = list() //list of all the empty floor turfs in the hallway areas
- for(var/areapath in typesof(/area/hallway))
- var/area/A = locate(areapath)
- for(var/turf/simulated/floor/F in A.contents)
- if(!F.check_density())
- turfs += F
-
- if(turfs.len) //Pick a turf to spawn at if we can
- var/turf/simulated/floor/T = pick(turfs)
+ if(vinestart.len) //Pick a turf to spawn at if we can
+ var/turf/simulated/floor/T = pick(vinestart)
var/datum/seed/seed = SSplants.create_random_seed(1)
seed.set_trait(TRAIT_SPREAD,2) // So it will function properly as vines.
seed.set_trait(TRAIT_POTENCY,rand(potency_min, potency_max)) // 70-100 potency will help guarantee a wide spread and powerful effects.
diff --git a/code/modules/mob/living/carbon/human/species/station/teshari.dm b/code/modules/mob/living/carbon/human/species/station/teshari.dm
index cd4bc0b1e9c..6f243418895 100644
--- a/code/modules/mob/living/carbon/human/species/station/teshari.dm
+++ b/code/modules/mob/living/carbon/human/species/station/teshari.dm
@@ -55,6 +55,7 @@
gluttonous = 1
blood_volume = 400
hunger_factor = 0.2
+ soft_landing = TRUE
ambiguous_genders = TRUE
diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/weaver_objs.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/weaver_objs.dm
index 45aeefc2b56..fef1206c66a 100644
--- a/code/modules/mob/living/carbon/human/species/station/traits_vr/weaver_objs.dm
+++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/weaver_objs.dm
@@ -89,6 +89,7 @@
desc = "A silky, yet firm trap. Be careful not to step into it! Or don't..."
icon_state = "trap"
var/trap_active = TRUE
+ can_buckle = TRUE
/obj/effect/weaversilk/trap/Crossed(atom/movable/AM as mob|obj)
if(AM.is_incorporeal())
@@ -106,17 +107,18 @@
"You hear a squishy noise!"
)
set_dir(L.dir)
- can_buckle = TRUE
buckle_mob(L)
L.Stun(1)
to_chat(L, "The sticky fibers of \the [src] ensnare, trapping you in place!")
trap_active = FALSE
- can_buckle = initial(can_buckle)
desc += " Actually, it looks like it's been all spent."
..()
+/obj/effect/weaversilk/trap/MouseDrop_T(atom/movable/AM,mob/user)
+ return
+
// Items
// TODO: Spidersilk clothing and actual bindings, once sprites are ready.
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm
new file mode 100644
index 00000000000..3347494b4ef
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/jellyfish.dm
@@ -0,0 +1,171 @@
+GLOBAL_VAR_CONST(max_jellyfish, 50)
+GLOBAL_VAR_INIT(jellyfish_count, 0)
+
+
+/datum/category_item/catalogue/fauna/space_jellyfish
+ name = "Alien Wildlife - Space Jellyfish"
+ desc = "A hostile space predator. \
+ This space jellyfish uses hypnotic patterns to lure in prey, which it then wraps in tentacles to leech energy from.\
+ It is somewhat weak, but uses unknown means to stun prey. It uses the energy of its prey to replicate itself. \
+ These creatures can quickly grow out of control if left to feed and reproduce unchecked. \
+ Notable weakness to rapid cooling from ice based weaponry.\
+ The flesh is typically non-toxic and quite delicious. Their cores are considered a delicacy in many regions."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish
+ name = "space jellyfish"
+ desc = "A semi-translucent space creature, possessing of tentacles and a hypnotizing, flashing bio-luminescent display."
+ tt_desc = "Semaeostomeae Stellarus"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_jellyfish)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_jellyfish"
+ icon_living = "space_jellyfish"
+ icon_dead = "space_jellyfish_dead"
+ has_eye_glow = TRUE
+ hovering = TRUE
+
+
+ faction = "jellyfish"
+ maxHealth = 100
+ health = 100
+ nutrition = 150
+ pass_flags = PASSTABLE
+ movement_cooldown = 3.25
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 2
+ attack_sharp = FALSE
+ attack_sound = 'sound/weapons/tap.ogg'
+ attacktext = list("drained", "bludgeoned", "wraped", "tentacle whipped")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/evasive/jellyfish
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 900
+
+ speak_emote = list("thrumms")
+
+ meat_amount = 0
+ meat_type = /obj/item/weapon/reagent_containers/food/snacks/jellyfishcore
+
+ say_list_type = /datum/say_list/jellyfish
+
+ vore_active = 1
+ vore_capacity = 1
+ vore_bump_chance = 25
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "internal chamber"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+ var/reproduction_cooldown = 0
+
+/datum/say_list/jellyfish
+ emote_see = list("flickers", "flashes", "looms","pulses","sways","shimmers hypnotically")
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "internal chamber"
+ B.desc = "It's smooth and translucent. You can see the world around you distort and wobble with the movement of the space jellyfish. It floats casually, while the delicate flesh seems to form to you. It's surprisingly cool, and flickers with its own light. You're on display for all to see, trapped within the confines of this strange space alien!"
+ B.mode_flags = 40
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 0
+ B.absorbchance = 0
+ B.escapechance = 15
+
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/apply_melee_effects(var/atom/A)
+ if(isliving(A))
+ var/mob/living/L = A
+ var/leech = rand(1,100)
+ if(L.nutrition)
+ L.adjust_nutrition(-leech)
+ adjust_nutrition(leech)
+ if(prob(25))
+ L.adjustHalLoss(leech)
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/New(newloc, jellyfish)
+ GLOB.jellyfish_count ++
+ var/mob/living/simple_mob/vore/alienanimals/space_jellyfish/parent = jellyfish
+ if(parent)
+ parent.faction = faction
+ ..()
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/death()
+ . = ..()
+ new /obj/item/weapon/reagent_containers/food/snacks/jellyfishcore(loc, nutrition)
+ GLOB.jellyfish_count --
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Life()
+ . = ..()
+ if(client)
+ return
+ reproduce()
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/proc/reproduce()
+ if(reproduction_cooldown > 0)
+ reproduction_cooldown --
+ return
+ if(GLOB.jellyfish_count >= GLOB.max_jellyfish)
+ return
+ if(nutrition < 500)
+ return
+ if(prob(10))
+ new /mob/living/simple_mob/vore/alienanimals/space_jellyfish(loc, src)
+ adjust_nutrition(-400)
+ reproduction_cooldown = 60
+
+/mob/living/simple_mob/vore/alienanimals/space_jellyfish/Process_Spacemove(var/check_drift = 0)
+ return TRUE
+
+/datum/ai_holder/simple_mob/melee/evasive/jellyfish
+ hostile = TRUE
+ cooperative = FALSE
+ retaliate = TRUE
+ speak_chance = 2
+ wander = TRUE
+ unconscious_vore = TRUE
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore
+ name = "jellyfish core"
+ icon = 'icons/obj/food_vr.dmi'
+ icon_state = "jellyfish_core"
+ desc = "The pulsing core of a space jellyfish! ... It smells delicious."
+ nutriment_amt = 50
+ bitesize = 1000
+ nutriment_desc = list("heavenly space meat" = 100)
+
+ var/inherited_nutriment = 0
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore/New(newloc, inherit)
+ inherited_nutriment = inherit
+ . = ..()
+
+/obj/item/weapon/reagent_containers/food/snacks/jellyfishcore/Initialize()
+ nutriment_amt += inherited_nutriment
+ . = ..()
+ reagents.add_reagent("nutriment", nutriment_amt, nutriment_desc)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
new file mode 100644
index 00000000000..3963cec0b66
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spookyghost.dm
@@ -0,0 +1,219 @@
+/datum/category_item/catalogue/fauna/space_ghost
+ name = "Alien Wildlife - Space Ghost"
+ desc = "A mysterious and unknown creature made of radical energy.\
+ This creature's energy interferes the nervous system in many kinds of creatures, which may result in hallucinations.\
+ This creature's lack of a physical form leaves it quite resistant to physical damage.\
+ Smaller variants of this creature seem to be vulnerable to bright light.\
+ While both variants are quite vulnerable to laser and energy weapons."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost
+ name = "space ghost"
+ desc = "A pulsing mass of darkness that seems to have gained sentience."
+ tt_desc = "?????"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_ghost)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "space_ghost"
+ icon_living = "space_ghost"
+ icon_dead = "space_ghost_dead"
+ has_eye_glow = TRUE
+ hovering = TRUE
+ pass_flags = PASSTABLE
+
+ faction = "space ghost"
+ maxHealth = 50
+ health = 50
+ movement_cooldown = 3.25
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 0
+ melee_damage_lower = 1
+ melee_damage_upper = 1
+ attack_sharp = FALSE
+ attacktext = list("spooked", "startled", "jumpscared", "screamed at")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/space_ghost
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 999999
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100
+ )
+
+ speak_emote = list("rumbles")
+
+ loot_list = list(/obj/item/weapon/ore/diamond)
+
+ vore_active = 0
+
+ projectiletype = /mob/living/simple_mob/vore/alienanimals/spooky_ghost
+ projectilesound = null
+ projectile_accuracy = 0
+ projectile_dispersion = 0
+
+ needs_reload = TRUE
+ reload_max = 1
+ reload_count = 0
+ reload_time = 7 SECONDS
+
+
+/datum/ai_holder/simple_mob/ranged/kiting/space_ghost
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+ speak_chance = 0
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/apply_melee_effects(var/atom/A)
+ var/mob/living/L = A
+ L.hallucination += 50
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/shoot(atom/A) //We're shooting ghosts at people and need them to have the same faction as their parent, okay?
+ if(!projectiletype)
+ return
+ if(A == get_turf(src))
+ return
+ face_atom(A)
+ if(reload_count >= reload_max)
+ return
+ var/mob/living/simple_mob/P = new projectiletype(loc, src)
+
+ if(!P)
+ return
+ if(needs_reload)
+ reload_count++
+
+ P.faction = faction
+ playsound(src, projectilesound, 80, 1)
+
+/mob/living/simple_mob/vore/alienanimals/space_ghost/death(gibbed, deathmessage = "fades away!")
+ . = ..()
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost
+ name = "space ghost"
+ desc = "A pulsing mass of darkness that seems to have gained sentience."
+ tt_desc = "?????"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/space_ghost)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "spookyghost-1"
+ icon_living = "spookyghost-1"
+ icon_dead = "space_ghost_dead"
+ hovering = TRUE
+ pass_flags = PASSTABLE
+
+ faction = "space ghost"
+ maxHealth = 5
+ health = 5
+ movement_cooldown = 1
+
+ see_in_dark = 10
+ alpha = 128
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 0
+ melee_damage_lower = 1
+ melee_damage_upper = 1
+ attack_sharp = FALSE
+ attacktext = list("spooked", "startled", "jumpscared", "screamed at")
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 999999
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 100
+ )
+
+ speak_emote = list("rumbles")
+
+ vore_active = 0
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/space_ghost
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/Initialize()
+ . = ..()
+ icon_living = "spookyghost-[rand(1,2)]"
+ icon_state = icon_living
+ addtimer(CALLBACK(src, .proc/death), 2 MINUTES)
+ update_icon()
+
+/datum/ai_holder/simple_mob/melee/space_ghost
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+ speak_chance = 0
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/death(gibbed, deathmessage = "fades away!")
+ . = ..()
+ qdel(src)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/apply_melee_effects(var/atom/A)
+ var/mob/living/L = A
+ L.hallucination += rand(1,50)
+
+/mob/living/simple_mob/vore/alienanimals/spooky_ghost/Life()
+ . = ..()
+ var/turf/T = get_turf(src)
+ if(!T)
+ return
+ if(T.get_lumcount() >= 0.5)
+ adjustBruteLoss(1)
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
new file mode 100644
index 00000000000..362232bd8e0
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/startreader.dm
@@ -0,0 +1,175 @@
+/datum/category_item/catalogue/fauna/startreader
+ name = "Alien Wildlife - Star Treader"
+ desc = "A hard shelled creature that lives on asteroids.\
+ It is quite durable and very opportunistic in its feeding habits.\
+ It is vulnerable to extreme vibrations, and from the bottom."
+ value = CATALOGUER_REWARD_EASY
+
+
+/mob/living/simple_mob/vore/alienanimals/startreader
+ name = "asteroid star treader"
+ desc = "A slow, hard shelled creature that stalks asteroids."
+ tt_desc = "Testudines Stellarus"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/startreader)
+
+ icon = 'icons/mob/alienanimals_x32.dmi'
+ icon_state = "startreader"
+ icon_living = "startreader"
+ icon_dead = "startreader_dead"
+
+ faction = "space turtle"
+ maxHealth = 1000
+ health = 1000
+ movement_cooldown = 20
+
+ see_in_dark = 10
+
+ response_help = "pets"
+ response_disarm = "gently pushes aside"
+ response_harm = "punches"
+
+ harm_intent_damage = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 10
+ attack_sharp = FALSE
+ attacktext = list("chomped", "bashed", "monched", "bumped")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/melee/startreader
+
+ min_oxy = 0
+ max_oxy = 0
+ min_tox = 0
+ max_tox = 0
+ min_co2 = 0
+ max_co2 = 0
+ min_n2 = 0
+ max_n2 = 0
+ minbodytemp = 0
+ maxbodytemp = 900
+
+ loot_list = list(/obj/random/underdark/uncertain)
+
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 100,
+ "energy" = 100,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 30,
+ "bullet" = 30,
+ "laser" = 10,
+ "energy" = 10,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100
+ )
+
+ speak_emote = list("rumbles")
+
+ say_list_type = /datum/say_list/startreader
+
+ vore_active = 1
+ vore_capacity = 2
+ vore_bump_chance = 25
+ vore_ignores_undigestable = 0
+ vore_default_mode = DM_DRAIN
+ vore_icons = SA_ICON_LIVING
+ vore_stomach_name = "gastric sac"
+ vore_default_contamination_flavor = "Wet"
+ vore_default_contamination_color = "grey"
+ vore_default_item_mode = IM_DIGEST
+
+ var/flipped = FALSE
+ var/flip_cooldown = 0
+
+/datum/say_list/startreader
+ emote_see = list("bobs", "digs around","gnashes at something","yawns","snaps at something")
+ emote_hear = list("thrumms","clicks","rattles","groans","burbles")
+
+
+/mob/living/simple_mob/vore/alienanimals/startreader/init_vore()
+ ..()
+ var/obj/belly/B = vore_selected
+ B.name = "gastric sac"
+ B.desc = "It's cramped and hot! You're forced into a small ball as your shape is squeezed into the slick, wet chamber. Despite being swallowed into the creature, you find that you actually stretch out of the top a ways, and can JUST BARELY wiggle around..."
+ B.mode_flags = 40
+ B.digest_brute = 0.5
+ B.digest_burn = 0.5
+ B.digestchance = 10
+ B.absorbchance = 0
+ B.escapechance = 15
+
+/datum/ai_holder/simple_mob/melee/startreader
+ hostile = TRUE
+ retaliate = TRUE
+ destructive = TRUE
+ violent_breakthrough = TRUE
+
+/mob/living/simple_mob/vore/alienanimals/startreader/apply_melee_effects(var/atom/A)
+ if(prob(25))
+ var/mob/living/L = A
+ if(isliving(A))
+ visible_message("\The [src] trips \the [L]!!")
+ L.weakened += rand(1,10)
+
+/mob/living/simple_mob/vore/alienanimals/startreader/Life()
+ . = ..()
+ if(flip_cooldown == 1)
+ flip_cooldown = 0
+ flipped = FALSE
+ handle_flip()
+ visible_message("\The [src] rights itself!!!")
+ return
+ if(flip_cooldown)
+ flip_cooldown --
+ SetStunned(2)
+
+/mob/living/simple_mob/vore/alienanimals/startreader/proc/handle_flip()
+ if(flipped)
+ armor = list(
+ "melee" = 0,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0)
+
+ armor_soak = list(
+ "melee" = 0,
+ "bullet" = 0,
+ "laser" = 0,
+ "energy" = 0,
+ "bomb" = 0,
+ "bio" = 0,
+ "rad" = 0
+ )
+ icon_living = "startreader_flipped"
+ AdjustStunned(flip_cooldown)
+ else
+ armor = list(
+ "melee" = 100,
+ "bullet" = 100,
+ "laser" = 100,
+ "energy" = 100,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100)
+
+ armor_soak = list(
+ "melee" = 30,
+ "bullet" = 30,
+ "laser" = 10,
+ "energy" = 10,
+ "bomb" = 0,
+ "bio" = 100,
+ "rad" = 100
+ )
+ icon_living = "startreader"
+ SetStunned(0)
+
+ update_icon()
\ No newline at end of file
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
index 1d45bf84897..2735256b159 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/teppi.dm
@@ -687,7 +687,7 @@ GLOBAL_VAR_INIT(teppi_count, 0) // How mant teppi DO we have?
amount_grown -= rand(100,250)
if(not_hungy)
do_breeding()
- if(prob(0.5))
+ if(!client && prob(0.5))
teppi_sound()
/mob/living/simple_mob/vore/alienanimals/teppi/proc/do_breeding()
diff --git a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
index 178dee3cee2..b15a7e0e188 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
@@ -1,18 +1,21 @@
/mob/living/simple_mob/vore
mob_class = MOB_CLASS_ANIMAL
mob_bump_flag = 0
+
+/mob/living/simple_mob
var/nameset
+ var/limit_renames = TRUE
-/mob/living/simple_mob/vore/Login()
+/mob/living/simple_mob/Login()
. = ..()
- verbs |= /mob/living/simple_mob/vore/proc/set_name
- verbs |= /mob/living/simple_mob/vore/proc/set_desc
+ verbs |= /mob/living/simple_mob/proc/set_name
+ verbs |= /mob/living/simple_mob/proc/set_desc
-/mob/living/simple_mob/vore/proc/set_name()
+/mob/living/simple_mob/proc/set_name()
set name = "Set Name"
set desc = "Sets your mobs name. You only get to do this once."
set category = "Abilities"
- if(nameset)
+ if(limit_renames && nameset)
to_chat(src, "You've already set your name. Ask an admin to toggle \"nameset\" to 0 if you really must.")
return
var/newname
@@ -22,7 +25,7 @@
voice_name = newname
nameset = 1
-/mob/living/simple_mob/vore/proc/set_desc()
+/mob/living/simple_mob/proc/set_desc()
set name = "Set Description"
set desc = "Set your description."
set category = "Abilities"
@@ -32,4 +35,4 @@
desc = newdesc
/mob/living/simple_mob/vore/aggressive
- mob_bump_flag = HEAVY
\ No newline at end of file
+ mob_bump_flag = HEAVY
diff --git a/code/modules/projectiles/guns/energy/pummeler_vr.dm b/code/modules/projectiles/guns/energy/pummeler_vr.dm
index 75563208f27..b4dd9ad472d 100644
--- a/code/modules/projectiles/guns/energy/pummeler_vr.dm
+++ b/code/modules/projectiles/guns/energy/pummeler_vr.dm
@@ -45,4 +45,14 @@
L.Confuse(1)
L.throw_at(get_edge_target_turf(L, throwdir), rand(3,6), 10)
+ //VOREStation Add Start
+ if(istype(L, /mob/living/simple_mob/vore/alienanimals/startreader))
+ var/mob/living/simple_mob/vore/alienanimals/startreader/S = L
+ if(!S.flipped)
+ S.adjustBruteLoss(100)
+ S.visible_message("\The [S] is flipped over!!!")
+ S.flipped = TRUE
+ S.flip_cooldown = 10
+ S.handle_flip()
+ //VOREStation Add End
return 1
diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm
index 1d85c67f5dc..142cde40712 100644
--- a/code/modules/projectiles/projectile/special.dm
+++ b/code/modules/projectiles/projectile/special.dm
@@ -87,7 +87,12 @@
new_temperature = round(new_temperature * temp_factor)
L.bodytemperature = new_temperature
-
+ //VOREStation Add Start - The last metroid has escaped from captivity, the galaxy is no longer safe.
+ if(istype(L, /mob/living/simple_mob/vore/alienanimals/space_jellyfish) && target_temperature <= T0C)
+ var/mob/living/simple_mob/vore/alienanimals/space_jellyfish/J = L
+ J.adjustFireLoss(75)
+ J.movement_cooldown *= 2
+ //VOREStation Add End
return 1
/obj/item/projectile/temp/hot
diff --git a/code/modules/reagents/machinery/dispenser/reagent_tank.dm b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
index cfa809b2afe..097ee924e97 100644
--- a/code/modules/reagents/machinery/dispenser/reagent_tank.dm
+++ b/code/modules/reagents/machinery/dispenser/reagent_tank.dm
@@ -461,7 +461,7 @@
/obj/structure/reagent_dispensers/cookingoil/New()
..()
- reagents.add_reagent("cornoil",5000)
+ reagents.add_reagent("cookingoil",5000)
/obj/structure/reagent_dispensers/cookingoil/bullet_act(var/obj/item/projectile/Proj)
if(Proj.get_structure_damage())
diff --git a/code/modules/reagents/reactions/instant/drinks.dm b/code/modules/reagents/reactions/instant/drinks.dm
index efb58fe90c3..abd16b22797 100644
--- a/code/modules/reagents/reactions/instant/drinks.dm
+++ b/code/modules/reagents/reactions/instant/drinks.dm
@@ -141,7 +141,7 @@
name = "Space Beer"
id = "spacebeer"
result = "beer"
- required_reagents = list("cornoil" = 10)
+ required_reagents = list("cornoil" = 5, "flour" = 5)
catalysts = list("enzyme" = 5)
result_amount = 10
@@ -907,7 +907,7 @@
name = "Debugger"
id = "debugger"
result = "debugger"
- required_reagents = list("fuel" = 1, "sugar" = 2, "cornoil" = 2)
+ required_reagents = list("fuel" = 1, "sugar" = 2, "cookingoil" = 2)
result_amount = 5
/decl/chemical_reaction/instant/drinks/spacersbrew
@@ -1205,14 +1205,14 @@
name = "Oil Slick"
id = "oilslick"
result = "oilslick"
- required_reagents = list("cornoil" = 2, "honey" = 1)
+ required_reagents = list("cookingoil" = 2, "honey" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/slimeslam
name = "Slick Slime Slammer"
id = "slimeslammer"
result = "slimeslammer"
- required_reagents = list("cornoil" = 2, "peanutbutter" = 1)
+ required_reagents = list("cookingoil" = 2, "peanutbutter" = 1)
result_amount = 3
/decl/chemical_reaction/instant/drinks/virginsexonthebeach
@@ -1254,7 +1254,7 @@
name = "Soda Oil"
id = "sodaoil"
result = "sodaoil"
- required_reagents = list("cornoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
+ required_reagents = list("cookingoil" = 4, "sodawater" = 1, "carbon" = 1, "tricordrazine" = 1)
result_amount = 6
/decl/chemical_reaction/instant/drinks/fusionnaire
diff --git a/code/modules/reagents/reactions/instant/food.dm b/code/modules/reagents/reactions/instant/food.dm
index 952af8014b4..da16f251734 100644
--- a/code/modules/reagents/reactions/instant/food.dm
+++ b/code/modules/reagents/reactions/instant/food.dm
@@ -52,6 +52,22 @@
new /obj/item/weapon/reagent_containers/food/snacks/chocolatebar(location)
return
+/decl/chemical_reaction/instant/food/cookingoilcorn
+ name = "Cooking Oil"
+ id = "cookingoilcorn"
+ result = "cookingoil"
+ required_reagents = list("cornoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
+/decl/chemical_reaction/instant/food/cookingoilpeanut
+ name = "Cooking Oil"
+ id = "cookingoilpeanut"
+ result = "cookingoil"
+ required_reagents = list("peanutoil" = 10)
+ catalysts = list("enzyme" = 5)
+ result_amount = 10
+
/decl/chemical_reaction/instant/food/soysauce
name = "Soy Sauce"
id = "soysauce"
@@ -85,7 +101,7 @@
name = "mayonnaise"
id = "mayo"
result = "mayo"
- required_reagents = list("egg" = 9, "cornoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
+ required_reagents = list("egg" = 9, "cookingoil" = 5, "lemonjuice" = 5, "sodiumchloride" = 1)
result_amount = 15
/decl/chemical_reaction/instant/food/cheesewheel
diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm
index 1ddc24bfc93..8de9abd0b35 100644
--- a/code/modules/reagents/reagents/food_drinks.dm
+++ b/code/modules/reagents/reagents/food_drinks.dm
@@ -234,6 +234,12 @@
to_chat(M, "Searing hot oil burns you, wash it off quick!")
lastburnmessage = world.time
+/datum/reagent/nutriment/triglyceride/oil/cooking
+ name = "Cooking Oil"
+ id = "cookingoil"
+ description = "A general-purpose cooking oil."
+ reagent_state = LIQUID
+
/datum/reagent/nutriment/triglyceride/oil/corn
name = "Corn Oil"
id = "cornoil"
diff --git a/code/modules/research/designs/engineering.dm b/code/modules/research/designs/engineering.dm
index 5c496fdc4fa..bf55cdd7885 100644
--- a/code/modules/research/designs/engineering.dm
+++ b/code/modules/research/designs/engineering.dm
@@ -40,6 +40,15 @@
build_path = /obj/item/weapon/pipe_dispenser
sort_string = "NAAAD"
+/datum/design/item/tool/qpad_booster
+ name = "Quantum Pad Particle Booster"
+ desc = "A deceptively simple interface for increasing the mass of objects a quantum pad is capable of teleporting, at the cost of increased power draw."
+ id = "qpad_booster"
+ req_tech = list(TECH_ENGINEERING = 7, TECH_MATERIAL = 7, TECH_BLUESPACE = 6)
+ materials = list(MAT_STEEL = 4000, MAT_GLASS = 2000, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_VERDANTIUM = 1000)
+ build_path = /obj/item/device/quantum_pad_booster
+ sort_string = "NAAAF"
+
// Other devices
/datum/design/item/engineering/AssembleDesignName()
diff --git a/code/modules/telesci/quantum_pad.dm b/code/modules/telesci/quantum_pad.dm
index 6f1381a1915..21110a459ee 100644
--- a/code/modules/telesci/quantum_pad.dm
+++ b/code/modules/telesci/quantum_pad.dm
@@ -13,6 +13,7 @@
var/last_teleport //to handle the cooldown
var/teleporting = 0 //if it's in the process of teleporting
var/power_efficiency = 1
+ var/boosted = 0 // do we teleport mecha?
var/obj/machinery/power/quantumpad/linked_pad
//mapping
@@ -32,6 +33,18 @@
mapped_quantum_pads -= map_pad_id
return ..()
+/obj/machinery/power/quantumpad/examine(mob/user)
+ . = ..()
+ . += "It is [linked_pad ? "currently" : "not"] linked to another pad."
+ if(world.time < last_teleport + teleport_cooldown)
+ . += "[src] is recharging power. A timer on the side reads [round((last_teleport + teleport_cooldown - world.time)/10)] seconds."
+ if(boosted)
+ . += SPAN_NOTICE("There appears to be a booster haphazardly jammed into the side of [src]. That looks unsafe.")
+ if(!panel_open)
+ . += "The panel is screwed in, obstructing the linking device."
+ else
+ . += "The linking device is now able to be scanned with a multitool."
+
/obj/machinery/power/quantumpad/RefreshParts()
var/E = 0
for(var/obj/item/weapon/stock_parts/manipulator/M in component_parts)
@@ -64,6 +77,14 @@
to_chat(user, "You link [src] to the one in [I]'s buffer.")
update_icon()
return 1
+
+ if(istype(I, /obj/item/device/quantum_pad_booster))
+ var/obj/item/device/quantum_pad_booster/booster = I
+ visible_message("[user] violently jams [booster] into the side of [src]. [src] beeps, quietly.", \
+ "You hear the sound of a device being improperly installed in sensitive machinery, then subsequent beeping.", runemessage = "beep!")
+ playsound(src, 'sound/items/rped.ogg', 25, 1)
+ boosted = TRUE
+ qdel(I)
if(default_part_replacement(user, I))
return
@@ -213,6 +234,8 @@
// Otherwise we'll need a powernet
var/power_to_use = 10000 / power_efficiency
+ if(boosted)
+ power_to_use * 5
if(draw_power(power_to_use) != power_to_use)
return FALSE
return TRUE
@@ -220,7 +243,10 @@
/obj/machinery/power/quantumpad/proc/transport_objects(turf/destination)
for(var/atom/movable/ROI in get_turf(src))
// if is anchored, don't let through
- if(ROI.anchored)
+ if(ROI.anchored && !ismecha(ROI))
+ if(ismecha(ROI))
+ if(boosted)
+ continue
if(isliving(ROI))
var/mob/living/L = ROI
if(L.buckled)
@@ -262,3 +288,13 @@
to_chat(user, "You feel yourself pulled in different directions, before ending up not far from where you started.")
flick("qpad-beam-out", src)
transport_objects(get_turf(dest))
+
+/obj/item/device/quantum_pad_booster
+ icon = 'icons/obj/device_vr.dmi'
+ name = "quantum pad particle booster"
+ desc = "A deceptively simple interface for increasing the mass of objects a quantum pad is capable of teleporting, at the cost of increased power draw."
+ description_info = "The three prongs at the base of the tool are not, in fact, for show."
+ force = 9
+ sharp = TRUE
+ item_state = "analyzer"
+ icon_state = "hacktool"
\ No newline at end of file
diff --git a/code/modules/vore/eating/vorepanel_vr.dm b/code/modules/vore/eating/vorepanel_vr.dm
index bd2f2af99dc..54ce371dff3 100644
--- a/code/modules/vore/eating/vorepanel_vr.dm
+++ b/code/modules/vore/eating/vorepanel_vr.dm
@@ -306,7 +306,7 @@
return set_attr(usr, params)
if("saveprefs")
- if(!ishuman(host) && !issilicon(host))
+ if(host.real_name != host.client.prefs.real_name || (!ishuman(host) && !issilicon(host)))
var/choice = tgui_alert(usr, "Warning: Saving your vore panel while playing what is very-likely not your normal character will overwrite whatever character you have loaded in character setup. Maybe this is your 'playing a simple mob' slot, though. Are you SURE you want to overwrite your current slot with these vore bellies?", "WARNING!", list("No, abort!", "Yes, save."))
if(choice != "Yes, save.")
return TRUE
diff --git a/icons/mob/alienanimals_x32.dmi b/icons/mob/alienanimals_x32.dmi
index f3cb748708f..ca7a825c23f 100644
Binary files a/icons/mob/alienanimals_x32.dmi and b/icons/mob/alienanimals_x32.dmi differ
diff --git a/icons/obj/device_vr.dmi b/icons/obj/device_vr.dmi
index b75163e8810..3c4a3c5d09c 100644
Binary files a/icons/obj/device_vr.dmi and b/icons/obj/device_vr.dmi differ
diff --git a/icons/obj/food_vr.dmi b/icons/obj/food_vr.dmi
index 9adbcc00c5d..0530aef4550 100644
Binary files a/icons/obj/food_vr.dmi and b/icons/obj/food_vr.dmi differ
diff --git a/maps/expedition_vr/beach/submaps/BlastMine1.dmm b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
index 388018e9402..ca21c8d481f 100644
--- a/maps/expedition_vr/beach/submaps/BlastMine1.dmm
+++ b/maps/expedition_vr/beach/submaps/BlastMine1.dmm
@@ -1,4 +1,4 @@
-"a" = (/turf/simulated/mineral,/area/submap/cave/BlastMine1)
+"a" = (/turf/simulated/mineral/cave,/area/submap/cave/BlastMine1)
"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
"c" = (/obj/structure/sign/warning/bomb_range,/turf/simulated/wall/sandstone,/area/submap/cave/BlastMine1)
"d" = (/obj/structure/table/rack,/obj/item/weapon/syndie/c4explosive,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/BlastMine1)
diff --git a/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
index 2ac5a64f9ec..cbc92c28d8e 100644
--- a/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
+++ b/maps/expedition_vr/beach/submaps/SupplyDrop1.dmm
@@ -1,4 +1,4 @@
-"a" = (/turf/simulated/mineral,/area/submap/cave/SupplyDrop1)
+"a" = (/turf/simulated/mineral/cave,/area/submap/cave/SupplyDrop1)
"b" = (/turf/template_noop,/area/template_noop)
"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/cave/SupplyDrop1)
"d" = (/turf/simulated/wall/titanium,/area/submap/cave/SupplyDrop1)
diff --git a/maps/expedition_vr/beach/submaps/SwordCave.dmm b/maps/expedition_vr/beach/submaps/SwordCave.dmm
index a67cccdcb8e..f14417c7827 100644
--- a/maps/expedition_vr/beach/submaps/SwordCave.dmm
+++ b/maps/expedition_vr/beach/submaps/SwordCave.dmm
@@ -3,7 +3,7 @@
/turf/template_noop,
/area/template_noop)
"b" = (
-/turf/simulated/mineral,
+/turf/simulated/mineral/cave,
/area/submap/cave/swordcave)
"c" = (
/turf/simulated/mineral/floor/ignore_mapgen/cave,
diff --git a/maps/expedition_vr/beach/submaps/deadspy.dmm b/maps/expedition_vr/beach/submaps/deadspy.dmm
index 5f3da504c79..5410d8ab2f9 100644
--- a/maps/expedition_vr/beach/submaps/deadspy.dmm
+++ b/maps/expedition_vr/beach/submaps/deadspy.dmm
@@ -19,7 +19,7 @@
"s" = (/obj/item/weapon/card/emag_broken,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
"t" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/random/landmine,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
"u" = (/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel,/obj/effect/decal/cleanable/ash,/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/deadspy)
-"v" = (/turf/simulated/mineral,/area/submap/deadspy)
+"v" = (/turf/simulated/mineral/cave,/area/submap/deadspy)
(1,1,1) = {"
abbbbvv
diff --git a/maps/expedition_vr/beach/submaps/excavation1.dmm b/maps/expedition_vr/beach/submaps/excavation1.dmm
index 3cacccb2ebb..ed191c4c2ee 100644
--- a/maps/expedition_vr/beach/submaps/excavation1.dmm
+++ b/maps/expedition_vr/beach/submaps/excavation1.dmm
@@ -1,4 +1,4 @@
-"a" = (/turf/simulated/mineral,/area/template_noop)
+"a" = (/turf/simulated/mineral/cave,/area/template_noop)
"b" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/template_noop)
"c" = (/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
"d" = (/obj/structure/cliff/automatic{icon_state = "cliffbuilder"; dir = 9},/turf/simulated/mineral/floor/ignore_mapgen/cave,/area/submap/Excavation)
diff --git a/maps/gateway_vr/variable/arynthilake_a.dmm b/maps/gateway_vr/variable/arynthilake_a.dmm
index 24a790b1772..4ff82692516 100644
--- a/maps/gateway_vr/variable/arynthilake_a.dmm
+++ b/maps/gateway_vr/variable/arynthilake_a.dmm
@@ -2098,7 +2098,7 @@
check_arrest = 0;
check_down = 0;
check_records = 0;
- control_area = /area/gateway/grasslands/underground/maintenance;
+ control_area = /area/gateway/arynthilake/underground/maintenance;
desc = "A firewall prevents AIs from interacting with this device.";
lethal = 1;
locked = 0;
diff --git a/maps/gateway_vr/variable/arynthilake_b.dmm b/maps/gateway_vr/variable/arynthilake_b.dmm
index 06169e3a6ba..f3be0775bf1 100644
--- a/maps/gateway_vr/variable/arynthilake_b.dmm
+++ b/maps/gateway_vr/variable/arynthilake_b.dmm
@@ -503,7 +503,7 @@
check_arrest = 0;
check_down = 0;
check_records = 0;
- control_area = /area/gateway/grasslands/underground/maintenance;
+ control_area = /area/gateway/arynthilake/underground/maintenance;
desc = "A firewall prevents AIs from interacting with this device.";
lethal = 1;
locked = 0;
diff --git a/maps/gateway_vr/variable/arynthilakeunderground_a.dmm b/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
index 121b0fac96c..54d03f71a61 100644
--- a/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
+++ b/maps/gateway_vr/variable/arynthilakeunderground_a.dmm
@@ -85,7 +85,7 @@
"lM" = (
/obj/effect/map_effect/perma_light/gateway{
light_color = "#0c6ba6";
- light_power = .3;
+ light_power = 0.3;
light_range = 5
},
/turf/simulated/floor/beach/sand/desert,
diff --git a/maps/gateway_vr/variable/arynthilakeunderground_b.dmm b/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
index 75fa807ad5a..ca1b2d01c9a 100644
--- a/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
+++ b/maps/gateway_vr/variable/arynthilakeunderground_b.dmm
@@ -136,7 +136,7 @@
"ng" = (
/obj/effect/map_effect/perma_light/gateway{
light_color = "#0c6ba6";
- light_power = .3;
+ light_power = 0.3;
light_range = 5
},
/turf/simulated/floor/beach/sand/desert,
diff --git a/maps/stellardelight/stellar_delight1.dmm b/maps/stellardelight/stellar_delight1.dmm
index 3517a361a90..7056bbc6aa1 100644
--- a/maps/stellardelight/stellar_delight1.dmm
+++ b/maps/stellardelight/stellar_delight1.dmm
@@ -8,6 +8,7 @@
"ac" = (
/obj/structure/table/steel_reinforced,
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 1;
name = "night shift APC";
nightshift_setting = 2
@@ -654,6 +655,7 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/effect/catwalk_plated/dark,
+/obj/effect/landmark/vines,
/turf/simulated/floor,
/area/stellardelight/deck1/port)
"bx" = (
@@ -1304,6 +1306,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 4
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/starboard)
"cV" = (
@@ -2038,6 +2041,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/stellardelight/deck1/researchserver)
+"et" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"eu" = (
/obj/structure/cable/green{
color = "#42038a";
@@ -3113,8 +3122,9 @@
dir = 4
},
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 8;
- req_access = list(31)
+ req_access = list(31,5)
},
/obj/structure/cable/yellow,
/obj/machinery/light/floortube{
@@ -3933,7 +3943,11 @@
},
/obj/machinery/recharger/wallcharger{
pixel_x = 4;
- pixel_y = 28
+ pixel_y = 29
+ },
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 38
},
/turf/simulated/floor/tiled/dark,
/area/security/security_cell_hallway)
@@ -4212,6 +4226,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 10
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/aft)
"iT" = (
@@ -4251,6 +4268,15 @@
/obj/structure/flora/pottedplant/stoutbush,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/starboard)
+"iX" = (
+/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
+ dir = 8
+ },
+/obj/structure/cable/green{
+ icon_state = "1-2"
+ },
+/turf/simulated/floor/tiled/techmaint,
+/area/stellardelight/deck1/fore)
"iY" = (
/obj/effect/floor_decal/industrial/warning{
dir = 8
@@ -4585,6 +4611,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals4{
dir = 6
},
+/obj/machinery/hologram/holopad,
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/mining)
"jG" = (
@@ -4694,6 +4721,13 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/pathfinder)
+"jT" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/landmark/vines,
+/turf/simulated/floor/tiled/techmaint,
+/area/stellardelight/deck1/aft)
"jV" = (
/obj/machinery/power/terminal{
dir = 4
@@ -4828,6 +4862,17 @@
},
/turf/simulated/floor/lino,
/area/chapel/office)
+"kl" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/floor_decal/milspec/color/emerald/half{
+ dir = 4
+ },
+/obj/machinery/station_map{
+ dir = 8;
+ pixel_x = 32
+ },
+/turf/simulated/floor/tiled/techmaint,
+/area/stellardelight/deck1/aft)
"km" = (
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
@@ -5971,6 +6016,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 6
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/starboard)
"mF" = (
@@ -6120,6 +6168,15 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck1/starboard)
+"mT" = (
+/obj/structure/cable/green{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
+/turf/simulated/floor/tiled/techmaint,
+/area/stellardelight/deck1/fore)
"mU" = (
/obj/structure/closet/emcloset,
/turf/simulated/floor/tiled/dark,
@@ -6849,6 +6906,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/security_cell_hallway)
"oC" = (
@@ -7105,6 +7163,7 @@
dir = 8
},
/obj/effect/catwalk_plated/dark,
+/obj/effect/landmark/vines,
/turf/simulated/floor,
/area/stellardelight/deck1/starboard)
"ph" = (
@@ -7958,6 +8017,9 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck1/resleeving)
+"qX" = (
+/turf/space/internal_edge/right,
+/area/stellardelight/deck1/starboard)
"qY" = (
/obj/effect/floor_decal/milspec/color/orange/half,
/turf/simulated/floor/tiled/dark,
@@ -8145,6 +8207,11 @@
},
/turf/simulated/floor,
/area/maintenance/stellardelight/substation/security)
+"rt" = (
+/obj/structure/table/woodentable,
+/obj/item/weapon/folder/blue,
+/turf/simulated/floor/tiled/milspec,
+/area/stellardelight/deck1/explobriefing)
"ru" = (
/obj/machinery/light_switch{
dir = 4;
@@ -8742,6 +8809,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/chapel/main)
"sC" = (
@@ -9572,6 +9640,9 @@
},
/turf/simulated/floor/carpet/purcarpet,
/area/stellardelight/deck1/dorms/dorm2)
+"uw" = (
+/turf/space/internal_edge/left,
+/area/stellardelight/deck1/starboard)
"ux" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/cable/green{
@@ -9678,6 +9749,10 @@
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 9
},
+/obj/structure/closet/emergsuit_wall{
+ dir = 8;
+ pixel_x = -27
+ },
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/port)
"uH" = (
@@ -10401,6 +10476,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/carpet/bcarpet,
/area/stellardelight/deck1/starboard)
"wo" = (
@@ -10721,6 +10797,7 @@
/obj/effect/floor_decal/milspec/color/red/half{
dir = 1
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"xa" = (
@@ -10756,6 +10833,9 @@
/obj/structure/filingcabinet/chestdrawer,
/turf/simulated/floor/tiled/dark,
/area/security/security_processing)
+"xe" = (
+/turf/simulated/wall/bay/r_wall/brown,
+/area/stellardelight/deck1/starboard)
"xf" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/window/bay/reinforced,
@@ -10975,15 +11055,12 @@
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/oreprocessing)
"xE" = (
-/obj/machinery/power/apc/angled{
- dir = 1
- },
-/obj/structure/cable/green{
- icon_state = "0-2"
- },
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"xF" = (
@@ -11200,8 +11277,9 @@
dir = 8
},
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 4;
- req_access = list(19,43,67)
+ req_access = list(19,43,67,66,5)
},
/obj/structure/cable/green{
color = "#42038a"
@@ -11810,6 +11888,7 @@
dir = 4
},
/obj/effect/floor_decal/milspec/color/black,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/armoury)
"zq" = (
@@ -12865,6 +12944,7 @@
/obj/effect/floor_decal/milspec/color/red/half{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"BB" = (
@@ -12964,6 +13044,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/milspec,
/area/stellardelight/deck1/exploration)
"BI" = (
@@ -14042,6 +14123,9 @@
},
/turf/simulated/floor/tiled/dark,
/area/security/security_cell_hallway)
+"Ef" = (
+/turf/space/internal_edge/top,
+/area/stellardelight/deck1/starboard)
"Eg" = (
/obj/structure/cable/green{
icon_state = "1-2"
@@ -14099,6 +14183,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/port)
"Eq" = (
@@ -14215,6 +14300,18 @@
},
/turf/simulated/floor/tiled/steel_grid,
/area/rnd/xenobiology)
+"EA" = (
+/obj/effect/floor_decal/milspec/color/red/half{
+ dir = 1
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals6{
+ dir = 10
+ },
+/obj/machinery/firealarm/angled{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/techmaint,
+/area/stellardelight/deck1/fore)
"EB" = (
/obj/machinery/door/window/eastright{
dir = 8;
@@ -14263,6 +14360,18 @@
pixel_x = 4;
pixel_y = 5
},
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 20
+ },
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 28
+ },
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 36
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck1/explobriefing)
"EG" = (
@@ -14424,6 +14533,9 @@
},
/turf/simulated/floor/tiled/dark,
/area/chapel/main)
+"EZ" = (
+/turf/space/internal_edge/bottomright,
+/area/stellardelight/deck1/starboard)
"Fa" = (
/obj/machinery/atmospherics/pipe/simple/hidden/cyan{
dir = 10
@@ -16004,18 +16116,19 @@
/turf/simulated/floor/tiled/dark,
/area/security/security_lockerroom)
"Iu" = (
-/obj/machinery/door/firedoor/glass,
/obj/machinery/door/airlock/angled_bay/external/glass{
dir = 4;
door_color = "#525252";
name = "Exploration Shuttle";
- req_one_access = list(19,43,67,66);
+ req_one_access = list(19,43,67,66,5);
stripe_color = "#408f3b"
},
/obj/structure/cable/green{
color = "#42038a";
icon_state = "4-8"
},
+/obj/machinery/atmospheric_field_generator/perma/underdoors,
+/obj/machinery/door/firedoor/glass/talon,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck1/exploshuttle)
"Iw" = (
@@ -16243,6 +16356,9 @@
},
/turf/simulated/floor,
/area/maintenance/stellardelight/deck1/portcent)
+"IT" = (
+/turf/space/internal_edge/bottom,
+/area/stellardelight/deck1/starboard)
"IU" = (
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/turf/simulated/floor/tiled/white,
@@ -16340,6 +16456,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/steel_grid,
/area/rnd/research)
"Jd" = (
@@ -17664,17 +17781,19 @@
/turf/simulated/wall/bay/r_wall/steel,
/area/stellardelight/deck1/exploration)
"Ma" = (
-/obj/machinery/door/firedoor/glass,
/obj/machinery/door/airlock/angled_bay/external/glass{
dir = 4;
door_color = "#a88860";
name = "Mining Shuttle";
- req_access = list(31);
+ req_access = null;
+ req_one_access = list(31,5);
stripe_color = "#69461a"
},
/obj/structure/cable/yellow{
icon_state = "4-8"
},
+/obj/machinery/atmospheric_field_generator/perma/underdoors,
+/obj/machinery/door/firedoor/glass/talon,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck1/miningshuttle)
"Mb" = (
@@ -17744,6 +17863,9 @@
/obj/structure/low_wall/bay/reinforced/purple,
/turf/simulated/floor,
/area/rnd/workshop)
+"Mh" = (
+/turf/space/internal_edge/topleft,
+/area/stellardelight/deck1/starboard)
"Mi" = (
/obj/structure/table/standard,
/obj/item/weapon/stock_parts/matter_bin,
@@ -18465,6 +18587,9 @@
/area/assembly/robotics)
"NN" = (
/obj/structure/table/steel_reinforced,
+/obj/machinery/recharger{
+ pixel_y = 5
+ },
/turf/simulated/floor/tiled/dark,
/area/security/lobby)
"NP" = (
@@ -18496,6 +18621,9 @@
},
/turf/simulated/floor,
/area/stellardelight/deck1/mining)
+"NT" = (
+/turf/space/internal_edge/topright,
+/area/stellardelight/deck1/starboard)
"NV" = (
/obj/structure/cable/green{
color = "#42038a";
@@ -19556,7 +19684,9 @@
/obj/machinery/atmospherics/pipe/simple/hidden/supply{
dir = 4
},
-/obj/machinery/firealarm/angled,
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
"Qp" = (
@@ -19770,6 +19900,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/machinery/alarm/angled,
/obj/effect/floor_decal/milspec/color/black,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/dark,
/area/security/armoury)
"QQ" = (
@@ -20233,6 +20364,9 @@
},
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/medical/exam_room)
+"RI" = (
+/turf/space/internal_edge/bottomleft,
+/area/stellardelight/deck1/starboard)
"RJ" = (
/obj/machinery/light{
dir = 4
@@ -20332,7 +20466,7 @@
},
/obj/machinery/recharger/wallcharger{
pixel_x = 4;
- pixel_y = 28
+ pixel_y = 29
},
/obj/machinery/recharger/wallcharger{
pixel_x = 4;
@@ -20341,14 +20475,24 @@
/obj/effect/floor_decal/milspec/color/red/half{
dir = 4
},
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 38
+ },
/turf/simulated/floor/tiled/dark,
/area/security/security_lockerroom)
"RX" = (
-/obj/structure/cable/green{
- icon_state = "4-8"
+/obj/effect/floor_decal/milspec/color/red/half{
+ dir = 1
+ },
+/obj/effect/floor_decal/steeldecal/steel_decals6{
+ dir = 9
+ },
+/obj/machinery/power/apc/angled{
+ dir = 8
},
/obj/structure/cable/green{
- icon_state = "1-8"
+ icon_state = "0-2"
},
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/fore)
@@ -21080,6 +21224,7 @@
/obj/structure/closet/crate/bin{
anchored = 1
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/milspec,
/area/stellardelight/deck1/exploration)
"TB" = (
@@ -21318,6 +21463,8 @@
/obj/machinery/alarm/angled{
dir = 4
},
+/obj/item/paint_palette,
+/obj/item/paint_brush,
/turf/simulated/floor/wood,
/area/library)
"TW" = (
@@ -21613,6 +21760,7 @@
/area/rnd/research)
"UB" = (
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 1;
name = "night shift APC";
nightshift_setting = 2
@@ -21682,6 +21830,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/reinforced,
/area/stellardelight/deck1/shuttlebay)
"UK" = (
@@ -22037,6 +22186,7 @@
/obj/item/weapon/book/manual/supermatter_engine,
/obj/item/weapon/book/manual/tesla_engine,
/obj/item/weapon/book/manual/virology,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/library)
"Vq" = (
@@ -22217,7 +22367,10 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
-/obj/structure/ore_box,
+/obj/structure/table/standard,
+/obj/machinery/recharger{
+ pixel_y = 5
+ },
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/mining)
"VF" = (
@@ -22791,6 +22944,7 @@
/obj/item/weapon/tank/jetpack/carbondioxide,
/obj/item/weapon/tank/jetpack/carbondioxide,
/obj/item/weapon/tank/jetpack/carbondioxide,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/gray_platform,
/area/gateway)
"WU" = (
@@ -23424,6 +23578,7 @@
/obj/machinery/camera/network/mining{
dir = 8
},
+/obj/structure/ore_box,
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/mining)
"Yi" = (
@@ -23573,7 +23728,9 @@
/area/security/tactical)
"Yy" = (
/obj/structure/table/steel_reinforced,
-/obj/machinery/recharger,
+/obj/machinery/recharger{
+ pixel_y = 5
+ },
/obj/structure/sign/vacuum{
pixel_y = 32
},
@@ -23890,6 +24047,12 @@
/obj/machinery/recharge_station,
/turf/simulated/floor/bluegrid,
/area/assembly/robotics)
+"Zd" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"Ze" = (
/obj/machinery/door/firedoor/glass,
/obj/structure/window/bay/reinforced,
@@ -23911,7 +24074,9 @@
/area/stellardelight/deck1/miningequipment)
"Zh" = (
/obj/structure/table/woodentable,
-/obj/item/weapon/folder/blue,
+/obj/machinery/recharger{
+ pixel_y = 5
+ },
/turf/simulated/floor/tiled/milspec,
/area/stellardelight/deck1/explobriefing)
"Zi" = (
@@ -24093,7 +24258,14 @@
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/aft)
"ZC" = (
-/obj/machinery/firealarm/angled,
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 20
+ },
+/obj/machinery/recharger/wallcharger{
+ pixel_x = 4;
+ pixel_y = 29
+ },
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/mining)
"ZD" = (
@@ -24156,6 +24328,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 8
},
+/obj/machinery/firealarm/angled{
+ dir = 8
+ },
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/stellardelight/deck1/mining)
"ZK" = (
@@ -24189,9 +24364,9 @@
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/structure/closet/emergsuit_wall{
- dir = 8;
- pixel_x = -27
+/obj/machinery/station_map{
+ dir = 4;
+ pixel_x = -32
},
/turf/simulated/floor/tiled/techmaint,
/area/stellardelight/deck1/aft)
@@ -27383,7 +27558,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -27923,7 +28098,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28105,7 +28280,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28170,7 +28345,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28547,7 +28722,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -28904,7 +29079,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -29575,7 +29750,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -30675,7 +30850,7 @@ RF
RF
uq
uq
-uq
+et
uq
uq
uq
@@ -31231,7 +31406,7 @@ Rz
TC
oZ
Zh
-zZ
+rt
OB
Rz
ny
@@ -32099,7 +32274,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -32272,7 +32447,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -33157,7 +33332,7 @@ Zy
SQ
Yv
xE
-RX
+zW
xZ
MA
Zt
@@ -33347,7 +33522,7 @@ MK
qR
CG
iS
-KX
+jT
dl
QK
pV
@@ -33439,9 +33614,9 @@ Xk
OD
ZR
QG
-XC
-IF
-zW
+RX
+iX
+mT
Ku
Ku
Ku
@@ -33742,13 +33917,13 @@ rW
lC
HT
ER
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+EZ
+qX
+qX
+qX
+qX
+qX
+NT
vu
Br
AP
@@ -33884,13 +34059,13 @@ SH
jD
PI
IZ
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+IT
+xe
+xe
+xe
+xe
+xe
+Ef
AT
Aq
WE
@@ -34026,13 +34201,13 @@ zg
aj
Wl
IZ
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+IT
+xe
+xe
+xe
+xe
+xe
+Ef
AT
Qd
VH
@@ -34168,13 +34343,13 @@ bi
bi
bi
bi
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+IT
+xe
+xe
+xe
+xe
+xe
+Ef
IC
IC
IC
@@ -34310,13 +34485,13 @@ Si
gK
LX
wE
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+IT
+xe
+xe
+xe
+xe
+xe
+Ef
PA
da
dc
@@ -34452,13 +34627,13 @@ KG
sn
kL
wE
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+IT
+xe
+xe
+xe
+xe
+xe
+Ef
PA
Wk
iT
@@ -34544,7 +34719,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -34594,13 +34769,13 @@ HX
Gu
JB
bi
-uq
-uq
-uq
-uq
-uq
-uq
-uq
+RI
+uw
+uw
+uw
+uw
+uw
+Mh
IC
RM
De
@@ -34859,7 +35034,7 @@ HN
Tg
Vr
Hs
-zb
+EA
zc
zW
Ku
@@ -35751,7 +35926,7 @@ Wj
MH
xx
xF
-XJ
+kl
CV
kv
jg
@@ -37633,7 +37808,7 @@ EG
RF
uq
uq
-uq
+et
uq
uq
uq
@@ -38096,7 +38271,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -38205,7 +38380,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -38841,7 +39016,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -39253,7 +39428,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -39561,7 +39736,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -40034,7 +40209,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -40431,7 +40606,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
@@ -41447,7 +41622,7 @@ uq
uq
uq
uq
-uq
+Zd
uq
uq
uq
diff --git a/maps/stellardelight/stellar_delight2.dmm b/maps/stellardelight/stellar_delight2.dmm
index 259e61b0d3a..8338ab1098f 100644
--- a/maps/stellardelight/stellar_delight2.dmm
+++ b/maps/stellardelight/stellar_delight2.dmm
@@ -628,6 +628,9 @@
pixel_x = 32;
pixel_y = 18
},
+/obj/structure/railing/grey{
+ dir = 4
+ },
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck2/aftport)
"bn" = (
@@ -695,6 +698,9 @@
pixel_x = -32;
pixel_y = 18
},
+/obj/structure/railing/grey{
+ dir = 8
+ },
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck2/aftstarboard)
"bs" = (
@@ -2113,9 +2119,6 @@
/area/stellardelight/deck2/aftport)
"eE" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
"eF" = (
@@ -2430,6 +2433,7 @@
/obj/machinery/light{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/crew_quarters/captain)
"fp" = (
@@ -2585,6 +2589,7 @@
"fL" = (
/obj/machinery/computer/arcade/battle,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/dark/cargo,
/area/crew_quarters/recreation_area)
"fN" = (
@@ -2948,6 +2953,12 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
+"gA" = (
+/obj/structure/railing/grey{
+ dir = 4
+ },
+/turf/simulated/floor/tiled/monotile,
+/area/stellardelight/deck2/fore)
"gB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -2992,10 +3003,10 @@
/area/engineering/storage)
"gF" = (
/obj/structure/cable/orange{
- icon_state = "2-8"
+ icon_state = "1-2"
},
/obj/structure/cable/orange{
- icon_state = "1-2"
+ icon_state = "2-8"
},
/turf/simulated/floor/airless,
/area/stellardelight/deck2/exterior)
@@ -3105,6 +3116,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
"gS" = (
@@ -3168,9 +3180,6 @@
/obj/machinery/alarm/angled{
dir = 8
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/starboardsolars)
"hb" = (
@@ -4149,13 +4158,15 @@
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"jz" = (
-/obj/machinery/firealarm/angled,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
dir = 8
},
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftstarboard)
"jA" = (
@@ -5085,6 +5096,10 @@
},
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment{
+ dir = 1;
+ icon_state = "pipe-c"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"lu" = (
@@ -5460,6 +5475,16 @@
},
/turf/simulated/floor/airless,
/area/stellardelight/deck2/exterior)
+"mb" = (
+/obj/effect/floor_decal/milspec/color/blue/half{
+ dir = 4
+ },
+/obj/machinery/station_map{
+ dir = 8;
+ pixel_x = 32
+ },
+/turf/simulated/floor/tiled,
+/area/stellardelight/deck2/port)
"md" = (
/obj/effect/floor_decal/industrial/outline,
/obj/effect/floor_decal/steeldecal/steel_decals9,
@@ -5474,6 +5499,7 @@
},
/obj/machinery/vending/loadout/loadout_misc,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vines,
/turf/simulated/floor/holofloor/tiled/dark,
/area/crew_quarters/locker)
"me" = (
@@ -5489,6 +5515,7 @@
"mg" = (
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/port)
"mh" = (
@@ -5512,14 +5539,15 @@
/area/stellardelight/deck2/port)
"mj" = (
/obj/machinery/atmospherics/pipe/simple/hidden/universal,
-/obj/structure/cable{
- icon_state = "0-2"
- },
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 4;
name = "night shift APC";
nightshift_setting = 2
},
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/starboardsolars)
"mk" = (
@@ -5722,6 +5750,7 @@
/obj/machinery/light{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/wood,
/area/stellardelight/deck2/briefingroom)
"mI" = (
@@ -5771,6 +5800,10 @@
/obj/effect/floor_decal/milspec/color/silver/corner{
dir = 4
},
+/obj/machinery/station_map{
+ dir = 8;
+ pixel_x = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"mO" = (
@@ -5813,6 +5846,9 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark{
+ name = "verminstart"
+ },
/turf/simulated/floor/grass,
/area/hydroponics)
"mT" = (
@@ -6022,6 +6058,10 @@
/obj/effect/floor_decal/milspec/color/orange/half{
dir = 8
},
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftport)
"nx" = (
@@ -6195,6 +6235,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/lino,
/area/crew_quarters/bar)
"nR" = (
@@ -6694,6 +6735,9 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"pb" = (
@@ -6802,9 +6846,6 @@
/obj/structure/cable{
icon_state = "0-8"
},
-/obj/structure/cable{
- icon_state = "1-8"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
"pl" = (
@@ -7154,12 +7195,13 @@
/turf/simulated/floor/tiled/techfloor,
/area/stellardelight/deck2/o2production)
"pZ" = (
-/obj/machinery/firealarm/angled{
- dir = 4
- },
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 4
},
+/obj/machinery/station_map{
+ dir = 8;
+ pixel_x = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"qa" = (
@@ -7198,6 +7240,7 @@
icon_state = "2-4"
},
/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/dark/orangecorner,
/area/engineering/locker_room)
"qe" = (
@@ -7220,6 +7263,9 @@
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/starboardsolars)
"qi" = (
@@ -7329,6 +7375,7 @@
/obj/machinery/newscaster{
pixel_y = 28
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/storage/art)
"qt" = (
@@ -7608,6 +7655,9 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 4
},
+/obj/structure/cable/green{
+ icon_state = "1-8"
+ },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
"qZ" = (
@@ -7929,6 +7979,7 @@
dir = 4;
pixel_x = 24
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/techmaint,
/area/storage/primary)
"rF" = (
@@ -8691,9 +8742,6 @@
/obj/structure/cable{
icon_state = "0-4"
},
-/obj/structure/cable{
- icon_state = "1-4"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/starboardsolars)
"ty" = (
@@ -8704,6 +8752,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/segment,
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"tz" = (
@@ -9106,6 +9155,7 @@
"us" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
/obj/machinery/recharge_station,
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
"ut" = (
@@ -9707,6 +9757,7 @@
dir = 4;
icon_state = "pipe-c"
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/monotile,
/area/hydroponics)
"vQ" = (
@@ -9961,6 +10012,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck2/triage)
"wy" = (
@@ -10294,6 +10346,9 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/effect/landmark{
+ name = "vinestart"
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/central)
"xo" = (
@@ -10375,6 +10430,10 @@
/obj/effect/floor_decal/steeldecal/steel_decals4{
dir = 1
},
+/obj/structure/disposalpipe/segment{
+ dir = 8;
+ icon_state = "pipe-c"
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftport)
"xy" = (
@@ -11258,12 +11317,13 @@
dir = 4
},
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 8;
name = "night shift APC";
nightshift_setting = 2
},
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/structure/cable/green{
+ icon_state = "0-4"
},
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
@@ -12126,6 +12186,12 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/simulated/floor/plating,
/area/engineering/storage)
+"BA" = (
+/obj/structure/railing/grey{
+ dir = 8
+ },
+/turf/simulated/floor/tiled/monotile,
+/area/stellardelight/deck2/fore)
"BB" = (
/obj/structure/cable/orange{
icon_state = "4-8"
@@ -12537,6 +12603,9 @@
/obj/structure/cable{
icon_state = "2-4"
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"CA" = (
@@ -12641,6 +12710,7 @@
/obj/structure/cable/orange{
icon_state = "1-8"
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"CO" = (
@@ -12894,6 +12964,7 @@
dir = 1
},
/obj/structure/undies_wardrobe,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/holofloor/tiled/dark,
/area/crew_quarters/locker)
"Dv" = (
@@ -12965,6 +13036,15 @@
"DB" = (
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/atmos)
+"DC" = (
+/obj/effect/floor_decal/steeldecal/steel_decals5{
+ dir = 4
+ },
+/obj/machinery/firealarm/angled{
+ dir = 4
+ },
+/turf/simulated/floor/tiled,
+/area/stellardelight/deck2/fore)
"DD" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
/obj/machinery/alarm/freezer{
@@ -13089,9 +13169,13 @@
/turf/simulated/floor/tiled/freezer/cold,
/area/crew_quarters/kitchen)
"DQ" = (
-/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/hidden/supply,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
+/obj/structure/disposalpipe/sortjunction/flipped{
+ dir = 1;
+ name = "Atmospherics";
+ sortType = "Atmospherics"
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftport)
"DR" = (
@@ -14185,6 +14269,7 @@
/obj/effect/floor_decal/milspec/color/silver/corner{
dir = 8
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"Gb" = (
@@ -14548,6 +14633,7 @@
/obj/machinery/power/terminal{
dir = 8
},
+/obj/structure/cable,
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
"GP" = (
@@ -14692,6 +14778,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/steel/cargo,
/area/quartermaster/storage)
"Hf" = (
@@ -14930,6 +15017,10 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 8
},
+/obj/machinery/station_map{
+ dir = 4;
+ pixel_x = -32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftport)
"HH" = (
@@ -15218,6 +15309,8 @@
},
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/machinery/firealarm/angled,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/aftstarboard)
"Il" = (
@@ -15261,6 +15354,7 @@
},
/obj/structure/table/steel_reinforced,
/obj/item/device/retail_scanner/command,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/dark/monofloor,
/area/bridge)
"Ip" = (
@@ -15336,6 +15430,16 @@
/obj/machinery/recharger,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/stellardelight/deck2/triage)
+"Iv" = (
+/obj/effect/floor_decal/milspec/color/blue/half{
+ dir = 8
+ },
+/obj/machinery/station_map{
+ dir = 4;
+ pixel_x = -32
+ },
+/turf/simulated/floor/tiled,
+/area/stellardelight/deck2/starboard)
"Iw" = (
/obj/structure/cable/green{
icon_state = "4-8"
@@ -16262,6 +16366,7 @@
/obj/item/paint_palette,
/obj/item/paint_brush,
/obj/item/paint_brush,
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/storage/art)
"KD" = (
@@ -16450,6 +16555,7 @@
/obj/machinery/camera/network/medbay{
dir = 8
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/medical/chemistry)
"La" = (
@@ -17241,7 +17347,9 @@
/area/crew_quarters/bar)
"MM" = (
/obj/structure/table/standard,
-/obj/machinery/recharger,
+/obj/machinery/recharger{
+ pixel_y = 5
+ },
/obj/machinery/light/floortube{
pixel_y = -4
},
@@ -17852,6 +17960,12 @@
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,
/turf/simulated/floor/wood,
/area/stellardelight/deck2/barbackroom)
+"Oh" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"Oi" = (
/obj/machinery/firealarm/angled,
/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{
@@ -17943,6 +18057,7 @@
/area/medical/surgery2)
"Oq" = (
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 8
},
/obj/structure/cable/cyan{
@@ -18034,6 +18149,9 @@
/obj/machinery/status_display{
pixel_y = 32
},
+/obj/effect/landmark{
+ name = "verminstart"
+ },
/turf/simulated/floor/tiled/eris/cafe,
/area/crew_quarters/kitchen)
"OB" = (
@@ -18131,6 +18249,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled/eris/steel/brown_platform,
/area/quartermaster/storage)
"OQ" = (
@@ -18181,6 +18300,10 @@
/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{
dir = 1
},
+/obj/structure/disposalpipe/segment{
+ dir = 4;
+ icon_state = "pipe-c"
+ },
/turf/simulated/floor/tiled/techfloor,
/area/engineering/atmos/monitoring)
"OU" = (
@@ -18388,6 +18511,12 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
+"Pp" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"Pq" = (
/obj/machinery/atmospherics/pipe/simple/hidden/red{
dir = 9
@@ -20144,6 +20273,7 @@
/obj/machinery/atmospherics/unary/vent_scrubber/on{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/eris/white/bluecorner,
/area/medical/cmostore)
"Tn" = (
@@ -21553,6 +21683,9 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/simulated/floor/tiled/steel_ridged,
/area/engineering/atmos/monitoring)
"WB" = (
@@ -21803,6 +21936,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals6{
dir = 4
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck2/fore)
"Xf" = (
@@ -21862,9 +21996,6 @@
/obj/machinery/alarm/angled{
dir = 4
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/portsolars)
"Xo" = (
@@ -21896,9 +22027,6 @@
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/hidden,
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck2/starboardsolars)
"Xs" = (
@@ -22609,6 +22737,7 @@
"YW" = (
/obj/random/vendordrink,
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/steel_ridged,
/area/stellardelight/deck2/starboard)
"YX" = (
@@ -25728,7 +25857,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26133,7 +26262,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26533,7 +26662,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -26754,7 +26883,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -27703,7 +27832,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -28675,7 +28804,7 @@ Jh
Jh
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -28786,7 +28915,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -30170,8 +30299,8 @@ UG
cv
cv
cv
-ZG
-Jh
+CP
+SO
Jh
Jh
Jh
@@ -30312,6 +30441,7 @@ Zt
qM
Vm
mq
+Wb
ZG
Jh
Jh
@@ -30332,7 +30462,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(52,1,1) = {"
Jh
@@ -30454,6 +30583,7 @@ LG
AV
Vm
Vm
+Wb
ZG
Jh
Jh
@@ -30469,8 +30599,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -30596,8 +30725,8 @@ yg
AV
cv
cv
-ZG
-Jh
+Ds
+kL
Jh
Jh
Jh
@@ -30880,8 +31009,8 @@ MP
PB
cv
cv
-ZG
-Jh
+CP
+SO
Jh
Jh
Jh
@@ -31022,6 +31151,7 @@ ay
wm
Vm
mq
+Wb
ZG
Jh
Jh
@@ -31042,7 +31172,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(57,1,1) = {"
Jh
@@ -31164,6 +31293,7 @@ DR
AV
Vm
Vm
+Wb
ZG
Jh
Jh
@@ -31184,7 +31314,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(58,1,1) = {"
Jh
@@ -31306,8 +31435,8 @@ eg
tk
cv
cv
-ZG
-Jh
+Ds
+kL
Jh
Jh
Jh
@@ -31682,7 +31811,7 @@ VP
bA
bA
bA
-bA
+mb
bA
BP
wF
@@ -31765,7 +31894,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -32094,7 +32223,7 @@ nt
Rq
Rq
lQ
-aA
+gA
Jq
Xi
kF
@@ -33020,7 +33149,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -33798,7 +33927,7 @@ nt
Rq
Rq
lY
-aA
+BA
Jq
IK
kF
@@ -34238,7 +34367,7 @@ Ru
nL
WL
WL
-iu
+Iv
iu
ec
YX
@@ -34500,7 +34629,7 @@ Zr
Zr
vj
pZ
-Zr
+DC
Zr
OV
Zr
@@ -34714,8 +34843,8 @@ uo
BN
nq
nq
-ZG
-Jh
+CP
+SO
Jh
Jh
Jh
@@ -34856,6 +34985,7 @@ cF
Jk
VJ
Dw
+Wb
ZG
Jh
Jh
@@ -34876,7 +35006,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(84,1,1) = {"
Jh
@@ -34890,7 +35019,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -34998,6 +35127,7 @@ Nt
Lw
VJ
VJ
+Wb
ZG
Jh
Jh
@@ -35018,7 +35148,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(85,1,1) = {"
Jh
@@ -35140,8 +35269,8 @@ lk
Lw
nq
nq
-ZG
-Jh
+Ds
+kL
Jh
Jh
Jh
@@ -35424,8 +35553,8 @@ jA
Lw
nq
nq
-ZG
-Jh
+CP
+SO
Jh
Jh
Jh
@@ -35566,6 +35695,7 @@ lX
yA
VJ
Dw
+Wb
ZG
Jh
Jh
@@ -35586,7 +35716,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(89,1,1) = {"
Jh
@@ -35708,6 +35837,7 @@ nO
nq
VJ
VJ
+Wb
ZG
Jh
Jh
@@ -35728,7 +35858,6 @@ Jh
Jh
Jh
Jh
-Jh
"}
(90,1,1) = {"
Jh
@@ -35850,8 +35979,8 @@ SG
rT
rT
rT
-ZG
-Jh
+Ds
+kL
Jh
Jh
Jh
@@ -36289,7 +36418,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -36784,7 +36913,7 @@ bw
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -37197,7 +37326,7 @@ Jh
Jh
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -37275,7 +37404,7 @@ NL
NL
Jh
Jh
-Jh
+Pp
Jh
Jh
Jh
@@ -37597,7 +37726,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -38188,7 +38317,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -39353,6 +39482,7 @@ Jh
Jh
Jh
Jh
+Oh
Jh
Jh
Jh
@@ -39397,8 +39527,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+Oh
Jh
Jh
Jh
@@ -40083,7 +40212,7 @@ Jh
Jh
Jh
Jh
-Jh
+Oh
Jh
Jh
Jh
diff --git a/maps/stellardelight/stellar_delight3.dmm b/maps/stellardelight/stellar_delight3.dmm
index 2e3ee98230c..629b2e2a2a6 100644
--- a/maps/stellardelight/stellar_delight3.dmm
+++ b/maps/stellardelight/stellar_delight3.dmm
@@ -51,6 +51,9 @@
/obj/structure/sign/directions/cargo{
pixel_x = 32
},
+/obj/structure/railing/grey{
+ dir = 4
+ },
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck3/aft)
"ai" = (
@@ -78,6 +81,9 @@
/obj/structure/sign/directions/cargo{
pixel_x = -32
},
+/obj/structure/railing/grey{
+ dir = 8
+ },
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck3/aft)
"al" = (
@@ -222,6 +228,11 @@
},
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
+"ba" = (
+/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vines,
+/turf/simulated/open,
+/area/stellardelight/deck2/fore)
"bb" = (
/obj/effect/floor_decal/techfloor/orange{
dir = 8
@@ -488,6 +499,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 1
},
+/obj/effect/landmark/vines,
/turf/simulated/open,
/area/crew_quarters/bar)
"cb" = (
@@ -2188,12 +2200,6 @@
/area/stellardelight/deck3/cryo)
"iE" = (
/obj/machinery/door/firedoor/glass,
-/obj/machinery/door/airlock/angled_bay/hatch{
- door_color = "#e6ab22";
- name = "Shield Generator";
- req_access = list(11,24);
- stripe_color = "#e6ab22"
- },
/obj/machinery/door/airlock/angled_bay/hatch{
door_color = "#e6ab22";
name = "Shield Generator";
@@ -2483,6 +2489,13 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/crew_quarters/heads/hor)
+"jO" = (
+/obj/machinery/station_map{
+ dir = 4;
+ pixel_x = -32
+ },
+/turf/simulated/floor/tiled/eris/dark/gray_platform,
+/area/stellardelight/deck3/commandhall)
"jP" = (
/obj/machinery/alarm/angled,
/obj/effect/floor_decal/steeldecal/steel_decals5{
@@ -5871,6 +5884,13 @@
/obj/structure/low_wall/bay/reinforced/steel,
/turf/simulated/floor,
/area/stellardelight/deck2/port)
+"wc" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/landmark/vermin,
+/turf/simulated/open,
+/area/stellardelight/deck2/starboard)
"wd" = (
/obj/structure/table/standard,
/obj/item/weapon/aiModule/oxygen,
@@ -6021,10 +6041,12 @@
/area/ai_cyborg_station)
"wP" = (
/obj/machinery/atmospherics/unary/vent_scrubber/on,
-/obj/machinery/camera/network/halls,
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"wQ" = (
@@ -6280,6 +6302,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/starboarddock)
"xE" = (
@@ -6713,6 +6736,12 @@
},
/turf/simulated/floor/tiled/techfloor/grid,
/area/ai_upload)
+"zk" = (
+/obj/effect/landmark{
+ name = "droppod_landing"
+ },
+/turf/space,
+/area/space)
"zm" = (
/obj/structure/cable/blue{
icon_state = "4-8"
@@ -7645,6 +7674,7 @@
/obj/machinery/atmospherics/unary/vent_pump/on{
dir = 4
},
+/obj/effect/landmark/vermin,
/turf/simulated/open,
/area/stellardelight/deck2/fore)
"Cc" = (
@@ -8210,6 +8240,12 @@
/obj/random/trash_pile,
/turf/simulated/floor,
/area/maintenance/stellardelight/deck3/portcent)
+"El" = (
+/obj/effect/landmark{
+ name = "carpspawn"
+ },
+/turf/space,
+/area/space)
"En" = (
/obj/effect/floor_decal/industrial/warning/corner{
dir = 1
@@ -8456,6 +8492,7 @@
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"Fg" = (
@@ -9151,6 +9188,9 @@
"HR" = (
/obj/structure/table/steel,
/obj/random/contraband,
+/obj/machinery/chemical_dispenser/bar_coffee/full{
+ pixel_y = 8
+ },
/turf/simulated/floor,
/area/maintenance/stellardelight/deck3/foreportrooma)
"HS" = (
@@ -9316,6 +9356,13 @@
},
/turf/simulated/floor/tiled,
/area/crew_quarters/heads/chief)
+"ID" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/landmark/vines,
+/turf/simulated/open,
+/area/stellardelight/deck2/fore)
"IG" = (
/obj/structure/cable/blue{
icon_state = "4-8"
@@ -9788,6 +9835,9 @@
dir = 1
},
/obj/effect/floor_decal/steeldecal/steel_decals5,
+/obj/machinery/camera/network/halls{
+ dir = 1
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"Kg" = (
@@ -10238,6 +10288,7 @@
dir = 4;
pixel_x = 27
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/starboarddock)
"LR" = (
@@ -10415,6 +10466,13 @@
/obj/random/maintenance,
/turf/simulated/floor,
/area/maintenance/stellardelight/deck3/starboardfore)
+"Mv" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/landmark/vines,
+/turf/simulated/open,
+/area/stellardelight/deck2/fore)
"Mw" = (
/obj/machinery/atmospherics/pipe/manifold/hidden{
dir = 1
@@ -10621,6 +10679,13 @@
},
/turf/simulated/floor/tiled/techfloor,
/area/stellardelight/deck3/cryo)
+"Nd" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/landmark/vines,
+/turf/simulated/open,
+/area/stellardelight/deck2/port)
"Ne" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -11260,6 +11325,13 @@
"OX" = (
/turf/simulated/floor,
/area/maintenance/stellardelight/deck3/portcent)
+"OY" = (
+/obj/machinery/atmospherics/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/landmark/vines,
+/turf/simulated/open,
+/area/stellardelight/deck2/starboard)
"Pa" = (
/obj/structure/lattice,
/turf/simulated/open,
@@ -11394,6 +11466,9 @@
dir = 1
},
/obj/effect/floor_decal/steeldecal/steel_decals5,
+/obj/machinery/camera/network/halls{
+ dir = 1
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"PB" = (
@@ -12394,6 +12469,7 @@
},
/obj/structure/disposalpipe/segment,
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 8;
name = "night shift APC";
nightshift_setting = 2
@@ -12512,6 +12588,7 @@
/area/ai_server_room)
"TO" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
+/obj/effect/landmark/vermin,
/turf/simulated/floor/tiled/monotile,
/area/stellardelight/deck3/commandhall)
"TP" = (
@@ -12634,10 +12711,12 @@
/area/stellardelight/deck3/exterior)
"Uy" = (
/obj/machinery/atmospherics/unary/vent_pump/on,
-/obj/machinery/camera/network/halls,
/obj/effect/floor_decal/steeldecal/steel_decals5{
dir = 1
},
+/obj/machinery/station_map{
+ pixel_y = 32
+ },
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/aft)
"UA" = (
@@ -12786,6 +12865,7 @@
dir = 8;
pixel_x = -27
},
+/obj/effect/landmark/vines,
/turf/simulated/floor/tiled,
/area/stellardelight/deck3/portdock)
"UX" = (
@@ -13340,6 +13420,7 @@
/area/lawoffice)
"WQ" = (
/obj/machinery/power/apc/angled{
+ cell_type = /obj/item/weapon/cell/super;
dir = 4;
name = "night shift APC";
nightshift_setting = 2
@@ -13409,6 +13490,7 @@
/obj/structure/cable/green{
icon_state = "1-2"
},
+/obj/effect/landmark/vermin,
/turf/simulated/open,
/area/crew_quarters/bar)
"Xd" = (
@@ -16844,7 +16926,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -17377,7 +17459,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -18248,7 +18330,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -18312,6 +18394,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -18347,8 +18430,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -19086,7 +19168,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -19182,7 +19264,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -19556,7 +19638,7 @@ NL
NL
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -20342,7 +20424,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -21399,7 +21481,7 @@ NL
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -21633,7 +21715,7 @@ CS
oW
oW
oW
-QF
+Nd
oW
oW
oW
@@ -21832,7 +21914,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -22135,7 +22217,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -22464,7 +22546,7 @@ Cp
qF
qF
qF
-Cb
+Mv
qF
qF
qF
@@ -23442,7 +23524,7 @@ qp
NF
qp
Qp
-Hf
+ba
Ie
tV
cb
@@ -23878,7 +23960,7 @@ BK
aQ
aQ
sf
-aQ
+jO
aQ
BK
aQ
@@ -25579,7 +25661,7 @@ qF
qF
qF
qF
-KF
+ID
qF
qF
qF
@@ -25595,7 +25677,7 @@ qF
hC
aJ
ow
-ZC
+wc
ow
yP
Ks
@@ -26470,7 +26552,7 @@ ow
ow
ow
ow
-ZC
+OY
yP
ow
ZM
@@ -27079,7 +27161,7 @@ NL
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -27646,7 +27728,7 @@ NL
NL
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -27867,7 +27949,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -28130,7 +28212,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -28609,7 +28691,7 @@ Jh
Jh
Jh
Jh
-Jh
+zk
Jh
Jh
Jh
@@ -29118,7 +29200,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
@@ -29852,6 +29934,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -29898,8 +29981,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -29948,6 +30030,7 @@ Jh
Jh
Jh
Jh
+El
Jh
Jh
Jh
@@ -30064,8 +30147,7 @@ Jh
Jh
Jh
Jh
-Jh
-Jh
+El
Jh
Jh
Jh
@@ -30596,7 +30678,7 @@ Jh
Jh
Jh
Jh
-Jh
+El
Jh
Jh
Jh
diff --git a/maps/stellardelight/stellar_delight_areas.dm b/maps/stellardelight/stellar_delight_areas.dm
index b1afbf617ce..47bb681c0a8 100644
--- a/maps/stellardelight/stellar_delight_areas.dm
+++ b/maps/stellardelight/stellar_delight_areas.dm
@@ -129,6 +129,7 @@
soundproofed = TRUE
limit_mob_size = FALSE
block_suit_sensors = TRUE
+ forbid_events = TRUE
/area/stellardelight/deck1/dorms/dorm1
name = "Dormitory One"
@@ -277,6 +278,10 @@
/area/stellardelight/deck3/readingroom
name = "Reading Rooms"
sound_env = SMALL_SOFTFLOOR
+ flags = RAD_SHIELDED| BLUE_SHIELDED |AREA_FLAG_IS_NOT_PERSISTENT
+ soundproofed = TRUE
+ block_suit_sensors = TRUE
+ forbid_events = TRUE
/area/stellardelight/deck3/portdock
name = "Port Dock"
diff --git a/maps/stellardelight/stellar_delight_defines.dm b/maps/stellardelight/stellar_delight_defines.dm
index 8e3ac822f66..d3fef20cb13 100644
--- a/maps/stellardelight/stellar_delight_defines.dm
+++ b/maps/stellardelight/stellar_delight_defines.dm
@@ -4,15 +4,16 @@
#define Z_LEVEL_SHIP_HIGH 3
#define Z_LEVEL_CENTCOM 4
#define Z_LEVEL_MISC 5
-#define Z_LEVEL_BEACH 6
-#define Z_LEVEL_BEACH_CAVE 7
-#define Z_LEVEL_AEROSTAT 8
-#define Z_LEVEL_AEROSTAT_SURFACE 9
-#define Z_LEVEL_DEBRISFIELD 10
-#define Z_LEVEL_FUELDEPOT 11
-#define Z_LEVEL_OVERMAP 12
-#define Z_LEVEL_OFFMAP1 13
-#define Z_LEVEL_GATEWAY 14
+#define Z_LEVEL_SPACE_ROCKS 6
+#define Z_LEVEL_BEACH 7
+#define Z_LEVEL_BEACH_CAVE 8
+#define Z_LEVEL_AEROSTAT 9
+#define Z_LEVEL_AEROSTAT_SURFACE 10
+#define Z_LEVEL_DEBRISFIELD 11
+#define Z_LEVEL_FUELDEPOT 12
+#define Z_LEVEL_OVERMAP 13
+#define Z_LEVEL_OFFMAP1 14
+#define Z_LEVEL_GATEWAY 15
//Camera networks
#define NETWORK_HALLS "Halls"
@@ -46,14 +47,15 @@
lobby_screens = list("youcanttaketheskyfromme")
id_hud_icons = 'icons/mob/hud_jobs_vr.dmi'
-/*
+
holomap_smoosh = list(list(
- Z_LEVEL_SURFACE_LOW,
- Z_LEVEL_SURFACE_MID,
- Z_LEVEL_SURFACE_HIGH))
-*/
+ Z_LEVEL_SHIP_LOW,
+ Z_LEVEL_SHIP_MID,
+ Z_LEVEL_SHIP_HIGH))
+
station_name = "NRV Stellar Delight"
station_short = "Stellar Delight"
+ facility_type = "ship"
dock_name = "Virgo-3B Colony"
dock_type = "surface"
boss_name = "Central Command"
@@ -126,6 +128,7 @@
lateload_z_levels = list(
list("Ship - Central Command"),
list("Ship - Misc"), //Shuttle transit zones, holodeck templates, etc
+ list("V3b Asteroid Field"),
list("Desert Planet - Z1 Beach","Desert Planet - Z2 Cave"),
list("Remmi Aerostat - Z1 Aerostat","Remmi Aerostat - Z2 Surface"),
list("Debris Field - Z1 Space"),
@@ -177,17 +180,13 @@
. += "As an employee or contractor of NanoTrasen, operators of the Adephagia and one of the galaxy's largest corporations, you're probably just here to do a job."
return jointext(., "
")
-/*
+
/datum/map/stellar_delight/perform_map_generation()
- new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_SURFACE_MINE, world.maxx, world.maxy) // Create the mining Z-level.
- new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_SURFACE_MINE, 64, 64) // Create the mining ore distribution map.
-
- new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_SOLARS, world.maxx, world.maxy) // Create the mining Z-level.
- new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_SOLARS, 64, 64) // Create the mining ore distribution map.
-
+ new /datum/random_map/automata/cave_system/no_cracks(null, 1, 1, Z_LEVEL_SPACE_ROCKS, world.maxx, world.maxy) // Create the mining Z-level.
+ new /datum/random_map/noise/ore(null, 1, 1, Z_LEVEL_SPACE_ROCKS, 64, 64) // Create the mining ore distribution map.
return 1
-*/
+
/datum/skybox_settings/stellar_delight
icon_state = "space5"
@@ -200,12 +199,6 @@
Z_LEVEL_BEACH
)
-// For making the 6-in-1 holomap, we calculate some offsets
-#define SHIP_MAP_SIZE 140 // Width and height of compiled in tether z levels.
-#define SHIP_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns
-#define SHIP_HOLOMAP_MARGIN_X ((HOLOMAP_ICON_SIZE - (2*TETHER_MAP_SIZE) - TETHER_HOLOMAP_CENTER_GUTTER) / 2) // 80
-#define SHIP_HOLOMAP_MARGIN_Y ((HOLOMAP_ICON_SIZE - (2*TETHER_MAP_SIZE)) / 2) // 30
-
/obj/effect/landmark/map_data/stellar_delight
height = 3
@@ -241,6 +234,11 @@
return
cached_skybox_image.add_overlay("glow")
+// For making the 6-in-1 holomap, we calculate some offsets
+#define SHIP_MAP_SIZE 140 // Width and height of compiled in tether z levels.
+#define SHIP_HOLOMAP_CENTER_GUTTER 40 // 40px central gutter between columns
+#define SHIP_HOLOMAP_MARGIN_X ((HOLOMAP_ICON_SIZE - (2*SHIP_MAP_SIZE) - SHIP_HOLOMAP_CENTER_GUTTER) / 2) // 80
+#define SHIP_HOLOMAP_MARGIN_Y ((HOLOMAP_ICON_SIZE - (2*SHIP_MAP_SIZE)) / 2) // 30
// We have a bunch of stuff common to the station z levels
/datum/map_z_level/stellar_delight
@@ -253,18 +251,24 @@
name = "Deck 1"
base_turf = /turf/space
transit_chance = 33
+ holomap_offset_x = SHIP_HOLOMAP_MARGIN_X
+ holomap_offset_y = SHIP_HOLOMAP_MARGIN_Y
/datum/map_z_level/stellar_delight/deck_two
z = Z_LEVEL_SHIP_MID
name = "Deck 2"
base_turf = /turf/simulated/open
transit_chance = 33
+ holomap_offset_x = SHIP_HOLOMAP_MARGIN_X
+ holomap_offset_y = SHIP_HOLOMAP_MARGIN_Y + SHIP_MAP_SIZE
/datum/map_z_level/stellar_delight/deck_three
z = Z_LEVEL_SHIP_HIGH
name = "Deck 3"
base_turf = /turf/simulated/open
transit_chance = 33
+ holomap_offset_x = HOLOMAP_ICON_SIZE - SHIP_HOLOMAP_MARGIN_X - SHIP_MAP_SIZE
+ holomap_offset_y = SHIP_HOLOMAP_MARGIN_Y + SHIP_MAP_SIZE
/datum/map_template/ship_lateload
allow_duplicates = FALSE
@@ -307,6 +311,26 @@
name = "Misc"
flags = MAP_LEVEL_ADMIN|MAP_LEVEL_SEALED|MAP_LEVEL_CONTACT|MAP_LEVEL_XENOARCH_EXEMPT
+#include "../submaps/space_rocks/space_rocks.dm"
+/datum/map_template/ship_lateload/space_rocks
+ name = "V3b Asteroid Field"
+ desc = "Space debris is common in V3b's orbit due to the proximity of Virgo 3"
+ mappath = 'maps/submaps/space_rocks/space_rocks.dmm'
+
+ associated_map_datum = /datum/map_z_level/ship_lateload/space_rocks
+
+/datum/map_template/ship_lateload/space_rocks/on_map_loaded(z)
+ . = ..()
+ seed_submaps(list(Z_LEVEL_SPACE_ROCKS), 60, /area/sdmine/unexplored, /datum/map_template/space_rocks)
+ new /datum/random_map/automata/cave_system/no_cracks(null, 3, 3, Z_LEVEL_SPACE_ROCKS, world.maxx - 4, world.maxy - 4)
+ new /datum/random_map/noise/ore/spacerocks(null, 1, 1, Z_LEVEL_SPACE_ROCKS, 64, 64)
+
+/datum/map_z_level/ship_lateload/space_rocks
+ z = Z_LEVEL_SPACE_ROCKS
+ name = "V3b Asteroid Field"
+ base_turf = /turf/space
+ flags = MAP_LEVEL_PLAYER|MAP_LEVEL_CONTACT|MAP_LEVEL_CONSOLES
+
/datum/map_template/ship_lateload/overmap
name = "Overmap"
desc = "Overmap lives here :3"
diff --git a/maps/stellardelight/stellar_delight_shuttle_defs.dm b/maps/stellardelight/stellar_delight_shuttle_defs.dm
index 453c6562b18..e83c05be9e3 100644
--- a/maps/stellardelight/stellar_delight_shuttle_defs.dm
+++ b/maps/stellardelight/stellar_delight_shuttle_defs.dm
@@ -240,7 +240,7 @@
[i]Transponder[/i]: Transmitting (CIV), NanoTrasen IFF
[b]Notice[/b]: NanoTrasen Base, authorized personnel only"}
known = TRUE
- in_space = FALSE
+ in_space = TRUE
icon = 'icons/obj/overmap_vr.dmi'
icon_state = "virgo3b"
@@ -250,8 +250,11 @@
skybox_pixel_x = 0
skybox_pixel_y = 0
+ initial_generic_waypoints = list("sr-c","sr-n","sr-s")
initial_restricted_waypoints = list("Central Command Shuttlepad" = list("cc_shuttlepad"))
+ extra_z_levels = list(Z_LEVEL_SPACE_ROCKS)
+
/////SD Starts at V3b to pick up crew refuel and repair (And to make sure it doesn't spawn on hazards)
/obj/effect/overmap/visitable/sector/virgo3b/Initialize()
. = ..()
@@ -278,4 +281,7 @@
//For ships, it's safe to assume they're big enough to not be sneaky
else if(istype(AM, /obj/effect/overmap/visitable/ship))
- atc.msg(message)
\ No newline at end of file
+ atc.msg(message)
+
+/obj/effect/overmap/visitable/sector/virgo3b/get_space_zlevels()
+ return list(Z_LEVEL_SPACE_ROCKS)
diff --git a/maps/submaps/space_rocks/bittynest1.dmm b/maps/submaps/space_rocks/bittynest1.dmm
new file mode 100644
index 00000000000..9d73c9b765d
--- /dev/null
+++ b/maps/submaps/space_rocks/bittynest1.dmm
@@ -0,0 +1,145 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"L" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest1)
+"P" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/bittynest1)
+"W" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest1)
+"Y" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest1)
+
+(1,1,1) = {"
+a
+a
+a
+a
+P
+P
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+P
+P
+P
+P
+W
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+P
+P
+W
+W
+W
+W
+P
+a
+"}
+(4,1,1) = {"
+a
+P
+P
+W
+W
+P
+P
+P
+P
+a
+"}
+(5,1,1) = {"
+P
+P
+W
+W
+W
+W
+W
+Y
+P
+P
+"}
+(6,1,1) = {"
+P
+P
+W
+W
+W
+L
+W
+W
+W
+P
+"}
+(7,1,1) = {"
+P
+P
+W
+W
+W
+W
+W
+W
+W
+P
+"}
+(8,1,1) = {"
+a
+P
+P
+Y
+W
+W
+W
+W
+P
+P
+"}
+(9,1,1) = {"
+a
+a
+P
+P
+P
+P
+P
+P
+P
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+P
+P
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/bittynest2.dmm b/maps/submaps/space_rocks/bittynest2.dmm
new file mode 100644
index 00000000000..cb840bd5a47
--- /dev/null
+++ b/maps/submaps/space_rocks/bittynest2.dmm
@@ -0,0 +1,145 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"v" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/bittynest2)
+"B" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest2)
+"R" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest2)
+"W" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest2)
+
+(1,1,1) = {"
+a
+a
+a
+a
+v
+v
+a
+v
+v
+a
+"}
+(2,1,1) = {"
+a
+a
+v
+v
+v
+v
+v
+v
+v
+a
+"}
+(3,1,1) = {"
+a
+v
+v
+v
+v
+W
+R
+v
+v
+v
+"}
+(4,1,1) = {"
+a
+v
+v
+v
+W
+W
+B
+W
+v
+v
+"}
+(5,1,1) = {"
+v
+v
+v
+W
+W
+W
+W
+W
+v
+a
+"}
+(6,1,1) = {"
+v
+v
+W
+W
+W
+W
+W
+v
+v
+v
+"}
+(7,1,1) = {"
+v
+v
+R
+B
+W
+W
+W
+W
+v
+a
+"}
+(8,1,1) = {"
+v
+v
+v
+W
+W
+v
+v
+W
+a
+a
+"}
+(9,1,1) = {"
+a
+v
+v
+v
+v
+v
+v
+W
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+v
+v
+a
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/bittynest3.dmm b/maps/submaps/space_rocks/bittynest3.dmm
new file mode 100644
index 00000000000..7f845fd0c99
--- /dev/null
+++ b/maps/submaps/space_rocks/bittynest3.dmm
@@ -0,0 +1,145 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"p" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest3)
+"N" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest3)
+"Q" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest3)
+"Z" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/bittynest3)
+
+(1,1,1) = {"
+a
+a
+Q
+a
+Z
+Z
+Z
+Z
+a
+a
+"}
+(2,1,1) = {"
+a
+Z
+Q
+Q
+Q
+Z
+Z
+Z
+Z
+a
+"}
+(3,1,1) = {"
+a
+Z
+Z
+Q
+Q
+p
+Q
+Z
+Z
+Z
+"}
+(4,1,1) = {"
+Z
+Z
+Z
+Z
+Z
+Q
+Q
+Q
+Z
+Z
+"}
+(5,1,1) = {"
+Z
+Z
+Z
+p
+Q
+Z
+Q
+Q
+Z
+a
+"}
+(6,1,1) = {"
+Z
+Z
+Q
+Q
+Q
+Q
+Q
+Z
+Z
+a
+"}
+(7,1,1) = {"
+Z
+Z
+Q
+N
+Q
+Q
+Q
+Z
+Z
+a
+"}
+(8,1,1) = {"
+a
+Z
+Z
+Q
+Q
+Z
+Z
+Z
+Z
+a
+"}
+(9,1,1) = {"
+a
+a
+Z
+Z
+Z
+Z
+Z
+Z
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+Z
+Z
+Z
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/bittynest4.dmm b/maps/submaps/space_rocks/bittynest4.dmm
new file mode 100644
index 00000000000..2c4f1339517
--- /dev/null
+++ b/maps/submaps/space_rocks/bittynest4.dmm
@@ -0,0 +1,145 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"m" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest4)
+"x" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest4)
+"P" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/bittynest4)
+"V" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/bittynest4)
+
+(1,1,1) = {"
+a
+a
+V
+V
+V
+P
+V
+V
+a
+a
+"}
+(2,1,1) = {"
+a
+V
+V
+V
+P
+P
+P
+V
+V
+a
+"}
+(3,1,1) = {"
+V
+V
+P
+P
+P
+x
+V
+V
+V
+V
+"}
+(4,1,1) = {"
+V
+V
+P
+P
+V
+V
+V
+V
+V
+V
+"}
+(5,1,1) = {"
+a
+V
+P
+V
+V
+m
+P
+x
+V
+V
+"}
+(6,1,1) = {"
+V
+V
+P
+V
+P
+P
+P
+P
+P
+V
+"}
+(7,1,1) = {"
+V
+V
+P
+P
+P
+P
+V
+V
+P
+V
+"}
+(8,1,1) = {"
+V
+V
+V
+P
+V
+V
+V
+P
+P
+V
+"}
+(9,1,1) = {"
+a
+V
+V
+V
+V
+V
+P
+m
+V
+V
+"}
+(10,1,1) = {"
+a
+a
+V
+V
+V
+P
+P
+V
+V
+a
+"}
diff --git a/maps/submaps/space_rocks/clearing.dmm b/maps/submaps/space_rocks/clearing.dmm
new file mode 100644
index 00000000000..3ffa6ed0850
--- /dev/null
+++ b/maps/submaps/space_rocks/clearing.dmm
@@ -0,0 +1,148 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"v" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/clearing)
+"y" = (
+/obj/random/contraband/nofail,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/clearing)
+"P" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/clearing)
+"W" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/clearing)
+
+(1,1,1) = {"
+a
+a
+a
+a
+v
+v
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+v
+v
+v
+v
+v
+v
+a
+a
+"}
+(3,1,1) = {"
+a
+v
+v
+v
+v
+v
+v
+v
+v
+a
+"}
+(4,1,1) = {"
+a
+v
+v
+v
+v
+v
+v
+v
+v
+a
+"}
+(5,1,1) = {"
+v
+v
+v
+v
+P
+v
+v
+v
+v
+v
+"}
+(6,1,1) = {"
+v
+v
+v
+W
+v
+y
+v
+v
+v
+v
+"}
+(7,1,1) = {"
+a
+v
+v
+v
+v
+v
+v
+v
+v
+a
+"}
+(8,1,1) = {"
+a
+v
+v
+v
+v
+v
+v
+v
+v
+a
+"}
+(9,1,1) = {"
+a
+a
+v
+v
+v
+v
+v
+v
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+v
+v
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/seventemple.dmm b/maps/submaps/space_rocks/seventemple.dmm
new file mode 100644
index 00000000000..1c5162c6761
--- /dev/null
+++ b/maps/submaps/space_rocks/seventemple.dmm
@@ -0,0 +1,498 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/obj/structure/loot_pile/surface/alien/medical,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+"f" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/seventemple)
+"h" = (
+/obj/structure/loot_pile/surface/alien/end,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+"m" = (
+/turf/simulated/shuttle/floor/alien,
+/area/submap/space_rocks/seventemple)
+"p" = (
+/obj/structure/loot_pile/surface/bones,
+/turf/simulated/shuttle/floor/alien/blue,
+/area/submap/space_rocks/seventemple)
+"q" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/seventemple)
+"t" = (
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+"w" = (
+/obj/structure/loot_pile/surface/alien/security,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+"y" = (
+/obj/structure/loot_pile/surface/drone,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+"F" = (
+/turf/simulated/shuttle/floor/alien/blue,
+/area/submap/space_rocks/seventemple)
+"J" = (
+/turf/simulated/wall/eris/r_wall,
+/area/submap/space_rocks/seventemple)
+"R" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/seventemple)
+"Y" = (
+/obj/structure/loot_pile/surface/alien/engineering,
+/turf/simulated/shuttle/floor/alienplating/vacuum,
+/area/submap/space_rocks/seventemple)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+J
+a
+a
+a
+a
+f
+J
+J
+J
+f
+a
+a
+a
+a
+J
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+J
+J
+J
+a
+a
+f
+J
+J
+t
+J
+J
+f
+a
+a
+J
+J
+J
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+J
+f
+f
+f
+f
+J
+Y
+t
+t
+J
+f
+f
+f
+f
+J
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+f
+R
+f
+f
+J
+t
+t
+t
+J
+f
+f
+f
+f
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+f
+f
+f
+f
+f
+J
+t
+y
+t
+J
+f
+f
+R
+f
+f
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+f
+f
+f
+f
+f
+J
+J
+t
+m
+t
+J
+J
+f
+f
+f
+f
+f
+a
+a
+"}
+(8,1,1) = {"
+a
+f
+f
+f
+f
+J
+J
+m
+t
+t
+t
+m
+J
+J
+f
+f
+f
+f
+a
+a
+"}
+(9,1,1) = {"
+a
+f
+q
+f
+J
+J
+t
+t
+t
+F
+t
+t
+t
+J
+J
+f
+f
+f
+a
+a
+"}
+(10,1,1) = {"
+J
+f
+f
+f
+J
+w
+t
+t
+F
+p
+F
+t
+t
+h
+J
+f
+f
+f
+J
+a
+"}
+(11,1,1) = {"
+a
+f
+f
+f
+J
+J
+t
+t
+t
+F
+t
+t
+t
+J
+J
+f
+f
+f
+a
+a
+"}
+(12,1,1) = {"
+a
+f
+f
+f
+f
+J
+J
+m
+t
+t
+t
+m
+J
+J
+f
+f
+f
+f
+a
+a
+"}
+(13,1,1) = {"
+a
+f
+f
+f
+f
+f
+J
+J
+t
+m
+t
+J
+J
+f
+f
+f
+q
+f
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+f
+f
+f
+f
+f
+J
+t
+y
+t
+J
+f
+f
+f
+f
+f
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+f
+R
+f
+f
+J
+t
+t
+t
+J
+f
+f
+R
+f
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+J
+f
+f
+f
+f
+J
+b
+t
+t
+J
+f
+f
+f
+f
+J
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+J
+J
+J
+a
+a
+f
+J
+J
+t
+J
+J
+f
+a
+a
+J
+J
+J
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+J
+a
+a
+a
+a
+f
+J
+J
+J
+f
+a
+a
+a
+a
+J
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/space_rocks.dm b/maps/submaps/space_rocks/space_rocks.dm
new file mode 100644
index 00000000000..3951d511718
--- /dev/null
+++ b/maps/submaps/space_rocks/space_rocks.dm
@@ -0,0 +1,61 @@
+#include "space_rocks_pois.dm"
+#include "space_rocks_stuff.dm"
+
+/turf/simulated/mineral/vacuum/sdmine/make_ore(var/rare_ore)
+ if(mineral)
+ return
+ var/mineral_name
+ if(rare_ore)
+ mineral_name = pickweight(list(
+ "marble" = 3,
+ "uranium" = 10,
+ "platinum" = 10,
+ "hematite" = 20,
+ "carbon" = 5,
+ "diamond" = 1,
+ "gold" = 8,
+ "silver" = 8,
+ "phoron" = 18,
+ "lead" = 2,
+ "verdantium" = 1))
+ else
+ mineral_name = pickweight(list(
+ "marble" = 2,
+ "uranium" = 5,
+ "platinum" = 5,
+ "hematite" = 35,
+ "carbon" = 5,
+ "gold" = 3,
+ "silver" = 3,
+ "phoron" = 25,
+ "lead" = 1))
+
+ if(mineral_name && (mineral_name in GLOB.ore_data))
+ mineral = GLOB.ore_data[mineral_name]
+ UpdateMineral()
+ update_icon()
+
+/datum/random_map/noise/ore/spacerocks
+ descriptor = "asteroid field ore distribution map"
+ deep_val = 0.2
+ rare_val = 0.1
+
+/datum/random_map/noise/ore/spacerocks/check_map_sanity()
+ return 1 //Totally random, but probably beneficial.
+
+/area/sdmine/
+ ambience = list('sound/ambience/ambimine.ogg', 'sound/ambience/song_game.ogg')
+ base_turf = /turf/simulated/mineral/floor/vacuum
+/area/sdmine/unexplored
+ name = "asteroid field"
+ icon_state = "unexplored"
+/area/sdmine/explored
+ name = "asteroid field"
+ icon_state = "explored"
+
+
+/obj/effect/overmap/visitable/sector/virgo3b/generate_skybox(zlevel)
+ var/static/image/smallone = image(icon = 'icons/skybox/virgo3b.dmi', icon_state = "small")
+
+ if(zlevel == Z_LEVEL_SPACE_ROCKS)
+ return smallone
\ No newline at end of file
diff --git a/maps/submaps/space_rocks/space_rocks.dmm b/maps/submaps/space_rocks/space_rocks.dmm
new file mode 100644
index 00000000000..13f3f7d605e
--- /dev/null
+++ b/maps/submaps/space_rocks/space_rocks.dmm
@@ -0,0 +1,19911 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/space,
+/area/space)
+"b" = (
+/obj/effect/shuttle_landmark/premade/spacerocks/north,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/sdmine/explored)
+"v" = (
+/obj/effect/shuttle_landmark/premade/spacerocks/south,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/sdmine/explored)
+"y" = (
+/obj/effect/shuttle_landmark/premade/spacerocks/center,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/sdmine/explored)
+"D" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/sdmine/explored)
+"J" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/sdmine/unexplored)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(21,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(22,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(23,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(24,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(25,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(26,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(27,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(28,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+J
+J
+J
+J
+a
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(29,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(30,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(31,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(32,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(33,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(34,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(35,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(36,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(37,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+a
+a
+a
+a
+a
+a
+"}
+(38,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+a
+a
+a
+a
+a
+a
+"}
+(39,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+a
+a
+a
+a
+a
+a
+"}
+(40,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+"}
+(41,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(42,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(43,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(44,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(45,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(46,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(47,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(48,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(49,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(50,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(51,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+v
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(52,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(53,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(54,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+"}
+(55,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+"}
+(56,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+"}
+(57,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+"}
+(58,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+a
+a
+a
+a
+a
+"}
+(59,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+a
+a
+a
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+a
+a
+a
+a
+a
+"}
+(60,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+a
+a
+a
+a
+a
+"}
+(61,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(62,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(63,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(64,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(65,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(66,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(67,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+"}
+(68,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(69,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(70,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(71,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(72,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(73,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+"}
+(74,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(75,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(76,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(77,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(78,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(79,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(80,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+"}
+(81,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+y
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(82,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(83,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+b
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(84,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(85,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(86,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(87,1,1) = {"
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(88,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(89,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(90,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+D
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(91,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+D
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(92,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+D
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(93,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(94,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+D
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(95,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(96,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(97,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(98,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(99,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(100,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(101,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(102,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(103,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(104,1,1) = {"
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(105,1,1) = {"
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(106,1,1) = {"
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(107,1,1) = {"
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(108,1,1) = {"
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(109,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(110,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(111,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(112,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(113,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(114,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(115,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(116,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(117,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(118,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(119,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(120,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(121,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(122,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(123,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(124,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(125,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(126,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(127,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+a
+J
+J
+a
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(128,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(129,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(130,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(131,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(132,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(133,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+J
+J
+J
+J
+J
+J
+J
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(134,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(135,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(136,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(137,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(138,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(139,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(140,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/space_rocks_pois.dm b/maps/submaps/space_rocks/space_rocks_pois.dm
new file mode 100644
index 00000000000..3c42dc57d64
--- /dev/null
+++ b/maps/submaps/space_rocks/space_rocks_pois.dm
@@ -0,0 +1,96 @@
+#if MAP_TEST
+#include "bittynest1.dmm"
+#include "bittynest2.dmm"
+#include "bittynest3.dmm"
+#include "bittynest4.dmm"
+#include "clearing.dmm"
+#include "seventemple.dmm"
+#include "spacecrystals.dmm"
+#include "tunnel1.dmm"
+#include "tunnel2.dmm"
+#endif
+
+/area/submap/space_rocks
+ name = "POI - Space Rocks"
+ ambience = AMBIENCE_FOREBODING
+
+/area/submap/space_rocks/bittynest1
+ name = "POI - Bittynest1"
+
+/datum/map_template/space_rocks/bittynest1
+ name = "Bittynest1"
+ desc = "A smol nest for smol badguys"
+ mappath = 'bittynest1.dmm'
+ cost = 5
+
+/area/submap/space_rocks/bittynest2
+ name = "POI - Bittynest2"
+
+/datum/map_template/space_rocks/bittynest2
+ name = "Bittynest2"
+ desc = "A smol nest for smol badguys"
+ mappath = 'bittynest2.dmm'
+ cost = 5
+
+/area/submap/space_rocks/bittynest3
+ name = "POI - Bittynest3"
+
+/datum/map_template/space_rocks/bittynest3
+ name = "Bittynest3"
+ desc = "A smol nest for smol badguys"
+ mappath = 'bittynest3.dmm'
+ cost = 5
+
+/area/submap/space_rocks/bittynest4
+ name = "POI - Bittynest4"
+
+/datum/map_template/space_rocks/bittynest4
+ name = "Bittynest4"
+ desc = "A smol nest for smol badguys"
+ mappath = 'bittynest4.dmm'
+ cost = 5
+
+/area/submap/space_rocks/tunnel1
+ name = "POI - Tunnel1"
+
+/datum/map_template/space_rocks/tunnel1
+ name = "Tunnel1"
+ desc = "A tunnel left behind!"
+ mappath = 'tunnel1.dmm'
+ cost = 10
+
+/area/submap/space_rocks/tunnel2
+ name = "POI - Tunnel2"
+
+/datum/map_template/space_rocks/tunnel2
+ name = "Tunnel2"
+ desc = "A tunnel left behind!"
+ mappath = 'tunnel2.dmm'
+ cost = 10
+
+/area/submap/space_rocks/spacecrystals
+ name = "POI - Space Crystals"
+
+/datum/map_template/space_rocks/tunnel2
+ name = "Space Crystals"
+ desc = "Some crystals living in space!"
+ mappath = 'spacecrystals.dmm'
+ cost = 10
+
+/area/submap/space_rocks/clearing
+ name = "POI - Clearing"
+
+/datum/map_template/space_rocks/clearing
+ name = "Clearing"
+ desc = "A clear spot for mischief to happen."
+ mappath = 'clearing.dmm'
+ cost = 10
+
+/area/submap/space_rocks/seventemple
+ name = "POI - Temple of the Seven"
+
+/datum/map_template/space_rocks/seventemple
+ name = "Temple of the Seven"
+ desc = "A mysterious space!"
+ mappath = 'seventemple.dmm'
+ cost = 25
diff --git a/maps/submaps/space_rocks/space_rocks_stuff.dm b/maps/submaps/space_rocks/space_rocks_stuff.dm
new file mode 100644
index 00000000000..cacb70e3879
--- /dev/null
+++ b/maps/submaps/space_rocks/space_rocks_stuff.dm
@@ -0,0 +1,30 @@
+/////LANDING LANDMARKS
+/obj/effect/shuttle_landmark/premade/spacerocks/center
+ name = "asteroid field center"
+ landmark_tag = "sr-c"
+
+/obj/effect/shuttle_landmark/premade/spacerocks/north
+ name = "asteroid field north"
+ landmark_tag = "sr-n"
+
+/obj/effect/shuttle_landmark/premade/spacerocks/south
+ name = "asteroid field south"
+ landmark_tag = "sr-s"
+
+/obj/tether_away_spawner/asteroidbaddies
+ name = "Asteroid Mob Spawner"
+ faction = "space_rock"
+ atmos_comp = TRUE
+ prob_spawn = 100
+ prob_fall = 40
+ //guard = 20
+ mobs_to_pick_from = list(
+ /mob/living/simple_mob/animal/space/bats = 10,
+ /mob/living/simple_mob/vore/alienanimals/space_jellyfish = 15,
+ /mob/living/simple_mob/vore/alienanimals/startreader = 15,
+ /mob/living/simple_mob/vore/alienanimals/space_ghost = 6,
+ /mob/living/simple_mob/vore/oregrub = 1,
+ /mob/living/simple_mob/animal/space/carp = 3,
+ /mob/living/simple_mob/animal/space/carp/large = 1,
+ /mob/living/simple_mob/animal/space/carp/large/huge = 1
+ )
diff --git a/maps/submaps/space_rocks/spacecrystals.dmm b/maps/submaps/space_rocks/spacecrystals.dmm
new file mode 100644
index 00000000000..6d799f7a1c3
--- /dev/null
+++ b/maps/submaps/space_rocks/spacecrystals.dmm
@@ -0,0 +1,471 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"c" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/spacecrystals)
+"j" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/spacecrystals)
+"W" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/spacecrystals)
+"X" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/spacecrystals)
+"Z" = (
+/obj/machinery/crystal,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/spacecrystals)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+a
+W
+W
+W
+W
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+W
+W
+c
+c
+c
+c
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+W
+c
+c
+c
+c
+c
+c
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+W
+W
+X
+j
+c
+c
+c
+c
+W
+W
+W
+W
+W
+W
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+W
+c
+c
+c
+c
+c
+c
+Z
+c
+c
+c
+c
+W
+W
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+W
+c
+c
+c
+c
+Z
+c
+c
+c
+Z
+c
+c
+c
+W
+W
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+W
+W
+c
+c
+c
+c
+c
+c
+c
+c
+c
+j
+c
+c
+W
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+a
+W
+W
+W
+c
+c
+c
+Z
+c
+c
+c
+c
+c
+c
+W
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+a
+a
+a
+W
+c
+c
+c
+c
+c
+c
+c
+c
+c
+c
+W
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+a
+a
+W
+W
+c
+Z
+c
+c
+c
+Z
+c
+c
+X
+W
+W
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+a
+W
+W
+c
+c
+c
+c
+Z
+c
+c
+W
+W
+W
+W
+a
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+W
+c
+c
+j
+X
+c
+c
+c
+W
+W
+a
+a
+a
+a
+a
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+a
+W
+c
+c
+c
+c
+c
+c
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+a
+W
+c
+c
+c
+c
+c
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+a
+W
+W
+c
+W
+c
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+a
+a
+W
+W
+W
+W
+W
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/tunnel1.dmm b/maps/submaps/space_rocks/tunnel1.dmm
new file mode 100644
index 00000000000..ac611ad185d
--- /dev/null
+++ b/maps/submaps/space_rocks/tunnel1.dmm
@@ -0,0 +1,251 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/template_noop)
+"b" = (
+/turf/simulated/floor/airless,
+/area/submap/space_rocks/tunnel1)
+"k" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel1)
+"l" = (
+/turf/simulated/wall,
+/area/submap/space_rocks/tunnel1)
+"x" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel1)
+"L" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/tunnel1)
+"Z" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel1)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+L
+l
+L
+L
+L
+L
+l
+x
+L
+L
+L
+L
+l
+x
+x
+L
+L
+L
+l
+L
+"}
+(4,1,1) = {"
+L
+b
+L
+L
+Z
+L
+b
+x
+x
+L
+L
+x
+b
+L
+x
+x
+x
+x
+b
+L
+"}
+(5,1,1) = {"
+x
+b
+b
+x
+k
+x
+b
+b
+x
+x
+x
+x
+b
+b
+x
+x
+L
+x
+b
+b
+"}
+(6,1,1) = {"
+x
+b
+b
+x
+x
+x
+b
+b
+x
+x
+x
+x
+b
+b
+x
+Z
+k
+x
+b
+b
+"}
+(7,1,1) = {"
+L
+b
+L
+k
+x
+L
+b
+x
+x
+x
+x
+x
+b
+x
+x
+L
+x
+x
+b
+L
+"}
+(8,1,1) = {"
+L
+l
+x
+x
+L
+L
+l
+L
+x
+x
+L
+L
+l
+L
+L
+L
+L
+L
+l
+L
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/maps/submaps/space_rocks/tunnel2.dmm b/maps/submaps/space_rocks/tunnel2.dmm
new file mode 100644
index 00000000000..9de921541c6
--- /dev/null
+++ b/maps/submaps/space_rocks/tunnel2.dmm
@@ -0,0 +1,275 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/template_noop)
+"f" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/floor/airless,
+/area/submap/space_rocks/tunnel2)
+"i" = (
+/turf/simulated/floor/airless,
+/area/submap/space_rocks/tunnel2)
+"l" = (
+/obj/random/underdark/uncertain,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel2)
+"q" = (
+/turf/simulated/wall,
+/area/submap/space_rocks/tunnel2)
+"z" = (
+/obj/tether_away_spawner/asteroidbaddies,
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel2)
+"C" = (
+/turf/simulated/mineral/floor/vacuum{
+ ignore_cavegen = 1
+ },
+/area/submap/space_rocks/tunnel2)
+"L" = (
+/turf/simulated/mineral/vacuum/sdmine,
+/area/submap/space_rocks/tunnel2)
+
+(1,1,1) = {"
+a
+a
+L
+L
+C
+C
+L
+L
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+q
+i
+i
+i
+i
+q
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+L
+C
+f
+i
+L
+L
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+L
+C
+C
+C
+L
+L
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+L
+C
+C
+C
+L
+L
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+L
+L
+L
+C
+l
+L
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+q
+i
+i
+i
+i
+q
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+L
+C
+i
+i
+L
+L
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+L
+C
+C
+C
+C
+L
+a
+a
+"}
+(10,1,1) = {"
+a
+a
+C
+C
+C
+C
+L
+L
+a
+a
+"}
+(11,1,1) = {"
+a
+a
+C
+C
+C
+C
+C
+L
+a
+a
+"}
+(12,1,1) = {"
+a
+a
+L
+C
+C
+L
+C
+L
+a
+a
+"}
+(13,1,1) = {"
+a
+a
+q
+i
+i
+i
+i
+q
+a
+a
+"}
+(14,1,1) = {"
+a
+a
+L
+L
+i
+i
+L
+L
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+L
+L
+C
+C
+C
+L
+a
+a
+"}
+(16,1,1) = {"
+a
+a
+L
+l
+C
+C
+C
+L
+a
+a
+"}
+(17,1,1) = {"
+a
+a
+L
+z
+C
+C
+C
+L
+a
+a
+"}
+(18,1,1) = {"
+a
+a
+L
+L
+L
+C
+C
+L
+a
+a
+"}
+(19,1,1) = {"
+a
+a
+q
+i
+i
+i
+i
+q
+a
+a
+"}
+(20,1,1) = {"
+a
+a
+L
+L
+i
+i
+L
+L
+a
+a
+"}
diff --git a/maps/tether/submaps/underdark_pois/underdark_things.dm b/maps/tether/submaps/underdark_pois/underdark_things.dm
index b080985940c..22dd2e4e5ea 100644
--- a/maps/tether/submaps/underdark_pois/underdark_things.dm
+++ b/maps/tether/submaps/underdark_pois/underdark_things.dm
@@ -81,193 +81,6 @@
/mob/living/simple_mob/vore/aggressive/dragon = 1
)
-/obj/random/underdark
- name = "random underdark loot"
- desc = "Random loot for Underdark."
- icon = 'icons/obj/items.dmi'
- icon_state = "spickaxe"
-
-/obj/random/underdark/item_to_spawn()
- return pick(prob(3);/obj/random/multiple/underdark/miningdrills,
- prob(3);/obj/random/multiple/underdark/ores,
- prob(2);/obj/random/multiple/underdark/treasure,
- prob(1);/obj/random/multiple/underdark/mechtool)
-
-/obj/random/underdark/uncertain
- icon_state = "upickaxe"
- spawn_nothing_percentage = 65 //only 33% to spawn loot
-
-/obj/random/multiple/underdark/miningdrills
- name = "random underdark mining tool loot"
- desc = "Random mining tool loot for Underdark."
- icon = 'icons/obj/items.dmi'
- icon_state = "spickaxe"
-
-/obj/random/multiple/underdark/miningdrills/item_to_spawn()
- return pick(
- prob(10);list(/obj/item/weapon/pickaxe/silver),
- prob(8);list(/obj/item/weapon/pickaxe/drill),
- prob(6);list(/obj/item/weapon/pickaxe/jackhammer),
- prob(5);list(/obj/item/weapon/pickaxe/gold),
- prob(4);list(/obj/item/weapon/pickaxe/plasmacutter),
- prob(2);list(/obj/item/weapon/pickaxe/diamond),
- prob(1);list(/obj/item/weapon/pickaxe/diamonddrill)
- )
-
-/obj/random/multiple/underdark/ores
- name = "random underdark mining ore loot"
- desc = "Random mining utility loot for Underdark."
- icon = 'icons/obj/mining.dmi'
- icon_state = "satchel"
-
-/obj/random/multiple/underdark/ores/item_to_spawn()
- return pick(
- prob(9);list(
- /obj/item/weapon/storage/bag/ore,
- /obj/item/weapon/shovel,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/glass,
- /obj/item/weapon/ore/hydrogen,
- /obj/item/weapon/ore/hydrogen,
- /obj/item/weapon/ore/hydrogen,
- /obj/item/weapon/ore/hydrogen,
- /obj/item/weapon/ore/hydrogen,
- /obj/item/weapon/ore/hydrogen
- ),
- prob(7);list(
- /obj/item/weapon/storage/bag/ore,
- /obj/item/weapon/pickaxe,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium,
- /obj/item/weapon/ore/osmium
- ),
- prob(4);list(
- /obj/item/clothing/suit/radiation,
- /obj/item/clothing/head/radiation,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium,
- /obj/item/weapon/ore/uranium),
- prob(2);list(
- /obj/item/device/flashlight/lantern,
- /obj/item/clothing/glasses/material,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond,
- /obj/item/weapon/ore/diamond
- ),
- prob(1);list(
- /obj/item/weapon/mining_scanner,
- /obj/item/weapon/shovel/spade,
- /obj/item/weapon/ore/verdantium,
- /obj/item/weapon/ore/verdantium,
- /obj/item/weapon/ore/verdantium,
- /obj/item/weapon/ore/verdantium,
- /obj/item/weapon/ore/verdantium
- )
- )
-
-/obj/random/multiple/underdark/treasure
- name = "random underdark treasure"
- desc = "Random treasure loot for Underdark."
- icon = 'icons/obj/storage.dmi'
- icon_state = "cashbag"
-
-/obj/random/multiple/underdark/treasure/item_to_spawn()
- return pick(
- prob(5);list(
- /obj/random/coin,
- /obj/random/coin,
- /obj/random/coin,
- /obj/random/coin,
- /obj/random/coin,
- /obj/item/clothing/head/pirate
- ),
- prob(4);list(
- /obj/item/weapon/storage/bag/cash,
- /obj/item/weapon/spacecash/c500,
- /obj/item/weapon/spacecash/c100,
- /obj/item/weapon/spacecash/c50
- ),
- prob(3);list(
- /obj/item/clothing/head/hardhat/orange,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold,
- /obj/item/stack/material/gold),
- prob(1);list(
- /obj/item/stack/material/phoron,
- /obj/item/stack/material/phoron,
- /obj/item/stack/material/phoron,
- /obj/item/stack/material/phoron,
- /obj/item/stack/material/diamond,
- /obj/item/stack/material/diamond,
- /obj/item/stack/material/diamond
- )
- )
-
-/obj/random/multiple/underdark/mechtool
- name = "random underdark mech equipment"
- desc = "Random mech equipment loot for Underdark."
- icon = 'icons/mecha/mecha_equipment.dmi'
- icon_state = "mecha_clamp"
-
-/obj/random/multiple/underdark/mechtool/item_to_spawn()
- return pick(
- prob(12);list(/obj/item/mecha_parts/mecha_equipment/tool/drill),
- prob(10);list(/obj/item/mecha_parts/mecha_equipment/tool/hydraulic_clamp),
- prob(8);list(/obj/item/mecha_parts/mecha_equipment/generator),
- prob(7);list(/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot/rigged),
- prob(6);list(/obj/item/mecha_parts/mecha_equipment/repair_droid),
- prob(3);list(/obj/item/mecha_parts/mecha_equipment/gravcatapult),
- prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser),
- prob(2);list(/obj/item/mecha_parts/mecha_equipment/weapon/energy/flamer/rigged),
- prob(1);list(/obj/item/mecha_parts/mecha_equipment/tool/drill/diamonddrill),
- )
-
//POI STUFF
VIRGO3B_TURF_CREATE(/turf/simulated/mineral/ignore_oregen)
VIRGO3B_TURF_CREATE(/turf/simulated/mineral/floor/ignore_oregen)
diff --git a/maps/tether/tether_defines.dm b/maps/tether/tether_defines.dm
index 3b6e851daf9..9e8f0004d46 100644
--- a/maps/tether/tether_defines.dm
+++ b/maps/tether/tether_defines.dm
@@ -68,6 +68,7 @@
station_name = "NSB Adephagia"
station_short = "Tether"
+ facility_type = "station"
dock_name = "Virgo-3B Colony"
dock_type = "surface"
boss_name = "Central Command"
diff --git a/maps/~map_system/maps.dm b/maps/~map_system/maps.dm
index 48a8963e367..3b23df5507c 100644
--- a/maps/~map_system/maps.dm
+++ b/maps/~map_system/maps.dm
@@ -81,6 +81,7 @@ var/list/all_maps = list()
var/station_name = "BAD Station"
var/station_short = "Baddy"
+ var/facility_type = "facility"
var/dock_name = "THE PirateBay"
var/dock_type = "station" //VOREStation Edit - for a list of valid types see the switch block in air_traffic.dm at line 148
var/boss_name = "Captain Roger"
diff --git a/vorestation.dme b/vorestation.dme
index 49ca4c06856..1b67797a293 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -2193,6 +2193,7 @@
#include "code\modules\events\ian_storm_vr.dm"
#include "code\modules\events\infestation.dm"
#include "code\modules\events\ion_storm.dm"
+#include "code\modules\events\jellyfish_migration.dm"
#include "code\modules\events\maintenance_predator_vr.dm"
#include "code\modules\events\meteor_strike_vr.dm"
#include "code\modules\events\meteors.dm"
@@ -2954,6 +2955,9 @@
#include "code\modules\mob\living\simple_mob\taming.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\animal.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\catslug.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\jellyfish.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\spookyghost.dm"
+#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\startreader.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\teppi.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\borer\borer_captive.dm"
@@ -3238,6 +3242,7 @@
#include "code\modules\multiz\ladder_assembly_vr.dm"
#include "code\modules\multiz\ladders.dm"
#include "code\modules\multiz\ladders_vr.dm"
+#include "code\modules\multiz\misc.dm"
#include "code\modules\multiz\movement.dm"
#include "code\modules\multiz\movement_vr.dm"
#include "code\modules\multiz\pipes.dm"