From 5428d6bf05c3246f2762d0838a6d3c01f769cbdf Mon Sep 17 00:00:00 2001
From: Killian <49700375+KillianKirilenko@users.noreply.github.com>
Date: Sat, 22 Jul 2023 09:12:46 +0100
Subject: [PATCH 01/63] simplified coin press
---
code/modules/economy/mint.dm | 241 ++++++-----------------------------
1 file changed, 40 insertions(+), 201 deletions(-)
diff --git a/code/modules/economy/mint.dm b/code/modules/economy/mint.dm
index db50578fe7..07bc1d22a7 100644
--- a/code/modules/economy/mint.dm
+++ b/code/modules/economy/mint.dm
@@ -1,210 +1,49 @@
/**********************Mint**************************/
/obj/machinery/mineral/mint
name = "Coin press"
+ desc = "A relatively crude hand-operated coin press that turns sheets (or ingots, as the case may be) of materials into fresh coins. They're probably not going to be considered legal tender in most polities, but you might fool a vending machine with one..?
It looks like it'll accept silver, gold, diamond, iron, solid phoron, and uranium."
icon = 'icons/obj/stationobjs.dmi'
icon_state = "coinpress0"
density = TRUE
anchored = TRUE
- var/obj/machinery/mineral/input = null
- var/obj/machinery/mineral/output = null
- var/amt_silver = 0 //amount of silver
- var/amt_gold = 0 //amount of gold
- var/amt_diamond = 0
- var/amt_iron = 0
- var/amt_phoron = 0
- var/amt_uranium = 0
- var/newCoins = 0 //how many coins the machine made in it's last load
- var/processing = 0
- var/chosen = MAT_STEEL //which material will be used to make coins
- var/coinsToProduce = 10
+ var/coinsToProduce = 6 //how many coins do we make per sheet? a sheet is 2000 units whilst a coin is 250, and some material should be lost in the process
+ var/list/validMats = list("silver", "gold", "diamond", "iron", "phoron", "uranium") //what's valid stuff to make coins out of?
-
-/obj/machinery/mineral/mint/Initialize()
- . = ..()
- for (var/dir in cardinal)
- input = locate(/obj/machinery/mineral/input, get_step(src, dir))
- if(input)
- break
- for (var/dir in cardinal)
- output = locate(/obj/machinery/mineral/output, get_step(src, dir))
- if(output)
- break
-
-/obj/machinery/mineral/mint/process()
- if(!input)
- return
-
- var/obj/item/stack/O = locate(/obj/item/stack, input.loc)
- if(!O)
- return
-
- var/processed = 1
- switch(O.get_material_name())
- if("gold")
- amt_gold += 100 * O.get_amount()
- if("silver")
- amt_silver += 100 * O.get_amount()
- if("diamond")
- amt_diamond += 100 * O.get_amount()
- if("phoron")
- amt_phoron += 100 * O.get_amount()
- if("uranium")
- amt_uranium += 100 * O.get_amount()
- if(MAT_STEEL)
- amt_iron += 100 * O.get_amount()
- else
- processed = 0
- if(processed)
- qdel(O)
-
-/obj/machinery/mineral/mint/attack_hand(user as mob)
-
- var/dat = "Coin Press
"
-
- if (!input)
- dat += text("input connection status: ")
- dat += text("NOT CONNECTED
")
- if (!output)
- dat += text("
output connection status: ")
- dat += text("NOT CONNECTED
")
-
- dat += text("
Gold inserted: [amt_gold] ")
- if (chosen == "gold")
- dat += text("chosen")
- else
- dat += text("Choose")
- dat += text("
Silver inserted: [amt_silver] ")
- if (chosen == "silver")
- dat += text("chosen")
- else
- dat += text("Choose")
- dat += text("
Iron inserted: [amt_iron] ")
- if (chosen == MAT_STEEL)
- dat += text("chosen")
- else
- dat += text("Choose")
- dat += text("
Diamond inserted: [amt_diamond] ")
- if (chosen == "diamond")
- dat += text("chosen")
- else
- dat += text("Choose")
- dat += text("
Phoron inserted: [amt_phoron] ")
- if (chosen == "phoron")
- dat += text("chosen")
- else
- dat += text("Choose")
- dat += text("
Uranium inserted: [amt_uranium] ")
- if (chosen == "uranium")
- dat += text("chosen")
- else
- dat += text("Choose")
-
- dat += text("
Will produce [coinsToProduce] [chosen] coins if enough materials are available.
")
- //dat += text("The dial which controls the number of conins to produce seems to be stuck. A technician has already been dispatched to fix this.")
- dat += text("-10 ")
- dat += text("-5 ")
- dat += text("-1 ")
- dat += text("+1 ")
- dat += text("+5 ")
- dat += text("+10 ")
-
- dat += text("
In total this machine produced [newCoins] coins.")
- dat += text("
Make coins")
- user << browse("[dat]", "window=mint")
-
-/obj/machinery/mineral/mint/Topic(href, href_list)
- if(..())
- return 1
- usr.set_machine(src)
- src.add_fingerprint(usr)
- if(processing==1)
- to_chat(usr, "The machine is processing.")
- return
- if(href_list["choose"])
- chosen = href_list["choose"]
- if(href_list["chooseAmt"])
- coinsToProduce = between(0, coinsToProduce + text2num(href_list["chooseAmt"]), 1000)
- if(href_list["makeCoins"])
- var/temp_coins = coinsToProduce
- if (src.output)
- processing = 1;
+/obj/machinery/mineral/mint/attackby(obj/item/stack/material/M as obj, mob/user as mob)
+ if(M.default_type in validMats)
+ user.visible_message("[user] starts to feed a sheet of [M.default_type] into \the [src].")
+ while(M.amount > 0)
icon_state = "coinpress1"
- var/obj/item/weapon/moneybag/M
- switch(chosen)
- if(MAT_STEEL)
- while(amt_iron > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new/obj/item/weapon/coin/iron(M)
- amt_iron -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- if("gold")
- while(amt_gold > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new /obj/item/weapon/coin/gold(M)
- amt_gold -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- if("silver")
- while(amt_silver > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new /obj/item/weapon/coin/silver(M)
- amt_silver -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- if("diamond")
- while(amt_diamond > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new /obj/item/weapon/coin/diamond(M)
- amt_diamond -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- if("phoron")
- while(amt_phoron > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new /obj/item/weapon/coin/phoron(M)
- amt_phoron -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5);
- if("uranium")
- while(amt_uranium > 0 && coinsToProduce > 0)
- if (locate(/obj/item/weapon/moneybag,output.loc))
- M = locate(/obj/item/weapon/moneybag,output.loc)
- else
- M = new/obj/item/weapon/moneybag(output.loc)
- new /obj/item/weapon/coin/uranium(M)
- amt_uranium -= 20
- coinsToProduce--
- newCoins++
- src.updateUsrDialog()
- sleep(5)
- icon_state = "coinpress0"
- processing = 0;
- coinsToProduce = temp_coins
- src.updateUsrDialog()
- return
\ No newline at end of file
+ if(do_after(user, 2 SECONDS, src))
+ M.amount--
+ if(M.default_type == "silver")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/silver(user.loc)
+ else if(M.default_type == "gold")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/gold(user.loc)
+ else if(M.default_type == "diamond")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/diamond(user.loc)
+ else if(M.default_type == "iron")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/iron(user.loc)
+ else if(M.default_type == "phoron")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/phoron(user.loc)
+ else if(M.default_type == "uranium")
+ while(coinsToProduce-- > 0)
+ new /obj/item/weapon/coin/uranium(user.loc)
+ src.visible_message("\The [src] rattles and dispenses several [M.default_type] coins!")
+ coinsToProduce = initial(coinsToProduce)
+ if(M.amount == 0)
+ icon_state = "coinpress0"
+ qdel(M) //clean it up just to be sure
+ src.visible_message("\The [src] has run out of usable materials.")
+ break
+ else
+ to_chat(usr,"\The [src] is hand-operated and requires your full attention!")
+ icon_state = "coinpress0"
+ break
+ else
+ src.visible_message("\The [src] doesn't look like it'll accept that material.")
\ No newline at end of file
From 6d33f7b04df34e8d37b470b51abf2ce5ecabbf3b Mon Sep 17 00:00:00 2001
From: SatinIsle
Date: Sun, 23 Jul 2023 20:02:45 +0100
Subject: [PATCH 02/63] Changed the new player notification sound to be less
intrusive.
This changes the sound that plays when a player connects for the first time or has a byond account made within the last two days. The new sound is a more subtle and pleasant ping, far less annoying and intrusive.
---
code/modules/client/client procs.dm | 2 +-
sound/effects/tones/newplayerping.ogg | Bin 0 -> 23487 bytes
2 files changed, 1 insertion(+), 1 deletion(-)
create mode 100644 sound/effects/tones/newplayerping.ogg
diff --git a/code/modules/client/client procs.dm b/code/modules/client/client procs.dm
index 8c624ff369..ed652ad8ea 100644
--- a/code/modules/client/client procs.dm
+++ b/code/modules/client/client procs.dm
@@ -263,7 +263,7 @@
if(alert)
for(var/client/X in GLOB.admins)
if(X.is_preference_enabled(/datum/client_preference/holder/play_adminhelp_ping))
- X << 'sound/voice/bcriminal.ogg'
+ X << 'sound/effects/tones/newplayerping.ogg'
window_flash(X)
//VOREStation Edit end.
diff --git a/sound/effects/tones/newplayerping.ogg b/sound/effects/tones/newplayerping.ogg
new file mode 100644
index 0000000000000000000000000000000000000000..a33a710de139e1ae417979aaa0c5cf2b59bb4c5a
GIT binary patch
literal 23487
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
literal 0
HcmV?d00001
From ae23208fe80c560d80eb3c309e64321a3b738db5 Mon Sep 17 00:00:00 2001
From: Heroman
Date: Mon, 24 Jul 2023 05:02:45 +1000
Subject: [PATCH 03/63] Map Swap
---
vorestation.dme | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/vorestation.dme b/vorestation.dme
index 4ba0ccfaf0..235f0aab5a 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -4230,7 +4230,6 @@
#include "maps\expedition_vr\beach\submaps\mountains.dm"
#include "maps\expedition_vr\beach\submaps\mountains_areas.dm"
#include "maps\gateway_archive_vr\blackmarketpackers.dm"
-#include "maps\groundbase\groundbase.dm"
#include "maps\southern_cross\items\clothing\sc_accessory.dm"
#include "maps\southern_cross\items\clothing\sc_suit.dm"
#include "maps\southern_cross\items\clothing\sc_under.dm"
@@ -4246,5 +4245,6 @@
#include "maps\submaps\space_submaps\debrisfield\debrisfield.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness.dm"
#include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm"
+#include "maps\tether\tether.dm"
#include "maps\~map_system\maps.dm"
// END_INCLUDE
From 0efd2090b7c62acc774010c8f939ff5485f30759 Mon Sep 17 00:00:00 2001
From: VerySoft
Date: Sun, 23 Jul 2023 15:03:47 -0400
Subject: [PATCH 04/63] Stardog
WIP!
---
.../mob/living/simple_mob/overmap_mob_vr.dm | 111 +-
.../animal/alien animals/spacewhale.dm | 43 -
.../subtypes/animal/alien animals/stardog.dm | 107 +
maps/offmap_vr/common_offmaps.dm | 6 +
maps/redgate/stardog.dmm | 19988 ++++++++++++++++
5 files changed, 20211 insertions(+), 44 deletions(-)
create mode 100644 code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
create mode 100644 maps/redgate/stardog.dmm
diff --git a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
index 8a998d48ea..e826410cc2 100644
--- a/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
+++ b/code/modules/mob/living/simple_mob/overmap_mob_vr.dm
@@ -84,10 +84,56 @@
name = "DONT SPAWN ME"
desc = "I'm a bad person I'm sorry"
+ maxHealth = 100000
+ health = 100000
+ movement_cooldown = 10
+
+ see_in_dark = 10
+
faction = "overmap"
low_priority = FALSE
devourable = FALSE
digestable = FALSE
+
+ harm_intent_damage = 1
+ melee_damage_lower = 50
+ melee_damage_upper = 100
+ attack_sharp = FALSE
+
+ 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
+
+ mob_size = MOB_HUGE
+
+ loot_list = list(/obj/random/underdark/uncertain)
+
+ armor = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000)
+
+ armor_soak = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000
+ )
+
var/scanner_desc
var/obj/effect/overmap/visitable/simplemob/child_om_marker
var/om_child_type
@@ -99,7 +145,7 @@
/mob/living/simple_mob/vore/overmap/Initialize()
. = ..()
- if(!om_child_type && !om_child_type)
+ if(!om_child_type)
log_and_message_admins("An improperly configured OM mob tried to spawn, and was deleted.")
return INITIALIZE_HINT_QDEL
if(!child_om_marker)
@@ -109,3 +155,66 @@
/mob/living/simple_mob/vore/overmap/Destroy()
qdel_null(child_om_marker)
return ..()
+
+//SHIP
+
+/obj/effect/overmap/visitable/ship/simplemob
+ name = "unknown ship"
+ icon = 'icons/obj/overmap.dmi'
+ icon_state = "ship"
+ scannable = TRUE
+ known = FALSE
+ in_space = FALSE //Just cuz we don't want people getting here via map edge transitions normally.
+ unknown_name = "unknown ship"
+ unknown_state = "ship"
+
+ var/mob/living/simple_mob/vore/overmap/parent_mob_type
+ var/mob/living/simple_mob/vore/overmap/parent
+
+/obj/effect/overmap/visitable/ship/simplemob/New(newloc, new_parent)
+ if(new_parent)
+ parent = new_parent
+ return ..()
+
+/obj/effect/overmap/visitable/ship/simplemob/Initialize()
+ . = ..()
+ if(!parent_mob_type && !parent)
+ log_and_message_admins("An improperly configured OM mob event tried to spawn, and was deleted.")
+ return INITIALIZE_HINT_QDEL
+ if(!parent)
+ var/mob/living/simple_mob/vore/overmap/P = new parent_mob_type(loc, src)
+ parent = P
+ om_mob_event_setup()
+
+/obj/effect/overmap/visitable/ship/simplemob/proc/om_mob_event_setup()
+ scanner_desc = parent.scanner_desc
+ RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(on_parent_moved))
+ skybox_pixel_x = rand(-100,100)
+ if(known)
+ name = initial(parent.name)
+ icon = initial(parent.icon)
+ icon_state = initial(parent.icon_state)
+ color = initial(parent.color)
+ desc = initial(parent.desc)
+
+/obj/effect/overmap/visitable/ship/simplemob/Destroy()
+ UnregisterSignal(parent, COMSIG_MOVABLE_MOVED)
+ qdel_null(parent)
+ return ..()
+
+/obj/effect/overmap/visitable/ship/simplemob/get_scan_data(mob/user)
+ if(!known)
+ known = TRUE
+ name = initial(parent.name)
+ icon = initial(parent.icon)
+ icon_state = initial(parent.icon_state)
+ color = initial(parent.color)
+ desc = initial(parent.desc)
+
+ var/dat = {"\[b\]Scan conducted at\[/b\]: [stationtime2text()] [stationdate2text()]\n\[b\]Grid coordinates\[/b\]: [x],[y]\n\n[scanner_desc]"}
+
+ return dat
+
+/obj/effect/overmap/visitable/ship/simplemob/proc/on_parent_moved(atom/movable/source, OldLoc, Dir, Forced)
+ forceMove(parent.loc)
+ set_dir(parent.dir)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
index 71402e113b..65bd18c973 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/spacewhale.dm
@@ -19,56 +19,13 @@
om_child_type = /obj/effect/overmap/visitable/simplemob/spacewhale
- maxHealth = 100000
- health = 100000
- movement_cooldown = 10
-
- see_in_dark = 10
-
response_help = "pets"
response_disarm = "gently pushes aside"
response_harm = "punches"
-
- harm_intent_damage = 1
- melee_damage_lower = 50
- melee_damage_upper = 100
- attack_sharp = FALSE
attacktext = list("chomped", "bashed", "monched", "bumped")
ai_holder_type = /datum/ai_holder/simple_mob/melee/spacewhale
- 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" = 1000,
- "bullet" = 1000,
- "laser" = 1000,
- "energy" = 1000,
- "bomb" = 1000,
- "bio" = 1000,
- "rad" = 1000)
-
- armor_soak = list(
- "melee" = 1000,
- "bullet" = 1000,
- "laser" = 1000,
- "energy" = 1000,
- "bomb" = 1000,
- "bio" = 1000,
- "rad" = 1000
- )
-
speak_emote = list("rumbles")
say_list_type = /datum/say_list/spacewhale
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
new file mode 100644
index 0000000000..1518703a1c
--- /dev/null
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
@@ -0,0 +1,107 @@
+/datum/category_item/catalogue/fauna/stardog
+ name = "Alien Wildlife - Star Dog"
+ desc = "I appears to be a canine of some sort, though absolutely massive in scale and surrounded in radical redspace energies!"
+ value = CATALOGUER_REWARD_SUPERHARD
+
+/mob/living/simple_mob/vore/overmap/stardog
+ name = "dog"
+ desc = "It is a relatively ordinary looking canine mutt! It radiates mischief and otherworldly energy..."
+ tt_desc = "E Canis lupus stellarus"
+
+ scanner_desc = "I appears to be a canine of some sort, though absolutely massive in scale and surrounded in radical redspace energies!"
+ catalogue_data = list(/datum/category_item/catalogue/fauna/stardog)
+
+ icon = 'icons/mob/vore.dmi'
+ icon_state = "woof"
+ icon_living = "woof"
+ icon_dead = "woof_dead"
+ icon_rest = "woof_rest"
+
+ om_child_type = /obj/effect/overmap/visitable/ship/simplemob/stardog
+
+ response_help = "pets"
+ response_disarm = "rudely paps"
+ response_harm = "punches"
+
+ attacktext = list("nipped", "chomped", "bullied", "gnaws on")
+ attack_sound = 'sound/voice/bork.ogg'
+ friendly = list("snoofs", "nuzzles", "ruffs happily at", "smooshes on")
+
+ ai_holder_type = /datum/ai_holder/simple_mob/woof/stardog
+
+ has_langs = list(LANGUAGE_ANIMAL, LANGUAGE_CANILUNZT, LANGUAGE_GALCOM)
+ say_list_type = /datum/say_list/softdog
+ swallowTime = 0.1 SECONDS
+
+ loot_list = list(/obj/random/underdark/uncertain)
+
+ armor = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000)
+
+ armor_soak = list(
+ "melee" = 1000,
+ "bullet" = 1000,
+ "laser" = 1000,
+ "energy" = 1000,
+ "bomb" = 1000,
+ "bio" = 1000,
+ "rad" = 1000
+ )
+
+ movement_cooldown = 0
+
+/mob/living/simple_mob/vore/overmap/stardog/Life()
+ . = ..()
+
+ if(istype(loc, /turf/unsimulated/map))
+ if(!invisibility)
+ invisibility = INVISIBILITY_ABSTRACT
+ child_om_marker.invisibility = 0
+ ai_holder.base_wander_delay = 50
+ ai_holder.wander_delay = 1
+ melee_damage_lower = 50
+ melee_damage_upper = 100
+ mob_size = MOB_HUGE
+ child_om_marker.set_light(5, 1, "#ff8df5")
+
+ else if(invisibility)
+ invisibility = 0
+ child_om_marker.invisibility = INVISIBILITY_ABSTRACT
+ ai_holder.base_wander_delay = 5
+ ai_holder.wander_delay = 1
+ melee_damage_lower = 1
+ melee_damage_upper = 5
+ mob_size = MOB_SMALL
+ child_om_marker.set_light(0)
+
+/mob/living/simple_mob/vore/overmap/stardog/Initialize()
+ . = ..()
+ child_om_marker.set_light(5, 1, "#ff8df5")
+
+/obj/effect/overmap/visitable/ship/simplemob/stardog
+ icon = 'icons/obj/overmap.dmi'
+ icon_state = "ship"
+ icon = 'icons/obj/overmap.dmi'
+ icon_state = "ship"
+ skybox_icon = 'icons/skybox/anomaly.dmi'
+ skybox_icon_state = "space_dog"
+ skybox_pixel_x = 0
+ skybox_pixel_y = 0
+ glide_size = 6
+ parent_mob_type = /mob/living/simple_mob/vore/overmap/stardog
+ scanner_desc = "CONFIGURE ME"
+
+/datum/ai_holder/simple_mob/woof/stardog
+ hostile = FALSE
+ cooperative = TRUE
+ retaliate = TRUE
+ speak_chance = 1
+ wander = TRUE
+ wander_delay = 1
+ base_wander_delay = 50
diff --git a/maps/offmap_vr/common_offmaps.dm b/maps/offmap_vr/common_offmaps.dm
index 69567512a2..bd4de63fec 100644
--- a/maps/offmap_vr/common_offmaps.dm
+++ b/maps/offmap_vr/common_offmaps.dm
@@ -285,6 +285,12 @@
desc = "This place seems broken!"
mappath = 'maps/redgate/darkadventure.dmm'
+/datum/map_template/common_lateload/redgate/stardog
+ name = "Star Dog"
+ desc = "That's a big dog!"
+ mappath = 'maps/redgate/stardog.dmm'
+
+
//////////////////////////////////////////////////////////////////////////////////////
// Admin-use z-levels for loading whenever an admin feels like
#if AWAY_MISSION_TEST
diff --git a/maps/redgate/stardog.dmm b/maps/redgate/stardog.dmm
new file mode 100644
index 0000000000..5ca670721d
--- /dev/null
+++ b/maps/redgate/stardog.dmm
@@ -0,0 +1,19988 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/obj/effect/fake_sun,
+/turf/unsimulated/wall/dark,
+/area/redgate/wilds)
+"d" = (
+/obj/effect/map_effect/portal/master/side_a{
+ portal_id = "stardog_north"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"f" = (
+/turf/simulated/floor/outdoors/grass/forest,
+/area/redgate/wilds)
+"g" = (
+/obj/effect/map_effect/portal/line/side_a{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"i" = (
+/obj/effect/overmap/visitable/ship/simplemob/stardog,
+/turf/unsimulated/wall/dark,
+/area/redgate/wilds)
+"j" = (
+/obj/effect/map_effect/portal/line/side_a{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"m" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 1;
+ portal_id = "stardog_north"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"o" = (
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"p" = (
+/turf/simulated/floor/flesh,
+/area/redgate/wilds)
+"t" = (
+/obj/structure/redgate/away,
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/structure/powered)
+"A" = (
+/obj/effect/map_effect/portal/line/side_b{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"B" = (
+/obj/effect/map_effect/portal/line/side_a,
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"C" = (
+/turf/unsimulated/wall/dark,
+/area/redgate/wilds)
+"F" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 8;
+ portal_id = "stardog_east"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"G" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 4;
+ portal_id = "stardog_east"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"I" = (
+/obj/machinery/computer/ship/navigation/telescreen,
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/structure/powered)
+"L" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 4;
+ portal_id = "stardog_west"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"M" = (
+/obj/effect/map_effect/portal/line/side_b{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"N" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 8;
+ portal_id = "stardog_west"
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+"R" = (
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/structure/powered)
+"U" = (
+/obj/effect/map_effect/portal/line/side_b{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/grass,
+/area/redgate/wilds)
+
+(1,1,1) = {"
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+g
+g
+g
+g
+L
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+M
+M
+M
+M
+G
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+i
+a
+"}
+(2,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(3,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(4,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(5,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(6,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(7,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(8,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(9,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(10,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(11,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(12,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(13,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(14,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(15,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(16,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(17,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(18,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(19,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(20,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(21,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(22,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(23,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(24,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(25,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(26,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(27,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(28,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(29,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(30,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(31,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(32,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(33,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(34,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(35,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(36,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(37,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(38,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(39,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(40,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(41,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(42,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(43,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(44,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(45,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(46,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(47,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(48,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(49,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(50,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(51,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(52,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(53,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(54,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(55,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(56,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(57,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(58,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(59,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(60,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(61,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(62,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(63,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(64,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(65,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+I
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(66,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(67,1,1) = {"
+d
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+m
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(68,1,1) = {"
+B
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+U
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(69,1,1) = {"
+B
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+t
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+U
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(70,1,1) = {"
+B
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+U
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(71,1,1) = {"
+B
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+U
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(72,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+R
+R
+R
+R
+R
+R
+R
+R
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(73,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(74,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(75,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(76,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(77,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(78,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(79,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(80,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(81,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(82,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(83,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(84,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(85,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(86,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(87,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(88,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(89,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(90,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(91,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(92,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(93,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(94,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(95,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(96,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(97,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(98,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(99,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(100,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(101,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(102,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(103,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(104,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(105,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(106,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(107,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(108,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(109,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(110,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(111,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(112,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(113,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(114,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(115,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(116,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(117,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(118,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(119,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(120,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(121,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(122,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(123,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(124,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(125,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(126,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(127,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(128,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(129,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(130,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(131,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(132,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(133,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(134,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(135,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(136,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(137,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+f
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(138,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+f
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(139,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+f
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+C
+"}
+(140,1,1) = {"
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+j
+j
+j
+j
+F
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+A
+A
+A
+A
+N
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+"}
From 0ab1b1bd8e2d1f50bf3ded76ad74dc370c661134 Mon Sep 17 00:00:00 2001
From: VerySoft
Date: Mon, 24 Jul 2023 03:05:40 -0400
Subject: [PATCH 05/63] peeb
---
.../subtypes/animal/alien animals/stardog.dm | 113 ++
icons/obj/fur_tree.dmi | Bin 0 -> 2098 bytes
icons/turf/fur.dmi | Bin 0 -> 7374 bytes
maps/redgate/stardog.dmm | 1632 +++++++++--------
vorestation.dme | 1 +
5 files changed, 1021 insertions(+), 725 deletions(-)
create mode 100644 icons/obj/fur_tree.dmi
create mode 100644 icons/turf/fur.dmi
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
index 1518703a1c..25dc53825a 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
@@ -55,6 +55,7 @@
)
movement_cooldown = 0
+ var/affinity = 0
/mob/living/simple_mob/vore/overmap/stardog/Life()
. = ..()
@@ -84,6 +85,12 @@
. = ..()
child_om_marker.set_light(5, 1, "#ff8df5")
+/mob/living/simple_mob/vore/overmap/stardog/Destroy()
+ for(var/turf/simulated/floor/outdoors/fur/f in world)
+ if(f.host_mob == src)
+ f.host_mob = null
+ ..()
+
/obj/effect/overmap/visitable/ship/simplemob/stardog
icon = 'icons/obj/overmap.dmi'
icon_state = "ship"
@@ -105,3 +112,109 @@
wander = TRUE
wander_delay = 1
base_wander_delay = 50
+
+/turf/simulated/floor/outdoors/fur
+ name = "fur"
+ desc = "Thick, silky fur!"
+ icon = 'icons/turf/fur.dmi'
+ icon_state = "fur0"
+ edge_blending_priority = 4
+ initial_flooring = /decl/flooring/fur
+ can_dig = FALSE
+ turf_layers = list()
+ var/tree_chance = 25
+ var/tree_color = null
+ var/mob/living/simple_mob/vore/overmap/stardog/host_mob
+
+/turf/simulated/floor/outdoors/fur/Entered(atom/movable/AM, atom/oldloc)
+ . = ..()
+ if(ishuman(AM))
+ var/mob/living/carbon/human/L = AM
+ L.fur_submerge()
+
+/turf/simulated/floor/outdoors/fur/Exited(atom/movable/AM, atom/new_loc)
+ . = ..()
+ if(ishuman(AM))
+ var/mob/living/carbon/human/L = AM
+ L.fur_submerge()
+
+/mob/living/carbon/human/proc/fur_submerge()
+ if(QDESTROYING(src))
+ return
+
+ remove_layer(MOB_WATER_LAYER)
+
+ if(!istype(loc,/turf/simulated/floor/outdoors/fur) || lying)
+ return
+
+ var/atom/A = loc
+ var/image/I = image(icon = 'icons/turf/fur.dmi', icon_state = "submerged", layer = BODY_LAYER+MOB_WATER_LAYER)
+ I.color = A.color
+ overlays_standing[MOB_WATER_LAYER] = I
+
+ apply_layer(MOB_WATER_LAYER)
+
+/turf/simulated/floor/outdoors/fur/woof
+ color = "#c69c85"
+ tree_color = "#eeb698"
+
+/turf/simulated/floor/outdoors/fur/Initialize()
+ . = ..()
+ if(tree_chance && prob(tree_chance) && !check_density())
+ var/obj/structure/flora/tree/fur/tree = new /obj/structure/flora/tree/fur(src)
+ if(tree_color)
+ tree.color = tree_color
+ else
+ tree.color = color
+
+/turf/simulated/floor/outdoors/fur/verb/pet()
+ set name = "Pet Fur"
+ set desc = "Pet the fur!"
+ set category = "IC"
+ set src in oview(1)
+
+ usr.visible_message("\The [usr] pets \the [src].")
+ if(host_mob)
+ host_mob.affinity ++
+ else
+ for(var/mob/living/simple_mob/vore/overmap/stardog/s in world)
+ host_mob = s
+ break
+
+/decl/flooring/fur
+ name = "fur"
+ desc = "Thick, silky fur!"
+ icon = 'icons/turf/fur.dmi'
+ icon_base = "fur"
+ has_base_range = 15
+
+ can_paint = TRUE
+
+ footstep_sounds = list()
+
+/obj/structure/flora/tree/fur
+ name = "tall fur"
+ desc = "Tall stalks of fur block your path! Someone needs a trim!"
+ icon = 'icons/obj/fur_tree.dmi'
+ icon_state = "tallfur1"
+ base_state = "tallfur"
+ opacity = TRUE
+ product = /obj/item/stack/material/fur
+ product_amount = 10
+ health = 100
+ max_health = 100
+ pixel_x = 0
+ pixel_y = 0
+ shake_animation_degrees = 2
+ sticks = FALSE
+
+/obj/structure/flora/tree/fur/choose_icon_state()
+ return "[base_state][rand(1, 2)]"
+
+/obj/structure/flora/tree/fur/die()
+ if(product && product_amount)
+ var/obj/item/stack/material/fur/F = new product(get_turf(src), product_amount)
+ F.color = color
+ F.update_icon()
+ visible_message("\The [src] is felled!")
+ qdel(src)
diff --git a/icons/obj/fur_tree.dmi b/icons/obj/fur_tree.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..5f6546a5f326e790c8397a32b9e3cd0428cb6cfd
GIT binary patch
literal 2098
zcmV-22+jA2P)lqX#KgnH!{p@T;o;%J!ouU@8{ySuyA*4Ee8*SWd5w6wI-)6>+{)VH^{
zxVX5rwY9OavCz=a(b3V;($dw{)w8p+uCA`l&CSlv&d<-!wzjsiva+nKtjfyD%gf8m
z%*?N^uc@i2$H&LX$;qv)t+24LsHmvM#>U9V$fTsCr>Cc?s;Z)*qMx6ioSdARnwpoF
zmz$fLmX?;7n3$83laY~;tE;P!kdTg!j;5xjjEsz>rKOFHjf#qjqobpXi;JP5p^1r!
zprD|Lh=`t^o`;8rot>SAhK7ZOg@lBJnVFe`gM)&Cf?(pvWB>pF0d!JMQvg8b*k%9#
z0Caj(Sad{Xb7OL8aCB*JZU6vyoKseCa&`CgQ*iP1i2|Cnv46$WV!kGbOXA7${`O#hF%=n41b=
zqboGRrBGSH)z1a&1OOjKCj~!Y3Y-7{1~*AWK~z|U&6j&yQfU;$_W~g>K|m}d5%5AH
zB?c&l7;-UU%FJ}s%xmBOL(JOy9N=iy%=|IWGn>PE_Pf_wKR|n_ME--qzZM)3Uf)mN
zdqe!B!=2gsJHXh6UjcjqcK!zh_(kWwe+&@6*8y(-7U1&$X!Vai2%I-y(;>k3O8^w$
z=j|cD8To);0N?_A3h<4$BEz|jd>C&Z0Q{<82=F7qWL|2|*>6Mj`50DKO>
z_YgpvpAqjb7!wl#FTn4n0wMvo^?Lzy9FKv1fK-?o&uPl
z9eSIvHYgJGY^@FO6RUj;2oVsT4C0AG#(*FnVUe&k9zgKP69gy2u%H770Z*sG4g@N5
zQCb)gkqB==-P;&WI6U#j`(y$
zr=d`2Y6??RQ*0s}#znZmnX904DiIFjQAQPzz)UhW8-1q!kQUT6Jw1)t*mIHRu~~2v
zafMJwiO-_5vE&S+3P@otJu~wnhS_NR8EYC`;?Zaf^NF-bIx&w})FezlGiesF7c(>I
zIYt$b!9q4Qmq=j#MKU(5BppbnvLe}38svMWc_b2Zsq6xy1myBqT*@q@Qb^CG6NwpC
zB9TbX&84uMSrJ*uEF(3ilB>~%RB9o!w1|9;fWphwVlKb9mRVR%WmCh-E@U#u6-y$e
zVh)+if=5a%FJ#sh^SR>c%K`zfUayxGlFzR!ZmeaHkxXU{D~tIe-jwy^mEWM4UtGaj
zh7vMs8;dLXyoSr`uU`>Rsn#~P*2^foEUgxcKv9aktx6f|Tbl}?in6SNV^O`hT6$SP
znQE-oQ>5ZIhVXZtwDZ2lm2f8K48S_$OO}&47LL*|$cJ$2BqpQ03ld5)FZ7
zkmonj0y+lhvPlvUZ{aCVURd-L#p6J72%yS6&lJygn5I^ofFxhIYp1yfWYYw2lEf@#
zrISn|`JB@sAPYR_DA^IpGf5W
z>8?A{BvyL|1?N3_Jh1-wq
zdc7&1g;%p)=N9de{E22p>dgZKd_Fwf+iTKg)o$yG=E2_H;h}sHUaB87F;-d4rs|&!
z@TDb3UylwC)#sGWoP13**Of+>w(%TUtkMY5(WRNe2!9ofF64
z)oGBP`1G8=+Hb-OIDgb2rwmj7
z)|KwrInK}FO6RQZw{8~~@?Cgcpv$dJU4weh&lqEv`u7XD_}--nn$kk|;^Or|yXjF5zKY$fzvyIfoCxExPigwe_i9w`oZ}2
c*uWe43pA%G7Yu#g=>Px#07*qoM6N<$g0*`ox&QzG
literal 0
HcmV?d00001
diff --git a/icons/turf/fur.dmi b/icons/turf/fur.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..0522e0417e804bd9ff07ac492f5f48d6f33851bc
GIT binary patch
literal 7374
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
literal 0
HcmV?d00001
diff --git a/maps/redgate/stardog.dmm b/maps/redgate/stardog.dmm
index 5ca670721d..248ec3b8aa 100644
--- a/maps/redgate/stardog.dmm
+++ b/maps/redgate/stardog.dmm
@@ -3,108 +3,290 @@
/obj/effect/fake_sun,
/turf/unsimulated/wall/dark,
/area/redgate/wilds)
+"b" = (
+/obj/structure/bed/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"c" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 8;
+ portal_id = "stardog_west"
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
+/area/redgate/wilds)
"d" = (
-/obj/effect/map_effect/portal/master/side_a{
- portal_id = "stardog_north"
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
},
-/turf/simulated/floor/outdoors/grass,
/area/redgate/wilds)
-"f" = (
-/turf/simulated/floor/outdoors/grass/forest,
-/area/redgate/wilds)
-"g" = (
-/obj/effect/map_effect/portal/line/side_a{
- dir = 4
+"e" = (
+/obj/machinery/door/airlock/glass{
+ name = "Redgate Lounge"
},
-/turf/simulated/floor/outdoors/grass,
-/area/redgate/wilds)
+/turf/simulated/floor/tiled/steel_ridged,
+/area/redgate/structure/powered)
+"h" = (
+/obj/structure/bed/chair/sofa/corp,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
"i" = (
/obj/effect/overmap/visitable/ship/simplemob/stardog,
/turf/unsimulated/wall/dark,
/area/redgate/wilds)
-"j" = (
-/obj/effect/map_effect/portal/line/side_a{
- dir = 8
- },
-/turf/simulated/floor/outdoors/grass,
-/area/redgate/wilds)
+"l" = (
+/obj/structure/bed/chair/sofa/corp/left,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
"m" = (
-/obj/effect/map_effect/portal/master/side_b{
- dir = 1;
- portal_id = "stardog_north"
+/obj/effect/map_effect/portal/line/side_a,
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
},
-/turf/simulated/floor/outdoors/grass,
/area/redgate/wilds)
+"n" = (
+/obj/machinery/light,
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
"o" = (
-/turf/simulated/floor/outdoors/grass,
+/turf/simulated/floor/outdoors/fur/woof,
/area/redgate/wilds)
"p" = (
/turf/simulated/floor/flesh,
/area/redgate/wilds)
-"t" = (
+"q" = (
+/obj/effect/floor_decal/spline/fancy{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"s" = (
/obj/structure/redgate/away,
-/turf/simulated/floor/outdoors/grass,
+/turf/simulated/floor/reinforced,
+/area/redgate/structure/powered)
+"t" = (
+/turf/simulated/floor/reinforced,
+/area/redgate/structure/powered)
+"u" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 4;
+ portal_id = "stardog_west"
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
+/area/redgate/wilds)
+"v" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_x = 32
+ },
+/obj/effect/floor_decal/spline/fancy{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"w" = (
+/obj/structure/bed/chair/sofa/corp{
+ dir = 1
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"x" = (
+/obj/structure/bed/chair/sofa/corp/left{
+ dir = 1
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"y" = (
+/obj/structure/bed/chair/sofa/corp/left,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"z" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_y = -32
+ },
+/obj/structure/bed/chair/sofa/corp/right{
+ dir = 1
+ },
+/turf/simulated/floor/lino,
/area/redgate/structure/powered)
"A" = (
/obj/effect/map_effect/portal/line/side_b{
dir = 8
},
-/turf/simulated/floor/outdoors/grass,
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
/area/redgate/wilds)
"B" = (
-/obj/effect/map_effect/portal/line/side_a,
-/turf/simulated/floor/outdoors/grass,
+/obj/effect/map_effect/portal/master/side_a{
+ portal_id = "stardog_north"
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
/area/redgate/wilds)
"C" = (
/turf/unsimulated/wall/dark,
/area/redgate/wilds)
-"F" = (
-/obj/effect/map_effect/portal/master/side_a{
- dir = 8;
- portal_id = "stardog_east"
+"D" = (
+/obj/effect/map_effect/portal/line/side_b{
+ dir = 1
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
+/area/redgate/wilds)
+"E" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_y = -32
+ },
+/obj/structure/bed/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"F" = (
+/obj/effect/map_effect/portal/line/side_a{
+ dir = 8
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
},
-/turf/simulated/floor/outdoors/grass,
/area/redgate/wilds)
"G" = (
+/turf/simulated/wall,
+/area/redgate/structure/powered)
+"H" = (
+/obj/random/vendorfood,
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"I" = (
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"J" = (
/obj/effect/map_effect/portal/master/side_b{
dir = 4;
portal_id = "stardog_east"
},
-/turf/simulated/floor/outdoors/grass,
-/area/redgate/wilds)
-"I" = (
-/obj/machinery/computer/ship/navigation/telescreen,
-/turf/simulated/floor/outdoors/grass,
-/area/redgate/structure/powered)
-"L" = (
-/obj/effect/map_effect/portal/master/side_a{
- dir = 4;
- portal_id = "stardog_west"
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
+/area/redgate/wilds)
+"K" = (
+/obj/effect/map_effect/portal/master/side_a{
+ dir = 8;
+ portal_id = "stardog_east"
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
+/area/redgate/wilds)
+"L" = (
+/obj/effect/map_effect/portal/line/side_a{
+ dir = 4
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
},
-/turf/simulated/floor/outdoors/grass,
/area/redgate/wilds)
"M" = (
/obj/effect/map_effect/portal/line/side_b{
dir = 4
},
-/turf/simulated/floor/outdoors/grass,
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
/area/redgate/wilds)
"N" = (
-/obj/effect/map_effect/portal/master/side_b{
- dir = 8;
- portal_id = "stardog_west"
- },
-/turf/simulated/floor/outdoors/grass,
-/area/redgate/wilds)
-"R" = (
-/turf/simulated/floor/outdoors/grass,
+/obj/structure/grille,
+/obj/structure/window/reinforced/full,
+/turf/simulated/floor,
/area/redgate/structure/powered)
-"U" = (
-/obj/effect/map_effect/portal/line/side_b{
+"O" = (
+/obj/structure/bed/chair/sofa/corp/right,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"P" = (
+/obj/structure/table/alien/blue,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"Q" = (
+/obj/structure/bed/chair/sofa/corp/right{
dir = 1
},
-/turf/simulated/floor/outdoors/grass,
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"R" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_y = 32
+ },
+/obj/structure/bed/chair/sofa/corp/left,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"S" = (
+/turf/simulated/floor/tiled/monotile,
+/area/redgate/structure/powered)
+"T" = (
+/obj/random/vendordrink,
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"U" = (
+/obj/effect/map_effect/portal/master/side_b{
+ dir = 1;
+ portal_id = "stardog_north"
+ },
+/turf/simulated/floor/outdoors/fur/woof{
+ tree_chance = 0
+ },
/area/redgate/wilds)
+"V" = (
+/obj/structure/bed/chair/sofa/corp/right,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"W" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_x = -32
+ },
+/obj/effect/floor_decal/spline/fancy{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
+"X" = (
+/obj/structure/bed/chair/sofa/corp/left{
+ dir = 1
+ },
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"Y" = (
+/obj/machinery/computer/ship/navigation/telescreen{
+ pixel_y = 32
+ },
+/obj/structure/bed/chair/sofa/corp/right,
+/turf/simulated/floor/lino,
+/area/redgate/structure/powered)
+"Z" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/simulated/floor/wood,
+/area/redgate/structure/powered)
(1,1,1) = {"
C
@@ -128,14 +310,13 @@ C
C
C
C
-g
-g
-g
-g
+C
+C
L
-C
-C
-C
+L
+L
+L
+u
C
C
C
@@ -186,7 +367,8 @@ M
M
M
M
-G
+J
+C
C
C
C
@@ -272,11 +454,11 @@ o
o
o
o
-o
-o
-o
-o
-o
+d
+d
+d
+d
+d
o
o
o
@@ -323,12 +505,11 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
+d
+d
+d
+d
+d
o
o
o
@@ -388,6 +569,7 @@ p
p
p
p
+p
C
"}
(3,1,1) = {"
@@ -492,7 +674,6 @@ o
o
o
o
-o
C
p
p
@@ -530,6 +711,7 @@ p
p
p
p
+p
C
"}
(4,1,1) = {"
@@ -634,7 +816,6 @@ o
o
o
o
-o
C
p
p
@@ -672,6 +853,7 @@ p
p
p
p
+p
C
"}
(5,1,1) = {"
@@ -776,7 +958,6 @@ o
o
o
o
-o
C
p
p
@@ -814,6 +995,7 @@ p
p
p
p
+p
C
"}
(6,1,1) = {"
@@ -918,7 +1100,6 @@ o
o
o
o
-o
C
p
p
@@ -956,6 +1137,7 @@ p
p
p
p
+p
C
"}
(7,1,1) = {"
@@ -1060,7 +1242,6 @@ o
o
o
o
-o
C
p
p
@@ -1098,6 +1279,7 @@ p
p
p
p
+p
C
"}
(8,1,1) = {"
@@ -1202,7 +1384,6 @@ o
o
o
o
-o
C
p
p
@@ -1240,6 +1421,7 @@ p
p
p
p
+p
C
"}
(9,1,1) = {"
@@ -1344,7 +1526,6 @@ o
o
o
o
-o
C
p
p
@@ -1382,6 +1563,7 @@ p
p
p
p
+p
C
"}
(10,1,1) = {"
@@ -1486,7 +1668,6 @@ o
o
o
o
-o
C
p
p
@@ -1524,6 +1705,7 @@ p
p
p
p
+p
C
"}
(11,1,1) = {"
@@ -1628,7 +1810,6 @@ o
o
o
o
-o
C
p
p
@@ -1666,6 +1847,7 @@ p
p
p
p
+p
C
"}
(12,1,1) = {"
@@ -1770,7 +1952,6 @@ o
o
o
o
-o
C
p
p
@@ -1808,6 +1989,7 @@ p
p
p
p
+p
C
"}
(13,1,1) = {"
@@ -1912,7 +2094,6 @@ o
o
o
o
-o
C
p
p
@@ -1950,6 +2131,7 @@ p
p
p
p
+p
C
"}
(14,1,1) = {"
@@ -2054,7 +2236,6 @@ o
o
o
o
-o
C
p
p
@@ -2092,6 +2273,7 @@ p
p
p
p
+p
C
"}
(15,1,1) = {"
@@ -2196,7 +2378,6 @@ o
o
o
o
-o
C
p
p
@@ -2234,6 +2415,7 @@ p
p
p
p
+p
C
"}
(16,1,1) = {"
@@ -2338,7 +2520,6 @@ o
o
o
o
-o
C
p
p
@@ -2376,6 +2557,7 @@ p
p
p
p
+p
C
"}
(17,1,1) = {"
@@ -2480,7 +2662,6 @@ o
o
o
o
-o
C
p
p
@@ -2518,6 +2699,7 @@ p
p
p
p
+p
C
"}
(18,1,1) = {"
@@ -2622,7 +2804,6 @@ o
o
o
o
-o
C
p
p
@@ -2660,6 +2841,7 @@ p
p
p
p
+p
C
"}
(19,1,1) = {"
@@ -2764,7 +2946,6 @@ o
o
o
o
-o
C
p
p
@@ -2802,6 +2983,7 @@ p
p
p
p
+p
C
"}
(20,1,1) = {"
@@ -2906,7 +3088,6 @@ o
o
o
o
-o
C
p
p
@@ -2944,6 +3125,7 @@ p
p
p
p
+p
C
"}
(21,1,1) = {"
@@ -3048,7 +3230,6 @@ o
o
o
o
-o
C
p
p
@@ -3086,6 +3267,7 @@ p
p
p
p
+p
C
"}
(22,1,1) = {"
@@ -3190,7 +3372,6 @@ o
o
o
o
-o
C
p
p
@@ -3228,6 +3409,7 @@ p
p
p
p
+p
C
"}
(23,1,1) = {"
@@ -3332,7 +3514,6 @@ o
o
o
o
-o
C
p
p
@@ -3370,6 +3551,7 @@ p
p
p
p
+p
C
"}
(24,1,1) = {"
@@ -3474,7 +3656,6 @@ o
o
o
o
-o
C
p
p
@@ -3512,6 +3693,7 @@ p
p
p
p
+p
C
"}
(25,1,1) = {"
@@ -3616,7 +3798,6 @@ o
o
o
o
-o
C
p
p
@@ -3654,6 +3835,7 @@ p
p
p
p
+p
C
"}
(26,1,1) = {"
@@ -3758,7 +3940,6 @@ o
o
o
o
-o
C
p
p
@@ -3796,6 +3977,7 @@ p
p
p
p
+p
C
"}
(27,1,1) = {"
@@ -3900,7 +4082,6 @@ o
o
o
o
-o
C
p
p
@@ -3938,6 +4119,7 @@ p
p
p
p
+p
C
"}
(28,1,1) = {"
@@ -4042,7 +4224,6 @@ o
o
o
o
-o
C
p
p
@@ -4080,6 +4261,7 @@ p
p
p
p
+p
C
"}
(29,1,1) = {"
@@ -4184,7 +4366,6 @@ o
o
o
o
-o
C
p
p
@@ -4222,6 +4403,7 @@ p
p
p
p
+p
C
"}
(30,1,1) = {"
@@ -4326,7 +4508,6 @@ o
o
o
o
-o
C
p
p
@@ -4364,6 +4545,7 @@ p
p
p
p
+p
C
"}
(31,1,1) = {"
@@ -4468,7 +4650,6 @@ o
o
o
o
-o
C
p
p
@@ -4506,6 +4687,7 @@ p
p
p
p
+p
C
"}
(32,1,1) = {"
@@ -4610,7 +4792,6 @@ o
o
o
o
-o
C
p
p
@@ -4648,6 +4829,7 @@ p
p
p
p
+p
C
"}
(33,1,1) = {"
@@ -4752,7 +4934,6 @@ o
o
o
o
-o
C
p
p
@@ -4790,6 +4971,7 @@ p
p
p
p
+p
C
"}
(34,1,1) = {"
@@ -4894,7 +5076,6 @@ o
o
o
o
-o
C
p
p
@@ -4932,6 +5113,7 @@ p
p
p
p
+p
C
"}
(35,1,1) = {"
@@ -5036,7 +5218,6 @@ o
o
o
o
-o
C
p
p
@@ -5074,6 +5255,7 @@ p
p
p
p
+p
C
"}
(36,1,1) = {"
@@ -5178,7 +5360,6 @@ o
o
o
o
-o
C
p
p
@@ -5216,6 +5397,7 @@ p
p
p
p
+p
C
"}
(37,1,1) = {"
@@ -5320,7 +5502,6 @@ o
o
o
o
-o
C
p
p
@@ -5358,6 +5539,7 @@ p
p
p
p
+p
C
"}
(38,1,1) = {"
@@ -5462,7 +5644,6 @@ o
o
o
o
-o
C
p
p
@@ -5500,6 +5681,7 @@ p
p
p
p
+p
C
"}
(39,1,1) = {"
@@ -5604,7 +5786,6 @@ o
o
o
o
-o
C
p
p
@@ -5642,6 +5823,7 @@ p
p
p
p
+p
C
"}
(40,1,1) = {"
@@ -5746,7 +5928,6 @@ o
o
o
o
-o
C
p
p
@@ -5784,6 +5965,7 @@ p
p
p
p
+p
C
"}
(41,1,1) = {"
@@ -5888,7 +6070,6 @@ o
o
o
o
-o
C
p
p
@@ -5926,6 +6107,7 @@ p
p
p
p
+p
C
"}
(42,1,1) = {"
@@ -6030,7 +6212,6 @@ o
o
o
o
-o
C
p
p
@@ -6068,6 +6249,7 @@ p
p
p
p
+p
C
"}
(43,1,1) = {"
@@ -6172,7 +6354,6 @@ o
o
o
o
-o
C
p
p
@@ -6210,6 +6391,7 @@ p
p
p
p
+p
C
"}
(44,1,1) = {"
@@ -6314,7 +6496,6 @@ o
o
o
o
-o
C
p
p
@@ -6352,6 +6533,7 @@ p
p
p
p
+p
C
"}
(45,1,1) = {"
@@ -6456,7 +6638,6 @@ o
o
o
o
-o
C
p
p
@@ -6494,6 +6675,7 @@ p
p
p
p
+p
C
"}
(46,1,1) = {"
@@ -6598,7 +6780,6 @@ o
o
o
o
-o
C
p
p
@@ -6636,6 +6817,7 @@ p
p
p
p
+p
C
"}
(47,1,1) = {"
@@ -6740,7 +6922,6 @@ o
o
o
o
-o
C
p
p
@@ -6778,6 +6959,7 @@ p
p
p
p
+p
C
"}
(48,1,1) = {"
@@ -6882,7 +7064,6 @@ o
o
o
o
-o
C
p
p
@@ -6920,6 +7101,7 @@ p
p
p
p
+p
C
"}
(49,1,1) = {"
@@ -7024,7 +7206,6 @@ o
o
o
o
-o
C
p
p
@@ -7062,6 +7243,7 @@ p
p
p
p
+p
C
"}
(50,1,1) = {"
@@ -7166,7 +7348,6 @@ o
o
o
o
-o
C
p
p
@@ -7204,6 +7385,7 @@ p
p
p
p
+p
C
"}
(51,1,1) = {"
@@ -7259,57 +7441,57 @@ o
o
C
C
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+p
p
p
p
@@ -7401,57 +7583,57 @@ o
o
C
C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
p
p
p
@@ -8500,19 +8682,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
o
o
o
@@ -8642,19 +8824,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+G
+G
+N
+N
+G
+G
+G
+N
+N
+G
+G
+d
o
o
o
@@ -8784,19 +8966,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+N
+O
+P
+P
+Q
+W
+O
+P
+P
+Q
+N
+d
o
o
o
@@ -8925,21 +9107,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+d
+N
+h
+P
+P
+w
+q
+h
+P
+P
+w
+N
+d
+d
o
o
o
@@ -9067,21 +9249,21 @@ o
o
o
o
-o
-o
-o
+d
+G
+G
R
-R
-R
-R
-R
-R
-R
-R
-o
-o
-o
-o
+P
+P
+X
+q
+l
+P
+P
+E
+G
+G
+d
o
o
o
@@ -9209,21 +9391,21 @@ o
o
o
o
-o
-o
-o
-R
-R
-R
+d
+G
+H
I
-R
-R
-R
-R
-o
-o
-o
-o
+I
+I
+I
+I
+I
+I
+I
+I
+T
+G
+d
o
o
o
@@ -9351,21 +9533,21 @@ o
o
o
o
-o
-o
-o
-R
-R
-R
-R
-R
-R
-R
-R
-o
-o
-o
-o
+d
+N
+I
+I
+I
+S
+S
+t
+S
+S
+q
+I
+I
+N
+d
o
o
o
@@ -9479,6 +9661,34 @@ p
C
"}
(67,1,1) = {"
+C
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+o
+d
+N
+I
+I
+I
+t
+S
+S
+S
+t
+q
+I
+I
+N
d
o
o
@@ -9496,40 +9706,12 @@ o
o
o
o
-R
-R
-R
-R
-R
-R
-R
-R
o
o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-m
+C
C
p
p
@@ -9622,6 +9804,7 @@ C
"}
(68,1,1) = {"
B
+d
o
o
o
@@ -9634,23 +9817,21 @@ o
o
o
o
-o
-o
-o
-o
-R
-R
-R
-R
-R
-R
-R
-R
-o
-o
-o
-o
-o
+d
+G
+I
+I
+I
+S
+S
+t
+S
+S
+q
+I
+I
+G
+d
o
o
o
@@ -9671,6 +9852,7 @@ o
o
o
o
+d
U
C
p
@@ -9763,7 +9945,8 @@ p
C
"}
(69,1,1) = {"
-B
+m
+d
o
o
o
@@ -9776,18 +9959,21 @@ o
o
o
o
-o
-o
-o
-o
-R
-R
-R
-R
-R
+d
+e
+I
+I
+I
+S
t
-R
-R
+t
+t
+S
+q
+I
+I
+e
+d
o
o
o
@@ -9808,12 +9994,8 @@ o
o
o
o
-o
-o
-o
-o
-o
-U
+d
+D
C
p
p
@@ -9905,7 +10087,8 @@ p
C
"}
(70,1,1) = {"
-B
+m
+d
o
o
o
@@ -9918,18 +10101,21 @@ o
o
o
o
-o
-o
-o
-o
-R
-R
-R
-R
-R
-R
-R
-R
+d
+G
+Z
+I
+I
+t
+t
+s
+t
+t
+q
+I
+n
+G
+d
o
o
o
@@ -9950,12 +10136,8 @@ o
o
o
o
-o
-o
-o
-o
-o
-U
+d
+D
C
p
p
@@ -10047,7 +10229,8 @@ p
C
"}
(71,1,1) = {"
-B
+m
+d
o
o
o
@@ -10060,18 +10243,21 @@ o
o
o
o
-o
-o
-o
-o
-R
-R
-R
-R
-R
-R
-R
-R
+d
+e
+I
+I
+I
+S
+t
+t
+t
+S
+q
+I
+I
+e
+d
o
o
o
@@ -10092,12 +10278,8 @@ o
o
o
o
-o
-o
-o
-o
-o
-U
+d
+D
C
p
p
@@ -10189,7 +10371,8 @@ p
C
"}
(72,1,1) = {"
-C
+m
+d
o
o
o
@@ -10202,18 +10385,21 @@ o
o
o
o
-o
-o
-o
-o
-R
-R
-R
-R
-R
-R
-R
-R
+d
+G
+I
+I
+I
+S
+S
+t
+S
+S
+q
+I
+I
+G
+d
o
o
o
@@ -10234,12 +10420,8 @@ o
o
o
o
-o
-o
-o
-o
-o
-C
+d
+D
C
p
p
@@ -10345,21 +10527,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+N
+I
+I
+I
+t
+S
+S
+S
+t
+q
+I
+I
+N
+d
o
o
o
@@ -10487,21 +10669,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+N
+I
+I
+I
+S
+S
+t
+S
+S
+q
+I
+I
+N
+d
o
o
o
@@ -10629,21 +10811,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+G
+T
+I
+I
+I
+I
+I
+I
+I
+I
+I
+H
+G
+d
o
o
o
@@ -10771,21 +10953,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+G
+G
+Y
+P
+P
+b
+q
+V
+P
+P
+z
+G
+G
+d
o
o
o
@@ -10913,21 +11095,21 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+d
+N
+h
+P
+P
+w
+q
+h
+P
+P
+w
+N
+d
+d
o
o
o
@@ -11056,19 +11238,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+N
+y
+P
+P
+x
+v
+y
+P
+P
+x
+N
+d
o
o
o
@@ -11198,19 +11380,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+G
+G
+N
+N
+G
+G
+G
+N
+N
+G
+G
+d
o
o
o
@@ -11340,19 +11522,19 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
+d
o
o
o
@@ -12655,57 +12837,57 @@ o
o
C
C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
+p
p
p
p
@@ -12797,57 +12979,57 @@ o
o
C
C
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
-o
C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+C
+p
p
p
p
@@ -12988,7 +13170,6 @@ o
o
o
o
-o
C
p
p
@@ -13026,6 +13207,7 @@ p
p
p
p
+p
C
"}
(92,1,1) = {"
@@ -13130,7 +13312,6 @@ o
o
o
o
-o
C
p
p
@@ -13168,6 +13349,7 @@ p
p
p
p
+p
C
"}
(93,1,1) = {"
@@ -13272,7 +13454,6 @@ o
o
o
o
-o
C
p
p
@@ -13310,6 +13491,7 @@ p
p
p
p
+p
C
"}
(94,1,1) = {"
@@ -13414,7 +13596,6 @@ o
o
o
o
-o
C
p
p
@@ -13452,6 +13633,7 @@ p
p
p
p
+p
C
"}
(95,1,1) = {"
@@ -13556,7 +13738,6 @@ o
o
o
o
-o
C
p
p
@@ -13594,6 +13775,7 @@ p
p
p
p
+p
C
"}
(96,1,1) = {"
@@ -13698,7 +13880,6 @@ o
o
o
o
-o
C
p
p
@@ -13736,6 +13917,7 @@ p
p
p
p
+p
C
"}
(97,1,1) = {"
@@ -13840,7 +14022,6 @@ o
o
o
o
-o
C
p
p
@@ -13878,6 +14059,7 @@ p
p
p
p
+p
C
"}
(98,1,1) = {"
@@ -13982,7 +14164,6 @@ o
o
o
o
-o
C
p
p
@@ -14020,6 +14201,7 @@ p
p
p
p
+p
C
"}
(99,1,1) = {"
@@ -14124,7 +14306,6 @@ o
o
o
o
-o
C
p
p
@@ -14162,6 +14343,7 @@ p
p
p
p
+p
C
"}
(100,1,1) = {"
@@ -14266,7 +14448,6 @@ o
o
o
o
-o
C
p
p
@@ -14304,6 +14485,7 @@ p
p
p
p
+p
C
"}
(101,1,1) = {"
@@ -14408,7 +14590,6 @@ o
o
o
o
-o
C
p
p
@@ -14446,6 +14627,7 @@ p
p
p
p
+p
C
"}
(102,1,1) = {"
@@ -14550,7 +14732,6 @@ o
o
o
o
-o
C
p
p
@@ -14588,6 +14769,7 @@ p
p
p
p
+p
C
"}
(103,1,1) = {"
@@ -14692,7 +14874,6 @@ o
o
o
o
-o
C
p
p
@@ -14730,6 +14911,7 @@ p
p
p
p
+p
C
"}
(104,1,1) = {"
@@ -14834,7 +15016,6 @@ o
o
o
o
-o
C
p
p
@@ -14872,6 +15053,7 @@ p
p
p
p
+p
C
"}
(105,1,1) = {"
@@ -14976,7 +15158,6 @@ o
o
o
o
-o
C
p
p
@@ -15014,6 +15195,7 @@ p
p
p
p
+p
C
"}
(106,1,1) = {"
@@ -15118,7 +15300,6 @@ o
o
o
o
-o
C
p
p
@@ -15156,6 +15337,7 @@ p
p
p
p
+p
C
"}
(107,1,1) = {"
@@ -15260,7 +15442,6 @@ o
o
o
o
-o
C
p
p
@@ -15298,6 +15479,7 @@ p
p
p
p
+p
C
"}
(108,1,1) = {"
@@ -15402,7 +15584,6 @@ o
o
o
o
-o
C
p
p
@@ -15440,6 +15621,7 @@ p
p
p
p
+p
C
"}
(109,1,1) = {"
@@ -15544,7 +15726,6 @@ o
o
o
o
-o
C
p
p
@@ -15582,6 +15763,7 @@ p
p
p
p
+p
C
"}
(110,1,1) = {"
@@ -15686,7 +15868,6 @@ o
o
o
o
-o
C
p
p
@@ -15724,6 +15905,7 @@ p
p
p
p
+p
C
"}
(111,1,1) = {"
@@ -15828,7 +16010,6 @@ o
o
o
o
-o
C
p
p
@@ -15866,6 +16047,7 @@ p
p
p
p
+p
C
"}
(112,1,1) = {"
@@ -15970,7 +16152,6 @@ o
o
o
o
-o
C
p
p
@@ -16008,6 +16189,7 @@ p
p
p
p
+p
C
"}
(113,1,1) = {"
@@ -16112,7 +16294,6 @@ o
o
o
o
-o
C
p
p
@@ -16150,6 +16331,7 @@ p
p
p
p
+p
C
"}
(114,1,1) = {"
@@ -16254,7 +16436,6 @@ o
o
o
o
-o
C
p
p
@@ -16292,6 +16473,7 @@ p
p
p
p
+p
C
"}
(115,1,1) = {"
@@ -16396,7 +16578,6 @@ o
o
o
o
-o
C
p
p
@@ -16434,6 +16615,7 @@ p
p
p
p
+p
C
"}
(116,1,1) = {"
@@ -16538,7 +16720,6 @@ o
o
o
o
-o
C
p
p
@@ -16576,6 +16757,7 @@ p
p
p
p
+p
C
"}
(117,1,1) = {"
@@ -16680,7 +16862,6 @@ o
o
o
o
-o
C
p
p
@@ -16718,6 +16899,7 @@ p
p
p
p
+p
C
"}
(118,1,1) = {"
@@ -16822,7 +17004,6 @@ o
o
o
o
-o
C
p
p
@@ -16860,6 +17041,7 @@ p
p
p
p
+p
C
"}
(119,1,1) = {"
@@ -16964,7 +17146,6 @@ o
o
o
o
-o
C
p
p
@@ -17002,6 +17183,7 @@ p
p
p
p
+p
C
"}
(120,1,1) = {"
@@ -17106,7 +17288,6 @@ o
o
o
o
-o
C
p
p
@@ -17144,6 +17325,7 @@ p
p
p
p
+p
C
"}
(121,1,1) = {"
@@ -17248,7 +17430,6 @@ o
o
o
o
-o
C
p
p
@@ -17286,6 +17467,7 @@ p
p
p
p
+p
C
"}
(122,1,1) = {"
@@ -17390,7 +17572,6 @@ o
o
o
o
-o
C
p
p
@@ -17428,6 +17609,7 @@ p
p
p
p
+p
C
"}
(123,1,1) = {"
@@ -17532,7 +17714,6 @@ o
o
o
o
-o
C
p
p
@@ -17570,6 +17751,7 @@ p
p
p
p
+p
C
"}
(124,1,1) = {"
@@ -17674,7 +17856,6 @@ o
o
o
o
-o
C
p
p
@@ -17712,6 +17893,7 @@ p
p
p
p
+p
C
"}
(125,1,1) = {"
@@ -17816,7 +17998,6 @@ o
o
o
o
-o
C
p
p
@@ -17854,6 +18035,7 @@ p
p
p
p
+p
C
"}
(126,1,1) = {"
@@ -17958,7 +18140,6 @@ o
o
o
o
-o
C
p
p
@@ -17996,6 +18177,7 @@ p
p
p
p
+p
C
"}
(127,1,1) = {"
@@ -18100,7 +18282,6 @@ o
o
o
o
-o
C
p
p
@@ -18138,6 +18319,7 @@ p
p
p
p
+p
C
"}
(128,1,1) = {"
@@ -18242,7 +18424,6 @@ o
o
o
o
-o
C
p
p
@@ -18280,6 +18461,7 @@ p
p
p
p
+p
C
"}
(129,1,1) = {"
@@ -18384,7 +18566,6 @@ o
o
o
o
-o
C
p
p
@@ -18422,6 +18603,7 @@ p
p
p
p
+p
C
"}
(130,1,1) = {"
@@ -18526,7 +18708,6 @@ o
o
o
o
-o
C
p
p
@@ -18564,6 +18745,7 @@ p
p
p
p
+p
C
"}
(131,1,1) = {"
@@ -18668,7 +18850,6 @@ o
o
o
o
-o
C
p
p
@@ -18706,6 +18887,7 @@ p
p
p
p
+p
C
"}
(132,1,1) = {"
@@ -18810,7 +18992,6 @@ o
o
o
o
-o
C
p
p
@@ -18848,6 +19029,7 @@ p
p
p
p
+p
C
"}
(133,1,1) = {"
@@ -18952,7 +19134,6 @@ o
o
o
o
-o
C
p
p
@@ -18990,6 +19171,7 @@ p
p
p
p
+p
C
"}
(134,1,1) = {"
@@ -19094,7 +19276,6 @@ o
o
o
o
-o
C
p
p
@@ -19132,6 +19313,7 @@ p
p
p
p
+p
C
"}
(135,1,1) = {"
@@ -19236,7 +19418,6 @@ o
o
o
o
-o
C
p
p
@@ -19274,6 +19455,7 @@ p
p
p
p
+p
C
"}
(136,1,1) = {"
@@ -19378,7 +19560,6 @@ o
o
o
o
-o
C
p
p
@@ -19416,6 +19597,7 @@ p
p
p
p
+p
C
"}
(137,1,1) = {"
@@ -19442,7 +19624,7 @@ o
o
o
o
-f
+o
o
o
o
@@ -19520,7 +19702,6 @@ o
o
o
o
-o
C
p
p
@@ -19558,6 +19739,7 @@ p
p
p
p
+p
C
"}
(138,1,1) = {"
@@ -19584,7 +19766,7 @@ o
o
o
o
-f
+o
o
o
o
@@ -19662,7 +19844,6 @@ o
o
o
o
-o
C
p
p
@@ -19700,6 +19881,7 @@ p
p
p
p
+p
C
"}
(139,1,1) = {"
@@ -19726,11 +19908,11 @@ o
o
o
o
-f
-o
-o
-o
-o
+d
+d
+d
+d
+d
o
o
o
@@ -19777,12 +19959,11 @@ o
o
o
o
-o
-o
-o
-o
-o
-o
+d
+d
+d
+d
+d
o
o
o
@@ -19842,6 +20023,7 @@ p
p
p
p
+p
C
"}
(140,1,1) = {"
@@ -19866,14 +20048,13 @@ C
C
C
C
-j
-j
-j
-j
+C
+C
F
-C
-C
-C
+F
+F
+F
+K
C
C
C
@@ -19924,7 +20105,8 @@ A
A
A
A
-N
+c
+C
C
C
C
diff --git a/vorestation.dme b/vorestation.dme
index 4ba0ccfaf0..f8018e9fa7 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -3061,6 +3061,7 @@
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\space_mouse.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\spacewhale.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\stardog.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\succlet.dm"
#include "code\modules\mob\living\simple_mob\subtypes\animal\alien animals\teppi.dm"
From 8353c12ff85ede338a79447d7ebde4f455777e51 Mon Sep 17 00:00:00 2001
From: VerySoft
Date: Mon, 24 Jul 2023 05:04:06 -0400
Subject: [PATCH 06/63] yeah
---
.../subtypes/animal/alien animals/stardog.dm | 50 +-
maps/redgate/stardog.dmm | 521 +++++++++---------
2 files changed, 298 insertions(+), 273 deletions(-)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
index 25dc53825a..29af3bf009 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
@@ -85,12 +85,6 @@
. = ..()
child_om_marker.set_light(5, 1, "#ff8df5")
-/mob/living/simple_mob/vore/overmap/stardog/Destroy()
- for(var/turf/simulated/floor/outdoors/fur/f in world)
- if(f.host_mob == src)
- f.host_mob = null
- ..()
-
/obj/effect/overmap/visitable/ship/simplemob/stardog
icon = 'icons/obj/overmap.dmi'
icon_state = "ship"
@@ -124,7 +118,6 @@
turf_layers = list()
var/tree_chance = 25
var/tree_color = null
- var/mob/living/simple_mob/vore/overmap/stardog/host_mob
/turf/simulated/floor/outdoors/fur/Entered(atom/movable/AM, atom/oldloc)
. = ..()
@@ -173,13 +166,14 @@
set category = "IC"
set src in oview(1)
- usr.visible_message("\The [usr] pets \the [src].")
- if(host_mob)
- host_mob.affinity ++
- else
- for(var/mob/living/simple_mob/vore/overmap/stardog/s in world)
- host_mob = s
- break
+ usr.visible_message("\The [usr] pets \the [src].", "You pet \the [src].", runemessage = "pet pat...")
+ var/obj/effect/overmap/visitable/ship/simplemob/stardog/s = get_overmap_sector(z)
+
+ if(s && istype(s, /obj/effect/overmap/visitable/ship/simplemob/stardog))
+ var/mob/living/simple_mob/vore/overmap/stardog/m = s.parent
+ m.affinity ++
+ if(m.affinity >= 10 && prob(5))
+ m.visible_message("\The [m]'s tail wags happily!")
/decl/flooring/fur
name = "fur"
@@ -207,6 +201,9 @@
pixel_y = 0
shake_animation_degrees = 2
sticks = FALSE
+ var/mob_chance = 5
+ var/list/mob_list = list()
+
/obj/structure/flora/tree/fur/choose_icon_state()
return "[base_state][rand(1, 2)]"
@@ -217,4 +214,29 @@
F.color = color
F.update_icon()
visible_message("\The [src] is felled!")
+ if(prob(mob_chance))
+ var/ourmob = pickweight(mob_list)
+ var/mob/living/simple_mob/s = new ourmob(get_turf(src))
+ s.ai_holder.hostile = FALSE
+ s.ai_holder.retaliate = TRUE
+
qdel(src)
+
+/area/redgate/stardog
+ name = "flesh abyss"
+ icon_state = "redblatri"
+
+/area/redgate/stardog/lounge
+ name = "redgate lounge"
+ icon_state = "redwhisqu"
+ requires_power = 0
+
+/area/redgate/stardog/outside
+ name = "star dog"
+ icon_state = "redblacir"
+ semirandom = TRUE
+ valid_mobs = list(list(/mob/living/simple_mob/vore/woof))
+ semirandom_groups = 5
+ semirandom_group_min = 1
+ semirandom_group_max = 10
+ mob_intent = "retaliate"
diff --git a/maps/redgate/stardog.dmm b/maps/redgate/stardog.dmm
index 248ec3b8aa..02d2d9d648 100644
--- a/maps/redgate/stardog.dmm
+++ b/maps/redgate/stardog.dmm
@@ -2,13 +2,13 @@
"a" = (
/obj/effect/fake_sun,
/turf/unsimulated/wall/dark,
-/area/redgate/wilds)
+/area/redgate/stardog)
"b" = (
/obj/structure/bed/chair/sofa/corp/right{
dir = 1
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"c" = (
/obj/effect/map_effect/portal/master/side_b{
dir = 8;
@@ -17,59 +17,62 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"d" = (
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"e" = (
/obj/machinery/door/airlock/glass{
name = "Redgate Lounge"
},
/turf/simulated/floor/tiled/steel_ridged,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"h" = (
/obj/structure/bed/chair/sofa/corp,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"i" = (
/obj/effect/overmap/visitable/ship/simplemob/stardog,
/turf/unsimulated/wall/dark,
-/area/redgate/wilds)
+/area/redgate/stardog)
+"k" = (
+/turf/unsimulated/wall/dark,
+/area/redgate/stardog)
"l" = (
/obj/structure/bed/chair/sofa/corp/left,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"m" = (
/obj/effect/map_effect/portal/line/side_a,
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"n" = (
/obj/machinery/light,
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"o" = (
/turf/simulated/floor/outdoors/fur/woof,
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"p" = (
/turf/simulated/floor/flesh,
-/area/redgate/wilds)
+/area/redgate/stardog)
"q" = (
/obj/effect/floor_decal/spline/fancy{
dir = 1
},
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"s" = (
/obj/structure/redgate/away,
/turf/simulated/floor/reinforced,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"t" = (
/turf/simulated/floor/reinforced,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"u" = (
/obj/effect/map_effect/portal/master/side_a{
dir = 4;
@@ -78,7 +81,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"v" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_x = 32
@@ -87,13 +90,13 @@
dir = 1
},
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"w" = (
/obj/structure/bed/chair/sofa/corp{
dir = 1
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"x" = (
/obj/structure/bed/chair/sofa/corp/left{
dir = 1
@@ -102,14 +105,14 @@
dir = 4
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"y" = (
/obj/structure/bed/chair/sofa/corp/left,
/obj/machinery/light/small{
dir = 4
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"z" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_y = -32
@@ -118,7 +121,7 @@
dir = 1
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"A" = (
/obj/effect/map_effect/portal/line/side_b{
dir = 8
@@ -126,7 +129,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"B" = (
/obj/effect/map_effect/portal/master/side_a{
portal_id = "stardog_north"
@@ -134,10 +137,10 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"C" = (
/turf/unsimulated/wall/dark,
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"D" = (
/obj/effect/map_effect/portal/line/side_b{
dir = 1
@@ -145,7 +148,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"E" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_y = -32
@@ -154,7 +157,7 @@
dir = 1
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"F" = (
/obj/effect/map_effect/portal/line/side_a{
dir = 8
@@ -162,17 +165,17 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"G" = (
/turf/simulated/wall,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"H" = (
/obj/random/vendorfood,
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"I" = (
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"J" = (
/obj/effect/map_effect/portal/master/side_b{
dir = 4;
@@ -181,7 +184,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"K" = (
/obj/effect/map_effect/portal/master/side_a{
dir = 8;
@@ -190,7 +193,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"L" = (
/obj/effect/map_effect/portal/line/side_a{
dir = 4
@@ -198,7 +201,7 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"M" = (
/obj/effect/map_effect/portal/line/side_b{
dir = 4
@@ -206,23 +209,23 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"N" = (
/obj/structure/grille,
/obj/structure/window/reinforced/full,
/turf/simulated/floor,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"O" = (
/obj/structure/bed/chair/sofa/corp/right,
/obj/machinery/light/small{
dir = 8
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"P" = (
/obj/structure/table/alien/blue,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"Q" = (
/obj/structure/bed/chair/sofa/corp/right{
dir = 1
@@ -231,21 +234,21 @@
dir = 8
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"R" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_y = 32
},
/obj/structure/bed/chair/sofa/corp/left,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"S" = (
/turf/simulated/floor/tiled/monotile,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"T" = (
/obj/random/vendordrink,
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"U" = (
/obj/effect/map_effect/portal/master/side_b{
dir = 1;
@@ -254,11 +257,11 @@
/turf/simulated/floor/outdoors/fur/woof{
tree_chance = 0
},
-/area/redgate/wilds)
+/area/redgate/stardog/outside)
"V" = (
/obj/structure/bed/chair/sofa/corp/right,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"W" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_x = -32
@@ -267,26 +270,26 @@
dir = 1
},
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"X" = (
/obj/structure/bed/chair/sofa/corp/left{
dir = 1
},
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"Y" = (
/obj/machinery/computer/ship/navigation/telescreen{
pixel_y = 32
},
/obj/structure/bed/chair/sofa/corp/right,
/turf/simulated/floor/lino,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
"Z" = (
/obj/machinery/light{
dir = 1
},
/turf/simulated/floor/wood,
-/area/redgate/structure/powered)
+/area/redgate/stardog/lounge)
(1,1,1) = {"
C
@@ -391,42 +394,42 @@ C
C
C
C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
i
a
"}
@@ -570,7 +573,7 @@ p
p
p
p
-C
+k
"}
(3,1,1) = {"
C
@@ -712,7 +715,7 @@ p
p
p
p
-C
+k
"}
(4,1,1) = {"
C
@@ -854,7 +857,7 @@ p
p
p
p
-C
+k
"}
(5,1,1) = {"
C
@@ -996,7 +999,7 @@ p
p
p
p
-C
+k
"}
(6,1,1) = {"
C
@@ -1138,7 +1141,7 @@ p
p
p
p
-C
+k
"}
(7,1,1) = {"
C
@@ -1280,7 +1283,7 @@ p
p
p
p
-C
+k
"}
(8,1,1) = {"
C
@@ -1422,7 +1425,7 @@ p
p
p
p
-C
+k
"}
(9,1,1) = {"
C
@@ -1564,7 +1567,7 @@ p
p
p
p
-C
+k
"}
(10,1,1) = {"
C
@@ -1706,7 +1709,7 @@ p
p
p
p
-C
+k
"}
(11,1,1) = {"
C
@@ -1848,7 +1851,7 @@ p
p
p
p
-C
+k
"}
(12,1,1) = {"
C
@@ -1990,7 +1993,7 @@ p
p
p
p
-C
+k
"}
(13,1,1) = {"
C
@@ -2132,7 +2135,7 @@ p
p
p
p
-C
+k
"}
(14,1,1) = {"
C
@@ -2274,7 +2277,7 @@ p
p
p
p
-C
+k
"}
(15,1,1) = {"
C
@@ -2416,7 +2419,7 @@ p
p
p
p
-C
+k
"}
(16,1,1) = {"
C
@@ -2558,7 +2561,7 @@ p
p
p
p
-C
+k
"}
(17,1,1) = {"
C
@@ -2700,7 +2703,7 @@ p
p
p
p
-C
+k
"}
(18,1,1) = {"
C
@@ -2842,7 +2845,7 @@ p
p
p
p
-C
+k
"}
(19,1,1) = {"
C
@@ -2984,7 +2987,7 @@ p
p
p
p
-C
+k
"}
(20,1,1) = {"
C
@@ -3126,7 +3129,7 @@ p
p
p
p
-C
+k
"}
(21,1,1) = {"
C
@@ -3268,7 +3271,7 @@ p
p
p
p
-C
+k
"}
(22,1,1) = {"
C
@@ -3410,7 +3413,7 @@ p
p
p
p
-C
+k
"}
(23,1,1) = {"
C
@@ -3552,7 +3555,7 @@ p
p
p
p
-C
+k
"}
(24,1,1) = {"
C
@@ -3694,7 +3697,7 @@ p
p
p
p
-C
+k
"}
(25,1,1) = {"
C
@@ -3836,7 +3839,7 @@ p
p
p
p
-C
+k
"}
(26,1,1) = {"
C
@@ -3978,7 +3981,7 @@ p
p
p
p
-C
+k
"}
(27,1,1) = {"
C
@@ -4120,7 +4123,7 @@ p
p
p
p
-C
+k
"}
(28,1,1) = {"
C
@@ -4262,7 +4265,7 @@ p
p
p
p
-C
+k
"}
(29,1,1) = {"
C
@@ -4404,7 +4407,7 @@ p
p
p
p
-C
+k
"}
(30,1,1) = {"
C
@@ -4546,7 +4549,7 @@ p
p
p
p
-C
+k
"}
(31,1,1) = {"
C
@@ -4688,7 +4691,7 @@ p
p
p
p
-C
+k
"}
(32,1,1) = {"
C
@@ -4830,7 +4833,7 @@ p
p
p
p
-C
+k
"}
(33,1,1) = {"
C
@@ -4972,7 +4975,7 @@ p
p
p
p
-C
+k
"}
(34,1,1) = {"
C
@@ -5114,7 +5117,7 @@ p
p
p
p
-C
+k
"}
(35,1,1) = {"
C
@@ -5256,7 +5259,7 @@ p
p
p
p
-C
+k
"}
(36,1,1) = {"
C
@@ -5398,7 +5401,7 @@ p
p
p
p
-C
+k
"}
(37,1,1) = {"
C
@@ -5540,7 +5543,7 @@ p
p
p
p
-C
+k
"}
(38,1,1) = {"
C
@@ -5682,7 +5685,7 @@ p
p
p
p
-C
+k
"}
(39,1,1) = {"
C
@@ -5824,7 +5827,7 @@ p
p
p
p
-C
+k
"}
(40,1,1) = {"
C
@@ -5966,7 +5969,7 @@ p
p
p
p
-C
+k
"}
(41,1,1) = {"
C
@@ -6108,7 +6111,7 @@ p
p
p
p
-C
+k
"}
(42,1,1) = {"
C
@@ -6250,7 +6253,7 @@ p
p
p
p
-C
+k
"}
(43,1,1) = {"
C
@@ -6392,7 +6395,7 @@ p
p
p
p
-C
+k
"}
(44,1,1) = {"
C
@@ -6534,7 +6537,7 @@ p
p
p
p
-C
+k
"}
(45,1,1) = {"
C
@@ -6676,7 +6679,7 @@ p
p
p
p
-C
+k
"}
(46,1,1) = {"
C
@@ -6818,7 +6821,7 @@ p
p
p
p
-C
+k
"}
(47,1,1) = {"
C
@@ -6960,7 +6963,7 @@ p
p
p
p
-C
+k
"}
(48,1,1) = {"
C
@@ -7102,7 +7105,7 @@ p
p
p
p
-C
+k
"}
(49,1,1) = {"
C
@@ -7244,7 +7247,7 @@ p
p
p
p
-C
+k
"}
(50,1,1) = {"
C
@@ -7386,7 +7389,7 @@ p
p
p
p
-C
+k
"}
(51,1,1) = {"
C
@@ -7528,7 +7531,7 @@ p
p
p
p
-C
+k
"}
(52,1,1) = {"
C
@@ -7670,7 +7673,7 @@ p
p
p
p
-C
+k
"}
(53,1,1) = {"
C
@@ -7812,7 +7815,7 @@ p
p
p
p
-C
+k
"}
(54,1,1) = {"
C
@@ -7954,7 +7957,7 @@ p
p
p
p
-C
+k
"}
(55,1,1) = {"
C
@@ -8096,7 +8099,7 @@ p
p
p
p
-C
+k
"}
(56,1,1) = {"
C
@@ -8238,7 +8241,7 @@ p
p
p
p
-C
+k
"}
(57,1,1) = {"
C
@@ -8380,7 +8383,7 @@ p
p
p
p
-C
+k
"}
(58,1,1) = {"
C
@@ -8522,7 +8525,7 @@ p
p
p
p
-C
+k
"}
(59,1,1) = {"
C
@@ -8664,7 +8667,7 @@ p
p
p
p
-C
+k
"}
(60,1,1) = {"
C
@@ -8806,7 +8809,7 @@ p
p
p
p
-C
+k
"}
(61,1,1) = {"
C
@@ -8948,7 +8951,7 @@ p
p
p
p
-C
+k
"}
(62,1,1) = {"
C
@@ -9090,7 +9093,7 @@ p
p
p
p
-C
+k
"}
(63,1,1) = {"
C
@@ -9232,7 +9235,7 @@ p
p
p
p
-C
+k
"}
(64,1,1) = {"
C
@@ -9374,7 +9377,7 @@ p
p
p
p
-C
+k
"}
(65,1,1) = {"
C
@@ -9516,7 +9519,7 @@ p
p
p
p
-C
+k
"}
(66,1,1) = {"
C
@@ -9658,7 +9661,7 @@ p
p
p
p
-C
+k
"}
(67,1,1) = {"
C
@@ -9800,7 +9803,7 @@ p
p
p
p
-C
+k
"}
(68,1,1) = {"
B
@@ -9942,7 +9945,7 @@ p
p
p
p
-C
+k
"}
(69,1,1) = {"
m
@@ -10084,7 +10087,7 @@ p
p
p
p
-C
+k
"}
(70,1,1) = {"
m
@@ -10226,7 +10229,7 @@ p
p
p
p
-C
+k
"}
(71,1,1) = {"
m
@@ -10368,7 +10371,7 @@ p
p
p
p
-C
+k
"}
(72,1,1) = {"
m
@@ -10510,7 +10513,7 @@ p
p
p
p
-C
+k
"}
(73,1,1) = {"
C
@@ -10652,7 +10655,7 @@ p
p
p
p
-C
+k
"}
(74,1,1) = {"
C
@@ -10794,7 +10797,7 @@ p
p
p
p
-C
+k
"}
(75,1,1) = {"
C
@@ -10936,7 +10939,7 @@ p
p
p
p
-C
+k
"}
(76,1,1) = {"
C
@@ -11078,7 +11081,7 @@ p
p
p
p
-C
+k
"}
(77,1,1) = {"
C
@@ -11220,7 +11223,7 @@ p
p
p
p
-C
+k
"}
(78,1,1) = {"
C
@@ -11362,7 +11365,7 @@ p
p
p
p
-C
+k
"}
(79,1,1) = {"
C
@@ -11504,7 +11507,7 @@ p
p
p
p
-C
+k
"}
(80,1,1) = {"
C
@@ -11646,7 +11649,7 @@ p
p
p
p
-C
+k
"}
(81,1,1) = {"
C
@@ -11788,7 +11791,7 @@ p
p
p
p
-C
+k
"}
(82,1,1) = {"
C
@@ -11930,7 +11933,7 @@ p
p
p
p
-C
+k
"}
(83,1,1) = {"
C
@@ -12072,7 +12075,7 @@ p
p
p
p
-C
+k
"}
(84,1,1) = {"
C
@@ -12214,7 +12217,7 @@ p
p
p
p
-C
+k
"}
(85,1,1) = {"
C
@@ -12356,7 +12359,7 @@ p
p
p
p
-C
+k
"}
(86,1,1) = {"
C
@@ -12498,7 +12501,7 @@ p
p
p
p
-C
+k
"}
(87,1,1) = {"
C
@@ -12640,7 +12643,7 @@ p
p
p
p
-C
+k
"}
(88,1,1) = {"
C
@@ -12782,7 +12785,7 @@ p
p
p
p
-C
+k
"}
(89,1,1) = {"
C
@@ -12924,7 +12927,7 @@ p
p
p
p
-C
+k
"}
(90,1,1) = {"
C
@@ -13066,7 +13069,7 @@ p
p
p
p
-C
+k
"}
(91,1,1) = {"
C
@@ -13208,7 +13211,7 @@ p
p
p
p
-C
+k
"}
(92,1,1) = {"
C
@@ -13350,7 +13353,7 @@ p
p
p
p
-C
+k
"}
(93,1,1) = {"
C
@@ -13492,7 +13495,7 @@ p
p
p
p
-C
+k
"}
(94,1,1) = {"
C
@@ -13634,7 +13637,7 @@ p
p
p
p
-C
+k
"}
(95,1,1) = {"
C
@@ -13776,7 +13779,7 @@ p
p
p
p
-C
+k
"}
(96,1,1) = {"
C
@@ -13918,7 +13921,7 @@ p
p
p
p
-C
+k
"}
(97,1,1) = {"
C
@@ -14060,7 +14063,7 @@ p
p
p
p
-C
+k
"}
(98,1,1) = {"
C
@@ -14202,7 +14205,7 @@ p
p
p
p
-C
+k
"}
(99,1,1) = {"
C
@@ -14344,7 +14347,7 @@ p
p
p
p
-C
+k
"}
(100,1,1) = {"
C
@@ -14486,7 +14489,7 @@ p
p
p
p
-C
+k
"}
(101,1,1) = {"
C
@@ -14628,7 +14631,7 @@ p
p
p
p
-C
+k
"}
(102,1,1) = {"
C
@@ -14770,7 +14773,7 @@ p
p
p
p
-C
+k
"}
(103,1,1) = {"
C
@@ -14912,7 +14915,7 @@ p
p
p
p
-C
+k
"}
(104,1,1) = {"
C
@@ -15054,7 +15057,7 @@ p
p
p
p
-C
+k
"}
(105,1,1) = {"
C
@@ -15196,7 +15199,7 @@ p
p
p
p
-C
+k
"}
(106,1,1) = {"
C
@@ -15338,7 +15341,7 @@ p
p
p
p
-C
+k
"}
(107,1,1) = {"
C
@@ -15480,7 +15483,7 @@ p
p
p
p
-C
+k
"}
(108,1,1) = {"
C
@@ -15622,7 +15625,7 @@ p
p
p
p
-C
+k
"}
(109,1,1) = {"
C
@@ -15764,7 +15767,7 @@ p
p
p
p
-C
+k
"}
(110,1,1) = {"
C
@@ -15906,7 +15909,7 @@ p
p
p
p
-C
+k
"}
(111,1,1) = {"
C
@@ -16048,7 +16051,7 @@ p
p
p
p
-C
+k
"}
(112,1,1) = {"
C
@@ -16190,7 +16193,7 @@ p
p
p
p
-C
+k
"}
(113,1,1) = {"
C
@@ -16332,7 +16335,7 @@ p
p
p
p
-C
+k
"}
(114,1,1) = {"
C
@@ -16474,7 +16477,7 @@ p
p
p
p
-C
+k
"}
(115,1,1) = {"
C
@@ -16616,7 +16619,7 @@ p
p
p
p
-C
+k
"}
(116,1,1) = {"
C
@@ -16758,7 +16761,7 @@ p
p
p
p
-C
+k
"}
(117,1,1) = {"
C
@@ -16900,7 +16903,7 @@ p
p
p
p
-C
+k
"}
(118,1,1) = {"
C
@@ -17042,7 +17045,7 @@ p
p
p
p
-C
+k
"}
(119,1,1) = {"
C
@@ -17184,7 +17187,7 @@ p
p
p
p
-C
+k
"}
(120,1,1) = {"
C
@@ -17326,7 +17329,7 @@ p
p
p
p
-C
+k
"}
(121,1,1) = {"
C
@@ -17468,7 +17471,7 @@ p
p
p
p
-C
+k
"}
(122,1,1) = {"
C
@@ -17610,7 +17613,7 @@ p
p
p
p
-C
+k
"}
(123,1,1) = {"
C
@@ -17752,7 +17755,7 @@ p
p
p
p
-C
+k
"}
(124,1,1) = {"
C
@@ -17894,7 +17897,7 @@ p
p
p
p
-C
+k
"}
(125,1,1) = {"
C
@@ -18036,7 +18039,7 @@ p
p
p
p
-C
+k
"}
(126,1,1) = {"
C
@@ -18178,7 +18181,7 @@ p
p
p
p
-C
+k
"}
(127,1,1) = {"
C
@@ -18320,7 +18323,7 @@ p
p
p
p
-C
+k
"}
(128,1,1) = {"
C
@@ -18462,7 +18465,7 @@ p
p
p
p
-C
+k
"}
(129,1,1) = {"
C
@@ -18604,7 +18607,7 @@ p
p
p
p
-C
+k
"}
(130,1,1) = {"
C
@@ -18746,7 +18749,7 @@ p
p
p
p
-C
+k
"}
(131,1,1) = {"
C
@@ -18888,7 +18891,7 @@ p
p
p
p
-C
+k
"}
(132,1,1) = {"
C
@@ -19030,7 +19033,7 @@ p
p
p
p
-C
+k
"}
(133,1,1) = {"
C
@@ -19172,7 +19175,7 @@ p
p
p
p
-C
+k
"}
(134,1,1) = {"
C
@@ -19314,7 +19317,7 @@ p
p
p
p
-C
+k
"}
(135,1,1) = {"
C
@@ -19456,7 +19459,7 @@ p
p
p
p
-C
+k
"}
(136,1,1) = {"
C
@@ -19598,7 +19601,7 @@ p
p
p
p
-C
+k
"}
(137,1,1) = {"
C
@@ -19740,7 +19743,7 @@ p
p
p
p
-C
+k
"}
(138,1,1) = {"
C
@@ -19882,7 +19885,7 @@ p
p
p
p
-C
+k
"}
(139,1,1) = {"
C
@@ -20024,7 +20027,7 @@ p
p
p
p
-C
+k
"}
(140,1,1) = {"
C
@@ -20129,42 +20132,42 @@ C
C
C
C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
"}
From 694a5b617b82aca343481e3602b5811798682163 Mon Sep 17 00:00:00 2001
From: Runa Dacino
Date: Mon, 24 Jul 2023 17:38:11 +0200
Subject: [PATCH 07/63] Adds(feature): Triggerable Landmarks for Event-help
- Adds a new verb to staff with FUN permissions under the eventkit tab
- name: "Manage Event Triggers"
- Permits creating "Notification" and "Narration" landmarks
- Permits deleting/teleporting to self-created landmarks at any time
- Permits deleting other staff's landmarks if DC'd/Inactive
- Permits teleporting to other staff's landmarks at any time
(the landmark management buttons I couldn't implement without code repetition due to managing others' landmarks needing (imo) admin logging)
- Adds new landmark subtype: event_trigger
- Handles notification of staff/team depending on options
- May autodelete if requested
- Makes a loud bwoink at the creator if requested
- Is triggered by the base DM proc /Crossed(var/atom/movable/AM)
- Ghosts and NPCs don't trigger it.
- Adds a subtype of event_trigger, auto_narrate
- Adds functionality to automatically print a normal/red message to player entering the turf with the landmark.
- Alternatively, allows creating a visible/audible message when the turf is triggered
- Inherits all behaviours of event_trigger otherwise
-Adds new global list, "event_triggers"
- It is an associative list of key:list(element1,element2,element3) form
- key is the staffmember's ckey, elements are references to event_trigger landmarks they created
---
code/_helpers/global_lists.dm | 1 +
code/game/objects/effects/landmarks_events.dm | 129 ++++++++++++++++++
code/modules/admin/admin_verb_lists_vr.dm | 3 +-
code/modules/admin/verbs/event_triggers.dm | 121 ++++++++++++++++
vorestation.dme | 2 +
5 files changed, 255 insertions(+), 1 deletion(-)
create mode 100644 code/game/objects/effects/landmarks_events.dm
create mode 100644 code/modules/admin/verbs/event_triggers.dm
diff --git a/code/_helpers/global_lists.dm b/code/_helpers/global_lists.dm
index 1408896e55..95b7758922 100644
--- a/code/_helpers/global_lists.dm
+++ b/code/_helpers/global_lists.dm
@@ -14,6 +14,7 @@ var/global/list/cleanbot_reserved_turfs = list() //List of all turfs currently t
var/global/list/cable_list = list() //Index for all cables, so that powernets don't have to look through the entire world all the time
var/global/list/landmarks_list = list() //list of all landmarks created
+var/global/list/event_triggers = list() //Associative list of creator_ckey:list(landmark references) for event triggers
var/global/list/surgery_steps = list() //list of all surgery steps |BS12
var/global/list/side_effects = list() //list of all medical sideeffects types by thier names |BS12
var/global/list/mechas_list = list() //list of all mechs. Used by hostile mobs target tracking.
diff --git a/code/game/objects/effects/landmarks_events.dm b/code/game/objects/effects/landmarks_events.dm
new file mode 100644
index 0000000000..86c97c464c
--- /dev/null
+++ b/code/game/objects/effects/landmarks_events.dm
@@ -0,0 +1,129 @@
+/*
+Landmark to be spawned by GMs and admins when running events.
+Do NOT directly spawn "" or buildmode spawn this.
+Use the "Manage Event Triggers" verb under "Eventkit" category.
+Admin verb is called by code\modules\admin\verbs\event_triggers.dm
+*/
+/obj/effect/landmark/event_trigger
+ name = "ONLY FOR EVENTS. DO NOT USE WHEN MAPPING"
+ desc = "Please notify staff if you see this!"
+ var/creator_ckey = ""
+ var/isTeamwork = FALSE //Whether to notify creator or whole team.
+ var/isRepeating = FALSE
+ var/coordinates = ""
+ var/cooldown = 0 //in seconds
+ var/last_trigger = 0
+ var/isLoud = FALSE
+ var/isNarrate = FALSE
+
+/obj/effect/landmark/event_trigger/New()
+ ..()
+ coordinates = "(X:[loc.x];Y:[loc.y];Z:[loc.z])"
+ invisibility = 100
+
+/obj/effect/landmark/event_trigger/proc/set_vars(mob/M)
+ name = sanitize(tgui_input_text(M, "Input Name for the trigger", "Naming", "Event Trigger"))
+ creator_ckey = M.ckey
+ if(!event_triggers[creator_ckey])
+ event_triggers[creator_ckey] = list()
+ event_triggers[creator_ckey] |= list(src)
+ isTeamwork = (tgui_alert(M, "Notify rest of team?", "Teamwork", list("No", "Yes")) == "Yes" ? TRUE : FALSE)
+ if(!isTeamwork)
+ isLoud = (tgui_alert(M, "Should it make a bwoink when triggered for YOU?", "bwoink", list("No", "Yes")) == "Yes" ? TRUE : FALSE)
+ isRepeating = (tgui_alert(M, "Make it fire repeatedly?", "Repetition", list("No", "Yes")) == "Yes" ? TRUE : FALSE)
+ if(isRepeating)
+ cooldown = tgui_input_number(M, "Set cooldown in seconds. Minimum 5 seconds!", "Cooldown", 60, min_value = 5)
+ cooldown = cooldown SECONDS
+ else
+ delete_me = TRUE
+ log_admin("[M.ckey] has created a [isNarrate ? "Narrtion" : "Notification"] landmark trigger at [coordinates]")
+
+/obj/effect/landmark/event_trigger/Destroy()
+ if(event_triggers[creator_ckey])
+ event_triggers[creator_ckey] -= src
+ ..()
+
+/obj/effect/landmark/event_trigger/Crossed(var/atom/movable/AM)
+ if(isobserver(AM) || !isliving(AM))
+ return FALSE
+ var/mob/living/L = AM
+ if(!L.ckey) return FALSE
+
+ if(world.time < (last_trigger + cooldown))
+ return FALSE
+ if(!isRepeating && last_trigger) //Used to avoid spam if qdel(src) fires too slowly
+ return FALSE
+ last_trigger = world.time
+
+ if(!creator_ckey) //For some reason, the user didn't have a ckey. Let's clean up
+ qdel(src)
+ return FALSE
+ var/mob/creator_reference = GLOB.directory[creator_ckey]
+ if(!creator_reference || isTeamwork) //If logged/crashed, we default to teamwork mode
+ message_admins("Player [L.name] ([L.ckey]) has triggered event narrate landmark [name] of type \
+ [isNarrate ? "Narration" : "Notification"]. \n \
+ The landmark was created by [creator_ckey], and it [isRepeating ? \
+ "will be possible to trigger after [cooldown / (1 SECOND)] seconds" : "has self-deleted"]\n \
+ COORDINATES: [coordinates]")
+ else
+ if(isLoud)
+ creator_reference << 'sound/effects/adminhelp.ogg'
+ to_chat(creator_reference, SPAN_WARNING("Player [L.name] ([L.ckey]) has triggered event \
+ narrate landmark [name] of type [isNarrate ? "Narration" : "Notification"]. \n \
+ It [isRepeating ? "will be possible to trigger after [cooldown / (1 SECOND)] seconds" : "has self-deleted"] \n \
+ COORDINATES: [coordinates]"))
+ if(!isNarrate)
+ if(!isRepeating)
+ qdel(src)
+ return FALSE
+ else
+ return L
+
+
+/obj/effect/landmark/event_trigger/auto_narrate
+ var/message
+ var/isVis_or_isAud = 0 //0 for vis, 1 for aud
+ var/message_range //Leave at 0 for world.view
+ var/isPersonal = FALSE //Overrides isVis/isAud, to_chats the player
+ var/isWarning = FALSE //For personal messages
+ isNarrate = TRUE
+
+/obj/effect/landmark/event_trigger/auto_narrate/New()
+ message_range = world.view
+ ..()
+
+/obj/effect/landmark/event_trigger/auto_narrate/set_vars(mob/M)
+ ..()
+ message = encode_html_emphasis(sanitize(tgui_input_text(M, "What should the automatic narration say?", "Message"), encode = FALSE))
+ isPersonal = (tgui_alert(M, "Should it send directly to the player, or send to the turf?", "Target", list("Player", "Turf")) == "Player" ? TRUE : FALSE)
+ if(isPersonal)
+ isWarning = (tgui_alert(M, "Should it be a normal message or a big scary red text?", "Scary Red", list("Big Red", "Normal")) == "Big Red" ? TRUE : FALSE)
+ else
+ isVis_or_isAud = (tgui_alert(M, "Should it be visible or audible?", "Mode", list("Visible", "Audible")) == "Audible" ? 1 : 0)
+ var/range = tgui_input_number(M, "Give narration range! Input value over 10 to use world.view", "Range",default = 11, min_value = 0)
+ if(range <= 10)
+ message_range = range
+
+
+
+
+
+/obj/effect/landmark/event_trigger/auto_narrate/Crossed(var/atom/movable/AM)
+ . = ..() //Checks if AM is mob/living and notifies admin(s)
+ if(!.)
+ return
+ var/mob/living/L = .
+ if(isPersonal)
+ if(isWarning)
+ to_chat(L, SPAN_DANGER(message))
+ else
+ to_chat(L, message)
+ else
+ var/turf/T = get_turf(src)
+ switch(isVis_or_isAud)
+ if(0)
+ T.visible_message(message, range = message_range, runemessage = message)
+ if(1)
+ T.audible_message(message, hearing_distance = message_range, runemessage= message)
+ if(!isRepeating)
+ qdel(src)
diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm
index bf6fc1f2d6..ff66ed5cea 100644
--- a/code/modules/admin/admin_verb_lists_vr.dm
+++ b/code/modules/admin/admin_verb_lists_vr.dm
@@ -171,7 +171,8 @@ var/list/admin_verbs_fun = list(
/client/proc/remove_mob_for_narration, //VOREStation Add
/client/proc/narrate_mob, //VOREStation Add
/client/proc/narrate_mob_args, //VOREStation Add
- /client/proc/getPlayerStatus //VORESTation Add
+ /client/proc/getPlayerStatus, //VORESTation Add
+ /client/proc/manage_event_triggers
)
diff --git a/code/modules/admin/verbs/event_triggers.dm b/code/modules/admin/verbs/event_triggers.dm
new file mode 100644
index 0000000000..26221f8ac2
--- /dev/null
+++ b/code/modules/admin/verbs/event_triggers.dm
@@ -0,0 +1,121 @@
+/*
+Eventkit verb to be used to spawn the obj/effect/landmarks defined under code\game\objects\effects\landmarks_events.dm
+*/
+/client/proc/manage_event_triggers()
+ set name = "Manage Event Triggers"
+ set desc = "Open dialogue to create or delete narration/notification triggers"
+ set category = "EventKit"
+
+ if(!check_rights(R_FUN)) return
+
+
+
+ var/mode = tgui_input_list(src, "What do you wish to do?", "Manage Event Triggers", \
+ list(
+ "Create Notification Trigger",
+ "Create Narration Trigger",
+ "Manage Personal Triggers",
+ "Manage Other's Triggers",
+ "Cancel"
+ ), "Cancel" )
+ if(mode == "Cancel") return
+
+ feedback_add_details("admin_verb","EventTriggerManage")
+ switch(mode)
+
+ if("Create Notification Trigger")
+ var/obj/effect/landmark/event_trigger/ET = new /obj/effect/landmark/event_trigger(usr.loc)
+ ET.set_vars(src)
+
+ if("Create Narration Trigger")
+
+ var/obj/effect/landmark/event_trigger/auto_narrate/AN = new /obj/effect/landmark/event_trigger/auto_narrate(usr.loc)
+ AN.set_vars(src)
+
+ if("Manage Personal Triggers")
+ var/personal_list = event_triggers[src.ckey]
+ if(!LAZYLEN(personal_list))
+ to_chat(src, SPAN_NOTICE("You don't have any landmarks to manage!"))
+ return
+ personal_list |= list("Cancel", "Delete All")
+ var/choice = tgui_input_list(src, "Select a landmark to choose between teleporting to it or deleting it, select delete all to clear them.", \
+ "Manage Personal Triggers", personal_list)
+ if(choice == "Cancel")
+ return
+ if(choice == "Delete All")
+ var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK", "CONFIRM", list("Go Back", "Delete all my event triggers"), autofocus = FALSE)
+ if(confirm == "Go Back")
+ return
+ for(var/obj/effect/landmark/event_trigger/ET in personal_list)
+ ET.delete_me = TRUE
+ qdel(ET)
+ else if(istype(choice, /obj/effect/landmark/event_trigger))
+ var/obj/effect/landmark/event_trigger/ET = choice
+ var/decision = tgui_alert(src, "Teleport to Landmark or Delete it?", "Manage [ET.name]", list("Teleport", "Delete"), autofocus = FALSE)
+ if(decision == "Teleport")
+ var/mob/M = usr
+ if(isobserver(M))
+ var/confirm_teleport = tgui_alert(src, "You're not a ghost! Admin-ghost?", "You're not a ghost", \
+ list("Cancel", "Teleport me with my character"))
+ if(confirm_teleport == "Cancel")
+ return
+ M.forceMove(get_turf(ET))
+ if(decision == "Delete")
+ var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK FROM DELETING [ET.name]", "CONFIRM", list("Go Back", "Delete it!"), autofocus = FALSE)
+ if(confirm == "Go Back")
+ return
+ ET.delete_me = TRUE
+ qdel(ET)
+ if("Manage Other's Triggers")
+ var/other_ckey = sanitize(tgui_input_text(src, "input trigger owner's ckey", "CKEY", ""))
+ var/others_list = event_triggers[other_ckey]
+ if(!LAZYLEN(others_list))
+ to_chat(src, SPAN_NOTICE("[other_ckey] doesn't have any landmarks to manage!"))
+ return
+ others_list |= list("Cancel", "Delete All")
+ var/choice = tgui_input_list(src, "Select a landmark to choose between teleporting to it or deleting it, select delete all to clear them.", \
+ "Manage Personal Triggers", others_list)
+ if(choice == "Cancel")
+ return
+ if(choice == "Delete All")
+ if(other_ckey && GLOB.directory[other_ckey])
+ var/client/C = GLOB.directory[other_ckey]
+ var/mob/M = C.statobj
+ if(M.client && M.client.inactivity < 30 MINUTES)
+ to_chat(src, SPAN_WARNING("[M] has only been inactive for [M.client.inactivity / (1 MINUTE)] minutes.\n \
+ If you want to delete their event triggers, ask them in asay or discord to do it themselves or wait 30 minutes"))
+ log_and_message_admins("[src.ckey] tried to delete all of [other_ckey]'s event triggers, but [other_ckey] is active.")
+ return
+ var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK", "CONFIRM", list("Go Back", "Delete all my event triggers"), autofocus = FALSE)
+ if(confirm == "Go Back")
+ return
+ for(var/obj/effect/landmark/event_trigger/ET in others_list)
+ ET.delete_me = TRUE
+ qdel(ET)
+ log_and_message_admins("[src.ckey] deleted all of [other_ckey]'s event triggers. [other_ckey] was either inactive or disconnected at this time.")
+ else if(istype(choice, /obj/effect/landmark/event_trigger))
+ var/obj/effect/landmark/event_trigger/ET = choice
+ var/decision = tgui_alert(src, "Teleport to Landmark or Delete it?", "Manage [ET]", list("Teleport", "Delete"), autofocus = FALSE)
+ if(decision == "Teleport")
+ var/mob/M = usr
+ if(isobserver(M))
+ var/confirm_teleport = tgui_alert(src, "You're not a ghost! Admin-ghost?", "You're not a ghost", \
+ list("Cancel", "Teleport me with my character"))
+ if(confirm_teleport == "Cancel")
+ return
+ M.forceMove(get_turf(ET))
+ if(decision == "Delete")
+ if(other_ckey && GLOB.directory[other_ckey])
+ var/client/C = GLOB.directory[other_ckey]
+ var/mob/M = C.statobj
+ if(M.client && M.client.inactivity < 30 MINUTES)
+ to_chat(src, SPAN_WARNING("[M] has only been inactive for [M.client.inactivity / (1 MINUTE)] minutes.\n \
+ If you want to delete their event triggers, ask them in asay or discord to do it themselves or wait 30 minutes"))
+ log_and_message_admins("[src.ckey] tried to delete event trigger [ET.name], but [other_ckey] is active.")
+ return
+ var/confirm = tgui_alert(src, "ARE YOU SURE? THERE IS NO GOING BACK FROM DELETING [ET.name]", "CONFIRM", list("Go Back", "Delete it!"), autofocus = FALSE)
+ if(confirm == "Go Back")
+ return
+ ET.delete_me = TRUE
+ qdel(ET)
+ log_and_message_admins("[src.ckey] tried to deleted event trigger [ET.name], [other_ckey] is either disconnected or inactive.")
diff --git a/vorestation.dme b/vorestation.dme
index 235f0aab5a..c05c2af1ef 100644
--- a/vorestation.dme
+++ b/vorestation.dme
@@ -1108,6 +1108,7 @@
#include "code\game\objects\effects\item_pickup_ghost.dm"
#include "code\game\objects\effects\job_start_landmarks.dm"
#include "code\game\objects\effects\landmarks.dm"
+#include "code\game\objects\effects\landmarks_events.dm"
#include "code\game\objects\effects\landmarks_poi_vr.dm"
#include "code\game\objects\effects\landmarks_vr.dm"
#include "code\game\objects\effects\manifest.dm"
@@ -1760,6 +1761,7 @@
#include "code\modules\admin\verbs\diagnostics.dm"
#include "code\modules\admin\verbs\dice.dm"
#include "code\modules\admin\verbs\entity_narrate.dm"
+#include "code\modules\admin\verbs\event_triggers.dm"
#include "code\modules\admin\verbs\fps.dm"
#include "code\modules\admin\verbs\get_player_status.dm"
#include "code\modules\admin\verbs\getlogs.dm"
From 04778c9e9945261748b2788a11673f428f9ded29 Mon Sep 17 00:00:00 2001
From: Runa Dacino
Date: Mon, 24 Jul 2023 17:43:13 +0200
Subject: [PATCH 08/63] tweak(entity_narrate): Enables using ++, __, and || for
all atoms
wraps message for non-mob entities in encode_html_emphasis after learning it exists
---
code/modules/admin/verbs/entity_narrate.dm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/modules/admin/verbs/entity_narrate.dm b/code/modules/admin/verbs/entity_narrate.dm
index 0b42058c84..cf52e6b4da 100644
--- a/code/modules/admin/verbs/entity_narrate.dm
+++ b/code/modules/admin/verbs/entity_narrate.dm
@@ -183,7 +183,7 @@
var/atom/our_entity = holder.entity_refs[name]
if(!message)
message = tgui_input_text(usr, "Input what you want [our_entity] to [mode]", "narrate", null)
- message = sanitize(message)
+ message = encode_html_emphasis(sanitize(message))
if(message && mode == "Speak")
our_entity.audible_message("[our_entity.name] [message]")
else if(message && mode == "Emote")
@@ -305,7 +305,7 @@
L.say(message)
/datum/entity_narrate/proc/narrate_tgui_atom(atom/A, message as text)
- message = sanitize(message)
+ message = encode_html_emphasis(sanitize(message))
if(tgui_narrate_mode && tgui_narrate_privacy)
A.visible_message("\The [A.name] [message]", range = 1)
else if(tgui_narrate_mode && !tgui_narrate_privacy)
From 79df8c202469e08f66a2db6b0974bb27f360c939 Mon Sep 17 00:00:00 2001
From: VerySoft
Date: Mon, 24 Jul 2023 20:17:41 -0400
Subject: [PATCH 09/63] we need to think about peeb
---
.../subtypes/animal/alien animals/stardog.dm | 201 +-
code/modules/vore/resizing/resize_vr.dm | 4 +-
maps/redgate/stardog.dmm | 2047 +++++++++--------
3 files changed, 1225 insertions(+), 1027 deletions(-)
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
index 29af3bf009..ec0f1da608 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
@@ -57,6 +57,38 @@
movement_cooldown = 0
var/affinity = 0
+/mob/living/simple_mob/vore/overmap/stardog/attack_hand(mob/living/user)
+ if(!(user.pickup_pref && user.pickup_active))
+ return ..()
+ var/list/possible_targets = list()
+
+ for(var/mob/living/player in player_list)
+ if(!(player.z in child_om_marker.map_z))
+ continue
+ if(!(isliving(player) && istype(player.loc,/turf/simulated/floor/outdoors/fur) && player.client))
+ continue
+ if(player.resizable && player.pickup_pref)
+ possible_targets |= player
+
+ if(!possible_targets.len)
+ return ..()
+ user.visible_message("\The [user] reaches for something in \the [src]'s fur...","You look through \the [src]'s fur...")
+ var/mob/living/that_one = tgui_input_list(user, "Select a mob:", "Select a mob to grab!", possible_targets)
+ if(!that_one)
+ return ..()
+ to_chat(that_one, "\The [user]'s hand reaches toward you!!!")
+ if(!do_after(user, 3 SECONDS, src))
+ return ..()
+ if(!istype(that_one.loc,/turf/simulated/floor/outdoors/fur))
+ to_chat(user, "\The [that_one] got away...")
+ to_chat(that_one, "You got away!")
+ return
+ var/prev_size = that_one.size_multiplier
+ that_one.resize(RESIZE_TINY, ignore_prefs = TRUE)
+ if(!that_one.attempt_to_scoop(user, ignore_size = TRUE))
+ that_one.resize(prev_size, ignore_prefs = TRUE)
+ return ..()
+
/mob/living/simple_mob/vore/overmap/stardog/Life()
. = ..()
@@ -118,6 +150,7 @@
turf_layers = list()
var/tree_chance = 25
var/tree_color = null
+ var/tree_type = /obj/structure/flora/tree/fur
/turf/simulated/floor/outdoors/fur/Entered(atom/movable/AM, atom/oldloc)
. = ..()
@@ -154,12 +187,21 @@
/turf/simulated/floor/outdoors/fur/Initialize()
. = ..()
if(tree_chance && prob(tree_chance) && !check_density())
- var/obj/structure/flora/tree/fur/tree = new /obj/structure/flora/tree/fur(src)
+ var/obj/structure/flora/tree/tree = new tree_type(src)
if(tree_color)
tree.color = tree_color
else
tree.color = color
+/turf/simulated/floor/outdoors/fur/woof/wall
+ name = "dense fur"
+ desc = "Silky and soft, but too thick to pass or cut!"
+ color = "#92705d"
+ opacity = TRUE
+ tree_color = null
+ tree_chance = 100
+ tree_type = /obj/structure/flora/tree/fur/wall
+
/turf/simulated/floor/outdoors/fur/verb/pet()
set name = "Pet Fur"
set desc = "Pet the fur!"
@@ -175,6 +217,52 @@
if(m.affinity >= 10 && prob(5))
m.visible_message("\The [m]'s tail wags happily!")
+/turf/simulated/floor/outdoors/fur/verb/emote_beyond(message as message)
+ set name = "Emote Beyond"
+ set desc = "Emote to those beyond the fur!"
+ set category = "IC"
+ set src in oview(1)
+
+ if(!isliving(usr))
+ return
+ var/mob/living/L = usr
+ if(L.client.prefs.muted & MUTE_IC)
+ to_chat(L, "You cannot speak in IC (muted).")
+ return
+ if (!message)
+ message = tgui_input_text(usr, "Type a message to emote.","Emote Beyond")
+ message = sanitize_or_reflect(message,L)
+ if (!message)
+ return
+ if (L.stat == DEAD)
+ return L.say_dead(message)
+ var/obj/effect/overmap/visitable/ship/simplemob/stardog/s = get_overmap_sector(z)
+ if(!s || !istype(s, /obj/effect/overmap/visitable/ship/simplemob/stardog))
+ return
+
+ var/mob/living/simple_mob/vore/overmap/stardog/m = s.parent
+
+ log_subtle(message,L)
+ message = "[L] [message]"
+ message = "(From the back of \the [m]) " + message
+ message = encode_html_emphasis(message)
+
+ var/undisplayed_message = "[L] does something too subtle for you to see."
+ var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(m),1,2)
+ var/list/vis_mobs = vis["mobs"]
+ vis_mobs |= L
+ for(var/mob/M as anything in vis_mobs)
+ if(isnewplayer(M))
+ continue
+ if(isobserver(M) && !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)
+ spawn(0)
+ M.show_message(undisplayed_message, 2)
+ else
+ spawn(0)
+ M.show_message(message, 2)
+ if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
+ M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
+
/decl/flooring/fur
name = "fur"
desc = "Thick, silky fur!"
@@ -202,26 +290,88 @@
shake_animation_degrees = 2
sticks = FALSE
var/mob_chance = 5
- var/list/mob_list = list()
-
+ var/static/list/mob_list = list(
+ /mob/living/simple_mob/vore/aggressive/corrupthound,
+ /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi,
+ /mob/living/simple_mob/vore/aggressive/deathclaw,
+ /mob/living/simple_mob/vore/aggressive/dino,
+ /mob/living/simple_mob/vore/aggressive/dragon,
+ /mob/living/simple_mob/vore/aggressive/frog,
+ /mob/living/simple_mob/vore/aggressive/giant_snake,
+ /mob/living/simple_mob/vore/aggressive/mimic,
+ /mob/living/simple_mob/vore/aggressive/panther,
+ /mob/living/simple_mob/vore/aggressive/rat,
+ /mob/living/simple_mob/vore/alienanimals/catslug,
+ /mob/living/simple_mob/vore/alienanimals/dustjumper,
+ /mob/living/simple_mob/vore/alienanimals/skeleton,
+ /mob/living/simple_mob/vore/alienanimals/space_jellyfish,
+ /mob/living/simple_mob/vore/alienanimals/startreader,
+ /mob/living/simple_mob/vore/alienanimals/succlet,
+ /mob/living/simple_mob/vore/alienanimals/teppi,
+ /mob/living/simple_mob/vore/alienanimals/teppi/baby,
+ /mob/living/simple_mob/vore/bee,
+ /mob/living/simple_mob/vore/bigdragon,
+ /mob/living/simple_mob/vore/bigdragon/friendly,
+ /mob/living/simple_mob/vore/catgirl,
+ /mob/living/simple_mob/vore/fennec,
+ /mob/living/simple_mob/vore/fennec/huge,
+ /mob/living/simple_mob/vore/fennix,
+ /mob/living/simple_mob/vore/greatwolf,
+ /mob/living/simple_mob/vore/hippo,
+ /mob/living/simple_mob/vore/horse,
+ /mob/living/simple_mob/vore/horse/big,
+ /mob/living/simple_mob/vore/jelly,
+ /mob/living/simple_mob/vore/lamia/random,
+ /mob/living/simple_mob/vore/leopardmander,
+ /mob/living/simple_mob/vore/oregrub,
+ /mob/living/simple_mob/vore/otie,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/pakkun,
+ /mob/living/simple_mob/vore/rabbit,
+ /mob/living/simple_mob/vore/redpanda,
+ /mob/living/simple_mob/vore/sect_drone,
+ /mob/living/simple_mob/vore/sect_queen,
+ /mob/living/simple_mob/vore/sheep,
+ /mob/living/simple_mob/vore/solargrub,
+ /mob/living/simple_mob/vore/squirrel,
+ /mob/living/simple_mob/vore/squirrel/big,
+ /mob/living/simple_mob/vore/weretiger,
+ /mob/living/simple_mob/vore/wolf,
+ /mob/living/simple_mob/vore/wolf/direwolf,
+ /mob/living/simple_mob/vore/wolfgirl,
+ /mob/living/simple_mob/vore/woof
+ )
/obj/structure/flora/tree/fur/choose_icon_state()
return "[base_state][rand(1, 2)]"
+/obj/structure/flora/tree/fur/attack_hand(mob/user)
+ to_chat(user, "Your hand sinks into \the [src]!")
+
/obj/structure/flora/tree/fur/die()
if(product && product_amount)
var/obj/item/stack/material/fur/F = new product(get_turf(src), product_amount)
F.color = color
F.update_icon()
- visible_message("\The [src] is felled!")
+ visible_message("\The [src] is felled!")
if(prob(mob_chance))
+ if(!mob_list.len)
+ return
var/ourmob = pickweight(mob_list)
var/mob/living/simple_mob/s = new ourmob(get_turf(src))
+ visible_message("\The [s] tumbles out of \the [src]!")
s.ai_holder.hostile = FALSE
s.ai_holder.retaliate = TRUE
qdel(src)
+/obj/structure/flora/tree/fur/wall
+ name = "dense fur"
+ desc = "Silky and soft, but too thick to pass or cut!"
+
+/obj/structure/flora/tree/fur/wall/attackby(obj/item/weapon/W, mob/living/user)
+ return
+
/area/redgate/stardog
name = "flesh abyss"
icon_state = "redblatri"
@@ -235,7 +385,48 @@
name = "star dog"
icon_state = "redblacir"
semirandom = TRUE
- valid_mobs = list(list(/mob/living/simple_mob/vore/woof))
+ valid_mobs = list(
+ list(
+ /mob/living/simple_mob/vore/woof,
+ /mob/living/simple_mob/vore/woof/hostile/ranged,
+ /mob/living/simple_mob/vore/woof/hostile/terrible
+ ) = 100,
+ list(
+ /mob/living/simple_mob/vore/wolf,
+ /mob/living/simple_mob/vore/wolf/direwolf,
+ /mob/living/simple_mob/vore/greatwolf
+ ) = 50,
+ list(
+ /mob/living/simple_mob/vore/otie,
+ /mob/living/simple_mob/vore/otie/friendly/chubby,
+ /mob/living/simple_mob/vore/otie/red,
+ /mob/living/simple_mob/vore/otie/red/chubby
+ ) = 50,
+ list(
+ /mob/living/simple_mob/animal/passive/dog/corgi,
+ /mob/living/simple_mob/animal/passive/dog/brittany,
+ /mob/living/simple_mob/animal/passive/dog/bullterrier,
+ /mob/living/simple_mob/animal/passive/dog/tamaskan
+ ) = 1,
+ list(
+ /mob/living/simple_mob/animal/space/carp = 100,
+ /mob/living/simple_mob/animal/space/carp/large = 25,
+ /mob/living/simple_mob/animal/space/carp/large/huge = 10,
+ /mob/living/simple_mob/animal/space/bats = 5,
+ /mob/living/simple_mob/animal/space/bear = 5,
+ /mob/living/simple_mob/animal/space/gnat = 5,
+ /mob/living/simple_mob/animal/space/ray = 5,
+ /mob/living/simple_mob/animal/space/shark = 5
+ ),
+ list(
+ /mob/living/simple_mob/vore/alienanimals/succlet = 50,
+ /mob/living/simple_mob/vore/alienanimals/succlet/dark = 50,
+ /mob/living/simple_mob/vore/alienanimals/succlet/moss = 50,
+ /mob/living/simple_mob/vore/alienanimals/succlet/poison = 10,
+ /mob/living/simple_mob/vore/alienanimals/succlet/big = 10,
+ /mob/living/simple_mob/vore/alienanimals/succlet/king = 1
+ ) = 10
+ )
semirandom_groups = 5
semirandom_group_min = 1
semirandom_group_max = 10
diff --git a/code/modules/vore/resizing/resize_vr.dm b/code/modules/vore/resizing/resize_vr.dm
index d8fd0d8203..7ca4cdae6c 100644
--- a/code/modules/vore/resizing/resize_vr.dm
+++ b/code/modules/vore/resizing/resize_vr.dm
@@ -171,7 +171,7 @@
* Attempt to scoop up this mob up into H's hands, if the size difference is large enough.
* @return false if normal code should continue, 1 to prevent normal code.
*/
-/mob/living/proc/attempt_to_scoop(mob/living/M, mob/living/G) //second one is for the Grabber, only exists for animals to self-grab
+/mob/living/proc/attempt_to_scoop(mob/living/M, mob/living/G, ignore_size = FALSE) //second one is for the Grabber, only exists for animals to self-grab
if(!(pickup_pref && M.pickup_pref && M.pickup_active))
return 0
if(!(M.a_intent == I_HELP))
@@ -185,7 +185,7 @@
var/mob/living/simple_mob/SA = M
if(!SA.has_hands)
return 0
- if(size_diff >= 0.50 || mob_size < MOB_SMALL || size_diff >= get_effective_size())
+ if(size_diff >= 0.50 || mob_size < MOB_SMALL || size_diff >= get_effective_size() || ignore_size)
if(buckled)
to_chat(usr,"You have to unbuckle \the [src] before you pick them up.")
return 0
diff --git a/maps/redgate/stardog.dmm b/maps/redgate/stardog.dmm
index 02d2d9d648..71bb5d3ac0 100644
--- a/maps/redgate/stardog.dmm
+++ b/maps/redgate/stardog.dmm
@@ -1,7 +1,7 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"a" = (
/obj/effect/fake_sun,
-/turf/unsimulated/wall/dark,
+/turf/simulated/flesh,
/area/redgate/stardog)
"b" = (
/obj/structure/bed/chair/sofa/corp/right{
@@ -29,16 +29,22 @@
},
/turf/simulated/floor/tiled/steel_ridged,
/area/redgate/stardog/lounge)
+"f" = (
+/turf/simulated/floor/outdoors/fur/woof/wall,
+/area/redgate/stardog/outside)
"h" = (
/obj/structure/bed/chair/sofa/corp,
/turf/simulated/floor/lino,
/area/redgate/stardog/lounge)
"i" = (
/obj/effect/overmap/visitable/ship/simplemob/stardog,
-/turf/unsimulated/wall/dark,
+/turf/simulated/flesh,
/area/redgate/stardog)
+"j" = (
+/turf/simulated/flesh,
+/area/redgate/stardog/outside)
"k" = (
-/turf/unsimulated/wall/dark,
+/turf/simulated/flesh,
/area/redgate/stardog)
"l" = (
/obj/structure/bed/chair/sofa/corp/left,
@@ -288,112 +294,113 @@
/obj/machinery/light{
dir = 1
},
+/obj/trader/capture_crystal/cash,
/turf/simulated/floor/wood,
/area/redgate/stardog/lounge)
(1,1,1) = {"
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
L
L
L
L
u
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
M
M
M
M
J
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
k
k
k
@@ -434,7 +441,7 @@ i
a
"}
(2,1,1) = {"
-C
+f
o
o
o
@@ -484,8 +491,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -535,8 +542,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -576,7 +583,7 @@ p
k
"}
(3,1,1) = {"
-C
+f
o
o
o
@@ -626,8 +633,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -677,8 +684,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -718,7 +725,7 @@ p
k
"}
(4,1,1) = {"
-C
+f
o
o
o
@@ -768,8 +775,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -819,8 +826,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -860,7 +867,7 @@ p
k
"}
(5,1,1) = {"
-C
+f
o
o
o
@@ -910,8 +917,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -961,8 +968,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1002,7 +1009,7 @@ p
k
"}
(6,1,1) = {"
-C
+f
o
o
o
@@ -1052,8 +1059,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1103,8 +1110,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1144,7 +1151,7 @@ p
k
"}
(7,1,1) = {"
-C
+f
o
o
o
@@ -1194,8 +1201,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1245,8 +1252,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1286,7 +1293,7 @@ p
k
"}
(8,1,1) = {"
-C
+f
o
o
o
@@ -1336,8 +1343,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1387,8 +1394,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1428,7 +1435,7 @@ p
k
"}
(9,1,1) = {"
-C
+f
o
o
o
@@ -1478,8 +1485,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1529,8 +1536,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1570,7 +1577,7 @@ p
k
"}
(10,1,1) = {"
-C
+f
o
o
o
@@ -1620,8 +1627,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1671,8 +1678,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1712,7 +1719,7 @@ p
k
"}
(11,1,1) = {"
-C
+f
o
o
o
@@ -1762,8 +1769,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1813,8 +1820,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1854,7 +1861,7 @@ p
k
"}
(12,1,1) = {"
-C
+f
o
o
o
@@ -1904,8 +1911,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -1955,8 +1962,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -1996,7 +2003,7 @@ p
k
"}
(13,1,1) = {"
-C
+f
o
o
o
@@ -2046,8 +2053,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2097,8 +2104,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2138,7 +2145,7 @@ p
k
"}
(14,1,1) = {"
-C
+f
o
o
o
@@ -2188,8 +2195,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2239,8 +2246,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2280,7 +2287,7 @@ p
k
"}
(15,1,1) = {"
-C
+f
o
o
o
@@ -2330,8 +2337,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2381,8 +2388,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2422,7 +2429,7 @@ p
k
"}
(16,1,1) = {"
-C
+f
o
o
o
@@ -2472,8 +2479,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2523,8 +2530,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2564,7 +2571,7 @@ p
k
"}
(17,1,1) = {"
-C
+f
o
o
o
@@ -2614,8 +2621,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2665,8 +2672,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2706,7 +2713,7 @@ p
k
"}
(18,1,1) = {"
-C
+f
o
o
o
@@ -2756,8 +2763,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2807,8 +2814,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2848,7 +2855,7 @@ p
k
"}
(19,1,1) = {"
-C
+f
o
o
o
@@ -2898,8 +2905,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -2949,8 +2956,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -2990,7 +2997,7 @@ p
k
"}
(20,1,1) = {"
-C
+f
o
o
o
@@ -3040,8 +3047,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3091,8 +3098,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3132,7 +3139,7 @@ p
k
"}
(21,1,1) = {"
-C
+f
o
o
o
@@ -3182,8 +3189,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3233,8 +3240,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3274,7 +3281,7 @@ p
k
"}
(22,1,1) = {"
-C
+f
o
o
o
@@ -3324,8 +3331,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3375,8 +3382,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3416,7 +3423,7 @@ p
k
"}
(23,1,1) = {"
-C
+f
o
o
o
@@ -3466,8 +3473,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3517,8 +3524,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3558,7 +3565,7 @@ p
k
"}
(24,1,1) = {"
-C
+f
o
o
o
@@ -3608,8 +3615,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3659,8 +3666,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3700,7 +3707,7 @@ p
k
"}
(25,1,1) = {"
-C
+f
o
o
o
@@ -3750,8 +3757,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3801,8 +3808,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3842,7 +3849,7 @@ p
k
"}
(26,1,1) = {"
-C
+f
o
o
o
@@ -3892,8 +3899,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -3943,8 +3950,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -3984,7 +3991,7 @@ p
k
"}
(27,1,1) = {"
-C
+f
o
o
o
@@ -4034,8 +4041,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4085,8 +4092,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4126,7 +4133,7 @@ p
k
"}
(28,1,1) = {"
-C
+f
o
o
o
@@ -4176,8 +4183,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4227,8 +4234,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4268,7 +4275,7 @@ p
k
"}
(29,1,1) = {"
-C
+f
o
o
o
@@ -4318,8 +4325,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4369,8 +4376,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4410,7 +4417,7 @@ p
k
"}
(30,1,1) = {"
-C
+f
o
o
o
@@ -4460,8 +4467,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4511,8 +4518,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4552,7 +4559,7 @@ p
k
"}
(31,1,1) = {"
-C
+f
o
o
o
@@ -4602,8 +4609,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4653,8 +4660,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4694,7 +4701,7 @@ p
k
"}
(32,1,1) = {"
-C
+f
o
o
o
@@ -4744,8 +4751,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4795,8 +4802,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4836,7 +4843,7 @@ p
k
"}
(33,1,1) = {"
-C
+f
o
o
o
@@ -4886,8 +4893,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -4937,8 +4944,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -4978,7 +4985,7 @@ p
k
"}
(34,1,1) = {"
-C
+f
o
o
o
@@ -5028,8 +5035,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5079,8 +5086,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5120,7 +5127,7 @@ p
k
"}
(35,1,1) = {"
-C
+f
o
o
o
@@ -5170,8 +5177,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5221,8 +5228,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5262,7 +5269,7 @@ p
k
"}
(36,1,1) = {"
-C
+f
o
o
o
@@ -5312,8 +5319,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5363,8 +5370,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5404,7 +5411,7 @@ p
k
"}
(37,1,1) = {"
-C
+f
o
o
o
@@ -5454,8 +5461,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5505,8 +5512,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5546,7 +5553,7 @@ p
k
"}
(38,1,1) = {"
-C
+f
o
o
o
@@ -5596,8 +5603,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5647,8 +5654,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5688,7 +5695,7 @@ p
k
"}
(39,1,1) = {"
-C
+f
o
o
o
@@ -5738,8 +5745,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5789,8 +5796,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5830,7 +5837,7 @@ p
k
"}
(40,1,1) = {"
-C
+f
o
o
o
@@ -5880,8 +5887,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -5931,8 +5938,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -5972,7 +5979,7 @@ p
k
"}
(41,1,1) = {"
-C
+f
o
o
o
@@ -6022,8 +6029,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6073,8 +6080,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6114,7 +6121,7 @@ p
k
"}
(42,1,1) = {"
-C
+f
o
o
o
@@ -6164,8 +6171,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6215,8 +6222,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6256,7 +6263,7 @@ p
k
"}
(43,1,1) = {"
-C
+f
o
o
o
@@ -6306,8 +6313,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6357,8 +6364,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6398,7 +6405,7 @@ p
k
"}
(44,1,1) = {"
-C
+f
o
o
o
@@ -6448,8 +6455,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6499,8 +6506,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6540,7 +6547,7 @@ p
k
"}
(45,1,1) = {"
-C
+f
o
o
o
@@ -6590,8 +6597,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6641,8 +6648,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6682,7 +6689,7 @@ p
k
"}
(46,1,1) = {"
-C
+f
o
o
o
@@ -6732,8 +6739,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6783,8 +6790,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6824,7 +6831,7 @@ p
k
"}
(47,1,1) = {"
-C
+f
o
o
o
@@ -6874,8 +6881,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -6925,8 +6932,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -6966,7 +6973,7 @@ p
k
"}
(48,1,1) = {"
-C
+f
o
o
o
@@ -7016,8 +7023,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -7067,8 +7074,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -7108,7 +7115,7 @@ p
k
"}
(49,1,1) = {"
-C
+f
o
o
o
@@ -7158,8 +7165,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -7209,8 +7216,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -7250,7 +7257,7 @@ p
k
"}
(50,1,1) = {"
-C
+f
o
o
o
@@ -7300,8 +7307,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -7351,8 +7358,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -7392,7 +7399,7 @@ p
k
"}
(51,1,1) = {"
-C
+f
o
o
o
@@ -7442,59 +7449,59 @@ o
o
o
o
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-p
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+k
p
p
p
@@ -7534,7 +7541,7 @@ p
k
"}
(52,1,1) = {"
-C
+f
o
o
o
@@ -7584,59 +7591,59 @@ o
o
o
o
-C
-C
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
+f
+j
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
p
p
p
@@ -7676,7 +7683,7 @@ p
k
"}
(53,1,1) = {"
-C
+f
o
o
o
@@ -7726,9 +7733,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -7818,7 +7825,7 @@ p
k
"}
(54,1,1) = {"
-C
+f
o
o
o
@@ -7868,9 +7875,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -7960,7 +7967,7 @@ p
k
"}
(55,1,1) = {"
-C
+f
o
o
o
@@ -8010,9 +8017,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8102,7 +8109,7 @@ p
k
"}
(56,1,1) = {"
-C
+f
o
o
o
@@ -8152,9 +8159,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8244,7 +8251,7 @@ p
k
"}
(57,1,1) = {"
-C
+f
o
o
o
@@ -8294,9 +8301,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8386,7 +8393,7 @@ p
k
"}
(58,1,1) = {"
-C
+f
o
o
o
@@ -8436,9 +8443,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8528,7 +8535,7 @@ p
k
"}
(59,1,1) = {"
-C
+f
o
o
o
@@ -8578,9 +8585,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8670,7 +8677,7 @@ p
k
"}
(60,1,1) = {"
-C
+f
o
o
o
@@ -8720,9 +8727,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8812,7 +8819,7 @@ p
k
"}
(61,1,1) = {"
-C
+f
o
o
o
@@ -8862,9 +8869,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -8954,7 +8961,7 @@ p
k
"}
(62,1,1) = {"
-C
+f
o
o
o
@@ -9004,9 +9011,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -9096,7 +9103,7 @@ p
k
"}
(63,1,1) = {"
-C
+f
o
o
o
@@ -9146,9 +9153,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -9238,7 +9245,7 @@ p
k
"}
(64,1,1) = {"
-C
+f
o
o
o
@@ -9288,9 +9295,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -9380,7 +9387,7 @@ p
k
"}
(65,1,1) = {"
-C
+f
o
o
o
@@ -9430,9 +9437,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -9522,7 +9529,7 @@ p
k
"}
(66,1,1) = {"
-C
+f
o
o
o
@@ -9572,9 +9579,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -9664,7 +9671,7 @@ p
k
"}
(67,1,1) = {"
-C
+f
o
o
o
@@ -9714,9 +9721,9 @@ o
o
o
o
+f
C
-C
-p
+k
p
p
p
@@ -9858,7 +9865,7 @@ o
d
U
C
-p
+k
p
p
p
@@ -10000,7 +10007,7 @@ o
d
D
C
-p
+k
p
p
p
@@ -10142,7 +10149,7 @@ o
d
D
C
-p
+k
p
p
p
@@ -10284,7 +10291,7 @@ o
d
D
C
-p
+k
p
p
p
@@ -10426,7 +10433,7 @@ o
d
D
C
-p
+k
p
p
p
@@ -10516,7 +10523,7 @@ p
k
"}
(73,1,1) = {"
-C
+f
o
o
o
@@ -10566,9 +10573,9 @@ o
o
o
o
+f
C
-C
-p
+k
p
p
p
@@ -10658,7 +10665,7 @@ p
k
"}
(74,1,1) = {"
-C
+f
o
o
o
@@ -10708,9 +10715,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -10800,7 +10807,7 @@ p
k
"}
(75,1,1) = {"
-C
+f
o
o
o
@@ -10850,9 +10857,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -10942,7 +10949,7 @@ p
k
"}
(76,1,1) = {"
-C
+f
o
o
o
@@ -10992,9 +10999,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11084,7 +11091,7 @@ p
k
"}
(77,1,1) = {"
-C
+f
o
o
o
@@ -11134,9 +11141,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11226,7 +11233,7 @@ p
k
"}
(78,1,1) = {"
-C
+f
o
o
o
@@ -11276,9 +11283,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11368,7 +11375,7 @@ p
k
"}
(79,1,1) = {"
-C
+f
o
o
o
@@ -11418,9 +11425,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11510,7 +11517,7 @@ p
k
"}
(80,1,1) = {"
-C
+f
o
o
o
@@ -11560,9 +11567,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11652,7 +11659,7 @@ p
k
"}
(81,1,1) = {"
-C
+f
o
o
o
@@ -11702,9 +11709,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11794,7 +11801,7 @@ p
k
"}
(82,1,1) = {"
-C
+f
o
o
o
@@ -11844,9 +11851,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -11936,7 +11943,7 @@ p
k
"}
(83,1,1) = {"
-C
+f
o
o
o
@@ -11986,9 +11993,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12078,7 +12085,7 @@ p
k
"}
(84,1,1) = {"
-C
+f
o
o
o
@@ -12128,9 +12135,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12220,7 +12227,7 @@ p
k
"}
(85,1,1) = {"
-C
+f
o
o
o
@@ -12270,9 +12277,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12362,7 +12369,7 @@ p
k
"}
(86,1,1) = {"
-C
+f
o
o
o
@@ -12412,9 +12419,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12504,7 +12511,7 @@ p
k
"}
(87,1,1) = {"
-C
+f
o
o
o
@@ -12554,9 +12561,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12646,7 +12653,7 @@ p
k
"}
(88,1,1) = {"
-C
+f
o
o
o
@@ -12696,9 +12703,9 @@ o
o
o
o
-C
-C
-p
+f
+j
+k
p
p
p
@@ -12788,7 +12795,7 @@ p
k
"}
(89,1,1) = {"
-C
+f
o
o
o
@@ -12838,59 +12845,59 @@ o
o
o
o
-C
-C
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
-p
+f
+j
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
+k
p
p
p
@@ -12930,7 +12937,7 @@ p
k
"}
(90,1,1) = {"
-C
+f
o
o
o
@@ -12980,59 +12987,59 @@ o
o
o
o
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-p
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+k
p
p
p
@@ -13072,7 +13079,7 @@ p
k
"}
(91,1,1) = {"
-C
+f
o
o
o
@@ -13122,8 +13129,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13173,8 +13180,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13214,7 +13221,7 @@ p
k
"}
(92,1,1) = {"
-C
+f
o
o
o
@@ -13264,8 +13271,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13315,8 +13322,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13356,7 +13363,7 @@ p
k
"}
(93,1,1) = {"
-C
+f
o
o
o
@@ -13406,8 +13413,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13457,8 +13464,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13498,7 +13505,7 @@ p
k
"}
(94,1,1) = {"
-C
+f
o
o
o
@@ -13548,8 +13555,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13599,8 +13606,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13640,7 +13647,7 @@ p
k
"}
(95,1,1) = {"
-C
+f
o
o
o
@@ -13690,8 +13697,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13741,8 +13748,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13782,7 +13789,7 @@ p
k
"}
(96,1,1) = {"
-C
+f
o
o
o
@@ -13832,8 +13839,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -13883,8 +13890,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -13924,7 +13931,7 @@ p
k
"}
(97,1,1) = {"
-C
+f
o
o
o
@@ -13974,8 +13981,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14025,8 +14032,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14066,7 +14073,7 @@ p
k
"}
(98,1,1) = {"
-C
+f
o
o
o
@@ -14116,8 +14123,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14167,8 +14174,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14208,7 +14215,7 @@ p
k
"}
(99,1,1) = {"
-C
+f
o
o
o
@@ -14258,8 +14265,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14309,8 +14316,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14350,7 +14357,7 @@ p
k
"}
(100,1,1) = {"
-C
+f
o
o
o
@@ -14400,8 +14407,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14451,8 +14458,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14492,7 +14499,7 @@ p
k
"}
(101,1,1) = {"
-C
+f
o
o
o
@@ -14542,8 +14549,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14593,8 +14600,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14634,7 +14641,7 @@ p
k
"}
(102,1,1) = {"
-C
+f
o
o
o
@@ -14684,8 +14691,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14735,8 +14742,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14776,7 +14783,7 @@ p
k
"}
(103,1,1) = {"
-C
+f
o
o
o
@@ -14826,8 +14833,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -14877,8 +14884,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -14918,7 +14925,7 @@ p
k
"}
(104,1,1) = {"
-C
+f
o
o
o
@@ -14968,8 +14975,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15019,8 +15026,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15060,7 +15067,7 @@ p
k
"}
(105,1,1) = {"
-C
+f
o
o
o
@@ -15110,8 +15117,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15161,8 +15168,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15202,7 +15209,7 @@ p
k
"}
(106,1,1) = {"
-C
+f
o
o
o
@@ -15252,8 +15259,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15303,8 +15310,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15344,7 +15351,7 @@ p
k
"}
(107,1,1) = {"
-C
+f
o
o
o
@@ -15394,8 +15401,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15445,8 +15452,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15486,7 +15493,7 @@ p
k
"}
(108,1,1) = {"
-C
+f
o
o
o
@@ -15536,8 +15543,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15587,8 +15594,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15628,7 +15635,7 @@ p
k
"}
(109,1,1) = {"
-C
+f
o
o
o
@@ -15678,8 +15685,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15729,8 +15736,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15770,7 +15777,7 @@ p
k
"}
(110,1,1) = {"
-C
+f
o
o
o
@@ -15820,8 +15827,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -15871,8 +15878,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -15912,7 +15919,7 @@ p
k
"}
(111,1,1) = {"
-C
+f
o
o
o
@@ -15962,8 +15969,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16013,8 +16020,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16054,7 +16061,7 @@ p
k
"}
(112,1,1) = {"
-C
+f
o
o
o
@@ -16104,8 +16111,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16155,8 +16162,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16196,7 +16203,7 @@ p
k
"}
(113,1,1) = {"
-C
+f
o
o
o
@@ -16246,8 +16253,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16297,8 +16304,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16338,7 +16345,7 @@ p
k
"}
(114,1,1) = {"
-C
+f
o
o
o
@@ -16388,8 +16395,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16439,8 +16446,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16480,7 +16487,7 @@ p
k
"}
(115,1,1) = {"
-C
+f
o
o
o
@@ -16530,8 +16537,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16581,8 +16588,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16622,7 +16629,7 @@ p
k
"}
(116,1,1) = {"
-C
+f
o
o
o
@@ -16672,8 +16679,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16723,8 +16730,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16764,7 +16771,7 @@ p
k
"}
(117,1,1) = {"
-C
+f
o
o
o
@@ -16814,8 +16821,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -16865,8 +16872,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -16906,7 +16913,7 @@ p
k
"}
(118,1,1) = {"
-C
+f
o
o
o
@@ -16956,8 +16963,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17007,8 +17014,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17048,7 +17055,7 @@ p
k
"}
(119,1,1) = {"
-C
+f
o
o
o
@@ -17098,8 +17105,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17149,8 +17156,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17190,7 +17197,7 @@ p
k
"}
(120,1,1) = {"
-C
+f
o
o
o
@@ -17240,8 +17247,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17291,8 +17298,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17332,7 +17339,7 @@ p
k
"}
(121,1,1) = {"
-C
+f
o
o
o
@@ -17382,8 +17389,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17433,8 +17440,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17474,7 +17481,7 @@ p
k
"}
(122,1,1) = {"
-C
+f
o
o
o
@@ -17524,8 +17531,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17575,8 +17582,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17616,7 +17623,7 @@ p
k
"}
(123,1,1) = {"
-C
+f
o
o
o
@@ -17666,8 +17673,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17717,8 +17724,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17758,7 +17765,7 @@ p
k
"}
(124,1,1) = {"
-C
+f
o
o
o
@@ -17808,8 +17815,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -17859,8 +17866,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -17900,7 +17907,7 @@ p
k
"}
(125,1,1) = {"
-C
+f
o
o
o
@@ -17950,8 +17957,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18001,8 +18008,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18042,7 +18049,7 @@ p
k
"}
(126,1,1) = {"
-C
+f
o
o
o
@@ -18092,8 +18099,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18143,8 +18150,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18184,7 +18191,7 @@ p
k
"}
(127,1,1) = {"
-C
+f
o
o
o
@@ -18234,8 +18241,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18285,8 +18292,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18326,7 +18333,7 @@ p
k
"}
(128,1,1) = {"
-C
+f
o
o
o
@@ -18376,8 +18383,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18427,8 +18434,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18468,7 +18475,7 @@ p
k
"}
(129,1,1) = {"
-C
+f
o
o
o
@@ -18518,8 +18525,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18569,8 +18576,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18610,7 +18617,7 @@ p
k
"}
(130,1,1) = {"
-C
+f
o
o
o
@@ -18660,8 +18667,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18711,8 +18718,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18752,7 +18759,7 @@ p
k
"}
(131,1,1) = {"
-C
+f
o
o
o
@@ -18802,8 +18809,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18853,8 +18860,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -18894,7 +18901,7 @@ p
k
"}
(132,1,1) = {"
-C
+f
o
o
o
@@ -18944,8 +18951,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -18995,8 +19002,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19036,7 +19043,7 @@ p
k
"}
(133,1,1) = {"
-C
+f
o
o
o
@@ -19086,8 +19093,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19137,8 +19144,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19178,7 +19185,7 @@ p
k
"}
(134,1,1) = {"
-C
+f
o
o
o
@@ -19228,8 +19235,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19279,8 +19286,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19320,7 +19327,7 @@ p
k
"}
(135,1,1) = {"
-C
+f
o
o
o
@@ -19370,8 +19377,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19421,8 +19428,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19462,7 +19469,7 @@ p
k
"}
(136,1,1) = {"
-C
+f
o
o
o
@@ -19512,8 +19519,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19563,8 +19570,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19604,7 +19611,7 @@ p
k
"}
(137,1,1) = {"
-C
+f
o
o
o
@@ -19654,8 +19661,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19705,8 +19712,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19746,7 +19753,7 @@ p
k
"}
(138,1,1) = {"
-C
+f
o
o
o
@@ -19796,8 +19803,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19847,8 +19854,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -19888,7 +19895,7 @@ p
k
"}
(139,1,1) = {"
-C
+f
o
o
o
@@ -19938,8 +19945,8 @@ o
o
o
o
-C
-C
+f
+f
o
o
o
@@ -19989,8 +19996,8 @@ o
o
o
o
-C
-p
+f
+k
p
p
p
@@ -20030,108 +20037,108 @@ p
k
"}
(140,1,1) = {"
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
F
F
F
F
K
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
A
A
A
A
c
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
-C
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
+f
k
k
k
From 6e087c13288fc1fe024f16901b25565dc5fa010e Mon Sep 17 00:00:00 2001
From: Runa Dacino
Date: Tue, 25 Jul 2023 12:08:40 +0200
Subject: [PATCH 10/63] tweak: Adds ability to add atoms to entity narrate
while in buildmode
- Adds "ALT MMB" under "AI MODE" in buildmode to bring up add_mob_for_narration verb
- Updates Hint with new information
- Fixes bad hint for wander toggle (Shift-> CTRL for NOT wander)
---
code/modules/admin/verbs/buildmode.dm | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/code/modules/admin/verbs/buildmode.dm b/code/modules/admin/verbs/buildmode.dm
index 8dabdc627a..be587b6f41 100644
--- a/code/modules/admin/verbs/buildmode.dm
+++ b/code/modules/admin/verbs/buildmode.dm
@@ -159,8 +159,9 @@
Left Mouse Button + alt on AI mob = Toggle hostility on mob
\
Left Mouse Button + shift on AI mob = Toggle AI (also resets)
\
Left Mouse Button + ctrl on AI mob = Copy mob faction
\
+ Middle Mouse Button + alt on any atom = Add atom to entity narrate menu
\
Middle Mouse Button + shift on any = Set selected mob(s) to wander
\
- Middle Mouse Button + shift on any = Set selected mob(s) to NOT wander
\
+ Middle Mouse Button + ctrl on any = Set selected mob(s) to NOT wander
\
Right Mouse Button + ctrl on any mob = Paste mob faction copied with Left Mouse Button + shift
\
Right Mouse Button on enemy mob = Command selected mobs to attack mob
\
Right Mouse Button on allied mob = Command selected mobs to follow mob
\
@@ -558,6 +559,9 @@
for(var/mob/living/unit in holder.selected_mobs)
var/datum/ai_holder/AI = unit.ai_holder
AI.wander = FALSE
+ if(pa.Find("alt") && isatom(object))
+ to_chat(user, SPAN_NOTICE("Adding [object] to Entity Narrate List!"))
+ user.client.add_mob_for_narration(object)
if(pa.Find("right"))
From 333941d71e7536368ca9560273a43a2bd1558540 Mon Sep 17 00:00:00 2001
From: VerySoft
Date: Wed, 26 Jul 2023 04:37:08 -0400
Subject: [PATCH 11/63] 437
---
code/modules/awaymissions/redgate.dm | 19 +-
.../subtypes/animal/alien animals/stardog.dm | 388 +-
.../living/simple_mob/subtypes/vore/vore.dm | 8 +-
code/modules/overmap/ships/ship_vr.dm | 10 +-
icons/obj/flesh_machines.dmi | Bin 0 -> 9724 bytes
icons/obj/landmark_vr.dmi | Bin 798 -> 847 bytes
icons/turf/fur.dmi | Bin 7374 -> 7669 bytes
maps/expedition_vr/beach/beach.dmm | 24 +-
maps/offmap_vr/talon/talon_v2.dmm | 12 +-
maps/redgate/stardog.dmm | 39749 ++++++++--------
maps/stellar_delight/stellar_delight1.dmm | 17 +-
maps/stellar_delight/stellar_delight3.dmm | 36125 +++++++++++++-
12 files changed, 54779 insertions(+), 21573 deletions(-)
create mode 100644 icons/obj/flesh_machines.dmi
diff --git a/code/modules/awaymissions/redgate.dm b/code/modules/awaymissions/redgate.dm
index b9757e9aac..05310fafaa 100644
--- a/code/modules/awaymissions/redgate.dm
+++ b/code/modules/awaymissions/redgate.dm
@@ -9,7 +9,14 @@
pixel_x = -16
var/obj/structure/redgate/target
- var/list/exceptions = list(/obj/structure/ore_box) //made it a var so that GMs or map makers can selectively allow things to pass through
+ var/secret = FALSE //If either end of the redgate has this enabled, ghosts will not be able to click to teleport
+ var/list/exceptions = list(
+ /obj/structure/ore_box
+ ) //made it a var so that GMs or map makers can selectively allow things to pass through
+ var/list/restrictions = list(
+ /mob/living/simple_mob/vore/overmap/stardog,
+ /mob/living/simple_mob/vore/bigdragon
+ ) //There are some things we don't want to come through no matter what.
/obj/structure/redgate/Destroy()
if(target)
@@ -27,6 +34,10 @@
keycheck = FALSE //we'll allow it
else
return
+
+ if(M.type in restrictions) //Some stuff we don't want to bring EVEN IF it has a key.
+ return
+
if(keycheck) //exceptions probably won't have a ckey
if(!M.ckey) //We only want players, no bringing the weird stuff on the other side back
return
@@ -71,8 +82,10 @@
/obj/structure/redgate/attack_ghost(var/mob/observer/dead/user)
- if(target && user?.client?.holder)
- user.forceMove(get_turf(target))
+
+ if(target)
+ if(!(secret || target.secret) || user?.client?.holder)
+ user.forceMove(get_turf(target))
else
return ..()
diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
index ec0f1da608..925d257934 100644
--- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm
@@ -54,8 +54,11 @@
"rad" = 1000
)
- movement_cooldown = 0
+ movement_cooldown = 5
+ copy_prefs_to_mob = FALSE
var/affinity = 0
+ var/obj/structure/control_pod/control_node = null
+ var/shipvore = FALSE //Enable this to allow the star dog to eat spaceships by dragging them onto its sprite.
/mob/living/simple_mob/vore/overmap/stardog/attack_hand(mob/living/user)
if(!(user.pickup_pref && user.pickup_active))
@@ -91,6 +94,17 @@
/mob/living/simple_mob/vore/overmap/stardog/Life()
. = ..()
+ affinity = 9999
+ nutrition = 9999
+ if(devourable)
+ devourable = FALSE
+ digestable = FALSE
+ if(ckey && control_node)
+ adjust_affinity(-3)
+ if(!affinity)
+ control_node.eject()
+ if(!ckey && resting)
+ lay_down()
if(istype(loc, /turf/unsimulated/map))
if(!invisibility)
@@ -102,6 +116,7 @@
melee_damage_upper = 100
mob_size = MOB_HUGE
child_om_marker.set_light(5, 1, "#ff8df5")
+ movement_cooldown = 5
else if(invisibility)
invisibility = 0
@@ -112,11 +127,96 @@
melee_damage_upper = 5
mob_size = MOB_SMALL
child_om_marker.set_light(0)
+ movement_cooldown = 0
/mob/living/simple_mob/vore/overmap/stardog/Initialize()
. = ..()
child_om_marker.set_light(5, 1, "#ff8df5")
+/mob/living/simple_mob/vore/overmap/stardog/Destroy()
+ if(control_node)
+ control_node.host = null
+ control_node = null
+ return ..()
+
+/mob/living/simple_mob/vore/overmap/stardog/Stat()
+ ..()
+ if(statpanel("Status"))
+ stat(null, "Affinity: [round(affinity)]")
+
+/mob/living/simple_mob/vore/overmap/stardog/proc/adjust_affinity(amount)
+ if(amount > 0)
+ var/multiplier = nutrition / 250
+ affinity += (amount * multiplier)
+ if(amount < 0)
+ affinity -= amount
+ if(affinity <= 0)
+ affinity = 0
+
+/mob/living/simple_mob/vore/overmap/stardog/verb/eject()
+ set name = "Eject"
+ set desc = "Stop controlling the dog and return to your own body."
+ set category = "Abilities"
+
+ control_node.eject()
+
+/mob/living/simple_mob/vore/overmap/stardog/verb/eat_space_weather()
+ set name = "Eat Space Weather"
+ set desc = "Eat carp or rocks!"
+ set category = "Abilities"
+
+/mob/living/simple_mob/vore/overmap/stardog/verb/transition()
+ set name = "Transition"
+ set desc = "Attempt to go to the location you have arrived at, or return to space!"
+ set category = "Abilities"
+
+ if(nutrition <= 500)
+ to_chat(src, "You're too hungry...")
+ return
+ if(istype(loc, /turf/unsimulated/map))
+ var/list/destinations = list()
+ var/list/our_maps = list()
+ for(var/obj/effect/overmap/visitable/v in loc)
+ if(v == child_om_marker)
+ continue
+ if(!v.map_z.len)
+ continue
+ for(var/our_z in v.map_z)
+ our_maps |= v.map_z
+ if(!our_maps.len)
+ to_chat(src, "There is nowhere nearby to go to! You need to get closer to somewhere you can transition to before you can transition.")
+ return
+ for(var/obj/effect/landmark/l in landmarks_list)
+ if(l.z in our_maps)
+ if(istype(l,/obj/effect/landmark/stardog))
+ destinations |= l
+
+ if(!destinations.len)
+ to_chat(src, "There is nowhere nearby to land! You need to get closer to somewhere else that you can transition to before you can transition.")
+ return
+ var/obj/effect/overmap/visitable/our_dest = tgui_input_list(src, "Where would you like to try to go?", "Transition", destinations, timeout = 10 SECONDS)
+ if(!our_dest)
+ return
+ to_chat(src, "You begin to transition down to \the [our_dest], stay still...")
+ if(!do_after(src, 15 SECONDS, our_dest, exclusive = TRUE))
+ to_chat(src, "You were interrupted.")
+ return
+ visible_message("\The [src] disappears!!!")
+ forceMove(get_turf(our_dest))
+ adjust_nutrition(-1000)
+ visible_message("\The [src] steps into the area as if from nowhere!")
+
+ else
+ to_chat(src, "You begin to transition back to space, stay still...")
+ if(!do_after(src, 15 SECONDS, exclusive = TRUE))
+ to_chat(src, "You were interrupted.")
+ return
+
+ visible_message("\The [src] disappears!!!")
+ forceMove(get_turf(get_overmap_sector(z)))
+ adjust_nutrition(-500)
+
+
/obj/effect/overmap/visitable/ship/simplemob/stardog
icon = 'icons/obj/overmap.dmi'
icon_state = "ship"
@@ -126,7 +226,7 @@
skybox_icon_state = "space_dog"
skybox_pixel_x = 0
skybox_pixel_y = 0
- glide_size = 6
+ glide_size = 1
parent_mob_type = /mob/living/simple_mob/vore/overmap/stardog
scanner_desc = "CONFIGURE ME"
@@ -184,6 +284,9 @@
color = "#c69c85"
tree_color = "#eeb698"
+/turf/simulated/floor/outdoors/fur/woof/no_trees
+ icon_state = "furX"
+
/turf/simulated/floor/outdoors/fur/Initialize()
. = ..()
if(tree_chance && prob(tree_chance) && !check_density())
@@ -201,6 +304,7 @@
tree_color = null
tree_chance = 100
tree_type = /obj/structure/flora/tree/fur/wall
+ outdoors = FALSE
/turf/simulated/floor/outdoors/fur/verb/pet()
set name = "Pet Fur"
@@ -213,7 +317,7 @@
if(s && istype(s, /obj/effect/overmap/visitable/ship/simplemob/stardog))
var/mob/living/simple_mob/vore/overmap/stardog/m = s.parent
- m.affinity ++
+ m.adjust_affinity(1)
if(m.affinity >= 10 && prob(5))
m.visible_message("\The [m]'s tail wags happily!")
@@ -363,6 +467,11 @@
s.ai_holder.hostile = FALSE
s.ai_holder.retaliate = TRUE
+ var/obj/effect/overmap/visitable/ship/simplemob/stardog/s = get_overmap_sector(z)
+ if(s && istype(s,/obj/effect/overmap/visitable/ship/simplemob/stardog))
+ var/mob/living/simple_mob/vore/overmap/stardog/dog = s.parent
+ dog.adjust_affinity(15)
+
qdel(src)
/obj/structure/flora/tree/fur/wall
@@ -431,3 +540,276 @@
semirandom_group_min = 1
semirandom_group_max = 10
mob_intent = "retaliate"
+
+/obj/structure/control_pod
+ name = "node"
+ desc = "Fleshy!"
+ icon = 'icons/obj/flesh_machines.dmi'
+ icon_state = "control_node0"
+
+ density = TRUE
+ anchored = TRUE
+ pixel_x = -16
+ pixel_y = -10
+ unacidable = TRUE
+
+ var/mob/living/simple_mob/vore/overmap/stardog/host
+ var/mob/living/controller
+
+/obj/structure/control_pod/Initialize(mapload)
+ . = ..()
+ set_up()
+
+/obj/structure/control_pod/proc/set_up()
+ var/obj/effect/overmap/visitable/ship/simplemob/stardog/s = get_overmap_sector(z)
+ if(istype(s,/obj/effect/overmap/visitable/ship/simplemob/stardog))
+ var/mob/living/simple_mob/vore/overmap/stardog/dog = s.parent
+ if(!dog.control_node)
+ host = dog
+ dog.control_node = src
+
+/obj/structure/control_pod/Destroy()
+ if(host)
+ host.control_node = null
+ host = null
+ return ..()
+
+/obj/structure/control_pod/attack_hand(mob/living/user)
+ . = ..()
+ if(!host)
+ set_up()
+ if(!host)
+ to_chat(user, "It doesn't respond...")
+ return
+ if(controller)
+ to_chat(user, "\The [controller] is already connected! There's no room for you right now!")
+ return
+ control(user)
+
+/obj/structure/control_pod/proc/control(mob/living/user)
+ if(!host.affinity)
+ to_chat(user, "As you press your hand to \the [src], it resists your advance... A sense of longing ripples through your mind...")
+ return
+ if(controller)
+ to_chat(user, "\The [controller] is already connected! There's no room for you right now!")
+ return
+ user.visible_message("\The [user] reaches out to touch \the [src]...","You reach out to touch \the [src]...")
+ if(!do_after(user, 10 SECONDS, src, exclusive = TRUE))
+ user.visible_message("\The [user] pulls back from \the [src].","You pull back from \the [src].")
+ return
+ if(controller)
+ to_chat(user, "\The [controller] is already connected! There's no room for you right now!")
+ return
+ controller = user
+ visible_message("\The [src] accepts \the [controller], submerging them beneath the surface of the flesh!")
+ user.forceMove(src)
+ host.ckey = user.ckey
+ log_admin("[host.ckey] has taken contol of \the [host].")
+ icon_state = "control_node1"
+ plane = ABOVE_MOB_PLANE
+ set_light(5, 0.75, "#f94bff")
+
+/obj/structure/control_pod/proc/eject()
+ to_chat(host, "You feel your control over \the [host] slip away from you!")
+ controller.forceMove(get_turf(src))
+ controller.ckey = host.ckey
+ visible_message("\The [controller] is ejected from \the [src], tumbling free!")
+ log_admin("[controller.ckey] is no longer controlling [host], they have been returned to their body, [controller].")
+ controller = null
+ icon_state = "control_node0"
+ plane = OBJ_PLANE
+ set_light(0)
+
+/obj/effect/landmark/stardog
+ name = "stardog landing"
+ icon = 'icons/obj/landmark_vr.dmi'
+ icon_state = "transition"
+
+/obj/effect/landmark/stardog/Initialize()
+ . = ..()
+ var/area/a = get_area(src)
+ name = a.name
+
+/obj/machinery/computer/ship/navigation/verb/emote_beyond(message as message)
+ set name = "Emote Beyond"
+ set desc = "Emote to those beyond the ship!"
+ set category = "IC"
+ set src in oview(7)
+
+ if(!isliving(usr))
+ return
+ var/mob/living/L = usr
+ if(L.client.prefs.muted & MUTE_IC)
+ to_chat(L, "You cannot speak in IC (muted).")
+ return
+ if (!message)
+ message = tgui_input_text(usr, "Type a message to emote.","Emote Beyond")
+ message = sanitize_or_reflect(message,L)
+ if (!message)
+ return
+ if (L.stat == DEAD)
+ return L.say_dead(message)
+ var/obj/effect/overmap/visitable/ship/s = get_overmap_sector(z)
+ if(!s || !istype(s, /obj/effect/overmap/visitable/ship))
+ to_chat(L, "You can't do that here.")
+ return
+
+ log_subtle(message,L)
+ message = "[L] [message]"
+ message = "(From within \the [s]) " + message
+ message = encode_html_emphasis(message)
+
+ var/undisplayed_message = "[L] does something too subtle for you to see."
+ var/list/vis = get_mobs_and_objs_in_view_fast(get_turf(s),1,2)
+ var/list/vis_mobs = vis["mobs"]
+ vis_mobs |= L
+ for(var/mob/M as anything in vis_mobs)
+ if(isnewplayer(M))
+ continue
+ if(isobserver(M) && !L.is_preference_enabled(/datum/client_preference/whisubtle_vis) && !M.client?.holder)
+ spawn(0)
+ M.show_message(undisplayed_message, 2)
+ else
+ spawn(0)
+ M.show_message(message, 2)
+ if(M.is_preference_enabled(/datum/client_preference/subtle_sounds))
+ M << sound('sound/talksounds/subtle_sound.ogg', volume = 50)
+
+/area/redgate/stardog/eyes
+
+ name = "eye"
+ icon_state = "bluwhicir"
+
+ var/list/our_eyes = list()
+
+
+/area/redgate/stardog/eyes/Entered(mob/M)
+ . = ..()
+ consider_eyes()
+
+/area/redgate/stardog/eyes/Exited(atom/movable/AM, newLoc)
+ . = ..()
+ consider_eyes()
+
+/area/redgate/stardog/eyes/proc/consider_eyes()
+ var/close = FALSE
+ var/list/check = get_area_turfs(/area/redgate/stardog/eyes)
+ for(var/turf/t in check)
+ for(var/thing in t.contents)
+ if(istype(thing, /obj/effect/dog_eye))
+ continue
+ if(isobj(thing) || ismob(thing))
+ close = TRUE
+
+ for(var/obj/effect/dog_eye/e in our_eyes)
+ if(close)
+ e.icon_state = "eye_closed"
+ else
+ e.icon_state = "eye_open"
+
+/obj/effect/dog_eye
+ name = "eye"
+ desc = "It's peeking!"
+ icon = 'icons/obj/flesh_machines.dmi'
+ icon_state = "eye_open"
+ anchored = TRUE
+
+ pixel_x = -16
+
+/obj/effect/dog_nose
+ name = "nose"
+ desc = "Good for sniffin' with!"
+ icon = 'icons/obj/flesh_machines.dmi'
+ icon_state = "nose"
+ anchored = TRUE
+
+/obj/effect/dog_eye/Initialize()
+ . = ..()
+ var/area/redgate/stardog/eyes/e = get_area(src)
+ if(istype(e,/area/redgate/stardog/eyes))
+ e.our_eyes |= src
+
+/obj/effect/dog_teleporter
+ name = "mouth"
+ desc = "It's waiting to accept treats!"
+ icon = 'icons/obj/flesh_machines.dmi'
+ icon_state = "mouth"
+ invisibility = 0
+ anchored = TRUE
+ var/id = "mouth"
+ var/static/list/dog_teleporters = list()
+ var/reciever = FALSE
+ var/obj/effect/dog_teleporter/target
+
+/obj/effect/dog_teleporter/Initialize()
+ . = ..()
+ dog_teleporters |= src
+ do_setup()
+
+/obj/effect/dog_teleporter/proc/do_setup()
+ if(target)
+ return
+ for(var/obj/effect/dog_teleporter/T in dog_teleporters)
+ if(!istype(T,/obj/effect/dog_teleporter))
+ dog_teleporters -= T
+ continue
+ if(id == T.id)
+ if(T == src)
+ continue
+ target = T
+ if(!T.target)
+ T.target = src
+
+/obj/effect/dog_teleporter/Crossed(atom/movable/AM as mob|obj)
+ . = ..()
+ lets_go(AM)
+
+/obj/effect/dog_teleporter/proc/lets_go(atom/movable/AM as mob|obj)
+ if(reciever)
+ return
+ if(!target)
+ do_setup()
+ if(!target)
+ return
+ if(isliving(AM))
+ var/mob/living/L = AM
+ if(!L.devourable || !L.allowmobvore)
+ return
+ AM.forceMove(get_turf(target))
+
+/obj/effect/dog_teleporter/reciever
+ reciever = TRUE
+
+/obj/effect/dog_teleporter/exit
+ name = "exit"
+ desc = "You can see the light at the end of the tunnel!"
+ icon_state = "exit_b"
+ id = "exit"
+ pixel_x = -16
+ pixel_y = -16
+
+/obj/effect/dog_teleporter/exit/Initialize()
+ . = ..()
+
+ set_light(5, 1, "#ffffff")
+
+/obj/effect/dog_teleporter/reciever/mouth
+ name = "light"
+ desc = "It's too far up to make your way back out!"
+ icon_state = "exit_b"
+ id = "mouth"
+ pixel_x = -16
+ pixel_y = -16
+
+/obj/effect/dog_teleporter/reciever/mouth/Initialize()
+ . = ..()
+
+ set_light(5, 1, "#ffffff")
+
+/obj/effect/dog_teleporter/reciever/exit
+ name = "exit"
+ desc = "It's too tight to go in there!"
+ icon_state = "exit"
+ id = "exit"
+ pixel_x = -16
+ pixel_y = -16
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 76db60732b..67858da53d 100644
--- a/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
+++ b/code/modules/mob/living/simple_mob/subtypes/vore/vore.dm
@@ -5,12 +5,19 @@
/mob/living/simple_mob
var/nameset
var/limit_renames = TRUE
+ var/copy_prefs_to_mob = TRUE
/mob/living/simple_mob/Login()
. = ..()
verbs |= /mob/living/simple_mob/proc/set_name
verbs |= /mob/living/simple_mob/proc/set_desc
+ if(copy_prefs_to_mob)
+ login_prefs()
+
+/mob/living/proc/login_prefs()
+ . = ..()
+
ooc_notes = client.prefs.metadata
digestable = client.prefs_vr.digestable
devourable = client.prefs_vr.devourable
@@ -37,7 +44,6 @@
step_mechanics_pref = client.prefs_vr.step_mechanics_pref
pickup_pref = client.prefs_vr.pickup_pref
-
/mob/living/simple_mob/proc/set_name()
set name = "Set Name"
set desc = "Sets your mobs name. You only get to do this once."
diff --git a/code/modules/overmap/ships/ship_vr.dm b/code/modules/overmap/ships/ship_vr.dm
index 97afe44e72..3fedcb0e31 100644
--- a/code/modules/overmap/ships/ship_vr.dm
+++ b/code/modules/overmap/ships/ship_vr.dm
@@ -9,6 +9,10 @@
/obj/effect/overmap/visitable/ship/MouseDrop(atom/over)
if(!isliving(over) || !Adjacent(over) || !Adjacent(usr))
return
+ if(istype(over, /mob/living/simple_mob/vore/overmap/stardog))
+ var/mob/living/simple_mob/vore/overmap/stardog/sdog = over
+ if(!sdog.shipvore)
+ return
var/mob/living/L = over
var/confirm = tgui_alert(L, "You COULD eat this spaceship...", "Eat spaceship?", list("Eat it!", "No, thanks."))
if(confirm == "Eat it!")
@@ -28,14 +32,14 @@
/obj/effect/overmap/visitable/ship/hear_talk(mob/talker, list/message_pieces, verb)
. = ..()
-
+
var/list/listeners = get_people_in_ship()
for(var/mob/M as anything in listeners)
M.hear_say(message_pieces, verb, FALSE, talker)
/obj/effect/overmap/visitable/ship/show_message(msg, type, alt, alt_type)
. = ..()
-
+
var/list/listeners = get_people_in_ship()
for(var/mob/M as anything in listeners)
M.show_message(msg, type, alt, alt_type)
@@ -43,6 +47,6 @@
/obj/effect/overmap/visitable/ship/see_emote(source, message, m_type)
. = ..()
- var/list/listeners = get_people_in_ship()
+ var/list/listeners = get_people_in_ship()
for(var/mob/M as anything in listeners)
M.show_message(message, m_type)
diff --git a/icons/obj/flesh_machines.dmi b/icons/obj/flesh_machines.dmi
new file mode 100644
index 0000000000000000000000000000000000000000..27e66b20702bc38736e086276d754e664c0035ba
GIT binary patch
literal 9724
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
Ls!XkvS;+qZBQ4_K
literal 0
HcmV?d00001
diff --git a/icons/obj/landmark_vr.dmi b/icons/obj/landmark_vr.dmi
index 709bcfcfde5cbc1c54032bb6186690313b597a44..ab0f5da5d9b1949f8a393e2442cc153ec7890e73 100644
GIT binary patch
delta 693
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
z