diff --git a/.gitignore b/.gitignore index dd20fecd22c4..ed4b6b4d7e2c 100644 --- a/.gitignore +++ b/.gitignore @@ -215,13 +215,14 @@ tools/CreditsTool/obj/* #dmdoc default folder /dmdoc +/config/* +!/config/example +!/config/example/* + # Ignore custom music and title screens (amend as appropriate) -/config/jukebox_music/sounds/* -!/config/jukebox_music/sounds/exclude -/config/title_music/sounds/* -!/config/title_music/sounds/exclude -/config/title_screens/images/* -!/config/title_screens/images/exclude +/config/example/jukebox_music/sounds/exclude +/config/example/title_music/sounds/exclude +/config/example/title_screens/images/exclude #Linux docker tools/LinuxOneShot/SetupProgram/obj/* diff --git a/ModularTegustation/Teguicons/48x48.dmi b/ModularTegustation/Teguicons/48x48.dmi index 600f142b46d1..120f5f678551 100644 Binary files a/ModularTegustation/Teguicons/48x48.dmi and b/ModularTegustation/Teguicons/48x48.dmi differ diff --git a/ModularTegustation/Teguicons/96x48.dmi b/ModularTegustation/Teguicons/96x48.dmi index dc0daa343c83..c104292bfef1 100644 Binary files a/ModularTegustation/Teguicons/96x48.dmi and b/ModularTegustation/Teguicons/96x48.dmi differ diff --git a/ModularTegustation/Teguicons/blood_fiend_gear.dmi b/ModularTegustation/Teguicons/blood_fiend_gear.dmi new file mode 100644 index 000000000000..4efc991e824f Binary files /dev/null and b/ModularTegustation/Teguicons/blood_fiend_gear.dmi differ diff --git a/ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi b/ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi new file mode 100644 index 000000000000..080fa45865b5 Binary files /dev/null and b/ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi differ diff --git a/ModularTegustation/Teguicons/blood_fiends_32x32.dmi b/ModularTegustation/Teguicons/blood_fiends_32x32.dmi new file mode 100644 index 000000000000..27da885dde7b Binary files /dev/null and b/ModularTegustation/Teguicons/blood_fiends_32x32.dmi differ diff --git a/ModularTegustation/Teguicons/lc13_coloreffect.dmi b/ModularTegustation/Teguicons/lc13_coloreffect.dmi index 87c167897f8f..9e665f619548 100644 Binary files a/ModularTegustation/Teguicons/lc13_coloreffect.dmi and b/ModularTegustation/Teguicons/lc13_coloreffect.dmi differ diff --git a/ModularTegustation/Teguicons/resurgence_32x48.dmi b/ModularTegustation/Teguicons/resurgence_32x48.dmi index 97f81d02aaef..2b89b5e2f2e8 100644 Binary files a/ModularTegustation/Teguicons/resurgence_32x48.dmi and b/ModularTegustation/Teguicons/resurgence_32x48.dmi differ diff --git a/ModularTegustation/Teguicons/resurgence_48x48.dmi b/ModularTegustation/Teguicons/resurgence_48x48.dmi index 4b8e7a9a69fa..c451f33dc8e7 100644 Binary files a/ModularTegustation/Teguicons/resurgence_48x48.dmi and b/ModularTegustation/Teguicons/resurgence_48x48.dmi differ diff --git a/ModularTegustation/Teguicons/room_spawners/29x22.dmi b/ModularTegustation/Teguicons/room_spawners/29x22.dmi new file mode 100644 index 000000000000..b9573c5b8b8e Binary files /dev/null and b/ModularTegustation/Teguicons/room_spawners/29x22.dmi differ diff --git a/ModularTegustation/Teguicons/status_sprites.dmi b/ModularTegustation/Teguicons/status_sprites.dmi index ed24c8afac4e..6b9eb8ab9d31 100644 Binary files a/ModularTegustation/Teguicons/status_sprites.dmi and b/ModularTegustation/Teguicons/status_sprites.dmi differ diff --git a/ModularTegustation/Teguicons/tegumobs.dmi b/ModularTegustation/Teguicons/tegumobs.dmi index af8d95b24e0b..ecdba5c1980a 100644 Binary files a/ModularTegustation/Teguicons/tegumobs.dmi and b/ModularTegustation/Teguicons/tegumobs.dmi differ diff --git a/ModularTegustation/delivery_doors.dm b/ModularTegustation/delivery_doors.dm new file mode 100644 index 000000000000..1b66c52bb124 --- /dev/null +++ b/ModularTegustation/delivery_doors.dm @@ -0,0 +1,106 @@ +// Doors for parcels to be delivered to. Simulated mailman. +// A good way to get money without combat. +/obj/structure/delivery_door + name = "locked door" + desc = "A doorway to somewhere your not allowed to be." + icon = 'icons/obj/doors/airlocks/highsec/highsec.dmi' + icon_state = "closed" + anchored = TRUE + layer = CLOSED_DOOR_LAYER + var/address = "000" + var/list/item_order = list() + +/obj/structure/delivery_door/Initialize() + . = ..() + address = "[x]-[y]" + name += " ([address])" + +/obj/structure/delivery_door/attackby(obj/item/I, mob/user) + var/ordered_item = locate(I) in item_order + if(ordered_item) + Reward(user, I, item_order[ordered_item]) + item_order -= ordered_item + return + if(istype(I, /obj/item/delivery_parcel)) + // Deliver the item. + var/obj/item/delivery_parcel/D = I + if(D.address == address) + Reward(user, D, 150 + rand(-1,20)) + return + return ..() + +// Create parcel to be delivered. +/obj/structure/delivery_door/proc/OrderParcel(origin) + if(!isturf(origin) && !isatom(origin)) + return FALSE + var/obj/item/delivery_parcel/D = new (get_turf(origin)) + D.labelParcel(address) + return TRUE + +// Order items that are not safety sealed. +/obj/structure/delivery_door/proc/OrderItems(origin, obj/item/T = /obj/item/food/pizza/margherita, delivery_payment = 30) + if(!isturf(origin) && !isatom(origin)) + return FALSE + item_order += T + item_order[T] = delivery_payment + var/obj/item/paper/P = new (get_turf(origin)) + P.setText("

[address] orders a [initial(T.name)] for [delivery_payment] Ahn.
") + return TRUE + +// Pay the pizzaman +/obj/structure/delivery_door/proc/Reward(mob/living/user, obj/item/delivery, amt) + var/obj/item/holochip/H = new (get_turf(user), amt) + user.put_in_hands(H) + to_chat(user, span_notice("The parcel is taken and payment is quickly tossed into your hand before the door locks again.")) + qdel(delivery) + playsound(get_turf(src), 'sound/effects/bin_close.ogg', 35, 3, 3) + +// Delivery Object +/obj/item/delivery_parcel + name = "delivery parcel" + desc = "A large delivery parcel that has a J corp lock on it." + icon = 'icons/obj/tank.dmi' + icon_state = "plasmaman_tank" + w_class = WEIGHT_CLASS_BULKY + slot_flags = ITEM_SLOT_BACK + worn_icon = 'icons/mob/clothing/back.dmi' + var/address = "000" + +/obj/item/delivery_parcel/proc/labelParcel(num) + address = num + name += " ([address])" + +/* +* TRACKER +*/ + +/obj/item/pinpointer/coordinate + name = "coordinate pinpointer" + desc = "Use in hand to set target cordnates." + icon_state = "pinpointer_syndicate" + custom_price = PAYCHECK_MEDIUM * 4 + custom_premium_price = PAYCHECK_MEDIUM * 6 + var/coords + +/obj/item/pinpointer/coordinate/examine(mob/user) + . = ..() + if(!active || !target) + return + if(coords) + . += coords + +/obj/item/pinpointer/coordinate/attack_self(mob/living/user) + if(active) + toggle_on() + user.visible_message(span_notice("[user] deactivates [user.p_their()] pinpointer."), span_notice("You deactivate your pinpointer.")) + return + + var/target_x = input(user, "x coordinate", "Pinpoint") as null|num + var/target_y = input(user, "y coordinate", "Pinpoint") as null|num + if(!target_x || !target_y || QDELETED(src) || !user || !user.is_holding(src) || user.incapacitated()) + return + + target = locate(target_x, target_y, user.z) + coords = "X:[target_x]|Y:[target_y]" + toggle_on() + user.visible_message(span_notice("[user] activates [user.p_their()] pinpointer."), span_notice("You activate your pinpointer.")) diff --git a/ModularTegustation/ego_weapons/melee/subtype/lance.dm b/ModularTegustation/ego_weapons/melee/subtype/lance.dm index 82303d1f151c..22900cbe7995 100644 --- a/ModularTegustation/ego_weapons/melee/subtype/lance.dm +++ b/ModularTegustation/ego_weapons/melee/subtype/lance.dm @@ -126,6 +126,9 @@ if(charge_speed > -(bump_threshold)) RaiseLance(user) return + if(istype(A, /mob/living/simple_animal/projectile_blocker_dummy)) + var/mob/living/simple_animal/projectile_blocker_dummy/pbd = A + A = pbd.parent if(isliving(A)) if(ishuman(A) && user.faction_check_mob(A)) var/mob/living/carbon/human/H = A diff --git a/ModularTegustation/ego_weapons/melee/teth.dm b/ModularTegustation/ego_weapons/melee/teth.dm index b9716a0a1d02..da6f6f4750f4 100644 --- a/ModularTegustation/ego_weapons/melee/teth.dm +++ b/ModularTegustation/ego_weapons/melee/teth.dm @@ -576,6 +576,17 @@ charge_speed_cap = 2 couch_cooldown_time = 3 SECONDS +/obj/item/ego_weapon/kikimora + name = "kiki mora" + desc = "Many would speak her name." + icon_state = "kikimora" + force = 35 + attack_speed = 1.6 + damtype = RED_DAMAGE + attack_verb_continuous = list("beats", "smacks") + attack_verb_simple = list("beat", "smack") + hitsound = 'sound/weapons/fixer/generic/gen1.ogg' + /obj/item/ego_weapon/denial name = "denial" desc = "Unregulated ingestion of Enkephalin may cause a wide range of unverified psychopathological symptoms." diff --git a/ModularTegustation/ego_weapons/melee/waw.dm b/ModularTegustation/ego_weapons/melee/waw.dm index 0006b7a80031..b2e53763144d 100644 --- a/ModularTegustation/ego_weapons/melee/waw.dm +++ b/ModularTegustation/ego_weapons/melee/waw.dm @@ -2319,3 +2319,64 @@ qdel(src) return TRUE +/obj/item/ego_weapon/contempt + name = "contempt, awe" + desc = "From the excavated brain, geysers of hatred and contempt erupt. It's as if those feelings were inside you all along." + icon_state = "contempt" + force = 50 + reach = 2 + stuntime = 5 + throwforce = 80 + throw_speed = 5 + throw_range = 7 + damtype = BLACK_DAMAGE + attack_verb_continuous = list("pokes", "jabs", "tears", "lacerates", "gores") + attack_verb_simple = list("poke", "jab", "tear", "lacerate", "gore") + hitsound = 'sound/abnormalities/spiral_contempt/spiral_hit.ogg' + attribute_requirements = list( + FORTITUDE_ATTRIBUTE = 80 + ) + var/list/targets = list() + var/ranged_damage = 70 + var/mode = FALSE + var/toggle_cooldown + var/toggle_cooldown_time = 1 SECONDS + +/obj/item/ego_weapon/contempt/attack(mob/living/M, mob/living/user) + if(!CanUseEgo(user)) + return + + if(!mode) + if(!(M in targets)) + targets+= M + if(mode) + if(M in targets) + playsound(M, 'sound/abnormalities/spiral_contempt/spiral_bleed.ogg', 100, FALSE, 4) + M.apply_damage(ranged_damage, BLACK_DAMAGE, null, M.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE) + new /obj/effect/temp_visual/contempt_blood(get_turf(M)) + targets -= M + ..() + hitsound = initial(hitsound) + +/obj/item/ego_weapon/contempt/attack_self(mob/user) + if(!CanUseEgo(user)) + return + if(toggle_cooldown > world.time)//spam prevention + return + toggle_cooldown = world.time + toggle_cooldown_time + if(mode) + mode = FALSE + to_chat(user,span_warning("Your [src] now drips with blood.")) + targets = list() + playsound(src, 'sound/abnormalities/spiral_contempt/spiral_grow.ogg', 20, FALSE) + return + + if(!mode) + mode = TRUE + to_chat(user,span_warning("Your [src] now menances with spikes of gold.")) + playsound(src, 'sound/abnormalities/spiral_contempt/spiral_whine.ogg', 20, FALSE) + return + + +/obj/item/ego_weapon/contempt/get_clamped_volume() + return 25 diff --git a/ModularTegustation/ego_weapons/ranged/ego_bullets/waw.dm b/ModularTegustation/ego_weapons/ranged/ego_bullets/waw.dm index a2071b26d982..93fc88111bf6 100644 --- a/ModularTegustation/ego_weapons/ranged/ego_bullets/waw.dm +++ b/ModularTegustation/ego_weapons/ranged/ego_bullets/waw.dm @@ -28,12 +28,12 @@ return BULLET_ACT_BLOCK switch(damage_type) if(WHITE_DAMAGE) - H.adjustSanityLoss(-damage*0.2) + H.adjustSanityLoss(-10) if(BLACK_DAMAGE) - H.adjustBruteLoss(-damage*0.1) - H.adjustSanityLoss(-damage*0.1) + H.adjustBruteLoss(-5) + H.adjustSanityLoss(-5) else // Red or pale - H.adjustBruteLoss(-damage*0.2) + H.adjustBruteLoss(-10) H.visible_message("[src] vanishes on contact with [H]!") qdel(src) return BULLET_ACT_BLOCK diff --git a/ModularTegustation/fishing/code/fish_market.dm b/ModularTegustation/fishing/code/fish_market.dm index c5d7231cd188..705e513386fa 100644 --- a/ModularTegustation/fishing/code/fish_market.dm +++ b/ModularTegustation/fishing/code/fish_market.dm @@ -103,14 +103,15 @@ var/obj/item/storage/bag/fish/bag = I var/fish_value = 0 for(var/item in bag.contents) + if(istype(item, /obj/item/stack/fish_points)) + continue + if(istype(item, /obj/item/fishing_component/hook/bone)) fish_value += 5 if(istype(item, /obj/item/food/fish)) fish_value += ValueFish(item) - else - continue qdel(item) AdjustPoints(fish_value) diff --git a/ModularTegustation/fishing/code/fishing_items/fishing_net.dm b/ModularTegustation/fishing/code/fishing_items/fishing_net.dm index 5c62ed2381ac..efb12f721c23 100644 --- a/ModularTegustation/fishing/code/fishing_items/fishing_net.dm +++ b/ModularTegustation/fishing/code/fishing_items/fishing_net.dm @@ -186,3 +186,23 @@ fishin_power = 1 enemy_chance = 95 capacity = 1 + +//Clan Nets +/obj/item/fishing_net/resurgence + name = "resurgence clan fishing net" + desc = "Resurgence Clan nets are slightly better then the normal fishing net, and have a slightly higher chance at catching foes" + icon = 'ModularTegustation/fishing/icons/fishing.dmi' + icon_state = "clan_net" + w_class = WEIGHT_CLASS_HUGE + deploy_type = /obj/structure/destructible/fishing_net/resurgence + +/obj/structure/destructible/fishing_net/resurgence + name = "resurgence clan fishing net" + desc = "A wall of twine and wires that traps fish. Alt click to harvest." + icon_state = "trawling_net_clan" + icon_state_fished = "trawling_net_clan_full" + debris = list(/obj/item/fishing_net/resurgence = 1) + net_type = /obj/item/fishing_net/resurgence + fishin_cooldown = 30 SECONDS + fishin_power = 1 + enemy_chance = 25 diff --git a/ModularTegustation/fishing/code/rod_components/fishing_lines.dm b/ModularTegustation/fishing/code/rod_components/fishing_lines.dm index f3b301e4236a..5aec028e5f51 100644 --- a/ModularTegustation/fishing/code/rod_components/fishing_lines.dm +++ b/ModularTegustation/fishing/code/rod_components/fishing_lines.dm @@ -39,3 +39,10 @@ icon_state = "green" fishing_value = 0.4 line_color = "#2b9c2b" + +/obj/item/fishing_component/line/clan + name = "resurgence clan fishing line reel" + desc = "Essential for fishing in the outskirts." + icon_state = "clan" + fishing_value = 0.6 + line_color = "#057A71" diff --git a/ModularTegustation/fishing/icons/fishing.dmi b/ModularTegustation/fishing/icons/fishing.dmi index 98ee1afa0326..eb66107f9a2b 100644 Binary files a/ModularTegustation/fishing/icons/fishing.dmi and b/ModularTegustation/fishing/icons/fishing.dmi differ diff --git a/ModularTegustation/fishing/icons/fishing_lines.dmi b/ModularTegustation/fishing/icons/fishing_lines.dmi index eb5f7260fbf0..0a8760e7eee0 100644 Binary files a/ModularTegustation/fishing/icons/fishing_lines.dmi and b/ModularTegustation/fishing/icons/fishing_lines.dmi differ diff --git a/ModularTegustation/lc13_machinery.dm b/ModularTegustation/lc13_machinery.dm index 02610c39ddf9..40e294ec0706 100644 --- a/ModularTegustation/lc13_machinery.dm +++ b/ModularTegustation/lc13_machinery.dm @@ -353,9 +353,9 @@ if(length(B.initial_traits) == 0) B.initial_traits = H.status_traits -/*---------------\ +/*---------------------\ |Body Preservation Unit| -\---------------*/ +\---------------------*/ /obj/machinery/body_preservation_unit name = "body preservation unit" @@ -376,6 +376,14 @@ resistance_flags = INDESTRUCTIBLE max_integrity = 1000000 +/obj/machinery/body_preservation_unit/Initialize() + . = ..() + if(SSmaptype.maptype == "office") + public_use = TRUE + clone_delay_seconds = 60 + revival_attribute_penalty = -4 + cost_multiplier = 2 + /obj/machinery/body_preservation_unit/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/holochip)) var/obj/item/holochip/H = I @@ -461,7 +469,7 @@ //var/mob/living/carbon/human/H = locate(stored_bodies[mob_name]["ref"]) //if(H && ishuman(H)) // if(try_payment(revival_fee, H)) - revive_body(mob_name) + revive_body(mob_name, usr.ckey) updateUsrDialog() @@ -483,6 +491,16 @@ atr.level = old_atr.level preserved_data["attributes"] = attributes +/obj/machinery/body_preservation_unit/proc/store_actions(mob/living/carbon/human/H, list/preserved_data) + var/list/action_types = list() + for(var/datum/action/A in H.actions) + if(ispath(A, /datum/action/item_action)) + continue + if(ispath(A, /datum/action/spell_action)) + continue + action_types += A.type + preserved_data["action_types"] = action_types + /obj/machinery/body_preservation_unit/proc/preserve_body(mob/living/carbon/human/H) if(!H || !H.mind) @@ -493,16 +511,17 @@ preserved_data["ckey"] = M.key preserved_data["real_name"] = H.real_name preserved_data["species"] = H.dna.species.type + preserved_data["gender"] = H.gender var/datum/dna/D = new /datum/dna H.dna.copy_dna(D) preserved_data["dna"] = D preserved_data["assigned_role"] = H.mind.assigned_role - - store_attributes(H, preserved_data) - preserved_data["underwear"] = H.underwear preserved_data["underwear_color"] = H.underwear_color + store_attributes(H, preserved_data) + store_actions(H, preserved_data) + stored_bodies[H.real_name] = preserved_data @@ -535,6 +554,7 @@ // Set up the new body with stored data new_body.real_name = stored_data["real_name"] + new_body.gender = stored_data["gender"] // Check if the stored DNA is valid if(istype(stored_data["dna"], /datum/dna)) @@ -581,10 +601,22 @@ new_body.revive(full_heal = TRUE, admin_revive = FALSE) new_body.updateappearance() - if (isnull(usr)) - new_body.ckey = ckey - else - new_body.ckey = usr.ckey + // if (isnull(usr)) + // new_body.ckey = ckey + // else + new_body.ckey = ckey + + var/list/stored_action_types = stored_data["action_types"] + if (islist(stored_action_types)) + for (var/T in stored_action_types) + var/datum/action/G = new T() + G.Grant(new_body) + + + if (!new_body.ckey) + log_game("Body Preservation Unit: Created a new body for [real_name] without a ckey.") + qdel(new_body) + return var/assigned_role = stored_data["assigned_role"] if (assigned_role) @@ -622,12 +654,13 @@ // Define this as a global proc /proc/offer_respawn_global(real_name, obj/machinery/body_preservation_unit/BPU) var/mob/dead/observer/ghost = find_dead_player(real_name) + to_chat(ghost, "BPU is now ready to rebuild your body, click on the BPU as a ghost to re-build yourself or accept this offer.") if(!ghost || !ghost.client) return if (!istype(BPU) || !BPU.loc) return - var/response = alert(ghost, "Do you want to respawn?", "Respawn Offer", "Yes", "No") + var/response = alert(ghost, "Do you want to be cloned at the BPU?", "Respawn Offer", "Yes", "No") if(response == "Yes") // var/obj/machinery/body_preservation_unit/BPU = locate() in GLOB.machines if(BPU.stored_bodies[real_name]) diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/aleph/army_in_black.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/aleph/army_in_black.dm new file mode 100644 index 000000000000..58ece028c601 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/aleph/army_in_black.dm @@ -0,0 +1,46 @@ +/**Army ends up being a combination between an abnormality focused on trying to share the burden of being human, + *and the corruption of trying to do good turning into doing evil. + *Both ideas are present in how it operates, and I want to make the options try and capture that. + *-ML + */ +/datum/adventure_event/army_in_black + name = "Army in Black" + description = "YOU SEE A BUNCH OF SOLDIERS IN GELATINOUS HEARTS" + required_abno = /mob/living/simple_animal/abnormality/aleph/army_in_black + adventure_cords = ( + "Inside the facility rows and rows of gelatinous hearts sit,
\ + Each of them containing a person in bright pink military gear.
\ + You approach one, it’s impossible to see any expression on their face.
\ + One of them turns towards you and gives a quick salute before asking:
\ + \"What color are human’s hearts?\"", + + "\"Of course, that is the color in every human’s heart.\" They say warmly.
\ + You don’t see them move, but you feel them with you as you leave.
\ + Protecting you from what comes next.", + + "\"Can’t the human heart exist without Darkness?\"
\ + You once again refute what it’s saying.
\ + The gelatinous substance it’s in starts to darken,
\ + Along with the thing’s armor.
\ + \"We’re able to protect humanity from it.\"
\ + \"So why won’t you let us bear the burden for you?\"
\ + It begins to spark, strands of black lighting leaping out at you.
\ + You turn to run as the bubbles begin to spark as they turn black.
\ + \"Why won’t you let us take your darkness?\"", + + "\"Why can’t the human heart be more than just an organ?\"
\ + With that they go silent, allowing you to leave.", + ) +/datum/adventure_event/army_in_black/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "PINK", M) + BUTTON_FORMAT(3, "BLACK", M) + BUTTON_FORMAT(4, "FLESH", M) + return + if(2) + AdjustHealth(+35) + if(3) + AdjustHealth(-50) + if(4) + return..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/he/singing_machine.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/he/singing_machine.dm new file mode 100644 index 000000000000..fe3f07bdaa77 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/he/singing_machine.dm @@ -0,0 +1,59 @@ +/datum/adventure_event/singing_machine + name = "Singing_Machine" + desc = "YOU SEE A BOXY MACHINE" + require_abno = /mob/living/simple_animal/hostile/abnormality/singing_machine + adventure_cords = list( + "A sharp smell of iron and violence fills the room as you enter.
\ + Inside, is a large boxy machine with a person slumped against it.
\ + Each of their limbs has been ripped to shreds, with small fleshy gibs hanging from the machine.
\ + \"You there!\" Turning towards you.
\ + \"Throw yourself into the Machine! I need to hear it one more time!\"", + + "Putting yourself into the machine seems a bit extreme.
\ + However, if the sound it makes is that good you might have to listen.
\ + Against your better judgement you open the machine slipping a finger inside trying to keep it above the gnashing teeth.
\ + Slowly you inch closer, until it grabs you, yanking you towards the machine.
\ + Before you can stop yourself your arm is dragged into the depths, a new tune bursting forth amidst your screams.
\ + It is the most beautiful thing you’ve heard.", + + "Ability Challenge", + + "In a single fluid motion you pick up the person and toss them into the machine.
\ + Their cry isn’t one of fear, but exaltation thanking you for feeding them into the machine.
\ + As their body falls into the mesh of teeth and gears music begins to play.
\ + It’s a sound so lovely you understand the mperson's cheers.", + + "Reaching down you try to pick the person up, but they smack you away cutting your arm with a shard of bone.
\ + \"Stay away! If you aren’t going to give me music, then leave!\
\ + Sighing, you try again to pick them up, this time succeeding.
\ + However when you try to throw them they thrash around, falling out of your grasp.
\ + And knocking your arm into the machine.
\ + You scream as the machine tears into your arm.
\ + But the music it makes transcends beauty.", + + "Deciding you want nothing to do with any of this you turn to leave.
\ + \"Wait! Where are you going?\" The person cries reaching out with it’s jagged stump. \"Don’t you want to listen to ecstasy?\"
\ + You simply leave them there to rot.", + ) + +/datum/adventure_event/singing_machine/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "PUT YOUR FINGER IN THE MACHINE", M) + BUTTON_FORMAT(3, "THROW THE PERSON IN THE MACHINE", M) + BUTTON_FORMAT(4, "JUST LEAVE", M) + return + if(2) + AdjustHitPoint(-30) + AdjustStatNum(LUST_STAT, ADV_EVENT_STAT_EASY) + if(3) + CHANCE_BUTTON_FORMAT(ReturnStat(WRATH_STAT), "WRATH", M) + CHANCE_BUTTON_FORMAT(ReturnStat(LUST_STAT), "LUST", M) + . += CoinFlipping(M) + return + if(4) + AdjustStatNum(LUST_STAT, ADV_EVENT_STAT_EASY) + if(5) + AdjustStatNum(LUST_STAT, ADV_EVENT_STAT_EASY) + AdjustHitPoint(-30) + return..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/ppodae.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/ppodae.dm new file mode 100644 index 000000000000..0edba7829a4f --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/ppodae.dm @@ -0,0 +1,61 @@ +/** + *Ppodae is the cutist. + *-ML + */ +/datum/adventure_event/ppodae + name = "Ppodae" + desc = "YOU SEE THE CUTEST THING EVER" + require_abno = /mob/living/simple_animal/hostile/abnormality/ppodae + adventure_cords = list( + "Entering the room, you notice it's near identical to a Lobotomy Corporation Contaiment Unit.
\ + Specifically one for a large sized Abnormality
\ + The only thing in it is a small fluffy boy with a petite mouth and large adorable eyes.
\ + It hops over to you, tail eagerly wagging as it looks up at you with pleading eyes.
\ + It is so adorable, so cute! Nothing could ever compare!
\ + There has to be SOMETHING you can do for him!", + + "Clearly no one has fed him recently! His bowl is nearly half empty!
\ + This can not go uncorrected! Thus, you being your quest to correc this neglect!
\ + The hallway outside the containment unit is devoid of anything.
\ + Returning to the chambers you strangely find the food in a closet inside the containment unit.
\ + Clearly someone had the good idea to alter the unit to make it more hospitable!
\ + There’s a few bones from a sekeleton for the good boy to chew on as well, you take some with as a treat.
\ + He looks so cute chowing down! It warms your soul to see him so happy.", + + "How could something this photogenic possibly exist?
\ + Taking out your phone you snap picture after picture, catching the good boy from every angle.
\ + Every single one of these pictures is too good to keep to yourself.
\ + As quickly as you take them you share them with others, deluging the net with Ppodae.
\ + Comments roll in, all of them in love with this most wonderous cutie.", + + "This little cutie can’t be left like this!
\ + He’s so lonely and needs attention.
\ + Thankfully you’re able to find a bone in a closet that shouldn’t be there for him to fetch!
\ + You toss it a couple of times, each time he takes it back showing off just how powerful his adorable body is!
\ + Wait, why’s he growing larger?", + + "Surely the managers didn’t make a mistake and put an actual dog in containment.
\ + After searching around you find the management notes in the workstation.
\ + Sure enough this is an abnormality, with a very long list of deaths it caused.
\ + Maybe playing with it isn’t the best idea...", + ) + +/datum/adventure_event/ppodae/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "FEED THE GOODEST BOY!", M) + BUTTON_FORMAT(3, "TAKE PICTURES! SO MANY PICTURES!", M) + BUTTON_FORMAT(4, "PLAY WITH HIM!", M) + BUTTON_FORMAT(5, "ISN'T THIS STILL AN ABNORMALITY?", M) + return + if(2) + AdjustHitPoint(5) + if(3) + AdjustCurrency(ADV_EVENT_COIN_EASY) + if(4) + CauseBattle( + "Ppodae: A mountiain of muscle with the facade of a puppy.", + MON_DAMAGE_EASY, + 30 + ) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/void_dream.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/void_dream.dm new file mode 100644 index 000000000000..b028b09833a7 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/teth/void_dream.dm @@ -0,0 +1,61 @@ +/** + *Void Dream is fairly straight forward. + *It’s about dreams and the desire to give up on the waking world + *and instead live in a place where things are more pleasant + *either generally or for things more specifically. -ML + */ +/datum/adventure_event/void_dream + name = "Void Dream" + desc = "YOU SEE A WOOLY CREATURE SLEEPING IN THE VOID." + require_abno = /mob/living/simple_animal/hostile/abnormality/voiddream + adventure_cords = list("The cold darkness of the void embraces you and the creature before you.
\ + Its wool is white, illuminated by the light of countless stars.
\ + From the mass of wool two eyes peak at you, it's head tucked away elsewhere.
\ + Brushing your hand against it you feel at ease, like it’s inviting you to join it's slumber.
\ + You feel drowsy, and some other feeling.
\ + Like a part of your heart is fading into the past.
\ + Maybe, you could take a moment to rest your eyes?", + + "Ability Challenge", + + "The floating ball of fluff and wool is warm and oh so comfortable.
\ + It doesn't take long to drift off to sleep,and when you do you dream.
\ + You’re taken back to a time you’d almost forgotten.
\ + There’s someone else there, together you walk, you talk, and you laugh.
\ + It feels so deeply nostalgic, but you can’t remember why.
\ + \"Hey !@)(!@&)&*%(%@!@#*(#\"
\ + You stop. That isn’t right, they had a name.
\ + You wake with start, sleep blurring your thoughts as they mix together.
\ + Wondering why you're here you look around, and seeing nothing but a ball of void, leave.
\ + It feels like you left something important behind", + + "You lay down to rest, nestling up into its warm, inviting, wool.
\ + You toss and turn, trying to get some rest, trying to escape into a dream.
\ + Then everything begins to fade away, and you wake up with a start.
\ + Turning around you see its eyes watching you and a thin tongue reaching out from a beak to lick you.
\ + It slowly tastes you and you feel your memories of the dream slowly fade.
\ + No, you can’t let it take them. Those are your memories, and you have to keep it that way.
\ + Turning you flee, and it drifts back to sleep.", + + "No, now isn’t the time for rest.
\ + Sleep is inviting, but this is still an abnormality and you shouldn’t trust it.
\ + Turning away you leave it to sleep.", + ) + + +/datum/adventure_event/void_dream/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "FALL ASLEEP", M) + BUTTON_FORMAT(5, "STAY AWAKE", M) + return + if(2) + CHANCE_BUTTON_FORMAT(ReturnStat(GLOOM_STAT), "Gloom", M) + CHANCE_BUTTON_FORMAT(ReturnStat(SLOTH_STAT), "Sloth", M) + . += CoinFlipping(M) + return + if(3) + AdjustStatNum(GLOOM_STAT, ADV_EVENT_STAT_EASY) + if(4) + AdjustCurrency(ADV_EVENT_COIN_EASY) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/big_wolf.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/big_wolf.dm new file mode 100644 index 000000000000..e81e549ddd5f --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/big_wolf.dm @@ -0,0 +1,71 @@ +/**The wolf is something that becomes the villain because it was always expected to be one. + *While it still acts as on it’s instincts, + *What ultimately makes it a monster is other’s expectations. + *-ML + */ +/datum/adventure_event/big_wolf + name = "Big and Will Be Bad Wolf" + description = "YOUS SEE A WOLF IN THE MOONLIGHT" + require_abno = /mob/living/simple_animal/hostile/abnormality/big_wolf + adventure_cords = list( + "A pale silver moon illuminates the field.
\ + The only sounds are the wind whistling through the grass,
\ + and the whimpering of the beast in front of you.
\ + It isn’t quite a wolf, it’s too round and plump, closer to a toy then an an animal.
\ + But its stomach is too full, occasionally wiggling like something is fighting to escape.
\ + As if it’s asking you for something it looks at you with large soulful eyes.
\ + Something you could provide.
\ + It may appear innocent now,
\ + but you might end up helping a monster.", + + "This monster is clearly asking for what it deserves.
\ + It knows the sins it has and will commit.
\ + And those must be punished at all costs.", + + "It accepts its fate, it will become the monster.
\ + And you the hunter.
\ + The Wolf’s body dissapears into the shadows,
\ + Elongating and sharpening as it stalks around you waiting for an opening.
\ + Then it pounces.
\ + But you are swift and brutal.
\ + In a moment the threat is gone, and its victim freed.", + + "You have to kill it before it becomes a monster.
\ + It’s a simple matter of preventing it from ever reaching that point.
\ + So you approach it, picking up your weapon ready to drive it into the beast.
\ + It doesn’t give you the chance.
\ + It’s body seems to melt into darkness as it lunges onto you,
\ + Pinning you under its weight as its teeth rip and tear into you.
\ + Then as fast as it attacked, it’s gone.
\ + Disappearing into the dark grass.", + + "You can see the sins that it will commit.
\ + Along with the ones it’s already committed.
\ + But that doesn’t matter, you forgive it.
\ + You offer some food as an offering of peace, and it takes it.
\ + Laying down, it eats, treasuring each and every bite.
\ + Eventually it starts to hack, releasing a person from it’s stomach.
\ + Damaged, but still in good enough shape to run away screaming.
\ + Surely they can see the wolf doesn't have to be bad.
\ + Right?", + ) + +/datum/adventure_event/big_wolf/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "PUNISH IT", M) + BUTTON_FORMAT(3, "FORGIVE IT", M) + return + if(2) + CHANCE_BUTTON_FORMAT(ReturnStat(WRATH_STAT), "WRATH", M) + CHANCE_BUTTON_FORMAT(ReturnStat(ENVY_STAT), "ENVY", M) + .+= CoinFlipping(M) + return + if(3) + AdjustStatNum(WRATH_STAT, ADV_EVENT_STAT_EASY) + if(4) + AdjustHealth(-40) + if(5) + AdjustStatNum(WRATH_STAT, -2) + AdjustStatNum(PRIDE_STAT, 4) + return..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/general_bee.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/general_bee.dm new file mode 100644 index 000000000000..cf477f996653 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/general_bee.dm @@ -0,0 +1,50 @@ +/datum/adventure_event/general_bee + name = "Arms Inspection" + desc = "THE SOUND OF TRUMPETS" + require_abno = /mob/living/simple_animal/hostile/abnormality/general_b + adventure_cords = list( + "Passing underneath a gate on the road, you are accosted by
\ + a woman wearing a bright yellow and black jacket.
\ + 'HALT. Lay down your arms!'
\ + She demands you hand over your weapons.
\ + 'You are entering the domain of the queen!", + + "You lay your weapons down.
\ + The guard picks them up for inspection before handing them back.
\ + 'Nothing seems to be out of order.'
\ + She gives you a puzzled look.
\ + 'But I've never seen anything like these before.'
\ + The guard hands you your weapons back, and waves you on.", + + "You don't think that's quite a good idea.
\ + Shaking your head, you turn and leave.
\ + You hope you never pass this way again.", + + "You grip your weapon tightly. You will not be stopped.
\ + The guard sighs and draws her weapon.
\ + You both know how this is going to end,
\ + and you decide that bloodshed is better than inconvenience.", + + ) + +/datum/adventure_event/general_bee/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "LAY DOWN YOUR WEAPONS", M) + BUTTON_FORMAT(3, "REFUSE AND TURN AWAY", M) + BUTTON_FORMAT(4, "ASSAULT THE GUARD", M) + return + if(2) + AdjustStatNum(PRIDE_STAT, -1) + AdjustStatNum(WRATH_STAT, ADV_EVENT_STAT_EASY *2) + //No option for 3, because you just leave. + if(4) + AdjustStatNum(PRIDE_STAT, ADV_EVENT_STAT_NORMAL) + CauseBattle( + "Yellow-Clad Guard: A somewhat tall guard carrying a large spear. She's clad in yellow and black.", + MON_DAMAGE_NORMAL, + MON_HP_RAND_NORMAL, + ) + gamer.travel_mode = ADVENTURE_MODE_BATTLE + + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/red_riding_hood_mercenary.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/red_riding_hood_mercenary.dm new file mode 100644 index 000000000000..759c4c85068a --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/waw/red_riding_hood_mercenary.dm @@ -0,0 +1,47 @@ +/**Red is the counterpart to Wolf (obviously), about the cycle of violence. + *While the wolf is about how something can be turned into a monster by treating it as it will, + *Red is the obsession that ensures that someone will be turned into that monster. + *This characterization is a bit different then that in LC13 currently, so let me know if I should rewrite it. + *-ML + */ +/datum/adventure_event/red_riding_hood_mercenary + name = "Little Red Riding Hooded Mercenary" + description = "YOU SEE A PERSON IN RED RAGS" + required_abno = /mob/living/simple_animal/abnormality/waw/red_riding_hood_mercenary + adventure_cords = list( + "You enter a home filled with pictures of the same beast
\ + plastered across the walls, each one ripped or torn or shot or covered.
\ + The only other things in the room are a set of weapons,
\ + and a person dressed in crimson rags.
\ + She looks at you, her face shadowed by her hood.
\ + \"Can you show me where that Bastard is?\"", + + "\"Where!\" The girl exclaims.
\ + As they hurry you along you explain where to go.
\ + They don’t bother to thank you, grabbing their weapons and charging off.
\ + There is no way anything deserves the horrors she will commit.", + + "The girl sighs, taking out her gun.
\ + She points it at you, and fires.
\ + \"No one is killing that mutt but me!\"
\ + Pain shoots through your leg as she approaches.
\ + \"Now tell me where the fuck that bastard is.\"
\ + Silently you point somewhere and they charge off.
\ + Taking the opportunity you escape before they come back.", + + "\"Then why are you here?\"", + ) + +/datum/adventure_event/red_riding_hood_mercenary/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "I CAN SHOW YOU", M) + BUTTON_FORMAT(3, "I CAN BRING YOU THE WOLF", M) + BUTTON_FORMAT(4, "I CAN'T", M) + return + if(2) + AdjustStatNum(PRIDE_STAT, ADV_EVENT_STAT_EASY) + if(3) + AdjustHealth(-40) + if(4) + return..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/fairy_festival.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/fairy_festival.dm new file mode 100644 index 000000000000..eeef68f1d7ce --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/fairy_festival.dm @@ -0,0 +1,64 @@ +/** + *Both Ruina and Lobotomy Corporation have the fairies as something that’s predatory, but they show it in two different ways. + *In their first appearance, they attempt to eat people if they think that it endangers their food supply, and in their second they are all under the rule of a Fairy queen who eats them to sate her hunger. + *I wanted to include both these aspects, while also keeping some of the innocence they use to attract agents as prey. + */ +/datum/adventure_event/festival + name = "Fairy Festival" + desc = "YOU SEE FAIRY LIGHTS HOVERING IN THE GROVE" + require_abno = /mob/living/simple_animal/hostile/abnormality/fairy_festival + adventure_cords = list( + "You enter a forest grove, ripe with dew and the scents of spring.
\ + Small lights flit between the trees, hiding amongst the greenery as they observe you.
\ + Slowy they come closer their tiny round forms coming into focus. Beating their small wings, they rush around you investigating this new intruder.
\ + Eventually one brave little one approaches you, hugging you it’s plump face grins up at you.
\ + After the first, the others follow hovering around you as they poke and prod, seemingly curious about what you are.
\ + Amid the commotion, one larger than the rest grabs onto you trying to tug you deeper into the grove.", + + "Following the fairy it brings you deeper and deeper into the forest, as the trees close in around you feel something's eyes.", + + "Ability Challenge", + + "Something shifts in the darkness, looking around you see it rise out of the undergrowth.
\ + It's gaunt, it's limbs practically skeletal, but still unmistakably a massive fairy.
\ + Its eyes fixate on the thing the fairy brought to it and you can feel its hungering gaze bore into you.
\ + Drool slowly drips from its mouth as it stares down at it's next meal.
\ + Thinking quickly, you grab the fairy that led you here and a few others presenting them to the beast.
\ + It takes them, turning its kin into a pulp in the flash of an eye before swallowing just as quickly.
\ + Unsatisfied, its eyes turn back to you, and you present another fairy, then another and another.
\ + As it feast you take the chance to sneak away, leaving the grove behind you.", + + "A sound of snapping branches and crunching leaves fills the forest as something rises out of the woods behind you.
\ + It looks like the fairies, but near skeletal and far far larger towering over not just them but you.
\ + The fairy tugs you forward, and you follow it just one more step.
\ + The giant grabs at you, mouth watering at the thought of the delectable meal you'll make.
\ + Pain erupts in your limbs as it's teeth rip into you, panicing you tear away running away from the grove.", + + "After a few minutes it stops, letting go of you and disappearing into the woods.
\ + The others don’t care, instead continuing to surround you as they find more and more of interest.
\ + Eventually either wandering away, or hunkering down around you.
\ + With nothing left to find you turn and leave the grove, feeling strangely refreshed though it feels like something’s watching you.", + + "With a smack the fairy turns into a green stain on your hand. The others freeze.
\ + Suddenly their gentle airs are gone, their lips peel back showing sharpened teeth.
\ + Then they swarm you. Swatting them away, you fight your way out of the grove as they gnaw at you.
\ + Eventually they let up, leaving gashes in your body that nothing that small should be able to.", + ) + +/datum/adventure_event/festival/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "FOLLOW IT", M) + BUTTON_FORMAT(3, "RESIST IT", M) + BUTTON_FORMAT(4, "SQUISH IT", M) + return + if(2) + CHANCE_BUTTON_FORMAT(ReturnStat(PRIDE_STAT), "PRIDE", M) + CHANCE_BUTTON_FORMAT(ReturnStat(GLUTT_STAT), "GLUTTONY", M) + . += CoinFlipping(M) + return + if(3) + AdjustHitPoint(10) + if(4) + AdjustHitPoint(-5) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/oceanic.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/oceanic.dm new file mode 100644 index 000000000000..473809ce4121 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/oceanic.dm @@ -0,0 +1,100 @@ +/datum/adventure_event/oceanic_waves + name = "An old orange vending machine" + desc = "YOU SEE A FAINT LIGHT" //All of the vending machine ones will use this. + require_abno = /mob/living/simple_animal/hostile/abnormality/oceanicwaves + adventure_cords = list( + "In front of you is a bright orange vending machine.
\ + There's dozens of buttons, and it's prompting you to pick one.
\ + You pass over the 'STALE BLOOD' and 'BABY FORMULA' flavors,
\ + and about 6 catch your eye.", + + "You press the button labelled INFINITE WEALTH.
\ + A wide-brimmed mason jar is dispensed with an orange liquid inside.
\ + It tastes strongly of orange.
\ + ...
\ + Something falls onto your teeth from inside the can, and it hurts a little.
\ + reaching in, you pull out a few coins.", + + + "You press the button labelled DOUBLE COCAINE.
\ + An unlabeled silver can is dispensed.
\ + It tastes like a mixture of bitterness and pennies.
\ + ...
\ + You feel awful.", + + + "You press the button labelled WELLCHEERS CHAOS MAX.
\ + A can with cobalt blue labeling is dispensed.
\ + It is rather tasty. It's quite sweet and has a light blueberry taste.
\ + ...
\ + You feel pretty good.", + + "You press the button labelled DOCTOR PEPPER.
\ + A red can is dispensed with the brand name in silver wording on it.
\ + Taking a sip, it tastes somewhat similar to cola.
\ + You have a hard time describing the taste, but you do really enjoy it.
\ + Despite never hearing of this soda before, you decide to keep an eye out for it again.", + + "You press the button labelled SKIN.
\ + A beige can is dispensed.
\ + Picking up the can, it's textured similar to skin, but you manage to open it.
\ + ...
\ + You recognize this metallic taste, and decide to not continue drinking.", + + "You press the button labelled SWEAT OF FREEDOM.
\ + A dark grey can with yellow accents is dispensed.
\ + Cracking it open, you take a cautious swig.
\ + It tastes like sweat. You don't know what you were expecting.
\ + ...
\ + You were so thirsty, you managed to choke it all back.
\ + Despite that, you feel pretty good.", + + "You press the button labelled SUPER DEATH.
\ + A black can with a white skull is dispensed. There is no other labelling.
\ + You take a drink.
\ + It tastes like sparkling water.
\ + ...
\ + You feel your mind drift into darkness.", + + ) + +//This machine doesn't favor any one stat, it's random which ones show up. +/datum/adventure_event/oceanic_waves/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "INFINITE WEALTH", M) + BUTTON_FORMAT(3, "DOUBLE COCAINE", M) + BUTTON_FORMAT(4, "WELLCHEERS CHAOS MAX ", M) + BUTTON_FORMAT(5, "DOCTOR PEPPER", M) + BUTTON_FORMAT(6, "SKIN", M) + BUTTON_FORMAT(7, "SWEAT OF FREEDOM", M) + BUTTON_FORMAT(8, "SUPER DEATH", M) + return + if(2) + AdjustCurrency(3) + AdjustHitPoint(-1) //funny + if(3) + AdjustStatNum(RAND_STAT,-3) + AdjustStatNum(RAND_STAT,3) + AdjustStatNum(RAND_STAT,-3) + AdjustStatNum(RAND_STAT,3) + if(4) + AdjustHitPoint(30) //Heals you a bit + if(5) + AdjustStatNum(RAND_STAT,1) //I like doctor pepper + if(6) + AdjustHitPoint(-10) + AdjustStatNum(RAND_STAT,2) + if(7) + AdjustHitPoint(100) + AdjustStatNum(RAND_STAT,-1) + if(7) + AdjustHitPoint(-100) + AdjustStatNum(WRATH_STAT,1) + AdjustStatNum(LUST_STAT,1) + AdjustStatNum(SLOTH_STAT,1) + AdjustStatNum(GLUTT_STAT,1) + AdjustStatNum(GLOOM_STAT,1) + AdjustStatNum(PRIDE_STAT,1) + AdjustStatNum(ENVY_STAT,1) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/we_can_change_anything.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/we_can_change_anything.dm new file mode 100644 index 000000000000..bc9e0d024900 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/abnormality/zayin/we_can_change_anything.dm @@ -0,0 +1,37 @@ +/datum/adventure_event/wcca + name = "Pain Machine" + desc = "YOUR VOICE SCREAMING" + require_abno = /mob/living/simple_animal/hostile/abnormality/we_can_change_anything + adventure_cords = list( + "In front of you is a machine with space for one.", + + "As you enter the machine, the door closes behind you.
\ + You hear a dinging noise as a spike plunges into your back,
\ + and something clinks to the ground outside of the machine.", + + "The machine spits you out.
\ + You call back to the clinking outside of the machine, seeing
\ + a pile of coins lie outside for you to take." + ) + var/machine_coins = 0 + +/datum/adventure_event/wcca/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "ENTER THE MACHINE", M) + BUTTON_FORMAT(2, "ENTER THE MACHINE", M) + BUTTON_FORMAT(2, "ENTER THE MACHINE", M) + return + if(2) + BUTTON_FORMAT(2, "ENJOY THE MACHINE", M) + BUTTON_FORMAT(2, "ENJOY THE MACHINE", M) + BUTTON_FORMAT(3, "LEAVE THE MACHINE", M) + BUTTON_FORMAT(2, "ENJOY THE MACHINE", M) + BUTTON_FORMAT(2, "ENJOY THE MACHINE", M) + AdjustHitPoint(-10) + machine_coins++ + return + if(3) + AdjustCurrency(machine_coins) + + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/Man_Sand.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/Man_Sand.dm new file mode 100644 index 000000000000..72c9c31f2301 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/Man_Sand.dm @@ -0,0 +1,47 @@ +/** + * This event was just based on the way some rich people flaunt their wealth as a way of escaping the lonliness that comes from their position. + * -ML + */ +/datum/adventure_event/Man_Sand + name = "All the Sand in the World" + desc = "SAND IS EVERYWHERE" + adventure_cords = list( + "As you enter the room it opens up, its ceiling so high that it disappears into a single point.
\ + The only thing in it is a pile of glistening grains of sand, piled so high that it disappears into the ceiling.
\ + \"Welcome!\" a voice shouts. At first you see nothing, and then a figure begins to form itself from the sand.
\ + It slowly rises. \"Isn’t it wondrous? My collection?\" It grins, waving around at the empty room.
\ + \"Feel free to indulge yourself in its splendor!\"
\ + When you don’t immediately begin applauding it backs away, confused.
\ + In a flash it builds a few effigies of itself, each of them clapping until they collapse.", + + "You decide to humor the thing, telling it how impresive all the sand is.", + + "\"See?\" The figure says, turning towards the smaller versions of itself.
\ + \"Even this intruder recognizes how spectacular I am!\"
\ + They continue boasting to their constructed audience, ignoring you taking your leave.", + + "\"Why do you mock me?\" The figure cries, thrashing around kicking up clouds of sand.
\ + Throwing fistfuls of sand that carry their own degrading hands with them they shout: \"Begone, begone!\"
\ + As you leave you notice the sand solidifying into nuggets of gold in your hand.", + + "\"Wait,\" The figure cries rushing to try and grab you. \"Where are you going?\"
\ + As soon as its foot leaves the pile it’s body crumbles into sand.
\ + You simply leave. Behind you it continues to whine, demanding you come back.", + ) + +/datum/adventure_event/Man_Sand/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "HUMOR IT", M) + BUTTON_FORMAT(5, "LEAVE", M) + return + if(2) + CHANCE_BUTTON_FORMAT(ReturnStat(GLUTT_STAT), "GLUTTONY", M) + CHANCE_BUTTON_FORMAT(ReturnStat(SLOTH_STAT), "SLOTH", M) + . += CoinFlipping(M) + return + if(3) + AdjustStatNum(SLOTH_STAT, ADV_EVENT_STAT_EASY) + if(4) + AdjustCurrency(ADV_EVENT_COIN_EASY) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/fun_contract.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/fun_contract.dm new file mode 100644 index 000000000000..efec948116f7 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/fun_contract.dm @@ -0,0 +1,26 @@ +/** + *This on just started as a joke of an event that straight up killed you. + */ +/datum/adventure_event/fun_contract + name = "Sign away your life!" + desc = "YOU SEE A PAPER AND PEN" + adventure_cords = list( + "\"Hello.\" A light turns on, illuminating a desk with only a pen and paper on it.
\ + \"I'm here to offer you a deal.\"
\ + The paper reads, sign here to die.
\ + \"Please,\" The voice says as a line begins to appear on the paper. \"Sign here.\"", + + "You sign the paper, and everything goes black.", + + "What sort of idiot would sign?", + ) + +/datum/adventure_event/fun_contract/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "SIGN", M) + BUTTON_FORMAT(3, "DON'T SIGN", M) + return + if(2) + AdjustHitPoint(-100) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/vending machine.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/vending machine.dm new file mode 100644 index 000000000000..295602ffcf88 --- /dev/null +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/general/vending machine.dm @@ -0,0 +1,31 @@ +/datum/adventure_event/vending_machine + name = "Vending Machine" + desc = "YOU SEE A FAINT LIGHT" + adventure_cords = list( + "As you are walking down the alley, you see a faint light.
\ + After first checking to see if you are being followed, you
\ + investigate to find a vending machine in the darkness.
\ + It's simply asking you for a coin.", + + "A coin is inserted into the machine, and a drink is dispensed.
\ + It tastes like the faint memory of cherry cola.
\ + ...
\ + You don't think it tastes very good, but it's likely not poison.
\ + Walking off into the night, you quickly forget what transpired.", + + "You leave the vending machine be. Who knows what it could dispense?
\ + Forgetting where you were going, you continue back the way you came.", + ) + +/datum/adventure_event/vending_machine/EventChoiceFormat(obj/machinery/M, mob/living/carbon/human/H) + switch(cords) + if(1) + BUTTON_FORMAT(2, "INSERT A COIN", M) + BUTTON_FORMAT(3, "LEAVE IT BE", M) + return + if(2) + AdjustCurrency(-1) + AdjustHitPoint(100) + if(3) + AdjustStatNum(SLOTH_STAT,1) + return ..() diff --git a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/limbus_company/ambling_pearl.dm b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/limbus_company/ambling_pearl.dm index d59af5311802..790f4602ff2b 100644 --- a/ModularTegustation/lc13_obj/_adventure_console/adventure_events/limbus_company/ambling_pearl.dm +++ b/ModularTegustation/lc13_obj/_adventure_console/adventure_events/limbus_company/ambling_pearl.dm @@ -1,6 +1,6 @@ /datum/adventure_event/ambling_pearl name = "Mirror Shard:Ambling Pearl" - desc = null + desc = "THE SMELL OF ROT" adventure_cords = list( "The barren mudflat reeks of salt and rot.
\ What little jade-colored seawater is left there
\ diff --git a/ModularTegustation/tegu_items/associations/!overwrites.dm b/ModularTegustation/tegu_items/associations/!overwrites.dm index f0e210128eca..b495b05028d1 100644 --- a/ModularTegustation/tegu_items/associations/!overwrites.dm +++ b/ModularTegustation/tegu_items/associations/!overwrites.dm @@ -1,5 +1,49 @@ +/mob/living/simple_animal/hostile/ordeal/steel_dawn/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + guaranteed_butcher_results += list(/obj/item/food/meat/slab/human/mutant/moth = 1) + /mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon/Initialize() . = ..() if(SSmaptype.maptype in SSmaptype.citymaps) maxHealth = 500 health = 500 + melee_damage_lower = 8 + melee_damage_upper = 10 + +/mob/living/simple_animal/hostile/ordeal/green_bot_big/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + rapid = 10 + rapid_fire_delay = 3 + projectiletype = /obj/projectile/bullet/c9x19mm/greenbot/city + firing_cooldown = 2.4 + +/mob/living/simple_animal/hostile/ordeal/amber_dusk/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + melee_damage_lower = 45 + melee_damage_upper = 50 + maxHealth = 700 + health = 700 + can_burrow = FALSE + attack_cooldown = 100 + +/mob/living/simple_animal/hostile/ordeal/dog_corrosion/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + gibbing = FALSE + maxHealth = 1500 + health = 1500 + +/mob/living/simple_animal/hostile/ordeal/snake_corrosion/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + maxHealth = 2000 + health = 2000 + +/mob/living/simple_animal/hostile/ordeal/snake_corrosion/strong/Initialize() + . = ..() + if(SSmaptype.maptype in SSmaptype.citymaps) + maxHealth = 3000 + health = 3000 diff --git a/ModularTegustation/tegu_items/associations/cityspawners.dm b/ModularTegustation/tegu_items/associations/cityspawners.dm index 215c61cb5d67..e797895a2613 100644 --- a/ModularTegustation/tegu_items/associations/cityspawners.dm +++ b/ModularTegustation/tegu_items/associations/cityspawners.dm @@ -77,6 +77,7 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) "gcorp", "sweeper", "bots", + "worms", ) /obj/effect/landmark/backstreetspawn/Initialize() @@ -99,10 +100,15 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot if(prob(30)) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot_big - new spawning(get_turf(src)) - + if("worms") + spawning = /mob/living/simple_animal/hostile/ordeal/amber_bug + if(prob(30)) + spawning = /mob/living/simple_animal/hostile/ordeal/amber_dusk + new spawning(get_turf(src)) + if (GLOB.city_center_enemies == "worms") + new /mob/living/simple_animal/hostile/ordeal/amber_bug (get_turf(src)) /obj/effect/landmark/backstreetspawnwest name = "cityspawn landmark" @@ -111,6 +117,7 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) "gcorp", "sweeper", "bots", + "worms", ) /obj/effect/landmark/backstreetspawnwest/Initialize() @@ -134,7 +141,15 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot if(prob(30)) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot_big + + if("worms") + spawning = /mob/living/simple_animal/hostile/ordeal/amber_bug + if(prob(30)) + spawning = /mob/living/simple_animal/hostile/ordeal/amber_dusk + new spawning(get_turf(src)) + if (GLOB.city_west_enemies == "worms") + new /mob/living/simple_animal/hostile/ordeal/amber_bug (get_turf(src)) /obj/effect/landmark/backstreetspawneast @@ -144,6 +159,7 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) "gcorp", "sweeper", "bots", + "worms", ) /obj/effect/landmark/backstreetspawneast/Initialize() @@ -166,5 +182,12 @@ GLOBAL_VAR_INIT(city_east_enemies, FALSE) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot if(prob(30)) spawning = /mob/living/simple_animal/hostile/ordeal/green_bot_big - new spawning(get_turf(src)) + if("worms") + spawning = /mob/living/simple_animal/hostile/ordeal/amber_bug + if(prob(30)) + spawning = /mob/living/simple_animal/hostile/ordeal/amber_dusk + + new spawning(get_turf(src)) + if (GLOB.city_east_enemies == "worms") + new /mob/living/simple_animal/hostile/ordeal/amber_bug (get_turf(src)) diff --git a/ModularTegustation/tegu_items/associations/items.dm b/ModularTegustation/tegu_items/associations/items.dm index fc028c31aa32..be2ea9085bdd 100644 --- a/ModularTegustation/tegu_items/associations/items.dm +++ b/ModularTegustation/tegu_items/associations/items.dm @@ -59,10 +59,11 @@ icon = 'ModularTegustation/Teguicons/teguitems.dmi' icon_state = "tcorp_syringe" amount = 1 + var/list/usable_roles = list("Civilian", "Office Director", "Office Fixer") /obj/item/attribute_increase/fixer/attack_self(mob/living/carbon/human/user) //only civilians can use this. - if(user?.mind?.assigned_role != "Civilian") + if(!(user?.mind?.assigned_role in usable_roles)) to_chat(user, span_danger("You cannot use this item, as you must not belong to an association.")) return diff --git a/ModularTegustation/tegu_items/associations/machines.dm b/ModularTegustation/tegu_items/associations/machines.dm index 45d05639f959..1ecdb5df7cf7 100644 --- a/ModularTegustation/tegu_items/associations/machines.dm +++ b/ModularTegustation/tegu_items/associations/machines.dm @@ -14,7 +14,10 @@ /obj/item/food/meat/slab/sweeper, /obj/item/food/meat/slab/worm, /obj/item/food/meat/slab/robot, - /obj/item/food/meat/slab/human/mutant/moth, + /obj/item/food/meat/slab/buggy, + /obj/item/food/meat/slab/corroded, + /obj/item/food/meat/slab/sinnew, + /obj/item/food/meat/slab/crimson, /obj/item/rawpe, /obj/item/reagent_containers/food/drinks/bottle/wine/unlabeled, ) @@ -25,9 +28,9 @@ /obj/item/head_trophy, /obj/item/tape/resurgence, /obj/item/refinedpe, + /obj/item/raw_anomaly_core, ) var/list/level_3 = list( - /obj/item/raw_anomaly_core, /obj/item/documents, /obj/item/folder/syndicate, /obj/item/folder/documents, @@ -173,6 +176,11 @@ JUSTICE_ATTRIBUTE, ) +/obj/structure/potential/Initialize() + . = ..() + new /obj/item/paper/fluff/fixer_skills (get_turf(src)) + new /obj/item/paper/fluff/fixer_skills (get_turf(src)) + //Very dumb way to implement "empty hand AND full hand." //These two code blocks are the same except for their triggers - if you've got a better idea, please use it. /obj/structure/potential/proc/calculate_grade(mob/living/user) diff --git a/ModularTegustation/tegu_items/associations/vending.dm b/ModularTegustation/tegu_items/associations/vending.dm index 69e2a542ae84..e99d2966d21a 100644 --- a/ModularTegustation/tegu_items/associations/vending.dm +++ b/ModularTegustation/tegu_items/associations/vending.dm @@ -100,6 +100,7 @@ /obj/item/book/granter/crafting_recipe/carnival/weaving_wedge = 1, /obj/item/book/granter/crafting_recipe/carnival/weaving_molar_boatworks = 1, /obj/item/book/granter/crafting_recipe/carnival/weaving_rosespanner = 1, + /obj/item/book/granter/crafting_recipe/carnival/weaving_masquerade = 1, ) default_price = 100 @@ -133,7 +134,8 @@ /obj/item/kitchen/knife/combat/survival = 100, /obj/item/weldingtool/mini = 100, /obj/item/reagent_containers/hypospray/medipen/mental = 100, - /obj/item/reagent_containers/hypospray/medipen/salacid = 100 + /obj/item/reagent_containers/hypospray/medipen/salacid = 100, + /obj/item/gps/fixer = 100, ) premium = list( diff --git a/ModularTegustation/tegu_items/backstreets/templates.dm b/ModularTegustation/tegu_items/backstreets/templates.dm index bff3c5316384..02c7a0f9d68f 100644 --- a/ModularTegustation/tegu_items/backstreets/templates.dm +++ b/ModularTegustation/tegu_items/backstreets/templates.dm @@ -33,6 +33,11 @@ room_id = "abandoned_lcorp" mappath = "_maps/RandomRooms/backstreetlayout/lcorp_backstreets.dmm" +/datum/map_template/random_room/backstreet_template/outskirts + name = "Outskirts Template" + room_id = "outskirts" + mappath = "_maps/RandomRooms/backstreetlayout/outskirts.dmm" + /datum/map_template/random_room/backstreet_template/la_mancha_land name = "La Mancha Land Template" room_id = "la_mancha_land_backstreets" diff --git a/ModularTegustation/tegu_items/debug_items.dm b/ModularTegustation/tegu_items/debug_items.dm index ff3276c3f2a3..b26dbdcc946b 100644 --- a/ModularTegustation/tegu_items/debug_items.dm +++ b/ModularTegustation/tegu_items/debug_items.dm @@ -374,3 +374,26 @@ say("Restarting...") SLEEP_CHECK_DEATH(10) DeepsCheckStart() + +//breach tester +/obj/item/lc_debug/breachtester//for testing many abnormalities very quickly + name = "Breach tester" + desc = "For testing use only, DO NOT DISTRIBUTE! Breach types can be checked under _DEFINES/abnormalities.dm" + icon = 'icons/obj/items_and_weapons.dmi' + icon_state = "nanoimplant" + var/breach_type = BREACH_NORMAL + var/list/breach_list = list( + BREACH_NORMAL, BREACH_PINK, BREACH_MINING, + ) + +/obj/item/lc_debug/breachtester/attack_self(mob/user) + breach_type = input(user, "Which breach will you test?") as null|anything in breach_list + +/obj/item/lc_debug/breachtester/attack(mob/living/simple_animal/hostile/abnormality/target, mob/living/carbon/human/user) + if(!isabnormalitymob(target)) + to_chat(user, span_warning("\"[target]\" isn't an Abnormality.")) + return + target.BreachEffect(user, breach_type) + to_chat(user, span_nicegreen("You triggered a [breach_type] breach!")) + + diff --git a/ModularTegustation/tegu_items/prosthetics/resurgence_core.dm b/ModularTegustation/tegu_items/prosthetics/resurgence_core.dm new file mode 100644 index 000000000000..a84ca7a21729 --- /dev/null +++ b/ModularTegustation/tegu_items/prosthetics/resurgence_core.dm @@ -0,0 +1,43 @@ +/obj/item/organ/cyberimp/chest/resurgence_core + name = "Resurgence Clan Augment: Echo Step" + desc = "An augment designed by the resurgence clan, which lets the user teleport a short distance a the cost of their sanity." + syndicate_implant = TRUE + actions_types = list(/datum/action/item_action/organ_action/use/resurgence_core) + implant_overlay = "chest_resurgence_core" + +/datum/action/item_action/organ_action/use/resurgence_core + var/tp_distance = 2 + +/datum/action/item_action/organ_action/use/resurgence_core/Trigger() + if(!IsAvailable()) + return + get_teleport_loc() + var/turf/T + if(owner.dir == 1) + T = get_teleport_loc(owner.loc, owner, tp_distance, FALSE, 0, 0, 0, tp_distance) + if(owner.dir == 2) + T = get_teleport_loc(owner.loc, owner, tp_distance, FALSE, 0, 0, 0, (-1 * tp_distance)) + if(owner.dir == 4) + T = get_teleport_loc(owner.loc, owner, tp_distance, FALSE, 0, 0, tp_distance, 0) + if(owner.dir == 8) + T = get_teleport_loc(owner.loc, owner, tp_distance, FALSE, 0, 0, (-1 * tp_distance), 0) + if(T.density) + to_chat(owner, span_danger("ERROR: Dense object detected in Echo Step destination.")) + return + if(T.x>world.maxx || T.x<1) + to_chat(owner, span_danger("ERROR: Dense object detected in Echo Step destination.")) + return + if(T.y>world.maxy || T.y<1) + to_chat(owner, span_danger("ERROR: Dense object detected in Echo Step destination.")) + return + if (ishuman(owner)) + var/mob/living/carbon/human/human = owner + playsound(owner, 'sound/effects/contractorbatonhit.ogg', 20, FALSE, 9) + new /obj/effect/temp_visual/dir_setting/ninja/phase/out (get_turf(owner)) + if (T in view(tp_distance, owner)) + human.adjustSanityLoss(human.maxSanity * 0.025) + else + human.adjustSanityLoss(human.maxSanity * 0.25) + to_chat(human, span_danger("WARNING: Echo Step destination is not visible, increasing power usage by 1000%.")) + human.loc = T + new /obj/effect/temp_visual/dir_setting/ninja/phase (get_turf(owner)) diff --git a/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm b/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm index 8fc9b49b0657..321da10e7489 100644 --- a/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm +++ b/ModularTegustation/tegu_items/rcorp/!abno_overwrites.dm @@ -52,7 +52,9 @@ //Porccubus gets a much shorter dash cooldown to better maneuver itself with how big of a commitment dashing is. /mob/living/simple_animal/hostile/abnormality/porccubus/Initialize() if(IsCombatMap()) - ranged_cooldown_time = 3 SECONDS + maxHealth = 3000 + health = 3000 + ranged_cooldown_time = 0.5 SECONDS return ..() // Fairy gentleman gets a bump to his survival, damage, and a bigger ass. @@ -75,6 +77,24 @@ bullet_damage = 200 return ..() +//Due to Redblooded's very low damage and health, which is normaly fitting for a Teth. That causes them to underperform in R-Corp since they don't have any utility. +//For that reason his health is increased and let his ammo gimmick work by reducing his ranged cooldown. +/mob/living/simple_animal/hostile/abnormality/redblooded/Initialize() + if(SSmaptype.maptype == "rcorp") + ranged_cooldown_time = 0.5 SECONDS + maxHealth = 1200 + health = 1200 + melee_damage_lower = 15 + melee_damage_upper = 20 + casingtype = /obj/item/ammo_casing/caseless/rcorp_true_patriot + return ..() + +/mob/living/simple_animal/hostile/abnormality/ppodae/Initialize() + if(IsCombatMap()) + smash_damage_low = 32 + smash_damage_high = 40 + return ..() + //Warden deals even less damage then more bodies they eat, and they take more damage from all attacks. //Warden currently slowballs far to quickly, so this nerf should give R-Corp a better chance at fighting back against them. /mob/living/simple_animal/hostile/abnormality/warden/Initialize() @@ -96,3 +116,9 @@ heal_percent_per_second = 0.01275 r_corp_regen_start = 0.5 return ..() + +/mob/living/simple_animal/hostile/abnormality/greed_king/Initialize() + if(IsCombatMap()) + initial_charge_damage = 200 + growing_charge_damage = 80 + return ..() diff --git a/ModularTegustation/tegu_items/rcorp/button.dm b/ModularTegustation/tegu_items/rcorp/button.dm new file mode 100644 index 000000000000..09f00e32a315 --- /dev/null +++ b/ModularTegustation/tegu_items/rcorp/button.dm @@ -0,0 +1,37 @@ +/obj/machinery/button/door/indestructible/rcorp + name = "rcorp button" + id = "inside" + +/obj/machinery/button/door/indestructible/rcorp/setup_device() + if(!device) + var/obj/item/assembly/control/rcorp/A = new(src) + device = A + ..() + +/obj/machinery/button/door/indestructible/rcorp/Destroy() + qdel(device) + return ..() + +/obj/item/assembly/control/rcorp + name = "rcorp door controller" + +/obj/item/assembly/control/rcorp/activate() + if(cooldown) + return + // check abnos + var/count = 0 + var/mob/living/simple_animal/hostile/better_memories_minion/B = locate() + var/mob/living/carbon/human/species/pinocchio/P = locate() + if (P) + count++ + if (B) + count++ + for(var/mob/living/simple_animal/hostile/abnormality/A in GLOB.abnormality_mob_list) + if (A.rcorp_team == "easy") + count++ + if (count > 2) + break + if (count > 2) + to_chat(usr, "There are still enemies around!") + return + ..() diff --git a/ModularTegustation/tegu_items/rcorp/landmarks.dm b/ModularTegustation/tegu_items/rcorp/landmarks.dm index 347efe1ebe19..4f32f0d57c90 100644 --- a/ModularTegustation/tegu_items/rcorp/landmarks.dm +++ b/ModularTegustation/tegu_items/rcorp/landmarks.dm @@ -85,10 +85,10 @@ GLOBAL_LIST_INIT(raidboss, list(/mob/living/simple_animal/hostile/distortion/shr /obj/effect/landmark/abnospawn/easycombat/Initialize() ..() var/spawning = pick_n_take(GLOB.easycombat) - new spawning(get_turf(src)) + var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src)) + A.rcorp_team = "easy" return INITIALIZE_HINT_QDEL - /obj/effect/landmark/abnospawn/easysupport name = "easy support abno spawner" desc = "It spawns an abno. Notify a coder. Thanks!" @@ -98,10 +98,10 @@ GLOBAL_LIST_INIT(raidboss, list(/mob/living/simple_animal/hostile/distortion/shr /obj/effect/landmark/abnospawn/easysupport/Initialize() ..() var/spawning = pick_n_take(GLOB.easysupport) - new spawning(get_turf(src)) + var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src)) + A.rcorp_team = "easy" return INITIALIZE_HINT_QDEL - /obj/effect/landmark/abnospawn/easytank name = "easy tank abno spawner" desc = "It spawns an abno. Notify a coder. Thanks!" @@ -111,7 +111,8 @@ GLOBAL_LIST_INIT(raidboss, list(/mob/living/simple_animal/hostile/distortion/shr /obj/effect/landmark/abnospawn/easytank/Initialize() ..() var/spawning = pick_n_take(GLOB.easytank) - new spawning(get_turf(src)) + var/mob/living/simple_animal/hostile/abnormality/A = new spawning(get_turf(src)) + A.rcorp_team = "easy" return INITIALIZE_HINT_QDEL /obj/effect/landmark/abnospawn/hardcombat diff --git a/ModularTegustation/tegu_items/rcorp/objective.dm b/ModularTegustation/tegu_items/rcorp/objective.dm index e87a0e7b31ba..f015037688dd 100644 --- a/ModularTegustation/tegu_items/rcorp/objective.dm +++ b/ModularTegustation/tegu_items/rcorp/objective.dm @@ -162,19 +162,24 @@ GLOBAL_VAR_INIT(rcorp_payload, null) light_on = FALSE update_light() - //Round End Effects - SSticker.SetRoundEndSound('sound/abnormalities/donttouch/end.ogg') - SSticker.force_ending = 1 - for(var/mob/M in GLOB.player_list) - to_chat(M, span_userdanger("[uppertext(user.real_name)] has collected the bough!")) - - switch(GLOB.rcorp_wincondition) - if(0) - to_chat(M, span_userdanger("R-CORP MAJOR VICTORY.")) - if(1) - to_chat(M, span_userdanger("R-CORP MINOR VICTORY.")) - if(2) - to_chat(M, span_userdanger("R-CORP SUPREME VICTORY.")) + if(!SSticker.force_ending) + //Round End Effects + SSticker.SetRoundEndSound('sound/abnormalities/donttouch/end.ogg') + SSticker.force_ending = 1 + for(var/mob/M in GLOB.player_list) + to_chat(M, span_userdanger("[uppertext(user.real_name)] has collected the bough!")) + + switch(GLOB.rcorp_wincondition) + if(0) + to_chat(M, span_userdanger("R-CORP MAJOR VICTORY.")) + if(1) + to_chat(M, span_userdanger("R-CORP MINOR VICTORY.")) + if(2) + to_chat(M, span_userdanger("R-CORP SUPREME VICTORY.")) + else + var/turf/turf = get_turf(src) + new /obj/effect/decal/cleanable/confetti(turf) + playsound(turf, 'sound/misc/sadtrombone.ogg', 100) else user.gib() //lol, idiot. @@ -186,16 +191,231 @@ GLOBAL_VAR_INIT(rcorp_payload, null) icon = 'ModularTegustation/Teguicons/32x32.dmi' icon_state = "executive" icon_living = "executive" - health = 300 //Fragile so they protect you - maxHealth = 300 + health = 1000 //Fragile so they protect you + maxHealth = 1000 + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1, PALE_DAMAGE = 1) + var/max_protection = 0.9 + var/base_resistance = 1 + var/guarding_allies = 0 + var/final_resistance = 1 + var/total_ally_protection = 0 + var/per_ally_protection = 0.25 + var/view_check_time = 1 SECONDS + var/view_check + var/barrier_count + var/max_barrier_count = 6 + var/sniper + var/warning + var/danger = FALSE + var/sniper_time = 0.5 + var/warning_time = 0.25 + var/sniper_safe = 1 + + var/list/shrimp_abilities = list( + /obj/effect/proc_holder/spell/pointed/shrimp_airstrike, + /obj/effect/proc_holder/spell/pointed/shrimp_barricade, + /obj/effect/proc_holder/spell/pointed/shrimp_heal, + ) + +/mob/living/simple_animal/hostile/shrimp_vip/Initialize() + . = ..() + for (var/A in shrimp_abilities) + if (ispath(A, /obj/effect/proc_holder/spell)) + var/obj/effect/proc_holder/spell/AS = new A(src) + AddSpell(AS) + +/mob/living/simple_animal/hostile/shrimp_vip/Login() + . = ..() + to_chat(src, "

You are Shimp VIP, A Objective Role Abnormality.


\ + |Supportive Barrier|: For each ally you are able to see, you take 25% less damage. For a max of 90% less damage from all attacks.
\ +
\ + |Sniper Target|: There is an R-Corp Sniper who is aiming at you. As long as you are able to see 2 allies, they will not be able to fire at you.
\ +
\ + |Airstrike Call|: After you click on your 'Airstrike' ability, The next turf you click on will call in a Airstrike on that location.
\ + There is a 3 second delay before a missile hits the ground, and they deal 200 RED damage in a 5x5 AoE when they land. In total you will fire 5 missiles.
\ +
\ + |Barricade Call|: After you click on your 'Barricade' ability, The next turf you click on will call in a Barricade to that location.
\ + You are able to have 6 barricades up at once, but you can still send down the pod to block damage.
\ +
\ + |Healing Call|: After you click on your 'Healing' ability, The next target you click on will have a HP bullet fired at them.
\ + Your HP bullets are not able to target yourself, and you are able to miss them if you don't click on an ally.
") + +/mob/living/simple_animal/hostile/shrimp_vip/Life() + . = ..() + if(!.) // Dead + return FALSE + if((view_check < world.time) && !(status_flags & GODMODE) && (client)) + Protection() + +/mob/living/simple_animal/hostile/shrimp_vip/proc/Protection() + view_check = world.time + view_check_time + var/temp_guarding_allies = 0 + for(var/mob/living/simple_animal/hostile/A in livinginview(7, src)) + if(src != A && faction_check_mob(A, FALSE)) + temp_guarding_allies += 1 + if (temp_guarding_allies != guarding_allies) + guarding_allies = temp_guarding_allies + total_ally_protection = guarding_allies * per_ally_protection + if (total_ally_protection > max_protection) + total_ally_protection = max_protection + final_resistance = base_resistance - total_ally_protection + ChangeResistances(list(RED_DAMAGE = final_resistance, WHITE_DAMAGE = final_resistance, BLACK_DAMAGE = final_resistance, PALE_DAMAGE = final_resistance)) + if (guarding_allies <= sniper_safe) + if (!sniper) + sniper = addtimer(CALLBACK(src, PROC_REF(SniperShoot)), sniper_time MINUTES, TIMER_STOPPABLE) + if (!warning) + warning = addtimer(CALLBACK(src, PROC_REF(SniperWarning)), warning_time MINUTES, TIMER_STOPPABLE) + if (guarding_allies >= (sniper_safe + 1)) + if (sniper) + deltimer(sniper) + sniper = null + if (warning) + deltimer(warning) + warning = null + if (danger == TRUE) + to_chat(src, span_nicegreen("You start to feel safer... Looks like that sniper can't get a good shot on you.")) + danger = FALSE + +/mob/living/simple_animal/hostile/shrimp_vip/proc/SniperShoot() + to_chat(src, span_userdanger("You are hit by a sniper bullet from an unknown sniper...")) + deal_damage(300, RED_DAMAGE) + playsound_local(src, 'sound/weapons/gun/sniper/shot.ogg', 75) + sniper = null + +/mob/living/simple_animal/hostile/shrimp_vip/proc/SniperWarning() + to_chat(src, span_userdanger("You feel a shiver down your spine... Someone is aiming towards you, Get back to your allies to be safer!")) + playsound_local(src, 'sound/weapons/gun/sniper/rack.ogg', 75) + danger = TRUE + warning = null /mob/living/simple_animal/hostile/shrimp_vip/death(gibbed) - for(var/mob/M in GLOB.player_list) - to_chat(M, span_userdanger("THE VIP HAS BEEN SLAIN.")) - to_chat(M, span_userdanger("R-CORP MAJOR VICTORY.")) - SSticker.force_ending = 1 - ..() + if(!SSticker.force_ending) + for(var/mob/M in GLOB.player_list) + to_chat(M, span_userdanger("THE VIP HAS BEEN SLAIN.")) + to_chat(M, span_userdanger("R-CORP MAJOR VICTORY.")) + SSticker.force_ending = 1 + else + var/turf/turf = get_turf(src) + new /obj/effect/decal/cleanable/confetti(turf) + playsound(turf, 'sound/misc/sadtrombone.ogg', 100) + return ..() + +/obj/effect/proc_holder/spell/pointed/shrimp_airstrike + name = "Airstrike Call" + desc = "Call in your off field support to send in a airstrike on your foes!" + panel = "Shrimp" + has_action = TRUE + action_icon = 'icons/mob/actions/actions_shrimp.dmi' + action_icon_state = "airstrike" + clothes_req = FALSE + charge_max = 600 + selection_type = "range" + active_msg = "You prepare your airstrike call..." + deactive_msg = "You put away your airstrike call..." + +/obj/structure/closet/supplypod/shrimpmissle + style = STYLE_RED_MISSILE + effectMissile = TRUE + explosionSize = list(0,0,0,0) + +/obj/effect/proc_holder/spell/pointed/shrimp_airstrike/cast(list/targets, mob/user) + var/target = targets[1] + user.visible_message(span_danger("[user] called an airstrike."), span_alert("You targeted [target]")) + addtimer(CALLBACK(src, PROC_REF(Airstrike), target), 1) + +/obj/effect/proc_holder/spell/pointed/shrimp_airstrike/proc/Airstrike(target) + var/turf/T = get_turf(target) + for (var/i in 1 to 5) + var/obj/structure/closet/supplypod/shrimpmissle/pod = new() + var/landingzone = locate(T.x + rand(-1,1), T.y + rand(-1,1), T.z) + if (landingzone) + new /obj/effect/pod_landingzone(landingzone, pod) + else + new /obj/effect/pod_landingzone(T, pod) + var/mob/dummy = new(landingzone) + dummy.faction = list("hostile") + dummy.visible_message("A MISSILE IS FALLING NEAR YOUR LOCATION!") + sleep(34) + for(var/turf/AT in range(2, landingzone)) + new /obj/effect/temp_visual/smash_effect(AT) + dummy.HurtInTurf(AT, list(), (200), RED_DAMAGE, check_faction = TRUE, hurt_mechs = TRUE) + playsound(dummy, 'sound/effects/explosion2.ogg', 50, TRUE) + qdel(dummy) + sleep(rand()*2) + +/obj/effect/proc_holder/spell/pointed/shrimp_barricade + name = "Barricade Call" + desc = "Call in your off field support to send in a barricade!" + panel = "Shrimp" + has_action = TRUE + action_icon = 'icons/mob/actions/actions_shrimp.dmi' + action_icon_state = "barricade" + clothes_req = FALSE + charge_max = 100 + selection_type = "range" + active_msg = "You prepare your barricade call ..." + deactive_msg = "You put away your barricade call ..." + +/obj/effect/proc_holder/spell/pointed/shrimp_barricade/cast(list/targets, mob/user) + var/target = targets[1] + if (istype(target, /obj/structure/barricade/security)) + to_chat(user, span_warning("There is a barricade there already!")) + return + else + user.visible_message(span_danger("[user] calls in a barricade."), span_alert("You targeted [target]")) + addtimer(CALLBACK(src, PROC_REF(Airstrike), target, user), 1) + +/obj/effect/proc_holder/spell/pointed/shrimp_barricade/proc/Airstrike(target, user) + if(istype(user, /mob/living/simple_animal/hostile/shrimp_vip)) + var/mob/living/simple_animal/hostile/shrimp_vip/shrimp = user + var/turf/T = get_turf(target) + var/obj/structure/closet/supplypod/extractionpod/pod = new() + pod.explosionSize = list(0,0,0,0) + if (shrimp.barrier_count < shrimp.max_barrier_count) + var/obj/structure/barricade/security/shrimp/barrier = new /obj/structure/barricade/security/shrimp(pod) + barrier.shrimp = shrimp + shrimp.barrier_count += 1 + else + to_chat(shrimp, "You have created too many barriers, Break some!") + new /obj/effect/pod_landingzone(T, pod) + stoplag(2) + +/obj/structure/barricade/security/shrimp + var/mob/living/simple_animal/hostile/shrimp_vip/shrimp + +/obj/structure/barricade/security/shrimp/Destroy() + shrimp.barrier_count -= 1 + . = ..() + +/obj/effect/proc_holder/spell/pointed/shrimp_heal + name = "Shrimp Reinforce" + desc = "Reinforce one of your allies by having your off field support shot them with a HP bullet!" + panel = "Shrimp" + has_action = TRUE + action_icon = 'icons/hud/screen_skills.dmi' + action_icon_state = "healing" + clothes_req = FALSE + charge_max = 100 + selection_type = "range" + active_msg = "You prepare your heal call ..." + deactive_msg = "You put away your heal call ..." + var/healamount = 50 + +/obj/effect/proc_holder/spell/pointed/shrimp_heal/cast(list/targets, mob/user) + var/target = targets[1] + if (istype(target, /mob/living/simple_animal/hostile/shrimp_vip)) + to_chat(user, span_warning("You can't target yourself!")) + return + else + if (istype(target, /mob/living/simple_animal)) + var/mob/living/simple_animal/S = target + S.adjustBruteLoss(-healamount) + user.visible_message(span_danger("[user] calls in a HP bullet on [target]."), span_alert("You targeted [target]")) + playsound(get_turf(S), 'ModularTegustation/Tegusounds/weapons/guns/manager_bullet_fire.ogg', 10, 0, 3) + new /obj/effect/temp_visual/heal(get_turf(S), "#FF4444") + else + to_chat(user, span_warning("You can't target a non-simple animal!")) //Arbiter /obj/effect/mob_spawn/human/arbiter/rcorp @@ -239,15 +459,19 @@ GLOBAL_VAR_INIT(rcorp_payload, null) resistance_flags &= ~INDESTRUCTIBLE /obj/structure/rcorpcomms/deconstruct(disassembled = TRUE) - for(var/mob/M in GLOB.player_list) - to_chat(M, span_userdanger("RCORP'S COMMUNICATIONS HAVE BEEN DESTROYED.")) - switch(GLOB.rcorp_wincondition) - if(0) - to_chat(M, span_userdanger("ABNORMALITY MAJOR VICTORY.")) - if(1) - to_chat(M, span_userdanger("ABNORMALITY SUPREME VICTORY.")) - if(2) - to_chat(M, span_userdanger("ABNORMALITY MINOR VICTORY.")) - SSticker.force_ending = 1 - ..() - + if(!SSticker.force_ending) + for(var/mob/M in GLOB.player_list) + to_chat(M, span_userdanger("RCORP'S COMMUNICATIONS HAVE BEEN DESTROYED.")) + switch(GLOB.rcorp_wincondition) + if(0) + to_chat(M, span_userdanger("ABNORMALITY MAJOR VICTORY.")) + if(1) + to_chat(M, span_userdanger("ABNORMALITY SUPREME VICTORY.")) + if(2) + to_chat(M, span_userdanger("ABNORMALITY MINOR VICTORY.")) + SSticker.force_ending = 1 + else + var/turf/turf = get_turf(src) + new /obj/effect/decal/cleanable/confetti(turf) + playsound(turf, 'sound/misc/sadtrombone.ogg', 100) + return ..() diff --git a/ModularTegustation/tegu_items/refinery/crates/_crate.dm b/ModularTegustation/tegu_items/refinery/crates/_crate.dm index cf08918048ee..bbeae7613fd2 100644 --- a/ModularTegustation/tegu_items/refinery/crates/_crate.dm +++ b/ModularTegustation/tegu_items/refinery/crates/_crate.dm @@ -59,6 +59,7 @@ veryrarechance += (repmodifier/crate_multiplier) if(SSmaptype.maptype in SSmaptype.citymaps) //Fuckers shouldn't loot like this + SEND_GLOBAL_SIGNAL(COMSIG_CRATE_LOOTING_STARTED, user, src) if(!do_after(user, 7 SECONDS, src)) return @@ -76,5 +77,9 @@ new cloot(get_turf(src)) to_chat(user, span_notice("You open the crate!")) + if(SSmaptype.maptype in SSmaptype.citymaps) + SEND_GLOBAL_SIGNAL(COMSIG_CRATE_LOOTING_ENDED, user, src) + new loot(get_turf(src)) qdel(src) + diff --git a/ModularTegustation/tegu_mobs/apocalypse_bird.dm b/ModularTegustation/tegu_mobs/apocalypse_bird.dm index c81100c82791..3c77376d6e8a 100644 --- a/ModularTegustation/tegu_mobs/apocalypse_bird.dm +++ b/ModularTegustation/tegu_mobs/apocalypse_bird.dm @@ -24,6 +24,7 @@ occupied_tiles_left = 3 occupied_tiles_right = 3 occupied_tiles_up = 2 + damage_effect_scale = 1.25 blood_volume = BLOOD_VOLUME_NORMAL del_on_death = TRUE death_message = "finally stops moving, falling to the ground." diff --git a/ModularTegustation/tegu_mobs/lc13_blood_fiend.dm b/ModularTegustation/tegu_mobs/lc13_blood_fiend.dm new file mode 100644 index 000000000000..fdbf31f4efec --- /dev/null +++ b/ModularTegustation/tegu_mobs/lc13_blood_fiend.dm @@ -0,0 +1,468 @@ +/mob/living/simple_animal/hostile/humanoid/blood + faction = list("hostile") + +/mob/living/simple_animal/hostile/humanoid/blood/fiend + name = "bloodfiend" + desc = "A humanoid wearing a bloody dress and a bird mask." + icon = 'ModularTegustation/Teguicons/blood_fiends_32x32.dmi' + icon_state = "test_meifiend" + icon_living = "test_meifiend" + icon_dead = "test_meifiend_dead" + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.2, WHITE_DAMAGE = 0.8, BLACK_DAMAGE = 0.6, PALE_DAMAGE = 1.3) + melee_damage_lower = 8 + melee_damage_upper = 10 + melee_damage_type = RED_DAMAGE + attack_sound = 'sound/abnormalities/nosferatu/attack.ogg' + attack_verb_continuous = "slices" + attack_verb_simple = "slice" + maxHealth = 1000 + health = 1000 + ranged = TRUE + butcher_results = list(/obj/item/food/meat/slab/crimson = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/crimson = 3) + silk_results = list(/obj/item/stack/sheet/silk/crimson_simple = 2, /obj/item/stack/sheet/silk/crimson_advanced = 1) + var/leap_sound = 'sound/abnormalities/nosferatu/attack_special.ogg' + var/blood_feast = 450 + var/max_blood_feast = 500 + var/can_act = TRUE + var/leap_damage = 50 + var/slash_damage = 25 + var/drain_cooldown = 0 + var/drain_cooldown_time = 50 + var/bleed_stacks = 2 + var/leap_bleed_stacks = 5 + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/proc/AdjustBloodFeast(amount) + if(stat != DEAD) + adjustBruteLoss(-amount/4) + blood_feast += amount + if (blood_feast > max_blood_feast) + blood_feast = max_blood_feast + else + return + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/death(gibbed) + if(prob(20)) + new /obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak (get_turf(src)) + . = ..() + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/proc/Drain() + var/turf/T = get_turf(src) + if(!T) + return + if (health != maxHealth || blood_feast != max_blood_feast) + for(var/obj/effect/decal/cleanable/blood/B in view(T, 2)) //will clean up any blood, but only heals from human blood + if (health != maxHealth || blood_feast != max_blood_feast) + if(B.blood_state == BLOOD_STATE_HUMAN) + playsound(T, 'sound/abnormalities/nosferatu/bloodcollect.ogg', 25, 3) + if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent footprint spam + AdjustBloodFeast(30) + else + AdjustBloodFeast(max((B.bloodiness**2)/800,1)) + qdel(B) + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/proc/Dash(target_turf) + target_turf = get_turf(target) + var/list/hit_mob = list() + do_shaky_animation(1) + if(do_after(src, 0.5 SECONDS, target = src)) + var/turf/wallcheck = get_turf(src) + var/enemy_direction = get_dir(src, target_turf) + for(var/i = 0 to 4) + if(get_turf(src) != wallcheck || stat == DEAD) + break + wallcheck = get_step(src, enemy_direction) + if(!ClearSky(wallcheck)) + break + sleep(0.25)//without this the attack happens instantly + forceMove(wallcheck) + playsound(wallcheck, 'sound/abnormalities/doomsdaycalendar/Lor_Slash_Generic.ogg', 20, 0, 4) + for(var/turf/T in orange(get_turf(src), 1)) + if(isclosedturf(T)) + continue + var/obj/effect/temp_visual/slice/blood = new(T) + blood.color = "#b52e19" + hit_mob = HurtInTurf(T, hit_mob, slash_damage, RED_DAMAGE, null, TRUE, FALSE, TRUE, hurt_structure = TRUE) + +/obj/effect/temp_visual/warning3x3/bloodfiend + duration = 1.5 SECONDS + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/proc/Leap(mob/living/target) + if(!isliving(target) && !ismecha(target) || !can_act) + return + blood_feast = 0 + can_act = FALSE + SLEEP_CHECK_DEATH(0.25 SECONDS) + animate(src, alpha = 1,pixel_x = 16, pixel_z = 0, time = 0.1 SECONDS) + src.pixel_x = 16 + playsound(src, 'sound/abnormalities/ichthys/jump.ogg', 50, FALSE, 4) + var/turf/target_turf = get_turf(target) + var/obj/effect/temp_visual/warning3x3/W = new(target_turf) + W.color = "#fa3217ac" + SLEEP_CHECK_DEATH(1.5 SECONDS) + if(target_turf) + forceMove(target_turf) //look out, someone is rushing you! + playsound(src, leap_sound, 50, FALSE, 4) + animate(src, alpha = 255,pixel_x = -16, pixel_z = 0, time = 0.1 SECONDS) + src.pixel_x = 0 + SLEEP_CHECK_DEATH(0.1 SECONDS) + for(var/turf/T in view(1, src)) + var/obj/effect/temp_visual/small_smoke/halfsecond/FX = new(T) + FX.color = "#b52e19" + for(var/mob/living/L in T) + if(faction_check_mob(L)) + continue + L.apply_lc_bleed(leap_bleed_stacks) + L.deal_damage(leap_damage, RED_DAMAGE) + for(var/obj/vehicle/sealed/mecha/V in T) + V.take_damage(leap_damage, RED_DAMAGE) + SLEEP_CHECK_DEATH(0.5 SECONDS) + say("No... I NEED MORE!!!") + SLEEP_CHECK_DEATH(1.5 SECONDS) + Dash(target_turf) + Dash(target_turf) + can_act = TRUE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/ClearSky(turf/T) + . = ..() + if(.) + if(locate(/obj/structure/table) in T.contents) + return FALSE + if(locate(/obj/structure/railing) in T.contents) + return FALSE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/Life() + . = ..() + if(drain_cooldown > world.time) + return FALSE + if(stat == DEAD) + return FALSE + drain_cooldown = world.time + drain_cooldown_time + Drain() + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/AttackingTarget() + if(!can_act) + return + if(blood_feast == max_blood_feast && !client) + Leap(target) + return + . = ..() + if (istype(target, /mob/living)) + var/mob/living/L = target + L.apply_lc_bleed(bleed_stacks) + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/OpenFire() + if(!can_act) + return FALSE + if(max_blood_feast == blood_feast) + Leap(target) + return + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/Move() + if(!can_act) + return FALSE + if(stat != DEAD) + Drain() + ..() + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss + name = "royal bloodfiend" + desc = "A humanoid wearing a bloody suit and a bird mask. They appear to hold themselves in high regard." + icon = 'ModularTegustation/Teguicons/blood_fiends_32x32.dmi' + icon_state = "b_boss" + icon_living = "b_boss" + icon_dead = "b_boss_dead" + var/normal_state = "b_boss" + var/hardblood_state = "b_boss_hardblood" + var/exhausted_state = "b_boss_exhausted" + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1, WHITE_DAMAGE = 0.6, BLACK_DAMAGE = 0.4, PALE_DAMAGE = 1.5) + melee_damage_lower = 7 + melee_damage_upper = 8 + melee_damage_type = RED_DAMAGE + attack_sound = 'sound/abnormalities/nosferatu/attack.ogg' + attack_verb_continuous = "slices" + attack_verb_simple = "slice" + maxHealth = 2300 + health = 2300 + ranged = TRUE + guaranteed_butcher_results = list(/obj/item/food/meat/slab/crimson = 5, /obj/item/stack/spacecash/c1000 = 1) + silk_results = list(/obj/item/stack/sheet/silk/crimson_simple = 4, /obj/item/stack/sheet/silk/crimson_advanced = 2, /obj/item/stack/sheet/silk/crimson_elegant = 1) + slash_damage = 50 + blood_feast = 700 + max_blood_feast = 750 + var/cutter_bleed_stacks = 15 + var/readyToSpawn75 = TRUE + var/timeToSpawn75 + var/readyToSpawn25 = TRUE + var/timeToSpawn25 + var/cooldownToSpawn = 30 SECONDS + var/cutter_hit = FALSE + var/stun_duration = 3 SECONDS + var/mob/living/blood_target + var/summon_cost = 25 + var/slashing = FALSE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss/AdjustBloodFeast(amount) + . = ..() + if (slashing) + return + + if (blood_feast > max_blood_feast * 0.5) + icon_state = hardblood_state + melee_damage_lower = 10 + melee_damage_upper = 12 + melee_damage_type = BLACK_DAMAGE + else + icon_state = normal_state + melee_damage_lower = 7 + melee_damage_upper = 8 + melee_damage_type = RED_DAMAGE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss/Leap(mob/living/target) + if(!isliving(target) && !ismecha(target) || !can_act) + return + slashing = TRUE + cutter_hit = FALSE + say("Hardblood Arts 5...") + ChangeResistances(list(RED_DAMAGE = 0.3, WHITE_DAMAGE = 0.3, BLACK_DAMAGE = 0.3, PALE_DAMAGE = 0.3)) + blood_target = target + blood_target.apply_status_effect(/datum/status_effect/bloodhold) + blood_target.faction += "city" + can_act = FALSE + var/list/dirs_to_land = shuffle(list(NORTH, SOUTH, EAST, WEST, NORTHEAST, NORTHWEST, SOUTHEAST, SOUTHWEST)) + var/list/dir_overlays = list() + for (var/i in 1 to 3) + var/dir_to_land = dirs_to_land[i] + var/x + var/y + if (dir_to_land == NORTH) + x = 0 + y = 32 + else if (dir_to_land == SOUTH) + x = 0 + y = -32 + else if (dir_to_land == EAST) + x = 32 + y = 0 + else if (dir_to_land == SOUTH) + x = -32 + y = 0 + else if (dir_to_land == NORTHEAST) + x = 32 + y = 32 + else if (dir_to_land == NORTHWEST) + x = 32 + y = -32 + else if (dir_to_land == SOUTHEAST) + x = 32 + y = -32 + else + x = -32 + y = -32 + var/image/O = image(icon='icons/effects/cult_effects.dmi',icon_state="bloodsparkles", pixel_x = x, pixel_y = y) + blood_target.add_overlay(O) + dir_overlays.Add(O) + playsound(blood_target, 'ModularTegustation/Tegusounds/claw/eviscerate1.ogg', 100, 1) + if (stat != DEAD) + sleep(1 SECONDS) + else + break + say("Blood Snare!!!") + for (var/i in 1 to 3) + blood_target.cut_overlay(dir_overlays[i]) + if (stat == DEAD) + blood_target.faction -= "city" + continue + animate(src, alpha = 1,pixel_x = 16, pixel_z = 0, time = 0.1 SECONDS) + src.pixel_x = 16 + playsound(src, 'sound/abnormalities/ichthys/jump.ogg', 50, FALSE, 4) + var/turf/target_turf = get_step(get_turf(blood_target), dirs_to_land[i]) + if(target_turf) + forceMove(target_turf) //look out, someone is rushing you! + playsound(src, leap_sound, 50, FALSE, 4) + animate(src, alpha = 255,pixel_x = -16, pixel_z = 0, time = 0.1 SECONDS) + src.pixel_x = 0 + if (i == 2) + say("Just...") + if (i == 3) + say("ROT AWAY!!!") + Dash(blood_target) + sleep(0.25 SECONDS) + blood_target.faction -= "city" + if (!cutter_hit) + var/mutable_appearance/colored_overlay = mutable_appearance(icon, "small_stagger", layer + 0.1) + add_overlay(colored_overlay) + manual_emote("kneels on the floor...") + icon_state = exhausted_state + ChangeResistances(list(RED_DAMAGE = 2, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1, PALE_DAMAGE = 3)) + sleep(stun_duration) + manual_emote("rises back up...") + cut_overlays() + blood_feast = 0 + icon_state = normal_state + ChangeResistances(list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.6, BLACK_DAMAGE = 0.4, PALE_DAMAGE = 1.5)) + slashing = FALSE + can_act = TRUE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss/Dash(target_turf) + target_turf = get_turf(blood_target) + + do_shaky_animation(1) + var/dx = src.x - blood_target.x + var/dy = src.y - blood_target.y + var/turf/safe_turf = locate(blood_target.x - dx, blood_target.y - dy, blood_target.z) + if (safe_turf.density) + safe_turf = locate(blood_target.x, blood_target.y, blood_target.z) + var/list/warning_overlays = list() + var/list/warning_turfs = list() + for(var/turf/T in view(target_turf, 2)) + if (T == safe_turf) + var/image/S = image(icon='icons/effects/eldritch.dmi',icon_state="cloud_swirl") + T.add_overlay(S) + warning_overlays.Add(S) + warning_turfs.Add(T) + continue; + var/image/O = image(icon='icons/effects/eldritch.dmi',icon_state="blood_cloud_swirl") + T.add_overlay(O) + warning_overlays.Add(O) + warning_turfs.Add(T) + + + sleep(15) + for (var/i in 1 to warning_turfs.len) + var/turf/T = warning_turfs[i] + T.cut_overlay(warning_overlays[i]) + + if (stat == DEAD) + return + playsound(blood_target, 'sound/abnormalities/doomsdaycalendar/Lor_Slash_Generic.ogg', 20, 0, 4) + var/list/hit_list = list() + for(var/turf/T in range(target_turf, 2)) + if (T == safe_turf) + continue; + var/obj/effect/temp_visual/slice/blood = new(T) + blood.color = "#b52e19" + hit_list = HurtInTurf(T, hit_list, slash_damage, RED_DAMAGE, null, TRUE, TRUE, TRUE, hurt_structure = TRUE) + for (var/hit in hit_list) + if (istype(hit, /mob/living)) + var/mob/living/L = hit + cutter_hit = TRUE + L.apply_lc_bleed(cutter_bleed_stacks) + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + if (health/maxHealth > 0.75) + readyToSpawn75 = TRUE + if (health/maxHealth > 0.25) + readyToSpawn25 = TRUE + . = ..() + if(!slashing) + if (health/maxHealth < 0.75 && readyToSpawn75 && world.time > timeToSpawn75) + // spawn + spawnbags() + readyToSpawn75 = FALSE + timeToSpawn75 = world.time + cooldownToSpawn + can_act = FALSE + ChangeResistances(list(RED_DAMAGE = 0.3, WHITE_DAMAGE = 0.3, BLACK_DAMAGE = 0.3, PALE_DAMAGE = 0.3)) + sleep(20) + ChangeResistances(list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.6, BLACK_DAMAGE = 0.4, PALE_DAMAGE = 1.5)) + can_act = TRUE + if (health/maxHealth < 0.25 && readyToSpawn25 && world.time > timeToSpawn25) + // spawn + spawnbags() + readyToSpawn25 = FALSE + timeToSpawn25 = world.time + cooldownToSpawn + can_act = FALSE + ChangeResistances(list(RED_DAMAGE = 0.3, WHITE_DAMAGE = 0.3, BLACK_DAMAGE = 0.3, PALE_DAMAGE = 0.3)) + sleep(20) + ChangeResistances(list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.6, BLACK_DAMAGE = 0.4, PALE_DAMAGE = 1.5)) + can_act = TRUE + +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss/proc/spawnbags() + say("Rise... Bloodbags...") + var/list/turfs = shuffle(orange(1, src)) + for(var/i in 1 to 2) + blood_feast -= summon_cost + new /obj/effect/sweeperspawn/bagspawn(turfs[i]) + +/obj/effect/sweeperspawn/bagspawn + +/obj/effect/sweeperspawn/bagspawn/spawnscout() + new /mob/living/simple_animal/hostile/humanoid/blood/bag(get_turf(src)) + qdel(src) + +/mob/living/simple_animal/hostile/humanoid/blood/bag + name = "bloodbag" + desc = "A blood bag created by some bloodfiends." + icon = 'ModularTegustation/Teguicons/blood_fiends_32x32.dmi' + icon_state = "bloodbag" + icon_living = "bloodbag" + icon_dead = "bloodbag_dead" + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.4, WHITE_DAMAGE = 1, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 1.5) + melee_damage_lower = 2 + melee_damage_upper = 3 + rapid_melee = 3 + melee_damage_type = RED_DAMAGE + attack_sound = 'sound/effects/ordeals/brown/flea_attack.ogg' + attack_verb_continuous = "slashes" + attack_verb_simple = "slash" + move_to_delay = 2.5 + maxHealth = 500 + health = 500 + butcher_results = list(/obj/item/food/meat/slab/crimson = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/crimson = 1) + silk_results = list(/obj/item/stack/sheet/silk/crimson_simple = 1) + var/self_damage = 10 + var/blood_drop_cooldown = 0 + var/blood_drop_cooldown_time = 2 SECONDS + var/bleed_stacks = 1 + var/explosion_damage = 10 + var/explosion_bleed = 5 + +/mob/living/simple_animal/hostile/humanoid/blood/bag/AttackingTarget(atom/attacked_target) + . = ..() + if (istype(target, /mob/living)) + var/mob/living/L = target + L.apply_lc_bleed(bleed_stacks) + adjustRedLoss(self_damage) + +/mob/living/simple_animal/hostile/humanoid/blood/bag/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + . = ..() + if(blood_drop_cooldown > world.time) + return FALSE + blood_drop_cooldown = world.time + blood_drop_cooldown_time + var/turf/origin = get_turf(src) + var/list/all_turfs = RANGE_TURFS(1, origin) + for(var/turf/T in shuffle(all_turfs)) + if (T.is_blocked_turf(exclude_mobs = TRUE)) + continue; + var/obj/effect/decal/cleanable/blood/B = locate() in T + if(!B) + B = new /obj/effect/decal/cleanable/blood(T) + B.bloodiness = 100 + break; + +/mob/living/simple_animal/hostile/humanoid/blood/bag/death(gibbed) + walk_to(src, 0) + animate(src, transform = matrix()*1.8, color = "#FF0000", time = 15) + addtimer(CALLBACK(src, PROC_REF(DeathExplosion)), 15) + new /obj/item/food/meat/slab/crimson (get_turf(src)) + new /obj/item/food/meat/slab/crimson (get_turf(src)) + if(prob(10)) + new /obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/masquerade_coat (get_turf(src)) + QDEL_IN(src, 15) + ..() + +/mob/living/simple_animal/hostile/humanoid/blood/bag/proc/DeathExplosion() + playsound(loc, 'sound/effects/ordeals/crimson/dusk_dead.ogg', 60, TRUE) + for(var/mob/living/L in view(1, src)) + L.deal_damage(explosion_damage, RED_DAMAGE) + L.apply_lc_bleed(explosion_bleed) + var/turf/origin = get_turf(src) + var/list/all_turfs = RANGE_TURFS(1, origin) + for(var/turf/T in shuffle(all_turfs)) + if (T.is_blocked_turf(exclude_mobs = TRUE)) + continue; + var/obj/effect/decal/cleanable/blood/B = locate() in T + if(!B) + B = new /obj/effect/decal/cleanable/blood(T) + B.bloodiness = 100 diff --git a/ModularTegustation/tegu_mobs/lc13_corrosions.dm b/ModularTegustation/tegu_mobs/lc13_corrosions.dm index 54e3ac3f92de..fadc8af42cca 100644 --- a/ModularTegustation/tegu_mobs/lc13_corrosions.dm +++ b/ModularTegustation/tegu_mobs/lc13_corrosions.dm @@ -381,6 +381,7 @@ var/damage_threshold = 450 var/dash_damage = 80 var/charge_sound = 'sound/effects/ordeals/gold/growl1.ogg' + var/gibbing = TRUE /mob/living/simple_animal/hostile/ordeal/dog_corrosion/Move() if(charging) @@ -419,7 +420,7 @@ if(!ishuman(attacked_target)) return var/mob/living/carbon/human/H = attacked_target - if(H.health < 0) + if(H.health < 0 && gibbing) H.gib() playsound(src, "sound/abnormalities/clouded_monk/eat.ogg", 75, 1) adjustBruteLoss(-heal_amount) @@ -494,7 +495,7 @@ if(!ishuman(L)) continue var/mob/living/carbon/human/H = L - if(H.health < 0) + if(H.health < 0 && gibbing) H.gib() playsound(src, "sound/abnormalities/clouded_monk/eat.ogg", 75, 1) adjustBruteLoss(-heal_amount) diff --git a/ModularTegustation/tegu_mobs/lc13_humanoids.dm b/ModularTegustation/tegu_mobs/lc13_humanoids.dm index cd76fc0b3c7a..57b4ee5305c3 100644 --- a/ModularTegustation/tegu_mobs/lc13_humanoids.dm +++ b/ModularTegustation/tegu_mobs/lc13_humanoids.dm @@ -70,7 +70,7 @@ Skittish, they prefer to move in groups and will run away if the enemies are in /mob/living/simple_animal/hostile/humanoid/rat/Initialize() . = ..() - if(SSmaptype.maptype == "fixers" || SSmaptype.maptype == "city") + if(SSmaptype.maptype in SSmaptype.citymaps) del_on_death = FALSE //Knife - The leader, has a pathetically weak dash, attacks fast @@ -451,9 +451,7 @@ Skittish, they prefer to move in groups and will run away if the enemies are in if (istype(target, /mob)) var/mob/MOB = target - say("Target faction: " + jointext(MOB.faction, ", ")) if (MOB.faction_check_mob(M, FALSE)) - say("Faction match") return BULLET_ACT_BLOCK . = ..() diff --git a/ModularTegustation/tegu_mobs/lc13_resurgence_clan_mobs.dm b/ModularTegustation/tegu_mobs/lc13_resurgence_clan_mobs.dm index 839558959c82..5c3d201d28e2 100644 --- a/ModularTegustation/tegu_mobs/lc13_resurgence_clan_mobs.dm +++ b/ModularTegustation/tegu_mobs/lc13_resurgence_clan_mobs.dm @@ -15,24 +15,45 @@ death_message = "falls to their knees as their lights slowly go out..." melee_damage_lower = 5 melee_damage_upper = 7 + a_intent = INTENT_HARM mob_size = MOB_SIZE_HUGE + move_resist = MOVE_FORCE_STRONG + pull_force = MOVE_FORCE_STRONG + can_buckle_to = FALSE robust_searching = TRUE stat_attack = HARD_CRIT - a_intent = INTENT_HARM see_in_dark = 7 vision_range = 12 aggro_vision_range = 20 melee_damage_type = RED_DAMAGE damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 2) attack_sound = 'sound/weapons/purple_tear/stab2.ogg' - butcher_results = list(/obj/item/food/meat/slab/robot = 1, /obj/item/food/meat/slab/sweeper = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 2, /obj/item/food/meat/slab/sweeper = 1) + butcher_results = list(/obj/item/raw_anomaly_core/bluespace = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 2) silk_results = list(/obj/item/stack/sheet/silk/azure_simple = 1) - var/charge = 0 + var/charge = 5 var/max_charge = 10 var/clan_charge_cooldown = 2 SECONDS var/last_charge_update = 0 +//Talking Stuff + var/can_protect = FALSE + var/wants_to_talk = FALSE + + var/greeting_line = "... Are you looking for something? ..." + var/question1 = "Who are you?" + var/question2 = "Why are you here?" + var/question3 = "What is this faction?" + var/list/answers1 = list("O-oh... I a-am James.", "A ci-itizen of the resu-urgence clan...", "For no-ow, I am ju-ust o-off duty.") + var/list/answers2 = list("Curre-ently, I-I and my fe-ellow cla-an members are sco-outing this area...", "The Hi-istorian wants use to study hu-umans.", "And thi-is is the closest we co-ould get to them...", "So-o we are wa-aiting here until further orders.") + var/list/answers3 = list("The-e clan is just one of ma-any villages in the O-outskirts...", "All of the me-embers of the clan are ma-achines...", "Like me...", "Delay: 20", "One day, We-e dream to be hu-uman...", "Just li-ike you, We ju-ust need to learn mo-ore...") + var/default_delay = 45 + var/greeting_cooldown = 20 SECONDS + var/last_greeting_cooldown = 0 + var/speaking = FALSE + var/attacked_line = "Oh-h... You messe-ed up now..." + +//Normal Clan Stuff /mob/living/simple_animal/hostile/clan/spawn_gibs() new /obj/effect/gibspawner/scrap_metal(drop_location(), src) @@ -55,6 +76,88 @@ last_charge_update = world.time GainCharge() +//Guard Stuff +/mob/living/simple_animal/hostile/clan/CanAttack(atom/the_target) + if ((the_target in GLOB.marked_players) && can_protect) + if (istype(the_target, /mob/living)) + var/mob/living/L = the_target + if (L.stat == DEAD) + return FALSE + return TRUE + . = ..() + +/mob/living/simple_animal/hostile/clan/bullet_act(obj/projectile/P) + . = ..() + if((P.firer && get_dist(src, P.firer) <= aggro_vision_range) && can_protect) + if (!(P.firer in GLOB.marked_players)) + GLOB.marked_players += P.firer + say(attacked_line) + +/mob/living/simple_animal/hostile/clan/attackby(obj/item/O, mob/user, params) + . = ..() + if (can_protect) + if(ishuman(user)) + if (O.force > 0) + if (!(user in GLOB.marked_players )) + GLOB.marked_players += user + say(attacked_line) + else + if (!(user in GLOB.marked_players )) + GLOB.marked_players += user + say(attacked_line) + +//Npc Stuff +/mob/living/simple_animal/hostile/clan/examine(mob/user) + . = ..() + if(can_protect && wants_to_talk) + . += span_notice("You are able to speak to [src] when clicking on them with your bare hands!") + +/mob/living/simple_animal/hostile/clan/proc/CanTalk() + return !target && !speaking + +/mob/living/simple_animal/hostile/clan/attack_hand(mob/living/carbon/M) + if(wants_to_talk) + dir = get_dir(src, M) + if(!stat && M.a_intent == INTENT_HELP && !client && can_protect && CanTalk()) + if (last_greeting_cooldown < world.time - greeting_cooldown) + say(greeting_line) + last_greeting_cooldown = world.time + speaking = TRUE + var/robot_ask = alert("ask them", "[src] is listening to you.", "[question1]", "[question2]", "[question3]", "Cancel") + if(robot_ask == "[question1]") + M.say("[question1]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers1) + else if(robot_ask == "[question2]") + M.say("[question2]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers2) + else if(robot_ask == "[question3]") + M.say("[question3]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers3) + speaking = FALSE + return + else + return + else + manual_emote("looks away, avoiding [M]'s gaze...") + return ..() + +/mob/living/simple_animal/hostile/clan/proc/Speech(speech) + for (var/S in speech) + if (findtext(S, "Emote: ") == 1) + manual_emote(copytext(S, 8, length(S) + 1)) + else if (findtext(S, "Move: ") == 1) + step(src, text2dir(copytext(S, 7, length(S) + 1))) + else if (findtext(S, "Icon: ") == 1) + icon_state = copytext(S, 7, length(S) + 1) + else if (findtext(S, "Delay: ") == 1) + SLEEP_CHECK_DEATH(text2num(copytext(S, 8, length(S) + 1))) + else + say(S) + SLEEP_CHECK_DEATH(default_delay) + //Clan Member: Scout /mob/living/simple_animal/hostile/clan/scout name = "Scout" @@ -118,7 +221,7 @@ attack_sound = 'sound/weapons/purple_tear/blunt2.ogg' silk_results = list(/obj/item/stack/sheet/silk/azure_simple = 2, /obj/item/stack/sheet/silk/azure_advanced = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 3, /obj/item/food/meat/slab/sweeper = 2) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 3) melee_damage_lower = 20 melee_damage_upper = 25 @@ -148,9 +251,12 @@ /mob/living/simple_animal/hostile/clan/defender/proc/Lock() stunned = TRUE density = FALSE - icon_state = "defender_locked_down" + if (icon_living == "defender_normal") + icon_state = "defender_locked_down_normal" + else + icon_state = "defender_locked_down" say("Co-mmen-cing Pr-otoco-l: Lo-ckdo-wn") - // create tiles + ChangeResistances(list(RED_DAMAGE = 0.4, WHITE_DAMAGE = 0.4, BLACK_DAMAGE = 0.4, PALE_DAMAGE = 1)) for(var/turf/T in view(2, src)) var/obj/effect/defender_field/DF = new(T) locked_tiles_list += DF @@ -162,10 +268,6 @@ /mob/living/simple_animal/hostile/clan/defender/death(gibbed) charge = 0 - var/turf/T = get_turf(src) - if (prob(25)) - new /obj/item/tape/resurgence/first(T) - if (stunned == TRUE) Unlock() @@ -173,15 +275,27 @@ /mob/living/simple_animal/hostile/clan/defender/proc/ApplyLock(mob/living/L) - if(!faction_check_mob(L, FALSE)) - // apply status effect - var/datum/status_effect/locked/S = L.has_status_effect(/datum/status_effect/locked) - if(!S) - S = L.apply_status_effect(/datum/status_effect/locked) - if (!S.list_of_defenders.Find(src)) - S.list_of_defenders += src - locked_list += L - // keep a list of everyone locked + if(!can_protect) + if(!faction_check_mob(L, FALSE)) + // apply status effect + var/datum/status_effect/locked/S = L.has_status_effect(/datum/status_effect/locked) + if(!S) + S = L.apply_status_effect(/datum/status_effect/locked) + if (!S.list_of_defenders.Find(src)) + S.list_of_defenders += src + locked_list += L + // keep a list of everyone locked + else + if(!faction_check_mob(L, TRUE)) + // apply status effect + var/datum/status_effect/locked/S = L.has_status_effect(/datum/status_effect/locked) + if(!S) + S = L.apply_status_effect(/datum/status_effect/locked) + if (!S.list_of_defenders.Find(src)) + S.list_of_defenders += src + locked_list += L + // keep a list of everyone locked + /mob/living/simple_animal/hostile/clan/defender/ChargeUpdated() if (charge >= max_charge) @@ -194,7 +308,12 @@ if (stat == DEAD) return - icon_state = "defender" + if (icon_state == "defender_locked_down_normal") + icon_state = "defender_normal" + else + icon_state = "defender" + + ChangeResistances(list(RED_DAMAGE = 0.6, WHITE_DAMAGE = 0.8, BLACK_DAMAGE = 1.2, PALE_DAMAGE = 1.5)) density = TRUE // clear tiles for(var/obj/effect/defender_field/DF in locked_tiles_list) @@ -233,6 +352,10 @@ if (isliving(AM)) var/mob/living/L = AM defender.ApplyLock(L) + if(ishuman(L)) + var/mob/living/carbon/human/H = L + H.apply_damage(10, BLACK_DAMAGE, null, H.run_armor_check(null, BLACK_DAMAGE), spread_damage = TRUE) + to_chat(H, span_warning("You get shocked by the electic fields")) /datum/status_effect/locked id = "locked" @@ -283,20 +406,20 @@ icon_state = "clan_drone" icon_living = "clan_drone" icon_dead = "clan_drone_dead" - faction = list("resurgence_clan", "hostile") emote_hear = list("creaks.", "emits the sound of grinding gears.") maxHealth = 1000 health = 1000 is_flying_animal = TRUE death_message = "falls down as their lights slowly go out..." - melee_damage_lower = 10 - melee_damage_upper = 12 + melee_damage_lower = 0 + melee_damage_upper = 0 + obj_damage = 0 melee_damage_type = BLACK_DAMAGE damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 2) attack_sound = 'sound/weapons/emitter2.ogg' silk_results = list(/obj/item/stack/sheet/silk/azure_simple = 2, /obj/item/stack/sheet/silk/azure_advanced = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 3, /obj/item/food/meat/slab/sweeper = 2) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 3) charge = 10 max_charge = 20 clan_charge_cooldown = 1 SECONDS @@ -304,38 +427,57 @@ retreat_distance = 1 minimum_distance = 2 move_to_delay = 2 + attacked_line = "WA-ARNING, THRE-EAT DETECTE-ED!!!" var/overheal_threshold = 0.2 var/heal_per_charge = 25 var/healing_range = 6 - var/searching_range = 10 + var/searching_range = 6 var/datum/beam/current_beam var/overheal_cooldown var/overheal_cooldown_time = 50 var/update_beam_timer + var/healing_amount = 15 /mob/living/simple_animal/hostile/clan/drone/Initialize() . = ..() - update_beam_timer = addtimer(CALLBACK(src, .proc/update_beam), 5 SECONDS, TIMER_LOOP | TIMER_STOPPABLE) + update_beam_timer = addtimer(CALLBACK(src, PROC_REF(update_beam)), 5 SECONDS, TIMER_LOOP | TIMER_STOPPABLE) /mob/living/simple_animal/hostile/clan/drone/ChargeUpdated() var/chargelayer = layer + 0.1 var/charge_icon - if(charge > 19) - cut_overlays() - charge_icon = "clan_drone_100%" - else if(charge > 15) - cut_overlays() - charge_icon = "clan_drone_75%" - else if(charge > 10) - cut_overlays() - charge_icon = "clan_drone_50%" - else if(charge > 5) - cut_overlays() - charge_icon = "clan_drone_25%" + if (icon_state != "clan_drone_normal") + if(charge > 19) + cut_overlays() + charge_icon = "clan_drone_100%" + else if(charge > 15) + cut_overlays() + charge_icon = "clan_drone_75%" + else if(charge > 10) + cut_overlays() + charge_icon = "clan_drone_50%" + else if(charge > 5) + cut_overlays() + charge_icon = "clan_drone_25%" + else + cut_overlays() + return else - cut_overlays() - return + if(charge > 19) + cut_overlays() + charge_icon = "clan_drone_100%_normal" + else if(charge > 15) + cut_overlays() + charge_icon = "clan_drone_75%_normal" + else if(charge > 10) + cut_overlays() + charge_icon = "clan_drone_50%_normal" + else if(charge > 5) + cut_overlays() + charge_icon = "clan_drone_25%_normal" + else + cut_overlays() + return var/mutable_appearance/colored_overlay = mutable_appearance(icon, charge_icon, chargelayer) add_overlay(colored_overlay) @@ -389,6 +531,9 @@ else return FALSE +/mob/living/simple_animal/hostile/clan/drone/CanAttack(atom/the_target) + . = ..() + /mob/living/simple_animal/hostile/clan/drone/proc/try_to_heal() if (target && can_see(src, target, healing_range) && !current_beam ) create_beam(target) @@ -425,10 +570,17 @@ remove_beam() deltimer(update_beam_timer) +/mob/living/simple_animal/hostile/clan/drone/Destroy() + . = ..() + cut_overlays() + remove_beam() + deltimer(update_beam_timer) + + /mob/living/simple_animal/hostile/clan/drone/proc/on_beam_tick(mob/living/target) if(target.health != target.maxHealth ) new /obj/effect/temp_visual/heal(get_turf(target), "#E02D2D") - target.adjustBruteLoss(-5) + target.adjustBruteLoss(-healing_amount) target.adjustFireLoss(-4) target.adjustToxLoss(-1) target.adjustOxyLoss(-1) @@ -437,3 +589,94 @@ if (C.charge < C.max_charge) C.GainCharge() return + +/mob/living/simple_animal/hostile/clan/drone/village + icon_state = "clan_drone_normal" + icon_living = "clan_drone_normal" + can_protect = TRUE + return_to_origin = TRUE + +/mob/living/simple_animal/hostile/clan/drone/village/Initialize() + . = ..() + faction = list("village") + +/obj/item/book/granter/crafting_recipe/clan_drone + name = "Tinkerer's Blueprints: Reforged Drone" + desc = "A book that teaches you how to create your own drones, which are able to heal you!" + pages_to_mastery = 3 + crafting_recipe_types = list( + /datum/crafting_recipe/drone_reforged + ) + icon_state = "clan_book" + remarks = list("Wow, Do they really need to yap about how much they hate humans?", "Oh? So that is what I can use these cores for...", "Huh, it says here that 'They are infact fixed, they don't break walls anymore.'", "Oh dear... How dusty is this book?", "Yes... Yes? Do I really need to know what types of hats I could place on them?", "I wonder how effective this drone will be...") + +/datum/crafting_recipe/drone_reforged + name = "Reforged, Resurgence Clan Drone" + result = /mob/living/simple_animal/hostile/clan/drone/reforged + reqs = list(/obj/item/raw_anomaly_core/bluespace = 1, /obj/item/food/meat/slab/robot = 10) + time = 50 + category = CAT_ROBOT + always_available = FALSE + +/mob/living/simple_animal/hostile/clan/drone/reforged + name = "Reforged Drone" + desc = "A drone hovering above the ground... It appears to have 'Resurgence Clan' scratched out on their back..." + icon_state = "clan_drone_reforged" + icon_living = "clan_drone_reforged" + maxHealth = 500 + health = 500 + healing_amount = 5 + heal_per_charge = 10 + retreat_distance = null + clan_charge_cooldown = 4 SECONDS + var/stand_still = FALSE + var/mob/living/carbon/locked_target + +/mob/living/simple_animal/hostile/clan/drone/reforged/Initialize() + . = ..() + faction = list("neutral") + +/mob/living/simple_animal/hostile/clan/drone/reforged/attack_hand(mob/living/carbon/M) + if(!stat && M.a_intent == INTENT_HELP && !client) + speaking = TRUE + var/robot_ask = alert("ask them", "[src] is listening to you.", "Act normal.", "Heal me.", "Stay here.", "Cancel") + if(robot_ask == "Act normal.") + M.say("Act normal.") + locked_target = null + stand_still = FALSE + else if(robot_ask == "Heal me.") + M.say("Heal me.") + locked_target = M + else if(robot_ask == "Stay here.") + M.say("Stay here.") + stand_still = TRUE + speaking = FALSE + return + else + manual_emote("looks away, avoiding [M]'s gaze...") + return ..() + +/mob/living/simple_animal/hostile/clan/drone/reforged/Move() + if (stand_still) + return FALSE + return ..() + +/mob/living/simple_animal/hostile/clan/drone/reforged/update_beam() + var/mob/living/potential_target + var/visible = (locked_target in view(searching_range, src)) + if (visible) + potential_target = locked_target + else + var/potential_health_missing = 0.01 + for(var/mob/living/L in view(searching_range, src)) + if(L != src && faction_check_mob(L, FALSE) && L.stat != DEAD) + var/missing = (L.maxHealth - L.health)/L.maxHealth + if (missing > potential_health_missing) + potential_target = L + potential_health_missing = missing + + if (potential_target && target && potential_target != target) + remove_beam() + target = potential_target + if(ai_controller) + ai_controller.current_movement_target = target diff --git a/ModularTegustation/tegu_mobs/lc13_resurgence_clan_npcs.dm b/ModularTegustation/tegu_mobs/lc13_resurgence_clan_npcs.dm new file mode 100644 index 000000000000..0ced5b2ff6f6 --- /dev/null +++ b/ModularTegustation/tegu_mobs/lc13_resurgence_clan_npcs.dm @@ -0,0 +1,350 @@ +GLOBAL_LIST_EMPTY(marked_players) + +/mob/living/simple_animal/hostile/clan_npc + name = "Quiet Citzen?" + desc = "A humanoid looking machine... It appears to have 'Resurgence Clan' etched on their back..." + icon = 'ModularTegustation/Teguicons/resurgence_32x48.dmi' + icon_state = "clan_citzen" + icon_living = "clan_citzen" + icon_dead = "clan_citzen_dead" + faction = list("resurgence_clan", "hostile", "neutral") + wander = 0 + simple_mob_flags = SILENCE_RANGED_MESSAGE + obj_damage = 5 + response_disarm_continuous = "gently pushes aside" + response_disarm_simple = "gently push aside" + environment_smash = FALSE + a_intent = INTENT_HARM + mob_biotypes = MOB_ROBOTIC + move_resist = MOVE_FORCE_STRONG + pull_force = MOVE_FORCE_STRONG + can_buckle_to = FALSE + gender = NEUTER + speech_span = SPAN_ROBOT + emote_hear = list("creaks.", "emits the sound of grinding gears.") + maxHealth = 300 + health = 300 + death_message = "falls to their knees as their lights slowly go out..." + ranged = TRUE + retreat_distance = 10 + minimum_distance = 10 + vision_range = 3 + ranged_message = null + melee_damage_lower = 0 + melee_damage_upper = 4 + mob_size = MOB_SIZE_HUGE + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.3, BLACK_DAMAGE = 2, PALE_DAMAGE = 1) + butcher_results = list(/obj/item/food/meat/slab/robot = 3) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 1) + silk_results = list(/obj/item/stack/sheet/silk/azure_simple = 1) + var/attacked_line = "Wha-at are you do-oing... GE-ET AWAY!" + var/mark_once_attacked = TRUE + density = FALSE + +/mob/living/simple_animal/hostile/clan_npc/Initialize() + . = ..() + RegisterSignal(SSdcs, COMSIG_CRATE_LOOTING_STARTED, PROC_REF(on_seeing_looting_started)) + RegisterSignal(SSdcs, COMSIG_CRATE_LOOTING_ENDED, PROC_REF(on_seeing_looting_ended)) + +/mob/living/simple_animal/hostile/clan_npc/proc/on_seeing_looting_started(datum/source, mob/living/user, obj/crate) + SIGNAL_HANDLER + if (check_visible(user, crate) && stat != DEAD && !target) + addtimer(CALLBACK(src, PROC_REF(Talk)), 0) + +/mob/living/simple_animal/hostile/clan_npc/proc/on_seeing_looting_ended(datum/source, mob/living/user, obj/crate) + SIGNAL_HANDLER + if (check_visible(user, crate) && stat != DEAD && !target) + addtimer(CALLBACK(src, PROC_REF(Theif_Talk)), 0) + if (!(user in GLOB.marked_players )) + GLOB.marked_players += user + +/mob/living/simple_animal/hostile/clan_npc/proc/Talk() + say("Um... What are you doing?") + +/mob/living/simple_animal/hostile/clan_npc/proc/Theif_Talk() + say("Guards! We got a theif here!") + +/mob/living/simple_animal/hostile/clan_npc/proc/check_visible(mob/living/user, obj/crate) + var/user_visible = (user in view(vision_range, src)) + var/crate_visible = (crate in view(vision_range, src)) + return user_visible && crate_visible + +/mob/living/simple_animal/hostile/clan_npc/Destroy() + UnregisterSignal(SSdcs, COMSIG_CRATE_LOOTING_STARTED) + UnregisterSignal(SSdcs, COMSIG_CRATE_LOOTING_ENDED) + return ..() + + +/mob/living/simple_animal/hostile/clan_npc/CanAttack(atom/the_target) + if (the_target in GLOB.marked_players) + if (istype(the_target, /mob/living)) + var/mob/living/L = the_target + if (L.stat == DEAD) + return FALSE + return TRUE + . = ..() + +/mob/living/simple_animal/hostile/clan_npc/bullet_act(obj/projectile/P) + . = ..() + if(mark_once_attacked) + if(P.firer && get_dist(src, P.firer) <= aggro_vision_range) + if (!(P.firer in GLOB.marked_players )) + GLOB.marked_players += P.firer + say(attacked_line) + +/mob/living/simple_animal/hostile/clan_npc/attack_hand(mob/living/carbon/M) + if(!stat && M.a_intent == INTENT_HELP && !client) + manual_emote("looks away, avoiding [M]'s gaze...") + +/mob/living/simple_animal/hostile/clan_npc/attackby(obj/item/O, mob/user, params) + . = ..() + if(mark_once_attacked) + if(ishuman(user)) + if (O.force > 0) + if (!(user in GLOB.marked_players )) + GLOB.marked_players += user + say(attacked_line) + else + if (!(user in GLOB.marked_players )) + GLOB.marked_players += user + say(attacked_line) + +/mob/living/simple_animal/hostile/clan_npc/info + name = "Talkative Citzen?" + var/question1 = "Who are you?" + var/question2 = "Why are you here?" + var/question3 = "What is this faction?" + var/list/answers1 = list("O-oh... I a-am James.", "A ci-itizen of the resu-urgence clan...", "For no-ow, I am ju-ust o-off duty.") + var/list/answers2 = list("Curre-ently, I-I and my fe-ellow cla-an members are sco-outing this area...", "The Hi-istorian wants use to study hu-umans.", "And thi-is is the closest we co-ould get to them...", "So-o we are wa-aiting here until further orders.") + var/list/answers3 = list("The-e clan is just one of ma-any villages in the O-outskirts...", "All of the me-embers of the clan are ma-achines...", "Like me...", "Delay: 20", "One day, We-e dream to be hu-uman...", "Just li-ike you, We ju-ust need to learn mo-ore...") + var/default_delay = 30 + var/speaking = FALSE + var/greeting_cooldown = 45 SECONDS + var/last_greeting_cooldown = 0 + var/greeting_line = "Oh! He-ello Huma-an!" + +/mob/living/simple_animal/hostile/clan_npc/info/examine(mob/user) + . = ..() + . += span_notice("You are able to speak to [src] when clicking on them with your bare hands!") + +/mob/living/simple_animal/hostile/clan_npc/info/proc/CanTalk() + return !target && !speaking + +/mob/living/simple_animal/hostile/clan_npc/info/attack_hand(mob/living/carbon/M) + if(!stat && M.a_intent == INTENT_HELP && !client && CanTalk()) + dir = get_dir(src, M) + if (last_greeting_cooldown < world.time - greeting_cooldown) + say(greeting_line) + last_greeting_cooldown = world.time + speaking = TRUE + var/robot_ask = alert("ask them", "[src] is listening to you.", "[question1]", "[question2]", "[question3]", "Cancel") + if(robot_ask == "[question1]") + M.say("[question1]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers1) + else if(robot_ask == "[question2]") + M.say("[question2]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers2) + else if(robot_ask == "[question3]") + M.say("[question3]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers3) + speaking = FALSE + return + return ..() + + +/mob/living/simple_animal/hostile/clan_npc/info/proc/Speech(speech) + for (var/S in speech) + if (findtext(S, "Emote: ") == 1) + manual_emote(copytext(S, 8, length(S) + 1)) + else if (findtext(S, "Move: ") == 1) + step(src, text2dir(copytext(S, 7, length(S) + 1))) + else if (findtext(S, "Icon: ") == 1) + icon_state = copytext(S, 7, length(S) + 1) + else if (findtext(S, "Delay: ") == 1) + SLEEP_CHECK_DEATH(text2num(copytext(S, 8, length(S) + 1))) + else + say(S) + SLEEP_CHECK_DEATH(default_delay) + +/mob/living/simple_animal/hostile/clan_npc/info/trader + name = "Trader Citzen?" + + //Vars that should not be edited + var/trading = FALSE + var/successful_sale = FALSE + + //Vars that effect the traders dialogue + var/selling_question = "What are you selling?" + var/selling_answer = list("Sure!", "I got some good things in store today...") + + var/buying_say = "Good Deal!" + + var/sold_say = "Sold!" + var/poor_say = "Aw... Looks like you still need " + var/selling_end = "Got it, We are always open if you need anything!" + var/no_cash = "Oh... Yo-ou are holding no cash..." + + //Vars that effect what the trader is selling + var/can_sell = TRUE + var/selling_item_1 = /obj/item/reagent_containers/hypospray/medipen/salacid + var/selling_item_1_name = "HP Pen" + var/cost_1 = 50 + var/selling_item_2 = /obj/item/reagent_containers/hypospray/medipen/mental + var/selling_item_2_name = "SP Pen" + var/cost_2 = 200 + + //Vars that effect what the traders is buying + var/can_buy = TRUE + var/list/level_1 = list( + /obj/item/rawpe, + /obj/item/food/meat/slab/robot, + ) + var/list/level_2 = list( + /obj/item/refinedpe, + /obj/item/clothing/suit/armor/ego_gear/city, + /obj/item/ego_weapon/city, + /obj/item/ego_weapon/ranged, + ) + var/list/level_3 = list( + /obj/item/raw_anomaly_core, + /obj/item/documents, + /obj/item/folder/syndicate, + /obj/item/folder/documents, + ) + +/mob/living/simple_animal/hostile/clan_npc/info/trader/Initialize() + . = ..() + SetSellables() + +/mob/living/simple_animal/hostile/clan_npc/info/trader/attack_hand(mob/living/carbon/M) + if(!stat && M.a_intent == INTENT_HELP && !client && CanTalk()) + dir = get_dir(src, M) + speaking = TRUE + if (!trading) + if (last_greeting_cooldown < world.time - greeting_cooldown) + say(greeting_line) + last_greeting_cooldown = world.time + var/robot_ask + if (can_sell) + robot_ask = alert("ask them", "[src] is listening to you.", "[question1]", "[question2]", "[selling_question]", "Cancel") + else + robot_ask = alert("ask them", "[src] is listening to you.", "[question1]", "[question2]", "[question3]", "Cancel") + + if(robot_ask == "[question1]") + M.say("[question1]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers1) + if(robot_ask == "[question2]") + M.say("[question2]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers2) + if(robot_ask == "[question3]") + M.say("[question3]") + SLEEP_CHECK_DEATH(default_delay) + Speech(answers3) + if(robot_ask == "[selling_question]") + M.say("[selling_question]") + SLEEP_CHECK_DEATH(default_delay) + trading = TRUE + Speech(selling_answer) + speaking = FALSE + return + else + speaking = TRUE + var/robot_ask = alert("ask them", "[src] is offering to you.", "[selling_item_1_name]", "[selling_item_2_name]", "I am done buying.", "Cancel") + if(robot_ask == "[selling_item_1_name]") + SellingItem(selling_item_1, cost_1, M) + if(robot_ask == "[selling_item_2_name]") + SellingItem(selling_item_2, cost_2, M) + if(robot_ask == "I am done buying.") + say(selling_end) + trading = FALSE + speaking = FALSE + return + return + +/mob/living/simple_animal/hostile/clan_npc/info/trader/proc/SetSellables() + var/list/temp = list() + for(var/T in level_1) + temp.Add(typecacheof(T)) + level_1 = temp.Copy() + temp.Cut() + for(var/T in level_2) + temp.Add(typecacheof(T)) + level_2 = temp.Copy() + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/misc)) + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/indigo_armor)) + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/steel_armor)) + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/amber_armor)) + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/green_armor)) + level_2.Remove(typecacheof(/obj/item/clothing/suit/armor/ego_gear/city/azure_armor)) + temp.Cut() + for(var/T in level_3) + temp.Add(typecacheof(T)) + level_3 = temp.Copy() + level_3[/obj/item/documents/photocopy] = FALSE + temp.Cut() + return + +/mob/living/simple_animal/hostile/clan_npc/info/trader/attackby(obj/item/O, mob/user, params) + if(stat == DEAD) + to_chat(user, span_warning("[src] is dead!")) + return + else + if(user.a_intent == INTENT_HELP && can_buy) + if(istype(O, /obj/item/storage)) // Code for storage dumping + var/obj/item/storage/S = O + for(var/obj/item/IT in S) + ManageSales(IT, user) + to_chat(user, span_notice("You show [src] your [S]...")) + playsound(O, "rustle", 50, TRUE, -5) + if (successful_sale == TRUE) + playsound(get_turf(src), 'sound/effects/cashregister.ogg', 35, 3, 3) + say(buying_say) + successful_sale = FALSE + return TRUE + ManageSales(O, user) + if (successful_sale == TRUE) + playsound(get_turf(src), 'sound/effects/cashregister.ogg', 35, 3, 3) + say(buying_say) + successful_sale = FALSE + return + . = ..() + +/mob/living/simple_animal/hostile/clan_npc/info/trader/proc/ManageSales(obj/item/O, mob/living/user) + var/spawntype + if(is_type_in_typecache(O, level_3)) + spawntype = /obj/item/stack/spacecash/c1000 + else if(is_type_in_typecache(O, level_2)) + spawntype = /obj/item/stack/spacecash/c200 + else if(is_type_in_typecache(O, level_1)) + spawntype = /obj/item/stack/spacecash/c100 + else + to_chat(user, span_warning("[src] doesn't want to buy the [O].")) + return FALSE + + if(spawntype) + new spawntype (get_turf(user)) + qdel(O) + successful_sale = TRUE + return TRUE + +/mob/living/simple_animal/hostile/clan_npc/info/trader/proc/SellingItem(obj/item/O, var/price, mob/living/carbon/M) + var/sold_item = O + var/held_cash = M.is_holding_item_of_type(/obj/item/holochip) + if(held_cash) + var/obj/item/holochip/C = held_cash + if(C && istype(C)) + var/credits = C.get_item_credit_value() + var/amount = C.spend(price) + if (amount > 0) + new sold_item (get_turf(M)) + say(sold_say) + playsound(get_turf(src), 'sound/effects/cashregister.ogg', 35, 3, 3) + else + say(poor_say + "[(price - credits)] more ahn...") + else + say(no_cash) diff --git a/ModularTegustation/tegu_mobs/lc13_resurgence_tapes.dm b/ModularTegustation/tegu_mobs/lc13_resurgence_tapes.dm index 009c07573e52..8648cf9e2b31 100644 --- a/ModularTegustation/tegu_mobs/lc13_resurgence_tapes.dm +++ b/ModularTegustation/tegu_mobs/lc13_resurgence_tapes.dm @@ -5,10 +5,13 @@ storedinfo = list() timestamp = list() +/obj/item/tape/resurgence/attack_self(mob/user) + to_chat(user, "You take a closer look at the tape... Looks like you can't pull out the wires.") + /obj/item/tape/resurgence/first name = "Tinkerer's Log: Moving Out" icon_state = "tape_red" - desc = "A magnetic tape that can hold up to ten minutes of content. It appers to have 'Resurgence Clan's first move.' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'Resurgence Clan's first move.' written on it's back." storedinfo = list( "Loud sounds of machinery and humans screams could be heard in the background...", @@ -22,10 +25,10 @@ span_game_say(span_name("Scout") + span_message(" says,") + " "Ye-es Tinke-er.""), span_game_say(span_name("Human Voice ") + span_message(" weakly says,") + " "Wha-at are you doing... Wait! I can still provide something for you! Do you need gears or me-""), span_game_say(span_name("Human Voice") + span_message(" screams")), - "*Sounds of drills and saws tearing into flesh are heard before a heavy door is heard screeching open…*", + "Sounds of drills and saws tearing into flesh are heard before a heavy door is heard screeching open…", span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Dear Tinkerer... Was this why you wanted me to give you this new human to you?""), span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "At least I could of woven them into something much more valuable than fresh gibs…""), - "*The sounds of drills and saws slowly slowed down...*", + "The sounds of drills and saws slowly slowed down...", span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Oh? Didn’t expect you to arrive here today Mister Weaver, Were you this worried about this human?""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "No, With the recent events that occurred here with the... FLS members and my citizens have been much more opposed to using humans as materials.""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "After all, once you get to meet the humans you are using to become more human it does feel more sinful of using them this way…""), @@ -33,7 +36,7 @@ span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Really now? You got to drown out my perfectly fine mood after executing a monster...""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "Yet, It has to be said. After discussing this with the Historian, We have decided that this town is no place for you.""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "So I kindly ask you to kindly leave this town soon...""), - "*A loud fleshy crunch is heard coming from the human head...*", + "A loud fleshy crunch is heard coming from the human head...", span_game_say(span_name("The Tinkerer") + span_message(" whispers,") + " "I really should of seen that one coming yet...""), span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "No big deal, I can start moving tomorrow. This place was quite limiting after all.""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "Thank you for understanding our decision, as it was not an easy one we ma-""), @@ -42,28 +45,28 @@ span_game_say(span_name("Scout") + span_message(" yells,") + " "Ye-es Sir, Moving o-out...""), span_game_say(span_name("Scout") + span_message(" yells,") + " "Yes Si-ir, Moving ou-ut...""), span_game_say(span_name("Scout") + span_message(" yells,") + " "Ye-es Sir, Mo-ov...""), - "*The Tape cuts after around 4-5 pairs of metallic footsteps move across the metal floor.*") + "The Tape cuts after around 4-5 pairs of metallic footsteps move across the metal floor.") timestamp = list(2, 4, 8, 12, 16, 20, 26, 30, 34, 38, 41, 45, 52, 56, 59, 62, 67, 72, 77, 81, 86, 91, 94, 97, 102, 107, 110, 115, 119, 123, 126, 129, 132) /obj/item/tape/resurgence/podcast_seven name = "Historians Podcast: Seven Association" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'Episode 1' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'Episode 1' written on it's back." storedinfo = list( span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Is everything ready? The Podcast is starting in 3 secon- Oh!","), - "*Lights start flickering on as a jingle plays in the background...*", + "Lights start flickering on as a jingle plays in the background...", span_game_say(span_name("Soft Robotic Voice") + span_message(" whispers,") + " "Wait, I am still not ready for this... Oh dear, Um...""), span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "Well, Hello my dear Citizens! What a brilliant new day in the outskirts as I, the Historian of district H will be teaching you about the different associations in the City today!""), - "*In the background, some object slowly starts winding up…*", + "In the background, some object slowly starts winding up…", span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "To start us off, We will be talking about the Seven! From our current record which we have gathered from the telescope, They like the Color Green? Could they love plants? After all, they also like making tea..." "), span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "They are also Detectives, So they must be some real pesky ones. Poking their noses wherever possible.""), span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "They most often use simple shortswords in battle which are wonderful at opening up wounds in targets! So basically they use very sharp crowbars and their foes are crates to be ripped open!""), - "*A robotic laughter in the background, the winding from the object in the background stops.*", + "A robotic laughter in the background, the winding from the object in the background stops.", span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "There we are! Now we can observe one of those seven fixers named...""), - "*Sounds of papers being flipped.*", + "Sounds of papers being flipped.", span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "Moses and Ezra? Yep, Them! They are some of the most talented members you can find in this association! As seen by their...""), - "*Awfully long pause occurs, mechanical gasps in the background.*", + "Awfully long pause occurs, mechanical gasps in the background.", span_game_say(span_name("The Historian") + span_message(" stutters,") + " "Well, Um... Very strong bonds? Ignore the face of the yellow haired girl, She is proud to be in this office as they call it!""), - "*A quick sound of a gears winding back.*", + "A quick sound of a gears winding back.", span_game_say(span_name("The Historian") + span_message(" exclaims,") + " "Okay, Moving back our usual point of view..."") ) @@ -71,7 +74,7 @@ /obj/item/tape/resurgence/temple_of_motus name = "Expedition Log #32" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'Our Temple...' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'Our Temple...' written on it's back." storedinfo = list( "Mechanical Footsteps are heard moving across an empty desert, along with the sounds of wheels moving behind them…", span_game_say(span_name("Rusty Robotic Voice") + span_message(" asks,") + " "Hey, Head Priest. Do you have any idea of how much time is left until we reach this Temple…""), @@ -79,7 +82,7 @@ span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "We will arrive there in time, after all the Historian did say that this would be a long journey.""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" asks,") + " "Alright, Can you at least us what we will be doing there?""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "I think that we have already proven that we are dedicated to this project.""), - "*Flipping of pages comes from the “Old Robotic Voice…”*", + "Flipping of pages comes from the “Old Robotic Voice…”", span_game_say(span_name("Old Robotic Voice") + span_message(" asks,") + " "Scholar, Do you recognize this book?""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Of course I do! This is â€The Exploration of Love and Fear,’ written by you. Any Scholar should know it by soul if they wish to pass the first class.""), span_game_say(span_name("Old Robotic Voice") + span_message(" asks,") + " "Good, and how do you think I was able to explore those emotions I wrote about?""), @@ -90,10 +93,10 @@ span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Okay, But it is not like we get to see them all that often, most of the time they either run away or attack us on sight…""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "And that's where our Temple comes in.""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "This temple is our closest contact to humans without being detected. Along with holding all of the tools we need to study them.""), - "*The Mechanical footsteps stop.*", + "The Mechanical footsteps stop.", span_game_say(span_name("Rusty Robotic Voice") + span_message(" asks,") + " "Um, Head Priest. Are we stopping now? There is still around 10 hours until the sun goes down.""), - "*4 small knocks come from the “Old Robotic Voice”*", - "*The ground begins to rumble… as crumbling rocks and shifting gears rises from the ground, before ending in a thud.*", + "4 small knocks come from the “Old Robotic Voice”", + "The ground begins to rumble… as crumbling rocks and shifting gears rises from the ground, before ending in a thud.", span_game_say(span_name("Rusty Robotic Voice") + span_message(" stutters,") + " "How… how could it all be hidden that easily…""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Now, Dear Scholar. Welcome to the Temple of Motus."") ) @@ -102,18 +105,18 @@ /obj/item/tape/resurgence/new_library name = "Temple Log #1" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'The Library' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'The Library' written on it's back." storedinfo = list( - "*Sounds of shifting machinery and distant conversations*", + "Sounds of shifting machinery and distant conversations", span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Scholar, How is progress on getting everyone settled in?""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "All great sir! It everyone has been able to find their rooms in the temple and we are about to offload all of our supplies!""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Understood, It appears that I will need to speak with the Historian soon… I can give you a basic rundown of your duties before I go.""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" asks,") + " "Got it sir. Where shall we begin?""), - "*A pair of mechanical footsteps, then a heavy door slides open…*", + "A pair of mechanical footsteps, then a heavy door slides open…", span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "One of the basic responsibilities you will hold in this temple is to keep our library up to date. As studies are completed, it may cause some books to become outdated.""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Either way you will not be parting in the studies for now since you are new, but at least you will be tasked with watching them and taking notes.""), span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Please use those opportunities to learn our ways around here...""), - "*The “Old Robotic Voice” slows down.*", + "The “Old Robotic Voice” slows down.", span_game_say(span_name("Old Robotic Voice") + span_message(" says,") + " "Now now, I know you are interested in what studies these books hold but we still need to get over your duties.""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Oh, Sorry Sir. You need to understand what a change this is, Back at the town I got access to only like… 2 books a month?""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Now I have the whole library open! Holding so many new experiences! Like “Aversion” or “Contentment…”""), @@ -126,9 +129,9 @@ /obj/item/tape/resurgence/joshua name = "Temple Log #15" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'New Friend?' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'New Friend?' written on it's back." storedinfo = list( - "*Sounds of distant conversations slowly moving away...*", + "Sounds of distant conversations slowly moving away...", span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "That was quite a procedure! Fascinating how the human brain is able to produce such emotions. ""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Thank the Historian that I was able to record all of...""), span_game_say(span_name("Rusty Robotic Voice") + span_message(" says,") + " "Wait, Shoot... Don't tell me that it was off the whole time...""), @@ -137,7 +140,7 @@ span_game_say(span_name("Elliot") + span_message(" says,") + " "Yes-s. Just give me just a moment, I think I have forgotten something here...""), span_game_say(span_name("Distant Robotic Voice") + span_message(" says,") + " "Okay... Just get out of there soon, other scholars will be using it soon.""), span_game_say(span_name("Elliot") + span_message(" says,") + " "Of course... I would not want to prevent the study!""), - "*Sounds of books and metallic objects being thrown around.*", + "Sounds of books and metallic objects being thrown around.", span_game_say(span_name("Human Voice") + span_message(" coughs")), span_game_say(span_name("Elliot") + span_message(" asks,") + " "Oh... It appears that they are already waking up. I really should get moving.""), span_game_say(span_name("Human Voice") + span_message(" says weakly,") + " "Wait... Who are you, why am I here...""), @@ -154,19 +157,19 @@ span_game_say(span_name("Human Voice") + span_message(" says,") + " "Well, It isn't like I have much choice...""), span_game_say(span_name("Elliot") + span_message(" says,") + " "Wonderful! I have to get going now but what is your name so I could remember it?""), span_game_say(span_name("Joshua") + span_message(" says,") + " "... Call me Joshua.""), - "*The tape cuts right after some quick footsteps are heard moving out of the room.*" + "The tape cuts right after some quick footsteps are heard moving out of the room." ) timestamp = list(1, 5, 9, 13, 17, 21, 25, 29, 33, 37, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109) /obj/item/tape/resurgence/backstage name = "Historians Podcast: Backstage Records" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'Backstage Records' written on it's back." + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'Backstage Records' written on it's back." storedinfo = list( - "*Sounds of robotic laughter in the background along with some clapping.*", + "Sounds of robotic laughter in the background along with some clapping.", span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Thank you all for tuning in for tonight's episode! All of you learned a good amount about the Liu today!""), span_game_say(span_name("The Historian") + span_message(" says,") + " "It was been the Historian speaking today and see you all, Next week!""), - "*Suddenly all of the clapping stops as a screen shuts down...*", + "Suddenly all of the clapping stops as a screen shuts down...", span_game_say(span_name("The Historian") + span_message(" sighs")), span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "Cut! You did great, dear Historian! You followed your script perfectly.""), span_game_say(span_name("The Historian") + span_message(" says,") + " "Yes, As it always is...""), @@ -174,8 +177,8 @@ span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "I know! I always wanted to know more about U-Cor.""), span_game_say(span_name("The Historian") + span_message(" asks,") + " "Please, Max. Can you give me a small moment. I just need to, think through some things.""), span_game_say(span_name("Max") + span_message(" says,") + " "Oh, Sorry dear Historian. I will make my way then...""), - "*Metallic footsteps moving away, followed by a door opening and closing.*", - "*Beeps and clicks coming from a device.*", + "Metallic footsteps moving away, followed by a door opening and closing.", + "Beeps and clicks coming from a device.", span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Excuse me, I am currently working right now so if you have any complaints...""), span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry for interrupting you dear Weaver, I was just wondering if you had a moment to talk.""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "Oh. Sorry for not recognizing you Historian. There are so many requests today, you would not believe it.""), @@ -200,54 +203,242 @@ span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry Weaver... I just had no else to talk too.""), span_game_say(span_name("The Historian") + span_message(" says,") + " "We should return to our duties. The citizens need us.""), span_game_say(span_name("The Weaver") + span_message(" says,") + " "We shall do our best for them...""), - "*The tape ends after a beep is heard from a device.*", + "The tape ends after a beep is heard from a device.", ) timestamp = list(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, 121, 126, 131, 136, 141, 146, 151, 156, 161, 176, 181, 186, 191, 196) -/obj/item/tape/resurgence/dreams - name = "Historians Podcast: Elliot's Day" - desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'Elliot's Big Day' written on it's back." +/obj/item/tape/resurgence/gateway + name = "Tinkerer's Logs: New Invention" + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'New Invention' written on it's back." storedinfo = list( - "*Sounds of robotic laughter in the background along with some clapping.*", - span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Thank you all for tuning in for tonight's episode! All of you learned a good amount about the Liu today!""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "It was been the Historian speaking today and see you all, Next week!""), - "*Suddenly all of the clapping stops as a screen shuts down...*", - span_game_say(span_name("The Historian") + span_message(" sighs")), - span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "Cut! You did great, dear Historian! You followed your script perfectly.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Yes, As it always is...""), - span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "Now, Since we have some time until the podcast is uploaded what should we discuss next week?""), - span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "I know! I always wanted to know more about U-Cor.""), - span_game_say(span_name("The Historian") + span_message(" asks,") + " "Please, Max. Can you give me a small moment. I just need to, think through some things.""), - span_game_say(span_name("Max") + span_message(" says,") + " "Oh, Sorry dear Historian. I will make my way then...""), - "*Metallic footsteps moving away, followed by a door opening and closing.*", - "*Beeps and clicks coming from a device.*", - span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Excuse me, I am currently working right now so if you have any complaints...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry for interrupting you dear Weaver, I was just wondering if you had a moment to talk.""), - span_game_say(span_name("The Weaver") + span_message(" says,") + " "Oh. Sorry for not recognizing you Historian. There are so many requests today, you would not believe it.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Yep, Everyone is pretty excited about the recent cityfolk which came here.""), - span_game_say(span_name("The Weaver") + span_message(" asks,") + " "So, Why did you call me at this time?""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "You know, I have been thinking... Do you think the citizens are living a contentful life?""), - span_game_say(span_name("The Weaver") + span_message(" says,") + " "Well, Looking at how all of them are happy. Have goals and dreams, I would say so.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Yes, They all have dreams and recent events must have brought them hope... ""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "But what happens if they learn how those dreams are...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Flawed...""), - span_game_say(span_name("The Weaver") + span_message(" says,") + " "...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Nothing good, Nothing good will happen. I can't that happen.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "But...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "How long can I hide this truth from them...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "They are all so innocent, They will eventually start making plans to fulfill their dreams.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "They will all start leaving with a happy simile...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "“I will finally reach it, we can leave this harrowing life to rejoice in this paradise...”""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Then they will learn it's true nature, it's heartless nature...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "They will even learn how he-""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "died for nothing...""), - span_game_say(span_name("The Weaver") + span_message(" says,") + " "I... Wish I had a answer for that...""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry Weaver... I just had no else to talk too.""), - span_game_say(span_name("The Historian") + span_message(" says,") + " "We should return to our duties. The citizens need us.""), - span_game_say(span_name("The Weaver") + span_message(" says,") + " "We shall do our best for them...""), - "*The tape ends after a beep is heard from a device.*", + "Sounds of mechanical drilling and machinery clicking.", + "In the background, a heavy door starts sliding open... 2 pairs of footsteps walking closer", + span_game_say(span_name("Unknown Robotic Voice") + span_message(" says,") + " "Agh... That’s not efficient enough.""), + span_game_say(span_name("Unknown Robotic Voice") + span_message(" says,") + " "Gregory, It looks like this reactor will not be enough for this project.""), + span_game_say(span_name("Unknown Robotic Voice") + span_message(" says,") + " "Just throw it back into the factory, It perhaps might find use in another project...""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Ahm... Dear Tinkerer.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "The Historian and The Weaver! Sorry that I didn’t catch the both of you. ""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "But nevertheless, I am very thankful that you all could make it here!""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "Well, You seem quite insistent on us arriving today.""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "”I have something of utmost importance to present before us”, You said something like that.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "The last time you were this passionate about something was when you finally learned how to repair cores.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "It brings back memories... It has been so long since we have started this town.""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "And thanks to our efforts, it seems to be growing.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "I am telling you, more and more folk are finally starting to understand us!""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Anyways, About this thing you wanted to show us...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Right! Let me bring it over.""), + "Mechanical sounds heard moving up...", + "Mechanical sounds heard moving down, along with a long hydraulic sound moving closer...", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Now my Dear Elders, I now present before you...""), + "Dramatic pause...", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "The Gateway! The invention which will bring us one step closer to City.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Hm... Looks interestingly built, I also like the details you put into it’s design.""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "Wow! It looks complex. The Weaver will probably better understand it, not that good with machines at this scale.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Thank you! Now, once this project will be refined, we will be able to teleport our people in and out of the city!""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "Oh, Didn’t expect that we would be able to see it that soon...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Refined?""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Well, Currently it does require a large amount of power for a single use... It takes around a month to launch but only a single Citizen.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "But, It will be improved in time just letting you know to start preparations...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "We see... We shall then start prepare for it.""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "You continue to amaze me, Dear Tinkerer... I can only dream of what we can do with this...""), + "Awkward pause...", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Hm? Something bothering you? Isn't this one of your dream coming true?""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "To finally show the citizens the beauty of the City?""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "The oh so land of dreams...""), + "A mechanical sliding sound is heard moving towards The Historian voice.", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Don’t you? Oh so dear Elder?""), + span_game_say(span_name("The Historian") + span_message(" shudderingly says,") + " "Ye-es... How could I not be excited? Ha...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "That’s enough, Tinkerer. We should be returning to our duties by now.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Very well, I shall return to my duties...""), + "2 pairs of mechanical footsteps head walking away, along with a door sliding shut.", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "I hope you get what you wished for...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Native Historian..."") ) - timestamp = list(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, 121, 126, 131, 136, 141, 146, 151, 156, 161, 176, 181, 186, 191, 196) + timestamp = list(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, 121, 126, 131, 136, 141, 146, 151, 156, 161, 166, 171, 176, 181, 186, 191, 196, 201, 206) + +/obj/item/tape/resurgence/solution + name = "Historians's Logs: The Solution" + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'The Solution' written on it's back." + storedinfo = list( + "The rustling of papers, along with a deep mechanical sigh.", + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "They... Have been planning for this all along...""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "The Gateway... They were never planning on using it to teach our citizens.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "How could I be so naive...""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "That is now in the past... The are now no longer here, and we need to pick ourselves back up.""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Moral is not looking well right now, especially after the incident caused by The Tinkerer.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "... We could try to finally start this project, now that we have access to his blueprints.""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "That is a risky maneuver, we have not ever tried to use this tech without the Tinkerer’s assistance.""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "And we don’t even know if this plan will work in the first place.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "No wait, but look over here.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "It appears that they have been doing this already for a long time now.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Teleporting their own followers into the City...""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "And as long as they have their consciousness reduced... They will not be targeted by the City.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "This can be also seen with the spear and gun bots sometimes spotted in their backstreets. And the AI that the Devyat carry around.""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Hm... Looks like they really do have quite the integrating notes about this.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "This means, we can start the shell program.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Using his tech, we will be able to build shells of our citizens, and then build a makeshift town.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Give the shells some basic functions, and then using the gateway we can send them, and the town into the city...""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Then, once we are able to bring them back in after the week, we can transfer all of the good memories of the City, back into our citizens.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Hopefully, this can bring back hope to our citizens...""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "... Are you sure, Dear Historian? You are shaking...""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "This... Must work, I can’t just let my citizens fall into despair... I can’t..."") + ) + + timestamp = list(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116) + +/obj/item/tape/resurgence/his_dream + name = "Weavers's Logs: His Dream" + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have 'His Dream' written on it's back." + storedinfo = list( + "Quiet gust of wind, clicking and taps from a typewriter.", + "Slow and loud mechanical footsteps moving closer to the typewriter sounds.", + "A pause for a moment, before a thundering thud with heavy winds moving past it.", + "A mighty voice speaking, high above the recorder.", + span_game_say(span_name("Mighty Robotic Voice") + span_message(" asks,") + " "There you are, Dear Weaver? What are you doing on such a quiet night, sitting all alone?""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Counting... Many more have fallen today, Over 100 guardians...""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "The Tinkerer is currently working on fixing the wounded, hopefully they will make recovery soon.""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" asks,") + " "Who knows until those beasts return.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "My calculations are currently telling me that more will arrive within this week...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "It doesn’t look like they are getting any less relentless.""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "To think that our citizens are stuck in this endless cruelty...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Well, There isn't much we can do to change this, no matter where we move, danger will always follow us.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Such are the ways of the wilds...""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "Yet... There is something we could do, Dear Weaver.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Huh? What are you speaking of?""), + "Sounds of heavy hydraulic presses rising up.", + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "There is one place which is free from this suffering of the wilds, a place which people can go to without worry of death.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "You can’t be taking of...""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "I believe it is time to seek out that place that folks have spoken of, I believe it is called “The City”.""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "I heard it is the oasis in the wilds, the one place where people can live at peace.""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "But those are just rumors! Even if they are true there are just far too many unknown variables... ""), + span_game_say(span_name("The Weaver") + span_message(" exclaims,") + " "It would take hundreds of years to even reach the general area where it might be!""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "At least here, everything is stable, we have a routine here an-.""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "Yet, Even as we follow our routine, hundreds of our citizens fall every week.""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" asks,") + " "Would you call that, “Living?” Living in fear of the beasts and praying that you might live to see another day?""), + span_game_say(span_name("Mighty Robotic Voice") + span_message(" says,") + " "You know just as well as I that this existence is no more than a living hell. This is not “Living.”""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "But the city, what if it rejects us? You know how fearful other clans are of strangers...""), + span_game_say(span_name("The Weaver") + span_message(" says,") + " "Saying out loud, you are called the “Warlord...” who knows how they will react.""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "That is but an old name, it has been millennia since I have last raised my blade against another survivor. Even still...""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "Think of it, Dear Weaver. The cityfolk must be the most hardened survivors of the wilds.""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "To build such an oasis, they must have struggled the most out of any survivors.""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "If there is anyone who would have empathy for us, it would be those who have sacrificed the most to reach this safety.""), + span_game_say(span_name("The Warlord") + span_message(" asks,") + " "So, do you still have desire to stay here and endure this cruel existence.""), + span_game_say(span_name("The Warlord") + span_message(" asks,") + " "Or, are you willing to make the first few steps, for a better future? Dear Weaver?""), + "Sounds of a heavy hydraulic hand reaching down towards the Weaver’s voice." + ) + + timestamp = list(1, 8, 15, 22, 29, 36, 43, 50, 57, 64, 71, 78, 85, 92, 99, 106, 113, 120, 127, 134, 141, 148, 155, 162, 169, 176, 183, 190, 197, 204, 211, 218, 225, 232, 239) + +/obj/item/tape/resurgence/redacted + name = "{REDACTED}" + desc = "A magnetic tape that can hold up to ten minutes of content. It appears to have something scratched out on it's back." + storedinfo = list( + "Hundreds, upon hundreds of metallic footsteps heaving through heavy sand, with small robotic chatter between the crowd... Heavier pair of footsteps in front of all the rest...", + "A heavy voice heard much higher than all the rest", + span_game_say(span_name("Mighty Robotic Voice") + span_message(" asks,") + " "Dear Tinkerer, What is our current statues on reaching the first checkpoint...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "According to my scouts... It appears that the first checkpoint is only 4 miles away from us.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "We only have a few hours before approaching it.""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "To think... That after this whole time, we are fi-inally this close to the fa-abled City...""), + span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "At long last, all of this suffering will be over...""), + "The footsteps from the Soft Robotic Voice suddenly stop, as a light thud is heard from Voice", + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Dear Historian, Is everything alright? Did something break or crack, do you need the Tinkerer too-""), + "Light, sniffling? from the Soft Robotic Voice", + span_game_say(span_name("The Historian") + span_message(" says,") + " "No-o worries Dear Weaver, I don’t kno-ow what's coming over me...""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "Oh if the other Elders could hear of this... If only they saw what we have finally reached...""), + "Metallic pats heard from the Historian", + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "I know it must be tough, having to leave our settlement, but it was the right thing to do.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Perhaps one day, they will hear of our success.""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Then they will finally understand us, and follow our path. What do you think, Dear Warlord?""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "I believe so, I heard that the City contains some of the most marvelous technology in the wilds. ""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "Perhaps we could use one of their “W-Corp” trains, the connect back with our fellows.""), + span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "There are even more marvels we could find, I am personally invested in how they weave their own outfits...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Of course you would be looking for the tailors in the City dear Weaver...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "You know what is truly the most fascinating thing in the City, down at District 20, it’s just filled with inventors like me!""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "To think they have a whole District dedicated to inventing, the City certainly has their priorities right.""), + span_game_say(span_name("The Warlord") + span_message(" announces,") + " "Wait, Hold everyone... There is something approaching us.""), + "All of the metallic footsteps slowly stop, as all of the muttering among the crowd quiets down.", + span_game_say(span_name("The Weaver") + span_message(" says,") + " "What is that? It looks like a... Strange metal worm?""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "I believe that is called a “Bullet Train” Weaver, but what is it doing out here... It would imagine that it-""), + "Thunderous rumble suddenly overpowers all nearby sounds, shattering the sound barrier around the recorder...", + "Winds bursting from the sound, with mights of a storm swinging past the recorder...", + "Eventually... The winds calm down, as a bellowing horn in this distance.", + span_game_say(span_name("The Weaver") + span_message(" worriedly,") + " "Is this... One of the City’s inventions? Such speed...""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "And power behind it...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Huh... They appear to be surrounding us... ""), + span_game_say(span_name("The Warlord") + span_message(" says,") + " "This is a bit strange for a security check... But stay calm everyone, We don’t want to make our first impression a threatening one...""), + "A thud from where the thundering sound stopped, followed by a synchronized march", + span_game_say(span_name("Unknown Human Voice") + span_message(" shouts,") + " "Z-Corp Class 3 Security Agent Captain here, A Class 5 Warlord Titan has been found approaching the City! Restrictions on Class 4 Weapons has been lifted!""), + span_game_say(span_name("The Historian") + span_message(" says,") + " "Weaponry? I-I think there is miss understanding here... We are not he-ere too-""), + span_game_say(span_name("Unknown Human Voice") + span_message(" shouts,") + " " All units have been armed, Open fire!""), + "From all sides, blazing shots firing towards the recorder, crackling sounds sound the air...", + span_game_say(span_name("The Warlord") + span_message(" shouts,") + " "NO, EVERYONE BEHIND ME!""), + "An electric buzz quickly sounds the recorder, as quick zips around the buzz...", + "Around the electric buzz, glitching screams quickly rise and fade with swift punctures...", + "Metallic footsteps rush over to the electric buzz, some moving past the sound...", + "Many more end with a thud away from the electric buzz...", + span_game_say(span_name("The Historian") + span_message(" screams,") + " "NO... NO!!! RUN FASTER, RUN OVER HERE!!!""), + span_game_say(span_name("The Weaver") + span_message(" terrifiedly,") + " "No... They- are all melted, nothing reminds of them... Wha-at... did we do wrong...""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "Damit... They are leaving no room for us to run... They completely inclosed us...""), + span_game_say(span_name("The Warlord") + span_message(" shouts,") + " "IF THEY ARE NOT LETTING US RUN BACK!...""), + "Sounds of an engine blazing from the Warlord...", + span_game_say(span_name("The Warlord") + span_message(" shouts,") + " "WE SHALL KEEP MOVING!...""), + "Heavy tremors heard from the Warlord, start moving towards the gunfire...", + "Followed by an explosive crush from one side of the gunfire...", + span_game_say(span_name("The Warlord") + span_message(" shouts,") + " "MOVE EVERYONE, I WILL HOLD THIS OPENING!...""), + "Hundreds of mechanical footsteps rushing towards the Warlord’s voice...", + span_game_say(span_name("The Historian") + span_message(" screams,") + " "WARLORD... WE CAN’T LEAVE YOU-""), + span_game_say(span_name("The Tinkerer") + span_message(" says,") + " "WE DON’T HAVE TIME TO HESITATE, FOCUS ON ESCORTING THE CIVILIANS!""), + "As the voices of the other Elders start moving away from the Warlord...", + "A shot rings out towards the recorder, Quickly cutting this recording short." + ) + + timestamp = list(1, 7, 13, 19, 25, 31, 37, 43, 49, 55, 61, 67, 73, 79, 85, 91, 97, 103, 109, 115, 121, 127, 133, 139, 145, 151, 157, 163, 169, 175, 181, 187, 193, 199, 205, 211, 217, 223, 229, 235, 241, 247, 253, 259, 265, 271, 277, 283, 289, 295, 301, 307, 313, 319, 325, 331, 337) + +// /obj/item/tape/resurgence/dreams +// name = "Historians Podcast: Elliot's Day" +// desc = "A magnetic tape that can hold up to ten minutes of content. It apper to have 'Elliot's Big Day' written on it's back." +// storedinfo = list( +// "Sounds of robotic laughter in the background along with some clapping.", +// span_game_say(span_name("Soft Robotic Voice") + span_message(" says,") + " "Thank you all for tuning in for tonight's episode! All of you learned a good amount about the Liu today!""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "It was been the Historian speaking today and see you all, Next week!""), +// "Suddenly all of the clapping stops as a screen shuts down...", +// span_game_say(span_name("The Historian") + span_message(" sighs")), +// span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "Cut! You did great, dear Historian! You followed your script perfectly.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Yes, As it always is...""), +// span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "Now, Since we have some time until the podcast is uploaded what should we discuss next week?""), +// span_game_say(span_name("Robotic Voice") + span_message(" says,") + " "I know! I always wanted to know more about U-Cor.""), +// span_game_say(span_name("The Historian") + span_message(" asks,") + " "Please, Max. Can you give me a small moment. I just need to, think through some things.""), +// span_game_say(span_name("Max") + span_message(" says,") + " "Oh, Sorry dear Historian. I will make my way then...""), +// "Metallic footsteps moving away, followed by a door opening and closing.", +// "Beeps and clicks coming from a device.", +// span_game_say(span_name("Slow Robotic Voice") + span_message(" says,") + " "Excuse me, I am currently working right now so if you have any complaints...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry for interrupting you dear Weaver, I was just wondering if you had a moment to talk.""), +// span_game_say(span_name("The Weaver") + span_message(" says,") + " "Oh. Sorry for not recognizing you Historian. There are so many requests today, you would not believe it.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Yep, Everyone is pretty excited about the recent cityfolk which came here.""), +// span_game_say(span_name("The Weaver") + span_message(" asks,") + " "So, Why did you call me at this time?""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "You know, I have been thinking... Do you think the citizens are living a contentful life?""), +// span_game_say(span_name("The Weaver") + span_message(" says,") + " "Well, Looking at how all of them are happy. Have goals and dreams, I would say so.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Yes, They all have dreams and recent events must have brought them hope... ""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "But what happens if they learn how those dreams are...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Flawed...""), +// span_game_say(span_name("The Weaver") + span_message(" says,") + " "...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Nothing good, Nothing good will happen. I can't that happen.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "But...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "How long can I hide this truth from them...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "They are all so innocent, They will eventually start making plans to fulfill their dreams.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "They will all start leaving with a happy simile...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "“I will finally reach it, we can leave this harrowing life to rejoice in this paradise...”""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Then they will learn it's true nature, it's heartless nature...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "They will even learn how he-""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "died for nothing...""), +// span_game_say(span_name("The Weaver") + span_message(" says,") + " "I... Wish I had a answer for that...""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "Sorry Weaver... I just had no else to talk too.""), +// span_game_say(span_name("The Historian") + span_message(" says,") + " "We should return to our duties. The citizens need us.""), +// span_game_say(span_name("The Weaver") + span_message(" says,") + " "We shall do our best for them...""), +// "The tape ends after a beep is heard from a device.", +// ) + +// timestamp = list(1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, 66, 71, 76, 81, 86, 91, 96, 101, 106, 111, 116, 121, 126, 131, 136, 141, 146, 151, 156, 161, 176, 181, 186, 191, 196) diff --git a/_maps/RandomRooms/backstreetlayout/dungeon_backstreets.dmm b/_maps/RandomRooms/backstreetlayout/dungeon_backstreets.dmm index 8be3fbff3b65..fa2d41984d75 100644 --- a/_maps/RandomRooms/backstreetlayout/dungeon_backstreets.dmm +++ b/_maps/RandomRooms/backstreetlayout/dungeon_backstreets.dmm @@ -21,11 +21,15 @@ /turf/closed/indestructible/reinforced, /area/city/backstreets_room) "i" = ( -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "k" = ( /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "m" = ( /obj/effect/landmark/distortion, @@ -33,7 +37,9 @@ /area/city/backstreets_alley) "r" = ( /obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "u" = ( /obj/effect/landmark/backstreetspawneast, @@ -54,6 +60,10 @@ /obj/effect/landmark/backstreetspawn, /turf/open/floor/plating/asteroid/basalt, /area/city/backstreets_alley) +"B" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "D" = ( /obj/effect/spawner/room/backstreets/connector, /turf/closed/indestructible/reinforced, @@ -78,7 +88,9 @@ /area/city/backstreets_room) "P" = ( /obj/effect/landmark/distortion, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Q" = ( /obj/effect/spawner/room/backstreets/large_south, @@ -90,7 +102,9 @@ /area/city/backstreets_room) "T" = ( /obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "U" = ( /turf/open/floor/plating/ashplanet/rocky, @@ -449,7 +463,6 @@ a a a a -Z a a a @@ -474,7 +487,8 @@ a a a a -Z +a +a a L E @@ -951,7 +965,7 @@ c K i i -r +i L E c @@ -1074,7 +1088,7 @@ c c c i -r +i i L E @@ -1252,7 +1266,7 @@ c c a a -Z +a L E E @@ -1832,7 +1846,7 @@ i i i i -r +i i i i @@ -2603,7 +2617,7 @@ i i i i -r +i i i i @@ -2662,7 +2676,7 @@ E L a a -Z +a c c c @@ -2710,7 +2724,7 @@ E E L i -r +i i i i @@ -2772,7 +2786,7 @@ E E L a -Z +a a c c @@ -3153,7 +3167,7 @@ E E E L -r +i i c c @@ -3252,7 +3266,7 @@ a a a a -Z +a i a i @@ -3615,7 +3629,7 @@ E L i i -r +i i i i @@ -3701,7 +3715,7 @@ E E L i -Z +a i L L @@ -3804,7 +3818,7 @@ c c c a -Z +a a L E @@ -3863,7 +3877,7 @@ L L L i -r +i i L E @@ -4108,7 +4122,6 @@ a a a a -Z a a a @@ -4117,7 +4130,8 @@ a a a a -Z +a +a a a a @@ -4243,7 +4257,7 @@ a a a a -Z +a a a a @@ -4515,7 +4529,7 @@ i w L i -r +i i i i @@ -4598,7 +4612,7 @@ i i i i -r +i i i i @@ -4791,7 +4805,7 @@ c c i i -r +i c c c @@ -4843,7 +4857,7 @@ c c c c -r +i i w L @@ -5011,7 +5025,7 @@ c c c c -r +i i i c @@ -5141,7 +5155,7 @@ i a i a -Z +a i i i @@ -5249,7 +5263,7 @@ i i i i -r +i a i i @@ -5369,7 +5383,7 @@ L L L i -r +i i i i @@ -5457,7 +5471,7 @@ E L i i -r +i i i i @@ -5640,7 +5654,7 @@ c c i i -r +i L E E @@ -6349,7 +6363,7 @@ c c c c -y +h i i i @@ -6575,7 +6589,7 @@ c i i i -b +L E E E @@ -6638,7 +6652,7 @@ c c c i -r +i i L E @@ -6686,9 +6700,9 @@ c i i i -b -b -E +L +L +w E E E @@ -6799,7 +6813,7 @@ i i i i -E +w E E E @@ -6970,7 +6984,7 @@ c c c c -r +i i i L @@ -7512,7 +7526,7 @@ E E L i -r +i i L E @@ -8109,7 +8123,7 @@ E E E L -r +i i i i @@ -8137,7 +8151,7 @@ c c i i -r +i i i i @@ -8192,7 +8206,7 @@ a i i i -r +i i L E @@ -8227,7 +8241,7 @@ i i i i -r +i i i i @@ -8295,7 +8309,7 @@ i i i i -r +i i a a @@ -8365,7 +8379,7 @@ a i i i -r +i i i i @@ -8411,7 +8425,7 @@ i i i i -r +i i i i @@ -8630,7 +8644,7 @@ E E L i -i +T i c c @@ -8853,7 +8867,7 @@ E L i i -T +i c c c @@ -9125,7 +9139,7 @@ E E E L -r +i i i L @@ -9370,7 +9384,7 @@ c c h L -T +i a i L @@ -9402,7 +9416,7 @@ c c c i -T +i i L w @@ -9486,7 +9500,7 @@ a i i i -T +i i i i @@ -9519,7 +9533,7 @@ L L L i -T +i c c c @@ -9720,7 +9734,7 @@ w w i i -T +i L E E @@ -9772,7 +9786,7 @@ E E E w -Z +a w E c @@ -9999,7 +10013,7 @@ i i i i -r +i i i i @@ -10228,7 +10242,7 @@ i i i i -r +i i i i @@ -10246,7 +10260,7 @@ E E L i -T +i i i i @@ -10255,7 +10269,7 @@ i i a a -A +a a i i @@ -10510,7 +10524,7 @@ a a a a -A +a a a i @@ -10613,7 +10627,7 @@ i i i i -T +i i i i @@ -10627,7 +10641,7 @@ i i i i -T +i c c c @@ -10816,7 +10830,7 @@ L E L i -T +i i i i @@ -10905,7 +10919,7 @@ i i i i -T +i i i i @@ -10932,7 +10946,7 @@ i a i i -T +i i i L @@ -11125,7 +11139,7 @@ E L i i -T +i i i i @@ -11180,7 +11194,7 @@ c E E L -T +i a a c @@ -11487,7 +11501,7 @@ T i i i -T +i a i L @@ -11513,7 +11527,7 @@ E E E L -T +i i i c @@ -11626,7 +11640,7 @@ E L i i -T +i c c c @@ -12939,7 +12953,7 @@ E L a a -A +a L E E @@ -13002,14 +13016,14 @@ E L L L -c -c -c -c -c -c -c -c +L +L +L +L +L +L +L +L i i i @@ -13127,7 +13141,7 @@ i i i i -T +i i i i @@ -13224,7 +13238,6 @@ E L i i -T i i i @@ -13232,7 +13245,8 @@ i i i i -T +i +i i i i @@ -13454,6 +13468,8 @@ L L L L +L +L i i i @@ -13465,8 +13481,6 @@ L L L L -L -L c c c @@ -13623,7 +13637,7 @@ c c c a -A +a a L E @@ -13705,7 +13719,7 @@ c c c a -A +a a c c @@ -14168,7 +14182,7 @@ L a a a -A +a L a a @@ -14473,7 +14487,6 @@ E E L i -T i i i @@ -14495,7 +14508,8 @@ i i i i -T +i +i i a a @@ -14629,7 +14643,7 @@ E E E L -T +i i L L @@ -14711,7 +14725,7 @@ a a a a -a +L L L L @@ -14727,7 +14741,7 @@ a L a i -T +i i i i @@ -14822,7 +14836,7 @@ c c c c -K +d E E E @@ -15483,7 +15497,7 @@ a a a a -A +a c c c @@ -15685,7 +15699,7 @@ c c c c -T +i i i i @@ -15713,7 +15727,7 @@ i i a a -A +a i i i @@ -15818,7 +15832,7 @@ i i i i -T +i a a i @@ -15834,7 +15848,7 @@ i i i i -T +i i c c @@ -15919,7 +15933,7 @@ i i i i -T +i i i i @@ -16221,7 +16235,7 @@ c c c L -T +i a a L @@ -16363,12 +16377,12 @@ i i i L -E -E -E -E -E -E +L +L +L +L +L +L L L L @@ -16480,7 +16494,7 @@ c c c c -M +e i i i @@ -17010,7 +17024,7 @@ i i a a -A +a L E E @@ -17167,7 +17181,7 @@ i L i i -T +i i a a @@ -17268,7 +17282,7 @@ a a a a -T +i i L i @@ -17405,7 +17419,7 @@ i i i i -T +i i L E @@ -17507,7 +17521,7 @@ L L L L -A +a a a L @@ -17592,7 +17606,7 @@ E E L i -T +i i L L @@ -18038,7 +18052,7 @@ L L L L -A +a a a L @@ -18441,7 +18455,7 @@ E L i i -T +i c c c @@ -18580,7 +18594,7 @@ E E L i -T +i i i i @@ -18729,7 +18743,7 @@ E E L i -T +i i L E @@ -19549,7 +19563,7 @@ E E E L -k +i i i i @@ -19610,7 +19624,7 @@ i i i i -T +i i i i @@ -19678,7 +19692,7 @@ a a a a -u +a a a a @@ -19783,7 +19797,6 @@ i i i i -u a a a @@ -19804,7 +19817,8 @@ a a a a -A +a +a i i i @@ -19825,7 +19839,7 @@ c c i i -T +i i i i @@ -20047,7 +20061,7 @@ c c E L -u +a i i i @@ -20165,7 +20179,7 @@ i i a a -u +a i i i @@ -20500,7 +20514,7 @@ a L a a -k +i i i i @@ -20577,7 +20591,7 @@ c c L i -u +a a L c @@ -20948,7 +20962,7 @@ L E E L -k +i i i L @@ -21140,7 +21154,7 @@ i i i i -k +i i i i @@ -21214,7 +21228,7 @@ E E E L -k +i i i c @@ -21372,7 +21386,7 @@ i i i a -u +a i i i @@ -21590,7 +21604,7 @@ c c c L -k +i i i a @@ -21926,7 +21940,7 @@ L i i i -L +c c c c @@ -22020,7 +22034,7 @@ c c c i -k +i i L c @@ -22037,7 +22051,7 @@ L i i i -L +c c c c @@ -22118,7 +22132,7 @@ i L i i -k +i L i i @@ -22148,7 +22162,7 @@ L i i i -L +c c c c @@ -22259,7 +22273,7 @@ L i i i -L +c c c c @@ -22342,7 +22356,7 @@ i i a a -u +a i c c @@ -22370,7 +22384,7 @@ L i i k -L +c c c c @@ -22481,7 +22495,7 @@ L i i i -L +c c c c @@ -22503,7 +22517,7 @@ L L L i -k +i i L E @@ -22592,7 +22606,7 @@ L i i i -L +c c c c @@ -22662,7 +22676,7 @@ i i L i -k +i i a a @@ -22686,7 +22700,7 @@ c y L i -k +i i L E @@ -22700,7 +22714,7 @@ E E E L -k +i i i L @@ -22882,7 +22896,7 @@ c i i i -L +c c c c @@ -22894,7 +22908,7 @@ i i a a -u +a i c c @@ -22993,7 +23007,7 @@ c i k i -L +c c c c @@ -23104,7 +23118,7 @@ c i i i -L +c c c c @@ -23215,7 +23229,7 @@ c i i i -L +c c c c @@ -23326,7 +23340,7 @@ c i i i -L +c c c c @@ -23390,7 +23404,7 @@ L L L L -k +i i i L @@ -23437,7 +23451,7 @@ c i i i -L +c c c c @@ -23469,7 +23483,7 @@ i a a a -u +a i c c @@ -23489,7 +23503,7 @@ c i i i -k +i i i i @@ -23548,7 +23562,7 @@ c i i a -L +c c c c @@ -23556,7 +23570,7 @@ c i i i -k +i i i i @@ -23688,7 +23702,7 @@ a a a a -k +a a a i @@ -23708,7 +23722,7 @@ c c c c -k +i i i i @@ -23769,7 +23783,7 @@ L I a a -u +a I L L @@ -23782,7 +23796,7 @@ L L L I -u +a a a I @@ -23831,10 +23845,10 @@ L L L a -L -L -L -L +a +a +a +a L L L @@ -23944,30 +23958,30 @@ L a a a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +B "} (216,1,1) = {" E @@ -24055,30 +24069,30 @@ L L L a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (217,1,1) = {" E @@ -24112,7 +24126,6 @@ a a a a -u a a a @@ -24125,7 +24138,8 @@ a a a a -u +a +a a L E @@ -24166,30 +24180,30 @@ L L L a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (218,1,1) = {" E @@ -24277,32 +24291,32 @@ a a L a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -"} -(219,1,1) = {" +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +"} +(219,1,1) = {" E E E @@ -24388,30 +24402,30 @@ a a L a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (220,1,1) = {" E @@ -24499,30 +24513,30 @@ a a a a -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (221,1,1) = {" E @@ -24535,7 +24549,7 @@ E E E L -u +a a a c @@ -24609,31 +24623,31 @@ a a a L -L -L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +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 "} (222,1,1) = {" E @@ -24720,31 +24734,31 @@ a a a L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +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 "} (223,1,1) = {" E @@ -24831,43 +24845,6 @@ L L L L -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -"} -(224,1,1) = {" -E -E -E -E -E -E -E -E -E -L a a a @@ -24893,14 +24870,51 @@ c c c c +"} +(224,1,1) = {" +E +E +E +E +E +E +E +E +E +L +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 c c c c c c -c -c a a a @@ -24941,32 +24955,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (225,1,1) = {" E @@ -25052,32 +25066,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (226,1,1) = {" E @@ -25163,32 +25177,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (227,1,1) = {" E @@ -25274,32 +25288,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (228,1,1) = {" E @@ -25385,32 +25399,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (229,1,1) = {" E @@ -25496,32 +25510,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (230,1,1) = {" E @@ -25607,32 +25621,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (231,1,1) = {" E @@ -25699,7 +25713,7 @@ E L a a -u +a L E E @@ -25718,32 +25732,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (232,1,1) = {" E @@ -25829,32 +25843,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (233,1,1) = {" E @@ -25940,32 +25954,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (234,1,1) = {" E @@ -26051,32 +26065,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +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 "} (235,1,1) = {" E @@ -26162,32 +26176,32 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (236,1,1) = {" E @@ -26253,7 +26267,7 @@ L L L a -u +a a L E @@ -26274,31 +26288,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (237,1,1) = {" E @@ -26357,7 +26371,7 @@ a a a a -u +a a a a @@ -26385,31 +26399,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (238,1,1) = {" E @@ -26496,31 +26510,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (239,1,1) = {" E @@ -26566,7 +26580,7 @@ c c c c -u +a a a a @@ -26607,31 +26621,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (240,1,1) = {" E @@ -26718,31 +26732,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (241,1,1) = {" E @@ -26829,31 +26843,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +a +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (242,1,1) = {" E @@ -26940,31 +26954,31 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +L +a +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (243,1,1) = {" E @@ -27052,30 +27066,30 @@ E E E E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E -E +L +L +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c +c "} (244,1,1) = {" E @@ -27312,7 +27326,7 @@ E L a a -u +a c c c @@ -27759,7 +27773,6 @@ a a a a -u a a a @@ -27782,7 +27795,8 @@ a a a a -u +a +a a a a diff --git a/_maps/RandomRooms/backstreetlayout/lcorp.dmm b/_maps/RandomRooms/backstreetlayout/lcorp.dmm index 677519d66623..46c408bb07e4 100644 --- a/_maps/RandomRooms/backstreetlayout/lcorp.dmm +++ b/_maps/RandomRooms/backstreetlayout/lcorp.dmm @@ -221,7 +221,9 @@ /area/city/backstreets_alley) "eF" = ( /obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "eK" = ( /obj/structure/table/reinforced, @@ -235,7 +237,9 @@ /area/city/backstreets_room) "eY" = ( /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "fi" = ( /obj/structure/sign/poster/contraband/steppy, @@ -245,6 +249,10 @@ /obj/structure/lootcrate/seven, /turf/open/water/jungle, /area/city/backstreets_room) +"fZ" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "gm" = ( /obj/structure/chair/comfy{ dir = 4 @@ -1959,7 +1967,9 @@ /turf/open/floor/bluespace, /area/centcom/supplypod) "LM" = ( -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "LT" = ( /obj/effect/turf_decal/bot, @@ -2309,6 +2319,11 @@ "RI" = ( /obj/structure/necropolis_arch, /obj/structure/necropolis_gate, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Fearsome Signal"; + alpha = 10 + }, /turf/open/indestructible/necropolis/air, /area/city/backstreets_room) "RK" = ( @@ -3489,7 +3504,7 @@ iW iW iW Xj -Qe +Xj Xj iW UZ @@ -3590,7 +3605,7 @@ UZ UZ iW Xj -Qe +Xj Xj Xj Xj @@ -3789,7 +3804,7 @@ iW St Xj Xj -Qe +Xj Xj Xj Xj @@ -3909,7 +3924,7 @@ Xj Qe Xj Xj -Qe +Xj Xj Yt Yt @@ -4044,7 +4059,7 @@ UZ UZ iW Xj -Qe +Xj Xj iW UZ @@ -4450,7 +4465,7 @@ Xj Xj Xj Xj -Qe +Xj Xj Xj Xj @@ -4466,7 +4481,6 @@ Xj Xj Xj Xj -Qe Xj Xj Xj @@ -4475,7 +4489,8 @@ Xj Xj Xj Xj -Qe +Xj +Xj Xj Xj Xj @@ -4599,7 +4614,7 @@ Yt Yt Yt Xj -Xj +Qe Xj Yt Yt @@ -4664,12 +4679,12 @@ Yt Yt Yt Yt -Qe Xj Xj Xj Xj -Qe +Xj +Xj Xj Xj Xj @@ -5042,7 +5057,7 @@ Yt Yt Yt Yt -Qe +Xj Xj Xj Xj @@ -5157,7 +5172,6 @@ Xj Xj Xj Xj -Qe Xj Xj Xj @@ -5172,7 +5186,8 @@ Xj Xj Xj Xj -Qe +Xj +Xj Xj LM LM @@ -5400,7 +5415,7 @@ iW iW iW iW -eF +LM LM LM iW @@ -7063,7 +7078,7 @@ LM LM LM LM -eF +LM LM LM LM @@ -7613,7 +7628,7 @@ Yt Yt LM LM -eF +LM iW UZ UZ @@ -8509,7 +8524,7 @@ LM eF LM LM -eF +LM LM Yt Yt @@ -8611,7 +8626,7 @@ Tn UZ iW LM -eF +LM LM LM LM @@ -9731,7 +9746,7 @@ UZ iW LM LM -eF +LM iW UZ UZ @@ -11611,7 +11626,7 @@ Yt Yt Yt Xj -Qe +Xj Xj iW UZ @@ -12832,8 +12847,8 @@ UZ UZ iW Xj -Qe -Qe +Xj +Xj Xj Xj Xj @@ -13360,7 +13375,7 @@ UZ UZ UZ iW -Sc +Xj Xj Xj iW @@ -13612,7 +13627,7 @@ Yt Yt Yt Yt -Qe +Xj Xj Xj Yt @@ -13836,7 +13851,7 @@ UZ iW Xj Xj -Qe +Xj iW UZ UZ @@ -14245,7 +14260,6 @@ UZ UZ iW Xj -Sc Xj Xj Xj @@ -14260,7 +14274,8 @@ Xj Xj Xj Xj -Sc +Xj +Xj Yt Yt Yt @@ -14501,7 +14516,7 @@ iW iW iW Xj -Qe +Xj Xj iW UZ @@ -15459,7 +15474,7 @@ Xj Xj Xj Xj -Sc +Xj Xj iW UZ @@ -15607,7 +15622,7 @@ Yt Yt Yt Xj -Qe +Xj Xj iW UZ @@ -15924,7 +15939,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -16136,7 +16151,6 @@ Xj Xj Xj Xj -Sc Xj Xj Xj @@ -16153,7 +16167,8 @@ Xj Xj Xj Xj -Qe +Xj +Xj Xj Xj Xj @@ -16269,7 +16284,7 @@ Xj Xj Xj Xj -Qe +Xj Xj Xj Xj @@ -16446,7 +16461,7 @@ Yt Yt Yt Yt -Sc +Xj Xj Xj Yt @@ -16595,7 +16610,7 @@ UZ iW Xj Xj -Sc +Xj iW UZ UZ @@ -17148,7 +17163,7 @@ UZ UZ UZ iW -Sc +Xj Xj Xj iW @@ -17332,7 +17347,7 @@ UZ iW Xj Xj -Sc +Xj Yt Yt Yt @@ -17363,7 +17378,7 @@ UZ iW Xj Xj -Sc +Xj iW UZ UZ @@ -17686,7 +17701,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -17901,7 +17916,7 @@ UZ iW Xj Xj -Sc +Xj Yt Yt Yt @@ -17993,7 +18008,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -18582,7 +18597,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -18992,7 +19007,7 @@ Yt Yt wU Xj -Sc +Xj Xj Xj Xj @@ -19020,7 +19035,7 @@ UZ UZ iW Xj -Sc +Xj Xj iW UZ @@ -19036,7 +19051,7 @@ UZ UZ iW Xj -Sc +Xj Xj iW UZ @@ -19333,7 +19348,7 @@ UZ iW Xj Xj -Sc +Xj iW UZ UZ @@ -19659,7 +19674,7 @@ Yt Yt Xj Xj -Sc +Xj iW UZ UZ @@ -19678,7 +19693,6 @@ UZ UZ iW Xj -Sc Xj Xj Xj @@ -19694,7 +19708,8 @@ Xj Xj Xj Xj -Sc +Xj +Xj Xj Xj Xj @@ -20220,7 +20235,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -21124,7 +21139,7 @@ UZ UZ UZ iW -Sc +Xj Xj Xj iW @@ -21441,7 +21456,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -21567,7 +21582,7 @@ Xj Xj Xj Xj -Xj +Sc Xj Xj Xj @@ -21672,7 +21687,7 @@ Xj Xj Xj Xj -Sc +Xj Xj Xj Xj @@ -21791,7 +21806,7 @@ Yt Yt qG Xj -Sc +Xj Xj iW UZ @@ -22002,7 +22017,7 @@ Yt Yt Yt Yt -va +Xj Xj Xj Yt @@ -22042,28 +22057,28 @@ Yt Yt Yt Yt -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +fZ "} (175,1,1) = {" UZ @@ -22153,28 +22168,28 @@ Yt Yt Yt Yt -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (176,1,1) = {" UZ @@ -22249,7 +22264,6 @@ Xj Xj Xj Xj -va Xj Xj Xj @@ -22263,31 +22277,32 @@ Xj Xj Xj Xj -St -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -"} -(177,1,1) = {" +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +"} +(177,1,1) = {" UZ UZ UZ @@ -22326,7 +22341,7 @@ Xj Xj Xj Xj -va +Xj Xj iW UZ @@ -22374,29 +22389,29 @@ Xj Xj Xj Xj -St -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (178,1,1) = {" UZ @@ -22485,29 +22500,29 @@ Xj Xj Xj Xj -St -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (179,1,1) = {" UZ @@ -22595,30 +22610,30 @@ Xj iW iW iW -iW -iW -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (180,1,1) = {" UZ @@ -22706,30 +22721,30 @@ Xj Xj Xj iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (181,1,1) = {" UZ @@ -22802,7 +22817,7 @@ Yt Yt Xj Xj -va +Xj iW UZ UZ @@ -22817,30 +22832,30 @@ iW iW Xj iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +iW +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (182,1,1) = {" UZ @@ -22930,28 +22945,28 @@ Xj iW UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (183,1,1) = {" UZ @@ -23041,28 +23056,28 @@ Xj iW UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (184,1,1) = {" UZ @@ -23152,28 +23167,28 @@ Xj iW UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (185,1,1) = {" UZ @@ -23222,7 +23237,7 @@ va Xj Xj Xj -va +Xj Xj Xj Xj @@ -23263,28 +23278,28 @@ Xj iW UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (186,1,1) = {" UZ @@ -23374,28 +23389,28 @@ iW iW UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (187,1,1) = {" UZ @@ -23485,6 +23500,30 @@ UZ UZ UZ UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +"} +(188,1,1) = {" UZ UZ UZ @@ -23506,10 +23545,11 @@ UZ UZ UZ UZ -UZ -"} -(188,1,1) = {" -UZ +iW +Xj +Xj +Xj +iW UZ UZ UZ @@ -23519,41 +23559,16 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -iW -Xj -Xj -Xj -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -iW -iW -iW -iW -iW -qi -Xj -Xj -Xj -iW +iW +iW +iW +iW +iW +qi +Xj +Xj +Xj +iW UZ iW Xj @@ -23596,28 +23611,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (189,1,1) = {" UZ @@ -23707,28 +23722,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (190,1,1) = {" UZ @@ -23799,7 +23814,7 @@ Yt Yt Yt Yt -va +Xj Xj Xj iW @@ -23818,28 +23833,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (191,1,1) = {" UZ @@ -23891,7 +23906,7 @@ UZ iW Xj Xj -va +Xj iW UZ UZ @@ -23929,28 +23944,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (192,1,1) = {" UZ @@ -24040,28 +24055,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (193,1,1) = {" UZ @@ -24151,28 +24166,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (194,1,1) = {" UZ @@ -24197,7 +24212,7 @@ UZ UZ UZ iW -va +Xj Xj Xj iW @@ -24262,28 +24277,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (195,1,1) = {" UZ @@ -24373,28 +24388,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (196,1,1) = {" UZ @@ -24484,28 +24499,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (197,1,1) = {" UZ @@ -24555,7 +24570,7 @@ Xj iW iW iW -Xj +va Xj Xj iW @@ -24595,28 +24610,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (198,1,1) = {" UZ @@ -24666,7 +24681,7 @@ Xj Xj Xj Xj -va +Xj Xj Xj Xj @@ -24706,28 +24721,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (199,1,1) = {" UZ @@ -24817,28 +24832,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (200,1,1) = {" UZ @@ -24862,13 +24877,11 @@ Yt Yt Yt Xj -va Xj Xj Xj Xj Xj -va Xj Xj Xj @@ -24883,7 +24896,9 @@ Xj Xj Xj Xj -va +Xj +Xj +Xj Xj Xj Xj @@ -24928,28 +24943,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (201,1,1) = {" UZ @@ -25039,28 +25054,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (202,1,1) = {" UZ @@ -25150,28 +25165,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (203,1,1) = {" UZ @@ -25540,7 +25555,7 @@ UZ UZ iW Xj -va +Xj Xj iW UZ @@ -27403,7 +27418,7 @@ UZ UZ iW LM -eY +LM LM LM LM @@ -27424,9 +27439,9 @@ Yt Yt Yt Xj +va Xj Xj -va Xj Xj Xj @@ -27767,7 +27782,7 @@ iW UZ iW Xj -va +Xj Xj iW UZ @@ -29233,7 +29248,7 @@ Yt Yt ln Xj -Xj +va Xj iW UZ @@ -29434,7 +29449,7 @@ Xj Xj Xj Xj -va +Xj Xj Xj Xj @@ -29566,7 +29581,7 @@ Yt Yt Yt Xj -va +Xj Xj iW UZ @@ -29636,7 +29651,7 @@ LM LM LM LM -eY +LM LM LM LM @@ -30106,7 +30121,7 @@ iW Xj Xj Xj -va +Xj Xj Xj Xj diff --git a/_maps/RandomRooms/backstreetlayout/lcorp_backstreets.dmm b/_maps/RandomRooms/backstreetlayout/lcorp_backstreets.dmm index 47f248a392de..26d76743e045 100644 --- a/_maps/RandomRooms/backstreetlayout/lcorp_backstreets.dmm +++ b/_maps/RandomRooms/backstreetlayout/lcorp_backstreets.dmm @@ -403,13 +403,6 @@ }, /turf/open/floor/facility/halls, /area/city/backstreets_room) -"cB" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 8 - }, -/obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "cI" = ( /obj/machinery/light/broken{ dir = 8 @@ -579,6 +572,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/city/backstreets_room) +"dP" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "dQ" = ( /obj/machinery/light/broken{ dir = 8 @@ -764,6 +761,14 @@ /obj/effect/decal/cleanable/oil/slippery, /turf/open/floor/facility/halls, /area/city/backstreets_room) +"eO" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "L-Corp Signal"; + alpha = 10 + }, +/turf/open/floor/plasteel/elevatorshaft, +/area/city/backstreets_room) "eX" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/amurdad_grass, @@ -796,6 +801,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/facility/halls, /area/city/backstreets_room) +"fh" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt{ + dir = 5 + }, +/turf/open/floor/plating/asteroid/basalt, +/area/city/backstreets_alley) "fi" = ( /obj/effect/turf_decal/siding/brown{ dir = 6 @@ -1414,7 +1428,9 @@ /turf/open/floor/carpet/orange, /area/city/backstreets_room) "iY" = ( -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "iZ" = ( /obj/structure/rack, @@ -1494,6 +1510,15 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/facility/halls, /area/city/backstreets_room) +"jv" = ( +/obj/effect/decal/cleanable/blood/tracks, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Darkness Signal"; + alpha = 10 + }, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) "jy" = ( /obj/machinery/light/broken{ dir = 1 @@ -3255,7 +3280,9 @@ /obj/structure/fence/corner{ dir = 10 }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "up" = ( /obj/effect/turf_decal/siding/purple{ @@ -4338,6 +4365,13 @@ /obj/structure/flora/rock, /turf/open/floor/plating/ashplanet/rocky, /area/city/backstreets_alley) +"Cb" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 8 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/basalt, +/area/city/backstreets_alley) "Cc" = ( /obj/machinery/door/airlock/vault{ name = "Pale Horse's containment unit" @@ -4374,12 +4408,8 @@ /turf/open/floor/carpet/red, /area/city/backstreets_room) "Cm" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) +/turf/closed/indestructible/reinforced, +/area/space) "Cn" = ( /obj/effect/landmark/backstreetspawneast, /turf/open/floor/plating/asteroid/basalt, @@ -4426,7 +4456,9 @@ /obj/machinery/door/poddoor/shutters/indestructible{ name = "Malfunctioning Backstreets Shutters" }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "CE" = ( /obj/effect/turf_decal/weather/dirt{ @@ -4463,6 +4495,13 @@ /obj/structure/chair/office, /turf/open/floor/carpet/red, /area/city/backstreets_room) +"CU" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/floor/plating/asteroid/basalt, +/area/city/backstreets_alley) "CV" = ( /turf/open/floor/facility/halls, /area/city/backstreets_room) @@ -5152,7 +5191,9 @@ /area/city/backstreets_alley) "Hh" = ( /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Hi" = ( /obj/machinery/light/broken{ @@ -5786,13 +5827,6 @@ }, /turf/open/floor/facility/halls, /area/city/backstreets_room) -"Lz" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "LB" = ( /obj/effect/turf_decal/siding/purple{ dir = 4 @@ -6048,7 +6082,9 @@ /area/city/backstreets_room) "Nq" = ( /obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Ns" = ( /obj/effect/turf_decal/tile/brown, @@ -6371,7 +6407,9 @@ /area/city/backstreets_room) "Pz" = ( /obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "PG" = ( /obj/machinery/light/broken{ @@ -6397,7 +6435,9 @@ /obj/structure/fence{ dir = 4 }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "PJ" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -7674,7 +7714,9 @@ dir = 4 }, /obj/effect/turf_decal/weather/dirt, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "XY" = ( /obj/machinery/light/broken{ @@ -9878,7 +9920,7 @@ JE Ux iY Pz -GG +bF Ux kI "} @@ -11737,9 +11779,9 @@ JE JE JE hK -CE -Cm -CE +bF +bF +bF CE CE CE @@ -12954,11 +12996,11 @@ kI Ux bF bF +qv bF bF bF bF -qv bF bF bF @@ -13090,7 +13132,7 @@ bF CE bF bF -qv +bF bF Ux Ux @@ -13491,7 +13533,7 @@ kI kI kI Ux -bt +XA bt bt bt @@ -13602,7 +13644,7 @@ kI kI kI Ux -bF +js bF bF bF @@ -13713,7 +13755,7 @@ kI kI kI Ux -bF +js bF bF CE @@ -13824,7 +13866,7 @@ Ux Ux Ux Ux -bF +js bF bF Ux @@ -14268,7 +14310,7 @@ JE JE JE zs -bF +js bF bF Ux @@ -14379,7 +14421,7 @@ JE JE JE JE -bF +js bF bF Ux @@ -14490,7 +14532,7 @@ JE JE JE JE -bF +js bF bF JE @@ -14601,7 +14643,7 @@ JE JE JE JE -bF +js bF bF JE @@ -14712,7 +14754,7 @@ JE JE JE JE -bF +js bF bF JE @@ -14823,7 +14865,7 @@ JE JE JE JE -bF +js bF bF JE @@ -14934,7 +14976,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15045,7 +15087,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15156,7 +15198,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15267,7 +15309,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15378,7 +15420,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15489,7 +15531,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15600,7 +15642,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15711,7 +15753,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15822,7 +15864,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -15933,7 +15975,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -16044,7 +16086,7 @@ kI kI kI Ux -bF +js bF bF JE @@ -16368,7 +16410,7 @@ kI Ux js bF -qv +bF bF bF bF @@ -16749,7 +16791,7 @@ JE JE iY iY -Nq +iY Ux kI kI @@ -17054,7 +17096,7 @@ JE JE JE js -qv +bF oE Ux kI @@ -17080,7 +17122,7 @@ JE JE JE JE -Nq +iY iY iY Ux @@ -17110,7 +17152,7 @@ kI kI kI kI -Ux +OP iY iY JE @@ -17221,7 +17263,7 @@ kI kI kI kI -Ux +OP iY iY JE @@ -17327,7 +17369,7 @@ kI kI kI kI -Ux +kI Ux Ux Ux @@ -17438,11 +17480,11 @@ kI kI kI kI +kI Ux iY iY iY -Pz iY iY iY @@ -17549,6 +17591,7 @@ kI kI kI kI +kI Ux iY iY @@ -17561,7 +17604,6 @@ iY iY iY iY -Pz iY Ux kI @@ -17654,6 +17696,7 @@ kI "} (88,1,1) = {" kI +pq JE JE JE @@ -17671,7 +17714,6 @@ Ux Ux Ux Ux -Ux iY iY Ux @@ -17737,7 +17779,7 @@ JE JE YP kI -kI +Ux Ux Ux Ux @@ -17765,6 +17807,7 @@ kI "} (89,1,1) = {" kI +pq JE JE JE @@ -17774,8 +17817,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -17848,7 +17890,6 @@ JE JE JE kI -kI Ux iY iY @@ -17856,6 +17897,7 @@ iY iY iY iY +iY Nq iY iY @@ -17876,6 +17918,7 @@ kI "} (90,1,1) = {" kI +pq JE JE JE @@ -17885,8 +17928,7 @@ JE JE iY Pz -Ux -kI +Cm kI kI kI @@ -17959,7 +18001,6 @@ JE JE JE kI -kI Ux iY iY @@ -17971,6 +18012,7 @@ iY iY iY iY +iY JE JE JE @@ -17987,6 +18029,7 @@ kI "} (91,1,1) = {" kI +pq JE JE JE @@ -17996,8 +18039,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -18070,10 +18112,10 @@ JE JE JE kI -kI Ux iY iY +iY Ux Ux Ux @@ -18098,6 +18140,7 @@ kI "} (92,1,1) = {" kI +pq JE JE JE @@ -18107,8 +18150,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -18126,7 +18168,7 @@ iY iY iY iY -Pz +iY iY iY iY @@ -18181,10 +18223,10 @@ JE JE JE kI -kI Ux iY iY +iY Ux kI kI @@ -18209,6 +18251,7 @@ kI "} (93,1,1) = {" kI +pq JE JE JE @@ -18218,8 +18261,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -18292,9 +18334,9 @@ JE JE JE kI -kI Ux iY +iY Nq Ux kI @@ -18320,6 +18362,7 @@ kI "} (94,1,1) = {" kI +pq JE JE JE @@ -18329,8 +18372,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -18340,7 +18382,7 @@ JE JE js bF -Re +oE iY iY iY @@ -18403,10 +18445,10 @@ JE JE JE kI -kI Ux iY iY +iY Ux kI kI @@ -18431,6 +18473,7 @@ kI "} (95,1,1) = {" kI +pq JE JE JE @@ -18440,8 +18483,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -18514,6 +18556,97 @@ kI kI kI kI +Ux +iY +bF +Ux +Ux +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +"} +(96,1,1) = {" +kI +pq +JE +JE +JE +JE +JE +JE +JE +iY +iY +Cm +kI +kI +JE +JE +JE +JE +JE +js +GG +oE +Ux +kI +kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +kI +kI +kI +kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI kI Ux iY @@ -18534,40 +18667,9 @@ kI kI kI kI -kI -kI -kI -kI -kI -"} -(96,1,1) = {" -kI -JE -JE -JE -JE -JE -JE -JE -iY -iY Ux -kI -kI -kI -JE -JE -JE -JE -JE -js +iY bF -oE -Ux -kI -kI -JE -JE JE JE JE @@ -18576,12 +18678,6 @@ JE JE JE JE -kI -kI -kI -kI -JE -JE JE JE JE @@ -18595,64 +18691,11 @@ JE JE JE JE -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -Ux -Nq -iY -rr -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +dP "} (97,1,1) = {" kI +pq JE JE JE @@ -18662,8 +18705,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -18737,33 +18779,34 @@ Ux Ux Ux Ux -Ux -iY iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (98,1,1) = {" kI +pq JE JE JE @@ -18771,10 +18814,9 @@ JE JE JE JE -Pz iY -Ux -kI +iY +Cm kI kI JE @@ -18831,8 +18873,6 @@ kI Ux iY iY -Nq -iY iY iY iY @@ -18851,30 +18891,33 @@ iY iY iY iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (99,1,1) = {" kI +pq JE JE JE @@ -18884,8 +18927,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -18940,8 +18982,6 @@ kI kI kI Ux -Nq -iY iY iY iY @@ -18951,7 +18991,6 @@ iY iY iY iY -Nq iY iY iY @@ -18962,30 +19001,34 @@ iY iY iY iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (100,1,1) = {" kI +pq JE JE JE @@ -18995,8 +19038,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -19005,7 +19047,7 @@ kI kI Ux js -GG +bF oE Ux kI @@ -19063,40 +19105,41 @@ Ux Ux Ux iY -Nq +iY Ux Ux Ux Ux Ux -rr Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (101,1,1) = {" kI +pq JE JE JE @@ -19106,8 +19149,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -19180,34 +19222,35 @@ kI kI kI kI -kI Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (102,1,1) = {" kI +pq JE JE JE @@ -19217,8 +19260,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -19291,34 +19333,35 @@ kI kI kI kI -kI Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (103,1,1) = {" kI +pq JE JE JE @@ -19328,8 +19371,7 @@ JE JE iY iY -Ux -kI +Cm kI kI JE @@ -19402,31 +19444,31 @@ kI kI kI kI -kI Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (104,1,1) = {" kI @@ -19436,11 +19478,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -19513,31 +19555,31 @@ kI kI kI kI -kI -Ux -iY -iY -Ux Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (105,1,1) = {" kI @@ -19547,11 +19589,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -19624,31 +19666,31 @@ kI kI kI kI -kI -Ux -iY -iY -iY -Ux Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (106,1,1) = {" kI @@ -19658,11 +19700,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -19735,31 +19777,31 @@ kI kI kI kI -kI -Ux -iY -iY -iY -iY -Ux Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (107,1,1) = {" kI @@ -19769,11 +19811,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -19846,31 +19888,31 @@ kI kI kI kI -kI Ux -iY -iY -iY -iY -iY -Ux -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (108,1,1) = {" kI @@ -19880,11 +19922,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -19957,31 +19999,31 @@ kI kI kI kI -kI Ux Ux -iY -iY -iY -iY -iY -Ux -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +bF +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (109,1,1) = {" kI @@ -19991,11 +20033,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI JE @@ -20069,30 +20111,30 @@ kI kI kI kI -kI -Ux -Ux -iY -iY -iY -iY -iY Ux Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (110,1,1) = {" kI @@ -20102,11 +20144,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI kI @@ -20182,28 +20224,28 @@ kI kI kI kI -Ux -Ux -iY -iY -iY -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (111,1,1) = {" kI @@ -20213,11 +20255,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI kI @@ -20278,7 +20320,7 @@ bt bt bt bt -KD +bt bt bt bt @@ -20293,28 +20335,28 @@ kI kI kI kI -kI -Ux -Ux -iY -iY -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (112,1,1) = {" kI @@ -20324,6 +20366,7 @@ kI kI kI kI +kI Ux iY iY @@ -20334,7 +20377,6 @@ JE YP kI kI -kI Ux js bF @@ -20404,28 +20446,28 @@ kI kI kI kI -kI -kI -Ux -Ux -iY -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (113,1,1) = {" kI @@ -20435,6 +20477,7 @@ kI kI kI kI +kI Ux iY iY @@ -20445,7 +20488,6 @@ JE JE kI kI -kI Ux js bF @@ -20515,28 +20557,28 @@ kI kI kI kI -kI -kI -kI -Ux -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (114,1,1) = {" kI @@ -20546,6 +20588,7 @@ kI kI kI kI +kI Ux iY Pz @@ -20556,7 +20599,6 @@ JE JE kI kI -kI Ux Dr bF @@ -20626,28 +20668,28 @@ JE JE Iw kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (115,1,1) = {" kI @@ -20657,6 +20699,7 @@ kI kI kI kI +kI Ux iY iY @@ -20667,7 +20710,6 @@ JE JE kI kI -kI Ux js GG @@ -20711,7 +20753,7 @@ kI kI kI Ux -Pz +iY iY Ux kI @@ -20737,28 +20779,28 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (116,1,1) = {" kI @@ -20768,6 +20810,7 @@ kI kI kI kI +kI Ux iY iY @@ -20778,7 +20821,6 @@ JE JE kI kI -kI Ux js bF @@ -20848,28 +20890,28 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (117,1,1) = {" kI @@ -20879,6 +20921,7 @@ kI kI kI kI +kI Ux iY iY @@ -20889,7 +20932,6 @@ JE JE kI kI -kI Ux js bF @@ -20959,28 +21001,28 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (118,1,1) = {" kI @@ -20990,6 +21032,7 @@ kI kI kI kI +kI Ux iY iY @@ -21000,7 +21043,6 @@ JE JE kI kI -kI Ux js bF @@ -21070,28 +21112,28 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (119,1,1) = {" kI @@ -21101,11 +21143,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI kI @@ -21181,28 +21223,28 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (120,1,1) = {" kI @@ -21212,11 +21254,11 @@ kI kI kI kI +kI Ux iY iY -Ux -kI +Cm kI kI kI @@ -21292,33 +21334,34 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (121,1,1) = {" kI kI kI +kI JE JE JE @@ -21326,8 +21369,7 @@ JE hK iY iY -Ux -kI +Cm kI kI kI @@ -21337,7 +21379,7 @@ kI Ux js bF -Re +oE Ux kI kI @@ -21403,33 +21445,34 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (122,1,1) = {" kI kI kI +kI JE JE JE @@ -21437,8 +21480,7 @@ JE JE iY iY -Ux -kI +Cm kI kI kI @@ -21514,33 +21556,34 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (123,1,1) = {" kI kI kI +kI JE JE JE @@ -21548,8 +21591,7 @@ JE JE iY iY -Ux -kI +Cm kI JE JE @@ -21602,9 +21644,9 @@ Ux iY iY iY -Pz iY -Pz +iY +iY iY iY iY @@ -21625,33 +21667,34 @@ JE JE JE kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (124,1,1) = {" kI kI kI +kI JE JE JE @@ -21659,8 +21702,7 @@ JE JE iY iY -Ux -kI +Cm kI JE JE @@ -21736,33 +21778,34 @@ kI kI kI kI -kI -kI -kI -kI -Ux -iY -iY -Ux -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE "} (125,1,1) = {" kI kI kI +kI JE JE JE @@ -21770,8 +21813,7 @@ JE JE iY iY -Ux -kI +Cm kI JE JE @@ -21847,14 +21889,14 @@ kI kI kI kI -Ux -Ux -Ux -Ux -Ux -iY -iY -Ux +kI +kI +kI +kI +kI +kI +kI +kI kI kI kI @@ -21874,6 +21916,7 @@ kI kI kI kI +kI JE JE JE @@ -21881,8 +21924,7 @@ JE JE iY iY -Ux -kI +Cm kI JE JE @@ -21957,15 +21999,15 @@ kI kI kI kI -Ux -Ux -iY -iY -iY -iY -iY -iY -Ux +kI +kI +kI +kI +kI +kI +kI +kI +kI kI kI kI @@ -21985,6 +22027,7 @@ kI kI kI kI +kI JE JE JE @@ -21992,8 +22035,7 @@ JE JE iY iY -Ux -kI +Cm kI JE JE @@ -22063,20 +22105,20 @@ js bF oE Ux -Ux -Ux -Ux -Ux -Ux -Ux -iY -iY -iY -iY -iY -iY -iY -Ux +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI kI kI kI @@ -22100,12 +22142,12 @@ kI kI kI kI +kI Ux iY iY Ux Ux -Ux JE JE JE @@ -22173,20 +22215,6 @@ Ux js bF oE -iY -iY -iY -iY -iY -iY -iY -iY -iY -Ux -Ux -Ux -Ux -Ux Ux kI kI @@ -22202,6 +22230,20 @@ kI kI kI kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI "} (129,1,1) = {" kI @@ -22211,8 +22253,8 @@ kI kI kI kI +kI Ux -Pz iY iY iY @@ -22284,15 +22326,6 @@ Ux js bF oE -iY -iY -iY -iY -iY -iY -iY -iY -Ux Ux kI kI @@ -22313,6 +22346,15 @@ kI kI kI kI +kI +kI +kI +kI +kI +kI +kI +kI +kI "} (130,1,1) = {" kI @@ -22322,12 +22364,12 @@ kI kI kI kI +kI Ux iY iY iY iY -iY JE JE JE @@ -22396,14 +22438,14 @@ js bF oE Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux -Ux +kI +kI +kI +kI +kI +kI +kI +kI kI kI kI @@ -22433,7 +22475,7 @@ kI kI kI kI -Ux +kI Ux Ux Ux @@ -22796,7 +22838,7 @@ kI kI kI Ux -Pz +iY iY Ux kI @@ -23240,7 +23282,7 @@ kI kI kI rr -iY +Pz iY JE JE @@ -23267,7 +23309,7 @@ JE JE JE iY -Pz +iY Ux kI Ux @@ -23596,7 +23638,7 @@ Ux iY iY iY -Pz +iY iY iY iY @@ -23925,7 +23967,7 @@ Ux kI kI Ux -Pz +iY iY Ux kI @@ -24129,7 +24171,7 @@ JE JE JE iY -Pz +iY JE JE JE @@ -24252,7 +24294,7 @@ kI kI Ux js -GG +bF oE Ux kI @@ -24340,7 +24382,7 @@ iY iY iY iY -Pz +iY iY iY iY @@ -24554,7 +24596,7 @@ JE JE JE JE -qo +Dr bF oE Ux @@ -24715,7 +24757,7 @@ bt bt bt bt -KD +bt bt bt bt @@ -24796,7 +24838,7 @@ Ux bF bF bF -bt +bF bt bt bt @@ -24937,7 +24979,7 @@ CE CE CE CE -Lz +CE CE CE CE @@ -25880,10 +25922,10 @@ kI Ux CD iY +Hh iY iY iY -Hh iY iY js @@ -25991,7 +26033,7 @@ kI Ux CD iY -Hh +iY iY iY iY @@ -26116,7 +26158,7 @@ JE JE JE JE -Hh +iY iY iY Ux @@ -26381,7 +26423,7 @@ bt bt bt bt -cB +bt bt bt bt @@ -26483,7 +26525,7 @@ JE bF bF bF -Cn +bF bF bF bF @@ -26568,10 +26610,10 @@ CE CE CE CE -gy -CE -CE CE +bF +bF +bF CE CE CE @@ -26625,7 +26667,7 @@ CE iY iY iY -Hh +iY iY iY iY @@ -26738,7 +26780,7 @@ JE JE zs iY -Hh +iY iY Ux kI @@ -26848,9 +26890,9 @@ JE JE JE JE -bF -bF -bF +bt +bt +bt Ux kI kI @@ -27047,118 +27089,7 @@ JE JE JE JE -bl -kI -Ux -iY -iY -JE -JE -JE -JE -JE -Iw -kI -kI -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -bF -bF -bF -JE -JE -JE -JE -JE -Iw -kI -kI -kI -kI -kI -kI -kI -"} -(173,1,1) = {" -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -kI -Ux -iY -iY -JE -JE -JE -JE -JE -kI -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -kI -kI -kI -kI -kI -Ux -js -bF -oE -Ux -kI -kI -kI -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE -kI -kI -kI -JE -JE -JE -JE -JE -JE -JE -JE -JE -JE +bl kI Ux iY @@ -27168,7 +27099,7 @@ JE JE JE JE -JE +Iw kI kI JE @@ -27189,7 +27120,7 @@ JE JE JE JE -JE +Iw kI kI kI @@ -27198,7 +27129,7 @@ kI kI kI "} -(174,1,1) = {" +(173,1,1) = {" kI kI kI @@ -27242,8 +27173,114 @@ Ux kI kI kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +kI +kI +kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +kI +Ux +iY +iY +JE +JE +JE +JE +JE +JE +kI +kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +bF +bF +bF +JE +JE +JE +JE +JE +JE +kI +kI +kI +kI +kI +kI +kI +"} +(174,1,1) = {" +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +kI +Ux +iY +iY +JE +JE +JE +JE +JE +kI +JE +JE +JE +JE +JE +JE +JE +JE +JE +JE +kI +kI +kI kI kI +Ux +js +bF +oE +Ux kI kI kI @@ -27252,6 +27289,11 @@ kI kI kI kI +Ux +js +bF +oE +Ux kI kI kI @@ -27322,7 +27364,7 @@ kI kI kI Ux -Hh +iY iY JE JE @@ -27358,11 +27400,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -27469,11 +27511,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -27494,7 +27536,7 @@ JE JE kI Ux -Hh +iY iY JE JE @@ -27580,11 +27622,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -27691,11 +27733,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -27766,7 +27808,7 @@ kI kI kI Ux -iY +Hh iY Ux kI @@ -27802,11 +27844,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -27913,11 +27955,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -28024,11 +28066,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -28135,11 +28177,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -28246,11 +28288,11 @@ kI kI kI kI -kI -kI -kI -kI -kI +Ux +js +bF +oE +Ux kI kI kI @@ -28358,9 +28400,9 @@ Ux Ux Ux Ux -Ux -Ux -Ux +js +bF +oE Ux Ux Ux @@ -28434,6 +28476,7 @@ kI Ux iY iY +fh bt bt bt @@ -28455,6 +28498,9 @@ bt bt bt bt +bF +bF +bF bt bt bt @@ -28465,6 +28511,9 @@ bt bt bt bt +bF +bF +bF bt bt bt @@ -28473,14 +28522,7 @@ bt bt bt bt -bt -bt -bt -bt -bt -bt -bt -bt +Cb iY iY Ux @@ -28545,15 +28587,14 @@ kI Ux iY iY -Nq -bF -bF -bF +iY +js bF bF bF bF bF +qv bF bF bF @@ -28592,6 +28633,7 @@ bF bF bF bF +oE iY iY Ux @@ -28654,9 +28696,10 @@ kI kI kI Ux -Nq iY iY +iY +TQ CE CE CE @@ -28701,8 +28744,7 @@ CE CE CE CE -CE -CE +CU iY iY iY @@ -28717,7 +28759,7 @@ iY iY iY iY -bF +js bF bF bF @@ -28828,12 +28870,12 @@ iY iY iY iY +js bF bF bF bF bF -Cn bF bF bF @@ -28939,7 +28981,7 @@ JE pG iY iY -bF +js bF bF bF @@ -30523,7 +30565,7 @@ bF bF bF bF -Cn +bF bF Ux kI @@ -31060,7 +31102,7 @@ kI kI kI Ux -wG +WP WP wG Ux @@ -32178,7 +32220,7 @@ ne LR JC pN -pN +eO wP Ei kI @@ -32945,7 +32987,7 @@ OP zU qu qu -qu +jv rQ ZL WP @@ -33947,7 +33989,7 @@ OP kI Ux WP -wG +WP WP Ux kI @@ -34843,13 +34885,13 @@ WP WP WP WP +wG WP WP WP WP WP WP -wG WP WP Ux diff --git a/_maps/RandomRooms/backstreetlayout/outskirts.dmm b/_maps/RandomRooms/backstreetlayout/outskirts.dmm new file mode 100644 index 000000000000..41567effc8a0 --- /dev/null +++ b/_maps/RandomRooms/backstreetlayout/outskirts.dmm @@ -0,0 +1,29544 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aH" = ( +/obj/effect/landmark/backstreetspawneast, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"aU" = ( +/obj/structure/curtain/cloth, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"bl" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"bH" = ( +/obj/effect/spawner/room/backstreets/large_north, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"bU" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"co" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"cq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"cB" = ( +/obj/structure/chair/sofa/corp/left, +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_3"; + icon_state = "clan_citzen_3"; + question3 = "What is this mask you are wearing?"; + question2 = "Why are you waiting here?"; + answers1 = list("Well, You may ca-all me Paul!","I am a-a collector of so-orts...","So, I colle-ect tech from the outski-irts.", "And I store the-em here!"); + answers2 = list("Well, Right no-ow I am a break", "I was a-able to ma-ake a good ha-aul today", "I think I deserve one."); + answers3 = list("Oh? Thi-is silly thing?", "Emote: taps their mask", "Fou-und it in the ruins.", "Loo-oked cool, and it he-elps me see i-in the dark.", "So tha-at is why I a-am keeping it."); + greeting_line = "Oh! Ni-ice meeting you hu-uman!"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"cC" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 1; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"dd" = ( +/obj/effect/spawner/room/backstreets/small_west, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"dk" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"dl" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"dF" = ( +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_3"; + icon_living = "clan_citzen_3"; + answers1 = list("Well, Yo-ou may call me Lavan.","Right now I am just resting he-ere, but I do have some tapes fo-or sale!"); + question2 = "How did you gather these tapes?"; + answers2 = list("I-I found them in thi-is room...", "They look-ed cool, so I-I took them.", "And looks like I-I was ri-ight, as you might wa-ant to buy the-em!"); + greeting_line = "Hello-o human!"; + selling_answer = list("Le-et take a lookse...","Here are the ta-apes that I have fo-or sale!", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Go-ood Deal!"; + poor_say = "Aw... Looks li-ike you still need "; + sold_say = "So-old!"; + selling_item_1 = /obj/item/tape/resurgence/gateway; + selling_item_1_name = "Tinkerer's Logs: New Invention (200 ahn)"; + selling_item_2_name = "Historians Podcast: Backstage Records (200 ahn)"; + selling_item_2 = /obj/item/tape/resurgence/backstage; + cost_1 = 200; + selling_end = "Go-ot it, I-if you need a-anything, I will be-e right here!"; + return_to_origin = 1; + city_faction = 0; + can_buy = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"dR" = ( +/obj/structure/flora/rock/pile/largejungle, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/water/jungle, +/area/city/backstreets_room/resurgence_village) +"em" = ( +/turf/closed/indestructible/rock, +/area/space) +"eo" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"eq" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue/corner, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"fb" = ( +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"fc" = ( +/mob/living/simple_animal/npc/tinkerer{ + default_delay = 15; + speech = list("Icon: tinker_d","Icon: tinker","Well, Looks like you were able to slay all of the faithless...", "I guess I should congratulate you for making it here, they must have been a hassle to deal with...", "Yet, Looks like you found this tape...", "Personaly, I would never want to share this with anyone...", "But it appears I can do nothing about this... You already can get it.", "All I can really say now is...", "Just keep it to yourself... Don't want to be unloading all of this on everyone...", "Icon: tinker_u") + }, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"fg" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_6"; + icon_living = "clan_citzen_6"; + answers1 = list("...","Ca-all me Herring.", "I am but an old fi-sher who rests here...", "Once I fi-ished in the gre-eat lake...", "No-ow I fi-ish in simple ponds."); + question2 = "What are you buying?"; + answers2 = list("Hm...", "Bri-ing me so-ome fish of stra-ange origins", "I-it has been a long time si-ince I have seen some..."); + greeting_line = "Greetings..."; + selling_answer = list("I o-only have a fe-ew tools to spare...","Bu-ut you ma-ay ta-ake a look...", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Ni-ice catch..."; + poor_say = "Lo-ooks li-ike you still need "; + sold_say = "Ve-ery well, Ta-ake it."; + selling_item_1 = /obj/item/fishing_component/line/clan; + selling_item_1_name = "Resurgence Clan Fishing Line Reel (600 ahn)"; + selling_item_2_name = "Resurgence Clan Fishing Net (800 ahn)"; + selling_item_2 = /obj/item/fishing_net/resurgence; + cost_1 = 600; + cost_2 = 800; + selling_end = "Ve-ery well..."; + return_to_origin = 1; + city_faction = 0; + level_1 = list(/obj/item/food/fish/siltcurrent, /obj/item/food/fish/fresh_water/mosb, /obj/item/food/fish/fresh_water/yin, /obj/item/food/fish/fresh_water/yang, /obj/item/food/fish/salt_water/fishmael, /obj/item/food/fish/salt_water/piscine_mermaid, /obj/item/food/fish/salt_water/tuna_pallid); + level_2 = list(); + level_3 = list(); + dir = 4; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"fj" = ( +/obj/structure/riser/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"fE" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/effect/turf_decal/raven/one, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"fL" = ( +/obj/structure/displaycase/forsale, +/obj/structure/table/wood/fancy/royalblue, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"fM" = ( +/obj/structure/flora/rock/pile, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"fR" = ( +/obj/structure/lootcrate/money, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"gd" = ( +/obj/effect/turf_decal/raven/nine, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"gy" = ( +/obj/structure/table/wood, +/obj/item/taperecorder/empty, +/obj/structure/fluff/paper, +/obj/item/tape/resurgence/solution, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"gA" = ( +/obj/structure/flora/rock, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"gI" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"gU" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"hw" = ( +/obj/structure/sign/departments/security{ + pixel_x = 32 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"hI" = ( +/obj/structure/flora/ash/garden/waste, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"io" = ( +/obj/structure/table/bronze, +/obj/structure/window/bronze{ + dir = 8 + }, +/obj/structure/window/bronze{ + dir = 4 + }, +/obj/structure/window/bronze{ + dir = 1 + }, +/obj/structure/window/bronze, +/obj/item/tape/resurgence/his_dream, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"iD" = ( +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"iU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_2"; + icon_state = "clan_citzen_2"; + dir = 1; + greeting_line = "Howdy Pa-al, I have no-ot seen your kind in a whi-ile!"; + answers1 = list("Well Pa-artner, Friends ca-all me James", "You can sa-ay I am a... Hunte-er if you could te-ell.", "I explore arou-und the rui-ins with my pal Ronan, finding monste-ers to take apa-art.", "After a-all, The Weaver does nee-ed material to make such o-outfits"); + question2 = "What are wearing?"; + answers2 = list("It i-is nice, Is it no-ot?", "Emote: points at thei-ir boots", "The great Weave-er was able to make the-em them for me.", "And I do sa-ay, They really fit the 'Hunter' look I have see-em often."); + answers3 = list("If you-u are asking abo-out this faction...", "The Cla-an is just one of ma-any villages in the O-outskirts...","All of the me-embers of the clan are ma-achines...","Li-ike me...","Delay: 20","But we are clo-ose to being hu-uman!","We ju-ust need to stu-udy mo-ore, then we can learn what it means to be Hu-uman..."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"jf" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/safety_report{ + pixel_x = 32 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"jn" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"jt" = ( +/obj/structure/flora/rock/pile, +/obj/structure/flora/rock, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"jX" = ( +/obj/structure/sign/poster/contraband/borg_fancy_1, +/turf/closed/indestructible/rock, +/area/city/backstreets_alley) +"ku" = ( +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"kM" = ( +/turf/closed/indestructible/rock, +/area/city/backstreets_room/resurgence_village) +"lx" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"lB" = ( +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"lN" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/fishshrine{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"mp" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"mz" = ( +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"nf" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"ng" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"nZ" = ( +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"oa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"ol" = ( +/obj/structure/table/wood, +/obj/item/food/grown/cannabis, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"oC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"oQ" = ( +/obj/structure/sign/poster/official/work_for_a_future, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"oS" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"pa" = ( +/turf/closed/indestructible/reinforced, +/area/city/backstreets_alley) +"pj" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"pm" = ( +/obj/structure/riser/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"pv" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 9 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"py" = ( +/obj/structure/chair/sofa/corp/right, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + maxHealth = 2400; + health = 2400 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"pJ" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/closed/indestructible/rock, +/area/city/backstreets_alley) +"pO" = ( +/obj/structure/mineral_door/wood, +/obj/effect/turf_decal/siding/blue/end, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"pR" = ( +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"pX" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 6 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"qb" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"qD" = ( +/obj/structure/curtain/cloth, +/turf/closed/indestructible/fakeglass, +/area/city/backstreets_room/resurgence_village) +"rb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"rh" = ( +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"rl" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"rU" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_1"; + icon_state = "clan_citzen_1"; + dir = 1; + greeting_line = "Oh... Salutations Human."; + question2 = "Why are you not attacking me?"; + question3 = "Who are your leaders?"; + answers2 = list("Oh, You must have gotten the wrong idea.", "This clan was never about killing or hunting humans.", "It is just that one of our Elders has gone a bit rogue.", "Tinkerer is their name, They have quite a strange hatred for the city...", "However the Weaver and the Historian remain sane.", "Still leading this dream of ours."); + answers3 = list("Do you mean the Elders?","We used to have 3 of them.","The Tinkerer, The Historian and The Weaver","However, Tinkerer is a bit of a mess right now, They have left.","The Historian is currently incharge of leading expeditions like these.", "While the Weaver is staying back at our village, Keeping watch over us and protecting us."); + answers1 = list("You may call me Comander Julian", "The one assigned by the Historian to lead this outpost.", "Currently waiting for the Historian to report back to us with our next orders."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"sg" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/closed/mineral/ash_rock, +/area/city/backstreets_alley) +"sh" = ( +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"sH" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"sO" = ( +/obj/structure/fluff/paper/stack{ + dir = 4 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"sQ" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/brown, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"tj" = ( +/mob/living/simple_animal/hostile/clan/drone/village{ + city_faction = 0; + faction = list("village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"tB" = ( +/obj/effect/mob_spawn/human/corpse, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"tM" = ( +/obj/structure/table/wood, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"tO" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_living = "clan_citzen_4"; + icon_state = "clan_citzen_4"; + can_sell = 0; + level_2 = list(/obj/item/book/granter/action/skill); + level_1 = null; + level_3 = null; + question3 = "What are you collecting?"; + answers3 = list("Oh!, I am gathering books...", "Specifically books from the city.", "They should be called 'Skill Books?'", "If you find any, I am willing to buy them from you."); + dir = 4; + greeting_line = "Oh my! Greetings human!"; + question2 = "How did all of you get here?"; + answers1 = list("Well, You may call me Lorenzo", "I am one of the Historian's scholars.", "Just examining and studying the city..."); + answers2 = list("That is thanks to our Elders", "They... The Tinkerer found a way to teleport an outpost great distances.", "So the other Elders are currently using this tech to send us closer to the City."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"tP" = ( +/obj/structure/sign/poster/contraband/borg_fancy_2, +/turf/closed/indestructible/rock, +/area/city/backstreets_alley) +"uv" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Robotic Signal"; + alpha = 10 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"uy" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"uW" = ( +/obj/structure/displaycase/forsale, +/obj/structure/table/wood/fancy/royalblue, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"vh" = ( +/obj/effect/spawner/room/backstreets/medium_south, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"vQ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 5 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"vZ" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"wa" = ( +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"wk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"wO" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/mob/living/simple_animal/hostile/faithless{ + maxHealth = 250; + health = 250; + damage_coeff = list("brute" = 1, "red" = 0.5, "white" = 0, "black" = 1.5, "pale" = 2); + silk_results = list(/obj/item/stack/sheet/silk/violet_simple = 2, /obj/item/stack/sheet/silk/violet_advanced = 1); + melee_damage_lower = 10 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"wP" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"xf" = ( +/turf/closed/mineral/ash_rock, +/area/city/backstreets_alley) +"xn" = ( +/obj/effect/landmark/backstreetspawneast, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"xq" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"xS" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_room/resurgence_village) +"yv" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"yL" = ( +/obj/effect/spawner/room/backstreets/pointofinterest, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"yP" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/structure/lootcrate/syndicate, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"yU" = ( +/obj/structure/water_source{ + desc = "A well constructed of stone and wood. From where does it draw water?"; + icon_state = "wishwell"; + name = "well"; + density = 1; + icon = 'ModularTegustation/Teguicons/toolabnormalities.dmi'; + pixel_y = -3 + }, +/turf/open/floor/plating/dirt/jungle/wasteland, +/area/city/backstreets_room/resurgence_village) +"Aa" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Ah" = ( +/obj/effect/spawner/room/backstreets/small_south, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"Bf" = ( +/obj/structure/water_source{ + desc = "A well constructed of stone and wood. From where does it draw water?"; + icon_state = "wishwell"; + name = "well"; + density = 1; + icon = 'ModularTegustation/Teguicons/toolabnormalities.dmi'; + pixel_y = -3 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"BM" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 1 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"BT" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/structure/sign/poster/official/smile{ + pixel_x = -32 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Cc" = ( +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Cq" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"CG" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"CJ" = ( +/obj/effect/turf_decal/raven/nine, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Da" = ( +/mob/living/simple_animal/hostile/faithless{ + maxHealth = 250; + health = 250; + damage_coeff = list("brute" = 1, "red" = 0.5, "white" = 0, "black" = 1.5, "pale" = 2); + silk_results = list(/obj/item/stack/sheet/silk/violet_simple = 2, /obj/item/stack/sheet/silk/violet_advanced = 1); + melee_damage_lower = 10 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"DZ" = ( +/obj/structure/plaque/static_plaque{ + name = "folk office plaque"; + desc = "A plaque which mentions some sort of 'Folk Office', Something about them giving them some strange speech about being yourself, even if other order you to be something else..." + }, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Eg" = ( +/obj/effect/spawner/room/backstreets/small_north, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"Fp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"GE" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"GY" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"HY" = ( +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + dir = 1; + wants_to_talk = 1; + question2 = "Why are you not attacking me?"; + question3 = "Why do you sound so strange?"; + answers1 = list("Emote: sighs", "I am Dion, O-one of the Defenders a-at this outpost.", "Just sta-anding around he-ere, making sure everyone is sa-afe."); + answers2 = list("Oh, Yo-ou are o-one of the ne-ew humans around here...", "Talk wi-ith our Comander, They shou-uld be to the ri-ight of me.", "They will be a-able to e-explain some things..."); + answers3 = list("Oh we-ell, I guess you can sa-ay that I am not there yet...", "It ta-akes a whi-ile to get a upgraded vo-oice box, so o-only the closest followers of o-our Elders get them.", "Hopefu-uly that time wi-ill come one day. But fo-or now I just nee-ed to work for i-it."); + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + health = 2400; + maxHealth = 2400 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Ih" = ( +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Jc" = ( +/turf/closed/indestructible/rock, +/area/city/backstreets_alley) +"Jf" = ( +/obj/effect/landmark/backstreetspawnwest, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"Jp" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"JA" = ( +/obj/effect/turf_decal/raven/nine, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"JN" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"JO" = ( +/obj/structure/lootcrate/syndicate, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"Ke" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + dir = 1; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"KK" = ( +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + dir = 1; + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + health = 2400; + maxHealth = 2400 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"KY" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/water/jungle, +/area/city/backstreets_room/resurgence_village) +"KZ" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Li" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Lo" = ( +/obj/structure/flora/ash/garden/waste, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"Lw" = ( +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_trader"; + icon_living = "clan_citzen_trader"; + answers1 = list("Well, Yo-ou may call me Ronan.","Currently, I am ru-unning this humble sho-op for passerbys li-ike you!"); + question2 = "What are you buying?"; + answers2 = list("A-as of now...", "I am willi-ing to buy robotic components.", "You kno-ow those weird bo-ots which are ru-unning around, guns or spe-ears for hands?", "I heard tha-at their parts are quite u-useful.", "Also, The outskirts wo-ould be better off without the-em."); + greeting_line = "Hm... We-elcome cu-ustomer."; + selling_answer = list("Le-et me take a lo-ook...","I got so-ome good thi-ings in store to-oday...", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Go-ood Deal!"; + poor_say = "Aw... Looks li-ike you still need "; + sold_say = "So-old!"; + selling_item_1 = /obj/item/book/granter/crafting_recipe/clan_drone; + selling_item_1_name = "Tinkerer's Blueprints: Reforged Drone (250 ahn)"; + selling_item_2_name = "Resurgence Clan Augment: Echo Step (1000 ahn)"; + selling_item_2 = /obj/item/organ/cyberimp/chest/resurgence_core; + cost_1 = 250; + cost_2 = 1000; + selling_end = "Go-ot it, We-e are always o-open if you need a-anything!"; + return_to_origin = 1; + city_faction = 0; + level_1 = list(/obj/item/food/meat/slab/robot); + level_2 = list(); + level_3 = list(/obj/item/raw_anomaly_core); + faction = list("neutral", "village") + }, +/obj/effect/turf_decal/siding/wood{ + color = "#2e1f0e"; + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"LI" = ( +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"LT" = ( +/mob/living/simple_animal/hostile/clan/drone/village{ + faction = list("village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"MK" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"MQ" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"Nc" = ( +/obj/effect/landmark/backstreetspawnwest, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"Nj" = ( +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_room/resurgence_village) +"NC" = ( +/obj/effect/spawner/room/backstreets/large_south, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"NE" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/effect/landmark/backstreetspawnwest, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"NJ" = ( +/obj/effect/spawner/room/backstreets/small_east, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"Oj" = ( +/obj/structure/plaque/static_plaque{ + name = "echo office plaque"; + desc = "A plaque which mentions some sort of 'Echo Office', Something about them freeing them from a 'Tinkerer'" + }, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Ol" = ( +/obj/structure/curtain/cloth, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Os" = ( +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"OE" = ( +/obj/effect/mob_spawn/human/corpse, +/obj/structure/lootcrate/money, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"OH" = ( +/obj/machinery/door/airlock/centcom{ + desc = "A bit too sturdy..."; + max_integrity = 10000; + name = "Strange Airlock"; + normal_integrity = 100000; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"OJ" = ( +/obj/structure/sign/departments/cargo{ + desc = "A sign labelling an area where shop is."; + name = "\improper Shop sign"; + pixel_y = 32 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"OV" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 10 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"PW" = ( +/obj/effect/landmark/backstreetspawn, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) +"Qj" = ( +/obj/structure/flora/rock/pile, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Qu" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/water/jungle, +/area/city/backstreets_alley) +"QJ" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"QQ" = ( +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"QW" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stack/rods/ten, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Rd" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Rv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Rx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Rz" = ( +/obj/effect/spawner/room/backstreets/medium_west, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"RV" = ( +/obj/structure/table/bronze, +/obj/item/tape/resurgence/redacted, +/obj/structure/window/bronze{ + dir = 8 + }, +/obj/structure/window/bronze{ + dir = 4 + }, +/obj/structure/window/bronze{ + dir = 1 + }, +/obj/structure/window/bronze, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"Sa" = ( +/obj/effect/landmark/backstreetspawn, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"Si" = ( +/obj/effect/spawner/room/backstreets/connector, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"Sq" = ( +/obj/structure/table/wood, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"SQ" = ( +/obj/structure/flora/junglebush/c, +/obj/machinery/fish_market, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Tb" = ( +/obj/effect/turf_decal/raven/seven, +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"TO" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Up" = ( +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Ut" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"UB" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Faithless Signal"; + alpha = 10 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"Vo" = ( +/obj/effect/spawner/room/backstreets/bossroom, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"VB" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"VN" = ( +/obj/effect/decal/cleanable/blood/tracks{ + dir = 8 + }, +/turf/open/floor/plating/ashplanet/wateryrock, +/area/city/backstreets_alley) +"Wq" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"WZ" = ( +/obj/structure/flora/rock/pile, +/obj/structure/lootcrate/syndicate, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"XR" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/structure/lootcrate/money, +/turf/open/floor/plating/ashplanet/rocky, +/area/city/backstreets_alley) +"XS" = ( +/obj/effect/spawner/room/backstreets/medium_east, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) +"Yt" = ( +/obj/effect/turf_decal/raven/seven, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"YK" = ( +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/closed/mineral/ash_rock, +/area/city/backstreets_alley) +"Zq" = ( +/obj/structure/flora/junglebush/large, +/turf/open/floor/plating/dirt/jungle/wasteland{ + slowdown = 0 + }, +/area/city/backstreets_alley) + +(1,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(2,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(3,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(4,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(5,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(6,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(7,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(8,1,1) = {" +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(9,1,1) = {" +em +em +em +em +em +Jc +Jc +JN +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +JN +Qu +JN +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(10,1,1) = {" +em +em +em +em +em +Jc +Qu +JN +ku +Nc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +NE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(11,1,1) = {" +em +em +em +em +em +Jc +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Nc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(12,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(13,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(14,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +NC +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +Jc +Jc +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(15,1,1) = {" +em +em +em +em +em +Jc +ku +GE +GE +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(16,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(17,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +Jc +ku +ku +ku +Nc +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(18,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(19,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +"} +(20,1,1) = {" +em +em +em +em +em +Jc +hI +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +GE +ku +ku +pR +qb +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(21,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +JN +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +pR +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jf +pR +pR +MQ +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(22,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Vo +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(23,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Nc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(24,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Zq +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(25,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +vh +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(26,1,1) = {" +em +em +em +em +em +Jc +GE +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(27,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(28,1,1) = {" +em +em +em +em +em +Jc +ku +ku +GE +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(29,1,1) = {" +em +em +em +em +em +Jc +ku +ku +GE +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +GE +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(30,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(31,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(32,1,1) = {" +em +em +em +em +em +Jc +ku +ku +Nc +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +GE +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(33,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +pR +ku +ku +ku +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(34,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +pR +ku +pR +pR +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(35,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +hI +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +pR +ku +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(36,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +pR +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(37,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +pR +Jf +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(38,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +CG +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(39,1,1) = {" +em +em +em +em +em +Jc +JN +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +qb +pR +ku +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(40,1,1) = {" +em +em +em +em +em +Jc +Qu +JN +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +Jf +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(41,1,1) = {" +em +em +em +em +em +Jc +JN +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(42,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(43,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +Jc +Jc +MQ +pR +pR +pR +pR +pR +CG +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(44,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +Jc +Qu +MQ +pR +pR +pR +pR +pR +Jf +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(45,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(46,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +dd +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +qb +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +MQ +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(47,1,1) = {" +em +em +em +em +em +Jc +hI +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +NJ +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +bH +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(48,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +Jf +pR +pR +pR +pR +pR +Lo +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +"} +(49,1,1) = {" +em +em +em +em +em +Jc +GE +ku +ku +ku +ku +Jc +Jc +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +"} +(50,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +ku +ku +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(51,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +CG +ku +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Ah +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(52,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +xf +xf +xf +xf +YK +xf +xf +YK +xf +xf +xf +xf +em +em +em +em +em +em +em +em +em +em +em +em +"} +(53,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +GE +ku +Nc +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +ku +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +xf +wP +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +gA +xf +xf +xf +xf +em +em +em +em +em +em +em +em +em +"} +(54,1,1) = {" +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +bH +pR +pR +pR +pR +pR +Jc +xf +xf +pv +BM +BM +BM +BM +BM +BM +OV +nZ +nZ +Da +nZ +wP +YK +xf +xf +em +em +em +em +em +em +em +"} +(55,1,1) = {" +em +em +em +em +em +Jc +Jc +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +xf +nZ +VB +xf +xf +xf +xf +xf +YK +vQ +BM +BM +BM +BM +BM +BM +OV +xf +em +em +em +em +em +em +em +"} +(56,1,1) = {" +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +bH +ku +pR +pR +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +xf +Da +VB +xf +Jc +Jc +Jc +Jc +xf +xf +xf +xf +xf +nZ +nZ +nZ +VN +xf +em +em +em +em +em +em +em +"} +(57,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +CG +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +YK +nZ +VB +xf +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +xf +wP +Da +iD +VN +xf +Jc +em +em +em +em +em +em +"} +(58,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +YK +nZ +VB +xf +Jc +xf +xf +xf +xf +xf +Jc +Jc +xf +xf +nZ +iD +VN +xf +xf +em +em +em +em +em +em +"} +(59,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +CG +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +xf +nZ +VB +xf +xf +xf +WZ +yP +nZ +YK +xf +xf +Jc +xf +nZ +iD +VN +jt +xf +em +em +em +em +em +em +"} +(60,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +Jf +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +xf +nZ +VB +xf +nZ +nZ +nZ +nZ +nZ +gA +gA +xf +xf +YK +nZ +iD +VN +iD +xf +em +em +em +em +em +em +"} +(61,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +YK +nZ +VB +Da +nZ +nZ +Cq +UB +nZ +nZ +Cq +OE +xf +xf +iD +iD +VN +nZ +xf +em +em +em +em +em +em +"} +(62,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +xf +xf +vQ +BM +BM +BM +nZ +RV +nZ +nZ +nZ +iD +xf +xf +iD +iD +VB +nZ +YK +em +em +em +em +em +em +"} +(63,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +CG +pR +pR +pR +pR +Jc +em +xf +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +iD +iD +xf +xf +iD +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(64,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +xf +gA +Da +nZ +Cq +nZ +nZ +nZ +dk +fc +sg +xf +xf +xf +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(65,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +xf +xf +xf +XR +nZ +nZ +iD +iD +iD +gA +xf +Jc +Jc +YK +wP +VB +nZ +xf +em +em +em +em +em +em +"} +(66,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +xf +xf +nZ +fR +tB +JO +gA +xf +xf +Jc +Jc +xf +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(67,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +qb +pR +Sa +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +Jc +YK +xf +xf +xf +xf +xf +xf +Jc +Jc +Jc +xf +nZ +wO +nZ +xf +em +em +em +em +em +em +"} +(68,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +xf +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(69,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +Jc +YK +nZ +VB +wP +xf +em +em +em +em +em +em +"} +(70,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Sa +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +Jc +xf +xf +xf +nZ +VB +nZ +YK +em +em +em +em +em +em +"} +(71,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Sa +pR +pR +pR +pR +pR +pR +pR +Jc +pJ +Jc +Jc +Jc +Jc +Jc +xf +wP +nZ +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(72,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Sa +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +nZ +nZ +nZ +wP +xf +YK +xf +nZ +nZ +nZ +VB +nZ +xf +em +em +em +em +em +em +"} +(73,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +VB +gA +xf +em +em +em +em +em +em +"} +(74,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +Lo +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +BM +BM +BM +BM +BM +BM +BM +BM +BM +BM +BM +pX +xf +xf +em +em +em +em +em +em +"} +(75,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +NJ +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +nZ +Jc +xf +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +wP +xf +em +em +em +em +em +em +em +"} +(76,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pJ +Jc +xf +xf +xf +YK +xf +xf +wP +nZ +YK +xf +xf +em +em +em +em +em +em +em +"} +(77,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +MQ +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +xf +xf +xf +xf +em +em +em +em +em +em +em +em +em +"} +(78,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +Sa +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(79,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(80,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +dd +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(81,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(82,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(83,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +CG +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(84,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(85,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(86,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(87,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +Sa +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(88,1,1) = {" +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +CG +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +CG +pR +Sa +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(89,1,1) = {" +em +em +em +em +em +em +Jc +Jc +qb +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +pR +Lo +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(90,1,1) = {" +em +em +em +em +em +em +Jc +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Sa +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(91,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(92,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(93,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(94,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +NC +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(95,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(96,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Ah +em +em +em +em +Jc +qb +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(97,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(98,1,1) = {" +em +em +em +em +em +em +Jc +pR +CG +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Si +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(99,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(100,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(101,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(102,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(103,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(104,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +Sa +MQ +Qu +Jc +em +em +em +em +em +em +em +em +Jc +MQ +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(105,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +Jc +Qu +MQ +pR +CG +Sa +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(106,1,1) = {" +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +Jc +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +qb +pR +pR +pR +CG +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(107,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +NJ +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(108,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(109,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(110,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(111,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +kM +kM +kM +kM +kM +kM +kM +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(112,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +em +kM +kM +Cc +xq +Cc +Cc +HY +kM +kM +kM +kM +kM +kM +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(113,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +gd +tP +Jc +kM +Cc +Nj +Cc +Cc +Cc +Cc +CJ +kM +dR +vZ +JA +kM +kM +kM +kM +kM +kM +kM +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(114,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +OH +co +xS +Cc +Cc +vZ +Cc +Cc +Cc +tj +Cc +Cc +Cc +Cc +LI +LI +DZ +LI +LI +LI +kM +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(115,1,1) = {" +em +em +em +em +em +em +Jc +co +pR +pR +pR +CG +pR +OH +pR +GY +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +LI +Rd +Ih +bl +sQ +LI +kM +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +co +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +qb +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(116,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Yt +jX +Jc +kM +Nj +Cc +Cc +Cc +Cc +vZ +Cc +Cc +Cc +Cc +Cc +Aa +Ih +Ih +bl +sQ +LI +kM +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(117,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +em +kM +fE +Cc +Cc +Cc +Cc +Cc +Cc +Cc +vZ +Cc +Cc +qD +tM +Ke +bl +sQ +LI +kM +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(118,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +kM +ng +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +KK +LI +qD +LI +LI +LI +LI +kM +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(119,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +kM +sH +sH +sH +TO +Cc +Cc +Cc +Cc +Cc +Cc +Cc +Cc +kM +kM +kM +kM +kM +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(120,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +LI +LI +LI +LI +LI +ng +Cc +Cc +Cc +Cc +Cc +KZ +Cc +Cc +kM +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(121,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +LI +wa +pm +BT +LI +OJ +Cc +Cc +Cc +Cc +GY +Cc +Cc +Li +kM +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(122,1,1) = {" +em +em +em +em +em +em +Jc +MQ +pR +CG +pR +pR +Jc +em +em +kM +LI +Lw +fj +fb +LI +KZ +Cc +uv +Cc +KK +LI +LI +LI +LI +LI +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(123,1,1) = {" +em +em +em +em +em +em +Jc +Qu +MQ +pR +pR +pR +Jc +em +em +kM +LI +yv +Up +eq +pO +Cc +Cc +Cc +Cc +Cc +qD +mp +mz +Sq +Oj +Jc +Jc +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(124,1,1) = {" +em +em +em +em +em +em +Jc +MQ +pR +pR +pR +pR +Jc +em +em +kM +LI +py +Up +fL +qD +Cc +Cc +Cc +Cc +Cc +qD +Ih +dF +ol +LI +Jc +Qu +MQ +ku +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(125,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +qb +Jc +em +em +kM +oQ +cB +jf +uW +qD +Cc +Cc +Cc +Cc +Cc +Aa +Ih +Ih +Ih +LI +Jc +MQ +ku +ku +ku +pR +ku +ku +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(126,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +LI +LI +LI +LI +LI +ng +Cc +tj +Cc +Cc +LI +bl +bl +bl +LI +Jc +JN +pR +ku +ku +ku +ku +Sa +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Si +Jc +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(127,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +kM +kM +kM +QQ +Cc +Rx +Rv +wk +Cc +Cc +Cc +LI +sQ +sQ +sQ +LI +Jc +ku +ku +ku +ku +ku +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(128,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +kM +QW +oS +gU +Cc +MK +Fp +Cc +KK +LI +LI +LI +LI +LI +Jc +ku +ku +pR +ku +ku +Os +Os +Os +Os +Os +Os +Os +NC +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +Jc +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(129,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +kM +fM +cq +Cc +Ut +Cc +pj +Cc +Cc +xq +Cc +Cc +Bf +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(130,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +kM +kM +rl +Wq +Cc +dl +iU +Cc +Cc +Cc +Cc +Cc +SQ +kM +Jc +ku +ku +GE +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(131,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +CG +Os +Os +Os +Os +Os +vh +kM +Cc +oC +rb +oa +Cc +Cc +Cc +Cc +gI +fg +kM +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(132,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +kM +Jp +Cc +Cc +Cc +hw +Cc +Cc +Cc +lN +rh +kM +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +ku +pR +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(133,1,1) = {" +em +em +em +em +em +em +Jc +pR +CG +Sa +pR +pR +Os +Os +Os +Os +Os +Os +kM +TO +Cc +Cc +LI +LI +Aa +qD +qD +LI +jn +rh +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +MQ +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(134,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +kM +bU +Cc +LT +LI +QJ +sh +Ih +cC +LI +rh +rh +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Jc +Jc +Qu +MQ +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(135,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +kM +tO +Cc +Cc +LI +sO +lB +bl +bl +LI +rh +rh +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +ku +pR +pR +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(136,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +kM +yU +uy +Cc +LI +nf +rU +Ol +sQ +LI +rh +Tb +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +Jc +pR +ku +pR +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(137,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +kM +kM +Qj +vZ +LI +gy +eo +aU +io +LI +Tb +kM +kM +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +Jc +ku +pR +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(138,1,1) = {" +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +em +kM +kM +KY +LI +LI +LI +LI +LI +LI +kM +kM +em +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +em +em +Jc +co +pR +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(139,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +pR +pR +ku +Os +Os +Os +Os +Os +Os +em +em +kM +kM +kM +kM +kM +kM +kM +kM +kM +em +em +Jc +Zq +ku +ku +ku +hI +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +em +em +Jc +pR +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(140,1,1) = {" +em +em +em +em +em +em +Jc +CG +pR +ku +pR +ku +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +"} +(141,1,1) = {" +em +em +em +em +em +em +Jc +pR +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +GE +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +nZ +nZ +ku +ku +ku +ku +ku +ku +ku +ku +nZ +nZ +nZ +nZ +nZ +"} +(142,1,1) = {" +em +em +em +em +em +em +Jc +pR +ku +ku +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +nZ +nZ +ku +ku +ku +ku +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +"} +(143,1,1) = {" +em +em +em +em +em +em +Jc +MQ +pR +ku +ku +ku +ku +ku +PW +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +nZ +"} +(144,1,1) = {" +em +em +em +em +em +em +Jc +Qu +MQ +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Jc +pR +ku +ku +ku +ku +Jc +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +pa +"} +(145,1,1) = {" +em +em +em +em +em +em +Jc +Jc +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +ku +pR +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(146,1,1) = {" +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +NJ +ku +GE +ku +ku +GE +Jc +Jc +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +pR +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(147,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Vo +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +pR +pR +CG +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(148,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +ku +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(149,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +JN +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(150,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Os +Os +Os +Os +Os +Os +Os +Zq +ku +ku +JN +Qu +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(151,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +JN +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(152,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +ku +ku +ku +ku +ku +ku +ku +ku +PW +ku +ku +ku +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +ku +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(153,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +MQ +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +Jc +hI +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(154,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +MQ +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(155,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +Jc +ku +ku +ku +ku +GE +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(156,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +Jc +Jc +em +Jc +ku +ku +ku +ku +GE +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(157,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +co +ku +pR +ku +ku +Os +Os +Os +Os +Ah +Jc +Jc +Jc +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(158,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +ku +ku +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(159,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(160,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +CG +pR +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +ku +ku +ku +Zq +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(161,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(162,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +bH +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +GE +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(163,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(164,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +hI +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(165,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(166,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +CG +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(167,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +ku +ku +pR +ku +ku +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(168,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +hI +ku +ku +ku +ku +ku +pR +pR +pR +pR +pR +pR +pR +CG +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(169,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +CG +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +ku +pR +ku +ku +ku +ku +ku +pR +pR +pR +pR +pR +pR +pR +CG +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +CG +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(170,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +xn +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +JN +pR +pR +ku +ku +ku +pR +pR +pR +pR +pR +pR +pR +pR +CG +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(171,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +Jc +Qu +JN +ku +ku +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(172,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +Jc +Jc +MQ +pR +pR +pR +qb +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(173,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +xn +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +dd +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(174,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(175,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(176,1,1) = {" +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +Jc +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(177,1,1) = {" +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +qb +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(178,1,1) = {" +Jc +Jc +Qu +MQ +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Lo +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(179,1,1) = {" +Jc +MQ +MQ +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(180,1,1) = {" +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(181,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +yL +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(182,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +qb +pR +pR +pR +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(183,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +pR +pR +CG +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +NC +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(184,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +MQ +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(185,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Qu +MQ +pR +pR +pR +Jc +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(186,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +MQ +pR +CG +pR +pR +Jc +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(187,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +xn +pR +pR +Jc +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(188,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(189,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(190,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(191,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(192,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(193,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(194,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +co +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(195,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +CG +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(196,1,1) = {" +Jc +CG +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(197,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(198,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +CG +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +CG +pR +pR +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(199,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +qb +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(200,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(201,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Eg +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(202,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +CG +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(203,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(204,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +dd +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(205,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(206,1,1) = {" +Jc +CG +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(207,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +CG +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(208,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(209,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +CG +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(210,1,1) = {" +Jc +pR +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +MQ +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(211,1,1) = {" +Jc +pR +pR +pR +pR +pR +ku +ku +ku +pR +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +pR +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +xn +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(212,1,1) = {" +Jc +MQ +MQ +pR +pR +pR +pR +CG +ku +ku +ku +ku +ku +ku +ku +ku +aH +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +qb +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(213,1,1) = {" +Jc +Jc +Qu +MQ +pR +pR +ku +pR +ku +pR +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +Lo +pR +pR +pR +pR +pR +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(214,1,1) = {" +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +ku +ku +ku +ku +ku +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +NJ +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +pR +pR +CG +pR +pR +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(215,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(216,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(217,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +GE +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(218,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +dd +pR +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(219,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +pR +pR +pR +pR +pR +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +pR +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(220,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +JN +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +pR +ku +pR +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(221,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +JN +Qu +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +Jc +Jc +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(222,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +hI +ku +ku +ku +JN +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +qb +pR +pR +pR +pR +pR +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(223,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +CG +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +pR +ku +ku +ku +GE +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(224,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +ku +ku +pR +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(225,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +pR +pR +pR +pR +pR +ku +pR +CG +pR +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +xn +CG +pR +pR +pR +pR +pR +pR +pR +ku +ku +CG +pR +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(226,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +co +pR +pR +pR +ku +ku +pR +ku +ku +ku +pR +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +ku +ku +ku +ku +ku +ku +ku +ku +aH +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(227,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +GE +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Lo +pR +pR +pR +ku +ku +pR +ku +ku +ku +ku +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +pR +ku +ku +ku +ku +ku +pR +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(228,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Vo +ku +ku +ku +ku +ku +Os +Os +Os +Os +Ah +Jc +Jc +Os +Os +Os +Os +Os +Os +NJ +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +"} +(229,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +"} +(230,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +GE +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +Jc +Jc +em +em +em +em +em +"} +(231,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(232,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +bH +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(233,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +JN +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(234,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +hI +ku +ku +ku +ku +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Qu +JN +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +GE +ku +ku +Jc +em +em +em +em +em +"} +(235,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +hI +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +XS +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(236,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(237,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(238,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +GE +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(239,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +GE +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(240,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(241,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +hI +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +GE +ku +Jc +em +em +em +em +em +"} +(242,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +aH +ku +ku +Jc +em +em +em +em +em +"} +(243,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +dd +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Rz +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(244,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +hI +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(245,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +GE +ku +ku +ku +Jc +em +em +em +em +em +"} +(246,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(247,1,1) = {" +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Zq +ku +ku +ku +ku +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +em +em +em +em +em +em +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +hI +ku +ku +ku +hI +Jc +em +em +em +em +em +"} +(248,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Os +Os +Os +Os +Os +Os +Os +Os +Os +Os +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +hI +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(249,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +ku +GE +aH +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +JN +Qu +JN +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +Jc +em +em +em +em +em +"} +(250,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +aH +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(251,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Qu +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +aH +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +aH +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +aH +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +Jc +em +em +em +em +em +"} +(252,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +JN +ku +hI +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +lx +ku +GE +ku +ku +ku +ku +ku +ku +hI +ku +ku +Zq +ku +ku +ku +ku +ku +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +JN +JN +Jc +em +em +em +em +em +"} +(253,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +ku +JN +Qu +JN +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +ku +ku +ku +ku +ku +ku +Zq +ku +ku +ku +ku +ku +ku +ku +ku +ku +hI +ku +GE +ku +ku +ku +ku +ku +ku +ku +ku +JN +Qu +Jc +Jc +em +em +em +em +em +"} +(254,1,1) = {" +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +em +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +Jc +em +em +em +em +em +em +"} diff --git a/_maps/RandomRooms/backstreetlayout/ruinned_la_mancha_land.dmm b/_maps/RandomRooms/backstreetlayout/ruinned_la_mancha_land.dmm index 8e2daa79081f..d3072f0c9777 100644 --- a/_maps/RandomRooms/backstreetlayout/ruinned_la_mancha_land.dmm +++ b/_maps/RandomRooms/backstreetlayout/ruinned_la_mancha_land.dmm @@ -112,9 +112,8 @@ }, /area/city/backstreets_alley) "cm" = ( -/obj/structure/chair/pew, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon/flying, -/turf/open/floor/material, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/indestructible/necropolis/air, /area/city/backstreets_alley) "cv" = ( /turf/open/floor/plasteel/sepia{ @@ -175,6 +174,9 @@ /obj/structure/lootcrate/money, /turf/open/floor/plasteel/dark, /area/city/backstreets_alley) +"eo" = ( +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "eu" = ( /obj/structure/table/abductor, /obj/item/clothing/under/dress/skirt/purple, @@ -184,10 +186,10 @@ /turf/open/floor/carpet/purple, /area/city/backstreets_alley) "ev" = ( -/mob/living/simple_animal/hostile/ordeal/steel_dusk, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, +/obj/structure/bed/pod, +/obj/item/bedsheet/rd, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/purple, /area/city/backstreets_alley) "eI" = ( /obj/effect/decal/cleanable/blood, @@ -196,6 +198,11 @@ }, /turf/open/floor/mineral/plastitanium/red, /area/city/backstreets_alley) +"fk" = ( +/obj/structure/chair/pew, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, +/turf/open/floor/material, +/area/city/backstreets_alley) "fs" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 8 @@ -208,12 +215,24 @@ color = "#e29eff" }, /area/city/backstreets_alley) +"fO" = ( +/obj/structure/chair/pew/left{ + dir = 8 + }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/plasteel/chapel{ + dir = 4 + }, +/area/city/backstreets_alley) "fP" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plasteel/showroomfloor{ color = "#e29eff" }, /area/city/backstreets_alley) +"fS" = ( +/turf/closed/indestructible/necropolis, +/area/city/backstreets_room) "fW" = ( /obj/item/flashlight/lantern{ on = 1; @@ -306,11 +325,10 @@ }, /area/city/backstreets_alley) "in" = ( -/obj/effect/decal/cleanable/blood/tracks{ - dir = 8 - }, -/mob/living/simple_animal/hostile/ordeal/steel_dawn, -/turf/open/floor/plasteel/dark, +/obj/structure/meatfloor, +/obj/structure/meatfloor, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/red, /area/city/backstreets_alley) "io" = ( /obj/effect/spawner/room/backstreets/large_north, @@ -330,11 +348,11 @@ /obj/structure/chair/pew{ dir = 1 }, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon/flying, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, /turf/open/floor/material, /area/city/backstreets_alley) "iw" = ( -/mob/living/simple_animal/hostile/ordeal/indigo_dawn/skirmisher, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, /turf/open/floor/carpet/red, /area/city/backstreets_alley) "iA" = ( @@ -382,7 +400,8 @@ /turf/open/floor/stone, /area/city/backstreets_alley) "jU" = ( -/obj/effect/landmark/backstreetspawnwest, +/obj/effect/gibspawner/human/bodypartless, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/carpet/red, /area/city/backstreets_alley) "kg" = ( @@ -444,9 +463,15 @@ color = "#da82ff" }, /area/city/backstreets_alley) +"lM" = ( +/obj/structure/chair/pew/right{ + dir = 8 + }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/plasteel/chapel, +/area/city/backstreets_alley) "mb" = ( /obj/effect/decal/cleanable/blood, -/mob/living/simple_animal/hostile/ordeal/indigo_dawn/skirmisher, /obj/effect/gibspawner/human/bodypartless, /turf/open/floor/carpet/red, /area/city/backstreets_alley) @@ -460,7 +485,7 @@ }, /area/city/backstreets_alley) "ml" = ( -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, /turf/open/floor/plasteel/dark, /area/city/backstreets_alley) "mv" = ( @@ -493,7 +518,6 @@ /area/city/backstreets_alley) "mO" = ( /obj/structure/chair/pew/left, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon/flying, /turf/open/floor/material, /area/city/backstreets_alley) "mP" = ( @@ -520,10 +544,8 @@ /turf/open/floor/plasteel/showroomfloor, /area/city/backstreets_alley) "ns" = ( -/mob/living/simple_animal/hostile/ordeal/steel_dawn, -/turf/open/floor/plasteel/chapel{ - dir = 4 - }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/stone, /area/city/backstreets_alley) "nM" = ( /obj/effect/spawner/room/backstreets/medium_north, @@ -726,12 +748,17 @@ /obj/structure/chair/office{ dir = 8 }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/carpet/black, /area/city/backstreets_alley) "tV" = ( /obj/structure/closet/crate/freezer/blood, /turf/open/floor/material, /area/city/backstreets_alley) +"uk" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/necropolis, +/area/city/backstreets_room) "ur" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/black, @@ -750,6 +777,7 @@ "uC" = ( /obj/effect/decal/cleanable/blood, /obj/effect/rune, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/mineral/plastitanium/red, /area/city/backstreets_alley) "uJ" = ( @@ -770,6 +798,11 @@ "vm" = ( /turf/closed/wall/mineral/iron, /area/city/backstreets_alley) +"vz" = ( +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/purple, +/area/city/backstreets_alley) "vB" = ( /obj/structure/table/wood/fancy/red, /obj/effect/landmark/cratespawn, @@ -807,13 +840,9 @@ /turf/open/floor/plasteel/dark, /area/city/backstreets_alley) "wq" = ( -/obj/structure/chair/pew/left{ - dir = 8 - }, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, -/turf/open/floor/plasteel/chapel{ - dir = 1 - }, +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/red, /area/city/backstreets_alley) "wr" = ( /obj/structure/statue/bone/rib, @@ -887,6 +916,7 @@ /obj/structure/chair/office{ dir = 4 }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/carpet/black, /area/city/backstreets_alley) "yP" = ( @@ -897,6 +927,15 @@ dir = 4 }, /area/city/backstreets_alley) +"zd" = ( +/obj/structure/chair/pew{ + dir = 8 + }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/city/backstreets_alley) "zj" = ( /obj/structure/chair/plastic{ dir = 4 @@ -956,11 +995,10 @@ }, /area/city/backstreets_alley) "Ae" = ( -/obj/structure/chair/pew/right{ - dir = 8 +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/wood{ + color = "#990012" }, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, -/turf/open/floor/plasteel/chapel, /area/city/backstreets_alley) "Ai" = ( /obj/structure/curtain, @@ -981,6 +1019,16 @@ color = "#990012" }, /area/city/backstreets_alley) +"Av" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Button 2 Signal"; + alpha = 10 + }, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/city/backstreets_alley) "AF" = ( /turf/open/floor/material, /area/city/backstreets_alley) @@ -1027,18 +1075,19 @@ }, /area/city/backstreets_alley) "Bo" = ( -/obj/effect/decal/cleanable/dirt/dust, -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, -/turf/open/floor/plasteel/dark, +/obj/structure/bed/pod, +/obj/item/bedsheet/hos, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/red, /area/city/backstreets_alley) "Br" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/carpet/purple, /area/city/backstreets_alley) "Bt" = ( -/mob/living/simple_animal/hostile/ordeal/indigo_noon, -/turf/open/floor/mineral/plastitanium/red, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/black, /area/city/backstreets_alley) "BH" = ( /mob/living/simple_animal/hostile/carp/megacarp{ @@ -1060,9 +1109,10 @@ /turf/open/floor/mineral/plastitanium/red, /area/city/backstreets_alley) "BO" = ( -/obj/effect/rune, -/mob/living/simple_animal/hostile/ordeal/indigo_noon, -/turf/open/floor/mineral/plastitanium/red, +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss, +/turf/open/floor/stone{ + color = "#e29eff" + }, /area/city/backstreets_alley) "Cd" = ( /obj/structure/table/wood/fancy/red, @@ -1091,6 +1141,10 @@ /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/carpet/black, /area/city/backstreets_alley) +"CT" = ( +/mob/living/simple_animal/hostile/humanoid/blood/fiend, +/turf/open/floor/carpet/black, +/area/city/backstreets_alley) "Dj" = ( /obj/structure/headpike, /turf/open/floor/plating/ashplanet/ash{ @@ -1121,6 +1175,12 @@ color = "#990012" }, /area/city/backstreets_alley) +"EP" = ( +/obj/structure/bed, +/obj/item/bedsheet/chaplain, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/carpet/black, +/area/city/backstreets_alley) "ER" = ( /obj/machinery/vending/medical, /obj/item/storage/backpack/duffelbag/med/surgery{ @@ -1193,8 +1253,13 @@ }, /area/city/backstreets_alley) "Gp" = ( -/mob/living/simple_animal/hostile/ordeal/steel_dawn, -/turf/open/floor/carpet/black, +/obj/structure/chair/pew{ + dir = 8 + }, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/plasteel/chapel{ + dir = 8 + }, /area/city/backstreets_alley) "Ha" = ( /obj/structure/spirit_board, @@ -1232,9 +1297,10 @@ /turf/open/floor/carpet/red, /area/city/backstreets_alley) "It" = ( -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/ordeal/steel_dawn, -/turf/open/floor/carpet/black, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/stone{ + color = "#e29eff" + }, /area/city/backstreets_alley) "IN" = ( /obj/structure/closet/crate/freezer/blood, @@ -1280,6 +1346,10 @@ /obj/structure/chair/pew, /turf/open/floor/material, /area/city/backstreets_alley) +"JV" = ( +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/mineral/plastitanium/red, +/area/city/backstreets_alley) "JZ" = ( /obj/structure/table/wood/fancy/red, /turf/open/floor/mineral/plastitanium/red, @@ -1473,13 +1543,10 @@ /turf/open/floor/plasteel/showroomfloor, /area/city/backstreets_alley) "Og" = ( -/obj/structure/chair/pew{ - dir = 8 - }, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, -/turf/open/floor/plasteel/chapel{ - dir = 8 - }, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/humanoid/blood/bag, +/turf/open/floor/plasteel/dark, /area/city/backstreets_alley) "Oo" = ( /obj/structure/fluff/paper/stack, @@ -1555,6 +1622,12 @@ /obj/effect/decal/cleanable/glass, /turf/open/floor/material, /area/city/backstreets_alley) +"QA" = ( +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss, +/turf/open/floor/plasteel/chapel{ + dir = 1 + }, +/area/city/backstreets_alley) "QG" = ( /obj/structure/rack, /obj/effect/decal/cleanable/dirt/dust, @@ -1564,7 +1637,6 @@ /area/city/backstreets_alley) "QR" = ( /obj/structure/curtain/bounty, -/mob/living/simple_animal/hostile/ordeal/steel_dawn, /turf/open/floor/carpet/black, /area/city/backstreets_alley) "Rh" = ( @@ -1595,9 +1667,10 @@ }, /area/city/backstreets_alley) "RG" = ( -/obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/ordeal/steel_dawn, -/turf/open/floor/plasteel/dark, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, +/turf/open/floor/stone{ + color = "#e29eff" + }, /area/city/backstreets_alley) "RN" = ( /obj/structure/mannequin{ @@ -1607,6 +1680,13 @@ color = "#f06979" }, /area/city/backstreets_alley) +"Sb" = ( +/obj/structure/railing{ + dir = 1 + }, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, +/turf/open/floor/material, +/area/city/backstreets_alley) "Sd" = ( /obj/machinery/atmospherics/components/unary/cryo_cell{ plane = 0 @@ -1638,7 +1718,12 @@ /turf/open/floor/carpet/red, /area/city/backstreets_alley) "TK" = ( -/mob/living/simple_animal/hostile/ordeal/indigo_dusk/red, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Button 1 Signal"; + alpha = 10 + }, +/mob/living/simple_animal/hostile/humanoid/blood/fiend/boss, /turf/open/floor/mineral/plastitanium/red, /area/city/backstreets_alley) "TX" = ( @@ -1709,7 +1794,7 @@ /area/city/backstreets_alley) "Vp" = ( /obj/effect/decal/cleanable/dirt/dust, -/mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/plasteel/dark, /area/city/backstreets_alley) "Vz" = ( @@ -1765,7 +1850,7 @@ /turf/open/floor/carpet/black, /area/city/backstreets_alley) "WW" = ( -/mob/living/simple_animal/hostile/ordeal/indigo_noon, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/carpet/red, /area/city/backstreets_alley) "WX" = ( @@ -1816,10 +1901,9 @@ }, /area/city/backstreets_alley) "XT" = ( -/mob/living/simple_animal/hostile/ordeal/indigo_noon, -/turf/open/floor/stone{ - color = "#f06979" - }, +/obj/effect/decal/cleanable/dirt/dust, +/mob/living/simple_animal/hostile/humanoid/blood/fiend, +/turf/open/floor/carpet/black, /area/city/backstreets_alley) "Yr" = ( /turf/open/floor/plasteel/chapel{ @@ -1843,6 +1927,7 @@ /area/city/backstreets_alley) "YA" = ( /obj/structure/table/reinforced, +/obj/structure/curtain/bounty, /turf/open/floor/carpet/black, /area/city/backstreets_alley) "YF" = ( @@ -1863,7 +1948,7 @@ }, /area/city/backstreets_alley) "Zp" = ( -/mob/living/simple_animal/hostile/ordeal/steel_dawn, +/mob/living/simple_animal/hostile/humanoid/blood/bag, /turf/open/floor/plasteel/dark, /area/city/backstreets_alley) "Zt" = ( @@ -2503,7 +2588,7 @@ re BM PD PD -BO +kg RN RN aU @@ -2606,14 +2691,14 @@ tL PD Ld PD -PD +JV re re Rl -XT +re re PD -PD +JV Ld PD PD @@ -2621,17 +2706,17 @@ aU PD Tg Tg -WW +iw +Tg +wq Tg -IU -WW Tg aU IU Tg Tg IU -Lp +jU Tg aU re @@ -2740,7 +2825,7 @@ Tg aU Tg Tg -iw +Tg Tg Tg Tg @@ -2828,11 +2913,11 @@ sw Ld PD kg -PD +JV +re re re re -XT re PD PD @@ -2844,7 +2929,7 @@ PD WW Tg Tg -WW +Tg Tg Tg Tg @@ -2947,7 +3032,7 @@ re PD PD uC -Bt +PD RN RN aU @@ -2960,7 +3045,7 @@ Tg Tg RN aU -Tg +iw Tg Tg Tg @@ -3075,7 +3160,7 @@ aU aU Tg Tg -WW +Tg Tg mv jn @@ -3184,7 +3269,7 @@ oQ Tg RN aU -iw +Tg Tg Tg Tg @@ -3241,8 +3326,8 @@ AF vP gu Yr -gE -ev +QA +Yr gE Pp hF @@ -3271,12 +3356,12 @@ aU IU Tg Tg +iw Tg Tg Tg Tg Tg -iw Tg Tg Tg @@ -3290,7 +3375,7 @@ Tg AW IU Tg -iw +Tg Tg Tg Tg @@ -3364,7 +3449,7 @@ YG YG DC DC -zm +ns DC YG vm @@ -3399,16 +3484,16 @@ Tg Tg IU LB -WW -Tg Tg Tg WW +Tg +Tg IU aU Tg Tg -Tg +WW as aU re @@ -3463,7 +3548,7 @@ jr vP gE Fc -gE +Av Yr rw Yr @@ -3493,8 +3578,8 @@ aU Tg Tg Tg -WW Tg +WW IU aU Tg @@ -3503,7 +3588,7 @@ Tg aU Tg Tg -iw +Tg Tg Lp Tg @@ -3577,7 +3662,7 @@ iA Aa iA Aa -Ae +NS hF sP bz @@ -3603,7 +3688,7 @@ aU aU Tg Tg -IU +wq Tg Tg RN @@ -3614,7 +3699,7 @@ Cd aU RN Tg -Tg +WW Tg Tg Tg @@ -3681,16 +3766,16 @@ YG YG vm bz -cm +JJ vP -wq +bj Yz -pM -Os +zd +Gp pM pF hF -it +sP bz vm YG @@ -3792,14 +3877,14 @@ YG YG vm AF -JJ +fk vP CB iA Oo kW yk -NS +lM hF sP AF @@ -3908,7 +3993,7 @@ jk bj Os pM -Og +Os pM pF hF @@ -4016,7 +4101,7 @@ vm Qa AF vP -CB +fO iA Aa iA @@ -4240,7 +4325,7 @@ hA hA Jj cI -ns +Jj cI Jj cI @@ -4339,7 +4424,7 @@ DC DC DC DC -zm +ns DC DC DC @@ -4379,7 +4464,7 @@ aU re jn jn -EA +jn jn jn jn @@ -4572,12 +4657,12 @@ vm vm vm cN -ur +XT ur cN cN cN -Gp +cN ur cN Xf @@ -4586,7 +4671,7 @@ DC DC DC DC -zm +DC YG YG vm @@ -4683,7 +4768,7 @@ le hA cX cN -It +ur cN cN cN @@ -4731,7 +4816,7 @@ re re jn jn -EA +jn jn re aU @@ -4796,7 +4881,7 @@ vm hA CE cN -Zp +hA vm vm vm @@ -5013,15 +5098,15 @@ YG YG vm en -Vp +WD vm hA cN cN fs vm -hA -Vp +Zp +WD Zu AF vm @@ -5240,10 +5325,10 @@ vm hA cN cN -in +fs Le WD -LY +Og on IN vm @@ -5354,7 +5439,7 @@ cN fs vm hA -ml +hA on yK vm @@ -5459,14 +5544,14 @@ Xf cN ur ur -Gp +cN ur cN fs vm -ml hA -Zu +hA +Sb QG vm YG @@ -5569,13 +5654,13 @@ Ll vm cN cN +Bt ur -ur -cN +CT cN Jt WP -hA +ml WD on tV @@ -5673,7 +5758,7 @@ YG YG DC DC -zm +DC DC YG Uj @@ -5687,7 +5772,7 @@ cN hA vm hA -Bo +LY Lu tV vm @@ -5728,7 +5813,6 @@ jn jn jn jn -EA jn jn jn @@ -5741,7 +5825,8 @@ jn jn jn jn -EA +jn +Ae jn jn jn @@ -5795,9 +5880,9 @@ vm vm hA cN -RG +WD vm -hA +Zp WD Zu tV @@ -5954,14 +6039,14 @@ jn jn jn jn -re -re -re -re -re -re -re -re +aU +aU +aU +aU +aU +aU +aU +io re sb jn @@ -6065,14 +6150,14 @@ jn jn jn jn -re -re -re -re -re -re -re -re +aU +aU +aU +aU +aU +aU +aU +aU re re jn @@ -6127,7 +6212,7 @@ WD xg vm hA -Gp +cN cN Le vm @@ -6176,8 +6261,6 @@ jn jn jn jn -re -re aU aU aU @@ -6185,7 +6268,9 @@ aU aU aU aU -io +aU +re +re jn jn jn @@ -6287,8 +6372,6 @@ jn jn jn jn -re -re aU aU aU @@ -6297,6 +6380,8 @@ aU aU aU aU +re +re jn jn jn @@ -6377,7 +6462,7 @@ aU re jn jn -EA +jn jn jn aU @@ -6398,8 +6483,6 @@ jn jn jn jn -re -re aU aU aU @@ -6408,6 +6491,8 @@ aU aU aU aU +re +re jn jn jn @@ -6509,8 +6594,6 @@ jn jn jn jn -re -re aU aU aU @@ -6519,17 +6602,19 @@ aU aU aU aU -jn -jn -jn -re -re re -re -aU -aU -aU -aU +Vj +Vj +Vj +Vj +Vj +Vj +Vj +Vj +Vj +Vj +Vj +Vj SJ SJ SJ @@ -6620,8 +6705,6 @@ jn jn jn jn -re -re aU aU aU @@ -6631,26 +6714,28 @@ aU aU aU jn -jn -jn -re -re -re -re -re -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +uk "} (44,1,1) = {" aU @@ -6727,12 +6812,10 @@ aU aU re re -EA jn jn jn -re -re +jn aU aU aU @@ -6742,26 +6825,28 @@ aU aU aU jn -jn -jn -re -re -re -re -re -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (45,1,1) = {" aU @@ -6842,8 +6927,6 @@ jn jn jn jn -re -re aU aU aU @@ -6853,26 +6936,28 @@ aU aU aU jn -jn -jn -re -re -re -re -re -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (46,1,1) = {" aU @@ -6953,8 +7038,6 @@ jn jn jn jn -re -re aU aU aU @@ -6964,26 +7047,28 @@ aU aU aU jn -jn -jn -re -re -re -re -re -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (47,1,1) = {" aU @@ -7004,7 +7089,7 @@ DC DC DC DC -zm +DC DC DC DC @@ -7064,8 +7149,6 @@ jn jn jn jn -re -re aU aU aU @@ -7074,27 +7157,29 @@ aU aU aU aU -jn -jn -jn -re -re re -re -re -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (48,1,1) = {" aU @@ -7175,8 +7260,6 @@ jn jn jn jn -re -re aU aU aU @@ -7185,27 +7268,29 @@ aU aU aU aU -jn -jn -re re -re -aU -aU -aU -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (49,1,1) = {" aU @@ -7242,7 +7327,7 @@ YG YG DC DC -zm +DC DC YG YG @@ -7286,8 +7371,6 @@ jn jn jn jn -re -re aU aU aU @@ -7297,26 +7380,28 @@ aU aU aU re -re -re -re -aU -aU -aU -aU -aU -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (50,1,1) = {" aU @@ -7397,9 +7482,6 @@ jn jn jn jn -re -re -aU aU aU aU @@ -7407,27 +7489,30 @@ aU aU aU aU -re -re -re -re -aU aU re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (51,1,1) = {" aU @@ -7498,8 +7583,8 @@ re re aU so -Kj -Tg +in +WW so aU jn @@ -7508,37 +7593,37 @@ jn jn jn jn -re -re -aU -aU aU aU aU aU aU aU -re -re -re -re aU aU re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (52,1,1) = {" aU @@ -7619,9 +7704,6 @@ jn jn jn jn -re -re -aU aU aU aU @@ -7630,26 +7712,29 @@ aU aU aU aU -aU -aU -aU -aU -aU -re -re re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (53,1,1) = {" aU @@ -7732,16 +7817,6 @@ jn jn re re -aU -aU -aU -aU -aU -aU -aU -aU -re -re re re re @@ -7749,18 +7824,28 @@ re re re re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (54,1,1) = {" aU @@ -7820,7 +7905,7 @@ aU re jn jn -EA +jn jn re re @@ -7839,18 +7924,8 @@ re re jn jn -EA jn -re -re -aU -aU -aU -aU -aU -aU -aU -aU +jn re re re @@ -7860,18 +7935,28 @@ re re re re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (55,1,1) = {" aU @@ -7959,30 +8044,30 @@ re re re re -aU -re re re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (56,1,1) = {" aU @@ -8063,8 +8148,6 @@ jn jn jn jn -re -re aU aU aU @@ -8072,28 +8155,30 @@ aU aU aU aU -ip -re -re -re -re -re -re -re -re +io re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (57,1,1) = {" aU @@ -8174,8 +8259,6 @@ jn jn jn jn -jn -jn aU aU aU @@ -8185,26 +8268,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (58,1,1) = {" aU @@ -8285,8 +8370,6 @@ jn jn jn jn -jn -jn aU aU aU @@ -8296,26 +8379,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (59,1,1) = {" aU @@ -8396,8 +8481,6 @@ jn jn jn jn -jn -jn aU aU aU @@ -8407,26 +8490,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (60,1,1) = {" aU @@ -8507,8 +8592,6 @@ jn jn jn jn -re -re aU aU aU @@ -8518,26 +8601,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (61,1,1) = {" aU @@ -8618,8 +8703,6 @@ jn jn jn jn -re -re aU aU aU @@ -8629,26 +8712,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (62,1,1) = {" aU @@ -8729,8 +8814,6 @@ jn jn jn jn -re -re aU aU aU @@ -8739,27 +8822,29 @@ aU aU aU aU -re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +jn +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (63,1,1) = {" aU @@ -8781,7 +8866,7 @@ vm DC DC DC -zm +ns DC YG vm @@ -8840,37 +8925,37 @@ jn jn jn jn -re -re -aU -aU aU aU aU aU aU aU -re -re -re -re -re -re -re -re -re aU aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +jn +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (64,1,1) = {" aU @@ -8951,9 +9036,6 @@ jn jn jn jn -re -re -aU aU aU aU @@ -8961,27 +9043,30 @@ aU aU aU aU -re -re -re -re -re -re -re -re -re -aU aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +jn +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (65,1,1) = {" aU @@ -9062,8 +9147,6 @@ jn jn jn jn -re -re aU aU aU @@ -9072,27 +9155,29 @@ aU aU aU aU -re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +jn +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (66,1,1) = {" aU @@ -9152,7 +9237,7 @@ aU re jn jn -EA +jn jn aU aU @@ -9173,8 +9258,6 @@ jn jn jn jn -re -re aU aU aU @@ -9184,26 +9267,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (67,1,1) = {" aU @@ -9240,7 +9325,7 @@ vm DC DC DC -zm +ns DC YG vm @@ -9284,8 +9369,6 @@ jn jn jn jn -re -re aU aU aU @@ -9295,26 +9378,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (68,1,1) = {" aU @@ -9395,8 +9480,6 @@ jn jn jn jn -re -re aU aU aU @@ -9406,26 +9489,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (69,1,1) = {" aU @@ -9506,37 +9591,37 @@ jn jn jn jn -re -re -aU -aU -aU -aU -aU -aU -aU -aU -re -re -re -re -re -re -re -re -re aU aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +aU +aU +aU +aU +aU +aU +re +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (70,1,1) = {" aU @@ -9617,8 +9702,6 @@ jn jn jn jn -re -re aU aU aU @@ -9628,26 +9711,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (71,1,1) = {" aU @@ -9728,8 +9813,6 @@ jn jn jn jn -re -re aU aU aU @@ -9739,26 +9822,28 @@ aU aU aU re -re -re -re -re -re -re -re -re -aU -aU -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ -SJ +eo +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS +fS "} (72,1,1) = {" aU @@ -10074,7 +10159,7 @@ jn jn jn jn -EA +jn jn jn jn @@ -10158,7 +10243,6 @@ jn jn jn jn -EA jn jn jn @@ -10169,7 +10253,8 @@ jn jn jn jn -EA +jn +jn jn jn jn @@ -10219,7 +10304,7 @@ DC DC DC DC -zm +DC DC DC DC @@ -10353,7 +10438,7 @@ DC DC DC DC -zm +DC DC DC DC @@ -10674,7 +10759,7 @@ vm vm vm vm -Uo +EP cN ur AO @@ -10785,7 +10870,7 @@ vm vm vm vm -Uo +EP ur cN ur @@ -11008,7 +11093,7 @@ vm vm vm Uo -ur +Bt cN Sn vm @@ -11180,7 +11265,7 @@ jn jn jn jn -EA +jn jn jn aU @@ -11323,7 +11408,7 @@ vm YG YG DC -zm +ns DC DC YG @@ -12464,7 +12549,7 @@ DC DC DC DC -zm +ns YG vm vm @@ -12510,7 +12595,7 @@ re re sb jn -EA +jn jn jn re @@ -12988,7 +13073,7 @@ vm YG YG DC -zm +DC DC DC YG @@ -13247,7 +13332,7 @@ vm AO cN ur -Uo +EP vm YG YG @@ -13358,7 +13443,7 @@ Xc ur ur cN -Uo +EP vm YG YG @@ -13468,7 +13553,7 @@ DC vm WU cN -ur +Bt Uo vm YG @@ -13578,7 +13663,7 @@ DC YG vm Sn -ur +Bt cN Uo vm @@ -13733,7 +13818,7 @@ re jn jn jn -EA +jn re aU re @@ -13793,7 +13878,7 @@ vm vm YG DC -zm +DC DC DC DC @@ -14546,7 +14631,7 @@ DC DC DC DC -zm +ns DC DC DC @@ -14619,7 +14704,7 @@ jn jn jn jn -EA +jn jn jn re @@ -14664,7 +14749,7 @@ DC DC DC DC -zm +DC DC DC DC @@ -14707,7 +14792,7 @@ jn jn jn jn -EA +jn jn jn jn @@ -14810,7 +14895,7 @@ re re aU so -Kj +in Tg so aU @@ -14922,7 +15007,7 @@ re aU aU so -so +Bo aU aU re @@ -15379,7 +15464,7 @@ Tg aU re re -EA +jn jn jn jn @@ -15430,7 +15515,7 @@ vm YG YG DC -zm +DC DC DC YG @@ -15481,9 +15566,9 @@ aU Tg Tg Tg -jU Tg Tg +WW Tg RN Tg @@ -15592,7 +15677,7 @@ aU RN Tg Lp -Tg +WW Tg Tg Tg @@ -15702,7 +15787,7 @@ re aU Tg Tg -jU +Tg Tg Tg Tg @@ -16039,7 +16124,7 @@ Tg aU RN Tg -Tg +iw Tg vB aU @@ -16149,7 +16234,7 @@ Tg Tg aU Ha -jU +Tg Tg Tg Cd @@ -16158,7 +16243,7 @@ re re jn jn -EA +jn jn sb jn @@ -16256,7 +16341,7 @@ re re aU uR -Tg +iw Tg aU RN @@ -16483,7 +16568,7 @@ Tg Tg Tg Tg -jU +Tg Tg Tg aU @@ -16701,7 +16786,7 @@ re aU RN Tg -jU +Tg Tg Tg Tg @@ -16712,7 +16797,7 @@ aU jn jn jn -EA +Ae jn jn re @@ -16811,12 +16896,12 @@ re re aU Tg +WW Tg Tg +WW Tg Tg -Tg -jU RN Tg aU @@ -17009,7 +17094,7 @@ vm vm YG DC -zm +DC DC DC YG @@ -17592,7 +17677,7 @@ re re re aU -so +Bo Kj Tg so @@ -17600,7 +17685,7 @@ aU jn jn jn -EA +jn jn jn re @@ -17632,7 +17717,7 @@ re aU aU MI -dA +cm dA dA uu @@ -17705,7 +17790,7 @@ re aU aU so -so +Bo aU aU re @@ -17897,7 +17982,7 @@ DC DC DC DC -zm +DC DC DC YG @@ -17988,7 +18073,7 @@ DC DC DC DC -zm +DC DC DC DC @@ -18947,7 +19032,7 @@ UG UG UG ay -Oa +ev HP wi HP @@ -19039,7 +19124,7 @@ UG UG tJ tJ -Rp +It tJ UG ay @@ -19058,7 +19143,7 @@ UG UG UG ay -Oa +ev wi HP PK @@ -19169,7 +19254,7 @@ UG UG UG ay -Oa +ev HP wi Vz @@ -19546,13 +19631,14 @@ UG tJ tJ tJ -Rp +It +tJ +tJ tJ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -19570,7 +19656,6 @@ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -19885,7 +19970,7 @@ ay pf wi HP -Oa +ev ay UG UG @@ -20107,7 +20192,7 @@ ay PK wi HP -Oa +ev ay UG UG @@ -20216,7 +20301,7 @@ tJ UG ay Vz -HP +vz wi Oa ay @@ -20544,7 +20629,7 @@ ay tJ tJ tJ -Rp +tJ tJ UG ay @@ -20730,7 +20815,7 @@ tJ tJ tJ tJ -Rp +tJ tJ tJ mw @@ -20926,7 +21011,7 @@ tJ tJ tJ tJ -Rp +tJ tJ UG UG @@ -21126,7 +21211,7 @@ Vl tJ tJ tJ -Rp +It tJ tJ ay @@ -21248,7 +21333,7 @@ ay UG UG ay -Rp +RG tJ ay ay @@ -21286,7 +21371,7 @@ ay UG tJ tJ -Rp +tJ tJ UG ay @@ -21377,7 +21462,7 @@ Br HP HP wi -Oa +ev ay UG UG @@ -21488,7 +21573,7 @@ ay PK wi HP -Oa +ev ay UG UG @@ -21986,7 +22071,7 @@ ay ay Dj tJ -Rp +tJ tJ tJ UG @@ -22285,7 +22370,7 @@ pH UG tJ tJ -tJ +It tJ UG UG @@ -22347,7 +22432,6 @@ ay UG tJ tJ -Rp tJ tJ tJ @@ -22356,7 +22440,6 @@ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -22369,7 +22452,9 @@ tJ tJ tJ tJ -Rp +tJ +tJ +tJ tJ UG UG @@ -22617,7 +22702,7 @@ ay ay UG tJ -Rp +tJ tJ tJ UG @@ -23331,7 +23416,7 @@ tJ tJ tJ tJ -Rp +tJ tJ UG UG @@ -23430,7 +23515,7 @@ ay UG tJ tJ -Rp +RG tJ tJ tJ @@ -23811,7 +23896,7 @@ ay ay UG tJ -Rp +RG tJ tJ UG @@ -23839,7 +23924,7 @@ ay UG tJ tJ -Rp +tJ tJ UG ay @@ -24098,7 +24183,7 @@ ay tJ tJ tJ -Rp +tJ ay ay ay @@ -24263,7 +24348,7 @@ ay pf wi HP -Oa +ev ay UG UG @@ -24332,7 +24417,7 @@ ay ay ay tJ -tJ +It tJ tJ tJ @@ -24374,7 +24459,7 @@ Br HP HP wi -Oa +ev ay UG UG @@ -24881,7 +24966,7 @@ tJ tJ tJ tJ -Rp +tJ tJ tJ tJ @@ -25095,7 +25180,7 @@ ay UG tJ tJ -Rp +It tJ UG ay @@ -25123,7 +25208,6 @@ UG tJ tJ tJ -Rp tJ tJ tJ @@ -25150,7 +25234,8 @@ tJ tJ tJ tJ -Rp +tJ +tJ tJ tJ tJ @@ -25278,7 +25363,7 @@ tJ tJ tJ tJ -Rp +RG tJ tJ tJ @@ -25982,7 +26067,7 @@ ay ay UG tJ -Rp +tJ tJ tJ UG @@ -26010,7 +26095,7 @@ Br tJ tJ tJ -Rp +tJ tJ UG ay @@ -26793,7 +26878,6 @@ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -26809,7 +26893,8 @@ tJ tJ tJ tJ -Rp +tJ +tJ tJ tJ tJ @@ -26870,7 +26955,6 @@ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -26883,14 +26967,13 @@ tJ tJ tJ tJ -Rp +It tJ tJ tJ tJ tJ tJ -Rp tJ tJ tJ @@ -26922,7 +27005,9 @@ tJ tJ tJ tJ +RG tJ +BO tJ tJ tJ @@ -27211,7 +27296,7 @@ ay PK wi HP -Oa +ev ay ay ay @@ -27334,7 +27419,7 @@ ay ay ay ay -Oa +ev wi HP pf @@ -27433,7 +27518,7 @@ Br HP wi HP -Oa +ev ay UG ay @@ -27445,7 +27530,7 @@ ay ay UG ay -Oa +ev HP wi HP @@ -27544,7 +27629,7 @@ ay pf wi wi -Oa +ev ay UG ay @@ -27667,7 +27752,7 @@ ay ay UG ay -Oa +ev HP wi Vz @@ -27759,7 +27844,7 @@ ay UG tJ tJ -Rp +tJ tJ UG UG @@ -28781,7 +28866,7 @@ tJ tJ tJ tJ -Rp +tJ tJ tJ tJ @@ -29090,7 +29175,7 @@ ay ay UG tJ -Rp +It tJ tJ UG @@ -29229,7 +29314,7 @@ ay UG tJ tJ -Rp +It tJ mw UG diff --git a/_maps/RandomRooms/backstreetlayout/standard.dmm b/_maps/RandomRooms/backstreetlayout/standard.dmm index 7f08f542cadd..7a5098102a20 100644 --- a/_maps/RandomRooms/backstreetlayout/standard.dmm +++ b/_maps/RandomRooms/backstreetlayout/standard.dmm @@ -12,7 +12,9 @@ /obj/machinery/door/poddoor/shutters/indestructible{ name = "Malfunctioning Backstreets Shutters" }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "az" = ( /obj/machinery/light{ @@ -72,7 +74,9 @@ /obj/structure/fence{ dir = 4 }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "dW" = ( /obj/effect/turf_decal/weather/dirt{ @@ -189,7 +193,9 @@ desc = "An unwavering tv that will never fade."; name = "broken tv?" }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "jU" = ( /obj/machinery/door/poddoor/shutters/indestructible{ @@ -269,7 +275,9 @@ "nE" = ( /obj/item/stack/sheet/mineral/wood, /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "oF" = ( /obj/effect/turf_decal/weather/dirt{ @@ -284,7 +292,9 @@ /obj/structure/fence/corner{ dir = 10 }, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "po" = ( /obj/effect/turf_decal/weather/dirt{ @@ -325,7 +335,9 @@ /area/city/backstreets_alley) "qY" = ( /obj/item/emptysandbag, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "rp" = ( /obj/effect/turf_decal/weather/dirt{ @@ -342,13 +354,6 @@ /obj/effect/turf_decal/weather/dirt, /turf/open/floor/plating/asteroid/basalt, /area/city/backstreets_alley) -"sh" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "si" = ( /obj/effect/portal/permanent{ icon_state = "wooden_tv_broken"; @@ -460,7 +465,9 @@ /area/city/backstreets_alley) "wv" = ( /obj/item/stack/sheet/mineral/wood, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "wJ" = ( /obj/effect/turf_decal/weather/dirt, @@ -494,7 +501,9 @@ /area/city/backstreets_room) "xr" = ( /obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "xC" = ( /obj/effect/turf_decal/weather/dirt{ @@ -525,13 +534,6 @@ /obj/structure/table/wood/fancy, /turf/open/floor/plating/rust, /area/city/backstreets_room) -"zD" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "Ag" = ( /obj/structure/spider/stickyweb/genetic, /obj/effect/decal/cleanable/cobweb, @@ -558,12 +560,22 @@ /mob/living/simple_animal/hostile/retaliate/ghost, /turf/open/floor/plating, /area/city/backstreets_room) +"Cr" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Glitchy Signal"; + alpha = 10 + }, +/turf/open/floor/plating/asteroid/basalt, +/area/city/backstreets_alley) "CD" = ( /obj/structure/fence{ dir = 4 }, /obj/effect/turf_decal/weather/dirt, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "CE" = ( /obj/structure/barricade/sandbags, @@ -591,13 +603,6 @@ /obj/effect/landmark/cratespawn/corpo, /turf/open/floor/plating/rust, /area/city/backstreets_room) -"EH" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 4 - }, -/obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_checkpoint) "Fg" = ( /obj/effect/turf_decal/weather/dirt{ dir = 4 @@ -612,13 +617,6 @@ /obj/structure/table/wood/fancy, /turf/open/floor/plating/rust, /area/city/backstreets_room) -"Gu" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 8 - }, -/obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "GL" = ( /obj/effect/portal/permanent{ icon_state = "wooden_tv_broken"; @@ -726,7 +724,9 @@ /turf/open/floor/plating/rust, /area/city/backstreets_room) "LM" = ( -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Ml" = ( /obj/effect/turf_decal/weather/dirt{ @@ -768,9 +768,15 @@ /obj/structure/barricade/sandbags, /turf/open/floor/plating/asteroid/basalt, /area/city/backstreets_alley) +"OZ" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "Pp" = ( /obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Qb" = ( /obj/effect/portal/permanent{ @@ -806,13 +812,25 @@ }, /turf/open/floor/plating/rust, /area/city/backstreets_room) +"QO" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Glitchy Signal"; + alpha = 10 + }, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, +/area/city/backstreets_alley) "RJ" = ( /obj/effect/spawner/room/backstreets/small_west, /turf/closed/indestructible/reinforced, /area/city/backstreets_room) "RK" = ( /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "RU" = ( /obj/effect/decal/cleanable/dirt/dust, @@ -821,13 +839,6 @@ }, /turf/open/floor/carpet/red, /area/city/backstreets_room) -"Sc" = ( -/obj/effect/turf_decal/weather/dirt{ - dir = 8 - }, -/obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/asteroid/basalt, -/area/city/backstreets_alley) "St" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -852,7 +863,9 @@ "Uc" = ( /obj/structure/barricade/wooden, /obj/structure/barricade/wooden/crude, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Ud" = ( /obj/effect/turf_decal/weather/dirt{ @@ -3488,7 +3501,7 @@ St St St St -Gu +mb aq Uc Uc @@ -3598,7 +3611,7 @@ Xj Xj ZK Xj -Xj +Cr Sx aq Uc @@ -3710,7 +3723,7 @@ Xj Xj Im mb -sh +mb aq Uc Uc @@ -4550,7 +4563,7 @@ oP oP oP oP -Ol +oP oP oP xC @@ -4687,7 +4700,7 @@ oF oF oF kO -xr +LM LM LM Yt @@ -4995,7 +5008,7 @@ Fg Fg Fg Fg -EH +Fg Fg vC Va @@ -5131,7 +5144,7 @@ UZ UZ UZ iW -xr +LM LM LM Yt @@ -5783,7 +5796,7 @@ Xj Xj Xj yv -Xj +Cr Sx iW UZ @@ -7890,7 +7903,7 @@ UZ UZ UZ iW -ZK +Xj Xj Xj iW @@ -8355,14 +8368,14 @@ LM LM LM LM -xr LM LM LM LM LM LM -xr +LM +LM LM LM LM @@ -8735,7 +8748,7 @@ UZ UZ UZ iW -LM +QO LM Yt Yt @@ -8817,7 +8830,7 @@ Yt Kg LM LM -xr +LM iW UZ UZ @@ -8958,7 +8971,7 @@ UZ UZ iW LM -LM +Pp Yt Yt Yt @@ -9127,7 +9140,7 @@ iW iW iW Sx -Xj +Cr yv Xj Xj @@ -9324,7 +9337,7 @@ UZ iW XV Xj -ZK +Xj Xj Xj Xj @@ -9513,7 +9526,7 @@ UZ UZ iW LM -Pp +LM Yt Yt Yt @@ -9705,7 +9718,7 @@ Yt Yt LM LM -xr +LM iW UZ UZ @@ -10322,7 +10335,7 @@ UZ UZ iW XV -ZK +Xj se iW UZ @@ -10517,7 +10530,7 @@ LM LM LM LM -Pp +LM LM iW UZ @@ -10812,7 +10825,7 @@ LM LM LM LM -xr +LM LM LM LM @@ -10840,7 +10853,7 @@ Yt Yt Yt LM -Pp +LM iW UZ UZ @@ -11251,7 +11264,7 @@ UZ UZ iW LM -xr +LM iW UZ UZ @@ -11296,7 +11309,8 @@ UZ iW XV Xj -ux +se +LM LM LM LM @@ -11310,7 +11324,6 @@ LM LM LM LM -Pp LM LM LM @@ -11727,7 +11740,7 @@ Yt Yt Yt Yt -Pp +LM LM iW UZ @@ -11896,7 +11909,6 @@ UZ UZ UZ iW -xr LM LM LM @@ -11907,7 +11919,8 @@ LM LM LM LM -xr +LM +LM LM LM LM @@ -11961,7 +11974,7 @@ UZ UZ iW XV -Eb +Xj se iW UZ @@ -12019,15 +12032,15 @@ iW iW iW LM -xr -iW +LM iW iW iW iW -jv iW iW +LM +Xj iW iW UZ @@ -12136,31 +12149,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +LM +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +OZ "} (102,1,1) = {" Yt @@ -12247,31 +12260,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +LM +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (103,1,1) = {" Yt @@ -12358,6 +12371,33 @@ UZ UZ UZ UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +"} +(104,1,1) = {" UZ UZ UZ @@ -12365,6 +12405,10 @@ UZ UZ UZ UZ +iW +LM +LM +iW UZ UZ UZ @@ -12372,49 +12416,18 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -"} -(104,1,1) = {" -UZ -UZ -UZ -UZ -UZ -UZ -UZ -iW -LM -LM -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -iW -XV -Xj -se -Yt -Yt -Yt -Yt -Yt -Yt -Yt -Yt +iW +XV +Xj +se +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt UZ UZ UZ @@ -12469,31 +12482,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (105,1,1) = {" UZ @@ -12580,31 +12593,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (106,1,1) = {" UZ @@ -12691,31 +12704,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (107,1,1) = {" UZ @@ -12802,31 +12815,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (108,1,1) = {" UZ @@ -12913,31 +12926,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (109,1,1) = {" UZ @@ -13024,31 +13037,31 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (110,1,1) = {" UZ @@ -13129,37 +13142,37 @@ iW iW iW iW -iW -iW -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +iW +iW UZ UZ UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (111,1,1) = {" UZ @@ -13234,7 +13247,7 @@ St St St St -Sc +St St St St @@ -13246,31 +13259,31 @@ iW UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +Xj +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (112,1,1) = {" UZ @@ -13357,31 +13370,31 @@ jv UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +iW +Xj +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (113,1,1) = {" UZ @@ -13469,30 +13482,30 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +iW +iW +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (114,1,1) = {" UZ @@ -13582,28 +13595,28 @@ iW iW vN UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (115,1,1) = {" UZ @@ -13667,41 +13680,9 @@ UZ UZ UZ iW -Pp -LM -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -iW -XV -Xj -se -iW -iW -iW -iW -iW -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +LM +LM +iW UZ UZ UZ @@ -13714,7 +13695,39 @@ UZ UZ UZ UZ +iW +XV +Xj +se +iW +iW +iW +iW +iW +iW UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (116,1,1) = {" UZ @@ -13804,28 +13817,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (117,1,1) = {" UZ @@ -13915,28 +13928,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (118,1,1) = {" UZ @@ -14026,28 +14039,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (119,1,1) = {" UZ @@ -14137,28 +14150,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (120,1,1) = {" UZ @@ -14248,28 +14261,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (121,1,1) = {" UZ @@ -14293,7 +14306,7 @@ UZ iW XV Xj -ux +se iW UZ UZ @@ -14359,28 +14372,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (122,1,1) = {" UZ @@ -14470,28 +14483,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (123,1,1) = {" UZ @@ -14558,9 +14571,9 @@ iW LM LM LM -Pp LM -Pp +LM +LM LM LM LM @@ -14581,28 +14594,28 @@ iW iW iW UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (124,1,1) = {" UZ @@ -14692,28 +14705,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (125,1,1) = {" UZ @@ -14803,28 +14816,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (126,1,1) = {" UZ @@ -14895,47 +14908,47 @@ vE vE vE iW -XV -Xj -se -iW -UZ -UZ -UZ -UZ -iW -Vu -Xj -se -iW -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +XV +Xj +se +iW UZ UZ UZ UZ +iW +Vu +Xj +se +iW UZ UZ UZ UZ UZ UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (127,1,1) = {" UZ @@ -15025,28 +15038,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (128,1,1) = {" UZ @@ -15082,7 +15095,7 @@ St St St St -Sc +St St St lG @@ -15136,28 +15149,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (129,1,1) = {" UZ @@ -15168,7 +15181,7 @@ UZ UZ UZ iW -Pp +LM LM LM LM @@ -15247,28 +15260,28 @@ UZ UZ UZ UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ -UZ +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt +Yt "} (130,1,1) = {" UZ @@ -15764,7 +15777,7 @@ UZ UZ UZ iW -rp +XV Xj se iW @@ -16223,7 +16236,7 @@ UZ UZ iW LM -Pp +LM iW UZ iW @@ -16552,7 +16565,7 @@ iW LM LM LM -Pp +LM LM LM LM @@ -16881,7 +16894,7 @@ iW UZ UZ iW -Pp +LM LM iW UZ @@ -17085,7 +17098,7 @@ Yt Yt Yt LM -Pp +LM Yt Yt Yt @@ -17208,7 +17221,7 @@ UZ UZ iW XV -Eb +Xj se iW UZ @@ -17296,7 +17309,7 @@ LM LM LM LM -Pp +LM LM LM LM @@ -17510,7 +17523,7 @@ Yt Yt Yt Yt -rp +XV Xj se iW @@ -17671,7 +17684,7 @@ St St St St -Sc +Xj St St St @@ -17893,7 +17906,7 @@ Im Im Im Im -zD +Xj Im Im Im @@ -18318,7 +18331,7 @@ UZ UZ iW XV -Eb +Xj se iW UZ @@ -18408,7 +18421,7 @@ UZ UZ iW LM -RK +LM iW UZ UZ @@ -18839,7 +18852,7 @@ LM LM LM LM -RK +LM LM LM XV @@ -18962,7 +18975,7 @@ UZ UZ UZ jv -LM +RK LM iW UZ @@ -19073,7 +19086,7 @@ UZ UZ UZ iW -RK +LM LM iW UZ @@ -19337,7 +19350,7 @@ St St St St -kK +St St St St @@ -19401,7 +19414,7 @@ XV Xj Xj Xj -Zo +Xj Xj Xj Xj @@ -19524,11 +19537,11 @@ Im Im Im Im -dW Im Im Im Im +dW Im Im Im @@ -19556,7 +19569,7 @@ Im Im Im Im -dW +Im Im Im Im @@ -19581,7 +19594,7 @@ Im LM LM LM -RK +LM LM LM LM @@ -19694,7 +19707,7 @@ iW iW iW LM -RK +LM LM iW UZ @@ -20250,7 +20263,7 @@ UZ iW LM LM -RK +LM Yt Yt Yt @@ -20278,7 +20291,7 @@ UZ UZ UZ iW -RK +LM LM iW UZ @@ -20450,7 +20463,7 @@ Yt Yt UZ iW -RK +LM LM iW UZ @@ -20804,7 +20817,7 @@ UZ UZ iW LM -RK +LM LM Yt Yt @@ -20955,7 +20968,7 @@ LM LM LM LM -RK +LM LM LM LM @@ -21360,7 +21373,7 @@ UZ iW RK LM -RK +LM Yt Yt Yt @@ -21422,7 +21435,7 @@ Xj Xj Xj yv -Xj +Cr Sx iW XV @@ -21470,7 +21483,7 @@ UZ UZ iW LM -RK +LM LM Yt Yt @@ -21648,7 +21661,7 @@ Xj Xj iW Vu -Zo +Xj se iW UZ @@ -21795,7 +21808,7 @@ LM LM LM LM -RK +LM iW UZ UZ @@ -22136,7 +22149,7 @@ UZ UZ iW LM -RK +LM LM iW UZ @@ -22181,7 +22194,7 @@ UZ UZ iW LM -RK +LM iW UZ UZ @@ -22359,7 +22372,7 @@ UZ iW LM LM -RK +LM iW UZ UZ @@ -22509,6 +22522,8 @@ iW LM LM LM +RK +LM LM LM LM @@ -22522,7 +22537,6 @@ LM LM LM LM -RK LM LM LM @@ -22532,7 +22546,6 @@ LM LM LM LM -RK LM LM XV @@ -22623,7 +22636,7 @@ LM LM LM LM -RK +LM LM LM LM @@ -23013,7 +23026,7 @@ iW iW iW iW -RK +LM LM iW iW @@ -23313,7 +23326,6 @@ UZ UZ iW Ik -dW Im Im Im @@ -23325,7 +23337,8 @@ Im Im Im Im -dW +Im +Im Im Im Xj @@ -24286,7 +24299,7 @@ Yt Yt Yt LM -RK +LM iW UZ UZ @@ -25285,7 +25298,7 @@ Yt Yt Yt LM -LM +RK iW iW iW @@ -25850,7 +25863,7 @@ UZ UZ iW LM -RK +LM iW iW iW @@ -26300,7 +26313,7 @@ UZ iW Xj Xj -Xj +Cr Xj Xj iW @@ -27757,7 +27770,7 @@ Yt LM LM LM -RK +LM LM LM LM @@ -28181,7 +28194,7 @@ UZ UZ iW LM -RK +LM iW iW iW @@ -28409,7 +28422,7 @@ LM LM LM LM -RK +LM LM LM LM diff --git a/_maps/RandomRooms/backstreetlayout/tunnels_backstreets.dmm b/_maps/RandomRooms/backstreetlayout/tunnels_backstreets.dmm index d01d75c2e541..c4af62c1c072 100644 --- a/_maps/RandomRooms/backstreetlayout/tunnels_backstreets.dmm +++ b/_maps/RandomRooms/backstreetlayout/tunnels_backstreets.dmm @@ -43,7 +43,9 @@ /turf/open/water/jungle, /area/city/backstreets_alley) "it" = ( -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "iz" = ( /obj/structure/table/reinforced, @@ -99,7 +101,9 @@ /area/city/backstreets_alley) "qO" = ( /obj/effect/landmark/backstreetspawnwest, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "re" = ( /obj/structure/table/reinforced, @@ -113,6 +117,14 @@ /obj/structure/flora/rock/pile/largejungle, /turf/open/water/jungle, /area/city/backstreets_alley) +"rU" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Mining Signal"; + alpha = 10 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/city/backstreets_room) "sb" = ( /obj/effect/spawner/room/backstreets/pointofinterest, /turf/closed/indestructible/reinforced, @@ -197,7 +209,9 @@ /area/city/backstreets_alley) "DT" = ( /obj/effect/landmark/backstreetspawn, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "Eh" = ( /obj/effect/spawner/room/backstreets/small_east, @@ -271,7 +285,9 @@ /area/city/backstreets_alley) "QD" = ( /obj/effect/landmark/backstreetspawneast, -/turf/open/floor/plating/dirt/jungle/dark, +/turf/open/floor/plating/dirt/jungle/dark{ + slowdown = 0 + }, /area/city/backstreets_alley) "RN" = ( /turf/open/floor/plasteel/rockvault, @@ -306,6 +322,10 @@ /obj/effect/spawner/room/backstreets/bossroom, /turf/closed/indestructible/reinforced, /area/city/backstreets_room) +"Xb" = ( +/obj/effect/spawner/room/village_spawner, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_room) "Zj" = ( /obj/structure/table/reinforced, /obj/item/pickaxe/mini, @@ -799,7 +819,7 @@ kn kn kn kn -iZ +kn kn iZ kn @@ -1166,7 +1186,7 @@ ij ij Es kn -iZ +kn kn kn CI @@ -1621,7 +1641,7 @@ CI CI CI kn -iZ +kn kn MW CI @@ -1794,7 +1814,7 @@ kn kn kn kn -iZ +kn iZ kn kn @@ -2265,7 +2285,7 @@ kn kn kn kn -iZ +kn kn kn kn @@ -2535,7 +2555,7 @@ CI MW it DT -iZ +kn MW hv hv @@ -2822,7 +2842,7 @@ hv CI RN RN -Ln +rU ne CI kn @@ -3007,7 +3027,7 @@ hv hv hv MW -iZ +kn kn kn MW @@ -3119,7 +3139,7 @@ BD BD MW kn -iZ +kn kn MW hv @@ -3605,7 +3625,7 @@ kn kn kn kn -iZ +kn kn kn kn @@ -3682,7 +3702,7 @@ MW hv hv MW -iZ +kn kn kn MW @@ -3794,7 +3814,7 @@ hv hv MW kn -iZ +kn kn MW hv @@ -3845,7 +3865,7 @@ MW MW MW kn -iZ +kn kn kn kn @@ -3956,7 +3976,7 @@ hv hv MW kn -iZ +kn kn kn kn @@ -5999,7 +6019,7 @@ BD MW kn kn -iZ +kn kn MW hv @@ -6830,7 +6850,7 @@ CI CI CI kn -iZ +kn kn CI CI @@ -7800,7 +7820,7 @@ kn kn kn kn -iZ +kn kn kn kn @@ -8949,7 +8969,7 @@ bm BD MW it -qO +it it CI CI @@ -9171,7 +9191,7 @@ hv hv MW it -qO +it it it it @@ -9746,7 +9766,7 @@ it it it it -qO +it it CI CI @@ -10841,7 +10861,7 @@ it it it it -qO +it it it it @@ -11158,8 +11178,8 @@ ij ij Es kn -qo -qo +kn +kn MW hv hv @@ -12067,7 +12087,7 @@ hv hv MW kn -qo +kn kn CI CI @@ -12178,7 +12198,7 @@ hv hv MW kn -qo +kn kn CI CI @@ -13041,7 +13061,7 @@ hv MW MW kn -qo +kn kn kn kn @@ -13152,7 +13172,7 @@ MW MW kn kn -qo +kn kn kn kn @@ -13954,7 +13974,7 @@ kn kn kn kn -qo +kn kn Es ij @@ -14258,7 +14278,7 @@ BD BD MW kn -qo +kn kn MW MW @@ -14369,7 +14389,7 @@ BD MW MW kn -qo +kn kn kn kn @@ -15388,7 +15408,7 @@ CI CI CI EQ -qo +kn kn kn CI @@ -16383,7 +16403,7 @@ kn kn kn kn -qo +kn kn kn kn @@ -16595,7 +16615,7 @@ CI CI CI kn -qo +kn kn MW hv @@ -16995,7 +17015,7 @@ CI MW it kn -iZ +kn kn MW MW @@ -17026,7 +17046,7 @@ CI CI CI kn -qo +kn kn MW BD @@ -17617,7 +17637,7 @@ kn kn MW kn -qo +kn kn kn kn @@ -18141,7 +18161,7 @@ kn kn kn qo -qo +kn kn MW BD @@ -19105,7 +19125,7 @@ hv hv MW kn -iZ +kn kn MW MW @@ -19175,7 +19195,7 @@ kn kn kn kn -qo +kn MW ij ij @@ -19286,7 +19306,7 @@ kn kn kn kn -qo +kn Es ij ij @@ -19335,7 +19355,7 @@ kn kn kn kn -iZ +kn kn MW MW @@ -20265,7 +20285,7 @@ Vd BD MW kn -qo +kn kn CI CI @@ -20339,7 +20359,7 @@ kn kn MW kn -iZ +kn kn kn kn @@ -21055,8 +21075,8 @@ CI MW kn kn -qo -qo +kn +kn kn kn kn @@ -21979,7 +21999,7 @@ BD BD MW it -Qk +kn kn kn MW @@ -22149,7 +22169,7 @@ kn kn kn qo -qo +kn kn kn kn @@ -23988,7 +24008,7 @@ MW kn kn kn -Qk +kn kn kn kn @@ -24491,7 +24511,7 @@ kn kn kn kn -Qk +kn kn kn kn @@ -24682,7 +24702,7 @@ hv hv MW kn -kn +Qk kn MW hv @@ -24780,20 +24800,20 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW MW kn -Qk +kn kn MW hv @@ -24892,17 +24912,17 @@ hv hv hv MW -MW -MW -MW -MW -MW -MW -MW -MW -MW -MW -MW +it +it +it +it +it +it +kn +kn +kn +kn +kn kn kn kn @@ -24914,7 +24934,7 @@ hv hv hv MW -Qk +kn kn kn CI @@ -24976,7 +24996,7 @@ BD BD MW kn -Qk +kn kn CI CI @@ -25006,9 +25026,9 @@ MW it it it +QD it -it -it +kn kn kn kn @@ -25117,8 +25137,8 @@ MW it it it -QD -it +kn +kn kn kn kn @@ -25225,20 +25245,20 @@ MW hv hv MW -it -QD -it -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW +MW MW hv hv @@ -25335,28 +25355,28 @@ kn MW hv hv -MW -it -it -kn -MW CI CI CI CI CI CI -Eh -kn -kn -kn -MW -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +Xb MW kn kn @@ -25444,12 +25464,7 @@ kn kn kn MW -hv -hv MW -it -kn -kn MW CI CI @@ -25458,16 +25473,21 @@ CI CI CI CI -kn -kn -kn -MW -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -25554,14 +25574,24 @@ kn kn kn kn -MW -MW -MW -MW -it kn kn -MW +kn +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI CI CI CI @@ -25569,16 +25599,6 @@ CI CI CI CI -kn -kn -kn -MW -hv -hv -hv -hv -hv -hv MW kn kn @@ -25615,7 +25635,7 @@ CI CI kn kn -Qk +kn MW hv hv @@ -25668,11 +25688,6 @@ kn kn kn kn -kn -kn -kn -kn -MW CI CI CI @@ -25680,16 +25695,21 @@ CI CI CI CI -kn -kn -kn -MW -MW -MW -MW -MW -MW -MW +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -25779,11 +25799,6 @@ kn kn kn kn -kn -kn -kn -kn -MW CI CI CI @@ -25791,17 +25806,22 @@ CI CI CI CI -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +MW kn kn kn @@ -25884,35 +25904,35 @@ hv hv hv MW -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn MW -hv -hv -hv -hv -hv -hv +MW +MW MW kn kn -kn -kn -kn -kn -kn -kn -kn -kn -kn +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +MW kn kn kn @@ -25994,20 +26014,6 @@ hv hv hv hv -MW -MW -MW -MW -MW -MW -MW -MW -kn -kn -kn -MW -hv -hv hv hv hv @@ -26015,15 +26021,29 @@ hv MW MW kn -kn -kn -kn -kn -kn -kn -kn -kn -kn +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +MW kn kn kn @@ -26110,30 +26130,30 @@ hv hv hv hv -hv -hv MW -kn -kn -kn MW -hv CI CI CI CI CI CI -EQ -MW -MW -MW -kn -kn -kn -MW -MW -MW +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26223,12 +26243,6 @@ hv hv hv hv -MW -kn -kn -kn -MW -hv CI CI CI @@ -26236,15 +26250,21 @@ CI CI CI CI -hv -hv -MW -kn -kn -kn -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn Qk @@ -26334,12 +26354,6 @@ CI CI CI CB -MW -kn -kn -kn -MW -hv CI CI CI @@ -26347,15 +26361,21 @@ CI CI CI CI -hv -hv -MW -kn -kn -kn -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26445,12 +26465,6 @@ CI CI CI CI -kn -kn -kn -kn -MW -hv CI CI CI @@ -26458,15 +26472,21 @@ CI CI CI CI -hv -MW -MW -kn -kn -kn -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26556,12 +26576,6 @@ CI CI CI CI -kn -kn -kn -kn -MW -MW CI CI CI @@ -26569,15 +26583,21 @@ CI CI CI CI -MW -MW -kn -Qk -kn -kn -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26667,28 +26687,28 @@ CI CI CI CI -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -Qk -kn -kn -kn -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26749,7 +26769,7 @@ hv hv MW kn -Qk +kn kn CI CI @@ -26778,28 +26798,28 @@ CI CI CI CI -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -MW -MW -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26860,7 +26880,7 @@ BD hv MW kn -Qk +kn kn CI CI @@ -26889,28 +26909,28 @@ CI CI CI CI -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -kn -MW -MW -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -26945,7 +26965,7 @@ CI CI CI CI -Qk +kn kn kn MW @@ -27000,9 +27020,6 @@ kn kn kn kn -kn -kn -kn CI CI CI @@ -27012,16 +27029,19 @@ CI CI CI CI -cj -MW -MW -MW -MW -MW -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27111,9 +27131,6 @@ kn kn kn kn -kn -Qk -kn CI CI CI @@ -27124,15 +27141,18 @@ CI CI CI CI -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27222,9 +27242,6 @@ kn kn kn kn -kn -kn -kn CI CI CI @@ -27235,15 +27252,18 @@ CI CI CI CI -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27333,9 +27353,6 @@ CI MW MW MW -MW -MW -MW CI CI CI @@ -27346,15 +27363,18 @@ CI CI CI CI -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27444,9 +27464,6 @@ CI hv hv hv -hv -hv -hv CI CI CI @@ -27457,15 +27474,18 @@ CI CI CI CI -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27555,9 +27575,6 @@ CI hv hv hv -hv -hv -hv CI CI CI @@ -27568,15 +27585,18 @@ CI CI CI CI -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27660,38 +27680,38 @@ kn hZ RN RN -Ln +rU ne CI hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn -Qk +kn CI CI CI @@ -27777,28 +27797,28 @@ CI hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27888,28 +27908,28 @@ CI hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -27999,28 +28019,28 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn @@ -28110,35 +28130,34 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW kn kn kn kn kn -Qk kn kn kn @@ -28161,7 +28180,8 @@ kn kn kn kn -Qk +kn +kn kn kn kn @@ -28221,28 +28241,28 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI MW MW MW @@ -28332,28 +28352,28 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI hv hv hv @@ -28443,28 +28463,28 @@ hv hv hv hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv -hv +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI +CI hv hv hv diff --git a/_maps/RandomRooms/backstreets/bossroom/clan_stronghold.dmm b/_maps/RandomRooms/backstreets/bossroom/clan_stronghold.dmm index ed69490a4f01..35be703d23ac 100644 --- a/_maps/RandomRooms/backstreets/bossroom/clan_stronghold.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/clan_stronghold.dmm @@ -493,6 +493,14 @@ /obj/effect/spawner/lootdrop/garbage_spawner, /turf/open/floor/plasteel/dark, /area/city/backstreets_room) +"tK" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Ordering Signal"; + alpha = 10 + }, +/turf/open/floor/carpet/black, +/area/city/backstreets_room) "tM" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 8 @@ -1262,7 +1270,7 @@ bY eO zX xO -VT +tK ZG ug nA diff --git a/_maps/RandomRooms/backstreets/bossroom/flame_fixer.dmm b/_maps/RandomRooms/backstreets/bossroom/flame_fixer.dmm index a814ad3a2cbd..f4db0135de61 100644 --- a/_maps/RandomRooms/backstreets/bossroom/flame_fixer.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/flame_fixer.dmm @@ -96,8 +96,12 @@ dir = 7 }, /mob/living/simple_animal/hostile/humanoid/fixer/flame{ - name = "Sanguine Flame"; - health = 2500 + return_to_origin = 1 + }, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Flaming Signal"; + alpha = 10 }, /turf/open/floor/wood, /area/city/backstreets_room) diff --git a/_maps/RandomRooms/backstreets/bossroom/gcorp.dmm b/_maps/RandomRooms/backstreets/bossroom/gcorp.dmm index 07f50f4c428a..7578e946d880 100644 --- a/_maps/RandomRooms/backstreets/bossroom/gcorp.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/gcorp.dmm @@ -115,6 +115,11 @@ /area/city/backstreets_room) "Eb" = ( /mob/living/simple_animal/hostile/ordeal/steel_dusk, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Clicking Signal"; + alpha = 10 + }, /turf/open/floor/plasteel/dark, /area/city/backstreets_room) "EQ" = ( diff --git a/_maps/RandomRooms/backstreets/bossroom/jacques.dmm b/_maps/RandomRooms/backstreets/bossroom/jacques.dmm index bb12f3ff1574..dfd40bdd09e7 100644 --- a/_maps/RandomRooms/backstreets/bossroom/jacques.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/jacques.dmm @@ -322,7 +322,13 @@ /area/city/backstreets_room) "Ka" = ( /mob/living/simple_animal/hostile/ordeal/indigo_dusk/red{ - name = "\proper Lieutenant Maledy" + name = "\proper Lieutenant Maledy"; + return_to_origin = 1 + }, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Sweeping Signal"; + alpha = 10 }, /turf/open/indestructible/necropolis/air, /area/city/backstreets_room) diff --git a/_maps/RandomRooms/backstreets/bossroom/metal_fixer.dmm b/_maps/RandomRooms/backstreets/bossroom/metal_fixer.dmm index 0865f3489b8e..7e403f988b92 100644 --- a/_maps/RandomRooms/backstreets/bossroom/metal_fixer.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/metal_fixer.dmm @@ -41,9 +41,12 @@ "h" = ( /obj/effect/decal/cleanable/dirt/dust, /mob/living/simple_animal/hostile/humanoid/fixer/metal{ - name = "Memory Forger"; - health = 2000; - maxHealth = 2000 + return_to_origin = 1 + }, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Metal Signal"; + alpha = 10 }, /turf/open/floor/plating/ashplanet/ash, /area/city/backstreets_room) diff --git a/_maps/RandomRooms/backstreets/bossroom/robot.dmm b/_maps/RandomRooms/backstreets/bossroom/robot.dmm index d668094b3c0b..60d7bc7c01cc 100644 --- a/_maps/RandomRooms/backstreets/bossroom/robot.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/robot.dmm @@ -17,6 +17,11 @@ /area/city/backstreets_room) "vv" = ( /mob/living/simple_animal/hostile/ordeal/green_dusk, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Mechanical Signal"; + alpha = 10 + }, /turf/open/floor/circuit/green, /area/city/backstreets_room) "vT" = ( diff --git a/_maps/RandomRooms/backstreets/bossroom/slime_office.dmm b/_maps/RandomRooms/backstreets/bossroom/slime_office.dmm index ce16fb306c5d..f7ba036930f1 100644 --- a/_maps/RandomRooms/backstreets/bossroom/slime_office.dmm +++ b/_maps/RandomRooms/backstreets/bossroom/slime_office.dmm @@ -649,6 +649,16 @@ color = "#42f545" }, /area/city/backstreets_room) +"sS" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Slimy Signal"; + alpha = 10 + }, +/turf/open/floor/plasteel/shuttle{ + color = "#42f545" + }, +/area/city/backstreets_room) "sY" = ( /obj/structure/plaque/static_plaque{ pixel_x = 32 @@ -1979,7 +1989,7 @@ us us us kK -iE +sS us ci HV diff --git a/_maps/RandomRooms/backstreets/pointofinterest/lcorp.dmm b/_maps/RandomRooms/backstreets/pointofinterest/lcorp.dmm index a4588bd673f0..e044b1a8acc8 100644 --- a/_maps/RandomRooms/backstreets/pointofinterest/lcorp.dmm +++ b/_maps/RandomRooms/backstreets/pointofinterest/lcorp.dmm @@ -512,6 +512,14 @@ "LN" = ( /turf/open/floor/facility/dark, /area/city/backstreets_room) +"LZ" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Power Signal"; + alpha = 10 + }, +/turf/open/floor/carpet/red, +/area/city/backstreets_room) "Mi" = ( /obj/structure/reagent_dispensers/water_cooler, /obj/effect/decal/cleanable/dirt, @@ -1261,7 +1269,7 @@ ZW hQ VK HX -vV +LZ hQ VK vV diff --git a/_maps/RandomRooms/backstreets/pointofinterest/love_train.dmm b/_maps/RandomRooms/backstreets/pointofinterest/love_train.dmm index 646b684ff583..6d7b0fa56dfd 100644 --- a/_maps/RandomRooms/backstreets/pointofinterest/love_train.dmm +++ b/_maps/RandomRooms/backstreets/pointofinterest/love_train.dmm @@ -268,7 +268,14 @@ /turf/closed/mineral/ash_rock, /area/city/backstreets_room) "Bd" = ( -/mob/living/simple_animal/hostile/lovetown/abomination, +/mob/living/simple_animal/hostile/lovetown/abomination{ + return_to_origin = 1 + }, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Loving Signal"; + alpha = 10 + }, /turf/open/floor/carpet/blue, /area/city/backstreets_room) "BJ" = ( diff --git a/_maps/RandomRooms/backstreets/pointofinterest/n_corp.dmm b/_maps/RandomRooms/backstreets/pointofinterest/n_corp.dmm index c541e84f1b12..256830513ad2 100644 --- a/_maps/RandomRooms/backstreets/pointofinterest/n_corp.dmm +++ b/_maps/RandomRooms/backstreets/pointofinterest/n_corp.dmm @@ -32,6 +32,16 @@ /obj/item/ego_weapon/city/ncorp_mark/white, /turf/open/floor/wood, /area/city/backstreets_room) +"cC" = ( +/obj/item/chair/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Religious Signal"; + alpha = 10 + }, +/turf/open/floor/wood, +/area/city/backstreets_room) "dq" = ( /obj/item/bodypart/l_leg/robot{ pixel_x = -6; @@ -1108,7 +1118,7 @@ Po (16,1,1) = {" hB eP -ff +cC cA rV ff diff --git a/_maps/RandomRooms/backstreets/pointofinterest/robot_city.dmm b/_maps/RandomRooms/backstreets/pointofinterest/robot_city.dmm index 7e2ef7460dd6..194d6d41d0f1 100644 --- a/_maps/RandomRooms/backstreets/pointofinterest/robot_city.dmm +++ b/_maps/RandomRooms/backstreets/pointofinterest/robot_city.dmm @@ -88,6 +88,14 @@ /obj/effect/spawner/lootdrop/space/fancytech, /turf/open/floor/engine, /area/city/backstreets_room) +"hA" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Factory Signal"; + alpha = 10 + }, +/turf/open/floor/engine, +/area/city/backstreets_room) "iv" = ( /mob/living/simple_animal/hostile/ordeal/green_bot{ name = "clerk bot" @@ -1552,7 +1560,7 @@ Zw Zw Zw Zw -Zw +hA Zw Zw zZ diff --git a/_maps/RandomRooms/backstreets/pointofinterest/scorp_vault.dmm b/_maps/RandomRooms/backstreets/pointofinterest/scorp_vault.dmm index 25f8843d2103..703d8c44b884 100644 --- a/_maps/RandomRooms/backstreets/pointofinterest/scorp_vault.dmm +++ b/_maps/RandomRooms/backstreets/pointofinterest/scorp_vault.dmm @@ -219,6 +219,11 @@ /area/city/backstreets_room) "Ac" = ( /obj/structure/rack, +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Shrimple Signal"; + alpha = 10 + }, /turf/open/floor/plasteel/vaporwave, /area/city/backstreets_room) "Av" = ( diff --git a/_maps/RandomRooms/backstreets/resurgence_village.dmm b/_maps/RandomRooms/backstreets/resurgence_village.dmm new file mode 100644 index 000000000000..66e6698c239e --- /dev/null +++ b/_maps/RandomRooms/backstreets/resurgence_village.dmm @@ -0,0 +1,1707 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aK" = ( +/obj/structure/flora/junglebush/c, +/obj/machinery/fish_market, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"bO" = ( +/obj/structure/fluff/paper/stack{ + dir = 4 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"cf" = ( +/obj/structure/bonfire/prelit, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"cr" = ( +/obj/structure/table/wood, +/obj/item/taperecorder/empty, +/obj/structure/fluff/paper, +/obj/item/tape/resurgence/solution, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"dS" = ( +/obj/structure/flora/ausbushes/fullgrass, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"er" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"eU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"fd" = ( +/obj/structure/table/wood, +/obj/item/food/grown/cannabis, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"fP" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_1"; + icon_state = "clan_citzen_1"; + dir = 1; + greeting_line = "Oh... Salutations Human."; + question2 = "Why are you not attacking me?"; + question3 = "Who are your leaders?"; + answers2 = list("Oh, You must have gotten the wrong idea.", "This clan was never about killing or hunting humans.", "It is just that one of our Elders has gone a bit rogue.", "Tinkerer is their name, They have quite a strange hatred for the city...", "However the Weaver and the Historian remain sane.", "Still leading this dream of ours."); + answers3 = list("Do you mean the Elders?","We used to have 3 of them.","The Tinkerer, The Historian and The Weaver","However, Tinkerer is a bit of a mess right now, They have left.","The Historian is currently incharge of leading expeditions like these.", "While the Weaver is staying back at our village, Keeping watch over us and protecting us."); + answers1 = list("You may call me Comander Julian", "The one assigned by the Historian to lead this outpost.", "Currently waiting for the Historian to report back to us with our next orders."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"hc" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/structure/sign/poster/official/smile{ + pixel_x = -32 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"hA" = ( +/obj/structure/flora/rock/pile, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"is" = ( +/obj/structure/chair/sofa/corp/left, +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_3"; + icon_state = "clan_citzen_3"; + question3 = "What is this mask you are wearing?"; + question2 = "Why are you waiting here?"; + answers1 = list("Well, You may ca-all me Paul!","I am a-a collector of so-orts...","So, I colle-ect tech from the outski-irts.", "And I store the-em here!"); + answers2 = list("Well, Right no-ow I am a break", "I was a-able to ma-ake a good ha-aul today", "I think I deserve one."); + answers3 = list("Oh? Thi-is silly thing?", "Emote: taps their mask", "Fou-und it in the ruins.", "Loo-oked cool, and it he-elps me see i-in the dark.", "So tha-at is why I a-am keeping it."); + greeting_line = "Oh! Ni-ice meeting you hu-uman!"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"kL" = ( +/turf/closed/indestructible/rock, +/area/city/backstreets_room/resurgence_village) +"ly" = ( +/obj/structure/riser/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"lG" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"mA" = ( +/obj/structure/table/wood, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"mT" = ( +/obj/structure/chair/sofa/corp/right, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + maxHealth = 2400; + health = 2400 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"mU" = ( +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"of" = ( +/turf/closed/indestructible/rock, +/area/space) +"pn" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"ps" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_room/resurgence_village) +"pN" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"qp" = ( +/obj/effect/turf_decal/raven/nine, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"qM" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"qU" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"ra" = ( +/obj/item/gps/mining{ + anchored = 1; + gpstag = "Robotic Signal"; + alpha = 10 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"rk" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/brown, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"rx" = ( +/obj/structure/curtain/cloth, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"rF" = ( +/obj/structure/mineral_door/wood, +/obj/effect/turf_decal/siding/blue/end, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"si" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"sT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"tF" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"tR" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"tT" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"ua" = ( +/obj/structure/flora/rock/jungle, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"uM" = ( +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/structure/lootcrate/workshopallas, +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"vh" = ( +/obj/structure/chair/plastic{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_6"; + icon_living = "clan_citzen_6"; + answers1 = list("...","Ca-all me Herring.", "I am but an old fi-sher who rests here...", "Once I fi-ished in the gre-eat lake...", "No-ow I fi-ish in simple ponds."); + question2 = "What are you buying?"; + answers2 = list("Hm...", "Bri-ing me so-ome fish of stra-ange origins", "I-it has been a long time si-ince I have seen some..."); + greeting_line = "Greetings..."; + selling_answer = list("I o-only have a fe-ew tools to spare...","Bu-ut you ma-ay ta-ake a look...", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Ni-ice catch..."; + poor_say = "Lo-ooks li-ike you still need "; + sold_say = "Ve-ery well, Ta-ake it."; + selling_item_1 = /obj/item/fishing_component/line/clan; + selling_item_1_name = "Resurgence Clan Fishing Line Reel (600 ahn)"; + selling_item_2_name = "Resurgence Clan Fishing Net (800 ahn)"; + selling_item_2 = /obj/item/fishing_net/resurgence; + cost_1 = 600; + cost_2 = 800; + selling_end = "Ve-ery well..."; + return_to_origin = 1; + city_faction = 0; + level_1 = list(/obj/item/food/fish/siltcurrent, /obj/item/food/fish/fresh_water/mosb, /obj/item/food/fish/fresh_water/yin, /obj/item/food/fish/fresh_water/yang, /obj/item/food/fish/salt_water/fishmael, /obj/item/food/fish/salt_water/piscine_mermaid, /obj/item/food/fish/salt_water/tuna_pallid); + level_2 = list(); + level_3 = list(); + dir = 4; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"vk" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"vC" = ( +/mob/living/simple_animal/hostile/clan/drone/village{ + faction = list("village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"wD" = ( +/obj/effect/turf_decal/raven/seven, +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"xs" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"xt" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"yk" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/effect/turf_decal/raven/one, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"yp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"yt" = ( +/obj/structure/flora/rock/pile, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/obj/effect/landmark/cratespawn, +/obj/effect/landmark/cratespawn, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"yx" = ( +/obj/structure/flora/rock/pile/largejungle, +/turf/open/water/jungle, +/area/city/backstreets_room/resurgence_village) +"zm" = ( +/obj/structure/flora/rock/pile, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"zv" = ( +/obj/structure/mineral_door/wood, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Bc" = ( +/obj/structure/water_source{ + desc = "A well constructed of stone and wood. From where does it draw water?"; + icon_state = "wishwell"; + name = "well"; + density = 1; + icon = 'ModularTegustation/Teguicons/toolabnormalities.dmi'; + pixel_y = -3 + }, +/turf/open/floor/plating/dirt/jungle/wasteland, +/area/city/backstreets_room/resurgence_village) +"Be" = ( +/obj/structure/curtain/cloth, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Bm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"BP" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"BZ" = ( +/obj/structure/riser/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Ci" = ( +/obj/structure/curtain/cloth, +/turf/closed/indestructible/fakeglass, +/area/city/backstreets_room/resurgence_village) +"Cq" = ( +/obj/structure/sign/poster/contraband/borg_fancy_2, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_alley) +"CB" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"CD" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"CU" = ( +/obj/effect/turf_decal/raven/nine, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = -16; + anchored = 1 + }, +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_alley) +"Dm" = ( +/obj/structure/sign/poster/contraband/borg_fancy_1, +/turf/closed/indestructible/reinforced, +/area/city/backstreets_alley) +"Du" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"EY" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 1; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"FD" = ( +/obj/structure/curtain/cloth, +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Gx" = ( +/obj/effect/turf_decal/weather/dirt{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_living = "clan_citzen_4"; + icon_state = "clan_citzen_4"; + can_sell = 0; + level_2 = list(/obj/item/book/granter/action/skill); + level_1 = null; + level_3 = null; + question3 = "What are you collecting?"; + answers3 = list("Oh!, I am gathering books...", "Specifically books from the city.", "They should be called 'Skill Books?'", "If you find any, I am willing to buy them from you."); + dir = 4; + greeting_line = "Oh my! Greetings human!"; + question2 = "How did all of you get here?"; + answers1 = list("Well, You may call me Lorenzo", "I am one of the Historian's scholars.", "Just examining and studying the city..."); + answers2 = list("That is thanks to our Elders", "They... The Tinkerer found a way to teleport an outpost great distances.", "So the other Elders are currently using this tech to send us closer to the City."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"HN" = ( +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"Id" = ( +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_trader"; + icon_living = "clan_citzen_trader"; + answers1 = list("Well, Yo-ou may call me Ronan.","Currently, I am ru-unning this humble sho-op for passerbys li-ike you!"); + question2 = "What are you buying?"; + answers2 = list("A-as of now...", "I am willi-ing to buy robotic components.", "You kno-ow those weird bo-ots which are ru-unning around, guns or spe-ears for hands?", "I heard tha-at their parts are quite u-useful.", "Also, The outskirts wo-ould be better off without the-em."); + greeting_line = "Hm... We-elcome cu-ustomer."; + selling_answer = list("Le-et me take a lo-ook...","I got so-ome good thi-ings in store to-oday...", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Go-ood Deal!"; + poor_say = "Aw... Looks li-ike you still need "; + sold_say = "So-old!"; + selling_item_1 = /obj/item/book/granter/crafting_recipe/clan_drone; + selling_item_1_name = "Tinkerer's Blueprints: Reforged Drone (250 ahn)"; + selling_item_2_name = "Resurgence Clan Augment: Echo Step (1000 ahn)"; + selling_item_2 = /obj/item/organ/cyberimp/chest/resurgence_core; + cost_1 = 250; + cost_2 = 1000; + selling_end = "Go-ot it, We-e are always o-open if you need a-anything!"; + return_to_origin = 1; + city_faction = 0; + level_1 = list(/obj/item/food/meat/slab/robot); + level_2 = list(); + level_3 = list(/obj/item/raw_anomaly_core); + faction = list("neutral", "village") + }, +/obj/effect/turf_decal/siding/wood{ + color = "#2e1f0e"; + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Iq" = ( +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc/info/trader{ + icon_state = "clan_citzen_3"; + icon_living = "clan_citzen_3"; + answers1 = list("Well, Yo-ou may call me Lavan.","Right now I am just resting he-ere, but I do have some tapes fo-or sale!"); + question2 = "How did you gather these tapes?"; + answers2 = list("I-I found them in thi-is room...", "They look-ed cool, so I-I took them.", "And looks like I-I was ri-ight, as you might wa-ant to buy the-em!"); + greeting_line = "Hello-o human!"; + selling_answer = list("Le-et take a lookse...","Here are the ta-apes that I have fo-or sale!", "Just ho-old some holochips from yo-our ID, and I will te-ell you if you have enough."); + buying_say = "Go-ood Deal!"; + poor_say = "Aw... Looks li-ike you still need "; + sold_say = "So-old!"; + selling_item_1 = /obj/item/tape/resurgence/gateway; + selling_item_1_name = "Tinkerer's Logs: New Invention (200 ahn)"; + selling_item_2_name = "Historians Podcast: Backstage Records (200 ahn)"; + selling_item_2 = /obj/item/tape/resurgence/backstage; + cost_1 = 200; + selling_end = "Go-ot it, I-if you need a-anything, I will be-e right here!"; + return_to_origin = 1; + city_faction = 0; + can_buy = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"IB" = ( +/obj/structure/fluff/paper/stack{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"IH" = ( +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + dir = 1; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"IX" = ( +/obj/structure/water_source{ + desc = "A well constructed of stone and wood. From where does it draw water?"; + icon_state = "wishwell"; + name = "well"; + density = 1; + icon = 'ModularTegustation/Teguicons/toolabnormalities.dmi'; + pixel_y = -3 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Jw" = ( +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + dir = 1; + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + health = 2400; + maxHealth = 2400 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"KO" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"KY" = ( +/obj/structure/plaque/static_plaque{ + name = "echo office plaque"; + desc = "A plaque which mentions some sort of 'Echo Office', Something about them freeing them from a 'Tinkerer'" + }, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Li" = ( +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Ly" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"LF" = ( +/obj/structure/sign/poster/official/work_for_a_future, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Mg" = ( +/obj/structure/flora/rock/pile/largejungle, +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/water/jungle, +/area/city/backstreets_room/resurgence_village) +"Mr" = ( +/obj/machinery/door/airlock/centcom{ + desc = "A bit too sturdy..."; + max_integrity = 10000; + name = "Strange Airlock"; + normal_integrity = 100000; + req_access_txt = "19" + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_alley) +"MO" = ( +/obj/structure/plaque/static_plaque{ + name = "folk office plaque"; + desc = "A plaque which mentions some sort of 'Folk Office', Something about them giving them some strange speech about being yourself, even if other order you to be something else..." + }, +/turf/closed/indestructible/wood, +/area/city/backstreets_room/resurgence_village) +"Ne" = ( +/obj/structure/sign/departments/security{ + pixel_x = 32 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Od" = ( +/obj/item/flashlight/lantern{ + on = 1; + pixel_y = 16; + anchored = 1 + }, +/turf/open/water/deep/saltwater, +/area/city/backstreets_room/resurgence_village) +"OR" = ( +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_room/resurgence_village) +"OT" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Px" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/wood{ + dir = 8 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Py" = ( +/obj/structure/closet/crate/wooden, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stack/rods/ten, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"PA" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Qm" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/sign/poster/official/safety_report{ + pixel_x = 32 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"QI" = ( +/turf/closed/indestructible/reinforced, +/area/city/backstreets_alley) +"QJ" = ( +/obj/structure/fluff/paper, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"QQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/chair/wood{ + dir = 4 + }, +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 4; + icon_living = "clan_scout_normal"; + icon_state = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Rc" = ( +/obj/structure/sign/departments/cargo{ + desc = "A sign labelling an area where shop is."; + name = "\improper Shop sign"; + pixel_y = 32 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Rj" = ( +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"Rp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/chair/wood{ + dir = 1 + }, +/mob/living/simple_animal/hostile/clan_npc/info{ + icon_living = "clan_citzen_2"; + icon_state = "clan_citzen_2"; + dir = 1; + greeting_line = "Howdy Pa-al, I have no-ot seen your kind in a whi-ile!"; + answers1 = list("Well Pa-artner, Friends ca-all me James", "You can sa-ay I am a... Hunte-er if you could te-ell.", "I explore arou-und the rui-ins with my pal Ronan, finding monste-ers to take apa-art.", "After a-all, The Weaver does nee-ed material to make such o-outfits"); + question2 = "What are wearing?"; + answers2 = list("It i-is nice, Is it no-ot?", "Emote: points at thei-ir boots", "The great Weave-er was able to make the-em them for me.", "And I do sa-ay, They really fit the 'Hunter' look I have see-em often."); + answers3 = list("If you-u are asking abo-out this faction...", "The Cla-an is just one of ma-any villages in the O-outskirts...","All of the me-embers of the clan are ma-achines...","Li-ike me...","Delay: 20","But we are clo-ose to being hu-uman!","We ju-ust need to stu-udy mo-ore, then we can learn what it means to be Hu-uman..."); + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Ry" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/wood{ + dir = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Sh" = ( +/mob/living/simple_animal/hostile/clan/defender{ + can_protect = 1; + faction = list("neutral", "village"); + dir = 1; + wants_to_talk = 1; + question2 = "Why are you not attacking me?"; + question3 = "Why do you sound so strange?"; + answers1 = list("Emote: sighs", "I am Dion, O-one of the Defenders a-at this outpost.", "Just sta-anding around he-ere, making sure everyone is sa-afe."); + answers2 = list("Oh, Yo-ou are o-one of the ne-ew humans around here...", "Talk wi-ith our Comander, They shou-uld be to the ri-ight of me.", "They will be a-able to e-explain some things..."); + answers3 = list("Oh we-ell, I guess you can sa-ay that I am not there yet...", "It ta-akes a whi-ile to get a upgraded vo-oice box, so o-only the closest followers of o-our Elders get them.", "Hopefu-uly that time wi-ill come one day. But fo-or now I just nee-ed to work for i-it."); + icon_living = "defender_normal"; + icon_state = "defender_normal"; + return_to_origin = 1; + city_faction = 0; + health = 2400; + maxHealth = 2400 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"SJ" = ( +/mob/living/simple_animal/hostile/clan/drone/village{ + city_faction = 0; + faction = list("village") + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"SK" = ( +/obj/structure/chair/wood, +/mob/living/simple_animal/hostile/clan_npc{ + icon_living = "clan_citzen_5"; + icon_state = "clan_citzen_5"; + return_to_origin = 1; + city_faction = 0; + faction = list("neutral", "village") + }, +/turf/open/floor/wood, +/area/city/backstreets_room/resurgence_village) +"TT" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue/corner, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Uo" = ( +/obj/effect/turf_decal/raven/nine, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"UQ" = ( +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/obj/structure/lootcrate/money, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"UT" = ( +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"VJ" = ( +/obj/effect/turf_decal/raven/seven, +/obj/item/flashlight/lantern{ + on = 1; + pixel_x = 16; + anchored = 1 + }, +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_alley) +"VR" = ( +/obj/structure/displaycase/forsale, +/obj/structure/table/wood/fancy/royalblue, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"Wg" = ( +/obj/structure/flora/ausbushes/fullgrass, +/obj/structure/fishshrine{ + anchored = 1 + }, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"Wx" = ( +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"WU" = ( +/mob/living/simple_animal/hostile/clan/scout{ + faction = list("neutral", "village"); + can_protect = 1; + dir = 8; + icon_state = "clan_scout_normal"; + icon_living = "clan_scout_normal"; + return_to_origin = 1; + city_faction = 0 + }, +/obj/effect/turf_decal/box/red, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_room/resurgence_village) +"XP" = ( +/turf/open/floor/grass/fakebasalt, +/area/city/backstreets_alley) +"Yi" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) +"YN" = ( +/obj/structure/flora/junglebush/c, +/turf/open/floor/plating/ironsand, +/area/city/backstreets_alley) +"ZZ" = ( +/obj/structure/displaycase/forsale, +/obj/structure/table/wood/fancy/royalblue, +/obj/effect/turf_decal/siding/blue, +/turf/open/floor/carpet/royalblack, +/area/city/backstreets_room/resurgence_village) + +(1,1,1) = {" +QI +of +of +of +kL +kL +kL +kL +kL +kL +kL +of +of +of +of +of +of +of +of +of +of +of +"} +(2,1,1) = {" +QI +QI +of +kL +kL +mU +CB +mU +mU +Sh +kL +kL +kL +kL +kL +kL +of +of +of +of +of +of +"} +(3,1,1) = {" +CU +Cq +QI +kL +mU +OR +mU +mU +mU +mU +Uo +kL +Mg +ua +qp +kL +kL +kL +kL +kL +kL +kL +"} +(4,1,1) = {" +XP +Mr +YN +ps +mU +mU +ua +mU +mU +mU +SJ +mU +mU +mU +mU +Li +Li +MO +Li +Li +Li +kL +"} +(5,1,1) = {" +XP +Mr +XP +CD +mU +mU +mU +mU +mU +mU +mU +mU +mU +mU +mU +Li +KO +Rj +Be +rk +Li +kL +"} +(6,1,1) = {" +VJ +Dm +QI +kL +OR +mU +mU +mU +mU +ua +mU +mU +mU +mU +mU +zv +Rj +Rj +Be +rk +Li +kL +"} +(7,1,1) = {" +QI +QI +of +kL +yk +mU +mU +mU +mU +mU +mU +mU +ua +mU +mU +Ci +mA +IH +Be +rk +Li +kL +"} +(8,1,1) = {" +QI +of +of +kL +kL +er +mU +mU +mU +mU +mU +mU +mU +mU +Jw +Li +Ci +Li +Li +Li +Li +kL +"} +(9,1,1) = {" +QI +of +of +kL +kL +WU +WU +WU +OT +mU +mU +mU +mU +mU +mU +mU +mU +kL +kL +kL +kL +kL +"} +(10,1,1) = {" +QI +of +of +kL +Li +Li +Li +Li +Li +er +mU +mU +mU +mU +mU +dS +mU +mU +kL +of +of +of +"} +(11,1,1) = {" +QI +of +of +kL +Li +uM +ly +hc +Li +Rc +mU +mU +mU +mU +CD +mU +mU +hA +kL +of +of +of +"} +(12,1,1) = {" +QI +of +of +kL +Li +Id +BZ +Wx +Li +dS +mU +ra +mU +Jw +Li +Li +Li +Li +Li +of +of +of +"} +(13,1,1) = {" +QI +of +of +kL +Li +Yi +UT +TT +rF +mU +mU +mU +mU +mU +Ci +lG +SK +mA +KY +of +of +of +"} +(14,1,1) = {" +QI +of +of +kL +Li +mT +UT +ZZ +Ci +mU +mU +mU +mU +mU +Ci +Rj +Iq +fd +Li +of +of +of +"} +(15,1,1) = {" +QI +of +of +kL +LF +is +Qm +VR +Ci +mU +mU +mU +mU +mU +zv +Rj +Rj +Rj +Li +of +of +of +"} +(16,1,1) = {" +QI +of +of +kL +Li +Li +Li +Li +Li +er +mU +SJ +mU +mU +Li +Be +Be +Be +Li +of +of +of +"} +(17,1,1) = {" +QI +of +of +kL +kL +kL +UQ +mU +Bm +Du +QQ +mU +mU +mU +Li +rk +rk +rk +Li +of +of +of +"} +(18,1,1) = {" +QI +of +of +of +of +kL +Py +sT +si +mU +tT +qU +mU +Jw +Li +Li +Li +Li +Li +of +of +of +"} +(19,1,1) = {" +QI +of +of +of +of +kL +yt +eU +mU +cf +mU +Ry +mU +mU +CB +mU +mU +IX +kL +of +of +of +"} +(20,1,1) = {" +QI +of +of +of +of +kL +kL +yp +Ly +mU +xs +Rp +mU +mU +mU +mU +mU +aK +kL +of +of +of +"} +(21,1,1) = {" +QI +of +of +of +of +of +kL +mU +pN +xt +Px +mU +mU +mU +mU +tR +vh +kL +kL +of +of +of +"} +(22,1,1) = {" +QI +of +of +of +of +of +kL +pn +mU +mU +mU +Ne +mU +mU +mU +Wg +HN +kL +kL +of +of +of +"} +(23,1,1) = {" +QI +of +of +of +of +of +kL +OT +mU +mU +Li +Li +zv +Ci +Ci +Li +Od +HN +kL +of +of +of +"} +(24,1,1) = {" +QI +of +of +of +of +of +kL +qM +mU +vC +Li +vk +QJ +Rj +EY +Li +HN +HN +kL +of +of +of +"} +(25,1,1) = {" +QI +of +of +of +of +of +kL +Gx +mU +mU +Li +bO +IB +Be +Be +Li +HN +HN +kL +of +of +of +"} +(26,1,1) = {" +QI +of +of +of +of +of +kL +Bc +BP +mU +Li +PA +fP +FD +rk +Li +HN +wD +kL +of +of +of +"} +(27,1,1) = {" +QI +of +of +of +of +of +kL +kL +zm +ua +Li +cr +tF +rx +rk +Li +wD +kL +kL +of +of +of +"} +(28,1,1) = {" +QI +of +of +of +of +of +of +kL +kL +yx +Li +Li +Li +Li +Li +Li +kL +kL +of +of +of +of +"} +(29,1,1) = {" +QI +of +of +of +of +of +of +of +kL +kL +kL +kL +kL +kL +kL +kL +kL +of +of +of +of +of +"} diff --git a/_maps/RandomRooms/rcorp/facility/beaches.dmm b/_maps/RandomRooms/rcorp/facility/beaches.dmm index 8ca9a639fe84..bdfb700c3ad9 100644 --- a/_maps/RandomRooms/rcorp/facility/beaches.dmm +++ b/_maps/RandomRooms/rcorp/facility/beaches.dmm @@ -205,9 +205,7 @@ /turf/open/floor/plasteel, /area/city/outskirts) "Ml" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -256,9 +254,7 @@ /turf/open/floor/plating/ashplanet/rocky, /area/city/outskirts) "Wn" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/beaches2.dmm b/_maps/RandomRooms/rcorp/facility/beaches2.dmm index 31c219157d66..6646984375bc 100644 --- a/_maps/RandomRooms/rcorp/facility/beaches2.dmm +++ b/_maps/RandomRooms/rcorp/facility/beaches2.dmm @@ -121,9 +121,7 @@ /turf/open/floor/plating/ashplanet/rocky, /area/city/outskirts) "xK" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -249,9 +247,7 @@ /turf/open/water, /area/city/outskirts) "Sw" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/city.dmm b/_maps/RandomRooms/rcorp/facility/city.dmm index fd7dd038192f..52f3178c1e1e 100644 --- a/_maps/RandomRooms/rcorp/facility/city.dmm +++ b/_maps/RandomRooms/rcorp/facility/city.dmm @@ -656,9 +656,7 @@ /turf/open/floor/wood, /area/city/outskirts) "ik" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/city2.dmm b/_maps/RandomRooms/rcorp/facility/city2.dmm index 6490be66fa3a..e5856a1e254f 100644 --- a/_maps/RandomRooms/rcorp/facility/city2.dmm +++ b/_maps/RandomRooms/rcorp/facility/city2.dmm @@ -3291,9 +3291,7 @@ /turf/open/floor/plasteel, /area/city/outskirts) "OL" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -3691,9 +3689,7 @@ /turf/open/floor/wood, /area/city/outskirts) "Te" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/maze.dmm b/_maps/RandomRooms/rcorp/facility/maze.dmm index 27b40b91d344..0835a13b1726 100644 --- a/_maps/RandomRooms/rcorp/facility/maze.dmm +++ b/_maps/RandomRooms/rcorp/facility/maze.dmm @@ -250,9 +250,7 @@ }, /area/city/outskirts) "HH" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -311,9 +309,7 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "Oo" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/maze2.dmm b/_maps/RandomRooms/rcorp/facility/maze2.dmm index 8c701d5be942..7c167fdc5715 100644 --- a/_maps/RandomRooms/rcorp/facility/maze2.dmm +++ b/_maps/RandomRooms/rcorp/facility/maze2.dmm @@ -70,9 +70,7 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "hp" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -99,9 +97,7 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "mW" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/nest.dmm b/_maps/RandomRooms/rcorp/facility/nest.dmm index b124257b9096..e0d8154259f1 100644 --- a/_maps/RandomRooms/rcorp/facility/nest.dmm +++ b/_maps/RandomRooms/rcorp/facility/nest.dmm @@ -8,7 +8,7 @@ /area/city/outskirts) "as" = ( /obj/machinery/door/airlock/wood, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "aA" = ( /obj/effect/turf_decal/siding/wood/corner, @@ -134,7 +134,7 @@ /area/city/outskirts) "cK" = ( /obj/machinery/light/small, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "cS" = ( /obj/effect/turf_decal/trimline/green/filled/line{ @@ -298,7 +298,7 @@ /area/city/outskirts) "fs" = ( /obj/structure/closet/secure_closet/freezer/fridge, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "fH" = ( /obj/effect/decal/cleanable/blood/drip, @@ -557,7 +557,7 @@ /obj/effect/decal/cleanable/blood/tracks{ dir = 10 }, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "lg" = ( /obj/effect/turf_decal/siding/wood, @@ -705,7 +705,7 @@ "nG" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/food/drinks/dry_ramen, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "ob" = ( /obj/structure/fluff/bus/passable, @@ -831,11 +831,11 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "pP" = ( -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "pU" = ( /obj/machinery/griddle, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "pV" = ( /obj/machinery/conveyor{ @@ -928,9 +928,7 @@ /turf/open/floor/plating, /area/city/outskirts) "rQ" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -1295,7 +1293,7 @@ /area/city/outskirts) "yk" = ( /obj/effect/decal/cleanable/blood/gibs, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "yy" = ( /turf/open/floor/plating/ashplanet/rocky, @@ -1621,7 +1619,7 @@ /obj/structure/sink/kitchen{ pixel_y = 14 }, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "Ft" = ( /obj/machinery/light/broken, @@ -2054,9 +2052,7 @@ /turf/open/floor/wood, /area/city/outskirts) "NX" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -2066,7 +2062,7 @@ pixel_x = -7; pixel_y = 4 }, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "OC" = ( /obj/structure/fluff/bus/passable/seat, @@ -2384,7 +2380,7 @@ /area/city/outskirts) "Tc" = ( /obj/machinery/vending/dinnerware, -/turf/open/floor/plasteel/airless/white, +/turf/open/floor/plasteel/white, /area/city/outskirts) "Td" = ( /obj/machinery/light/floor, diff --git a/_maps/RandomRooms/rcorp/facility/offices.dmm b/_maps/RandomRooms/rcorp/facility/offices.dmm index 714b0cdeb132..9381184a0bc6 100644 --- a/_maps/RandomRooms/rcorp/facility/offices.dmm +++ b/_maps/RandomRooms/rcorp/facility/offices.dmm @@ -47,9 +47,7 @@ /turf/open/floor/plasteel, /area/city/outskirts) "eS" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -72,9 +70,7 @@ /turf/open/floor/facility/dark, /area/city/outskirts) "iB" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /turf/closed/indestructible/syndicate, /area/city/outskirts) "iH" = ( diff --git a/_maps/RandomRooms/rcorp/facility/raidboss.dmm b/_maps/RandomRooms/rcorp/facility/raidboss.dmm index b56c52ba3ccb..14f17d80759c 100644 --- a/_maps/RandomRooms/rcorp/facility/raidboss.dmm +++ b/_maps/RandomRooms/rcorp/facility/raidboss.dmm @@ -55,6 +55,10 @@ /obj/effect/landmark/abnospawn/rhinobuster, /turf/open/floor/facility, /area/city/outskirts) +"Go" = ( +/obj/machinery/button/door/indestructible/rcorp, +/turf/closed/indestructible/syndicate, +/area/city/outskirts) "HD" = ( /turf/open/floor/facility, /area/city/outskirts) @@ -67,9 +71,7 @@ /turf/open/floor/facility, /area/city/outskirts) "VG" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -123,7 +125,7 @@ aN aN aN aN -Fl +Go Fl pz pz diff --git a/_maps/RandomRooms/rcorp/facility/skeld.dmm b/_maps/RandomRooms/rcorp/facility/skeld.dmm index 36ebd08111b4..0e25f38e68ae 100644 --- a/_maps/RandomRooms/rcorp/facility/skeld.dmm +++ b/_maps/RandomRooms/rcorp/facility/skeld.dmm @@ -1650,9 +1650,7 @@ /turf/open/floor/carpet/royalblack, /area/city/outskirts) "Ml" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) diff --git a/_maps/RandomRooms/rcorp/facility/standard.dmm b/_maps/RandomRooms/rcorp/facility/standard.dmm index 010c85835066..6e3fd391cf37 100644 --- a/_maps/RandomRooms/rcorp/facility/standard.dmm +++ b/_maps/RandomRooms/rcorp/facility/standard.dmm @@ -5,9 +5,7 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "aQ" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -72,9 +70,7 @@ /turf/open/floor/carpet/orange, /area/city/outskirts) "ci" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -1125,7 +1121,6 @@ dir = 10 }, /obj/structure/rack, -/obj/item/gun/ego_gun/clerk, /turf/open/floor/plasteel/dark, /area/city/outskirts) "vS" = ( @@ -1899,7 +1894,6 @@ dir = 9 }, /obj/structure/rack, -/obj/item/gun/ego_gun/clerk, /turf/open/floor/plasteel/dark, /area/city/outskirts) "Jl" = ( diff --git a/_maps/RandomRooms/rcorp/facility/standard2.dmm b/_maps/RandomRooms/rcorp/facility/standard2.dmm index ea5c5bf58ee0..128f23e7e6ce 100644 --- a/_maps/RandomRooms/rcorp/facility/standard2.dmm +++ b/_maps/RandomRooms/rcorp/facility/standard2.dmm @@ -5,16 +5,11 @@ /turf/open/floor/plasteel/dark, /area/city/outskirts) "aQ" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) "aS" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, /obj/effect/landmark/nobasic_incorp_move, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -897,6 +892,7 @@ /area/city/outskirts) "rp" = ( /obj/effect/landmark/nobasic_incorp_move, +/obj/machinery/button/door/indestructible/rcorp, /turf/closed/indestructible/syndicate, /area/city/outskirts) "rr" = ( @@ -1133,7 +1129,6 @@ dir = 10 }, /obj/structure/rack, -/obj/item/gun/ego_gun/clerk, /turf/open/floor/plasteel/dark, /area/city/outskirts) "vS" = ( @@ -1910,7 +1905,6 @@ dir = 9 }, /obj/structure/rack, -/obj/item/gun/ego_gun/clerk, /turf/open/floor/plasteel/dark, /area/city/outskirts) "Jl" = ( @@ -2880,22 +2874,22 @@ GX GX GX GX -rp +aS FW FW FW FW FW -aS -rp -rp -rp -rp -rp -rp -rp -rp rp +aS +aS +aS +aS +aS +aS +aS +aS +aS MI MI MI @@ -2930,27 +2924,27 @@ MI MI MI MI -rp -rp +aS +aS NA FW FW FW aQ -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS NA NA FW aQ NA -rp -rp +aS +aS GX GX GX @@ -3036,14 +3030,14 @@ GX GX GX GX -rp -rp +aS +aS GX GX GX GX GX -rp +aS Im Im Im @@ -3113,7 +3107,7 @@ bN bN Qi gi -rp +aS GX GX GX @@ -3198,15 +3192,15 @@ GX GX GX GX -rp +aS kq kq -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -3276,7 +3270,7 @@ Wz Wz fB nO -rp +aS GX GX GX @@ -3360,17 +3354,17 @@ nd GX GX GX -rp +aS AS Pp Pp AS -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -3439,7 +3433,7 @@ Wz ha sh TI -rp +aS GX GX GX @@ -3523,17 +3517,17 @@ nd GX GX GX -rp +aS kq Pp Pp kq -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -3602,7 +3596,7 @@ ha ha fB Pp -rp +aS GX GX GX @@ -3687,16 +3681,16 @@ GX GX GX GX -rp +aS GX Pp GX -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -3765,7 +3759,7 @@ ha Wz sh qz -rp +aS GX GX GX @@ -3850,16 +3844,16 @@ GX GX GX GX -rp +aS pX Cf xH -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -3928,7 +3922,7 @@ ha ha sh xL -rp +aS GX GX GX @@ -4013,16 +4007,16 @@ GX GX GX GX -rp +aS tQ Pp NJ -rp +aS GX GX GX GX -rp +aS Im Im Im @@ -4091,7 +4085,7 @@ ha ha sh vM -rp +aS GX GX GX @@ -4176,15 +4170,15 @@ GX GX GX GX -rp +aS rs Pp NJ -rp +aS GX GX GX -rp +aS Im Im Im @@ -4254,7 +4248,7 @@ ha XD GL Pp -rp +aS GX GX GX @@ -4339,15 +4333,15 @@ GX GX GX GX -rp +aS tQ LN NJ -rp +aS GX GX GX -rp +aS Im Im Im @@ -4417,7 +4411,7 @@ RA GX GX GX -rp +aS GX GX GX @@ -4502,15 +4496,15 @@ GX GX GX GX -rp +aS Bk Pp NJ -rp +aS GX GX GX -rp +aS GX GX Im @@ -4580,7 +4574,7 @@ ng Tw oN vQ -rp +aS GX GX GX @@ -4665,14 +4659,14 @@ GX GX GX GX -rp +aS lA Pp NJ -rp +aS GX GX -rp +aS GX LN LN @@ -4743,7 +4737,7 @@ Pp Pp Pp KF -rp +aS GX GX GX @@ -4828,7 +4822,7 @@ GX GX GX GX -rp +aS Bk jO NJ @@ -4906,7 +4900,7 @@ Pp Pp pP KF -rp +aS GX GX GX @@ -4991,7 +4985,7 @@ GX GX GX GX -rp +aS Bk jO NJ @@ -5069,7 +5063,7 @@ pP pP pP KF -rp +aS GX GX GX @@ -5154,13 +5148,13 @@ GX GX GX GX -rp +aS rs jO NJ Dx gB -rp +aS gR LN LS @@ -5232,7 +5226,7 @@ Pp Pp Jl DB -rp +aS GX GX GX @@ -5247,8 +5241,8 @@ GX GX GX GX -rp -rp +aS +aS GX GX GX @@ -5317,7 +5311,7 @@ GX GX GX GX -rp +aS Bk jO NJ @@ -5409,13 +5403,13 @@ GX GX GX GX -rp +aS Im Im -rp -rp -rp -rp +aS +aS +aS +aS GX GX GX @@ -5480,7 +5474,7 @@ GX GX GX GX -rp +aS Bk Pp NJ @@ -5569,9 +5563,9 @@ GX GX GX GX -rp -rp -rp +aS +aS +aS Im Im Im @@ -5579,16 +5573,16 @@ Im Im Im gB -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS Im -rp +aS MI MI MI @@ -5643,13 +5637,13 @@ GX GX GX GX -rp +aS Bk Pp wz Dx gB -rp +aS Lx LN LS @@ -5719,7 +5713,7 @@ GX xB Pp KF -rp +aS GX nd nd @@ -5731,7 +5725,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -5806,7 +5800,7 @@ GX GX GX GX -rp +aS Bk Pp NJ @@ -5882,7 +5876,7 @@ GX xB Pp KF -rp +aS GX GX nd @@ -5893,7 +5887,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -5920,7 +5914,7 @@ gB gB gB Im -rp +aS nd nd nd @@ -5969,7 +5963,7 @@ GX GX GX GX -rp +aS Bk Pp NJ @@ -6045,7 +6039,7 @@ GX lD Pp KF -rp +aS GX GX GX @@ -6055,7 +6049,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -6083,7 +6077,7 @@ GX Nf Im jZ -rp +aS MI MI nd @@ -6132,11 +6126,11 @@ GX GX GX GX -rp +aS rs Pp wz -rp +aS GX EO bo @@ -6208,7 +6202,7 @@ GX xB Pp KF -rp +aS GX GX GX @@ -6218,7 +6212,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -6295,13 +6289,13 @@ nd nd GX GX -rp +aS Bk Pp wz -rp -rp -rp +aS +aS +aS GX GX GX @@ -6371,7 +6365,7 @@ GX xB Pp KF -rp +aS GX GX GX @@ -6381,7 +6375,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -6458,7 +6452,7 @@ nd nd GX GX -rp +aS tQ Pp LN @@ -6534,7 +6528,7 @@ GX QM Pp KF -rp +aS GX GX GX @@ -6544,7 +6538,7 @@ GX GX GX GX -rp +aS Im Im Ix @@ -6621,7 +6615,7 @@ nd nd GX GX -rp +aS Sk Pp Pp @@ -6697,7 +6691,7 @@ GX xB Pp KF -rp +aS GX GX GX @@ -6707,7 +6701,7 @@ GX GX GX GX -rp +aS Im GX GX @@ -6784,7 +6778,7 @@ nd nd GX GX -rp +aS tQ Pp Pp @@ -6860,7 +6854,7 @@ GX xB Pp KF -rp +aS GX GX GX @@ -6870,7 +6864,7 @@ GX GX GX GX -rp +aS Im jO jO @@ -6947,30 +6941,30 @@ nd nd GX GX -rp +aS Bk Pp NJ -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS MI MI Im @@ -7023,7 +7017,7 @@ GX lD Pp Ct -rp +aS GX GX GX @@ -7034,7 +7028,7 @@ GX GX GX GX -rp +aS Im Im jO @@ -7110,11 +7104,11 @@ nd nd nd GX -rp +aS rs Pp NJ -rp +aS nd nd nd @@ -7198,7 +7192,7 @@ nd GX GX GX -rp +aS xt Im Im @@ -7273,11 +7267,11 @@ nd nd nd nd -rp +aS Bk LN NJ -rp +aS nd nd nd @@ -7361,7 +7355,7 @@ nd GX GX GX -rp +aS Im Im Im @@ -7436,11 +7430,11 @@ nd nd nd nd -rp +aS uV Rg eP -rp +aS nd nd nd @@ -7512,7 +7506,7 @@ nd xB Jl KF -rp +aS nd nd GX @@ -7524,7 +7518,7 @@ nd GX GX GX -rp +aS Im Im Im @@ -7600,9 +7594,9 @@ nd nd nd GX -rp -rp -rp +aS +aS +aS GX nd nd @@ -7675,7 +7669,7 @@ nd nd nd Jl -rp +aS nd GX GX @@ -7687,7 +7681,7 @@ nd nd GX GX -rp +aS Im Im GX @@ -7838,7 +7832,7 @@ nd nd Pp KF -rp +aS GX GX GX @@ -7850,7 +7844,7 @@ nd nd GX GX -rp +aS Im Im Im @@ -8001,7 +7995,7 @@ GX lD Jl KF -rp +aS GX GX GX @@ -8013,7 +8007,7 @@ nd nd GX GX -rp +aS Im Im Im @@ -8176,7 +8170,7 @@ nd nd nd GX -rp +aS GX gB Im @@ -8338,7 +8332,7 @@ nd nd nd nd -rp +aS GX GX xt @@ -8490,7 +8484,7 @@ GX Du Jl Jl -rp +aS GX GX GX @@ -8697,7 +8691,7 @@ Im Im Hv Im -rp +aS nd nd nd @@ -8859,7 +8853,7 @@ Im LN Im Im -rp +aS GX nd nd @@ -8930,7 +8924,7 @@ nd nd nd MI -rp +aS qR Im Im @@ -9022,7 +9016,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -9142,7 +9136,7 @@ pY GM gX DB -rp +aS nd nd nd @@ -9185,7 +9179,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -9305,10 +9299,10 @@ pY Im LN zc -rp -rp -rp -rp +aS +aS +aS +aS GX GX nd @@ -9348,7 +9342,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -9472,7 +9466,7 @@ hq BB BB BB -rp +aS GX nd MI @@ -9510,7 +9504,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -9635,7 +9629,7 @@ pY Jl BB BB -rp +aS GX nd MI @@ -9673,7 +9667,7 @@ Im Hv Im gB -rp +aS GX nd nd @@ -9798,7 +9792,7 @@ hq Jl BB BB -rp +aS nd MI gB @@ -9836,7 +9830,7 @@ Im Im gB gB -rp +aS GX nd nd @@ -9961,7 +9955,7 @@ hq Af gX BB -rp +aS nd MI gB @@ -9999,7 +9993,7 @@ nd nd nd gX -rp +aS GX nd nd @@ -10230,11 +10224,11 @@ nd nd nd nd -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS Im Im Im @@ -10287,7 +10281,7 @@ GX pY pY hq -rp +aS MI Im Im @@ -10393,7 +10387,7 @@ nd nd nd nd -rp +aS LN Jl Yx @@ -10486,7 +10480,7 @@ Im Im Im jO -rp +aS GX GX nd @@ -10556,7 +10550,7 @@ nd nd nd nd -rp +aS Pp gX gB @@ -10649,7 +10643,7 @@ Im Im gB LN -rp +aS GX nd nd @@ -10719,7 +10713,7 @@ nd nd nd nd -rp +aS Jl Jl Jl @@ -10812,7 +10806,7 @@ Im Im jO LN -rp +aS nd nd nd @@ -10882,7 +10876,7 @@ nd nd nd nd -rp +aS fY Jl LN @@ -10974,7 +10968,7 @@ Im Im Im jO -rp +aS GX nd nd @@ -11045,7 +11039,7 @@ nd nd nd nd -rp +aS Pp wC Jl @@ -11135,8 +11129,8 @@ Im Im Im Im -rp -rp +aS +aS GX nd nd @@ -11208,7 +11202,7 @@ nd nd nd nd -rp +aS hq TQ GX @@ -11297,7 +11291,7 @@ gX Im jO Im -rp +aS GX GX nd @@ -11371,7 +11365,7 @@ nd nd nd nd -rp +aS Pp Jl Pp @@ -11459,7 +11453,7 @@ nd nd gB jO -rp +aS GX nd nd @@ -11534,7 +11528,7 @@ nd nd nd nd -rp +aS Jl Pp Jl @@ -11621,7 +11615,7 @@ Im Im nd gX -rp +aS GX nd nd @@ -11697,7 +11691,7 @@ nd nd nd nd -rp +aS gX Pp Tf @@ -11860,7 +11854,7 @@ nd nd nd nd -rp +aS Ll Jl Jl @@ -12023,7 +12017,7 @@ nd nd nd nd -rp +aS Jl LN Pp @@ -12107,7 +12101,7 @@ Im Im Im Im -rp +aS nd nd nd @@ -12186,7 +12180,7 @@ nd nd nd nd -rp +aS GX GX GX @@ -12269,7 +12263,7 @@ gB Im Im Im -rp +aS GX nd nd @@ -12349,7 +12343,7 @@ nd nd nd GX -rp +aS lH lH Ho @@ -12400,17 +12394,17 @@ Im Im Im Im -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS Im Im Ix @@ -12430,8 +12424,8 @@ Im Im Im Im -rp -rp +aS +aS GX GX nd @@ -12511,7 +12505,7 @@ nd nd nd nd -rp +aS BZ lH pO @@ -12560,9 +12554,9 @@ Im Im Im Im -rp -rp -rp +aS +aS +aS GX GX GX @@ -12574,14 +12568,14 @@ GX GX GX GX -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS Im Im Ix @@ -12592,7 +12586,7 @@ Im Im Im Im -rp +aS GX GX nd @@ -12675,7 +12669,7 @@ nd nd nd GX -rp +aS WS yh lH @@ -12720,9 +12714,9 @@ Im Im Im Im -rp -rp -rp +aS +aS +aS GX GX GX @@ -12745,16 +12739,16 @@ GX GX GX GX -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS GX GX nd @@ -12838,7 +12832,7 @@ nd nd nd GX -rp +aS oa pV pE @@ -12878,11 +12872,11 @@ Im Im Im Im -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS GX GX GX @@ -13001,7 +12995,7 @@ nd nd nd GX -rp +aS Pf Pp Pp @@ -13039,8 +13033,8 @@ Im Im Im Im -rp -rp +aS +aS GX GX GX @@ -13164,7 +13158,7 @@ nd nd nd GX -rp +aS wo Pp ZJ @@ -13201,7 +13195,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -13327,7 +13321,7 @@ nd nd nd GX -rp +aS rl Pp Pp @@ -13363,7 +13357,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -13490,7 +13484,7 @@ nd nd nd GX -rp +aS fV fu iy @@ -13524,8 +13518,8 @@ Im Im Im Im -rp -rp +aS +aS GX GX GX @@ -13653,7 +13647,7 @@ nd nd nd GX -rp +aS xQ WD pO @@ -13686,7 +13680,7 @@ Im Im gX Im -rp +aS GX GX GX @@ -13816,7 +13810,7 @@ nd nd nd GX -rp +aS lH lH lH @@ -13849,7 +13843,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -13979,7 +13973,7 @@ nd nd nd GX -rp +aS wI wI cD @@ -14012,7 +14006,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -14142,7 +14136,7 @@ nd nd GX GX -rp +aS GX GX GX @@ -14174,7 +14168,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -14304,7 +14298,7 @@ nd nd nd GX -rp +aS Im Im Im @@ -14337,7 +14331,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -14466,7 +14460,7 @@ nd nd nd nd -rp +aS Im Im Im @@ -14500,7 +14494,7 @@ Im Im Im Im -rp +aS GX GX nd @@ -14607,13 +14601,13 @@ nd nd nd GX -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS GX nd nd @@ -14628,8 +14622,8 @@ nd nd nd GX -rp -rp +aS +aS Im Im LN @@ -14663,7 +14657,7 @@ Im Im Im Im -rp +aS GX GX nd @@ -14769,7 +14763,7 @@ nd nd nd GX -rp +aS pa Im Im @@ -14777,20 +14771,20 @@ Im Im Im Im -rp -rp -rp -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS +aS +aS +aS MI MI -rp -rp +aS +aS Im Im Im @@ -14826,7 +14820,7 @@ Im gX Im Im -rp +aS GX nd nd @@ -14931,7 +14925,7 @@ nd nd nd nd -rp +aS pa bR pa @@ -14989,7 +14983,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -15094,7 +15088,7 @@ nd nd nd nd -rp +aS In bR bR @@ -15152,7 +15146,7 @@ LN Im Im Im -rp +aS GX nd nd @@ -15257,28 +15251,28 @@ nd nd nd GX -rp +aS In Wb In Uf GX Im -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS Im -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS Im Im Im @@ -15315,7 +15309,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -15419,14 +15413,14 @@ nd nd nd nd -rp +aS pa In In Im Im Im -rp +aS GX nd nd @@ -15434,7 +15428,7 @@ nd nd nd GX -rp +aS GX nd nd @@ -15442,7 +15436,7 @@ nd nd nd GX -rp +aS Im Im Im @@ -15477,7 +15471,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -15582,13 +15576,13 @@ nd nd nd nd -rp +aS Im BZ BZ Vn -rp -rp +aS +aS GX nd nd @@ -15605,7 +15599,7 @@ nd nd nd nd -rp +aS Im Im Im @@ -15640,7 +15634,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -15745,11 +15739,11 @@ nd nd nd nd -rp +aS Im Im Im -rp +aS GX nd nd @@ -15768,7 +15762,7 @@ nd nd nd nd -rp +aS GX Im Im @@ -15803,7 +15797,7 @@ Im Im Im Im -rp +aS nd nd nd @@ -15909,9 +15903,9 @@ nd nd nd GX -rp -rp -rp +aS +aS +aS GX nd nd @@ -15932,7 +15926,7 @@ nd nd nd nd -rp +aS Im Im Im @@ -15966,7 +15960,7 @@ Im Im Im Im -rp +aS nd nd nd @@ -16096,7 +16090,7 @@ nd nd nd nd -rp +aS Im Im Im @@ -16128,7 +16122,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -16291,7 +16285,7 @@ Im Im Im Im -rp +aS nd nd nd @@ -16453,7 +16447,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -16615,7 +16609,7 @@ Im Im Im Im -rp +aS GX nd nd @@ -16777,7 +16771,7 @@ Im Im Im Im -rp +aS nd nd nd @@ -16913,7 +16907,7 @@ nd nd GX GX -rp +aS gX LN jO @@ -16938,8 +16932,8 @@ Im Im Im Im -rp -rp +aS +aS GX nd nd @@ -17077,7 +17071,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -17099,8 +17093,8 @@ Im Im Im Im -rp -rp +aS +aS GX GX nd @@ -17240,7 +17234,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -17260,8 +17254,8 @@ Im Im Im Im -rp -rp +aS +aS GX GX GX @@ -17403,7 +17397,7 @@ GX GX GX GX -rp +aS Im Im Im @@ -17423,7 +17417,7 @@ Im Im Im Im -rp +aS GX GX nd @@ -17567,8 +17561,8 @@ GX GX GX GX -rp -rp +aS +aS Im Im Im @@ -17585,7 +17579,7 @@ Im Im Im Im -rp +aS GX GX GX @@ -17732,11 +17726,11 @@ GX GX GX GX -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS Im Im Im @@ -17744,10 +17738,10 @@ Im Im Im Im -rp -rp -rp -rp +aS +aS +aS +aS GX nd nd @@ -17900,13 +17894,13 @@ GX GX GX GX -rp -rp -rp -rp -rp -rp -rp +aS +aS +aS +aS +aS +aS +aS GX GX GX diff --git a/_maps/RandomRooms/rcorp/facility/xenos.dmm b/_maps/RandomRooms/rcorp/facility/xenos.dmm index 0594a7836a8b..840aac5b1631 100644 --- a/_maps/RandomRooms/rcorp/facility/xenos.dmm +++ b/_maps/RandomRooms/rcorp/facility/xenos.dmm @@ -180,9 +180,7 @@ /turf/open/floor/carpet, /area/city/outskirts) "gF" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /obj/effect/landmark/nobasic_incorp_move/disappearing, /turf/closed/indestructible/syndicate, /area/city/outskirts) @@ -1661,9 +1659,7 @@ /turf/open/floor/carpet/royalblack, /area/city/outskirts) "Ml" = ( -/obj/machinery/button/door/indestructible{ - id = "inside" - }, +/obj/machinery/button/door/indestructible/rcorp, /turf/closed/indestructible/syndicate, /area/city/outskirts) "Mq" = ( diff --git a/_maps/map_files/Event/city.dmm b/_maps/map_files/Event/city.dmm index ea2d47eb2bc5..800ec5e600e0 100644 --- a/_maps/map_files/Event/city.dmm +++ b/_maps/map_files/Event/city.dmm @@ -459,6 +459,11 @@ "fM" = ( /obj/machinery/light, /obj/structure/table/wood, +/obj/item/folder, +/obj/item/folder, +/obj/item/folder, +/obj/item/folder, +/obj/item/folder, /turf/open/floor/facility/white, /area/city/fixers) "fP" = ( @@ -1019,12 +1024,28 @@ /turf/open/floor/plating/beach/sand, /area/city) "mV" = ( -/obj/item/folder, -/obj/item/folder, -/obj/item/folder, -/obj/item/folder, -/obj/item/folder, /obj/structure/table/wood, +/obj/item/toner/large{ + pixel_x = 2; + pixel_y = -8 + }, +/obj/item/toner/large{ + pixel_y = -4; + pixel_x = 1 + }, +/obj/item/toner/large, +/obj/item/toner/large{ + pixel_y = 4; + pixel_x = -1 + }, +/obj/item/toner/large{ + pixel_y = 8; + pixel_x = -2 + }, +/obj/item/toner/large{ + pixel_y = 12; + pixel_x = -3 + }, /turf/open/floor/facility/white, /area/city/fixers) "mW" = ( diff --git a/_maps/map_files/Event/city_fixer.dmm b/_maps/map_files/Event/city_fixer.dmm index 0957070b1173..f2d471ab758b 100644 --- a/_maps/map_files/Event/city_fixer.dmm +++ b/_maps/map_files/Event/city_fixer.dmm @@ -651,6 +651,17 @@ "jP" = ( /obj/structure/table/wood, /obj/item/modular_computer/laptop/preset/civilian, +/obj/item/toner/large{ + pixel_y = 4; + pixel_x = 4 + }, +/obj/item/toner/large{ + pixel_y = 8 + }, +/obj/item/toner/large{ + pixel_y = 12; + pixel_x = -4 + }, /turf/open/floor/facility/white, /area/city/fixers) "ka" = ( diff --git a/_maps/map_files/Event/fixer_office.dmm b/_maps/map_files/Event/fixer_office.dmm new file mode 100644 index 000000000000..f498d8c3ce7f --- /dev/null +++ b/_maps/map_files/Event/fixer_office.dmm @@ -0,0 +1,66756 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"ap" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"at" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"ax" = ( +/obj/structure/rack, +/turf/open/floor/wood, +/area/city/house) +"aB" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green, +/turf/open/floor/wood, +/area/city/house) +"aE" = ( +/obj/structure/closet/secure_closet/personal/cabinet, +/turf/open/floor/wood, +/area/city/house) +"aH" = ( +/obj/structure/bed, +/obj/item/bedsheet/rd{ + name = "director's bedsheet" + }, +/turf/open/floor/wood, +/area/city/house) +"aV" = ( +/obj/structure/rack, +/obj/item/tresmetal, +/obj/item/tresmetal, +/obj/item/tresmetal, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"bd" = ( +/obj/structure/rack, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/item/forginghammer, +/turf/open/floor/facility/dark, +/area/city/house) +"be" = ( +/obj/structure/rack, +/obj/structure/lootcrate/tres, +/obj/structure/lootcrate/tres, +/obj/structure/lootcrate/tres, +/obj/structure/lootcrate/tres, +/obj/structure/lootcrate/tres, +/obj/item/crowbar/red, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 9 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"bi" = ( +/obj/structure/rack, +/obj/item/clothing/under/rank/cargo/miner{ + name = "Workshop's jumpsuit" + }, +/obj/item/clothing/under/rank/cargo/miner{ + name = "Workshop's jumpsuit" + }, +/obj/item/clothing/under/rank/cargo/miner{ + name = "Workshop's jumpsuit" + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"bk" = ( +/obj/structure/table/anvil, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"bp" = ( +/obj/machinery/telecomms/server/presets/command{ + name = "Command Server" + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"bv" = ( +/obj/structure/closet/crate/bin, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"by" = ( +/obj/machinery/vending/forge, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"bB" = ( +/obj/structure/chair/comfy, +/turf/open/floor/wood, +/area/city/house) +"bF" = ( +/obj/structure/chair/comfy{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"bH" = ( +/obj/machinery/sleeper/syndie, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/city/house) +"bM" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags, +/obj/item/storage/firstaid, +/turf/open/indestructible/white, +/area/city/house) +"bO" = ( +/obj/machinery/door/airlock/grunge{ + name = "director's quarters"; + req_access_txt = "55" + }, +/turf/open/floor/carpet/black, +/area/city/house) +"bS" = ( +/obj/machinery/door/airlock/grunge{ + name = "office storage"; + req_access_txt = "69" + }, +/turf/open/floor/wood, +/area/city/house) +"bW" = ( +/obj/machinery/door/airlock/grunge, +/turf/open/floor/facility/dark, +/area/city/house) +"cc" = ( +/obj/structure/chair/comfy{ + dir = 8 + }, +/turf/open/floor/wood, +/area/city/house) +"cd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/city/house) +"ce" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/end{ + dir = 1 + }, +/turf/open/indestructible/white, +/area/city/house) +"ch" = ( +/obj/structure/fence/door/opened, +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"cl" = ( +/obj/structure/table/wood, +/obj/item/folder{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/folder/blue{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/folder/red{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/pen/fountain{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/carpet/black, +/area/city/house) +"cq" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Local Association"; + pixel_y = 30 + }, +/obj/machinery/computer/communications{ + req_access = list(55) + }, +/turf/open/floor/carpet/black, +/area/city/house) +"cy" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/bus/preset_one, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"cG" = ( +/obj/machinery/photocopier, +/turf/open/floor/carpet/black, +/area/city/house) +"cJ" = ( +/obj/structure/rack, +/obj/item/workshop_mod/regular/white, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"cM" = ( +/obj/structure/rack, +/obj/item/workshop_mod/regular/black, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"cP" = ( +/obj/structure/chair/comfy{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"cS" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/light/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating/light/corner, +/turf/open/indestructible/white, +/area/city/house) +"cV" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet/black, +/area/city/house) +"cX" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/end{ + dir = 4 + }, +/turf/open/indestructible/white, +/area/city/house) +"cZ" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/turf/open/indestructible/white, +/area/city/house) +"dh" = ( +/obj/effect/landmark/latejoin, +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"dp" = ( +/obj/structure/chair/comfy/black, +/turf/open/floor/carpet/black, +/area/city/house) +"ds" = ( +/obj/machinery/door/airlock/grunge{ + name = "director's armory access" + }, +/turf/open/floor/wood, +/area/city/house) +"dC" = ( +/obj/machinery/door/airlock/grunge{ + name = "veteran's armory access" + }, +/turf/open/floor/wood, +/area/city/house) +"dP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/end, +/turf/open/indestructible/white, +/area/city/house) +"dU" = ( +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/carpet/black, +/area/city/house) +"ed" = ( +/obj/structure/table/wood, +/obj/item/stack/spacecash/c10000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/radio/headset, +/turf/open/floor/carpet/black, +/area/city/house) +"ef" = ( +/turf/closed/indestructible/reinforced, +/area/facility_hallway/north) +"ei" = ( +/obj/structure/table/wood, +/obj/item/stamp{ + pixel_x = -4 + }, +/obj/item/stamp/denied{ + pixel_x = 4 + }, +/turf/open/floor/carpet/black, +/area/city/house) +"el" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/water/deep/freshwater, +/area/city) +"ep" = ( +/obj/structure/table, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/item/storage/box/papersack, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/city/house) +"eF" = ( +/obj/machinery/griddle, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/city/house) +"eM" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 7 + }, +/turf/open/floor/plasteel, +/area/city/house) +"eY" = ( +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/city/house) +"fe" = ( +/obj/machinery/computer/operating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/indestructible/white, +/area/city/house) +"ft" = ( +/obj/structure/table/optable, +/turf/open/indestructible/white, +/area/city/house) +"fw" = ( +/obj/structure/table/greyscale, +/obj/item/storage/backpack/duffelbag/med/upgradedsurgery, +/turf/open/indestructible/white, +/area/city/house) +"fI" = ( +/obj/machinery/vending/medical, +/turf/open/indestructible/white, +/area/city/house) +"fK" = ( +/obj/machinery/light, +/obj/machinery/vending/prosthetic, +/turf/open/indestructible/white, +/area/city/house) +"fP" = ( +/obj/structure/closet/crate, +/obj/machinery/light, +/turf/open/floor/wood, +/area/city/house) +"fZ" = ( +/obj/structure/rack, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/obj/item/clothing/gloves/color/black, +/turf/open/floor/wood, +/area/city/house) +"gb" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"gc" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/city/house) +"gg" = ( +/obj/machinery/telecomms/server/presets/engineering, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"gx" = ( +/obj/machinery/door/airlock/grunge, +/turf/open/floor/plasteel, +/area/city/house) +"gF" = ( +/obj/structure/curtain/cloth/fancy, +/turf/closed/indestructible/fakeglass, +/area/city/house) +"gH" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/floor/wood, +/area/city/house) +"gS" = ( +/obj/machinery/vending/cola, +/turf/open/floor/wood, +/area/city/house) +"gV" = ( +/obj/machinery/door/airlock/grunge{ + name = "director's office"; + req_access_txt = "55" + }, +/turf/open/floor/wood, +/area/city/house) +"hb" = ( +/obj/machinery/telecomms/server/presets/security, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"he" = ( +/obj/machinery/door/airlock/grunge{ + name = "veteran's office" + }, +/turf/open/floor/wood, +/area/city/house) +"hh" = ( +/obj/machinery/processor, +/turf/open/floor/plasteel, +/area/city/house) +"hm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/bus/preset_three, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"hw" = ( +/obj/structure/table, +/obj/item/kitchen/rollingpin, +/turf/open/floor/plasteel, +/area/city/house) +"hI" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/glass/beaker, +/turf/open/floor/plasteel, +/area/city/house) +"hJ" = ( +/obj/machinery/door/airlock/grunge{ + name = "single bunk" + }, +/turf/open/floor/wood, +/area/city/house) +"hM" = ( +/turf/open/floor/plating, +/area/city) +"hR" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/processor/preset_three, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"hV" = ( +/obj/structure/flora/ausbushes/grassybush, +/turf/open/floor/plating/grass, +/area/city) +"hX" = ( +/obj/structure/chair/comfy{ + dir = 4 + }, +/turf/open/floor/wood, +/area/city/house) +"ib" = ( +/obj/structure/fluff/beach_umbrella/engine, +/turf/open/floor/plating/grass, +/area/city) +"io" = ( +/obj/structure/flora/ausbushes/lavendergrass, +/turf/open/floor/plating/grass, +/area/city) +"ir" = ( +/obj/structure/flora/tree/jungle, +/turf/open/floor/plating/grass, +/area/city) +"iy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/light, +/obj/machinery/vending/boozeomat, +/turf/open/floor/plasteel, +/area/city/house) +"iA" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/city/house) +"iC" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/city/house) +"iH" = ( +/obj/structure/closet/secure_closet/freezer/meat/open, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/city/house) +"iK" = ( +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/structure/closet/crate, +/obj/item/reagent_containers/spray/chemsprayer/janitor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/city/house) +"iS" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/obj/structure/table, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/city/house) +"iU" = ( +/obj/machinery/door/airlock/grunge{ + name = "extra bunks" + }, +/turf/open/floor/wood, +/area/city/house) +"iX" = ( +/obj/machinery/door/airlock/grunge{ + name = "office entrance" + }, +/turf/open/floor/wood, +/area/city/house) +"jf" = ( +/turf/closed/indestructible/rock, +/area/city/house) +"jl" = ( +/obj/structure/table/reinforced, +/turf/open/floor/wood, +/area/city/house) +"jO" = ( +/obj/structure/closet/crate, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"jP" = ( +/turf/closed/indestructible/fakedoor, +/area/city) +"kf" = ( +/obj/machinery/vending/fixer, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/facility, +/area/city) +"kv" = ( +/obj/machinery/vending/city, +/turf/open/floor/facility, +/area/city) +"kA" = ( +/obj/structure/itemselling, +/turf/open/floor/facility, +/area/city) +"kC" = ( +/obj/structure/potential, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/facility, +/area/city) +"kG" = ( +/obj/machinery/door/airlock/wood{ + name = "general store" + }, +/turf/open/floor/facility, +/area/city) +"kH" = ( +/obj/effect/turf_decal/weather/sand, +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"kJ" = ( +/turf/closed/indestructible/fakeglass, +/area/city) +"kT" = ( +/obj/structure/fishshrine, +/turf/open/floor/plating/beach/sand, +/area/city) +"kV" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/floor/plating/beach/sand, +/area/city) +"kX" = ( +/obj/machinery/body_preservation_unit, +/obj/machinery/light, +/turf/open/floor/facility, +/area/city) +"lk" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/city/house) +"ll" = ( +/obj/structure/rack, +/obj/item/soap, +/turf/open/floor/facility, +/area/city) +"lr" = ( +/obj/machinery/cryopod, +/turf/open/floor/facility, +/area/city) +"lD" = ( +/obj/machinery/light, +/obj/machinery/cryopod, +/turf/open/floor/facility, +/area/city) +"lS" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 5 + }, +/obj/structure/table/reinforced, +/turf/open/floor/wood, +/area/city) +"mc" = ( +/obj/structure/bonfire/dense, +/turf/open/floor/plating/beach/sand, +/area/city) +"mg" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/bus/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"mi" = ( +/obj/structure/fluff/beach_umbrella/engine, +/turf/open/floor/plating/beach/sand, +/area/city) +"mr" = ( +/obj/structure/table/reinforced, +/obj/structure/fishcooker/fishfrier, +/turf/open/floor/wood, +/area/city) +"mx" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/wood, +/area/city) +"my" = ( +/obj/structure/fluff/beach_umbrella/science, +/obj/effect/landmark/observer_start, +/turf/open/floor/plating/beach/sand, +/area/city) +"mW" = ( +/obj/effect/turf_decal/weather/sand, +/obj/structure/fishcooker/fishstove, +/turf/open/floor/wood, +/area/city) +"mZ" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 6 + }, +/obj/structure/table/reinforced, +/obj/structure/sushimat, +/turf/open/floor/wood, +/area/city) +"nf" = ( +/obj/structure/chair/plastic, +/turf/open/floor/plating/beach/sand, +/area/city) +"nk" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/iv_drip/saline, +/turf/open/indestructible/white, +/area/city/house) +"nl" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/water/deep/saltwater, +/area/city) +"pZ" = ( +/obj/docking_port/stationary{ + dheight = 10; + dir = 2; + dwidth = 1; + height = 23; + id = "emergency_home"; + name = "Alphacorp emergency evac bay"; + width = 8 + }, +/turf/open/floor/plating, +/area/city) +"sc" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/relay/preset/telecomms, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"sm" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/receiver/preset_left, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"sD" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/receiver/preset_right, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"sZ" = ( +/obj/structure/table, +/obj/item/defibrillator/loaded, +/obj/machinery/cell_charger, +/obj/item/screwdriver, +/turf/open/indestructible/white, +/area/city/house) +"us" = ( +/obj/machinery/button/door/indestructible{ + id = "outskirtslockdown"; + name = "Outskirts Lockdown Button"; + pixel_x = 32 + }, +/turf/open/floor/wood, +/area/city/house) +"uY" = ( +/obj/structure/fishcooker/fishoven, +/turf/open/floor/wood, +/area/city) +"vK" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = -15 + }, +/turf/open/floor/plasteel, +/area/city/house) +"vR" = ( +/obj/machinery/telecomms/relay/preset/telecomms, +/obj/structure/emergency_shield, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"xe" = ( +/obj/structure/chair/comfy/black, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"xw" = ( +/obj/structure/rack, +/obj/item/radio/headset, +/turf/open/floor/wood, +/area/city/house) +"xW" = ( +/obj/structure/rack, +/obj/item/workshop_mod/regular/red, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"yK" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/bus/preset_four, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"yS" = ( +/obj/structure/forge, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/turf/open/floor/facility/dark, +/area/city/house) +"zr" = ( +/turf/closed/indestructible/reinforced, +/area/city) +"zN" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/processor/preset_two, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"Az" = ( +/turf/closed/indestructible/rock, +/area/city) +"BC" = ( +/obj/structure/table/wood, +/obj/structure/railing, +/turf/open/floor/wood, +/area/city/house) +"Cc" = ( +/obj/structure/table/reinforced, +/turf/open/floor/facility/dark, +/area/city/house) +"Cj" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"Dy" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/city/house) +"FY" = ( +/obj/machinery/telecomms/message_server/preset, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"GE" = ( +/obj/machinery/door/poddoor{ + id = "outskirtslockdown"; + name = "Outskirts Lockdown Door" + }, +/turf/open/floor/wood, +/area/city/house) +"GS" = ( +/obj/machinery/telecomms/server/presets/supply, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"Hm" = ( +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"HG" = ( +/obj/machinery/telecomms/server/presets/common, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"IH" = ( +/turf/closed/indestructible/fakeglass, +/area/city/house) +"IQ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/city/house) +"JC" = ( +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/telecomms/processor/preset_one, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"JG" = ( +/turf/open/floor/facility, +/area/city) +"JH" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"Ke" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/radio/headset, +/turf/open/floor/wood, +/area/city/house) +"Kq" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/random, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"KZ" = ( +/obj/machinery/telecomms/server/presets/medical, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"LS" = ( +/obj/effect/turf_decal/weather/sand{ + dir = 1 + }, +/obj/machinery/fish_market, +/turf/open/floor/wood, +/area/city) +"Nl" = ( +/turf/open/floor/plasteel, +/area/city/house) +"Ns" = ( +/obj/machinery/stasis, +/turf/open/indestructible/white, +/area/city/house) +"Oo" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/floor/plating/ashplanet/rocky, +/area/city) +"Oq" = ( +/turf/closed/indestructible/rock, +/area/space) +"Pd" = ( +/turf/open/floor/plating/grass, +/area/city) +"Pt" = ( +/turf/open/floor/wood, +/area/city/house) +"PE" = ( +/obj/effect/light_emitter{ + light_power = 4; + light_range = 25; + set_cap = 3; + set_luminosity = 24 + }, +/turf/open/floor/plating, +/area/city) +"Qy" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating, +/area/city) +"QL" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/ntnet_relay, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"QZ" = ( +/obj/machinery/telecomms/server/presets/science, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"Rt" = ( +/obj/structure/sign/warning/docking, +/turf/closed/indestructible/reinforced, +/area/city) +"Su" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/hub/preset, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"Tm" = ( +/turf/open/floor/carpet/black, +/area/city/house) +"TC" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/telecomms/processor/preset_four, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"TE" = ( +/obj/machinery/telecomms/broadcaster/preset_right, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"TI" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/open/floor/wood, +/area/city/house) +"Ud" = ( +/obj/structure/closet/crate, +/turf/open/floor/wood, +/area/city/house) +"Ut" = ( +/obj/structure/timelock, +/turf/open/floor/wood, +/area/city/house) +"UC" = ( +/obj/item/toy/seashell, +/turf/open/floor/plating/beach/sand, +/area/city) +"UQ" = ( +/turf/open/floor/facility/dark, +/area/city/house) +"VZ" = ( +/obj/effect/spawner/room/backstreet_template, +/turf/closed/indestructible/rock, +/area/space) +"Ww" = ( +/obj/machinery/telecomms/broadcaster/preset_left, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"WL" = ( +/turf/open/floor/plating/beach/sand, +/area/city) +"Xm" = ( +/turf/open/water/deep/freshwater, +/area/city) +"Xt" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/city/house) +"XK" = ( +/turf/open/space/basic, +/area/space) +"XU" = ( +/turf/open/indestructible/white, +/area/city/house) +"Yf" = ( +/obj/machinery/telecomms/server/presets/service, +/obj/effect/turf_decal/bot, +/turf/open/floor/circuit/telecomms/mainframe, +/area/facility_hallway/north) +"Zt" = ( +/obj/structure/bed/pod, +/obj/item/bedsheet/random, +/turf/open/floor/wood, +/area/city/house) +"ZH" = ( +/turf/open/water/deep/saltwater, +/area/city) +"ZP" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/light/end{ + dir = 8 + }, +/turf/open/indestructible/white, +/area/city/house) +"ZY" = ( +/turf/closed/indestructible/reinforced, +/area/city/house) + +(1,1,1) = {" +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +XK +VZ +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(2,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(3,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(4,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(5,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(6,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(7,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(8,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(9,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(10,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(11,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(12,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(13,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(14,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(15,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(16,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(17,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(18,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(19,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(20,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(21,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(22,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(23,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(24,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(25,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(26,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(27,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(28,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(29,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(30,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(31,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(32,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(33,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(34,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(35,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(36,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(37,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(38,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(39,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(40,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(41,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(42,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(43,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(44,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(45,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(46,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(47,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(48,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(49,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(50,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(51,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(52,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(53,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(54,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(55,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(56,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(57,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(58,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(59,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(60,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(61,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(62,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(63,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(64,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(65,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(66,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(67,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(68,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(69,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(70,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(71,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(72,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(73,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(74,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(75,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(76,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(77,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(78,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(79,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(80,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(81,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(82,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(83,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(84,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(85,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(86,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(87,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(88,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(89,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(90,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(91,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(92,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(93,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(94,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(95,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(96,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(97,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(98,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(99,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +zr +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(100,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(101,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(102,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +JH +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(103,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(104,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(105,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(106,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(107,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +hM +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(108,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +hM +pZ +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(109,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +zr +zr +zr +zr +zr +Oq +zr +Hm +Hm +hM +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(110,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +zr +Xm +Xm +Xm +Xm +Xm +zr +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(111,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +Xm +Xm +Xm +zr +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(112,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +zr +zr +zr +zr +zr +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(113,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +zr +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +Qy +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(114,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +Xm +Xm +Xm +zr +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(115,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +zr +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +PE +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(116,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +Xm +Xm +Xm +zr +zr +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(117,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +zr +Oq +Oq +Oq +Oq +Oq +Oq +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(118,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +zr +zr +zr +Rt +jP +jP +Rt +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(119,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +Pd +ib +Oo +dh +dh +dh +dh +zr +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(120,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +el +Xm +Pd +Pd +Pd +Oo +Hm +Hm +Hm +Hm +Hm +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(121,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Pd +Pd +io +Oo +Hm +Hm +Hm +Hm +Hm +Hm +Hm +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(122,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Pd +Pd +Pd +Oo +Hm +Hm +Hm +Hm +zr +Az +Az +zr +hM +hM +hM +hM +hM +hM +hM +hM +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(123,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Pd +hV +Pd +Oo +Hm +Hm +Hm +Hm +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(124,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +Pd +Pd +Oo +Hm +Hm +Hm +kH +LS +uY +mr +mW +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(125,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +Pd +io +ch +Hm +Hm +Hm +kH +WL +WL +UC +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(126,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +Xm +Xm +Xm +Xm +Pd +Pd +Oo +Hm +Hm +Hm +kH +WL +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(127,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +zr +zr +Xm +Xm +Xm +Pd +ir +zr +Hm +Hm +Hm +kH +kT +lS +mx +mZ +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(128,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +ZY +ZY +Hm +Hm +Hm +kH +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +nl +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(129,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ep +vK +IQ +IQ +iy +ZY +Hm +Hm +Hm +kH +UC +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(130,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +eF +Nl +hh +Nl +iA +ZY +Hm +Hm +Hm +kH +WL +WL +WL +nf +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(131,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +aV +UQ +cJ +ZY +eM +Nl +hw +Nl +iH +ZY +Hm +Hm +Hm +kH +kV +WL +my +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(132,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bd +UQ +cM +ZY +iC +Nl +hI +Nl +iK +ZY +Hm +Hm +Hm +kH +WL +UC +WL +WL +UC +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(133,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +be +UQ +xW +ZY +eY +gc +gc +gc +iS +ZY +Hm +Hm +Hm +kH +WL +WL +WL +nf +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(134,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +bW +ZY +ZY +Dy +gx +Dy +Dy +Dy +ZY +Hm +Hm +Hm +kH +WL +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(135,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bi +UQ +UQ +Cc +TI +Pt +jl +jl +jl +IH +Hm +Hm +Hm +kH +WL +mc +UC +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(136,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +yS +UQ +UQ +Cc +TI +Pt +Xt +Xt +Xt +IH +Hm +Hm +Hm +kH +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(137,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bk +UQ +UQ +Cc +TI +Pt +Pt +Pt +Pt +iX +Hm +Hm +Hm +kH +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(138,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bv +UQ +UQ +Cc +TI +Pt +Pt +Pt +Pt +IH +Hm +Hm +Hm +kH +WL +mi +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(139,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +by +UQ +UQ +UQ +TI +Pt +Pt +hX +hX +IH +Hm +Hm +Hm +kH +WL +UC +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(140,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +Dy +Dy +Dy +ZY +Cj +Pt +Pt +lk +lk +IH +Hm +Hm +Hm +kH +WL +WL +WL +UC +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(141,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Ut +GE +Pt +Pt +bB +lk +cP +Pt +Pt +gH +Pt +cc +cc +IH +Hm +Hm +Hm +kH +WL +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(142,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Ut +GE +Pt +Pt +Pt +Pt +Pt +Pt +Pt +Pt +Pt +Pt +hX +IH +Hm +Hm +Hm +kH +WL +UC +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +nl +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(143,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Ut +GE +us +Pt +Pt +Pt +Pt +Pt +Pt +Pt +Pt +Pt +lk +ZY +Hm +Hm +Hm +kH +WL +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(144,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +bF +cc +Pt +Pt +Pt +gS +Pt +Pt +cc +ZY +Hm +Hm +Hm +Hm +WL +WL +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(145,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bH +cd +cd +cd +fe +ZY +ap +Pt +ZY +ZY +zr +zr +kG +kJ +zr +zr +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(146,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +bM +XU +ZP +XU +ft +ZY +Pt +Pt +ZY +jf +zr +kf +JG +JG +kX +zr +WL +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +ZH +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(147,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Ns +ce +cS +dP +fw +ZY +Pt +Pt +ZY +jf +zr +kv +JG +JG +ll +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(148,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +nk +XU +cX +XU +fI +ZY +Pt +Pt +ZY +jf +zr +kA +JG +JG +lr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(149,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +sZ +XU +cZ +XU +fK +ZY +Pt +Pt +ZY +jf +zr +kC +JG +JG +lD +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(150,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ZY +ap +Pt +ZY +ZY +zr +zr +zr +zr +zr +zr +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(151,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +xe +aB +ZY +cl +Tm +dU +Tm +gF +Pt +Pt +ZY +Kq +Zt +Zt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(152,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Pt +aE +ZY +cq +dp +ed +cV +gF +Pt +Pt +iU +Pt +Pt +Pt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(153,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Pt +aH +ZY +cG +Tm +ei +Tm +ZY +Pt +Pt +ZY +Kq +Zt +Zt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(154,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ap +Pt +bO +Tm +Tm +Tm +Tm +gV +Pt +Pt +ZY +ZY +ZY +ZY +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(155,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +ZY +ds +ZY +ZY +ZY +ap +Pt +ZY +jO +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(156,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Ke +Pt +xw +ZY +at +Pt +BC +fZ +Pt +Pt +Pt +hJ +Pt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(157,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ax +Pt +ax +ZY +ax +Pt +BC +Pt +Pt +Pt +Pt +ZY +Kq +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(158,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ax +Pt +xw +ZY +at +Pt +BC +Pt +Pt +Pt +Pt +ZY +ZY +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(159,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +at +Pt +Pt +bS +Pt +Pt +BC +fZ +Pt +Pt +Pt +ZY +jO +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(160,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +ZY +dC +ZY +ZY +ZY +ap +Pt +hJ +Pt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(161,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ap +Zt +Ud +ZY +Pt +Pt +ZY +Kq +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(162,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Pt +Pt +Pt +he +Pt +Pt +ZY +ZY +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(163,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +xe +lk +gb +ZY +Pt +Pt +ZY +jO +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(164,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +ap +Pt +hJ +Pt +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(165,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +hJ +ZY +ZY +Kq +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(166,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +Kq +Pt +fP +ZY +ZY +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(167,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ZY +ZY +ZY +ZY +ZY +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(168,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(169,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(170,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +ef +ef +ef +ef +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(171,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +KZ +FY +ef +ef +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(172,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +zN +JC +mg +QZ +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(173,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +Su +sm +cy +gg +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(174,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +TC +hR +hm +GS +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(175,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +sc +sD +yK +Yf +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(176,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +Ww +QL +TE +bp +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(177,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +HG +hb +ef +vR +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(178,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +ef +ef +ef +ef +ef +ef +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(179,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(180,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(181,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(182,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(183,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(184,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(185,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(186,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(187,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(188,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(189,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(190,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(191,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(192,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(193,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(194,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(195,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(196,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(197,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(198,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(199,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(200,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(201,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(202,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(203,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(204,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(205,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(206,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(207,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(208,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(209,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(210,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(211,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(212,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(213,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(214,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(215,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(216,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(217,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(218,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(219,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(220,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(221,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(222,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(223,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(224,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(225,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(226,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(227,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(228,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(229,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(230,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(231,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(232,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(233,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(234,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(235,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(236,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(237,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(238,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(239,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(240,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(241,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(242,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(243,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(244,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(245,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(246,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(247,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(248,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(249,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(250,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(251,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(252,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(253,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(254,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} +(255,1,1) = {" +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +Oq +"} diff --git a/_maps/map_files/Event/rcorp.dmm b/_maps/map_files/Event/rcorp.dmm index 91d235c6921f..9c626dd11c0c 100644 --- a/_maps/map_files/Event/rcorp.dmm +++ b/_maps/map_files/Event/rcorp.dmm @@ -18,31 +18,6 @@ /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit/telecomms/mainframe, /area/city/outskirts) -"cj" = ( -/obj/structure/closet/crate{ - name = "rcorp explosives"; - color = "#d67200" - }, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/effect/turf_decal/box/red, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/black, -/obj/item/grenade/r_corp/pale, -/obj/item/grenade/r_corp/pale, -/turf/open/floor/pod/dark, -/area/city/outskirts) "co" = ( /obj/effect/landmark/abno_objectivespawn, /turf/open/floor/plating/asteroid, @@ -308,38 +283,6 @@ /obj/item/clothing/suit/armor/ego_gear/rcorp_officer, /turf/open/floor/pod, /area/city/outskirts) -"nV" = ( -/obj/structure/closet/crate{ - name = "rcorp explosives"; - color = "#d67200" - }, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/effect/turf_decal/box/red, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp/white, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/obj/item/grenade/r_corp, -/turf/open/floor/pod/dark, -/area/city/outskirts) "oi" = ( /turf/closed/indestructible/rock, /area/city/outskirts) @@ -824,12 +767,6 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/circuit/telecomms/mainframe, /area/city/outskirts) -"LX" = ( -/obj/effect/turf_decal/caution/red{ - dir = 8 - }, -/turf/open/floor/pod/light, -/area/city/outskirts) "Mk" = ( /obj/effect/turf_decal/sand, /obj/machinery/sleeper/syndie, @@ -8843,9 +8780,9 @@ aC aC aC UE -LX Hk -LX +Hk +Hk pi aC QY @@ -9045,9 +8982,9 @@ fC RY aC UE -nV Qd -cj +Qd +Qd oj aC aC diff --git a/_maps/map_files/generic/Manager.dmm b/_maps/map_files/generic/Manager.dmm index f504970d8c2e..d015102e9e29 100644 --- a/_maps/map_files/generic/Manager.dmm +++ b/_maps/map_files/generic/Manager.dmm @@ -176,36 +176,6 @@ /turf/open/floor/wood, /area/facility_hallway/manager) "dt" = ( -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -17; - pixel_y = 39 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -17; - pixel_y = 27 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = 3; - pixel_y = 45 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = 3; - pixel_y = 33 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -37; - pixel_y = 33 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -37; - pixel_y = 21 - }, /obj/machinery/computer/abnormality_queue, /turf/open/floor/facility/dark, /area/department_main/manager) @@ -224,16 +194,6 @@ /turf/open/floor/carpet/royalblack, /area/facility_hallway/manager) "dL" = ( -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -10; - pixel_y = 45 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -10; - pixel_y = 33 - }, /obj/machinery/computer/camera_advanced/manager, /obj/machinery/light/cold/no_nightlight{ dir = 1 @@ -244,16 +204,6 @@ /turf/open/floor/facility/dark, /area/department_main/manager) "dQ" = ( -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -24; - pixel_y = 45 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -24; - pixel_y = 33 - }, /obj/machinery/computer/crew, /turf/open/floor/facility/dark, /area/department_main/manager) @@ -292,6 +242,9 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) +"eD" = ( +/turf/open/floor/carpet/orange, +/area/department_main/manager) "eE" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -362,41 +315,17 @@ dir = 4 }, /obj/machinery/light/floor, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -37; - pixel_y = 45 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -37; - pixel_y = 33 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -17; - pixel_y = 39 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = -17; - pixel_y = 27 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = 3; - pixel_y = 33 - }, -/obj/machinery/computer/security/telescreen{ - network = list("ss13"); - pixel_x = 3; - pixel_y = 21 - }, /obj/structure/displaycase/trophy{ alert = 0 }, /turf/open/floor/plasteel/dark, /area/department_main/manager) +"fU" = ( +/obj/structure/table/wood, +/obj/item/clipboard, +/obj/item/pen/fourcolor, +/turf/open/floor/carpet/royalblack, +/area/department_main/manager) "fW" = ( /obj/machinery/computer/crew{ dir = 1 @@ -453,6 +382,18 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) +"gX" = ( +/obj/structure/table/wood/fancy/royalblack, +/obj/item/reagent_containers/food/drinks/mug/tea{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/toy/clockwork_watch{ + pixel_x = 7; + pixel_y = 2 + }, +/turf/open/floor/carpet/royalblack, +/area/department_main/manager) "hj" = ( /obj/machinery/computer/crew{ dir = 8 @@ -554,6 +495,12 @@ /obj/item/toy/plush/kod, /turf/open/floor/plasteel/dark, /area/facility_hallway/manager) +"it" = ( +/obj/machinery/computer/abnormality_logs{ + dir = 4 + }, +/turf/open/floor/wood, +/area/department_main/manager) "ix" = ( /obj/structure/railing{ dir = 6 @@ -620,6 +567,10 @@ /obj/machinery/holopad/secure, /turf/open/floor/carpet/green, /area/facility_hallway/manager) +"jL" = ( +/obj/machinery/computer/camera_advanced/manager/sephirah, +/turf/open/floor/carpet/orange, +/area/department_main/manager) "jZ" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -819,10 +770,17 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) -"mt" = ( -/obj/structure/table/wood, -/obj/item/storage/lockbox/medal, -/turf/open/floor/facility/dark, +"mu" = ( +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/carpet/royalblack, +/area/department_main/manager) +"mx" = ( +/obj/machinery/computer/abnormality_archive{ + dir = 8 + }, +/turf/open/floor/wood, /area/department_main/manager) "my" = ( /obj/machinery/door/window/brigdoor/southright, @@ -1055,6 +1013,10 @@ /obj/effect/turf_decal/siding/white, /turf/open/floor/carpet/black, /area/facility_hallway/manager) +"qe" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet/orange, +/area/department_main/manager) "qj" = ( /obj/machinery/status_display{ pixel_y = -32 @@ -1187,6 +1149,10 @@ }, /turf/open/floor/plasteel/dark, /area/department_main/manager) +"rF" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet/royalblack, +/area/department_main/manager) "rH" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -1319,6 +1285,8 @@ /obj/machinery/status_display{ pixel_x = -32 }, +/obj/structure/table/wood, +/obj/item/storage/lockbox/medal, /turf/open/floor/plasteel/dark, /area/department_main/manager) "tn" = ( @@ -1364,6 +1332,13 @@ /obj/machinery/roulette, /turf/open/floor/plasteel/dark, /area/facility_hallway/manager) +"ug" = ( +/obj/machinery/door/poddoor{ + id = "sephirah"; + name = "cic blast door" + }, +/turf/closed/indestructible/fakeglass, +/area/department_main/manager) "ui" = ( /obj/effect/turf_decal/siding/white{ dir = 4 @@ -1377,6 +1352,17 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) +"uL" = ( +/obj/machinery/door/airlock/public/glass{ + hackProof = 1; + max_integrity = 250000000; + name = "Sefirot Auxiliary Offices"; + normal_integrity = 250000000; + req_access_txt = "67"; + whitelist_door = 1 + }, +/turf/open/floor/facility/dark, +/area/department_main/manager) "uY" = ( /obj/machinery/light{ dir = 4; @@ -1565,6 +1551,14 @@ }, /turf/open/floor/carpet/red, /area/facility_hallway/manager) +"xg" = ( +/obj/machinery/button/door/indestructible{ + id = "sephirah"; + name = "Sephirah CIC opening"; + pixel_y = -25 + }, +/turf/open/floor/wood, +/area/department_main/manager) "xq" = ( /obj/machinery/vending/lobotomyuniform, /obj/machinery/light, @@ -1660,6 +1654,12 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) +"yA" = ( +/obj/structure/chair/comfy/brown{ + dir = 1 + }, +/turf/open/floor/carpet/orange, +/area/department_main/manager) "yD" = ( /obj/effect/turf_decal/tile{ color = "#111111"; @@ -1923,6 +1923,11 @@ }, /turf/open/floor/carpet/cyan, /area/department_main/manager) +"Cl" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/reagent_containers/hypospray/medipen, +/turf/open/floor/carpet/green, +/area/department_main/manager) "Cn" = ( /obj/structure/rack, /obj/item/toy/plush/sow, @@ -2184,6 +2189,9 @@ }, /turf/open/floor/carpet/orange, /area/facility_hallway/manager) +"Gw" = ( +/turf/open/floor/carpet/green, +/area/department_main/manager) "Gy" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, @@ -2222,6 +2230,12 @@ }, /turf/open/floor/facility/dark, /area/department_main/manager) +"Hj" = ( +/obj/structure/chair/comfy/beige{ + dir = 1 + }, +/turf/open/floor/carpet/green, +/area/department_main/manager) "Ht" = ( /obj/machinery/door/poddoor/preopen{ id = "managerlockdown"; @@ -2280,9 +2294,17 @@ }, /turf/open/floor/carpet/royalblack, /area/facility_hallway/manager) +"HY" = ( +/obj/machinery/computer/camera_advanced/manager/sephirah, +/turf/open/floor/carpet/green, +/area/department_main/manager) "HZ" = ( /turf/closed/indestructible/fakeglass, /area/facility_hallway/manager) +"If" = ( +/obj/machinery/computer/crew, +/turf/open/floor/carpet/green, +/area/department_main/manager) "Ik" = ( /obj/structure/chair/sofa/corp/left{ dir = 8 @@ -2603,6 +2625,15 @@ }, /turf/open/floor/wood, /area/facility_hallway/manager) +"Oo" = ( +/obj/structure/table/wood/fancy/orange, +/obj/item/toy/katana, +/obj/item/reagent_containers/food/drinks/coffee{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/carpet/orange, +/area/department_main/manager) "Ou" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -3164,6 +3195,10 @@ /obj/machinery/text_adventure_console, /turf/open/floor/carpet/royalblue, /area/facility_hallway/manager) +"Ya" = ( +/obj/machinery/computer/camera_advanced/manager/sephirah, +/turf/open/floor/carpet/royalblack, +/area/department_main/manager) "Yc" = ( /obj/structure/chair/comfy/black{ dir = 1 @@ -5920,9 +5955,9 @@ XL XL XL XL -XL -XL -XL +Qf +Qf +Qf XL XL XL @@ -6022,9 +6057,9 @@ XL XL XL XL -XL -XL -XL +Qf +be +Qf XL XL XL @@ -6124,9 +6159,9 @@ XL XL XL XL -XL -XL -XL +Qf +bh +Qf XL XL XL @@ -6226,9 +6261,9 @@ XL XL XL XL -XL -XL -XL +Qf +bj +Qf XL XL XL @@ -6328,9 +6363,9 @@ XL XL XL XL -XL -XL -XL +Qf +Qf +Qf XL XL XL @@ -7253,10 +7288,10 @@ XL XL XL XL -XL -XL -XL -XL +Qf +Qf +Qf +Qf Qf Qf tc @@ -7354,11 +7389,11 @@ XL XL XL XL -XL -XL -XL -XL -XL +Qf +Qf +Cl +it +Qf Qf El mQ @@ -7456,10 +7491,10 @@ XL XL XL XL -XL -XL -XL -XL +Qf +HY +Hj +Vw Qf Qf Zw @@ -7558,11 +7593,11 @@ XL XL XL XL -XL -XL -Qf -Qf Qf +If +Gw +Vw +ug dj gc nm @@ -7660,11 +7695,11 @@ XL XL XL XL -XL -XL -Qf -be Qf +Oo +eD +Vw +ug dt hD nG @@ -7762,11 +7797,11 @@ XL XL XL XL -XL -XL -Qf -bh Qf +jL +yA +Vw +ug dL ka or @@ -7864,11 +7899,11 @@ XL XL XL XL -XL -XL -Qf -bj Qf +qe +eD +Vw +ug dQ lc Zg @@ -7966,11 +8001,11 @@ XL XL XL XL -XL -XL -Qf -Qf Qf +gX +or +Vw +ug fJ lE rl @@ -8068,10 +8103,10 @@ XL XL XL XL -XL -XL -XL -XL +Qf +Ya +mu +xg Qf Qf lW @@ -8170,13 +8205,13 @@ XL XL XL XL -XL -XL -XL -XL -XL Qf -mt +rF +or +Vw +Vw +uL +va Qt ui CI @@ -8272,11 +8307,11 @@ XL XL XL XL -XL -XL -XL -XL -XL +Qf +Qf +fU +mx +Vw Qf Qf rz @@ -8375,11 +8410,11 @@ XL XL XL XL -XL -XL -XL -XL -XL +Qf +Qf +Qf +Qf +Qf Qf Qf Qf diff --git a/_maps/office.json b/_maps/office.json new file mode 100644 index 000000000000..3f5e7485ad4a --- /dev/null +++ b/_maps/office.json @@ -0,0 +1,17 @@ +{ + "version": 1, + "map_name": "Fixer Office", + "map_path": "map_files/Event", + "map_file": [ + "fixer_office.dmm" + ], + "traits": [ + { + "Baseturf": "/turf/open/floor/plating/asteroid" + } + ], + "space_ruin_levels": 0, + "space_empty_levels": 0, + "minetype": "none", + "maptype": "office" +} diff --git a/code/__DEFINES/abnormalities.dm b/code/__DEFINES/abnormalities.dm index 71b708ef510b..5a254c6f0d93 100644 --- a/code/__DEFINES/abnormalities.dm +++ b/code/__DEFINES/abnormalities.dm @@ -14,6 +14,7 @@ // Breach types #define BREACH_NORMAL 0 #define BREACH_PINK 1 +#define BREACH_MINING 2 // List #define THREAT_TO_NAME list(\ diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 1cd3270b56dc..e33c5594acc7 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -568,6 +568,7 @@ // /mob/living/simple_animal/hostile signals #define COMSIG_HOSTILE_ATTACKINGTARGET "hostile_attackingtarget" +#define COMSIG_HOSTILE_LOSTTARGET "hostile_losttarget" #define COMPONENT_HOSTILE_NO_ATTACK (1<<0) /// a hostile has started their patrol (datum/source, mob/living/simple_animal/hostile/mover, turf/target_location) #define COMSIG_GLOB_PATROL_START "!patrol_start" @@ -1093,3 +1094,8 @@ // Ordeal signals // When the ordeal ends; (/datum/ordeal) #define COMSIG_GLOB_ORDEAL_END "!ordeal_end" + + +// Crate signals +#define COMSIG_CRATE_LOOTING_STARTED "looting_started" +#define COMSIG_CRATE_LOOTING_ENDED "looting_ended" diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index e98b83f2bf7a..906e807b673c 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -12,6 +12,15 @@ #define JOB_DISPLAY_ORDER_DEFAULT 0 +#define DEPARTMENT_SECURITY (1<<0) +#define DEPARTMENT_COMMAND (1<<1) +#define DEPARTMENT_SERVICE (1<<2) +#define DEPARTMENT_CARGO (1<<3) +#define DEPARTMENT_ENGINEERING (1<<4) +#define DEPARTMENT_SCIENCE (1<<5) +#define DEPARTMENT_MEDICAL (1<<6) +#define DEPARTMENT_SILICON (1<<7) + //Command #define JOB_DISPLAY_ORDER_MANAGER 1 #define JOB_DISPLAY_ORDER_SEPHIRAH 2 diff --git a/code/__DEFINES/~lobotomy_defines/jobs.dm b/code/__DEFINES/~lobotomy_defines/jobs.dm new file mode 100644 index 000000000000..98bbb4699241 --- /dev/null +++ b/code/__DEFINES/~lobotomy_defines/jobs.dm @@ -0,0 +1,6 @@ +#define DEPARTMENT_W_CORP (1<<10) +#define DEPARTMENT_R_CORP (1<<11) +#define DEPARTMENT_HANA (1<<12) +#define DEPARTMENT_ASSOCIATION (1<<13) +#define DEPARTMENT_CITY_ANTAGONIST (1<<13) +#define DEPARTMENT_FIXERS (1<<14) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index e41ead876a45..ba6423ae92da 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -136,6 +136,9 @@ return dist +/proc/get_dist_manhattan(atom/Loc1, atom/Loc2) + return abs(Loc1.x - Loc2.x) + abs(Loc1.y - Loc2.y) + /proc/circlerangeturfs(center=usr,radius=3) var/turf/centerturf = get_turf(center) diff --git a/code/_globalvars/tgui.dm b/code/_globalvars/tgui.dm new file mode 100644 index 000000000000..6903af6d9133 --- /dev/null +++ b/code/_globalvars/tgui.dm @@ -0,0 +1 @@ +GLOBAL_DATUM(crew_manifest_tgui, /datum/crew_manifest) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 4c9aa2080766..50648489ec98 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -145,9 +145,12 @@ if(CanReach(A,W)) if(W) var/atom/target_thing = A - if((isturf(A) || iseffect(A)) && W.force > 10) + if(a_intent != INTENT_HARM && (isturf(A) || iseffect(A)) && W.force > 10) var/turf/T = get_turf(A) for(var/mob/living/L in T) + if(istype(L, /mob/living/simple_animal/projectile_blocker_dummy)) + var/mob/living/simple_animal/projectile_blocker_dummy/pbd = L + L = pbd.parent if(L.invisibility > see_invisible) continue if(L.stat != DEAD) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 25457cf896e0..a36b3d068618 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -84,6 +84,9 @@ for(var/turf/T in hit_turfs) for(var/mob/M in T) + if(istype(M, /mob/living/simple_animal/projectile_blocker_dummy)) + var/mob/living/simple_animal/projectile_blocker_dummy/pbd = M + M = pbd.parent potential_targets |= M potential_targets -= user diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm index 6c573094f717..aa00ea7509ad 100644 --- a/code/_onclick/other_mobs.dm +++ b/code/_onclick/other_mobs.dm @@ -209,6 +209,9 @@ if(isturf(A) || iseffect(A)) var/turf/T = get_turf(A) for(var/mob/living/L in T) + if(istype(L, /mob/living/simple_animal/projectile_blocker_dummy)) + var/mob/living/simple_animal/projectile_blocker_dummy/pbd = L + L = pbd.parent if(L.invisibility > see_invisible) continue if(L.stat != DEAD) diff --git a/code/controllers/subsystem/maptype.dm b/code/controllers/subsystem/maptype.dm index bcdf86aabd82..14d68b56a09c 100644 --- a/code/controllers/subsystem/maptype.dm +++ b/code/controllers/subsystem/maptype.dm @@ -12,19 +12,19 @@ SUBSYSTEM_DEF(maptype) var/jobtype //If a map RNGs which jobs are available, use this //All the map tags that delete all jobs and replace them with others. - var/list/clearmaps = list("rcorp", "city", "wcorp", "limbus_labs", "fixers") + var/list/clearmaps = list("rcorp", "city", "wcorp", "limbus_labs", "fixers", "office") //All the map tags that are combat maps and need abnos to breach immediately - var/list/combatmaps = list("rcorp", "wcorp", "limbus_labs", "fixers") + var/list/combatmaps = list("rcorp", "wcorp", "limbus_labs", "fixers", "office") //Ghosts should be possessbale at all times var/list/autopossess = list("rcorp", "limbus_labs") //These end after a certain number of minutes. - var/list/autoend = list("rcorp", "wcorp", "limbus_labs", "fixers") + var/list/autoend = list("rcorp", "wcorp", "limbus_labs", "fixers", "office") //This map is city stuff - var/list/citymaps = list("wonderlabs", "city", "fixers") + var/list/citymaps = list("wonderlabs", "city", "fixers", "office") //This is for maps that incorporate space var/list/spacemaps = list("skeld") @@ -36,7 +36,7 @@ SUBSYSTEM_DEF(maptype) var/list/nofear = list("limbus_labs") //What departments are we looking at - var/list/departments = list("Command","Security","Service") + var/list/departments = list("Command", "Security", "Service") /datum/controller/subsystem/maptype/Initialize() @@ -44,12 +44,20 @@ SUBSYSTEM_DEF(maptype) //Badda Bing Badda Da. This makes the latejoin menu cleaner switch(SSmaptype.maptype) - if("wonderlabs", "city", "fixers") - departments = list("Command", "Security", "Service", "Science") + if("wonderlabs") + departments = list("Command", "Fixers", "Security", "Service") + if("city") + departments = list("Command", "Hana", "Association", "Syndicate", "Fixers", "Medical", "Security", "Service") + if("fixers") + departments = list("Command", "Hana", "Association", "Fixers", "Medical", "Service") + if("office") + departments = list("Command", "Fixers") if("limbus_labs") - departments = list("Command", "Security","Medical", "Science", "Service" ) - if("rcorp", "wcorp") - departments = list("Command", "Security") + departments = list("Command", "Security", "Medical", "Science", "Engineering", "Service" ) + if("rcorp") + departments = list("Command", "R Corp", "Medical") + if("wcorp") + departments = list("Command", "W Corp") var/list/all_jobs = subtypesof(/datum/job) if(!all_jobs.len) diff --git a/code/datums/abnormality/_ego_datum/teth.dm b/code/datums/abnormality/_ego_datum/teth.dm index 2b7c35c20ad7..30b3921e22f8 100644 --- a/code/datums/abnormality/_ego_datum/teth.dm +++ b/code/datums/abnormality/_ego_datum/teth.dm @@ -326,6 +326,15 @@ item_path = /obj/item/ego_weapon/sanitizer cost = 20 +//Kikimora Kiki_Mora +/datum/ego_datum/weapon/kikimora + item_path = /obj/item/ego_weapon/kikimora + cost = 20 + +/datum/ego_datum/armor/kikimora + item_path = /obj/item/clothing/suit/armor/ego_gear/teth/kikimora + cost = 20 + // Faelantern - Midwinter Nightmare /datum/ego_datum/armor/faelantern item_path = /obj/item/clothing/suit/armor/ego_gear/teth/faelantern diff --git a/code/datums/components/crafting/recipes/carnival_silk/armor_weaving/carnival_bloodfiend.dm b/code/datums/components/crafting/recipes/carnival_silk/armor_weaving/carnival_bloodfiend.dm new file mode 100644 index 000000000000..68948a26f4b4 --- /dev/null +++ b/code/datums/components/crafting/recipes/carnival_silk/armor_weaving/carnival_bloodfiend.dm @@ -0,0 +1,28 @@ +//Bloodfiend Recipes +/datum/crafting_recipe/bloodfiend_coat + name = "Masquerade Coat" + result = /obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/masquerade_coat + reqs = list( + /obj/item/stack/sheet/silk/crimson_simple = 2, + /obj/item/stack/sheet/silk/green_advanced = 1, + /obj/item/stack/sheet/silk/human_simple = 1 + ) + tools = list(/obj/item/silkknife = 1) + time = 15 + always_available = FALSE + category = CAT_SILK + subcategory = CAT_ARMOR + +/datum/crafting_recipe/bloodfiend_cloak + name = "Masquerade Cloak" + result = /obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak + reqs = list( + /obj/item/stack/sheet/silk/crimson_simple = 4, + /obj/item/stack/sheet/silk/green_advanced = 2, + /obj/item/stack/sheet/silk/human_advanced = 1 + ) + tools = list(/obj/item/silkknife = 1) + time = 15 + always_available = FALSE + category = CAT_SILK + subcategory = CAT_ARMOR diff --git a/code/datums/components/crafting/recipes/carnival_silk/silk_tailoring/carnival_transfer.dm b/code/datums/components/crafting/recipes/carnival_silk/silk_tailoring/carnival_transfer.dm index 4b276e0f1abb..a98d0e5fa121 100644 --- a/code/datums/components/crafting/recipes/carnival_silk/silk_tailoring/carnival_transfer.dm +++ b/code/datums/components/crafting/recipes/carnival_silk/silk_tailoring/carnival_transfer.dm @@ -43,7 +43,7 @@ //Advanced Transfers /datum/crafting_recipe/azure_silk_transfer name = "Violet/Crimson Silk to Azure Silk" - result = /obj/item/stack/sheet/silk/amber_simple + result = /obj/item/stack/sheet/silk/azure_simple reqs = list(/obj/item/stack/sheet/silk/crimson_advanced = 1, /obj/item/stack/sheet/silk/violet_advanced = 1) tools = list(/obj/item/silkknife = 1) time = 5 diff --git a/code/datums/components/crafting/recipes/clothing.dm b/code/datums/components/crafting/recipes/clothing.dm index 2464c713c470..165c248dfdea 100644 --- a/code/datums/components/crafting/recipes/clothing.dm +++ b/code/datums/components/crafting/recipes/clothing.dm @@ -64,6 +64,21 @@ time = 45 category = CAT_CLOTHING +/datum/crafting_recipe/santahat + name = "Santa Hat" + result = /obj/item/clothing/head/santa + reqs = list(/obj/item/stack/sheet/cotton/cloth = 4) + time = 10 + category = CAT_CLOTHING + +/datum/crafting_recipe/reindeerhat + name = "Reindeer Antlers" + result = /obj/item/clothing/head/hardhat/reindeer + reqs = list(/obj/item/stack/sheet/cotton/cloth = 1, + /obj/item/light/bulb = 1) + time = 10 + category = CAT_CLOTHING + /////DURATHREAD /datum/crafting_recipe/durathread_vest name = "Durathread Vest" diff --git a/code/datums/components/return_to_origin.dm b/code/datums/components/return_to_origin.dm new file mode 100644 index 000000000000..496fc3d33ee5 --- /dev/null +++ b/code/datums/components/return_to_origin.dm @@ -0,0 +1,25 @@ +/datum/component/return_to_origin + dupe_mode = COMPONENT_DUPE_UNIQUE + var/mob/living/simple_animal/hostile/parent_hostile + var/turf/origin + var/original_dir = 1 + + +/datum/component/return_to_origin/Initialize() + if(!ishostile(parent)) + return COMPONENT_INCOMPATIBLE + + parent_hostile = parent + original_dir = parent_hostile.dir + origin = get_turf(parent_hostile) + RegisterSignal(parent, COMSIG_HOSTILE_LOSTTARGET, PROC_REF(ParentLostTarget)) + addtimer(CALLBACK(src, PROC_REF(ParentLostTarget)), 50) + +/datum/component/return_to_origin/proc/ParentLostTarget() + // patrol back + if (!parent_hostile.target) + if (get_turf(parent_hostile) != origin) + parent_hostile.patrol_to(origin) + else + parent_hostile.dir = original_dir + addtimer(CALLBACK(src, PROC_REF(ParentLostTarget)), 50) diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 2795b182bab3..a5bec57e0841 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -148,7 +148,15 @@ "Science", "Supply", "Service", - "Silicon" + "Silicon", + // LOBOTOMYCORPORATION ADDITION START + "W Corp", + "R Corp", + "Hana", + "Association", + "Syndicate", + "Fixers", + // LOBOTOMYCORPORATION ADDITION END ) var/list/departments = list( "Command" = GLOB.command_positions, @@ -158,8 +166,18 @@ "Science" = GLOB.science_positions, "Supply" = GLOB.supply_positions, "Service" = GLOB.service_positions, - "Silicon" = GLOB.nonhuman_positions + "Silicon" = GLOB.nonhuman_positions, + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = GLOB.w_corp_positions, + "R Corp" = GLOB.r_corp_positions, + "Hana" = GLOB.hana_positions, + "Association" = GLOB.association_positions, + "Syndicate" = GLOB.city_antagonist_positions, + "Fixers" = GLOB.fixer_positions, + // LOBOTOMYCORPORATION ADDITION END ) + var/list/heads = GLOB.command_positions + list("Quartermaster") + for(var/datum/data/record/t in GLOB.data_core.general) var/name = t.fields["name"] var/rank = t.fields["rank"] @@ -170,12 +188,33 @@ if((rank in jobs) || (true_rank in jobs)) //Tegu edit - alt job titles if(!manifest_out[department]) manifest_out[department] = list() - manifest_out[department] += list(list( - "name" = name, - "rank" = rank - )) + // LOBOTOMYCORPORATION ADDITION START + var/duplicate_found = FALSE + for(var/list/data as anything in manifest_out[department]) + if(findtext(data["name"], name) && rank == data["rank"]) + duplicate_found = TRUE + if(length(data) == 2) + data["count"] = 1 + data["count"]++ + data["name"] = "x[data["count"]] [name]" + continue + + if(duplicate_found) + has_department = TRUE + continue + // LOBOTOMYCORPORATION ADDITION END + // Append to beginning of list if captain or department head + if (rank == "Captain" || (department != "Command" && (rank in heads))) + manifest_out[department] = list(list( + "name" = name, + "rank" = rank + )) + manifest_out[department] + else + manifest_out[department] += list(list( + "name" = name, + "rank" = rank + )) has_department = TRUE - break if(!has_department) if(!manifest_out["Misc"]) manifest_out["Misc"] = list() diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 041a09a23dee..80147e9cf226 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -1005,6 +1005,30 @@ owner.cut_overlay(statuseffectvisual) return ..() +#define MOB_QUARTERSPEED /datum/movespeed_modifier/bloodhold +/datum/status_effect/bloodhold + id = "bloodhold" + duration = 8 SECONDS + alert_type = null + status_type = STATUS_EFFECT_REFRESH + var/statuseffectvisual + +/datum/status_effect/bloodhold/on_apply() + . = ..() + owner.add_movespeed_modifier(MOB_QUARTERSPEED) + to_chat(owner, "You are slowed down as your own blood resists your movement!") + var/mutable_appearance/effectvisual = mutable_appearance('icons/obj/clockwork_objects.dmi', "hateful_manacles") + effectvisual.pixel_x = -owner.pixel_x + effectvisual.pixel_y = -owner.pixel_y + statuseffectvisual = effectvisual + owner.add_overlay(statuseffectvisual) + +/datum/status_effect/bloodhold/on_remove() + owner.remove_movespeed_modifier(MOB_QUARTERSPEED) + + owner.cut_overlay(statuseffectvisual) + return ..() + //update_stamina() is move_to_delay = (initial(move_to_delay) + (staminaloss * 0.06)) // 100 stamina damage equals 6 additional move_to_delay. So 167*0.06 = 10.02 @@ -1109,9 +1133,10 @@ owner.playsound_local(owner, 'sound/effects/burn.ogg', 50, TRUE) Check_Resist(owner) if(ishuman(owner)) - owner.adjustBruteLoss(max(0, stacks - burn_res)) + owner.adjustFireLoss(max(0, stacks - burn_res)) else owner.adjustBruteLoss(stacks*4) // x4 on non humans (Average burn stack is 20. 80/5 sec, extra 16 pure dps) + new /obj/effect/temp_visual/damage_effect/burn(get_turf(owner)) //Deletes itself after 2 tick if no new burn stack was given if(safety) @@ -1162,6 +1187,82 @@ else B.add_stacks(stacks) +#define STATUS_EFFECT_LCBLEED /datum/status_effect/stacking/lc_bleed // Deals true damage every 5 sec, can't be applied to godmode (contained abos) +/datum/status_effect/stacking/lc_bleed + id = "lc_bleed" + alert_type = /atom/movable/screen/alert/status_effect/lc_bleed + max_stacks = 50 + tick_interval = 5 SECONDS + consumed_on_threshold = FALSE + var/new_stack = FALSE + var/burn_res = 0 + var/safety = TRUE + var/bleed_cooldown = 20 + var/bleed_time + +/atom/movable/screen/alert/status_effect/lc_bleed + name = "Bleeding" + desc = "You're currently bleeding!!" + icon = 'ModularTegustation/Teguicons/status_sprites.dmi' + icon_state = "lc_bleed" + +//Bleed Damage Stuff +/datum/status_effect/stacking/lc_bleed/on_apply() + . = ..() + RegisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(Moved)) + +//Deals true damage +/datum/status_effect/stacking/lc_bleed/proc/Moved(mob/user, atom/new_location) + SIGNAL_HANDLER + if (world.time - bleed_time < bleed_cooldown) + return + bleed_time = world.time + if(!can_have_status()) + qdel(src) + to_chat(owner, "Your organs bleed due to your movement!!") + owner.playsound_local(owner, 'sound/effects/wounds/crackandbleed.ogg', 25, TRUE) + if(stacks >= 5) + var/obj/effect/decal/cleanable/blood/B = locate() in get_turf(owner) + if(!B) + B = new /obj/effect/decal/cleanable/blood(get_turf(owner)) + B.bloodiness = 100 + if(ishuman(owner)) + owner.adjustBruteLoss(max(0, stacks)) + else + owner.adjustBruteLoss(stacks*4) // x4 on non humans + new /obj/effect/temp_visual/damage_effect/bleed(get_turf(owner)) + stacks = round(stacks/2) + if(stacks == 0) + qdel(src) + + +/datum/status_effect/stacking/lc_bleed/on_remove() + UnregisterSignal(owner, COMSIG_MOVABLE_PRE_MOVE) + return ..() + +/datum/status_effect/stacking/lc_bleed/can_have_status() + return (owner.stat != DEAD || !(owner.status_flags & GODMODE)) + +/datum/status_effect/stacking/lc_bleed/add_stacks(stacks_added) + ..() + new_stack = TRUE + +// The Stack Decaying +/datum/status_effect/stacking/lc_bleed/tick() + if(safety) + if(new_stack) + new_stack = FALSE + else + qdel(src) + +//Mob Proc +/mob/living/proc/apply_lc_bleed(stacks) + var/datum/status_effect/stacking/lc_bleed/B = src.has_status_effect(/datum/status_effect/stacking/lc_bleed) + if(!B) + src.apply_status_effect(/datum/status_effect/stacking/lc_bleed, stacks) + else + B.add_stacks(stacks) + /datum/status_effect/display/dyscrasone_withdrawl id = "dyscrasone_withdrawl" status_type = STATUS_EFFECT_UNIQUE diff --git a/code/game/area/areas/lobotomy_corp.dm b/code/game/area/areas/lobotomy_corp.dm index bcd2ef5b172a..226017207981 100644 --- a/code/game/area/areas/lobotomy_corp.dm +++ b/code/game/area/areas/lobotomy_corp.dm @@ -295,6 +295,35 @@ name = "Backstreets Room" icon_state = "hallA" +/area/city/backstreets_room/resurgence_village + name = "Resurgence Clan Village" + ambientsounds = list('sound/ambience/resurgence_village1.ogg') + +/area/city/backstreets_room/resurgence_village/Entered(atom/movable/M) + set waitfor = FALSE + SEND_SIGNAL(src, COMSIG_AREA_ENTERED, M) + SEND_SIGNAL(M, COMSIG_ENTER_AREA, src) //The atom that enters the area + if(!isliving(M)) + return + + var/mob/living/L = M + if(!L.ckey) + return + + // Ambience goes down here -- make sure to list each area separately for ease of adding things in later, thanks! Note: areas adjacent to each other should have the same sounds to prevent cutoff when possible.- LastyScratch + if(L.client && !L.client.ambience_playing && L.client.prefs.toggles & SOUND_SHIP_AMBIENCE) + L.client.ambience_playing = 1 + + if(!(L.client && (L.client.prefs.toggles & SOUND_AMBIENCE))) + return //General ambience check is below the ship ambience so one can play without the other + + var/sound = pick(ambientsounds) + if(!L.client.played) + SEND_SOUND(L, sound(sound, repeat = 0, wait = 0, volume = 25, channel = CHANNEL_AMBIENCE)) + L.client.played = TRUE + addtimer(CALLBACK(L.client, TYPE_PROC_REF(/client, ResetAmbiencePlayed)), 600) + + /area/library_floors name = "Library" icon_state = "library" diff --git a/code/game/gamemodes/management/event/combat.dm b/code/game/gamemodes/management/event/combat.dm index 8911b3b639cb..0105a5468fa1 100644 --- a/code/game/gamemodes/management/event/combat.dm +++ b/code/game/gamemodes/management/event/combat.dm @@ -28,7 +28,8 @@ GLOBAL_VAR_INIT(wcorp_enemy_faction, "") //decides which faction WCorp will be u for(var/mob/living/simple_animal/hostile/A in GLOB.mob_list) var/obj/effect/proc_holder/spell/targeted/night_vision/bloodspell = new A.AddSpell(bloodspell) - A.faction += "hostile" + if(!(SSmaptype.maptype in SSmaptype.citymaps)) + A.faction += "hostile" if(SSmaptype.maptype in SSmaptype.autoend) switch(SSmaptype.maptype) @@ -52,7 +53,12 @@ GLOBAL_VAR_INIT(wcorp_enemy_faction, "") //decides which faction WCorp will be u addtimer(CALLBACK(src, PROC_REF(drawround)), 40 MINUTES) to_chat(world, span_userdanger("Round will end in a draw after 40 minutes.")) addtimer(CALLBACK(src, PROC_REF(rcorp_announce)), 3 MINUTES) - addtimer(CALLBACK(src, PROC_REF(ClearIncorpBarriers)), 6 MINUTES) + addtimer(CALLBACK(src, PROC_REF(ClearIncorpBarriers)), 10 MINUTES) + minor_announce("WARNING, The facility gates will open in T-15 Minutes." , "R-Corp Intelligence Office") + addtimer(CALLBACK(src, PROC_REF(rcorp_opendoor)), 15 MINUTES) + addtimer(CALLBACK(src, PROC_REF(facility_warning_1)), 5 MINUTES) + addtimer(CALLBACK(src, PROC_REF(facility_warning_2)), 10 MINUTES) + addtimer(CALLBACK(src, PROC_REF(facility_warning_3)), 14 MINUTES) RegisterSignal(SSdcs, COMSIG_GLOB_MOB_DEATH, PROC_REF(CheckLiving)) //Limbus Labs @@ -89,7 +95,7 @@ GLOBAL_VAR_INIT(wcorp_enemy_faction, "") //decides which faction WCorp will be u /// Automatically ends the shift if no humanoid players are alive /datum/game_mode/combat/proc/CheckLiving() for(var/mob/living/carbon/human/hooman in GLOB.human_list) - if(hooman.stat != DEAD && hooman.ckey) + if(hooman.stat != DEAD && hooman.ckey && !istype(hooman, /mob/living/carbon/human/species/pinocchio)) return if(SSticker.force_ending == TRUE) // they lost another way before we could do it, how rude. @@ -134,7 +140,7 @@ GLOBAL_VAR_INIT(wcorp_enemy_faction, "") //decides which faction WCorp will be u //Gamemode stuff /datum/game_mode/combat/proc/counterincrease() addtimer(CALLBACK(src, PROC_REF(counterincrease)), 1 MINUTES) - GLOB.combat_counter+=1 + GLOB.combat_counter++ if(SSmaptype.maptype == "wcorp") for(var/mob/living/carbon/human/H in GLOB.human_list) if(H.stat == DEAD) @@ -156,6 +162,29 @@ GLOBAL_VAR_INIT(wcorp_enemy_faction, "") //decides which faction WCorp will be u if("payload_abno") announcement_type = "Intelligence has located a dangerous specimen moving towards your location. Prevent it from escaping at all costs." minor_announce("[announcement_type]" , "R-Corp Intelligence Office") + minor_announce("WARNING, The facility gates will open in T-12 Minutes." , "R-Corp Intelligence Office") + +/datum/game_mode/combat/proc/rcorp_opendoor() + for(var/obj/machinery/button/door/indestructible/rcorp/M in GLOB.machines) + qdel(M) + minor_announce("Facility doors are locked open." , "R-Corp Intelligence Office") + for(var/obj/machinery/door/poddoor/M in GLOB.machines) + if (M.id == "inside") + addtimer(CALLBACK(src, PROC_REF(OpenDoor), M), 0 MINUTES) + +/datum/game_mode/combat/proc/facility_warning_1() + minor_announce("WARNING, The facility gates will open in T-10 Minutes." , "R-Corp Intelligence Office") + +/datum/game_mode/combat/proc/facility_warning_2() + minor_announce("WARNING, The facility gates will open in T-5 Minutes, Please start moving into the facility." , "R-Corp Intelligence Office") + +/datum/game_mode/combat/proc/facility_warning_3() + minor_announce("WARNING, The facility gates will open in T-1 Minute, Please be ready for enemies of a higher threat level." , "R-Corp Intelligence Office") + +/datum/game_mode/combat/proc/OpenDoor(door) + var/obj/machinery/door/poddoor/D = door + D.open() + /datum/game_mode/combat/proc/StartPayload() if(!GLOB.rcorp_payload) diff --git a/code/game/objects/effects/misc.dm b/code/game/objects/effects/misc.dm index 9f699255560c..edc73d24312a 100644 --- a/code/game/objects/effects/misc.dm +++ b/code/game/objects/effects/misc.dm @@ -114,3 +114,12 @@ icon_state = "mail" layer = BELOW_MOB_LAYER duration = 10 SECONDS + +/obj/effect/temp_visual/contempt_blood + name = "contemptful blood" + desc = "An indicator of bleeding damage" + icon = 'icons/effects/effects.dmi' + icon_state = "bloodfall" + randomdir = FALSE + duration = 2 SECONDS + layer = POINT_LAYER diff --git a/code/game/objects/effects/spawners/roomspawners.dm b/code/game/objects/effects/spawners/roomspawners.dm index dd39ba20efbb..a6fa24f3ce39 100644 --- a/code/game/objects/effects/spawners/roomspawners.dm +++ b/code/game/objects/effects/spawners/roomspawners.dm @@ -8,6 +8,8 @@ var/room_width = 0 var/room_height = 0 var/room_type = "maintenance" // Used so we can place landmarks in ruins and such. + var/spawn_delay_min = 600 + var/spawn_delay_max = 600 /obj/effect/spawner/room/Initialize() ..()/* @@ -29,7 +31,7 @@ template.weight = (template.weight / 2) if(template.stock <= 0) template.spawned = TRUE - addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/effect/spawner/room, LateSpawn)), 600) + addtimer(CALLBACK(src, TYPE_PROC_REF(/obj/effect/spawner/room, LateSpawn)), rand(spawn_delay_min, spawn_delay_max)) else template = null if(!template) diff --git a/code/game/objects/effects/spawners/village_spawner.dm b/code/game/objects/effects/spawners/village_spawner.dm new file mode 100644 index 000000000000..c6342092faa0 --- /dev/null +++ b/code/game/objects/effects/spawners/village_spawner.dm @@ -0,0 +1,28 @@ +/obj/effect/spawner/room/village_spawner + name = "village spawner" + room_width = 29 + room_height = 22 + icon = 'ModularTegustation/Teguicons/room_spawners/29x22.dmi' + icon_state = "" + room_type = "village" + spawn_delay_min = 8200 + spawn_delay_max = 11200 + +/datum/map_template/random_room/backstreets/resurgence_village + name = "Resurgence Village" + room_id = "resurgence_village" + mappath = "_maps/RandomRooms/backstreets/resurgence_village.dmm" + template_width = 29 + template_height = 22 + room_type = "village" + +/obj/effect/spawner/room/village_spawner/LateSpawn() + // do stuff + for(var/MN in GLOB.player_list) + var/mob/M = MN + // Double check for client + M.playsound_local(M, "sound/effects/explosioncreak1.ogg", 100) + shake_camera(M, 25, 4) + sleep(75) + minor_announce("Warning, a large area has appeared in the backstreets. Entities within this area appear to non-hostile. Please approach them with caution.", "Local Activity Alert:", TRUE) + . = ..() diff --git a/code/game/objects/effects/temporary_visuals/effect_indicators.dm b/code/game/objects/effects/temporary_visuals/effect_indicators.dm index a833c559defe..31deaa827c9d 100644 --- a/code/game/objects/effects/temporary_visuals/effect_indicators.dm +++ b/code/game/objects/effects/temporary_visuals/effect_indicators.dm @@ -43,6 +43,9 @@ /obj/effect/temp_visual/damage_effect/burn icon_state = "dam_burn" +/obj/effect/temp_visual/damage_effect/bleed + icon_state = "dam_bleed" + /obj/effect/temp_visual/damage_effect/tox icon_state = "dam_tox" diff --git a/code/game/objects/items/devices/gps.dm b/code/game/objects/items/devices/gps.dm index 3f34cda50ec6..15462d753b08 100644 --- a/code/game/objects/items/devices/gps.dm +++ b/code/game/objects/items/devices/gps.dm @@ -18,6 +18,11 @@ /obj/item/gps/spaceruin gpstag = SPACE_SIGNAL_GPSTAG +/obj/item/gps/fixer + desc = "Helping lost fixers find strong signals within the backstreets." + gpstag = "FIX0" + custom_price = PAYCHECK_ASSISTANT + /obj/item/gps/science icon_state = "gps-s" gpstag = "SCI0" diff --git a/code/game/objects/items/fixerskills/skills.dm b/code/game/objects/items/fixerskills/skills.dm index bb5ac081e8ef..a59f78a6bb17 100644 --- a/code/game/objects/items/fixerskills/skills.dm +++ b/code/game/objects/items/fixerskills/skills.dm @@ -66,6 +66,18 @@ var/mob/living/carbon/human/human = user var/user_level = get_civilian_level(human) var/allowed_level1_skills = 3 + var/list/stats = list( + FORTITUDE_ATTRIBUTE, + PRUDENCE_ATTRIBUTE, + TEMPERANCE_ATTRIBUTE, + JUSTICE_ATTRIBUTE, + ) + var/stattotal + var/grade + for(var/attribute in stats) + stattotal += get_attribute_level(human, attribute) + stattotal /= 4 // Potential is an average of stats + grade = round((stattotal) / 20) // Get the average level-20, divide by 20 if ((level != user_level && level != -1) ) if(user_level == 0 && level==1) //Specific check for Grade 9s, throw these bastards a bone @@ -73,9 +85,9 @@ allowed_level1_skills = 5 else - to_chat(user, span_notice("Your level is [user_level]. This book needs level [level]!")) + wrong_grade_info(grade) return FALSE - if (!(user?.mind?.assigned_role in list("Civilian"))) + if (!(user?.mind?.assigned_role in list("Civilian", "Office Director", "Office Fixer"))) to_chat(user, span_notice("Only Civilians can use this book!")) return FALSE @@ -95,3 +107,12 @@ qdel(src) ..() +/obj/item/book/granter/action/skill/proc/wrong_grade_info(grade) + if(level==1) + to_chat(user, span_notice("You are Grade [max(10-grade, 1)]. Only Grade 9 and 8 Fixers are able to read this book!")) + else if(level == 2) + to_chat(user, span_notice("You are Grade [max(10-grade, 1)]. Only Grade 7 and 6 Fixers are able to read this book!")) + else if(level == 3) + to_chat(user, span_notice("You are Grade [max(10-grade, 1)]. Only Grade 5 Fixers are able to read this book!")) + else if(level == 4) + to_chat(user, span_notice("You are Grade [max(10-grade, 1)]. Only Grade 4 Fixers are able to read this book!")) diff --git a/code/game/objects/items/food/meat.dm b/code/game/objects/items/food/meat.dm index cdcf740161cd..87da57e8add2 100644 --- a/code/game/objects/items/food/meat.dm +++ b/code/game/objects/items/food/meat.dm @@ -939,6 +939,39 @@ /obj/item/food/meat/slab/crimson/MakeGrillable() AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/crimson, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) +/obj/item/food/meat/slab/buggy + name = "buggy meat" + desc = "A chunk of horrible and unpalatable mutated meat and chitin. Some bits are still moving..." + icon_state = "buggymeat" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4) + tastes = list("tender meat" = 1, "gristle" = 1) + foodtypes = MEAT | RAW | GROSS + +/obj/item/food/meat/slab/buggy/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) // too lazy to add a new sprite + +/obj/item/food/meat/slab/corroded + name = "corroded meat" + desc = "Human meat, with other stuff mixed in. Hardly has any resemblance to the original anymore." + icon_state = "xenomeat" // Placeholder + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4) + tastes = list("tough meat" = 1) + foodtypes = MEAT | RAW | GROSS + +/obj/item/food/meat/slab/corroded/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) // too lazy to add a new sprite + +/obj/item/food/meat/slab/sinnew + name = "sin-eew" + desc = "Eyeballs, veins, and offal that came from something no longer resembling a human." + icon_state = "sinnew" + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 1) + tastes = list("blood" = 1, "tough meat" = 1) + foodtypes = MEAT | RAW | GROSS + +/obj/item/food/meat/slab/sinnew/MakeGrillable() + AddComponent(/datum/component/grillable, /obj/item/food/meat/steak/meatproduct, rand(30 SECONDS, 90 SECONDS), TRUE, TRUE) // too lazy to add a new sprite + ////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// /obj/item/food/meat/steak diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index e8495d1c0ee2..9af4ffb7d40d 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -741,6 +741,20 @@ icon_state = "boatworks_book" remarks = list("Make sure that you always have your weaving knife on you? I already knew that.", "Using sweepers as silk? That is brand new...", "Huh, it says here that 'Be careful around the fixer association...' ", "This book smells quite well, Like it was just made just for me!", "A rookie must have made this page, or they forgot to spell check it before printing...", "Wait, how will this turn a profit? I spent like 1000 ahn for this book!") +/obj/item/book/granter/crafting_recipe/carnival/weaving_masquerade + name = "Weaving Armor: The Masquerade Edition" + desc = "A weaving book that teaches you how to weave masquerade armor. Carnival approved!
\ + On the back, it says that reading this book will teach how to make:
\ + -Masquerade Coat: RED = 30%, WHITE = 20%, BLACK = 10%, PALE = 0%
\ + -Masquerade Cloak: RED = 40%, WHITE = 20%, BLACK = 40%, PALE = 20%.
\ + There is a small note which also says: (All armors made in this book act like blood sponges, letting you drain blood to heal.)" + crafting_recipe_types = list( + /datum/crafting_recipe/bloodfiend_coat, + /datum/crafting_recipe/bloodfiend_cloak, + ) + icon_state = "masq_book" + remarks = list("Make sure that you always have your weaving knife on you? I already knew that.", "Using sweepers as silk? That is brand new...", "Huh, it says here that 'Be careful around the fixer association...' ", "This book smells quite well, Like it was just made just for me!", "A rookie must have made this page, or they forgot to spell check it before printing...", "Wait, how will this turn a profit? I spent like 1000 ahn for this book!") + /obj/item/book/granter/crafting_recipe/carnival/weaving_j_corp_gangs name = "Weaving Armor: J Corp Gangs Edition" desc = "A weaving book that teaches you how to weave armor used by gangs in J-Corp. Carnival approved!
\ diff --git a/code/game/objects/items/grenades/grenade.dm b/code/game/objects/items/grenades/grenade.dm index c95c9f4eed8f..2fc5875bfddd 100644 --- a/code/game/objects/items/grenades/grenade.dm +++ b/code/game/objects/items/grenades/grenade.dm @@ -35,6 +35,7 @@ /// the higher this number, the more projectiles are created as shrapnel var/shrapnel_radius var/shrapnel_initialized + var/thrower /obj/item/grenade/suicide_act(mob/living/carbon/user) user.visible_message("[user] primes [src], then eats it! It looks like [user.p_theyre()] trying to commit suicide!") @@ -107,6 +108,7 @@ active = TRUE icon_state = initial(icon_state) + "_active" SEND_SIGNAL(src, COMSIG_GRENADE_ARMED, det_time, delayoverride) + thrower = user addtimer(CALLBACK(src, PROC_REF(detonate)), isnull(delayoverride)? det_time : delayoverride) /** @@ -116,6 +118,7 @@ * * lanced_by- If this grenade was detonated by an elance, we need to pass that along with the COMSIG_GRENADE_DETONATE signal for pellet clouds */ /obj/item/grenade/proc/detonate(mob/living/lanced_by) + thrower = null if(shrapnel_type && shrapnel_radius && !shrapnel_initialized) // add a second check for adding the component in case whatever triggered the grenade went straight to prime (badminnery for example) shrapnel_initialized = TRUE AddComponent(/datum/component/pellet_cloud, projectile_type=shrapnel_type, magnitude=shrapnel_radius) diff --git a/code/game/objects/items/grenades/r_corp.dm b/code/game/objects/items/grenades/r_corp.dm index 9ee69341da9b..14e98b54f07e 100644 --- a/code/game/objects/items/grenades/r_corp.dm +++ b/code/game/objects/items/grenades/r_corp.dm @@ -3,10 +3,11 @@ desc = "An anti-abnormality grenade, this weapon excels at damaging abnormality using the tech from L-Corp. It deals 90% less damage to humans." icon_state = "r_corp" var/explosion_damage_type = RED_DAMAGE - var/explosion_damage = 300 + var/explosion_damage = 200 var/explosion_range = 2 /obj/item/grenade/r_corp/detonate(mob/living/lanced_by) + var/aThrower = thrower . = ..() update_mob() new /obj/effect/temp_visual/explosion(get_turf(src)) @@ -14,7 +15,7 @@ for(var/mob/living/simple_animal/H in view(explosion_range, src)) H.apply_damage(explosion_damage, explosion_damage_type, null, H.run_armor_check(null, RED_DAMAGE)) for(var/mob/living/carbon/C in view(explosion_range, src)) - C.apply_damage(explosion_damage * 0.1, explosion_damage_type, null, C.run_armor_check(null, RED_DAMAGE)) + C.apply_damage(C == aThrower ? explosion_damage * 0.5 : explosion_damage * 0.1, explosion_damage_type, null, C.run_armor_check(null, RED_DAMAGE)) qdel(src) /obj/item/grenade/r_corp/white @@ -31,4 +32,4 @@ name = "r-corp pale grenade" icon_state = "r_corp_pale" explosion_damage_type = PALE_DAMAGE - explosion_damage = 250 + explosion_damage = 150 diff --git a/code/game/objects/structures/test_range.dm b/code/game/objects/structures/test_range.dm index a16efde2ba29..d7f5d3ae85b5 100644 --- a/code/game/objects/structures/test_range.dm +++ b/code/game/objects/structures/test_range.dm @@ -30,22 +30,20 @@ desc = "This device is used to spawn an abnormality to fight" resistance_flags = INDESTRUCTIBLE var/list/whitelist = list( - /mob/living/simple_animal/hostile/abnormality/forsaken_murderer, - /mob/living/simple_animal/hostile/abnormality/redblooded, - /mob/living/simple_animal/hostile/abnormality/pinocchio, - /mob/living/simple_animal/hostile/abnormality/funeral, - /mob/living/simple_animal/hostile/abnormality/scarecrow, - /mob/living/simple_animal/hostile/abnormality/blue_shepherd, - /mob/living/simple_animal/hostile/abnormality/ebony_queen, - /mob/living/simple_animal/hostile/abnormality/judgement_bird, - /mob/living/simple_animal/hostile/abnormality/warden, - /mob/living/simple_animal/hostile/abnormality/nothing_there, - /mob/living/simple_animal/hostile/abnormality/silentorchestra, - /mob/living/simple_animal/hostile/abnormality/last_shot, - /mob/living/simple_animal/hostile/abnormality/distortedform, - /mob/living/simple_animal/hostile/abnormality/sukuna //For the masochists - ) - + /mob/living/simple_animal/hostile/abnormality/forsaken_murderer, + /mob/living/simple_animal/hostile/abnormality/redblooded, + /mob/living/simple_animal/hostile/abnormality/pinocchio, + /mob/living/simple_animal/hostile/abnormality/funeral, + /mob/living/simple_animal/hostile/abnormality/scarecrow, + /mob/living/simple_animal/hostile/abnormality/blue_shepherd, + /mob/living/simple_animal/hostile/abnormality/ebony_queen, + /mob/living/simple_animal/hostile/abnormality/judgement_bird, + /mob/living/simple_animal/hostile/abnormality/warden, + /mob/living/simple_animal/hostile/abnormality/nothing_there, + /mob/living/simple_animal/hostile/abnormality/silentorchestra, + /mob/living/simple_animal/hostile/abnormality/last_shot, + /mob/living/simple_animal/hostile/abnormality/distortedform, + ) /obj/machinery/computer/testrangespawner/attack_hand(mob/living/user) . = ..() diff --git a/code/modules/clothing/suits/ego_gear/non_abnormality/bloodfiend.dm b/code/modules/clothing/suits/ego_gear/non_abnormality/bloodfiend.dm new file mode 100644 index 000000000000..c8fd937d6b1f --- /dev/null +++ b/code/modules/clothing/suits/ego_gear/non_abnormality/bloodfiend.dm @@ -0,0 +1,120 @@ +/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak + name = "masquerade cloak" + desc = "A cloak worn by the bloodfiends, worn in celebration of something..." + icon_state = "masqcloak" + var/normal_state = "masqcloak" + var/hardblood_state = null + icon = 'ModularTegustation/Teguicons/blood_fiend_gear.dmi' + worn_icon = 'ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi' + armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = 20, BLACK_DAMAGE = 40, PALE_DAMAGE = 20) + hat = /obj/item/clothing/head/ego_hat/blood_fiend/bird_mask + neck = /obj/item/clothing/ego_neck/blood_fiend/coagulated_blood + var/bloodfeast = 0 + var/bloodfeast_max = 200 + attribute_requirements = list( + FORTITUDE_ATTRIBUTE = 60, + PRUDENCE_ATTRIBUTE = 60, + TEMPERANCE_ATTRIBUTE = 60, + JUSTICE_ATTRIBUTE = 60 + ) + +/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/Initialize() + . = ..() + var/obj/effect/proc_holder/ability/AS = new /obj/effect/proc_holder/ability/bloodfeast + var/datum/action/spell_action/ability/item/A = AS.action + A.SetItem(src) + + var/obj/effect/proc_holder/ability/BS = new /obj/effect/proc_holder/ability/bloodart + var/datum/action/spell_action/ability/item/B = BS.action + B.SetItem(src) + +/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/examine(mob/user) + . = ..() + . += span_notice("This outfit currently has [bloodfeast] bloodfeast out of [bloodfeast_max] maximum bloodfeast.") + +/obj/effect/proc_holder/ability/bloodfeast + name = "Bloodfeast" + desc = "An ability that lets the user drain nearby blood to increase the armor's bloodfeast." + action_icon = 'ModularTegustation/Teguicons/status_sprites.dmi' + action_icon_state = "lc_bleed" + base_icon_state = "lc_bleed" + cooldown_time = 5 SECONDS + +/obj/effect/proc_holder/ability/bloodfeast/Perform(target, mob/user) + playsound(get_turf(user), 'sound/abnormalities/nosferatu/bloodcollect.ogg', 25, 0, 4) + if (ishuman(user)) + var/mob/living/carbon/human/wielder = user + var/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/S = wielder.get_item_by_slot(ITEM_SLOT_OCLOTHING) + for(var/obj/effect/decal/cleanable/blood/B in view(wielder, 2)) //will clean up any blood, but only heals from human blood + if(B.blood_state == BLOOD_STATE_HUMAN) + if(B.bloodiness == 100) //Bonus for "pristine" bloodpools, also to prevent footprint spam + S.bloodfeast += 30 + else + S.bloodfeast += (max((B.bloodiness**2)/800,1)) + qdel(B) + if(S.bloodfeast >= S.bloodfeast_max) + S.bloodfeast = S.bloodfeast_max + return ..() + +/obj/effect/proc_holder/ability/bloodart + name = "Blood Art" + desc = "An ability that lets the user spend the armor's bloodfeast to heal." + action_icon = 'ModularTegustation/Teguicons/status_sprites.dmi' + action_icon_state = "lc_bleed" + base_icon_state = "lc_bleed" + cooldown_time = 20 SECONDS + +/obj/effect/proc_holder/ability/bloodart/Perform(target, mob/user) + playsound(get_turf(user), 'sound/abnormalities/nosferatu/bloodcollect.ogg', 25, 0, 4) + if (ishuman(user)) + var/mob/living/carbon/human/wielder = user + var/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/S = wielder.get_item_by_slot(ITEM_SLOT_OCLOTHING) + wielder.adjustBruteLoss(-(S.bloodfeast/2)) + if (S.bloodfeast == S.bloodfeast_max) + if (S.hardblood_state) + S.icon_state = S.hardblood_state + addtimer(CALLBACK(src, PROC_REF(ResetArmor), S), 600) + S.bloodfeast = 0 + return ..() + +/obj/effect/proc_holder/ability/bloodart/proc/ResetArmor(obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/A) + A.icon_state = A.normal_state + +/obj/item/clothing/suit/armor/ego_gear/city/masquerade_cloak/masquerade_coat + name = "masquerade coat" + desc = "A coat worn by the bloodbags, worn in celebration of something..." + icon_state = "Driedcoat" + normal_state = "Driedcoat" + hardblood_state = "Bloodcoat" + bloodfeast_max = 100 + armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 20, BLACK_DAMAGE = 10, PALE_DAMAGE = 0) + hat = null + neck = null + attribute_requirements = list() + +/obj/item/clothing/ego_neck/blood_fiend + icon = 'ModularTegustation/Teguicons/blood_fiend_gear.dmi' + worn_icon = 'ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi' + +/obj/item/clothing/neck/blood_fiend + icon = 'ModularTegustation/Teguicons/blood_fiend_gear.dmi' + worn_icon = 'ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi' + +/obj/item/clothing/head/ego_hat/blood_fiend + icon = 'ModularTegustation/Teguicons/blood_fiend_gear.dmi' + worn_icon = 'ModularTegustation/Teguicons/blood_fiend_gear_worn.dmi' + +/obj/item/clothing/neck/blood_fiend/masquerade_tie + name = "masquerade tie" + desc = "A tie which fits the masquerade cloak." + icon_state = "masqtie" + +/obj/item/clothing/head/ego_hat/blood_fiend/bird_mask + name = "masquerade mask" + desc = "A mask that the bloodfiends have worn during the masquerade..." + icon_state = "bird_mask" + +/obj/item/clothing/ego_neck/blood_fiend/coagulated_blood + name = "coagulated blood" + desc = "The coagulated blood of a bloodfiend..." + icon_state = "coagulated_blood" diff --git a/code/modules/clothing/suits/ego_gear/teth.dm b/code/modules/clothing/suits/ego_gear/teth.dm index 6c8df2217925..b643fdeb469c 100644 --- a/code/modules/clothing/suits/ego_gear/teth.dm +++ b/code/modules/clothing/suits/ego_gear/teth.dm @@ -245,6 +245,12 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/ icon_state = "faelantern" armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 30, BLACK_DAMAGE = -30, PALE_DAMAGE = 0) // 20 +/obj/item/clothing/suit/armor/ego_gear/teth/kikimora + name = "kiki mora" + desc = "A dress spun by unusual hands. Rough but resistant to stains." + icon_state = "kikimora" + armor = list(RED_DAMAGE = 10, WHITE_DAMAGE = -10, BLACK_DAMAGE = 30, PALE_DAMAGE = -10) + /obj/item/clothing/suit/armor/ego_gear/teth/luckdraw name = "luck of the draw" desc = "How many have lost it all to a simple game of chance?" diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 3023103a5daa..bfb9171ccbe9 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -79,6 +79,9 @@ var/bounty_types = CIV_JOB_BASIC + ///Bitfield of departments this job belongs wit + var/departments = NONE + /// Should this job be allowed to be picked for the bureaucratic error event? var/allow_bureaucratic_error = TRUE diff --git a/code/modules/jobs/job_types/agent.dm b/code/modules/jobs/job_types/agent.dm index 9fff451173c5..6f3528d72010 100644 --- a/code/modules/jobs/job_types/agent.dm +++ b/code/modules/jobs/job_types/agent.dm @@ -18,6 +18,7 @@ minimal_access = list() allow_bureaucratic_error = FALSE + departments = DEPARTMENT_SECURITY job_important = "You are a L-Corp Agent. Your job is to work on and suppress Abnormalities. Use :h to talk on your departmental radio." diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm index 1d4d4edea64b..1160d2ac6d79 100644 --- a/code/modules/jobs/job_types/assistant.dm +++ b/code/modules/jobs/job_types/assistant.dm @@ -10,13 +10,15 @@ GLOBAL_LIST_EMPTY(spawned_clerks) spawn_positions = 0 supervisors = "absolutely everyone" selection_color = "#dddddd" - access = list(ACCESS_ROBOTICS) //See /datum/job/assistant/get_access() - minimal_access = list(ACCESS_ROBOTICS) //See /datum/job/assistant/get_access() - // Let their be bot maintenance! + outfit = /datum/outfit/job/assistant - antag_rep = 7 //persistant currency but currently unusable + antag_rep = 7 // Persistant currency but currently unusable display_order = JOB_DISPLAY_ORDER_CLERK + access = list(ACCESS_ROBOTICS) // Let their be bot maintenance! + minimal_access = list(ACCESS_ROBOTICS) + departments = DEPARTMENT_SERVICE + liver_traits = list(TRAIT_GREYTIDE_METABOLISM) allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm index a0b2cf991a54..02b692664024 100644 --- a/code/modules/jobs/job_types/captain.dm +++ b/code/modules/jobs/job_types/captain.dm @@ -9,6 +9,7 @@ display_order = JOB_DISPLAY_ORDER_CAPTAIN access = list(ACCESS_COMMAND) // LC13:To-Do + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY exp_requirements = 6000 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/city/HHPP.dm b/code/modules/jobs/job_types/city/HHPP.dm index fdfead9b9aa9..8114efd265ed 100644 --- a/code/modules/jobs/job_types/city/HHPP.dm +++ b/code/modules/jobs/job_types/city/HHPP.dm @@ -10,6 +10,7 @@ HHPP Employee selection_color = "#dddddd" access = list(ACCESS_KITCHEN) minimal_access = list(ACCESS_KITCHEN) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/chef antag_rep = 7 display_order = JOB_DISPLAY_ORDER_HHPP diff --git a/code/modules/jobs/job_types/city/backstreets_butcher.dm b/code/modules/jobs/job_types/city/backstreets_butcher.dm index 126b72b52209..8a9d28edf681 100644 --- a/code/modules/jobs/job_types/city/backstreets_butcher.dm +++ b/code/modules/jobs/job_types/city/backstreets_butcher.dm @@ -10,6 +10,7 @@ Backstreets Butcher selection_color = "#555555" access = list(ACCESS_GENETICS) minimal_access = list(ACCESS_GENETICS) + departments = DEPARTMENT_SERVICE // They can provide you a service, before you're eaten outfit = /datum/outfit/job/butcher display_order = JOB_DISPLAY_ORDER_ANTAG exp_requirements = 300 diff --git a/code/modules/jobs/job_types/city/carnival.dm b/code/modules/jobs/job_types/city/carnival.dm index 55a09ab271cd..3e25d30326c4 100644 --- a/code/modules/jobs/job_types/city/carnival.dm +++ b/code/modules/jobs/job_types/city/carnival.dm @@ -7,6 +7,7 @@ selection_color = "#555555" access = list(ACCESS_CARGO) minimal_access = list(ACCESS_CARGO) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/carnival display_order = JOB_DISPLAY_ORDER_ANTAG exp_requirements = 300 diff --git a/code/modules/jobs/job_types/city/civilian.dm b/code/modules/jobs/job_types/city/civilian.dm index 801f52791902..6e426f68a662 100644 --- a/code/modules/jobs/job_types/city/civilian.dm +++ b/code/modules/jobs/job_types/city/civilian.dm @@ -10,10 +10,10 @@ Civilian selection_color = "#dddddd" access = list(ACCESS_LAWYER) minimal_access = list(ACCESS_LAWYER) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/civilian antag_rep = 7 display_order = JOB_DISPLAY_ORDER_CIVILIAN - allow_bureaucratic_error = FALSE maptype = list("city", "fixers") paycheck = 170 diff --git a/code/modules/jobs/job_types/city/doctor.dm b/code/modules/jobs/job_types/city/doctor.dm index 9f47de055408..24a1d2732f38 100644 --- a/code/modules/jobs/job_types/city/doctor.dm +++ b/code/modules/jobs/job_types/city/doctor.dm @@ -9,6 +9,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_COMMAND | DEPARTMENT_MEDICAL paycheck = PAYCHECK_MEDIUM paycheck_department = ACCOUNT_MED @@ -126,6 +127,7 @@ exp_requirements = 180 display_order = JOB_DISPLAY_ORDER_MEDICALASSIST + departments = DEPARTMENT_MEDICAL | DEPARTMENT_FIXERS maptype = list("wonderlabs", "city", "fixers") job_important = "You are an a medical fixer. Your job is to explore the backstreets to grab dead fixers to bring back to the clinic." diff --git a/code/modules/jobs/job_types/city/fixer/east.dm b/code/modules/jobs/job_types/city/fixer/east.dm index aa0eb47f6df1..19f13436fdae 100644 --- a/code/modules/jobs/job_types/city/fixer/east.dm +++ b/code/modules/jobs/job_types/city/fixer/east.dm @@ -15,6 +15,7 @@ trusted_only = TRUE access = list(ACCESS_MINING_STATION, ACCESS_RC_ANNOUNCE) // East office is 54 minimal_access = list(ACCESS_MINING_STATION, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_FIXERS maptype = list("city-small", "wonderlabs") job_attribute_limit = 80 @@ -66,6 +67,7 @@ display_order = JOB_DISPLAY_ORDER_FIXER access = list(ACCESS_MINING_STATION) minimal_access = list(ACCESS_MINING_STATION) + departments = DEPARTMENT_FIXERS maptype = "wonderlabs" job_attribute_limit = 60 diff --git a/code/modules/jobs/job_types/city/fixer/minifixers.dm b/code/modules/jobs/job_types/city/fixer/minifixers.dm new file mode 100644 index 000000000000..80ff0943dd0b --- /dev/null +++ b/code/modules/jobs/job_types/city/fixer/minifixers.dm @@ -0,0 +1,91 @@ +/datum/job/fixer/smalldirector + title = "Office Director" + outfit = /datum/outfit/job/smalldirector + department_head = list("your office") + faction = "Station" + supervisors = "your office" + selection_color = "#8f6791" + total_positions = 1 + spawn_positions = 1 + trusted_only = FALSE + display_order = JOB_DISPLAY_ORDER_FIXERLEAD + paycheck = 170 + access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) // Numero 55 + minimal_access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_FIXERS + maptype = "office" + + roundstart_attributes = list( + FORTITUDE_ATTRIBUTE = 20, + PRUDENCE_ATTRIBUTE = 20, + TEMPERANCE_ATTRIBUTE = 20, + JUSTICE_ATTRIBUTE = 20 + ) + +/datum/job/fixer/smalldirector/after_spawn(mob/living/carbon/human/H, mob/M) + . = ..() + ADD_TRAIT(H, TRAIT_COMBATFEAR_IMMUNE, JOB_TRAIT) + ADD_TRAIT(H, TRAIT_WORK_FORBIDDEN, JOB_TRAIT) //My guy you aren't even from this corporation + to_chat(M, "This is a roleplay role. You are not affiliated with L Corporation. \ + Do not enter the lower levels of the facility without the manager's permission. Please use the beacon in your office to choose your association. \ + Do not assist L Corporation without significant payment.") + to_chat(M, "Avoid killing other players without a reason. ") + + //Don't spawn fixers without a director + for(var/datum/job/processing in SSjob.occupations) + if(istype(processing, /datum/job/fixer/small)) + processing.total_positions = -1 + +/datum/outfit/job/smalldirector + name = "Office Director" + jobtype = /datum/job/fixer/smalldirector + + uniform = /obj/item/clothing/under/suit/charcoal + belt = null + ears = null + id = /obj/item/card/id/fixerdirector + backpack_contents = list() + shoes = /obj/item/clothing/shoes/sneakers/black + + + +/datum/job/fixer/small + title = "Office Fixer" + outfit = /datum/outfit/job/smallfixer + department_head = list("office director") + faction = "Station" + supervisors = "your office director" + selection_color = "#bd7ebf" + total_positions = 0 + spawn_positions = 0 + trusted_only = FALSE + display_order = JOB_DISPLAY_ORDER_FIXER + departments = DEPARTMENT_FIXERS + access = list(ACCESS_XENOBIOLOGY) + minimal_access = list(ACCESS_XENOBIOLOGY) + maptype = "office" + paycheck = 170 + + roundstart_attributes = list( + FORTITUDE_ATTRIBUTE = 20, + PRUDENCE_ATTRIBUTE = 20, + TEMPERANCE_ATTRIBUTE = 20, + JUSTICE_ATTRIBUTE = 20 + ) + +/datum/job/fixer/small/after_spawn(mob/living/carbon/human/H, mob/M) + . = ..() + ADD_TRAIT(H, TRAIT_WORK_FORBIDDEN, JOB_TRAIT) + ADD_TRAIT(H, TRAIT_COMBATFEAR_IMMUNE, JOB_TRAIT) + + +/datum/outfit/job/smallfixer + name = "Office Fixer" + jobtype = /datum/job/fixer/small + + uniform = /obj/item/clothing/under/suit/charcoal + belt = null + ears = null + id = /obj/item/card/id/fixercard + backpack_contents = list() + shoes = /obj/item/clothing/shoes/sneakers/black diff --git a/code/modules/jobs/job_types/city/fixer/north.dm b/code/modules/jobs/job_types/city/fixer/north.dm index 92b0ab620c65..f7dbca896e3e 100644 --- a/code/modules/jobs/job_types/city/fixer/north.dm +++ b/code/modules/jobs/job_types/city/fixer/north.dm @@ -13,8 +13,9 @@ display_order = JOB_DISPLAY_ORDER_FIXERLEAD paycheck = 100 trusted_only = TRUE - access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) // Numero 55 + access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) minimal_access = list(ACCESS_XENOBIOLOGY, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_FIXERS maptype = list("city-small", "wonderlabs") job_attribute_limit = 80 @@ -66,6 +67,7 @@ display_order = JOB_DISPLAY_ORDER_FIXER access = list(ACCESS_XENOBIOLOGY) minimal_access = list(ACCESS_XENOBIOLOGY) + departments = DEPARTMENT_FIXERS maptype = "wonderlabs" job_attribute_limit = 60 diff --git a/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm index e19cdd8a9bf4..2bd60bb506ba 100644 --- a/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm +++ b/code/modules/jobs/job_types/city/misc/blade_lineage_misc.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 150 maptype = list("city") job_important = "You belong to the Blade Lineage, a band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/prosthetic.dm b/code/modules/jobs/job_types/city/prosthetic.dm index e0a6cf809ad0..d3d6d90f72ba 100644 --- a/code/modules/jobs/job_types/city/prosthetic.dm +++ b/code/modules/jobs/job_types/city/prosthetic.dm @@ -9,6 +9,7 @@ access = list(ACCESS_GENETICS) minimal_access = list(ACCESS_GENETICS) + departments = DEPARTMENT_MEDICAL | DEPARTMENT_SERVICE paycheck = 700 //You need a lot of money paycheck_department = ACCOUNT_MED diff --git a/code/modules/jobs/job_types/city/rat.dm b/code/modules/jobs/job_types/city/rat.dm index 040fe7f98cce..84ef1ecd1f97 100644 --- a/code/modules/jobs/job_types/city/rat.dm +++ b/code/modules/jobs/job_types/city/rat.dm @@ -10,6 +10,7 @@ Scavenger selection_color = "#555555" access = list(ACCESS_LAWYER) minimal_access = list(ACCESS_LAWYER) + departments = DEPARTMENT_FIXERS // Close enough outfit = /datum/outfit/job/scavenger antag_rep = 7 display_order = JOB_DISPLAY_ORDER_ANTAG diff --git a/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm b/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm index 1b342796ec8b..5d5aff71e8bb 100644 --- a/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm +++ b/code/modules/jobs/job_types/city/syndicate/blade_lineage/cutthroat.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm b/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm index 92f078cb6501..ee5942596a06 100644 --- a/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm +++ b/code/modules/jobs/job_types/city/syndicate/blade_lineage/salsu.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 150 maptype = list("city") job_important = "You belong to the Blade Lineage, a band of wandering swordsmen. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/messenger.dm b/code/modules/jobs/job_types/city/syndicate/index/messenger.dm index 4ff29876e109..bd302629c6a5 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/messenger.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/messenger.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this index branch. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm b/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm index fe189c97ec98..f0d2c35ba245 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/proselyte.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are an initiate in the Index syndicate. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/index/proxy.dm b/code/modules/jobs/job_types/city/syndicate/index/proxy.dm index b63c670fc13e..fbadddeaf960 100644 --- a/code/modules/jobs/job_types/city/syndicate/index/proxy.dm +++ b/code/modules/jobs/job_types/city/syndicate/index/proxy.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are a veteran in the Index syndicate. You are not inherently hostile. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm index 1a90cd3f07d8..ee1db3d46e62 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/blade_ronin.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "You are not apart of Kurokumo Clan. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm index 57415b917312..7ede34354eaf 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/captain.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this kurokumo branch. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm index 23c89f4fb6ca..02b8c40a57ba 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/enforcer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are an enforcer in the Kurokumo clan. You are to be respectful and follow orders from the Kashira. Not doing either will result in death. \ diff --git a/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm b/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm index fd8f49011a8a..3ab366a83a00 100644 --- a/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm +++ b/code/modules/jobs/job_types/city/syndicate/kurokumo/wakashu.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are a soldier in the Kurokumo Clan. You are to follow orders from your Kashira. Not doing either will result in death." diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm index 974f4e1e5299..6abafd320fc5 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/grandinquis.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this NCorp inquisition. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm index 34143327478f..a4de4038a14e 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/grosshammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 70 maptype = list("city") job_important = "You are an NCorp grosshammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm index 707be83dfd6c..4348e6e7c739 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/kleinhammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 10 maptype = list("city") job_important = "You are an NCorp kleinhammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm b/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm index 0d973183df67..435898792f84 100644 --- a/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm +++ b/code/modules/jobs/job_types/city/syndicate/ncorp/mittlehammer.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 70 maptype = list("city") job_important = "You are an NCorp Mittlehammer. Your main goal is to kill and maim all prosthetic users. \ diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm b/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm index 7ecb9e7d6445..7d256dbf4138 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/capo.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEVET access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 200 maptype = list("city") job_important = "You are a lieutenant in the Thumb Syndicate. You are to be respectful and follow orders from the sottocapo. Not doing either will result in death. \ diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm b/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm index 297bc53409d3..1ad5e00bf8b3 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/soldato.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_SYNDICATEGOON access = list(ACCESS_SYNDICATE) minimal_access = list(ACCESS_SYNDICATE) + departments = DEPARTMENT_CITY_ANTAGONIST paycheck = 100 maptype = list("city") job_important = "You are a soldier in the Thumb Syndicate. You are to stay quiet and follow orders from your capo and sottocapo. Not doing either will result in death." diff --git a/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm b/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm index f20f3d81abbd..502613c044c7 100644 --- a/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm +++ b/code/modules/jobs/job_types/city/syndicate/thumb/sottocapo.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) minimal_access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_CITY_ANTAGONIST paycheck = 700 maptype = list("city") job_important = "This is a roleplay role. You are the leader of this thumb branch. Your goal is to make money and riches, and exert the thumb's will. \ diff --git a/code/modules/jobs/job_types/city/workshop.dm b/code/modules/jobs/job_types/city/workshop.dm index b6b22ec62fc3..8a897bfd4f88 100644 --- a/code/modules/jobs/job_types/city/workshop.dm +++ b/code/modules/jobs/job_types/city/workshop.dm @@ -8,8 +8,9 @@ Workshop employee spawn_positions = 2 supervisors = "no one but god." selection_color = "#dddddd" - access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) //10 + access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP) + departments = DEPARTMENT_SERVICE outfit = /datum/outfit/job/workshop antag_rep = 7 display_order = JOB_DISPLAY_ORDER_CIVILIAN diff --git a/code/modules/jobs/job_types/command.dm b/code/modules/jobs/job_types/command.dm index 42d744cb3d4a..8214316d82a3 100644 --- a/code/modules/jobs/job_types/command.dm +++ b/code/modules/jobs/job_types/command.dm @@ -32,6 +32,8 @@ access = list(ACCESS_COMMAND) // LC13:To-Do minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND + mapexclude = list("mini") job_important = "You are the Extraction Officer. Your job is to manage the EGO console, Extraction purchase console, and power generation system. Your main goal is to ensure Agents are well-equipped with EGO." diff --git a/code/modules/jobs/job_types/gimmick/fishing.dm b/code/modules/jobs/job_types/gimmick/fishing.dm index 83760f8e54b9..7653a161e5ac 100644 --- a/code/modules/jobs/job_types/gimmick/fishing.dm +++ b/code/modules/jobs/job_types/gimmick/fishing.dm @@ -11,6 +11,7 @@ outfit = /datum/outfit/job/fishing display_order = JOB_DISPLAY_ORDER_FIXER + departments = DEPARTMENT_SERVICE job_important = "You are a fishing office fixer, hired by L-Corp. You're on this facility to get everyone fresh fish! To start fishing use the fishing rod on a body of water." job_notice = "To start fishing, use your fishing rod on a body of water." diff --git a/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm b/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm index 8563a29823e1..bda61976afab 100644 --- a/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm +++ b/code/modules/jobs/job_types/gimmick/wonderlabs/departmentcaptain.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(captain_departments, list( access = list() minimal_access = list() + departments = DEPARTMENT_SECURITY allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm b/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm index 5b37c52475c4..8887280fddb1 100644 --- a/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm +++ b/code/modules/jobs/job_types/gimmick/wonderlabs/departmenthead.dm @@ -25,6 +25,7 @@ GLOBAL_LIST_INIT(head_departments, list( access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY allow_bureaucratic_error = FALSE diff --git a/code/modules/jobs/job_types/labs/command/assetprot.dm b/code/modules/jobs/job_types/labs/command/assetprot.dm index b7905b4bd8c1..396abad4969d 100644 --- a/code/modules/jobs/job_types/labs/command/assetprot.dm +++ b/code/modules/jobs/job_types/labs/command/assetprot.dm @@ -10,6 +10,7 @@ access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/command/command.dm b/code/modules/jobs/job_types/labs/command/command.dm index c732ddf3ddd8..a14a26c7be41 100644 --- a/code/modules/jobs/job_types/labs/command/command.dm +++ b/code/modules/jobs/job_types/labs/command/command.dm @@ -10,6 +10,7 @@ access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/command/commandsec.dm b/code/modules/jobs/job_types/labs/command/commandsec.dm index ec2f178a5e38..78e3aed20411 100644 --- a/code/modules/jobs/job_types/labs/command/commandsec.dm +++ b/code/modules/jobs/job_types/labs/command/commandsec.dm @@ -9,6 +9,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/damage_mitigation_officer display_order = 4 @@ -62,6 +63,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/damage_exasperation_officer display_order = 4.1 @@ -115,6 +117,7 @@ selection_color = "#555555" access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) minimal_access = list(ACCESS_ARMORY, ACCESS_SECURITY, ACCESS_RND, ACCESS_MEDICAL, ACCESS_COMMAND) + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/internal_police display_order = 3 diff --git a/code/modules/jobs/job_types/labs/command/infotech.dm b/code/modules/jobs/job_types/labs/command/infotech.dm index 70c500a7774c..eddfca60b225 100644 --- a/code/modules/jobs/job_types/labs/command/infotech.dm +++ b/code/modules/jobs/job_types/labs/command/infotech.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_NETWORK) minimal_access = list(ACCESS_RND, ACCESS_NETWORK) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/chemist.dm b/code/modules/jobs/job_types/labs/medical/chemist.dm index 0ef3d9d81a46..7e122abf3d03 100644 --- a/code/modules/jobs/job_types/labs/medical/chemist.dm +++ b/code/modules/jobs/job_types/labs/medical/chemist.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL, ACCESS_PHARMACY) minimal_access = list(ACCESS_MEDICAL, ACCESS_PHARMACY) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/cmo.dm b/code/modules/jobs/job_types/labs/medical/cmo.dm index 92ee317a591f..15dfc995122e 100644 --- a/code/modules/jobs/job_types/labs/medical/cmo.dm +++ b/code/modules/jobs/job_types/labs/medical/cmo.dm @@ -11,6 +11,7 @@ access = list(ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_MEDICAL, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_COMMAND | DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/nurse.dm b/code/modules/jobs/job_types/labs/medical/nurse.dm index 4cad3a48d5f2..e3d5eef07235 100644 --- a/code/modules/jobs/job_types/labs/medical/nurse.dm +++ b/code/modules/jobs/job_types/labs/medical/nurse.dm @@ -14,6 +14,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/paramedic.dm b/code/modules/jobs/job_types/labs/medical/paramedic.dm index 9b2f00b3bf26..9003b654c16f 100644 --- a/code/modules/jobs/job_types/labs/medical/paramedic.dm +++ b/code/modules/jobs/job_types/labs/medical/paramedic.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_MEDICAL, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/medical/surgeon.dm b/code/modules/jobs/job_types/labs/medical/surgeon.dm index e5573d6f2e7a..45fec4cb1b0e 100644 --- a/code/modules/jobs/job_types/labs/medical/surgeon.dm +++ b/code/modules/jobs/job_types/labs/medical/surgeon.dm @@ -13,6 +13,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_MEDICAL job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/clerk.dm b/code/modules/jobs/job_types/labs/research/clerk.dm index fa38897eb97f..a2ad3c65beb3 100644 --- a/code/modules/jobs/job_types/labs/research/clerk.dm +++ b/code/modules/jobs/job_types/labs/research/clerk.dm @@ -11,6 +11,7 @@ access = list() //No Acess minimal_access = list() + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/lead.dm b/code/modules/jobs/job_types/labs/research/lead.dm index 1b7c6895d461..c97945b9ed6d 100644 --- a/code/modules/jobs/job_types/labs/research/lead.dm +++ b/code/modules/jobs/job_types/labs/research/lead.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) minimal_access = list(ACCESS_RND, ACCESS_COMMAND, ACCESS_ARMORY, ACCESS_SECURITY) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/paperwork.dm b/code/modules/jobs/job_types/labs/research/paperwork.dm index 528bcd6446e0..e0257f99a98c 100644 --- a/code/modules/jobs/job_types/labs/research/paperwork.dm +++ b/code/modules/jobs/job_types/labs/research/paperwork.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND) minimal_access = list(ACCESS_RND, ACCESS_COMMAND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/researcher.dm b/code/modules/jobs/job_types/labs/research/researcher.dm index 17c595115598..c549230d9abc 100644 --- a/code/modules/jobs/job_types/labs/research/researcher.dm +++ b/code/modules/jobs/job_types/labs/research/researcher.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/research/senior.dm b/code/modules/jobs/job_types/labs/research/senior.dm index 3117c41edd5a..97e52b8c558f 100644 --- a/code/modules/jobs/job_types/labs/research/senior.dm +++ b/code/modules/jobs/job_types/labs/research/senior.dm @@ -10,6 +10,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_SCIENCE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/security/highsec.dm b/code/modules/jobs/job_types/labs/security/highsec.dm index d969b1867d78..08ebf8026a1f 100644 --- a/code/modules/jobs/job_types/labs/security/highsec.dm +++ b/code/modules/jobs/job_types/labs/security/highsec.dm @@ -9,6 +9,7 @@ selection_color = "#cf5979" access = list(ACCESS_ARMORY) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/high_sec_officer display_order = 9.5 @@ -59,6 +60,7 @@ selection_color = "#99314d" access = list(ACCESS_ARMORY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_ARMORY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY outfit = /datum/outfit/job/high_sec_commander display_order = 9 diff --git a/code/modules/jobs/job_types/labs/security/lowsec.dm b/code/modules/jobs/job_types/labs/security/lowsec.dm index 01cdd21640fb..b90028faff6d 100644 --- a/code/modules/jobs/job_types/labs/security/lowsec.dm +++ b/code/modules/jobs/job_types/labs/security/lowsec.dm @@ -9,6 +9,7 @@ selection_color = "#6571a6" access = list(ACCESS_SECURITY) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_SECURITY) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_SECURITY outfit = /datum/outfit/job/low_sec_officer display_order = 8.5 @@ -60,6 +61,7 @@ selection_color = "#444d75" access = list(ACCESS_SECURITY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() minimal_access = list(ACCESS_SECURITY, ACCESS_COMMAND) //See /datum/job/assistant/get_access() + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY outfit = /datum/outfit/job/low_sec_commander display_order = 8 diff --git a/code/modules/jobs/job_types/labs/support/chef.dm b/code/modules/jobs/job_types/labs/support/chef.dm index 6f03309e6905..8d1f49d0b415 100644 --- a/code/modules/jobs/job_types/labs/support/chef.dm +++ b/code/modules/jobs/job_types/labs/support/chef.dm @@ -10,6 +10,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_SERVICE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/support/engineer.dm b/code/modules/jobs/job_types/labs/support/engineer.dm index 194994e449a9..37c231610d1c 100644 --- a/code/modules/jobs/job_types/labs/support/engineer.dm +++ b/code/modules/jobs/job_types/labs/support/engineer.dm @@ -10,6 +10,7 @@ access = list(ACCESS_SECURITY, ACCESS_ARMORY, ACCESS_CONSTRUCTION) minimal_access = list(ACCESS_SECURITY, ACCESS_ARMORY, ACCESS_CONSTRUCTION) + departments = DEPARTMENT_ENGINEERING job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/labs/support/janitor.dm b/code/modules/jobs/job_types/labs/support/janitor.dm index f8f6a9cb2328..441b6c129ba9 100644 --- a/code/modules/jobs/job_types/labs/support/janitor.dm +++ b/code/modules/jobs/job_types/labs/support/janitor.dm @@ -10,6 +10,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_SERVICE job_attribute_limit = 0 diff --git a/code/modules/jobs/job_types/manager.dm b/code/modules/jobs/job_types/manager.dm index e322467ba172..5a67f4cf3f3b 100644 --- a/code/modules/jobs/job_types/manager.dm +++ b/code/modules/jobs/job_types/manager.dm @@ -16,6 +16,7 @@ access = list(ACCESS_COMMAND, ACCESS_MANAGER) // LC13:To-Do minimal_access = list(ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND job_attribute_limit = 60 roundstart_attributes = list(FORTITUDE_ATTRIBUTE, PRUDENCE_ATTRIBUTE = 60, TEMPERANCE_ATTRIBUTE, JUSTICE_ATTRIBUTE) diff --git a/code/modules/jobs/job_types/mentor/trainingofficer.dm b/code/modules/jobs/job_types/mentor/trainingofficer.dm index febab963a9f2..613eee293d51 100644 --- a/code/modules/jobs/job_types/mentor/trainingofficer.dm +++ b/code/modules/jobs/job_types/mentor/trainingofficer.dm @@ -8,6 +8,7 @@ display_order = JOB_DISPLAY_ORDER_COMMAND access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND exp_requirements = 0 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/rcorp/command.dm b/code/modules/jobs/job_types/rcorp/command.dm index 8d179632cfbc..ab8670ee1260 100644 --- a/code/modules/jobs/job_types/rcorp/command.dm +++ b/code/modules/jobs/job_types/rcorp/command.dm @@ -17,6 +17,7 @@ access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm b/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm index 749a07001da4..8be0fbb6dafe 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/officer.dm @@ -21,6 +21,7 @@ ) access = list(ACCESS_COMMAND) minimal_access = (ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP rank_title = "LT" job_important = "You are a support and command role in Rcorp. Advise the Commander, Run requisitions and then deploy." job_notice = "Run the Requisitions, assist Rcorp personnel on the base. After deployment, use your beacon to select which class you'd like." diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm b/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm index e9709246e779..7040aab749bd 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/raccoon.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -60,6 +61,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm b/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm index 5697e81d58a1..377d3b3c3761 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/rat.dm @@ -13,6 +13,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -52,6 +53,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm b/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm index 48a6a3a3b207..387a3cc2627f 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/roadrunner.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 50, @@ -48,6 +49,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 70, diff --git a/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm b/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm index e7e5e01efd3c..c827993c2b2d 100644 --- a/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm +++ b/code/modules/jobs/job_types/rcorp/fifthpack/rooster.dm @@ -14,6 +14,7 @@ access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, @@ -48,6 +49,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 130, diff --git a/code/modules/jobs/job_types/rcorp/officer.dm b/code/modules/jobs/job_types/rcorp/officer.dm index 4491cdf32cf6..4ed5b30a9f2c 100644 --- a/code/modules/jobs/job_types/rcorp/officer.dm +++ b/code/modules/jobs/job_types/rcorp/officer.dm @@ -21,6 +21,7 @@ ) access = list(ACCESS_COMMAND) minimal_access = (ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP rank_title = "LT" job_important = "You are a support and command role in Rcorp. Advise the Commander, Run requisitions and then deploy." job_notice = "Run the Requisitions, assist Rcorp personnel on the base. After deployment, use your beacon to select which class you'd like." diff --git a/code/modules/jobs/job_types/rcorp/rabbit.dm b/code/modules/jobs/job_types/rcorp/rabbit.dm index 52b59730f1e1..e7c539091b90 100644 --- a/code/modules/jobs/job_types/rcorp/rabbit.dm +++ b/code/modules/jobs/job_types/rcorp/rabbit.dm @@ -15,6 +15,7 @@ //Eat shit rabbits lol access = list() minimal_access = list() + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -58,6 +59,7 @@ access = list(ACCESS_COMMAND) minimal_access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/raven.dm b/code/modules/jobs/job_types/rcorp/raven.dm index a25688e175db..96614ae1a73c 100644 --- a/code/modules/jobs/job_types/rcorp/raven.dm +++ b/code/modules/jobs/job_types/rcorp/raven.dm @@ -15,6 +15,7 @@ access = list(ACCESS_RND) minimal_access = list(ACCESS_RND) + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -66,6 +67,7 @@ access = list(ACCESS_RND, ACCESS_COMMAND) minimal_access = list(ACCESS_RND, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, diff --git a/code/modules/jobs/job_types/rcorp/reindeer.dm b/code/modules/jobs/job_types/rcorp/reindeer.dm index a411ab2d048e..f6d626283c6f 100644 --- a/code/modules/jobs/job_types/rcorp/reindeer.dm +++ b/code/modules/jobs/job_types/rcorp/reindeer.dm @@ -15,6 +15,7 @@ access = list(ACCESS_MEDICAL) minimal_access = list(ACCESS_MEDICAL) + departments = DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, @@ -66,6 +67,7 @@ access = list(ACCESS_MEDICAL, ACCESS_COMMAND) minimal_access = list(ACCESS_MEDICAL, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP | DEPARTMENT_MEDICAL roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/rcorp/rhino.dm b/code/modules/jobs/job_types/rcorp/rhino.dm index 6c325fa09fc2..0de5d1139255 100644 --- a/code/modules/jobs/job_types/rcorp/rhino.dm +++ b/code/modules/jobs/job_types/rcorp/rhino.dm @@ -15,6 +15,7 @@ access = list(ACCESS_ARMORY, ACCESS_CENT_GENERAL) minimal_access = list(ACCESS_ARMORY, ACCESS_CENT_GENERAL) + departments = DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 40, @@ -61,6 +62,7 @@ access = list(ACCESS_ARMORY, ACCESS_COMMAND, ACCESS_CENT_GENERAL) minimal_access = list(ACCESS_ARMORY, ACCESS_COMMAND, ACCESS_CENT_GENERAL) + departments = DEPARTMENT_COMMAND | DEPARTMENT_R_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/suppression.dm b/code/modules/jobs/job_types/suppression.dm index 2139f48bf589..2fc775380e1c 100644 --- a/code/modules/jobs/job_types/suppression.dm +++ b/code/modules/jobs/job_types/suppression.dm @@ -16,6 +16,7 @@ minimal_access = list() allow_bureaucratic_error = FALSE + departments = DEPARTMENT_SECURITY job_important = "You are an L-Corp Emergency Response Agent. Your job is to suppress Abnormalities. You cannot work. Use :h to talk on your departmental radio." job_abbreviation = "ERA" @@ -90,6 +91,7 @@ normal_attribute_level = 20 access = list(ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND | DEPARTMENT_SECURITY exp_requirements = 6000 exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SECURITY diff --git a/code/modules/jobs/job_types/trusted_players/association/associate.dm b/code/modules/jobs/job_types/trusted_players/association/associate.dm index 64367a7989ba..18459244ccc7 100644 --- a/code/modules/jobs/job_types/trusted_players/association/associate.dm +++ b/code/modules/jobs/job_types/trusted_players/association/associate.dm @@ -11,6 +11,7 @@ display_order = JOB_DISPLAY_ORDER_ASSOCIATION access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_ASSOCIATION | DEPARTMENT_FIXERS paycheck = 700 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/association/director.dm b/code/modules/jobs/job_types/trusted_players/association/director.dm index 002cc29428b7..305c73b9e493 100644 --- a/code/modules/jobs/job_types/trusted_players/association/director.dm +++ b/code/modules/jobs/job_types/trusted_players/association/director.dm @@ -19,6 +19,7 @@ GLOBAL_LIST_INIT(association_jobs, list( trusted_only = TRUE access = list(ACCESS_PHARMACY, ACCESS_NETWORK, ACCESS_RC_ANNOUNCE) // I want to use the number 69. minimal_access = list(ACCESS_PHARMACY, ACCESS_NETWORK, ACCESS_RC_ANNOUNCE) + departments = DEPARTMENT_COMMAND | DEPARTMENT_ASSOCIATION paycheck = 700 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/association/roaming.dm b/code/modules/jobs/job_types/trusted_players/association/roaming.dm index 6a720418bf5c..787c198b1ac2 100644 --- a/code/modules/jobs/job_types/trusted_players/association/roaming.dm +++ b/code/modules/jobs/job_types/trusted_players/association/roaming.dm @@ -12,10 +12,10 @@ trusted_only = TRUE access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_HANA | DEPARTMENT_FIXERS paycheck = 700 maptype = list("fixers", "city") - //They actually need this for their weapons roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/trusted_players/association/veteran.dm b/code/modules/jobs/job_types/trusted_players/association/veteran.dm index cbf31dd4c9e5..5b20095101e5 100644 --- a/code/modules/jobs/job_types/trusted_players/association/veteran.dm +++ b/code/modules/jobs/job_types/trusted_players/association/veteran.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK) minimal_access = list(ACCESS_NETWORK) + departments = DEPARTMENT_ASSOCIATION | DEPARTMENT_FIXERS paycheck = 400 maptype = list("wonderlabs", "city") diff --git a/code/modules/jobs/job_types/trusted_players/hana.dm b/code/modules/jobs/job_types/trusted_players/hana.dm index 0027ab7c447a..4c49fbda8ac8 100644 --- a/code/modules/jobs/job_types/trusted_players/hana.dm +++ b/code/modules/jobs/job_types/trusted_players/hana.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER, ACCESS_CHANGE_IDS) minimal_access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER, ACCESS_CHANGE_IDS) + departments = DEPARTMENT_HANA paycheck = 0 maptype = list("city", "fixers") job_important = "You are the city's administrator, and have a small sort of power over the local association. \ @@ -69,6 +70,7 @@ total_positions = 1 spawn_positions = 1 display_order = JOB_DISPLAY_ORDER_MANAGER + departments = DEPARTMENT_COMMAND | DEPARTMENT_HANA paycheck = 0 diff --git a/code/modules/jobs/job_types/trusted_players/representative.dm b/code/modules/jobs/job_types/trusted_players/representative.dm index ddc40b925080..16e8895bfadf 100644 --- a/code/modules/jobs/job_types/trusted_players/representative.dm +++ b/code/modules/jobs/job_types/trusted_players/representative.dm @@ -12,6 +12,7 @@ trusted_only = TRUE access = list(ACCESS_PHARMACY, ACCESS_COMMAND) // I want to use the number 69. minimal_access = list(ACCESS_PHARMACY, ACCESS_COMMAND) + departments = DEPARTMENT_COMMAND mapexclude = list("wonderlabs", "mini") job_abbreviation = "REP" diff --git a/code/modules/jobs/job_types/trusted_players/sephirah.dm b/code/modules/jobs/job_types/trusted_players/sephirah.dm index 786d9770a1db..6361f45c9f49 100644 --- a/code/modules/jobs/job_types/trusted_players/sephirah.dm +++ b/code/modules/jobs/job_types/trusted_players/sephirah.dm @@ -8,6 +8,7 @@ trusted_only = TRUE access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER) // Network is the trusted chat gamer access minimal_access = list(ACCESS_NETWORK, ACCESS_COMMAND, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND mapexclude = list("wonderlabs", "mini") job_important = "You are a roleplay role, and may not partake in combat. Assist the manager and roleplay with the agents and clerks" job_notice = "\ diff --git a/code/modules/jobs/job_types/wcorp/wcorpl1.dm b/code/modules/jobs/job_types/wcorp/wcorpl1.dm index 9048d1a398f3..94274c3df2d1 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl1.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl1.dm @@ -15,6 +15,7 @@ //yes i have been so distant consistently indifferent access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 60, diff --git a/code/modules/jobs/job_types/wcorp/wcorpl2.dm b/code/modules/jobs/job_types/wcorp/wcorpl2.dm index 8618f476f361..fd6f72e1dfe2 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl2.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl2.dm @@ -16,9 +16,9 @@ GLOBAL_LIST_INIT(l2csquads, list("Axe", "Buckler", "Cleaver", "Axe", "Buckler", outfit = /datum/outfit/job/wcorpl2 display_order = 4.5 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorpl3.dm b/code/modules/jobs/job_types/wcorp/wcorpl3.dm index 0115ddd2cb2a..41c8993cf504 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpl3.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpl3.dm @@ -17,9 +17,9 @@ GLOBAL_LIST_INIT(l3squads, list("Axe", "Buckler", "Cleaver")) outfit = /datum/outfit/job/wcorpl3 display_order = 2 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_COMMAND | DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 100, diff --git a/code/modules/jobs/job_types/wcorp/wcorprecon.dm b/code/modules/jobs/job_types/wcorp/wcorprecon.dm index 9a20d830bc99..16eca5307a7f 100644 --- a/code/modules/jobs/job_types/wcorp/wcorprecon.dm +++ b/code/modules/jobs/job_types/wcorp/wcorprecon.dm @@ -15,9 +15,9 @@ GLOBAL_LIST_INIT(l2asquads, list("Axe", "Buckler", "Cleaver")) outfit = /datum/outfit/job/wcorpl2recon display_order = 3 - access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorprep.dm b/code/modules/jobs/job_types/wcorp/wcorprep.dm index 208600e78f37..e641bc8efbe8 100644 --- a/code/modules/jobs/job_types/wcorp/wcorprep.dm +++ b/code/modules/jobs/job_types/wcorp/wcorprep.dm @@ -25,6 +25,7 @@ ) access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) minimal_access = list(ACCESS_ARMORY, ACCESS_RND, ACCESS_COMMAND, ACCESS_MEDICAL, ACCESS_MANAGER) + departments = DEPARTMENT_COMMAND | DEPARTMENT_W_CORP rank_title = "W-Corp Representative" job_important = "You are W-Corp's main representative, overseeing the cleanup operation. Assure that all things go smoothy for the company." job_notice = "Manage the agents at your disposal." diff --git a/code/modules/jobs/job_types/wcorp/wcorpshield.dm b/code/modules/jobs/job_types/wcorp/wcorpshield.dm index ebbf552181ea..2b6b0217b262 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpshield.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpshield.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(l2bsquads, list("Axe", "Buckler", "Cleaver")) access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/job_types/wcorp/wcorpspear.dm b/code/modules/jobs/job_types/wcorp/wcorpspear.dm index df30d188a6be..eae373ae5f9a 100644 --- a/code/modules/jobs/job_types/wcorp/wcorpspear.dm +++ b/code/modules/jobs/job_types/wcorp/wcorpspear.dm @@ -18,6 +18,7 @@ GLOBAL_LIST_INIT(l2dsquads, list("Axe", "Buckler", "Cleaver")) access = list() //add accesses as necessary minimal_access = list() + departments = DEPARTMENT_W_CORP roundstart_attributes = list( FORTITUDE_ATTRIBUTE = 80, diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index e325f43840df..dd8a7843d8b1 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -1,3 +1,4 @@ +// LOBOTOMYCORPORATION EDIT -- This whole un-modular monstrosity GLOBAL_LIST_INIT(command_positions, list( "Manager", "Extraction Officer", @@ -9,7 +10,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Department Head", "Agent Captain", - //City heads + // City heads "Doctor", "Hana Administrator", "Association Section Director", @@ -19,8 +20,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Thumb Sottocapo", "Kurokumo Kashira", - - //Rcorp Fourth Pack + // R-corp Fourth Pack "Ground Commander", "Lieutenant Commander", "Operations Officer", @@ -29,7 +29,7 @@ GLOBAL_LIST_INIT(command_positions, list( "Rhino Squad Captain", "Raven Squad Captain", - //Rcorp Fifth Pack + // R-corp Fifth Pack "Assault Commander", "Base Commander", "Support Officer", @@ -38,56 +38,52 @@ GLOBAL_LIST_INIT(command_positions, list( "Raccoon Squad Leader", "Roadrunner Squad Leader", - - //Wcorp stuff + // W-corp stuff "W-Corp Representative", "W-Corp L3 Squad Captain", - //LCB Labs + // LCB Labs "District Manager", "LC Asset Protection", "Chief Medical Officer", "Lead Researcher", "High Security Commander", "Low Security Commander", + + "Office Director", )) GLOBAL_LIST_INIT(engineering_positions, list( + "Containment Engineer", // LCB Labs )) GLOBAL_LIST_INIT(medical_positions, list( - //LC Labs + // LCB Labs "Chief Medical Officer", "Surgeon", "Nurse Practitioner", "Pharmacist", "Emergency Medical Technician", + + // City + "Doctor", + "Nurse", + "Paramedic", + "Medical Fixer Assistant", + "Proshetics Surgeon", )) GLOBAL_LIST_INIT(science_positions, list( - "Hana Administrator", - "Hana Representative", - "Hana Intern", - "Association Section Director", - "Association Veteran", - "Association Fixer", - "Roaming Association Fixer", - "East Office Director", - "East Office Fixer", - "North Office Director", - "North Office Fixer", - - //LCB Labs + // LCB Labs "Lead Researcher", "Senior Researcher", "Information Systems Tech", "Research Archivist", "Researcher", "LC Staff", - )) @@ -100,11 +96,6 @@ GLOBAL_LIST_INIT(service_positions, list( "Agent Support Clerk", "Facility Support Clerk", - - "Doctor", - "Nurse", - "Paramedic", - "Medical Fixer Assistant", "Proshetics Surgeon", "HHPP Chef", "Civilian", @@ -113,10 +104,8 @@ GLOBAL_LIST_INIT(service_positions, list( "Workshop Attendant", "Main Office Representative", "Fishhook Office Fixer", - "Rat", - //LCB Labs - "Containment Engineer", + // LCB Labs "LC Chef", "LC Janitor", )) @@ -136,7 +125,52 @@ GLOBAL_LIST_INIT(security_positions, list( "Agent", "Agent Intern", - //R-Corp Fourth Pack + // LCB Labs + "High Security Commander", + "Low Security Commander", + "High Security Officer", + "Low Security Officer", + "Damage Mitigation Officer", + "Damage Exasperation Officer", + "Internal Police", + )) + + +GLOBAL_LIST_INIT(nonhuman_positions, list( + )) + + + +GLOBAL_LIST_INIT(w_corp_positions, list( + "W-Corp Representative", + "W-Corp L3 Squad Captain", + "W-Corp L2 Type A Lieutenant", + "W-Corp L2 Type B Support Agent", + "W-Corp L2 Type C Weapon Specialist", + "W-Corp L2 Type D Spear Agent", + "W-Corp L1 Cleanup Agent", +)) + +GLOBAL_LIST_INIT(r_corp_positions, list( + // 4th Pack Command + "Ground Commander", + "Lieutenant Commander", + "Operations Officer", + "Rabbit Squad Captain", + "Reindeer Squad Captain", + "Rhino Squad Captain", + "Raven Squad Captain", + + // 5th Pack Command + "Assault Commander", + "Base Commander", + "Support Officer", + "Rat Squad Leader", + "Rooster Squad Leader", + "Raccoon Squad Leader", + "Roadrunner Squad Leader", + + // 4th Pack troops "R-Corp Suppressive Rabbit", "R-Corp Assault Rabbit", "R-Corp Medical Reindeer", @@ -146,22 +180,47 @@ GLOBAL_LIST_INIT(security_positions, list( "R-Corp Scout Raven", "R-Corp Support Raven", - //Fifth Pack + // 5th Pack troops "R-Corp Rat", "R-Corp Rooster", "R-Corp Raccoon Spy", "R-Corp Raccoon Sniper", "R-Corp Roadrunner", +)) - //W-Corp agents - "W-Corp L2 Type A Lieutenant", - "W-Corp L2 Type B Support Agent", - "W-Corp L2 Type C Weapon Specialist", - "W-Corp L2 Type D Spear Agent", - "W-Corp L1 Cleanup Agent", +GLOBAL_LIST_INIT(hana_positions, list( + "Hana Administrator", + "Hana Representative", + "Hana Intern", +)) + +GLOBAL_LIST_INIT(fixer_positions, list( + "East Office Director", + "East Office Fixer", + "North Office Director", + "North Office Fixer", + + "Association Section Director", + "Association Veteran", + "Association Fixer", + "Roaming Association Fixer", + + "Medical Fixer Assistant", + "Fixer", + "Rat", // most fitting, somehow + + "Fixer", + "Office Fixer", +)) +GLOBAL_LIST_INIT(association_positions, list( + "Association Section Director", + "Association Veteran", + "Association Fixer", + "Roaming Association Fixer", +)) - //Syndicates +GLOBAL_LIST_INIT(city_antagonist_positions, list( "Index Messenger", "Index Proxy", "Index Proselyte", @@ -183,26 +242,19 @@ GLOBAL_LIST_INIT(security_positions, list( "Kurokumo Kashira", "Kurokumo Hosa", "Kurokumo Wakashu", +)) - //LCB Labs - "High Security Commander", - "Low Security Commander", - "High Security Officer", - "Low Security Officer", - "Damage Mitigation Officer", - "Damage Exasperation Officer", - "Internal Police", - - //Fixers - "Fixer", - )) - - -GLOBAL_LIST_INIT(nonhuman_positions, list( - )) // job categories for rendering the late join menu GLOBAL_LIST_INIT(position_categories, list( + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = list("jobs" = w_corp_positions, "color" = "#00b5ad"), + "R Corp" = list("jobs" = r_corp_positions, "color" = "#f2711c"), + "Hana" = list("jobs" = hana_positions, "color" = "#ffffff"), + "Association" = list("jobs" = association_positions, "color" = "#5baa27"), + "Syndicate" = list("jobs" = city_antagonist_positions, "color" = "#db2828"), + "Fixers" = list("jobs" = fixer_positions, "color" = "#767676"), + // LOBOTOMYCORPORATION ADDITION END EXP_TYPE_COMMAND = list("jobs" = command_positions, "color" = "#ccccff"), EXP_TYPE_ENGINEERING = list("jobs" = engineering_positions, "color" = "#ffeeaa"), EXP_TYPE_SUPPLY = list("jobs" = supply_positions, "color" = "#ddddff"), @@ -210,17 +262,22 @@ GLOBAL_LIST_INIT(position_categories, list( EXP_TYPE_SERVICE = list("jobs" = service_positions, "color" = "#bbe291"), EXP_TYPE_MEDICAL = list("jobs" = medical_positions, "color" = "#ffddf0"), EXP_TYPE_SCIENCE = list("jobs" = science_positions, "color" = "#ffddff"), - EXP_TYPE_SECURITY = list("jobs" = security_positions, "color" = "#ffdddd") + EXP_TYPE_SECURITY = list("jobs" = security_positions, "color" = "#ffdddd"), )) GLOBAL_LIST_INIT(exp_jobsmap, list( - EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions - EXP_TYPE_COMMAND = list("titles" = command_positions), +// LOBOTOMYCORPORATION EDIT START +// EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | list("AI","Cyborg")), // crew positions +// EXP_TYPE_COMMAND = list("titles" = command_positions), + EXP_TYPE_CREW = list("titles" = command_positions | engineering_positions | medical_positions | science_positions | supply_positions | security_positions | service_positions | w_corp_positions | r_corp_positions | hana_positions | association_positions | city_antagonist_positions | list("AI","Cyborg")), // crew positions + EXP_TYPE_COMMAND = list("titles" = command_positions | hana_positions), +// LOBOTOMYCORPORATION EDIT END EXP_TYPE_ENGINEERING = list("titles" = engineering_positions), EXP_TYPE_MEDICAL = list("titles" = medical_positions), EXP_TYPE_SCIENCE = list("titles" = science_positions), EXP_TYPE_SUPPLY = list("titles" = supply_positions), - EXP_TYPE_SECURITY = list("titles" = security_positions), +// EXP_TYPE_SECURITY = list("titles" = security_positions), // LOBOTOMYCORPORATION EDIT OLD + EXP_TYPE_SECURITY = list("titles" = security_positions | city_antagonist_positions | association_positions | w_corp_positions | r_corp_positions | fixer_positions), // LOBOTOMYCORPORATION EDIT NEW EXP_TYPE_SILICON = list("titles" = list("AI","Cyborg")), EXP_TYPE_SERVICE = list("titles" = service_positions) )) diff --git a/code/modules/mob/dead/crew_manifest.dm b/code/modules/mob/dead/crew_manifest.dm new file mode 100644 index 000000000000..918f6e022914 --- /dev/null +++ b/code/modules/mob/dead/crew_manifest.dm @@ -0,0 +1,94 @@ +/datum/crew_manifest + +/datum/crew_manifest/ui_state(mob/user) + return GLOB.always_state + +/datum/crew_manifest/ui_status(mob/user, datum/ui_state/state) + return (isnewplayer(user) || isobserver(user) || isAI(user) || ispAI(user)) ? UI_INTERACTIVE : UI_CLOSE + +/datum/crew_manifest/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if (!ui) + ui = new(user, src, "CrewManifest") + ui.open() + +/datum/crew_manifest/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) + . = ..() + if(.) + return + +/datum/crew_manifest/ui_data(mob/user) + var/list/positions = list( + // LOBOTOMYCORPORATION ADDITION START + "W Corp" = list("exceptions" = list(), "open" = 0), + "R Corp" = list("exceptions" = list(), "open" = 0), + "Hana" = list("exceptions" = list(), "open" = 0), + "Association" = list("exceptions" = list(), "open" = 0), + "Syndicate" = list("exceptions" = list(), "open" = 0), + "Fixers" = list("exceptions" = list(), "open" = 0), + // LOBOTOMYCORPORATION ADDITION END + "Command" = list("exceptions" = list(), "open" = 0), + "Security" = list("exceptions" = list(), "open" = 0), + "Engineering" = list("exceptions" = list(), "open" = 0), + "Medical" = list("exceptions" = list(), "open" = 0), + "Misc" = list("exceptions" = list(), "open" = 0), + "Science" = list("exceptions" = list(), "open" = 0), + "Supply" = list("exceptions" = list(), "open" = 0), + "Service" = list("exceptions" = list(), "open" = 0), + "Silicon" = list("exceptions" = list(), "open" = 0) + ) + var/list/departments = list( + // LOBOTOMYCORPORATION ADDITION START + list("flag" = DEPARTMENT_W_CORP, "name" = "W Corp"), + list("flag" = DEPARTMENT_R_CORP, "name" = "R Corp"), + list("flag" = DEPARTMENT_HANA, "name" = "Hana"), + list("flag" = DEPARTMENT_ASSOCIATION, "name" = "Association"), + list("flag" = DEPARTMENT_CITY_ANTAGONIST, "name" = "Syndicate"), + list("flag" = DEPARTMENT_FIXERS, "name" = "Fixers"), + // LOBOTOMYCORPORATION ADDITION END + list("flag" = DEPARTMENT_COMMAND, "name" = "Command"), + list("flag" = DEPARTMENT_SECURITY, "name" = "Security"), + list("flag" = DEPARTMENT_ENGINEERING, "name" = "Engineering"), + list("flag" = DEPARTMENT_MEDICAL, "name" = "Medical"), + list("flag" = DEPARTMENT_SCIENCE, "name" = "Science"), + list("flag" = DEPARTMENT_CARGO, "name" = "Supply"), + list("flag" = DEPARTMENT_SERVICE, "name" = "Service"), + list("flag" = DEPARTMENT_SILICON, "name" = "Silicon"), + ) + +// LOBOTOMYCORPORATION EDIT OLD START +/* + for(var/job in SSjob.occupations) + // Check if there are additional open positions or if there is no limit + if ((job["total_positions"] > 0 && job["total_positions"] > job["current_positions"]) || (job["total_positions"] == -1)) + for(var/department in departments) + // Check if the job is part of a department using its flag + // Will return true for Research Director if the department is Science or Command, for example + if(job["departments"] & department["flag"]) + if(job["total_positions"] == -1) + // Add job to list of exceptions, meaning it does not have a position limit + positions[department["name"]]["exceptions"] += list(job["title"]) + else + // Add open positions to current department + positions[department["name"]]["open"] += (job["total_positions"] - job["current_positions"]) +*/ +// LOBOTOMYCORPORATION EDIT OLD END +// LOBOTOMYCORPORATION EDIT NEW START + for(var/datum/job/job in SSjob.occupations) + if((job.total_positions > 0 && job.total_positions > job.current_positions) || (job.total_positions == -1)) + for(var/department in departments) + // Check if the job is part of a department using its flag + // Will return true for Research Director if the department is Science or Command, for example + if(job.departments & department["flag"]) + if(job.total_positions == -1) + // Add job to list of exceptions, meaning it does not have a position limit + positions[department["name"]]["exceptions"] += list(job.title) + else + // Add open positions to current department + positions[department["name"]]["open"] += (job.total_positions - job.current_positions) +// LOBOTOMYCORPORATION EDIT NEW END + + return list( + "manifest" = GLOB.data_core.get_manifest(), + "positions" = positions + ) diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 0591a1c2e1b8..fa7f1d7c8afa 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -35,6 +35,7 @@ /mob/dead/new_player/Destroy() GLOB.new_player_list -= src + return ..() /mob/dead/new_player/prepare_huds() @@ -523,11 +524,10 @@ return client.crew_manifest_delay = world.time + (1 SECONDS) - var/dat = "" - dat += "

Crew Manifest

" - dat += GLOB.data_core.get_manifest_html() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) - src << browse(dat, "window=manifest;size=387x420;can_close=1") + GLOB.crew_manifest_tgui.ui_interact(src) /mob/dead/new_player/Move() return 0 diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 78134dd79575..0b1cd300229e 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -698,11 +698,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp return client.crew_manifest_delay = world.time + (1 SECONDS) - var/dat - dat += "

Crew Manifest

" - dat += GLOB.data_core.get_manifest_html() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) - src << browse(dat, "window=manifest;size=387x420;can_close=1") + GLOB.crew_manifest_tgui.ui_interact(src) //this is called when a ghost is drag clicked to something. /mob/dead/observer/MouseDrop(atom/over) diff --git a/code/modules/mob/living/carbon/human/damage_procs.dm b/code/modules/mob/living/carbon/human/damage_procs.dm index 6122c3434f97..cff4e8777f96 100644 --- a/code/modules/mob/living/carbon/human/damage_procs.dm +++ b/code/modules/mob/living/carbon/human/damage_procs.dm @@ -6,18 +6,17 @@ //// Damage Effects /mob/living/carbon/human/adjustRedLoss(amount, updating_health = TRUE, forced = FALSE) + if(stat != DEAD) + DamageEffect(amount, RED_DAMAGE) . = ..() - //Failsafe - if(. && !forced) - if(. > 0) - new /obj/effect/temp_visual/damage_effect/red(get_turf(src)) + /mob/living/carbon/human/adjustWhiteLoss(amount, updating_health = TRUE, forced = FALSE, white_healable = FALSE) var/damage_amt = amount if(sanity_lost && white_healable) // Heal sanity instead. damage_amt *= -1 - if(damage_amt > 0 && !forced) - new /obj/effect/temp_visual/damage_effect/white(get_turf(src)) + if(stat != DEAD) + DamageEffect(damage_amt, WHITE_DAMAGE) adjustSanityLoss(damage_amt, forced) if(updating_health) updatehealth() @@ -27,29 +26,26 @@ var/damage_amt = amount if(sanity_lost && white_healable) // Heal sanity instead. damage_amt *= -1 - if(amount > 0 && !forced) - new /obj/effect/temp_visual/damage_effect/black(get_turf(src)) + if(stat != DEAD) + DamageEffect(amount, BLACK_DAMAGE) adjustBruteLoss(amount, forced = forced) adjustSanityLoss(damage_amt, forced = forced) return damage_amt /mob/living/carbon/human/adjustPaleLoss(amount, updating_health = TRUE, forced = FALSE) + if(stat != DEAD) + DamageEffect(amount, PALE_DAMAGE) . = ..() - if(. && !forced) - if(. > 0) - new /obj/effect/temp_visual/damage_effect/pale(get_turf(src)) /mob/living/carbon/human/adjustToxLoss(amount, updating_health = TRUE, forced = FALSE) + if(stat != DEAD) + DamageEffect(amount, TOX) . = ..() - if(. && !forced) - if(. > 0) - new /obj/effect/temp_visual/damage_effect/tox(get_turf(src)) /mob/living/carbon/human/adjustFireLoss(amount, updating_health = TRUE, forced = FALSE, required_status) + if(stat != DEAD) + DamageEffect(amount, BURN) . = ..() - if(. && !forced) - if(. > 0) - new /obj/effect/temp_visual/damage_effect/burn(get_turf(src)) // diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 512a4dc09e89..3380cd9c847d 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -331,9 +331,10 @@ return client.crew_manifest_delay = world.time + (1 SECONDS) - var/datum/browser/popup = new(src, "airoster", "Crew Manifest", 387, 420) - popup.set_content(GLOB.data_core.get_manifest_html()) - popup.open() + if(!GLOB.crew_manifest_tgui) + GLOB.crew_manifest_tgui = new /datum/crew_manifest(src) + + GLOB.crew_manifest_tgui.ui_interact(src) /mob/living/silicon/proc/set_autosay() //For allowing the AI and borgs to set the radio behavior of auto announcements (state laws, arrivals). if(!radio) diff --git a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm index 8afc96970f05..d9ef65c50b5d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_abnormality.dm @@ -123,13 +123,22 @@ /// Offset for secret skins in the Y axis var/secret_vertical_offset = 0 - /// Final Observation details - var/observation_in_progress = FALSE + /// Final Observation stuffs + /// The prompt we get alongside our choices for observing it var/observation_prompt = "The abnormality is watching you. What will you do?" - var/list/observation_choices = list("Approach", "Leave") - var/list/correct_choices = list("Approach", "Leave") - var/observation_success_message = "Final Observation Success!" - var/observation_fail_message = "Final Observation Failed!" + /** + * observation_choices is made in the format of: + * "Choice" = list(TRUE or FALSE [depending on if the answer is correct], "Response"), + */ + var/list/observation_choices = list( + "Approach" = list(TRUE, "You approach the abnormality... and obtain a gift from it."), + "Leave" = list(TRUE, "You leave the abnormality... and before you notice a gift is in your hands."), + ) + /// Is there a currently on-going observation? + var/observation_in_progress = FALSE + + // rcorp stuff + var/rcorp_team /mob/living/simple_animal/hostile/abnormality/Initialize(mapload) SHOULD_CALL_PARENT(TRUE) @@ -339,13 +348,6 @@ /mob/living/simple_animal/hostile/abnormality/proc/PostSpawn() SHOULD_CALL_PARENT(TRUE) HandleStructures() - var/condition = FALSE //Final observation debug - for(var/answer in observation_choices) - if(answer in correct_choices) - condition = TRUE - if(!condition) - CRASH("Abnormality has no correct choice for final observation!") - return // Moves structures already in its datum; Overrides can spawn structures here. /mob/living/simple_animal/hostile/abnormality/proc/HandleStructures() @@ -552,25 +554,29 @@ return to_chat(user, span_warning("You already have a gift in the [gift_type.slot] slot, dissolve it first!")) return - var/condition = FALSE + if(observation_in_progress) to_chat(user, span_notice("Someone is already observing [src]!")) return observation_in_progress = TRUE - var/answer = final_observation_alert(user, "[observation_prompt]", "Final Observation of [src]", observation_choices, timeout = 60 SECONDS) - if(answer in correct_choices) - condition = TRUE - ObservationResult(user, condition, answer) //We pass along the answer just in case + var/answer = final_observation_alert(user, "[observation_prompt]", "Final Observation of [src]", shuffle(observation_choices), timeout = 60 SECONDS) + if(answer == "timed out") + ObservationResult(user, reply = answer) + else + var/list/answer_vars = observation_choices[answer] + ObservationResult(user, answer_vars[1], answer_vars[2]) + observation_in_progress = FALSE -/mob/living/simple_animal/hostile/abnormality/proc/ObservationResult(mob/living/carbon/human/user, condition, answer) - if(condition) //Successful, could override for longer observations as well. - final_observation_alert(user,"[observation_success_message]", "OBSERVATION SUCCESS",list("Ok"), timeout=20 SECONDS) //Some of these take a long time to read +/mob/living/simple_animal/hostile/abnormality/proc/ObservationResult(mob/living/carbon/human/user, success = FALSE, reply = "") + if(success) //Successful, could override for longer observations as well. + final_observation_alert(user, "[reply]", "OBSERVATION SUCCESS", list("Ok"), timeout = 20 SECONDS) //Some of these take a long time to read if(gift_type) user.Apply_Gift(new gift_type) playsound(get_turf(user), 'sound/machines/synth_yes.ogg', 30 , FALSE) else - final_observation_alert(user,"[observation_fail_message]", "OBSERVATION FAIL",list("Ok"), timeout=20 SECONDS) + if(reply != "timed out") + final_observation_alert(user, "[reply]", "OBSERVATION FAIL", list("Ok"), timeout = 20 SECONDS) playsound(get_turf(user), 'sound/machines/synth_no.ogg', 30 , FALSE) datum_reference.observation_ready = FALSE @@ -594,6 +600,11 @@ if(5) C.icon = 'ModularTegustation/Teguicons/abno_cores/aleph.dmi' +/mob/living/simple_animal/hostile/abnormality/spawn_gibs() + if(blood_volume <= 0) + return + return new /obj/effect/gibspawner/generic(drop_location(), src, get_static_viruses()) + // Actions /datum/action/innate/abnormality_attack name = "Abnormality Attack" diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi index 51ac2c6cfea6..25adf0c65e1d 100644 Binary files a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi and b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi differ diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi index a2a73606faf0..bd8e259acddd 100644 Binary files a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi and b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi differ diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi index 7422e03d3dc7..d45dda656afa 100644 Binary files a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi and b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi differ diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm index 5b7af06bece7..b8ad342504f1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_armor.dm @@ -47,7 +47,7 @@ // Waw /obj/item/clothing/suit/armor/ego_gear/waw/ochre name = "ochre sheet" - desc = "You shall not pass!" + desc = "The soul is not a single unity; that is what it is destined to become, and that is what we call \"Immortality\"." icon_state = "ochre" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_armor.dmi' worn_icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_worn.dmi' diff --git a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm index 7656c33438fd..5d2b489e2e2a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm +++ b/code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/ego_weapons.dm @@ -29,6 +29,8 @@ desc = "Some old bandages that look like they have been worn for a long time." icon_state = "desert" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi' + lefthand_file = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi' + righthand_file = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi' force = 21 attack_speed = 0.7 hitsound = 'sound/weapons/fixer/generic/fist1.ogg' @@ -194,6 +196,10 @@ special = "Use in hand to prepare a powerful area attack. This attack becomes more powerful when charged." icon_state = "sunspit" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi' + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 force = 54 attack_speed = 1.6 swingstyle = WEAPONSWING_LARGESWEEP @@ -467,11 +473,14 @@ /obj/item/ego_weapon/wield/ochre name = "ochre sheet" - desc = "Everyone says its a myth until one day something happens in the streets that brings it back to life." + desc = "Everyone says its a myth until one day something happens that brings it back to life." special = "This weapon can fire a damaging projectile that scales with justice when held with both hands." icon_state = "ochre" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi' - special = "This weapon deals RED damage when wielded and WHITE otherwise." + lefthand_file = 'icons/mob/inhands/64x64_lefthand.dmi' + righthand_file = 'icons/mob/inhands/64x64_righthand.dmi' + inhand_x_dimension = 64 + inhand_y_dimension = 64 force = 98 wielded_force = 98 reach = 2 //Has 2 Square Reach. @@ -528,6 +537,9 @@ G.damage*=justicemod firing_cooldown = firing_cooldown_time + world.time user.changeNext_move(CLICK_CD_MELEE * attack_speed) + user.Immobilize(stuntime) + //Visual stuff to give you better feedback + new /obj/effect/temp_visual/weapon_stun(get_turf(user)) /obj/projectile/ego_bullet/ochre name = "ochre sheet" @@ -666,6 +678,8 @@ This weapon has a fast attack speed, is capable of closing short gaps when attacking, and heals a small amount on a combo finsiher." icon_state = "limos" icon = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_weapons.dmi' + lefthand_file = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_lefthand.dmi' + righthand_file = 'code/modules/mob/living/simple_animal/abnormality/_auxiliary_modes/community/!icons/ego_righthand.dmi' force = 14 // VERY fast attacks potentially damtype = BLACK_DAMAGE swingstyle = WEAPONSWING_THRUST diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/army_in_black.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/army_in_black.dm index f134732caea4..96f3f295870b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/army_in_black.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/army_in_black.dm @@ -55,11 +55,11 @@ GLOBAL_LIST_EMPTY(army) observation_prompt = "\"We're here to help sir, to keep the hearts of humans a clean pink, we're willing to dirty our own. We won't overlook a single speck of black.\"
\ The soldier in pink makes a salute.
You..." - observation_choices = list("Don't salute", "Salute him back") - correct_choices = list("Don't salute") - observation_success_message = "The soldier frowns.
\"As expected.
You're only human, a clean heart is only ever temporary for you.
Yours is rife with sin.
Ours are...\"
\ - The soldier falls silent, as if in deep thought." - observation_fail_message = "The soldier in pink smiles.
\"Glad to have you on board Sir, with our help, there will be no more black hearts.\"" + observation_choices = list( + "Don't salute" = list(TRUE, "The soldier frowns.
\"As expected.
You're only human, a clean heart is only ever temporary for you.
\ + Yours is rife with sin.
Ours are...\"
The soldier falls silent, as if in deep thought."), + "Salute him back" = list(FALSE, "The soldier in pink smiles.
\"Glad to have you on board Sir, with our help, there will be no more black hearts.\""), + ) //Unique variables var/death_counter = 0 @@ -150,9 +150,14 @@ GLOBAL_LIST_EMPTY(army) //*--Combat Mechanics--* /mob/living/simple_animal/hostile/abnormality/army/BreachEffect(mob/living/carbon/human/user, breach_type) SEND_GLOBAL_SIGNAL(COMSIG_GLOB_ABNORMALITY_BREACH, src) - FearEffect() - Blackify() - SpawnAdds()//set its alpha to 0 and make it non-dense + if(breach_type == BREACH_MINING) + for(var/i in 1 to 3) + var/mob/living/simple_animal/hostile/army_enemy/E = new(get_turf(src)) + RegisterSignal(E, COMSIG_PARENT_QDELETING, PROC_REF(ArmyDeath)) + else + FearEffect() + Blackify() + SpawnAdds()//set its alpha to 0 and make it non-dense for(var/mob/living/L in protected_targets) L.remove_status_effect(STATUS_EFFECT_PROTECTION) density = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/black_sun.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/black_sun.dm index 22a3a780e2b9..3bfba962a511 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/black_sun.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/black_sun.dm @@ -42,7 +42,7 @@ StageChange() /mob/living/simple_animal/hostile/abnormality/black_sun/proc/StageChange() - stage+=1 + stage++ //Add 10 stats to everyone. if(stage == 1) affected_players = list() //Clear the list, then fill it up diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm index ec9e78aa5d29..102fe30b4cfd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/blue_star.dm @@ -48,13 +48,13 @@ observation_prompt = "A group of employees worship this abnormality, despite the fact nothing can be sacred in this place.
\ You recall how you pulled away one employee away from it in the past, even as she screamed and wailed that you were keeping her chained to this world.
You thought you were saving her.
\ You can hear a distant howl emanating from the centre of the blue-coloured heart.
It's the sound of stars.
They're welcoming you, asking you to join them as a star." - observation_choices = list("Be pulled in", "Hold yourself tight") - correct_choices = list("Be pulled in") - observation_success_message = "You don't hesitate as you approach the centre of the void.
Sensation in your hands and legs are the first things to go, creeping up your body until you couldn't feel anything physical at all.
\ - Despite how scary it should have been, you feel at peace,
this isn't an end it's a new beginning - You're a martyr.
\ - Let's meet everyone again, as stars." - observation_fail_message = "You wrapped your arms around yourself and shut your eyes, turning your senses inward until the temptation passes and the sounds become distant howls again.
\ - You opened your eyes and looked again at the heart.
It remains in the air, floating towards a new beginning." + observation_choices = list( + "Be pulled in" = list(TRUE, "You don't hesitate as you approach the centre of the void.
Sensation in your hands and legs are the first things to go, creeping up your body until you couldn't feel anything physical at all.
\ + Despite how scary it should have been, you feel at peace,
this isn't an end it's a new beginning - You're a martyr.
\ + Let's meet everyone again, as stars."), + "Hold yourself tight" = list(FALSE, "You wrapped your arms around yourself and shut your eyes, turning your senses inward until the temptation passes and the sounds become distant howls again.
\ + You opened your eyes and looked again at the heart.
It remains in the air, floating towards a new beginning."), + ) var/pulse_cooldown var/pulse_cooldown_time = 12 SECONDS @@ -138,6 +138,7 @@ . = ..() var/turf/T = pick(GLOB.department_centers) soundloop.start() - forceMove(T) + if(breach_type != BREACH_MINING) + forceMove(T) BluePulse() return diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm index 48b82aa4f999..3647b6de267f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/censored.dm @@ -46,12 +46,12 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY observation_prompt = "This is the containment unit of \[CENSORED\].
Many managers went mad, before they implemented the cognition filter, from the sight of it." - observation_choices = list("Enter the containment unit", "Don't enter") - correct_choices = list("Enter the containment unit") - observation_success_message = "You enter the containment unit of \[CENSORED\], the smell of \[REDACTED\] and the sound of \[ANULLED\] filled the air.
\ - After steeling yourself, you finally saw \[CENSORED\].
You manage to face the fear." - observation_fail_message = "A wave of nausea rises up within at the thought of entering the containment unit, and you turn on your heels to leave.
\ - You're not ready to build the future." + observation_choices = list( + "Enter the containment unit" = list(TRUE, "You enter the containment unit of \[CENSORED\], the smell of \[REDACTED\] and the sound of \[ANULLED\] filled the air.
\ + After steeling yourself, you finally saw \[CENSORED\].
You manage to face the fear."), + "Don't enter" = list(FALSE, "A wave of nausea rises up within at the thought of entering the containment unit, and you turn on your heels to leave.
\ + You're not ready to build the future."), + ) var/can_act = TRUE var/ability_damage = 150 diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/distortedform.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/distortedform.dm index 5d5d8e8b2053..b1fed263ab80 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/distortedform.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/distortedform.dm @@ -51,21 +51,21 @@ But the largest creature of all surrounds me entirely.
Every direction is covered in a undulating mass of flesh, blood, fur, and feathers.
\ I am always butchering monsters like these.
I tear them limb from limb.
\ Bringing death in brutal fashion.
Am I not a fitting piece of the scenery before me?" - observation_choices = list("I am a monster", "I am not a monster") - correct_choices = list("I am not a monster") - observation_success_message = "It is hard to live in the city.
\ - To pretend to be a civilized human when living in this manner.
\ - It is easy to give into the temptation of giving up all pretenses of humanity.
\ - But I do it because it is hard.
\ - ...
\ - I am not a monster.
\ - I will never become a monster." - observation_fail_message = "\"Do you wish to be so?\"
\ - \"Then it can be as you wish.\"
\ - ...
\ - Her voice is like sunshine.
\ - ...
\ - I am a monster.
" + observation_choices = list( + "I am not a monster" = list(TRUE, "It is hard to live in the city.
\ + To pretend to be a civilized human when living in this manner.
\ + It is easy to give into the temptation of giving up all pretenses of humanity.
\ + But I do it because it is hard.
\ + ...
\ + I am not a monster.
\ + I will never become a monster."), + "I am a monster" = list(FALSE, "\"Do you wish to be so?\"
\ + \"Then it can be as you wish.\"
\ + ...
\ + Her voice is like sunshine.
\ + ...
\ + I am a monster.
"), + ) //Work vars var/transform_timer @@ -300,6 +300,9 @@ //Breach /mob/living/simple_animal/hostile/abnormality/distortedform/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + qdel(src) + return . = ..() if(breached) return diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/last_shot.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/last_shot.dm index 9a6efb684e8f..91fa240b8eb5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/last_shot.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/last_shot.dm @@ -38,16 +38,16 @@ GLOBAL_LIST_EMPTY(meat_list) \"You won't survive out there.
Every single day in this facility is a constant, unending battle.\"
\ \"The only way you'll survive is if you join me.
To serve L-Corp til your last breath.\"
\ A tendril of rotten meat is held out to you, beckoning for you to join it." - observation_choices = list("EMBRACE IT", "REJECT IT") - correct_choices = list("EMBRACE IT") - observation_success_message = "You grab onto the tendril. You can feel your flesh tingling.
\ - \"Good choice.\"
\ - \"Don't worry.
You won't regret this, you know?
This is the only path you had.\"
\ - \"You're dead meat out there.
Might as well accept who you are.\"" - observation_fail_message = "You slap the tendril away.
\ - \"Feh.
So be it.
You won't survive out there, you know?\"
\ - \"When there's nothing left of the staff but blood and gore, I'll remain.
Do you understand?\"
\ - You can't help but to shudder in disgust as you exit the cell.
Was it right? You'll never know." + observation_choices = list( + "EMBRACE IT" = list(TRUE, "You grab onto the tendril. You can feel your flesh tingling.
\ + \"Good choice.\"
\ + \"Don't worry.
You won't regret this, you know?
This is the only path you had.\"
\ + \"You're dead meat out there.
Might as well accept who you are.\""), + "REJECT IT" = list(FALSE, "You slap the tendril away.
\ + \"Feh.
So be it.
You won't survive out there, you know?\"
\ + \"When there's nothing left of the staff but blood and gore, I'll remain.
Do you understand?\"
\ + You can't help but to shudder in disgust as you exit the cell.
Was it right? You'll never know."), + ) var/list/gremlins = list() //For the meatballs var/list/meat = list() //For the floors @@ -61,7 +61,9 @@ GLOBAL_LIST_EMPTY(meat_list) /mob/living/simple_animal/hostile/abnormality/last_shot/Move() return FALSE -/mob/living/simple_animal/hostile/abnormality/last_shot/BreachEffect() +/mob/living/simple_animal/hostile/abnormality/last_shot/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + return ..() var/turf/T = pick(GLOB.department_centers) forceMove(T) ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm index 4385c6ce5ccf..163a65634c16 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/melting_love.dm @@ -52,11 +52,11 @@ observation_prompt = "The slime craves affection, it covers the cell's floor, walls and celing.
\ It clings to your clothes, your mask and your skin as you enter.
At the centre of the cell, where the deluge conglomerates most, is the facismile of a girl.
\ She waves at you shyly.
You..." - observation_choices = list("Retreat from the slime", "Reach out to her") - correct_choices = list("Retreat from the slime") - observation_success_message = "You retreat from the cell in a hurry, the slime clinging to you turns acidic. If she won't find affection from you, she'll find it another way..." - observation_fail_message = "You reach out your hand and she does the same, your fingers entwine with the slimy appendage and she giggles.
\"Let's be together forever.\"
\ - You pull your hand away, but it comes out with the slime.
You try to retreat, but you are already caught in her trap.
\"Don't betray me, okay?\"
Those are the last words you ever hear..." + observation_choices = list( + "Retreat from the slime" = list(TRUE, "You retreat from the cell in a hurry, the slime clinging to you turns acidic. If she won't find affection from you, she'll find it another way..."), + "Reach out to her" = list(FALSE, "You reach out your hand and she does the same, your fingers entwine with the slimy appendage and she giggles.
\"Let's be together forever.\"
\ + You pull your hand away, but it comes out with the slime.
You try to retreat, but you are already caught in her trap.
\"Don't betray me, okay?\"
Those are the last words you ever hear..."), + ) var/mob/living/carbon/human/gifted_human = null /// Amount of BLACK damage done to all enemies around main target on melee attack. Also includes original target diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm index ae6194359a24..1135ab1462a5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/mountain.dm @@ -49,10 +49,10 @@ observation_prompt = "It smells like death itself in its containment unit, the mound of rotted, half-purtefied flesh stares at you with its many faces.
\ Arms and legs bent at odd angles, entrails draped like lazy christmas decorations, innumerable limbs twisted and distorted into a sphere - all blanketed black with necrotic skin.
\ Yet the faces remain intact, pale from a lack of blood, but still as recognizable as they've always been.
They're smiling at you." - observation_choices = list("I recognize those faces", "I don't recognize them") - correct_choices = list("I recognize those faces") - observation_success_message = "From the mountain of bodies; the dead give their life to be something greater.
Why shouldn't they be smiling?
You should be smiling too." - observation_fail_message = "They're holding all the laughter of those who cannot be seen here.
The mounds begins to shamble, upon borrowed hands and feet, it has your scent now and it will never be satisfied." + observation_choices = list( + "I recognize those faces" = list(TRUE, "From the mountain of bodies; the dead give their life to be something greater.
Why shouldn't they be smiling?
You should be smiling too."), + "I don't recognize them" = list(FALSE, "They're holding all the laughter of those who cannot be seen here.
The mounds begins to shamble, upon borrowed hands and feet, it has your scent now and it will never be satisfied."), + ) /// Is user performing work hurt at the beginning? var/agent_hurt = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/nihil.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/nihil.dm index 148b47f23906..097af62c51a3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/nihil.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/nihil.dm @@ -37,10 +37,12 @@ observation_prompt = "I have no plans or destination. I'm too tired to fly.
With no one to guide me, and no path open to me.
It is my fate to play the fool.
\ Before I do, I turn to face the 4 Magical Girls.
Are they just like me, or am I just like them?" - observation_choices = list("They've become me", "I came to resemble them") - correct_choices = list("They've become me", "I came to resemble them") - observation_success_message = "It doesn't matter.
My choices do not matter.
\ - Nothing matters.
We will repeat this song and dance until the end of time.
I can only laugh at this pointless endeavor." + observation_choices = list( + "They've become me" = list(TRUE, "It doesn't matter.
My choices do not matter.
\ + Nothing matters.
We will repeat this song and dance until the end of time.
I can only laugh at this pointless endeavor."), + "I came to resemble them" = list(TRUE, "It doesn't matter.
My choices do not matter.
\ + Nothing matters.
We will repeat this song and dance until the end of time.
I can only laugh at this pointless endeavor."), + ) var/can_act = TRUE //Teleports diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/nobody_is.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/nobody_is.dm index 8e967b5c9a37..2acde60cb37e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/nobody_is.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/nobody_is.dm @@ -47,11 +47,11 @@ observation_prompt = "No matter where you walk to in the cell, the mirror is always facing you.
You trace a path around it but all you ever see is your own reflection.
\ \"It's not fair, why do you get to be you and not me?\"
Your reflection mutters, parroting your voice.
\"Why are you, you and not I? I could be you so much better than you can, just let me try.\"
\ Your reflection is holding out its hand, waiting for a handshake." - observation_choices = list("Shake their hand", "Turn away and leave") - correct_choices = list("Turn away and leave") - observation_success_message = "You make to exit the cell. \"Don't just leave me! I'm somebody, I'm real! I'm..! What's my name?! Just give me your name!\"
\ - You don't give your name to the imitation, the closer it starts to mirrors another, the more its mimicry becomes mockery." - observation_fail_message = "The you in the mirror smiles.
\"Just you wait, I'll show you what we can do.\"" + observation_choices = list( + "Turn away and leave" = list(TRUE, "You make to exit the cell. \"Don't just leave me! I'm somebody, I'm real! I'm..! What's my name?! Just give me your name!\"
\ + You don't give your name to the imitation, the closer it starts to mirrors another, the more its mimicry becomes mockery."), + "Shake their hand" = list(FALSE, "The you in the mirror smiles.
\"Just you wait, I'll show you what we can do.\""), + ) //Contained Variables var/reflect_timer @@ -231,7 +231,7 @@ datum_reference.qliphoth_change(-1) /mob/living/simple_animal/hostile/abnormality/nobody_is/BreachEffect(mob/living/carbon/human/user, breach_type) - if(!(status_flags & GODMODE)) // Already breaching + if(current_stage > 1) return if(reflect_timer) deltimer(reflect_timer) @@ -240,6 +240,8 @@ return CheckMirrorIcon() //Clear overlays next_stage() + if(breach_type == BREACH_MINING) + return // Teleport us somewhere where nobody will see us at first var/list/priority_list = list() for(var/turf/T in GLOB.xeno_spawn) diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm index 697aed7b31f4..dbcb2945a3c7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/nothing_there.dm @@ -50,16 +50,16 @@ observation_prompt = "*Teeth grinding*
Incomprehensible sounds can be heard.
\ Its body was already broken long time ago.
\ The twisted mouth opens, the crushed down tongue undulates.
\"M-ma......man-ag......r.......\"
It's calling for the manager." - observation_choices = list("Approach it", "Ignore it") - correct_choices = list("Ignore it") - observation_success_message = "A chunk of flesh dropped from the mouth to the ground, depriving the abnormality an ability to talk.
\ - It's talking inside the body of an employee.
But it is not the employee who speaks.
\ - The sound of calling me.
Is nothing but an empty shell mimicking a dead person.
\ - How many employees would have suffered to this sound?
It keeps getting closer to human.
\ - It keeps trying.
However, as always, at the end, Nothing there." - observation_fail_message = "I think of people who were friends with this employee.
\ - Those eyes, shoulders, and every bit of muscle belong to someone else.
\ - It smiles.
No, it pretends to smile.
Who could be it?" + observation_choices = list( + "Ignore it" = list(TRUE, "A chunk of flesh dropped from the mouth to the ground, depriving the abnormality an ability to talk.
\ + It's talking inside the body of an employee.
But it is not the employee who speaks.
\ + The sound of calling me.
Is nothing but an empty shell mimicking a dead person.
\ + How many employees would have suffered to this sound?
It keeps getting closer to human.
\ + It keeps trying.
However, as always, at the end, Nothing there."), + "Approach it" = list(FALSE, "I think of people who were friends with this employee.
\ + Those eyes, shoulders, and every bit of muscle belong to someone else.
\ + It smiles.
No, it pretends to smile.
Who could be it?"), + ) var/mob/living/disguise = null var/saved_appearance diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/seasons.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/seasons.dm index 58e3f6ce6d54..6c72ba7c8440 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/seasons.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/seasons.dm @@ -53,14 +53,14 @@ observation_prompt = "I'm standing outside a forest I both have never seen before, yet know well.
There is no City, no civilization on the horizon, I am utterly alone.
\ Dauntlessly, I press into the forest, seeing no other path forward, and encounter a cute-looking, pink forest spirit.
\ The spirits of the forest are playful, but it's best not to offend them by forgetting to make an offering" - observation_choices = list("Make an offering", "Continue on") - correct_choices = list("Make an offering") - observation_success_message = "I ask the spirit to lead me to an altar to make my offering and it leads me off a beaten path...
\ - It felt as though I had walked for miles and days, my clothes torn and skin pricked by brambles and thorns but finally we arrived.
\ - Before me is a skull-headed pagan God hanging ominously over its altar, fear grips my heart as the pink spirit leads me to lay down on the altar..." - observation_fail_message = "I pass by the spirit and hear it giggle ominously...
\ - ...
\ - In the end, I am never able to find a way out of the forest." + observation_choices = list( + "Make an offering" = list(TRUE, "I ask the spirit to lead me to an altar to make my offering and it leads me off a beaten path...
\ + It felt as though I had walked for miles and days, my clothes torn and skin pricked by brambles and thorns but finally we arrived.
\ + Before me is a skull-headed pagan God hanging ominously over its altar, fear grips my heart as the pink spirit leads me to lay down on the altar..."), + "Continue on" = list(FALSE, "I pass by the spirit and hear it giggle ominously...
\ + ...
\ + In the end, I am never able to find a way out of the forest."), + ) //Var Lists var/list/season_stats = list( @@ -322,8 +322,9 @@ ZeroQliphoth() return . = ..() - var/turf/T = pick(GLOB.department_centers) - forceMove(T) + if(breach_type != BREACH_MINING) + var/turf/T = pick(GLOB.department_centers) + forceMove(T) //Weather controlling /mob/living/simple_animal/hostile/abnormality/seasons/proc/CheckWeather() diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/silent_orchestra.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/silent_orchestra.dm index f59c6b39bbe2..4633fa6f3632 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/silent_orchestra.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/silent_orchestra.dm @@ -38,10 +38,10 @@ observation_prompt = "I was the conductor of Lobotomy Corporation, I put my everything into it.
\ Now, I conduct the song of apocalypse to make everything right.
As if he is about to start the performance, he stretches his arm.
\ The conductor, who thought he is the freest soul, was not free at all.
The performance ended.
I......." - observation_choices = list("Gave an applause.", "Did not give applause.") - correct_choices = list("Did not give applause.") - observation_success_message = "I am not worthy to give an applause yet.
The music replays.
Angelos, my movement." - observation_fail_message = "The performance never ends.
And Da Capo." + observation_choices = list( + "Did not give applause" = list(TRUE, "I am not worthy to give an applause yet.
The music replays.
Angelos, my movement."), + "Gave an applause" = list(FALSE, "The performance never ends.
And Da Capo."), + ) /// Range of the damage var/symphony_range = 20 @@ -154,8 +154,9 @@ /mob/living/simple_animal/hostile/abnormality/silentorchestra/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() - var/turf/T = pick(GLOB.department_centers) - forceMove(T) + if(breach_type != BREACH_MINING) + var/turf/T = pick(GLOB.department_centers) + forceMove(T) DamagePulse() return diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm index 7bf0e34b9883..3411a393b14c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/space_lady.dm @@ -37,16 +37,15 @@ observation_prompt = "What touched this place cannot be quantified or understood by human science.
It was just a color out of space.
\ It exists on the border of our waking minds, where darkness and light are one, and time and space do not intersect.
She has a message, from another place, another time." - observation_choices = list("Hear the past", "Hear the present", "Hear the future") - correct_choices = list("Hear the past", "Hear the present", "Hear the future") - observation_success_message = "What I learned and saw during those two hideous days and nights, it is better not to tell." - //Extra correct answers - var/observation_success_message_2 = "A thousand years compressed into a day, a countably infinite number of people work, die and live in its corridors;
\ - the line between them and the monsters they keep gets blurrier and blurrier.
\ - A seed is about to sprout..." - var/observation_success_message_3 = "The Library is what the Bookhunters call it, a mystical place of life and death.
\ - Should you conquer its trials, they say, you can find the book that will grant the answers to whatever it is you seek.
\ - Black feathers and regret..." + observation_choices = list( + "Hear the past" = list(TRUE, "What I learned and saw during those two hideous days and nights, it is better not to tell."), + "Hear the present" = list(TRUE, "A thousand years compressed into a day, a countably infinite number of people work, die and live in its corridors;
\ + the line between them and the monsters they keep gets blurrier and blurrier.
\ + A seed is about to sprout..."), + "Hear the future" = list(TRUE, "The Library is what the Bookhunters call it, a mystical place of life and death.
\ + Should you conquer its trials, they say, you can find the book that will grant the answers to whatever it is you seek.
\ + Black feathers and regret..."), + ) var/explosion_timer = 2 SECONDS var/explosion_state = 3 @@ -54,16 +53,6 @@ var/can_act = TRUE var/negative_range = 10 -/mob/living/simple_animal/hostile/abnormality/space_lady/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answers - switch(answer) - if("Hear the present") - observation_success_message = observation_success_message_2 - if("Hear the future") - observation_success_message = observation_success_message_3 - else - observation_success_message = initial(observation_success_message) - return ..() - //She can't move or attack. /mob/living/simple_animal/hostile/abnormality/space_lady/Move() if(!can_act) @@ -261,7 +250,8 @@ /mob/living/simple_animal/hostile/abnormality/space_lady/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() - Teleport() + if(breach_type != BREACH_MINING) + Teleport() //Bullets diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/staining_rose.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/staining_rose.dm index 543547368a77..3021d1820aa9 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/staining_rose.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/staining_rose.dm @@ -35,10 +35,10 @@ observation_prompt = "This isn't worth being called a sacrifice, is it?
I've always wanted to be a hero, but...
Even when I'm ordered forth to die a worthless death...
\ I find myself laughable for deciding to do it still.
I joined this company to save people.
If I can save the lives of those I love, I have no regrets." - observation_choices = list("100 paper roses") - correct_choices = list("100 paper roses") - observation_success_message = "I was the only one who could do it...
\ - ...
that's all." + observation_choices = list( + "100 paper roses" = list(TRUE, "I was the only one who could do it...
\ + ...
that's all."), + ) var/chosen var/list/sacrificed = list() diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm index 031ada2a568e..61ac54db2a42 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/titania.dm @@ -37,10 +37,11 @@ abnormality_origin = ABNORMALITY_ORIGIN_WONDERLAB observation_prompt = "Is that you Oberon?
My nemesis, my beloved devil.
Is it you, who applied the concotion of baneful herb to my eyes?" - observation_choices = list("I am the Oberon you seek", "I am not him", "Stay silent") - correct_choices = list("I am the Oberon you seek") - observation_success_message = "The abhorrent name of the one who stole my child.
By your death, I shall finally have my revenge." - observation_fail_message = "Ah...
A mere human, human, human.
Cease your fear, I shall rid you of your pains.
Be reborn as a flower." + observation_choices = list( + "I am the Oberon you seek" = list(TRUE, "The abhorrent name of the one who stole my child.
By your death, I shall finally have my revenge."), + "I am not him" = list(FALSE, "Ah...
A mere human, human, human.
Cease your fear, I shall rid you of your pains.
Be reborn as a flower."), + "Stay silent" = list(FALSE, "Ah...
A mere human, human, human.
Cease your fear, I shall rid you of your pains.
Be reborn as a flower."), + ) var/fairy_spawn_number = 2 var/fairy_spawn_time = 5 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm b/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm index eb7ece82cc32..1eb98f8c4c18 100644 --- a/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm +++ b/code/modules/mob/living/simple_animal/abnormality/aleph/white_night.dm @@ -54,10 +54,11 @@ GLOBAL_LIST_EMPTY(apostles) observation_prompt = "Thou knocked the door, now it hath opened.
\ Thou who carries burden, came to seek the answer." - observation_choices = list("Who are you?", "Where did you come from?", "Why have you come?") - correct_choices = list("Where did you come from?") - observation_success_message = "I am from the end." //TODO: multiple messages, the answer should be irrelevant, code should check for wing gift. - observation_fail_message = "Thy question is empty, I cannot answer" + observation_choices = list( // TODO IN A FEW YEARS: multiple messages, the answer should be irrelevant, code should check for wing gift. + "Where did you come from?" = list(TRUE, "I am from the end." ), + "Who are you?" = list(FALSE, "Thy question is empty, I cannot answer"), + "Why have you come?" = list(FALSE, "Thy question is empty, I cannot answer"), + ) var/holy_revival_cooldown var/holy_revival_cooldown_base = 75 SECONDS @@ -221,6 +222,9 @@ GLOBAL_LIST_EMPTY(apostles) return /mob/living/simple_animal/hostile/abnormality/white_night/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + qdel(src) + return holy_revival_cooldown = world.time + holy_revival_cooldown_base . = ..() for(var/mob/M in GLOB.player_list) diff --git a/code/modules/mob/living/simple_animal/abnormality/final_observations.dm b/code/modules/mob/living/simple_animal/abnormality/final_observations.dm index 644bc23b0e08..bf6253461cd8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/final_observations.dm +++ b/code/modules/mob/living/simple_animal/abnormality/final_observations.dm @@ -61,9 +61,9 @@ playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) var/dat = {"
[message]

"} var/menu_width = 200 - for(var/i in 1 to buttons.len) + for(var/i in 1 to length(buttons)) menu_width += 150 - switch(buttons.len) + switch(length(buttons)) if(1) dat += {"[buttons[i]]"} if(2) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm b/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm index 72f0f11cbf53..995466a98a6d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/KHz.dm @@ -36,17 +36,17 @@ \"Sierra... Oscar... Sierra...\"
\ What could this callsign mean?
\ Are you in danger, or is someone else?
What will you do?" - observation_choices = list("Tune your radio to 680 KHz", "Ignore it") - correct_choices = list("Tune your radio to 680 KHz") - observation_success_message = "Suddenly, you hear something from your radio, clear as day.
\ - \"We hear you loud and clear.\"
\ - \"You've done a great service.\"
\ - The operator on the other end continues babbling, completely obscured by the returning static.
\ - However, it seems you somehow managed solve their problem somehow." - observation_fail_message = "You turn off your radio and leave the room.
\ - All abnormalities are dangerous, right?
\ - This cry for help could just be a trick to make you let your guard down.
\ - If there is anyone really out there, they are going to have to fend for themselves." + observation_choices = list( + "Tune your radio to 680 KHz" = list(TRUE, "Suddenly, you hear something from your radio, clear as day.
\ + \"We hear you loud and clear.\"
\ + \"You've done a great service.\"
\ + The operator on the other end continues babbling, completely obscured by the returning static.
\ + However, it seems you somehow managed solve their problem somehow."), + "Ignore it" = list(FALSE, "You turn off your radio and leave the room.
\ + All abnormalities are dangerous, right?
\ + This cry for help could just be a trick to make you let your guard down.
\ + If there is anyone really out there, they are going to have to fend for themselves."), + ) var/input var/bitposition = 4 //You write in bits. You need to successfully write a string of 5 to sucessfully work diff --git a/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm b/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm index 01200cdfbd8e..c2a38ab4f8bb 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/KQE.dm @@ -58,17 +58,17 @@ Is that leakage antifreeze, or blood?
\ While you were wondering, the terminal on its chest flashed to life.
\ Looks like you can write something." - observation_choices = list("Hello", "Goodbye") - correct_choices = list("Hello") - observation_success_message = "The robot lifts both arms with some struggle.
\ - The terminal prints out its words:
\ -
\ - A smile is displayed on the terminal,
\ - but in the robot’s gestures, you feel a plea for help." - observation_fail_message = "The terminal’s light goes red, and warnings start to blare.
\ - The robot shakes intensely as if in pain.
\ - Farewell,
FarewellFarewellFarewellFarewellFarewellFarewellFarewellFarewellFarewell>" + observation_choices = list( + "Hello" = list(TRUE, "The robot lifts both arms with some struggle.
\ + The terminal prints out its words:
\ +
\ + A smile is displayed on the terminal,
\ + but in the robot’s gestures, you feel a plea for help."), + "Goodbye" = list(FALSE, "The terminal’s light goes red, and warnings start to blare.
\ + The robot shakes intensely as if in pain.
\ + Farewell,
FarewellFarewellFarewellFarewellFarewellFarewellFarewellFarewellFarewell>"), + ) var/can_act = TRUE var/grab_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm b/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm index 7fe79a3374cc..39ea7bfee4dd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/ardor_blossom_moth.dm @@ -9,6 +9,7 @@ portrait = "blossom_moth" maxHealth = 1200 health = 1200 + blood_volume = 0 ranged = TRUE attack_verb_continuous = "sears" attack_verb_simple = "sear" @@ -47,18 +48,18 @@ The lights flutter and dance in the air, creating a haze.
\ Something is burning to death within.
\ Would you be scorched as well if the flames touched you?" - observation_choices = list("Turn around", "Reach out") - correct_choices = list("Reach out") - observation_success_message = "Enchanted by the haze, you extend a finger,
\ - waiting for one of the lights to land.
\ - A glimmering ball gently perches on your digit.
\ - Then, a fire engulfs it.
\ - Another glow attaches to your body, then four, then eight.
\ - They multiply until you have been entirely shrouded in light." - observation_fail_message = "Resisting the temptation to reach out,
\ - you decide it’s better to stay away from such dubious warmth.
\ - You feel a cold wave crawl up your spine in an instant, but it may be the right choice.
\ - Even children know not to play with fire." + observation_choices = list( + "Reach out" = list(TRUE, "Enchanted by the haze, you extend a finger,
\ + waiting for one of the lights to land.
\ + A glimmering ball gently perches on your digit.
\ + Then, a fire engulfs it.
\ + Another glow attaches to your body, then four, then eight.
\ + They multiply until you have been entirely shrouded in light."), + "Turn around" = list(FALSE, "Resisting the temptation to reach out,
\ + you decide it’s better to stay away from such dubious warmth.
\ + You feel a cold wave crawl up your spine in an instant, but it may be the right choice.
\ + Even children know not to play with fire."), + ) var/stoked @@ -87,6 +88,8 @@ qdel(floor_fire) new /obj/structure/turf_fire(T) +/mob/living/simple_animal/hostile/abnormality/ardor_moth/spawn_gibs() + return new /obj/effect/decal/cleanable/ash(drop_location(), src) // Turf Fire /obj/structure/turf_fire diff --git a/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm b/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm index ffcab6d3f22a..ddb350595253 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/basilisoup.dm @@ -44,10 +44,10 @@ abnormality_origin = ABNORMALITY_ORIGIN_LIMBUS observation_prompt = "In front of me is a brass soup cauldron with a wooden ladle, I look inside the pot and see only water and a singular stone, boiling over an open fire." - observation_choices = list("Taste the soup", "Knock it over") - correct_choices = list("Taste the soup") - observation_success_message = "I take the ladle and sip the contents, the taste is indescribably good. It truly is magic." - observation_fail_message = "The contents put out the flames as the pot tumbles the floor, water and a singular stone coat the floor. Soup from a stone? Ridiculous." + observation_choices = list( + "Taste the soup" = list(TRUE, "I take the ladle and sip the contents, the taste is indescribably good. It truly is magic."), + "Knock it over" = list(FALSE, "The contents put out the flames as the pot tumbles the floor, water and a singular stone coat the floor. Soup from a stone? Ridiculous."), + ) var/spit_cooldown var/spit_cooldown_time = 12 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/he/better_memories.dm b/code/modules/mob/living/simple_animal/abnormality/he/better_memories.dm index 4da625147411..4c90b4d99f2e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/better_memories.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/better_memories.dm @@ -38,11 +38,11 @@ observation_prompt = "In the pile around the abnormality, you find a old card.
You almost forgot about them.
\ A pink light grows and you feel a tug on your memory." - observation_choices = list("Let go", "Hold on") - correct_choices = list("Let go") - observation_success_message = "You let go of the memory forever.
You look forward to the day you can make a memory like that again." - observation_fail_message = "You pull the letter back from the pink light inside the abnormality's gate.
\ - The memory becomes more and more vivid as if its happening now...
when you finally break free you cannot recall what you fought so hard for." + observation_choices = list( + "Let go" = list(TRUE, "You let go of the memory forever.
You look forward to the day you can make a memory like that again."), + "Hold on" = list(FALSE, "You pull the letter back from the pink light inside the abnormality's gate.
\ + The memory becomes more and more vivid as if its happening now...
when you finally break free you cannot recall what you fought so hard for."), + ) var/minions = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/blue_shepherd.dm b/code/modules/mob/living/simple_animal/abnormality/he/blue_shepherd.dm index c975fded23b4..8fd1263f5a06 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/blue_shepherd.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/blue_shepherd.dm @@ -55,11 +55,11 @@ observation_prompt = "Got nothing better to do than to watch me? Anyway, while I'm lazing around...
\ The wolf is coming down the hill.
I'm the only one who can stop it, if you let me out I'll save you from the Wolf.
\ So, how about it?" - observation_choices = list("Release him", "You're a liar") - correct_choices = list("You're a liar") - observation_success_message = "Hmph. Sad ain't it? It only waits for me, I'm free to abandon it all I wish.
\ - Lifeless things like that mutt and I don't deserve love but it'll wait for me all the same.
Does anyone wait for you?" - observation_fail_message = "Good choice, don't worry about the rest - I won't hurt them, pinky swear." + observation_choices = list( + "You're a liar" = list(TRUE, "Hmph. Sad ain't it? It only waits for me, I'm free to abandon it all I wish.
\ + Lifeless things like that mutt and I don't deserve love but it'll wait for me all the same.
Does anyone wait for you?"), + "Release him" = list(FALSE, "Good choice, don't worry about the rest - I won't hurt them, pinky swear."), + ) var/death_counter //He won't go off a timer, he'll go off deaths. Takes 8 for him. var/slash_current = 4 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm b/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm index 3c4f8946c466..287708da1645 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/der_freischutz.dm @@ -38,11 +38,11 @@ observation_prompt = "Before you stands a man with an ornate rifle.
\ \"My bullets never miss, whatever I take aim at will have its head pierced true by the inevitability of my bullets.
\ If you have a target, you only need to make the payment.\"" - observation_choices = list("Pay for his services", "Don't pay") - correct_choices = list("Pay for his services") - observation_success_message = "True to his word, the marksman racks a bullet into his rifle, takes aim and fires at your target, piercing their head, but it travels on.
\ - Piercing the heads of others, forever." - observation_fail_message = "The man scowls.
\"Don't waste my time with such shaky conviction.\"" + observation_choices = list( + "Pay for his services" = list(TRUE, "True to his word, the marksman racks a bullet into his rifle, takes aim and fires at your target, piercing their head, but it travels on.
\ + Piercing the heads of others, forever."), + "Don't pay" = list(FALSE, "The man scowls.
\"Don't waste my time with such shaky conviction.\""), + ) var/can_act = TRUE var/bullet_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/he/doomsday_calendar.dm b/code/modules/mob/living/simple_animal/abnormality/he/doomsday_calendar.dm index acc1dcd9d956..3239d01b4ff8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/doomsday_calendar.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/doomsday_calendar.dm @@ -47,11 +47,11 @@ observation_prompt = "I'm standing before an altar on top of an impossibly long flight of stairs, the sky is crimson red and the heat from the air licks at my skin painfully.
The world is ending.
\ On the altar is a tied and bound man with a clay mask on his head, he squirms and is clearly crying but I cannot hear his words.
\ In my hand is a dagger.
I know what I have to do." - observation_choices = list("Plunge the dagger into his chest", "Cut his bindings") - correct_choices = list("Plunge the dagger into his chest") - observation_success_message = "I'm laying on an altar, a heavy clay mask is on my head, my arms and legs are tied with thick rope and the air is hot enough to scald my skin.
\ - I see the priest through the pinholes of the mask and plead for him to spare me, before I feel cold metal plunge into my chest." - observation_fail_message = "I cut the man free and he thanks me profusely before he speeds down the stairs.
He won't make it.
I close my eyes and accept the end." + observation_choices = list( + "Plunge the dagger into his chest" = list(TRUE, "I'm laying on an altar, a heavy clay mask is on my head, my arms and legs are tied with thick rope and the air is hot enough to scald my skin.
\ + I see the priest through the pinholes of the mask and plead for him to spare me, before I feel cold metal plunge into my chest."), + "Cut his bindings" = list(FALSE, "I cut the man free and he thanks me profusely before he speeds down the stairs.
He won't make it.
I close my eyes and accept the end."), + ) var/player_count var/other_works_maximum @@ -188,9 +188,10 @@ //***Breach Mechanics***// /mob/living/simple_animal/hostile/abnormality/doomsday_calendar/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() - var/turf/T = pick(GLOB.department_centers) + if(breach_type != BREACH_MINING) + var/turf/T = pick(GLOB.department_centers) + forceMove(T) icon_state = "doomsday_active" - forceMove(T) AnnounceBreach() SpawnAdds() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/drifting_fox.dm b/code/modules/mob/living/simple_animal/abnormality/he/drifting_fox.dm index 8edc2fd37fd5..43160193074f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/drifting_fox.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/drifting_fox.dm @@ -55,20 +55,20 @@ The umbrellas jiggled. It belongs to someone who was assigned to work on \"Eris\", not too long ago.
\ \"Not hungry? Perhaps you'd like to visit my boudoir?\"
\ Vile, disgusting.
I want to get out of here." - observation_choices = list("Accept her proposal", "Run") - correct_choices = list("Run") - observation_success_message = "I get up from the table, make an excuse, and bolt for the door as fast as I can.
\ - Surprisingly, it's not locked.
I hear the imitation of a young woman's voice on my way out.
\ - \"Come back soon, sweetie!\"
\"You're always invited to dinner, and i'll be sure to serve you one day!\"" - observation_fail_message = "How bad can it be?
I follow Eris as she leads me into a room.
\ - Hours later, Eris dines with another stranger.
My head is resting on that very same plate." + observation_choices = list( + "Run" = list(TRUE, "I get up from the table, make an excuse, and bolt for the door as fast as I can.
\ + Surprisingly, it's not locked.
I hear the imitation of a young woman's voice on my way out.
\ + \"Come back soon, sweetie!\"
\"You're always invited to dinner, and i'll be sure to serve you one day!\""), + "Accept her proposal" = list(FALSE, "How bad can it be?
I follow Eris as she leads me into a room.
\ + Hours later, Eris dines with another stranger.
My head is resting on that very same plate."), + ) var/girlboss_level = 0 - var/can_heal = TRUE /mob/living/simple_animal/hostile/abnormality/eris/Login() . = ..() @@ -64,7 +63,7 @@ |Humanoid Disguise|: You are only able to attack humans who only have a very low amount of health, or if they are dead.
\ If they attack a human who fulfills the above conditions, you will devor them, and gain a stack of 'Girl Boss'
\
\ - |Dine with me...|: Every second, you heal ALL targets that you can see if they are bellow half health.
\ + |Dine with me...|: Every second, you heal ALL targets that you can see.
\ Your healing increases depending on the amount of 'Girl Boss' you have.
\
\ |Elegant Form|: When you are attacked by a human, deal WHITE damage to the attack. This damage is increase depending on your 'Girl Boss' stacks.
") @@ -192,17 +191,12 @@ //Okay, but here's the math /mob/living/simple_animal/hostile/abnormality/eris/proc/healpulse() for(var/mob/living/H in view(10, get_turf(src))) - can_heal = TRUE if(H.stat >= SOFT_CRIT) continue //Shamelessly fucking stolen from risk of rain's teddy bear. Maxes out at 20. - if(SSmaptype.maptype == "rcorp") - if(H.health > H.maxHealth*0.5) - can_heal = FALSE - if (can_heal == TRUE) - var/healamount = 20 * (TOUGHER_TIMES(girlboss_level)) - H.adjustBruteLoss(-healamount) //Healing for those around. - new /obj/effect/temp_visual/heal(get_turf(H), "#FF4444") + var/healamount = 20 * (TOUGHER_TIMES(girlboss_level)) + H.adjustBruteLoss(-healamount) //Healing for those around. + new /obj/effect/temp_visual/heal(get_turf(H), "#FF4444") //Okay but here's the defensive options /mob/living/simple_animal/hostile/abnormality/eris/bullet_act(obj/projectile/Proj) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/fan.dm b/code/modules/mob/living/simple_animal/abnormality/he/fan.dm index cfd7e649c539..860ddbb56832 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/fan.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/fan.dm @@ -29,13 +29,12 @@ observation_prompt = "It's an ordinary office fan, made of metal.
It's turned off for now and you're feeling warm.
\ Turn it on?" - observation_choices = list("Leave it off", "Set it to 1", "Set it to 2", "Set it to 3") //Waiting for multiple answers - correct_choices = list("Set it to 3") - observation_success_message = "You set it to its highest setting.
The breeze feels pleasant, a nap would be nice..." - observation_fail_message = "It's just an old urban legend, but, they say fans like this one can kill people if you slept with them on..." - //extra wrong answers - var/observation_fail_message_2 = "It's not enough, you're still too hot!" - var/observation_fail_message_3 = "You can barely feel a breeze, you just need a little more..." + observation_choices = list( + "Set it to 3" = list(TRUE, "You set it to its highest setting.
The breeze feels pleasant, a nap would be nice..."), + "Leave it off" = list(FALSE, "It's just an old urban legend, but, they say fans like this one can kill people if you slept with them on..."), + "Set it to 1" = list(FALSE, "It's not enough, you're still too hot!"), + "Set it to 2" = list(FALSE, "You can barely feel a breeze, you just need a little more..."), + ) var/list/safe = list() var/list/warning = list() @@ -45,16 +44,6 @@ var/successcount var/turned_off = FALSE -/mob/living/simple_animal/hostile/abnormality/fan/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answers - switch(answer) - if("Set it to 1") - observation_fail_message = observation_fail_message_2 - if("Set it to 2") - observation_fail_message = observation_fail_message_3 - else - observation_fail_message = initial(observation_success_message) - return ..() - /mob/living/simple_animal/hostile/abnormality/fan/examine(mob/user) . = ..() if(turned_off) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm b/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm index 22579ba67f24..bec5674e7fdb 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/funeral.dm @@ -9,6 +9,7 @@ del_on_death = FALSE maxHealth = 1350 //I am a menace to society. health = 1350 + blood_volume = 0 ranged = TRUE minimum_distance = 2 @@ -47,19 +48,18 @@ observation_prompt = "A tall butterfly-faced man stands before, clad in an undertakers's garment.
\ Between the two of you is a coffin and he gestures you towards it with all 3 of his hands." - observation_choices = list("Enter the coffin", "Don't enter the coffin") - correct_choices = list("Enter the coffin", "Don't enter the coffin") - observation_success_message = "You lie down in the coffin as the butterfly-faced man stands by, his head angled and all 3 hands crossed together over his waist in a solemn gesture.
\ - It's a perfect fit for you.
\ - You feel the weight of innumerable lifetimes and the weariness that came with them.
\ - The butterflies lift you and the coffin as pallbearers, they lament for you in place of the people who cannot." - //Special answer for choice 2 - var/observation_success_message_2 = "You don't enter because it's not your coffin.
\ - The undertaker reaches out his middle hand to his waiting, insectile audience and one of the butterflies lands upon his fingers.
\ - He offers you the butterfly and you place it into the coffin, gently.
\ - The butterflies are the souls of the dead, waiting to be put to rest, but are still mourning for the living.
\ - You and the butterfly-faced man stand in silent vigil. You both now share a vow; to grieve for the living and dead.
\ - A kaledioscope of butterflies follows you as you leave the containment unit." + observation_choices = list( + "Enter the coffin" = list(TRUE, "You lie down in the coffin as the butterfly-faced man stands by, his head angled and all 3 hands crossed together over his waist in a solemn gesture.
\ + It's a perfect fit for you.
\ + You feel the weight of innumerable lifetimes and the weariness that came with them.
\ + The butterflies lift you and the coffin as pallbearers, they lament for you in place of the people who cannot."), + "Don't enter the coffin" = list(TRUE, "You don't enter because it's not your coffin.
\ + The undertaker reaches out his middle hand to his waiting, insectile audience and one of the butterflies lands upon his fingers.
\ + He offers you the butterfly and you place it into the coffin, gently.
\ + The butterflies are the souls of the dead, waiting to be put to rest, but are still mourning for the living.
\ + You and the butterfly-faced man stand in silent vigil. You both now share a vow; to grieve for the living and dead.
\ + A kaledioscope of butterflies follows you as you leave the containment unit."), + ) var/gun_cooldown var/gun_cooldown_time = 4 SECONDS @@ -85,13 +85,6 @@ toggle_message = span_colossus("You will now fire butterflies from your hands.") button_icon_toggle_deactivated = "funeral_toggle0" -/mob/living/simple_animal/hostile/abnormality/funeral/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer for cake result - if(answer == "Don't enter the coffin") - observation_success_message = observation_success_message_2 - else - observation_success_message = initial(observation_success_message) - return ..() - /mob/living/simple_animal/hostile/abnormality/funeral/AttackingTarget(atom/attacked_target) return OpenFire() diff --git a/code/modules/mob/living/simple_animal/abnormality/he/galaxy_child.dm b/code/modules/mob/living/simple_animal/abnormality/he/galaxy_child.dm index 095b60e7985d..f97dff0f18ab 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/galaxy_child.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/galaxy_child.dm @@ -31,12 +31,12 @@ observation_prompt = "You entered the containment chamber.
\ A child is standing there.
\"I know who you are.\"
\ \"Of course.
We were born from each other.\"
You decided to......." - observation_choices = list("Stay", "Exit the chamber") - correct_choices = list("Exit the chamber") - observation_success_message = "You turned your back to the child and walked out.
\ - The pebble in your hands sparkles sways, and tickles.
It becomes the universe.
\ - \"Goodbye.
I hope you never come back.\"
As the child bid the cold farewell, he was smiling." - observation_fail_message = "\"Will you stay here with me?\"
\"If you won't, I don't need you.\"" + observation_choices = list( + "Exit the chamber" = list(TRUE, "You turned your back to the child and walked out.
\ + The pebble in your hands sparkles sways, and tickles.
It becomes the universe.
\ + \"Goodbye.
I hope you never come back.\"
As the child bid the cold farewell, he was smiling."), + "Stay" = list(FALSE, "\"Will you stay here with me?\"
\"If you won't, I don't need you.\""), + ) var/heal_cooldown_time = 2 SECONDS var/heal_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/he/golden_false_apple.dm b/code/modules/mob/living/simple_animal/abnormality/he/golden_false_apple.dm index c64e06360d4c..a615a31ce644 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/golden_false_apple.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/golden_false_apple.dm @@ -77,12 +77,12 @@ observation_prompt = "A giant, glistening golden apple stands before you.
\ Radiant, shining, and pure.
There is a tempting crack in it, what could possibly be inside?" - observation_choices = list("Slice it open", "Destroy it") - correct_choices = list("Destroy it") - observation_success_message = "You put the golden apple to the torch.
You hear a sickening pops and sizzling as the swarm of maggots inside begins to burn and scatter.
\ - The mass of maggots falls apart in a hail of silent screams." - observation_fail_message = "You slice open the apple, and a tidal wave of disgusting maggots bursts out.
\ - You are swept in the tide.
Your flesh is riddled with wounds as they slowly devour you." + observation_choices = list( + "Destroy it" = list(TRUE, "You put the golden apple to the torch.
You hear a sickening pops and sizzling as the swarm of maggots inside begins to burn and scatter.
\ + The mass of maggots falls apart in a hail of silent screams."), + "Slice it open" = list(FALSE, "You slice open the apple, and a tidal wave of disgusting maggots bursts out.
\ + You are swept in the tide.
Your flesh is riddled with wounds as they slowly devour you."), + ) var/is_maggot = FALSE var/can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm b/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm index 06ebd8c9da67..81db9a187aa3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/happy_teddy_bear.dm @@ -35,11 +35,11 @@ observation_prompt = "Here lies a piece of rubbish, a teddy bear.
Its wool sticks out here and there.
\ The amount of dust piled up on it tells how long this teddy has been abandoned.
One of the buttons, which are eyes, is hanging loose." - observation_choices = list("Leave it alone", "Take the button off") - correct_choices = list("Take the button off") - observation_success_message = "You took the button off.
It was disturbing for some reason.
The button is old and rotten and makes you uncomfortable.
\ - You replace the button with one off your suit with great care.
While the teddy looks awkward because of the mismatching buttons, it adds to its charm." - observation_fail_message = "You don't know what to do with it so you just left it alone.
The teddy sits there without any movement." + observation_choices = list( + "Take the button off" = list(TRUE, "You took the button off.
It was disturbing for some reason.
The button is old and rotten and makes you uncomfortable.
\ + You replace the button with one off your suit with great care.
While the teddy looks awkward because of the mismatching buttons, it adds to its charm."), + "Leave it alone" = list(FALSE, "You don't know what to do with it so you just left it alone.
The teddy sits there without any movement."), + ) /// if the same person works on Happy Teddy Bear twice in a row, the person will die unless certain requirements are met. var/last_worker = null diff --git a/code/modules/mob/living/simple_animal/abnormality/he/headless_ichthys.dm b/code/modules/mob/living/simple_animal/abnormality/he/headless_ichthys.dm index 8884cfb82e27..e85c6efb1559 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/headless_ichthys.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/headless_ichthys.dm @@ -45,12 +45,12 @@ observation_prompt = "Deep, deep, at the bottom of the sea, a creature lies, dreaming.
\ It seems to be holding on to a sack of fluid.
What will you do?" - observation_choices = list("Try and swim away", "Puncture the sack") - correct_choices = list("Try and swim away") - observation_success_message = "You swim upwards, hoping it doesn't notice you.
\ - Surprisingly, after a few seconds you break the water's surface and make your escape.
You find a trinket in your pocket." - observation_fail_message = "You cannot get close enough, the water slows your movements.
\ - The creature notices you, and prepares an attack.
It is impossible to evade, and you are torn to shreds." + observation_choices = list( + "Try and swim away" = list(TRUE, "You swim upwards, hoping it doesn't notice you.
\ + Surprisingly, after a few seconds you break the water's surface and make your escape.
You find a trinket in your pocket."), + "Puncture the sack" = list(FALSE, "You cannot get close enough, the water slows your movements.
\ + The creature notices you, and prepares an attack.
It is impossible to evade, and you are torn to shreds."), + ) var/can_act = TRUE var/jump_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/helper.dm b/code/modules/mob/living/simple_animal/abnormality/he/helper.dm index db599e2cff4d..1dce0f740d9a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/helper.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/helper.dm @@ -14,6 +14,7 @@ death_message = "falls to the ground, deactivating." maxHealth = 1000 health = 1000 + blood_volume = 0 rapid_melee = 4 ranged = TRUE attack_verb_continuous = "slashes" @@ -53,11 +54,11 @@ ) observation_prompt = "Is fun to clean. I was..." - observation_choices = list("You are special") - correct_choices = list("You are special") - observation_success_message = "There were many friends who looked like me.
I was special.
\ - My creator always said to me.
\"You have to be sent to her. You are special.
You can give them a very special present.\"
\ - Numbers of tools, which were devoid of for my friends, were put into me.
When I was sent to a new home, I gave them a present." + observation_choices = list( + "You are special" = list(TRUE, "There were many friends who looked like me.
I was special.
\ + My creator always said to me.
\"You have to be sent to her. You are special.
You can give them a very special present.\"
\ + Numbers of tools, which were devoid of for my friends, were put into me.
When I was sent to a new home, I gave them a present."), + ) var/charging = FALSE var/dash_num = 50 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/highway_devotee.dm b/code/modules/mob/living/simple_animal/abnormality/he/highway_devotee.dm index f10a2c18fd2e..e86523788ca4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/highway_devotee.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/highway_devotee.dm @@ -39,17 +39,17 @@ \"This is a one-way road. No U-turns.\"
\ \"If you take this road, it'll take ages to come back here.\"
\ As the person claims, the road seems to be stretched almost endlessly into the distance." - observation_choices = list("Go back the way you came instead of taking the main road", "Take the byway instead of taking the main road") - correct_choices = list("Go back the way you came instead of taking the main road") - observation_success_message = "\"The road might seem vacant right now, but take it for a bit and you'll see.
That the road is jam-packed with cars, and you'd be slowed to a crawl.\"
\ - \"Turning around is not an option, either. There would be a car right behind you by the time you decide to go back.\"
\ - \"You made the right choice.\"
\ - It lightly smiled.
\ - The sign was still held high for whoever might enter this highway in the future." - observation_fail_message = "\"Not a good choice.\"
\ - \"Everyone is following the same rules to traverse this road. In any case, this highway is for everyone.\"
\ - \"I assure you, the god of traffic won't forgive cheap shortcuts like that.\"
\ - As you take the byway, you endured the piercing glare on your back for a good while." + observation_choices = list( + "Go back the way you came instead of taking the main road" = list(TRUE, "\"The road might seem vacant right now, but take it for a bit and you'll see.
That the road is jam-packed with cars, and you'd be slowed to a crawl.\"
\ + \"Turning around is not an option, either. There would be a car right behind you by the time you decide to go back.\"
\ + \"You made the right choice.\"
\ + It lightly smiled.
\ + The sign was still held high for whoever might enter this highway in the future."), + "Take the byway instead of taking the main road" = list(FALSE, "\"Not a good choice.\"
\ + \"Everyone is following the same rules to traverse this road. In any case, this highway is for everyone.\"
\ + \"I assure you, the god of traffic won't forgive cheap shortcuts like that.\"
\ + As you take the byway, you endured the piercing glare on your back for a good while."), + ) var/talk = FALSE var/list/structures = list() @@ -90,8 +90,9 @@ /mob/living/simple_animal/hostile/abnormality/highway_devotee/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() - var/turf/T = pick(GLOB.xeno_spawn) - forceMove(T) + if(breach_type != BREACH_MINING) + var/turf/T = pick(GLOB.xeno_spawn) + forceMove(T) addtimer(CALLBACK(src, PROC_REF(KillYourself)), 3 MINUTES) dir = pick(list(NORTH, SOUTH, WEST, EAST)) for(var/turf/open/U in range(2, src)) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/jangsan.dm b/code/modules/mob/living/simple_animal/abnormality/he/jangsan.dm index ca564b2af7ac..b78b3eb7c62d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/jangsan.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/jangsan.dm @@ -46,13 +46,13 @@ observation_prompt = "I'm in a field of flowers, the flowers are my friends.
There are many kinds of friends but I wish to pluck them all.
\ Some friends have thorns and hurt when I try to pick them.
Before me is a particularly juicy, thornless flower." - observation_choices = list("Pluck the flower", "Smell it") - correct_choices = list("Smell it") - observation_success_message = "The flower shuffles away from me as I draw near, the scent is enticing but I do not pluck it.
\ - There's always time to stop and enjoy the flowers." - observation_fail_message = "The flower lets out a scream as I pluck it with my teeth, its ichor stains my teeth and fur red - \ - the other thornless flowers scream in unison and flee in all directions whilst the thorniest ones scratch my fur and skin.
\ - Flowers are my friends and I shall pluck them all." + observation_choices = list( + "Smell it" = list(TRUE, "The flower shuffles away from me as I draw near, the scent is enticing but I do not pluck it.
\ + There's always time to stop and enjoy the flowers."), + "Pluck the flower" = list(FALSE, "The flower lets out a scream as I pluck it with my teeth, its ichor stains my teeth and fur red - \ + the other thornless flowers scream in unison and flee in all directions whilst the thorniest ones scratch my fur and skin.
\ + Flowers are my friends and I shall pluck them all."), + ) var/bullet_threshold = 40 //breach related @@ -193,7 +193,8 @@ . = ..() if(!datum_reference.abno_radio) AbnoRadio() - addtimer(CALLBACK(src, PROC_REF(TryTeleport)), 5) + if(breach_type != BREACH_MINING) + addtimer(CALLBACK(src, PROC_REF(TryTeleport)), 5) /mob/living/simple_animal/hostile/abnormality/jangsan/proc/TryTeleport() //stolen from knight of despair dir = 2 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/laetitia.dm b/code/modules/mob/living/simple_animal/abnormality/he/laetitia.dm index 5cde37ce7594..b237c364e6a8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/laetitia.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/laetitia.dm @@ -34,14 +34,18 @@ observation_prompt = "This place is so gloomy, everyone always seems so sad and they don't smile.
\ It's lonely to be sad, so, this little lady has been secretly giving them all presents filled with friends!
\ Did they like the surprise?" - observation_choices = list("Tell the truth", "Lie and say they did") - correct_choices = list("Tell the truth") - observation_success_message = "Oh, that's sad...
Even if they're my friends, that doesn't mean they're your friends as well.
\ - I won't give you a present, but, could you stay and play with me some more today?" - observation_fail_message = "I'm glad!
I wish I could have seen their faces, I bet they were so surprised!
\ - You look lonely too, I hope my present will make you laugh as well!" + observation_choices = list( + "Tell the truth" = list(TRUE, "Oh, that's sad...
Even if they're my friends, that doesn't mean they're your friends as well.
\ + I won't give you a present, but, could you stay and play with me some more today?"), + "Lie and say they did" = list(FALSE, "I'm glad!
I wish I could have seen their faces, I bet they were so surprised!
\ + You look lonely too, I hope my present will make you laugh as well!"), + ) attack_action_types = list(/datum/action/cooldown/laetitia_gift, /datum/action/cooldown/laetitia_summon) + var/breaching = FALSE + var/summon_cooldown + var/summon_cooldown_time = 60 SECONDS + var/summon_count = 0 /datum/action/cooldown/laetitia_summon name = "Call for Friends" @@ -49,7 +53,7 @@ button_icon_state = "prank_gift" check_flags = AB_CHECK_CONSCIOUS transparent_when_unavailable = TRUE - cooldown_time = 40 SECONDS + cooldown_time = 60 SECONDS var/delete_timer var/delete_cooldown = 30 SECONDS var/mob/living/simple_animal/hostile/gift/G1 @@ -139,6 +143,12 @@ qdel(src) opening = FALSE +/mob/living/simple_animal/hostile/abnormality/laetitia/Life() + . = ..() + if(!breaching) + return + if((summon_cooldown < world.time) && !(status_flags & GODMODE)) + SummonAdds() /mob/living/simple_animal/hostile/abnormality/laetitia/NeutralEffect(mob/living/carbon/human/user, work_type, pe) . = ..() @@ -168,6 +178,19 @@ P.TriggerPrank() return +/mob/living/simple_animal/hostile/abnormality/laetitia/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + breaching = TRUE + return ..() + +/mob/living/simple_animal/hostile/abnormality/laetitia/proc/SummonAdds()//Mining breach summon + summon_cooldown = world.time + summon_cooldown_time + if(summon_count > 9)//this list is not subtracted when minions are killed. Limited to 10 per breach + return + var/turf/target_turf = get_turf(src) + new /mob/living/simple_animal/hostile/gift(target_turf) + summon_count += 1 + //Her friend /mob/living/simple_animal/hostile/gift name = "Little Witch's Friend" diff --git a/code/modules/mob/living/simple_animal/abnormality/he/missed_reaper.dm b/code/modules/mob/living/simple_animal/abnormality/he/missed_reaper.dm index 592bdc5f7a3d..2b66b610840b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/missed_reaper.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/missed_reaper.dm @@ -37,11 +37,10 @@ observation_prompt = "She was so pale at the end, she looked more like a porcelain doll than the little girl I knew, \ laughing and smiling that bright colourful smile I loved so much.
I sat next to her bed, powerless to do anything." - observation_choices = list("Hold her hand") - correct_choices = list("Hold her hand") - observation_success_message = "Her skin was clammy and cool to the touch and not a trace of a pulse to be found, she passed the night before.
\ - It didn't mean anything.
In the corner of the room, I saw the reaper bow his head in apology." - + observation_choices = list( + "Hold her hand" = list(TRUE, "Her skin was clammy and cool to the touch and not a trace of a pulse to be found, she passed the night before.
\ + It didn't mean anything.
In the corner of the room, I saw the reaper bow his head in apology."), + ) var/meltdown_cooldown //no spamming the meltdown effect var/meltdown_cooldown_time = 15 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/he/nameless_fetus.dm b/code/modules/mob/living/simple_animal/abnormality/he/nameless_fetus.dm index 49d3371c0710..26639dd3739a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/nameless_fetus.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/nameless_fetus.dm @@ -31,13 +31,13 @@ observation_prompt = "The baby never cries.
It kept that way forever.
\ As a lack of words doesn't necessarily mean a lack of emotions, a lack of crying doesn't mean lack of desire.
\ Since time unknown, the baby has had a mouth.
The baby who does not understand cries, expresses hunger, and causes pain for the others.
You..." - observation_choices = list("Call its name.", "Didn't call its name.") - correct_choices = list("Call its name.") - observation_success_message = "No one else knows the name of the fetus.
\ - But you know.
You called its name.
\ - The unstoppable desire shut its mouth for a while.
Even only for a short time, the desire silenced." - observation_fail_message = "The fetus is still crying.
\ - You plugged your ears silently.
No sound is heard." + observation_choices = list( + "Call its name" = list(TRUE, "No one else knows the name of the fetus.
\ + But you know.
You called its name.
\ + The unstoppable desire shut its mouth for a while.
Even only for a short time, the desire silenced."), + "Didn't call its name" = list(FALSE, "The fetus is still crying.
\ + You plugged your ears silently.
No sound is heard."), + ) var/mob/living/carbon/human/calling = null var/criesleft diff --git a/code/modules/mob/living/simple_animal/abnormality/he/norinori.dm b/code/modules/mob/living/simple_animal/abnormality/he/norinori.dm index b022b656de48..9083b339d94e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/norinori.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/norinori.dm @@ -46,22 +46,22 @@ You have been tasked to work on this creature.
\ What type of work will you attempt?
\ Choose carefully." - observation_choices = list("Try to make friends with it", "Inject Cogito") - correct_choices = list("Inject Cogito") - observation_success_message = "You prepare to start instinct work .
\ - ...
\ - Checking Vitals
\ - ...
\ - Adjusting Fluid Intake
\ - ...
\ - Allocating 37% Cogito
\ - ...
\ - The work is complete,
you report the good result to the work log." - observation_fail_message = "Surely such a cute thing must be friendly, right?
\ - It seems you have not learned your lesson
\ - The split fox senses your intent.
\ - It opens up, revealing a core connected to several sharp cutting tools
\ - You are too close to get away." + observation_choices = list( + "Inject Cogito" = list(TRUE, "You prepare to start instinct work .
\ + ...
\ + Checking Vitals
\ + ...
\ + Adjusting Fluid Intake
\ + ...
\ + Allocating 37% Cogito
\ + ...
\ + The work is complete,
you report the good result to the work log."), + "Try to make friends with it" = list(FALSE, "Surely such a cute thing must be friendly, right?
\ + It seems you have not learned your lesson
\ + The split fox senses your intent.
\ + It opens up, revealing a core connected to several sharp cutting tools
\ + You are too close to get away."), + ) //breach related var/can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm b/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm index 092ff9c9dcf4..7aa6b4458bb8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/pinocchio.dm @@ -34,10 +34,10 @@ observation_prompt = "I've been watching people for as long as I've known them, it's not hard to imitate others.
\ Can I be a human if I mimic humans?" - observation_choices = list("You're human", "You will never be a human") - correct_choices = list("You will never be a human") - observation_success_message = "Can I... not become a human..?
You could've let me fool you, you're too cruel." - observation_fail_message = "Did I look just like a human?
I hope I fooled you, it's other people's fault for falling for my lies." + observation_choices = list( + "You will never be a human" = list(TRUE, "Can I... not become a human..?
You could've let me fool you, you're too cruel."), + "You're human" = list(FALSE, "Did I look just like a human?
I hope I fooled you, it's other people's fault for falling for my lies."), + ) var/lying = FALSE var/caught_lie = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm b/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm index 8a3b6fd41b37..e29abca9607e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/pisc_mermaid.dm @@ -51,14 +51,14 @@ if you said I did not need to see then I'd scoop out my eyes as well.\"
She splashes her aquamarine tail, foam, water and something else was flicked towards you.
\ \"I made you a gift, just wear it and say that you love me too.\"
\ The water carries the comb to your feet, you pick it up as she watches you expectantly." - observation_choices = list("Accept the comb", "Cast it into the sea") - correct_choices = list("Cast it into the sea") - observation_success_message = "\"I don't understand, don't you love me?
Can't you hear, see or understand my love?
\ - If I give you my eyes, my ears and my brain, could you percieve and learn to love me too?
Just please trade me your heart to fill this void in my chest...\"
\ - You left the mermaid to her babble, love could never be something so transactional." - observation_fail_message = "You place the comb in your hair and the mermaid smiles, her pupils like tiny hearts, and you find yourself walking into the depths as she embraces you.
\ - \"I'm so happy you gave me your heart...\"
She whispers as she draws you into a kiss, pulling you further and further into the waves, the water passing your chest and then your head but still she wouldn't release her embrace.
\ - Salt water fills your lungs as you lose consciousness." + observation_choices = list( + "Cast it into the sea" = list(TRUE, "\"I don't understand, don't you love me?
Can't you hear, see or understand my love?
\ + If I give you my eyes, my ears and my brain, could you percieve and learn to love me too?
Just please trade me your heart to fill this void in my chest...\"
\ + You left the mermaid to her babble, love could never be something so transactional."), + "Accept the comb" = list(FALSE, "You place the comb in your hair and the mermaid smiles, her pupils like tiny hearts, and you find yourself walking into the depths as she embraces you.
\ + \"I'm so happy you gave me your heart...\"
She whispers as she draws you into a kiss, pulling you further and further into the waves, the water passing your chest and then your head but still she wouldn't release her embrace.
\ + Salt water fills your lungs as you lose consciousness."), + ) response_help_continuous = "pets" //You sick fuck response_help_simple = "pet" diff --git a/code/modules/mob/living/simple_animal/abnormality/he/porccubus.dm b/code/modules/mob/living/simple_animal/abnormality/he/porccubus.dm index cff432a39da1..57400d22e5f3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/porccubus.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/porccubus.dm @@ -46,22 +46,39 @@ observation_prompt = "The red flower waits expectantly for you as you enter the containment unit, \ studying your movements it leans down towards you and bares its thorns to you." - observation_choices = list("Touch the thorns", "Just observe") - correct_choices = list("Just observe") - observation_success_message = "The flower pulls back when it realises you make no effort to try and touch it.
\ - You study it and it studies you back, it only ever wanted to make people happy the only way it knew how.
\ - You turn to leave, resolving to chase after happiness with your own power." - observation_fail_message = "The thorns prick your hands and you feel an indescribable rush of pleasure.
\ - Poppy flowers like this one have ruined many lives and now it's ruined yours, but for now - you're happy." + observation_choices = list( + "Just observe" = list(TRUE, "The flower pulls back when it realises you make no effort to try and touch it.
\ + You study it and it studies you back, it only ever wanted to make people happy the only way it knew how.
\ + You turn to leave, resolving to chase after happiness with your own power."), + "Touch the thorns" = list(FALSE, "The thorns prick your hands and you feel an indescribable rush of pleasure.
\ + Poppy flowers like this one have ruined many lives and now it's ruined yours, but for now - you're happy."), + ) //the agent that started work on porccubus var/agent_ckey var/teleport_cooldown_time = 5 MINUTES var/teleport_cooldown var/damage_taken = FALSE + var/leap_recharge_time = 2 SECONDS + var/leap_charges = 3 + var/max_leap_charges = 3 + var/timer_added = FALSE + var/in_charging = FALSE + var/noteleport = FALSE + attack_action_types = list(/datum/action/innate/abnormality_attack/toggle/porccubus_dash_toggle) + +/mob/living/simple_animal/hostile/abnormality/porccubus/Login() + . = ..() + if(!. || !client) + return FALSE + to_chat(src, "

You are Porccubus, A Tank Role Abnormality.


\ + |Fluttering|: You are immune to all projectiles. However you are unable to move. \ + However, If you click on a tile that is at least 3 tiles away from you. You will spend a leap charge to dash to that tile. \ + You regain a leap charge every 3 seconds, and you can hold a max of 3 at a time.
\ +
\ + |Happiness|: Your melee attack has a range of 2 tiles.
") //PLAYABLE ATTACKS - attack_action_types = list(/datum/action/innate/abnormality_attack/toggle/porccubus_dash_toggle) /datum/action/innate/abnormality_attack/toggle/porccubus_dash_toggle name = "Toggle Dash" @@ -132,11 +149,13 @@ //it does have a dash that makes it able to jump around, but it can't properly "roam" per say. /mob/living/simple_animal/hostile/abnormality/porccubus/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() + if(breach_type == BREACH_MINING) + noteleport = TRUE playsound(src, 'sound/abnormalities/porccubus/head_explode_laugh.ogg', 50, FALSE, 4) icon_living = "porrcubus" icon_state = icon_living ranged_cooldown = world.time + ranged_cooldown_time - if(!IsCombatMap()) + if(!IsCombatMap() && (breach_type != BREACH_MINING)) var/turf/T = pick(GLOB.xeno_spawn) forceMove(T) teleport_cooldown = world.time + teleport_cooldown_time @@ -148,7 +167,7 @@ . = ..() if(status_flags & GODMODE) return - if(IsCombatMap()) + if(IsCombatMap() || noteleport) return if(teleport_cooldown < world.time) //if porccubus hasn't taken damage for 5 minutes we make him move so he doesn't stay stuck in whatever cell he got thrown in. teleport_cooldown = world.time + teleport_cooldown_time @@ -171,31 +190,52 @@ //Breach Code Attacks /mob/living/simple_animal/hostile/abnormality/porccubus/OpenFire(atom/A) if(client) - if(ranged_cooldown > world.time || chosen_attack != 1) - RangedAttack(A) + if(!IsCombatMap()) + if(ranged_cooldown > world.time || chosen_attack != 1) + RangedAttack(A) switch(chosen_attack) if(1) - PorcDash(target) + DashChecker(target) return if(!target) return if(!isliving(target)) return - PorcDash(A) + DashChecker(A) -/mob/living/simple_animal/hostile/abnormality/porccubus/proc/PorcDash(atom/target)//additionally, it can dash to its target every 15 seconds if it's out of range +/mob/living/simple_animal/hostile/abnormality/porccubus/proc/DashChecker(atom/target) var/dist = get_dist(target, src) - if(dist > 2 && ranged_cooldown < world.time) - ranged_cooldown = world.time + ranged_cooldown_time - var/list/dash_line = getline(src, target) - for(var/turf/line_turf in dash_line) //checks if there's a valid path between the turf and the friend - if(line_turf.is_blocked_turf(exclude_mobs = TRUE)) - break - forceMove(line_turf) - SLEEP_CHECK_DEATH(0.8) - playsound(src, 'sound/abnormalities/porccubus/porccu_giggle.ogg', 10, FALSE, 4) // This thing is absurdly loud - ranged_cooldown = world.time + ranged_cooldown_time + if(IsCombatMap()) + if(dist > 2 && leap_charges > 0 && !in_charging) + PorcDash(target) + else + if(dist > 2 && ranged_cooldown < world.time) + ranged_cooldown = world.time + ranged_cooldown_time + PorcDash(target) + +/mob/living/simple_animal/hostile/abnormality/porccubus/proc/PorcDash(atom/target)//additionally, it can dash to its target every 15 seconds if it's out of range + // var/dist = get_dist(target, src) + // if(IsCombatMap()) + // if(dist > 2 && charges > 0) + // else + // if(dist > 2 && ranged_cooldown < world.time) + // ranged_cooldown = world.time + ranged_cooldown_time + in_charging = TRUE + var/list/dash_line = getline(src, target) + for(var/turf/line_turf in dash_line) //checks if there's a valid path between the turf and the friend + if(line_turf.is_blocked_turf(exclude_mobs = TRUE)) + break + forceMove(line_turf) + SLEEP_CHECK_DEATH(1) + playsound(src, 'sound/abnormalities/porccubus/porccu_giggle.ogg', 10, FALSE, 4) // This thing is absurdly loud + ranged_cooldown = world.time + ranged_cooldown_time + if(IsCombatMap()) + leap_charges -= 1 + if(!timer_added) + addtimer(CALLBACK(src, PROC_REF(AddCharge)), leap_recharge_time) + timer_added = TRUE + in_charging = FALSE /mob/living/simple_animal/hostile/abnormality/porccubus/AttackingTarget(atom/attacked_target) var/mob/living/carbon/human/H @@ -214,6 +254,15 @@ LoseTarget() H.faction += "porccubus" //that guy's already fucked, even if they can kill porccubus safely now, porccubus has done its job of being a cunt +/mob/living/simple_animal/hostile/abnormality/porccubus/proc/AddCharge() + if(leap_charges < max_leap_charges) + leap_charges++ + to_chat(src, " You now have [leap_charges]/[max_leap_charges] leap charges.") + timer_added = FALSE + if(leap_charges < max_leap_charges) + addtimer(CALLBACK(src, PROC_REF(AddCharge)), leap_recharge_time) + timer_added = TRUE + //Drug Item //this is only obtainable if someone else dies from the addiction, but it's the only way to get drugged without working on porccubus /obj/item/porccubus_drug diff --git a/code/modules/mob/living/simple_animal/abnormality/he/puss_in_boots.dm b/code/modules/mob/living/simple_animal/abnormality/he/puss_in_boots.dm index 9d08c797ec9b..c2d8a079f79c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/puss_in_boots.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/puss_in_boots.dm @@ -43,10 +43,10 @@ observation_prompt = "The miller, my old master, when he passed he left his mill, his donkey and myself to his three sons.
\ I was left to the youngest and the elders denied him any right to the mill.
I felt for the poor lad and so, I turned the young master into a Prince,
\ and one day a King.
I can do the same for you - Are you ready to claim your inheritance?" - observation_choices = list("Yes", "No") - correct_choices = list("Yes") - observation_success_message = "Excellent, by my paw you shall make a fine master, envy of all your peers!" - observation_fail_message = "Bah! When will someone worthy arrive?" + observation_choices = list( + "Yes" = list(TRUE, "Excellent, by my paw you shall make a fine master, envy of all your peers!"), + "No" = list(FALSE, "Bah! When will someone worthy arrive?"), + ) //Work/misc Vars var/list/stats = list( diff --git a/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm b/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm index bdf534a73aa2..da9b74176a80 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/red_buddy.dm @@ -51,14 +51,14 @@ observation_prompt = "You enter the containment unit and see a cartoonish-looking dog collapsed in the centre, shivering from pain and inflicted with terribly deep, red wounds.
\ \"My master wants a wolf...\"
It says breathlessly.
\"I'm waiting for my master, waiting, waiting...
I'm waiting for them...\"" - observation_choices = list("Hug and console it", "Beat it within an inch of it's life") - correct_choices = list("Hug and console it") - observation_success_message = "You hold the wounded animal in your arms as it continues to shake.
\ - \"I shook my split tail hard until flesh fell off it, I lied flat on the floor and begged...
My heart for my Master...\"
\ - Finally it stops shivering and wounds stopped appearing on its body.
\"Left only red scars...\"" - observation_fail_message = "You pull out your baton and hit the animal over and over again, kicking, spitting and cursing at it but it never reacts to any of your abuse beyond hastening its transformation.
\ - The skinless dog now stands above you, neither wolf nor dog.
\"You can't stop a wolf with a touch gentler than my master's.
I'm a wolf, vile and vicious, belonging to my master.\"
\ - The faux-wolf eats you in one bite." + observation_choices = list( + "Hug and console it" = list(TRUE, "You hold the wounded animal in your arms as it continues to shake.
\ + \"I shook my split tail hard until flesh fell off it, I lied flat on the floor and begged...
My heart for my Master...\"
\ + Finally it stops shivering and wounds stopped appearing on its body.
\"Left only red scars...\""), + "Beat it within an inch of it's life" = list(FALSE, "You pull out your baton and hit the animal over and over again, kicking, spitting and cursing at it but it never reacts to any of your abuse beyond hastening its transformation.
\ + The skinless dog now stands above you, neither wolf nor dog.
\"You can't stop a wolf with a touch gentler than my master's.
I'm a wolf, vile and vicious, belonging to my master.\"
\ + The faux-wolf eats you in one bite."), + ) ///The blue smocked shepherd linked to red buddy var/datum/abnormality/master diff --git a/code/modules/mob/living/simple_animal/abnormality/he/red_queen.dm b/code/modules/mob/living/simple_animal/abnormality/he/red_queen.dm index 3f1108e854fa..00a1a90fe099 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/red_queen.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/red_queen.dm @@ -27,10 +27,12 @@ observation_prompt = "This abnormality has a notorious reputation for being particularly dry to work with.
It's hard to tell what it's thinking or what work it prefers.
\ What type of work will you attempt?" - observation_choices = list(ABNORMALITY_WORK_INSTINCT, ABNORMALITY_WORK_INSIGHT, ABNORMALITY_WORK_ATTACHMENT, ABNORMALITY_WORK_REPRESSION) - correct_choices = list(ABNORMALITY_WORK_INSTINCT) // Matches Red Queen's real preferred work. This default is set to stop warnings - observation_success_message = "You are granted an audience with the red queen.
Today, you were able to to satisfy her unpredictable whims" - observation_fail_message = "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else." + observation_choices = list( // Matches Red Queen's real preferred work. + ABNORMALITY_WORK_INSTINCT = list(FALSE, "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else."), + ABNORMALITY_WORK_INSIGHT = list(FALSE, "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else."), + ABNORMALITY_WORK_ATTACHMENT = list(FALSE, "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else."), + ABNORMALITY_WORK_REPRESSION = list(FALSE, "You narrowly dodge the card-guillotine coming for your neck, that was close, let's try something else."), + ) var/liked /mob/living/simple_animal/hostile/abnormality/red_queen/Initialize(mapload) @@ -41,8 +43,7 @@ /mob/living/simple_animal/hostile/abnormality/red_queen/PostSpawn() . = ..() - correct_choices = list() - correct_choices += liked + observation_choices[liked] = list(TRUE, "You are granted an audience with the red queen.
Today, you were able to to satisfy her unpredictable whims") /mob/living/simple_animal/hostile/abnormality/red_queen/PostWorkEffect(mob/living/carbon/human/user, work_type, pe) if(work_type != liked) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/red_shoes.dm b/code/modules/mob/living/simple_animal/abnormality/he/red_shoes.dm index 75cb8f4e67e1..d90f2a1d685a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/red_shoes.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/red_shoes.dm @@ -39,14 +39,14 @@ observation_prompt = "There is a pair of red shoes.
\ It could be sitting in front of me, or in my feet. I am......" - observation_choices = list("Wearing them.", "Not wearing them.") - correct_choices = list("Wearing them.") //TODO: Second line of dialogue, must be coded - observation_success_message = "I am wearing the shoes.
\ - They are perfect fit, it feels good.
I have a weird feeling as if I am in another world.
\ - There is a sharp axe in front of me. Maybe it was there all along, or maybe I just haven't realized it until now.
\ - A weapon will change a lot of things." - observation_fail_message = "I was not wearing the shoes.
\ - The shoes' crimson color is getting deeper." + observation_choices = list( //TODO: Second line of dialogue, must be coded + "Wearing them." = list(TRUE, "I am wearing the shoes.
\ + They are perfect fit, it feels good.
I have a weird feeling as if I am in another world.
\ + There is a sharp axe in front of me. Maybe it was there all along, or maybe I just haven't realized it until now.
\ + A weapon will change a lot of things."), + "Not wearing them." = list(FALSE, "I was not wearing the shoes.
\ + The shoes' crimson color is getting deeper."), + ) var/mutable_appearance/breach_icon var/mob/living/possessee @@ -201,8 +201,6 @@ //BreachEffect and combat /mob/living/simple_animal/hostile/abnormality/red_shoes/BreachEffect(mob/living/carbon/human/user, breach_type) - if(!(status_flags & GODMODE)) - return soundloop.stop() for(var/mob/living/carbon/human/H in GLOB.mob_living_list)//stops possessing people, prevents runtimes. Panicked players are ghosted so use mob_living_list UnPossess(H) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm b/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm index 2558c1664fa4..bb265a41fb8f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/road_home.dm @@ -44,10 +44,10 @@ ) observation_prompt = "Last of all, road that is lost.
I will send you home.
The wizard grants you..." - observation_choices = list("The home cannot be reached", "The road home") - correct_choices = list("The home cannot be reached") - observation_success_message = "What are you fighting for so fiercely when you have nowhere to go back to?" - observation_fail_message = "Wear this pair of shoes and be on your way. To the hometown you miss so much." + observation_choices = list( + "The home cannot be reached" = list(TRUE, "What are you fighting for so fiercely when you have nowhere to go back to?"), + "The road home" = list(FALSE, "Wear this pair of shoes and be on your way. To the hometown you miss so much."), + ) ///Stuff related to the house and its path var/obj/road_house/house diff --git a/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm b/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm index e8499bdda61c..773508bbe338 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/rudolta.dm @@ -44,12 +44,12 @@ That night, when everyone was sleeping.
I waited for the man, sitting next to sleeping Alex.
\ Sometimes, for someone, an absurd fairy tale is a silver lining of hope.
When I met Santa, I imagined dismembering him.
...
\ In front of me is Santa.
My ideal.
People don't call it Santa.
Something is twitching inside of that sack. I......" - observation_choices = list("Opened the sack.", "Did not open the sack.") - correct_choices = list("Did not open the sack.") - observation_success_message = "Inside of the sack is a desire.
\ - A hope that I've been waiting for since when I was very young.
I never opened the sack.
Did you wish come true?" - observation_fail_message = "There was something that I have been longing for my entire life.
\ - Like Pandora's Box, it will never go back into the sack." + observation_choices = list( + "Did not open the sack" = list(TRUE, "Inside of the sack is a desire.
\ + A hope that I've been waiting for since when I was very young.
I never opened the sack.
Did your wish come true?"), + "Opened the sack" = list(FALSE, "There was something that I have been longing for my entire life.
\ + Like Pandora's Box, it will never go back into the sack."), + ) var/pulse_cooldown var/pulse_cooldown_time = 1.8 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm b/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm index 7f54df0e2df4..a9ca21951d85 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/scarecrow.dm @@ -49,15 +49,103 @@ ) observation_prompt = "Poor stuffing of straw.
I'll give you the wisdom to ponder over anything.
The wizard grants you..." - observation_choices = list("A silk sack of sawdust", "Wisdom") - correct_choices = list("A silk sack of sawdust") - observation_success_message = "Do you think jabbering away with your oh-so smart mouth is all that matters?" - observation_fail_message = "Come closer.
I’ll help you forget all of your woes and worries." + observation_choices = list( + "A silk sack of sawdust" = list(TRUE, "Do you think jabbering away with your oh-so smart mouth is all that matters?"), + "Wisdom" = list(FALSE, "Come closer.
I’ll help you forget all of your woes and worries."), + ) /// Can't move/attack when it's TRUE var/finishing = FALSE var/braineating = TRUE var/healthmodifier = 0.05 // Can restore 30% of HP + var/attack_healthmodifier = 0.05 + var/target_hit = FALSE + var/hunger = FALSE + + attack_action_types = list(/datum/action/cooldown/hungering) + +/mob/living/simple_animal/hostile/abnormality/scarecrow/Login() + . = ..() + if(!. || !client) + return FALSE + to_chat(src, "

You are Scarecrow Searching for Wisdom, A Tank Role Abnormality.


\ + |Seeking Wisdom|: When you attack corpses, You heal.
\ + Unlike other abnormalities which use corpses, you are able to reuse the corpses you drain as many times as you would like.
\ + |Hungering for Wisdom|: You have an ability which causes you to enter a 'Hungering' State.
\ + While you are in the 'Hungering' State, You have increased movement speed and melee damage. As well, Your melee attack heal 5% of your max HP on hit.
\ + You will need to hit at least on human every 6 seconds in order to keep this state active.
\ + However, If you don't hit any humans you will lose 5% of your max HP, become slowed down for 3.5 seconds and lose your 'Hungering' state.
") + +/datum/action/cooldown/hungering + name = "Hungering for Wisdom" + icon_icon = 'icons/mob/actions/actions_rcorp.dmi' + button_icon_state = "hungering" + desc = "Gain a short speed/damage boost to rush at your foes!" + cooldown_time = 300 + var/speeded_up = 1.5 + var/punishment_speed = 6 + var/speed_duration = 60 + var/weaken_duration = 30 + var/min_dam_buff = 35 + var/max_dam_buff = 40 + var/min_dam_old + var/max_dam_old + var/old_speed + +/datum/action/cooldown/hungering/Trigger() + if(!..()) + return FALSE + if (istype(owner, /mob/living/simple_animal/hostile/abnormality/scarecrow)) + var/sound/heartbeat = sound('sound/health/fastbeat.ogg', repeat = TRUE) + var/mob/living/simple_animal/hostile/abnormality/scarecrow/H = owner + if(H.hunger == TRUE) + to_chat(H, span_nicegreen("YOU ARE RUSHING RIGHT NOW!")) + return FALSE + else + old_speed = H.move_to_delay + H.move_to_delay = speeded_up + H.playsound_local(get_turf(H),heartbeat,40,0, channel = CHANNEL_HEARTBEAT, use_reverb = FALSE) + H.UpdateSpeed() + H.target_hit = FALSE + H.color = "#ff5770" + H.manual_emote("starts twitching...") + H.hunger = TRUE + min_dam_old = H.melee_damage_lower + max_dam_old = H.melee_damage_upper + H.melee_damage_lower = min_dam_buff + H.melee_damage_upper = max_dam_buff + to_chat(H, span_nicegreen("THEIR WISDOM, SHALL BE YOURS!")) + addtimer(CALLBACK(src, PROC_REF(Hunger)), speed_duration) + StartCooldown() + +/datum/action/cooldown/hungering/proc/Hunger() + if (istype(owner, /mob/living/simple_animal/hostile/abnormality/scarecrow)) + var/mob/living/simple_animal/hostile/abnormality/scarecrow/H = owner + if (H.target_hit) + addtimer(CALLBACK(src, PROC_REF(Hunger)), speed_duration) + H.target_hit = FALSE + to_chat(H, span_nicegreen("YOUR FEAST CONTINUES!")) + else + H.stop_sound_channel(CHANNEL_HEARTBEAT) + H.melee_damage_lower = min_dam_old + H.melee_damage_upper = max_dam_old + H.move_to_delay = punishment_speed + H.deal_damage(100, WHITE_DAMAGE) + H.color = null + H.manual_emote("starts slowing down...") + to_chat(H, span_userdanger("No... I need that wisdom...")) + H.target_hit = TRUE + addtimer(CALLBACK(src, PROC_REF(RushEnd)), weaken_duration) + H.UpdateSpeed() + +/datum/action/cooldown/hungering/proc/RushEnd() + if (istype(owner, /mob/living/simple_animal/hostile/abnormality/scarecrow)) + var/mob/living/simple_animal/hostile/abnormality/scarecrow/H = owner + H.move_to_delay = old_speed + to_chat(H, span_nicegreen("You calm down from your feast...")) + H.hunger = FALSE + H.UpdateSpeed() + /mob/living/simple_animal/hostile/abnormality/scarecrow/CanAttack(atom/the_target) if(finishing) @@ -80,7 +168,11 @@ if(.) if(!istype(attacked_target, /mob/living/carbon/human)) return - var/mob/living/carbon/human/H = attacked_target + target_hit = TRUE + if (hunger == TRUE) + adjustBruteLoss(-(maxHealth*attack_healthmodifier)) + playsound(get_turf(src), 'sound/abnormalities/scarecrow/start_drink.ogg', 50, 1) + var/mob/living/carbon/human/H = target if(H.health < 0 && stat != DEAD && !finishing && H.getorgan(/obj/item/organ/brain)) finishing = TRUE H.Stun(10 SECONDS) @@ -91,10 +183,11 @@ finishing = FALSE return playsound(get_turf(src), 'sound/abnormalities/scarecrow/drink.ogg', 50, 1) - if(H.health < -120) //prevents infinite healing, corpse is too mangled - break + if (!IsCombatMap()) + if(H.health < -120) //prevents infinite healing, corpse is too mangled + break + H.adjustBruteLoss(20) adjustBruteLoss(-(maxHealth*healthmodifier)) - H.adjustBruteLoss(20) SLEEP_CHECK_DEATH(4) if(!targets_from.Adjacent(H) || QDELETED(H)) finishing = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm b/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm index 09f75f99b91e..a7e288ed99e1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/scaredy_cat.dm @@ -51,10 +51,10 @@ ) observation_prompt = "Cowardly kitten.
I’ll give you the courage to stand up to anything and everything.
The wizard grants you..." - observation_choices = list("A vial of \"liquid courage\"", "Courage") - correct_choices = list("A vial of \"liquid courage\"") - observation_success_message = "What are you even going to do when you lack the bravery to face anything head-on?" - observation_fail_message = "Drink this potion, it’ll give you courage.
You’ll be braver than anyone." + observation_choices = list( + "A vial of \"liquid courage\"" = list(TRUE, "What are you even going to do when you lack the bravery to face anything head-on?"), + "Courage" = list(FALSE, "Drink this potion, it’ll give you courage.
You’ll be braver than anyone."), + ) /// The list of abnormality scaredy cat will automatically join when they breach, add any "Oz" abno to this list if possible var/list/prefered_abno_list = list( diff --git a/code/modules/mob/living/simple_animal/abnormality/he/schadenfreude.dm b/code/modules/mob/living/simple_animal/abnormality/he/schadenfreude.dm index 2c5847d4bdae..a2e3a9fce76a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/schadenfreude.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/schadenfreude.dm @@ -39,14 +39,14 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY observation_prompt = "You put on the blindfold and entered the containment unit.
You can feel the metal box's gaze through the thick fabric." - observation_choices = list("Take off the blindfold", "Feel for the wall") - correct_choices = list("Feel for the wall") - observation_success_message = "You turn to the wall and feel for it until you find your way back to the door.
\ - The box can't ever be more than a box, it can only exist as something real in the gaze of others.
Perhaps you're more alike than you think." - observation_fail_message = "You remove the blindfold and wait a moment for your eyes to adjust to the light, your gaze meets the eye in the keyhole's.
\ - The box comes to life with saws and blades, but all it is for - is to catch your attention." + observation_choices = list( + "Feel for the wall" = list(TRUE, "You turn to the wall and feel for it until you find your way back to the door.
\ + The box can't ever be more than a box, it can only exist as something real in the gaze of others.
Perhaps you're more alike than you think."), + "Take off the blindfold" = list(FALSE, "You remove the blindfold and wait a moment for your eyes to adjust to the light, your gaze meets the eye in the keyhole's.
\ + The box comes to life with saws and blades, but all it is for - is to catch your attention."), + ) - var/seen //Are you being looked at right now? + var/seen //Are you being looked at right now? var/solo_punish //Is an agent alone on the Z level, but not overall? var/total_players diff --git a/code/modules/mob/living/simple_animal/abnormality/he/shock_centipede.dm b/code/modules/mob/living/simple_animal/abnormality/he/shock_centipede.dm index 8e3afad62958..c3db5dbef6bb 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/shock_centipede.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/shock_centipede.dm @@ -47,22 +47,22 @@ The segments of the creature spark each time they move, suggesting faulty connections.
\ There are two buttons at the tank.
\ One is shaped like a thunderbolt, while the other looks like a waterdrop." - observation_choices = list("Thunderbolt", "Water drop") - correct_choices = list("Thunderbolt") - observation_success_message = "You press the lightning-shaped button.
\ - \"Apply stimulation and pain to the centipede to increase the discharge intensity.\"
\ - So writes a message above the buttons.
\ - That seems to be what this one does.
\ - When you pressed it, a mechanical sound played for a short while.
\ - The centipede has stopped moving." - observation_fail_message = "You press the water drop-shaped button.
\ - \"Apply stimulation and pain to the centipede to increase the discharge intensity.\"
\ - So writes a message above the buttons.
\ - When you pressed the drop-shaped button, the tank was filled with water.
\ - The centipede twists its body as if in some sort of dance.
\ - You watched the centipede’s tail scratch the tank’s surface.
\ - The glass cracked and fell apart immediately afterward.
\ - The electrified water fell right on your head." + observation_choices = list( + "Thunderbolt" = list(TRUE, "You press the lightning-shaped button.
\ + \"Apply stimulation and pain to the centipede to increase the discharge intensity.\"
\ + So writes a message above the buttons.
\ + That seems to be what this one does.
\ + When you pressed it, a mechanical sound played for a short while.
\ + The centipede has stopped moving."), + "Water drop" = list(FALSE, "You press the water drop-shaped button.
\ + \"Apply stimulation and pain to the centipede to increase the discharge intensity.\"
\ + So writes a message above the buttons.
\ + When you pressed the drop-shaped button, the tank was filled with water.
\ + The centipede twists its body as if in some sort of dance.
\ + You watched the centipede’s tail scratch the tank’s surface.
\ + The glass cracked and fell apart immediately afterward.
\ + The electrified water fell right on your head."), + ) // Work vars var/bonus_pe = 6 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/silent_girl.dm b/code/modules/mob/living/simple_animal/abnormality/he/silent_girl.dm index e83d37312eb8..0bc6489b0ca7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/silent_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/silent_girl.dm @@ -35,11 +35,11 @@ abnormality_origin = ABNORMALITY_ORIGIN_ARTBOOK observation_prompt = "..." - observation_choices = list("Accept your guilt", "Plead your ignorance") - correct_choices = list("Accept your guilt") - observation_success_message = "The nails pierce your heart as the girl in the white dress hammers them home.
\ - She opens hers eyes and you meet her gaze.
You're forgiven." - observation_fail_message = "The nails pierce your heart as the girl in the white dress hammers them home." + observation_choices = list( + "Accept your guilt" = list(TRUE, "The nails pierce your heart as the girl in the white dress hammers them home.
\ + She opens hers eyes and you meet her gaze.
You're forgiven."), + "Plead your ignorance" = list(FALSE, "The nails pierce your heart as the girl in the white dress hammers them home."), + ) /mob/living/simple_animal/hostile/abnormality/silent_girl/proc/GuiltEffect(mob/living/carbon/human/user, enable_qliphoth = TRUE, stack_count = 1) if (user.stat == DEAD) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/singing_machine.dm b/code/modules/mob/living/simple_animal/abnormality/he/singing_machine.dm index 613a8844b531..df352dc5d657 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/singing_machine.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/singing_machine.dm @@ -10,8 +10,9 @@ Finally, an abnormality that DOESN'T have to do any fancy movement shit. It's a icon_state = "singingmachine_closed_clean" icon_living = "singingmachine_closed_clean" portrait = "singing_machine" - maxHealth = 200 - health = 200 + maxHealth = 3000 + health = 3000 + damage_coeff = list(RED_DAMAGE = 0.7, WHITE_DAMAGE = 0.7, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 1) threat_level = HE_LEVEL start_qliphoth = 2 work_chances = list( @@ -39,10 +40,10 @@ Finally, an abnormality that DOESN'T have to do any fancy movement shit. It's a observation_prompt = "You know that people die every time this machine sings.
\ Or perhaps this machine sings when people die.
Though it has spilled blood of countless people, the song put you in a rapturous mood." - observation_choices = list("Listen to the music", "Turn off the machine") - correct_choices = list("Turn off the machine") - observation_success_message = "You turned the machine off. Silence fills the air." - observation_fail_message = "Aah. The music gives you sense of warm coziness and relaxation." + observation_choices = list( + "Turn off the machine" = list(TRUE, "You turned the machine off. Silence fills the air."), + "Listen to the music" = list(FALSE, "Aah. The music gives you sense of warm coziness and relaxation."), + ) var/cleanliness = "clean" var/statChecked = 0 @@ -71,6 +72,12 @@ Finally, an abnormality that DOESN'T have to do any fancy movement shit. It's a to_chat(H, span_warning("That terrible grinding noise...")) return ..() +/mob/living/simple_animal/hostile/abnormality/singing_machine/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/singing_machine/CanAttack(atom/the_target) + return FALSE + /mob/living/simple_animal/hostile/abnormality/singing_machine/AttemptWork(mob/living/carbon/human/user, work_type) if(work_type == ABNORMALITY_WORK_INSTINCT) if(datum_reference.qliphoth_meter > 0) // Sets bonus damage on instinct work. @@ -148,6 +155,10 @@ Finally, an abnormality that DOESN'T have to do any fancy movement shit. It's a playStatus = 1 return +/mob/living/simple_animal/hostile/abnormality/singing_machine/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + ZeroQliphoth() + /mob/living/simple_animal/hostile/abnormality/singing_machine/proc/removeAddict(mob/living/carbon/human/addict) if(addict) musicalAddicts -= addict // Your five minutes are over, you're free. diff --git a/code/modules/mob/living/simple_animal/abnormality/he/siren.dm b/code/modules/mob/living/simple_animal/abnormality/he/siren.dm index ed2aa27f8072..1837f70eb60d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/siren.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/siren.dm @@ -32,14 +32,13 @@ When she passed he would play this song all the time until the vinyl began to warp.
One day, I visited him after a long time and the song wasn't playing.
\ \"It's not the same song,\" he'd whisper chin resting over his clenched hands, gripped together until they were as white as his knuckles.
\ \"Why isn't the same song?\"" - observation_choices = list("Put the song on again", "Throw it away") - correct_choices = list("Put the song on again") - observation_success_message = "The record began to play, the slow warped song filled the air.
\ - \"It's just not the same without her here...\"" - observation_fail_message = "You throw the old record into the trash, the well-used viny shattering.
\ - \"NO! HOW CAN I REMEMBER HER NOW?\" Your grandfather wails, coming at you with fury in his eyes before stopping.
\ - \"...Who were you again?\"" - + observation_choices = list( + "Put the song on again" = list(TRUE, "The record began to play, the slow warped song filled the air.
\ + \"It's just not the same without her here...\""), + "Throw it away" = list(FALSE, "You throw the old record into the trash, the well-used viny shattering.
\ + \"NO! HOW CAN I REMEMBER HER NOW?\" Your grandfather wails, coming at you with fury in his eyes before stopping.
\ + \"...Who were you again?\""), + ) //meltdown effects var/meltdown_cooldown_time = 144 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm b/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm index 8e369030d8a1..19367c702801 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/snow_queen.dm @@ -20,6 +20,7 @@ mob_biotypes = MOB_MINERAL maxHealth = 1500 health = 1500 + blood_volume = 0 move_to_delay = 5 damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.1, WHITE_DAMAGE = 0.8, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 0.8) //ASK SOMEONE GOOD AT BALANCING ABOUT THIS -IP base_pixel_x = -16 @@ -50,10 +51,10 @@ Freezing and cold.
\ You thought about it often, seeing she who couldn't see her dreams come true, trapped inside ice.
\ The brave agent headed to the Snow Palace and..." - observation_choices = list("Saved Kai", "Met the Snow Queen") - correct_choices = list("Met the Snow Queen") - observation_success_message = "The Snow Queen was cold and beautiful.
You heard ice melting." - observation_fail_message = "Gerda saved Kai and returned home.
They lived happily ever after." + observation_choices = list( + "Met the Snow Queen" = list(TRUE, "The Snow Queen was cold and beautiful.
You heard ice melting."), + "Saved Kai" = list(FALSE, "Gerda saved Kai and returned home.
They lived happily ever after."), + ) ego_list = list( /datum/ego_datum/weapon/frostsplinter, @@ -163,7 +164,7 @@ faction += "pink_midnight" //Call root code but with normal breach . = ..(null, BREACH_NORMAL) - if(!IsCombatMap()) + if(!IsCombatMap() && breach_type != BREACH_MINING) var/turf/T = pick(GLOB.department_centers) forceMove(T) update_icon() @@ -240,6 +241,12 @@ QDEL_IN(src, 10 SECONDS) return ..() +//Prevents gibbing during the duel. +/mob/living/simple_animal/hostile/abnormality/snow_queen/gib() + if(arena_attacks) + return FALSE + return ..() + //This is here so that people can see the death animation before snow queen is defeated. /mob/living/simple_animal/hostile/abnormality/snow_queen/Destroy() if(!storybook_hero && snow_prison) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/steam_transport_machine.dm b/code/modules/mob/living/simple_animal/abnormality/he/steam_transport_machine.dm index d5754d50495c..70c41ce22b8b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/steam_transport_machine.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/steam_transport_machine.dm @@ -10,6 +10,7 @@ del_on_death = FALSE maxHealth = 1600 health = 1600 + blood_volume = 0 ranged = TRUE attack_sound = 'sound/abnormalities/steam/attack.ogg' friendly_verb_continuous = "bonks" @@ -55,16 +56,16 @@ As it does its work, the number on the electronic display seems to update.
\ Machines exist for a purpose.
\ You feel like you should give it an order." - observation_choices = list("Order it to carry luggage", "Order it to do nothing") - correct_choices = list("Order it to carry luggage") - observation_success_message = "It lifts a nearby object to carry it from left to right.
\ - The count on its body went up by 1.
\ - Just as you started to wonder if that was it, the machine replaced one of its vacuum tubes with a new one.
\ - It presented the old one to you, and naturally, you accepted." - observation_fail_message = "A purposeless machine is bound to lose the meaning of its existence, even if it is functional.
\ - A machine whose purpose is to do nothing will do whatever it takes to achieve its directive.
\ - With a loud boiling noise, the machine’s body begins to heat, expelling hot steam.
\ - Seeing it glow a dangerous-looking hue, you quickly escaped the room." + observation_choices = list( + "Order it to carry luggage" = list(TRUE, "It lifts a nearby object to carry it from left to right.
\ + The count on its body went up by 1.
\ + Just as you started to wonder if that was it, the machine replaced one of its vacuum tubes with a new one.
\ + It presented the old one to you, and naturally, you accepted."), + "Order it to do nothing" = list(FALSE, "A purposeless machine is bound to lose the meaning of its existence, even if it is functional.
\ + A machine whose purpose is to do nothing will do whatever it takes to achieve its directive.
\ + With a loud boiling noise, the machine’s body begins to heat, expelling hot steam.
\ + Seeing it glow a dangerous-looking hue, you quickly escaped the room."), + ) var/gear = 0 var/steam_damage = 5 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/watchman.dm b/code/modules/mob/living/simple_animal/abnormality/he/watchman.dm index 3c5dd95d31a2..480e506e3a9f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/watchman.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/watchman.dm @@ -42,12 +42,12 @@ observation_prompt = "\"Natureless creatures roam the night, you should find shelter.\"
\ The watchman beckons you over.
You..." - observation_choices = list("Approach", "Run away") - correct_choices = list("Approach") - observation_success_message = "Good.
It's not safe to roam the woods at night.
\ - Come now, I will guide you home." - observation_fail_message = "You don't get far before you start hearing howling and shrieking.
\ - Numerous talons, claws, and fangs bite into you all at once.
Now you will know why you fear the night." + observation_choices = list( + "Approach" = list(TRUE, "Good.
It's not safe to roam the woods at night.
\ + Come now, I will guide you home."), + "Run away" = list(FALSE, "You don't get far before you start hearing howling and shrieking.
\ + Numerous talons, claws, and fangs bite into you all at once.
Now you will know why you fear the night."), + ) // Speech Lines speak_chance = 4 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/wayward_passenger.dm b/code/modules/mob/living/simple_animal/abnormality/he/wayward_passenger.dm index d2391773b1cb..cc91e106e49a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/wayward_passenger.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/wayward_passenger.dm @@ -59,20 +59,20 @@ but they’ll simply pretend that the passenger never existed.
\ Lost and abandoned, tossed out like trash,
\ having no place left in the City." - observation_choices = list("Sit still", "Guide them out") - correct_choices = list("Guide them out") - observation_success_message = "You take a few steps, and the passenger follows.
\ - As you draw closer to what appears to be an exit, the passenger bows down as though to show you gratitude.
\ - You heard something fall; it left behind a gift.
\ - Looks like it wasn't lost after all. It may have been an employee that happened to be patrolling the area.
\ - Maybe you didn't guide it—maybe it was merely following you to make sure that you found the right exit." - observation_fail_message = "It idly stared in your direction.
\ - Then, it began shambling for you, realizing something.
\ - As it drew closer, you were able to identify
\ - that the being was an employee of a certain transport company, not a passenger.
\ - The ID card on its chest gave it away.
\ - This stranded employee was approaching you,
\ - preparing to go through the motions." + observation_choices = list( + "Guide them out" = list(TRUE, "You take a few steps, and the passenger follows.
\ + As you draw closer to what appears to be an exit, the passenger bows down as though to show you gratitude.
\ + You heard something fall; it left behind a gift.
\ + Looks like it wasn't lost after all. It may have been an employee that happened to be patrolling the area.
\ + Maybe you didn't guide it—maybe it was merely following you to make sure that you found the right exit."), + "Sit still" = list(FALSE, "It idly stared in your direction.
\ + Then, it began shambling for you, realizing something.
\ + As it drew closer, you were able to identify
\ + that the being was an employee of a certain transport company, not a passenger.
\ + The ID card on its chest gave it away.
\ + This stranded employee was approaching you,
\ + preparing to go through the motions."), + ) //teleport vars var/teleport_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/he/white_lake.dm b/code/modules/mob/living/simple_animal/abnormality/he/white_lake.dm index 8479aec3bff8..4adb15c013b1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/white_lake.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/white_lake.dm @@ -34,13 +34,13 @@ observation_prompt = "The feathered lady dances in the centre of the containment unit to a tempo that exists only in her world, it's elegant and precise.
\ \"This domain, my lunar palace, it's mine birdcage gilded with fine gold.
Whatever I wish, it is brought for me and all that is expected of me is to dance.
\ Even if I possessed the fortitude to bend these bars and free myself, I would not - what good comes from change?
Fortitude won't avail anyone, wouldn't you agree?\"" - observation_choices = list("Agree", "Disagree") - correct_choices = list("Agree") - observation_success_message = "\"Hmm, you'll make for a cute decoration in mine sanctum, bear my circlet and come to your Princess' aid, won't you?
\ - Protect her from witches seeking to bully this poor Lake.\"
\ - She dances towards you, placing the circlet upon your head. \"Sully your hands so mine stay clean and beautiful.\" She turns away, returning to her dance." - observation_fail_message = "\"I don't find heroes cute at all.
Leave me to my dancing butcher, before you tarnish my pure-white feathers with your blood-soaked hands.\"
\ - The ballerina turns away from you and continues her dance, ignoring you." + observation_choices = list( + "Agree" = list(TRUE, "\"Hmm, you'll make for a cute decoration in mine sanctum, bear my circlet and come to your Princess' aid, won't you?
\ + Protect her from witches seeking to bully this poor Lake.\"
\ + She dances towards you, placing the circlet upon your head. \"Sully your hands so mine stay clean and beautiful.\" She turns away, returning to her dance."), + "Disagree" = list(FALSE, "\"I don't find heroes cute at all.
Leave me to my dancing butcher, before you tarnish my pure-white feathers with your blood-soaked hands.\"
\ + The ballerina turns away from you and continues her dance, ignoring you."), + ) /mob/living/simple_animal/hostile/abnormality/whitelake/WorkChance(mob/living/carbon/human/user, chance) if(get_attribute_level(user, FORTITUDE_ATTRIBUTE) >= 60) diff --git a/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm b/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm index f00412b1c2f8..e7c9d6cde1e0 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/woodsman.dm @@ -50,10 +50,10 @@ ) observation_prompt = "Tin-cold woodsman.
I’ll give you the heart to forgive and love anyone.
The wizard grants you..." - observation_choices = list("A heart of lead", "A warm heart") - correct_choices = list("A heart of lead") - observation_success_message = "Who do you possibly expect to understand with that ice-cold heart of yours?" - observation_fail_message = "You’re a machine, aren’t you? A heart is unnecessary for a machine." + observation_choices = list( + "A heart of lead" = list(TRUE, "Who do you possibly expect to understand with that ice-cold heart of yours?"), + "A warm heart" = list(FALSE, "You’re a machine, aren’t you? A heart is unnecessary for a machine."), + ) // Flurry Vars var/flurry_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm b/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm index fc03e9af235c..c10f80f4fbf5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm +++ b/code/modules/mob/living/simple_animal/abnormality/he/you_strong.dm @@ -5,8 +5,9 @@ icon_state = "you_strong_pause" icon_living = "you_strong_pause" portrait = "grown_strong" - maxHealth = 200 - health = 200 + maxHealth = 2000 + health = 2000 + damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 1.5, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 0) threat_level = HE_LEVEL start_qliphoth = 3 work_chances = list( @@ -37,9 +38,9 @@ 'I would never amount to anything in life or in death', I thought until one day I recieved a curious offer, a pamphlet in my mail.
\ \"Have you become strong? Strong for your City? Become Strong! Strong for your City!\" The suspicious pamphlet had an address and I followed it,
\ I detested my weakness and I cared not if I lived or died, I'd take any chance to not be weak.
At the address was a most curious machine and an instruction to enter." - observation_choices = list("Enter the machine") - correct_choices = list("Enter the machine") - observation_success_message = "I did as instructed and entered; now I have become strong, strong for my City.
I love the City I live in." + observation_choices = list( + "Enter the machine" = list(TRUE, "I did as instructed and entered; now I have become strong, strong for my City.
I love the City I live in."), + ) var/penalize = FALSE var/work_count = 0 @@ -61,6 +62,10 @@ var/datum/looping_sound/server/soundloop var/operating = FALSE + var/breaching = FALSE + var/summon_cooldown + var/summon_cooldown_time = 120 SECONDS + var/summon_count = 0 /mob/living/simple_animal/hostile/abnormality/you_strong/Initialize(mapload) . = ..() @@ -68,6 +73,19 @@ soundloop.volume = 75 soundloop.extra_range = 0 +/mob/living/simple_animal/hostile/abnormality/you_strong/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/you_strong/CanAttack(atom/the_target) + return FALSE + +/mob/living/simple_animal/hostile/abnormality/you_strong/Life() + . = ..() + if(!breaching) + return + if((summon_cooldown < world.time) && !(status_flags & GODMODE)) + SummonAdds() + /mob/living/simple_animal/hostile/abnormality/you_strong/WorkComplete(mob/living/carbon/human/user, work_type, pe, work_time, canceled) . = ..() if(work_type == ABNORMALITY_WORK_REPRESSION) @@ -123,14 +141,28 @@ icon_state = "you_strong_work" SLEEP_CHECK_DEATH(30 SECONDS) soundloop.stop() - src.datum_reference.qliphoth_change(3) + if(datum_reference) + src.datum_reference.qliphoth_change(3) icon_state = "you_strong_make" SLEEP_CHECK_DEATH(6) for(var/i = 1 to 3) new /mob/living/simple_animal/hostile/grown_strong(get_step(src, EAST)) + if(breaching) + summon_count += 1 SLEEP_CHECK_DEATH(6) icon_state = "you_strong_pause" +/mob/living/simple_animal/hostile/abnormality/you_strong/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + breaching = TRUE + return ..() + +/mob/living/simple_animal/hostile/abnormality/you_strong/proc/SummonAdds() + summon_cooldown = world.time + summon_cooldown_time + if(summon_count > 9)//this list is not subtracted when minions are killed. Limited to 10 per breach + return + ZeroQliphoth() + /mob/living/simple_animal/hostile/abnormality/you_strong/attacked_by(obj/item/I, mob/living/user) if(!(I.type in taken_parts)) return ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm index 7f219f853876..9a3577c029e9 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/MHz.dm @@ -11,6 +11,7 @@ base_pixel_y = -32 maxHealth = 400 health = 400 + blood_volume = 0 start_qliphoth = 4 threat_level = TETH_LEVEL work_chances = list( @@ -40,11 +41,11 @@ As you wait, your radio hisses with static and ghostly voices, buried in electromagnetic snow.
\ \"h...e...l...p\"
\ A ghost from the past calls out, the voice is familiar but you can't place who it belongs to." - observation_choices = list("Tune your radio to 1.76 MHz", "Forget") - correct_choices = list("Tune your radio to 1.76 MHz") - observation_success_message = "You tune your radio and hear her plea plain as day, her voice is like sunshine.
\ - Unbridled anger and sorrow at the unfairness of it all fills you as you leave the cell." - observation_fail_message = "But you can't forget. Not until you've atoned." + observation_choices = list( + "Tune your radio to 1.76 MHz" = list(TRUE, "You tune your radio and hear her plea plain as day, her voice is like sunshine.
\ + Unbridled anger and sorrow at the unfairness of it all fills you as you leave the cell."), + "Forget" = list(FALSE, "But you can't forget. Not until you've atoned."), + ) var/reset_time = 4 MINUTES //Qliphoth resets after this time. To prevent bugs diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm b/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm index 314cb432ed0d..04f6e35dad8c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/beanstalk.dm @@ -30,10 +30,10 @@ observation_prompt = "You remember an employee was obsessed with this abnormality.
\"\ If you reach the top, you'll find what you've been looking for!\", He'd tell every employee.
\ One day he did climb the beanstalk, and never came back down.
Perhaps he's doing okay up there." - observation_choices = list("Climb the beanstalk", "Chop it down") - correct_choices = list("Chop it down") //TODO: Make this event a bit special - observation_success_message = "If something's too big to understand, it's too big to be allowed to exist. The axe bites into the stem..." - observation_fail_message = "You begin to climb the beanstalk, but no matter how much you climb there's always more stalk. You peer at the clouds, squinting your eyes, but still can't see anyone..." + observation_choices = list( //TODO: Make this event a bit special + "Chop it down" = list(TRUE, "If something's too big to understand, it's too big to be allowed to exist. The axe bites into the stem..."), + "Climb the beanstalk" = list(FALSE, "You begin to climb the beanstalk, but no matter how much you climb there's always more stalk. You peer at the clouds, squinting your eyes, but still can't see anyone..."), + ) var/climbing = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm index 38b325116ed8..f2fa64186a2b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/beauty_beast.dm @@ -36,12 +36,12 @@ These puddles are evidence of monster's futile struggle to end its life. \ \"Kill me. Stab me with that knife you have.\" The monster cannot talk. However, the soul trapped in it can talk and I can hear it. \ \"Why are you not helping me when you can hear me?\" The monster asks reproachfully." - observation_choices = list("Because I don't have a knife.", "Because this problem can't be solved with death.") - correct_choices = list("Because this problem can't be solved with death.") - observation_success_message = "'That's not important. Every single second is an agony for me. \ - Death is a prize compared to this endless pain.' \"But you are right. It is your job to solve it. Not mine.\" \ - \"Child, would you make a promise? Would you free me from this cycle when you are ready?\"" - observation_fail_message = "You are lying. You know you can pull out that knife out from your pocket whenever you want." + observation_choices = list( + "Because this problem can't be solved with death" = list(TRUE, "'That's not important. Every single second is an agony for me. \ + Death is a prize compared to this endless pain.' \"But you are right. It is your job to solve it. Not mine.\" \ + \"Child, would you make a promise? Would you free me from this cycle when you are ready?\""), + "Because I don't have a knife" = list(FALSE, "You are lying. You know you can pull out that knife out from your pocket whenever you want."), + ) var/injured = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm index eb0badeb1c16..444089e1e7d7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/blood_bath.dm @@ -4,8 +4,17 @@ icon = 'ModularTegustation/Teguicons/48x64.dmi' icon_state = "bloodbath" portrait = "blood_bath" - maxHealth = 400 - health = 400 + maxHealth = 1000 + health = 1000 + move_to_delay = 3 + attack_sound = 'sound/abnormalities/ichthys/slap.ogg' + attack_verb_continuous = "mauls" + attack_verb_simple = "maul" + melee_damage_lower = 6 + melee_damage_upper = 12 + melee_damage_type = WHITE_DAMAGE + damage_coeff = list(RED_DAMAGE = 1.6, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1.4, PALE_DAMAGE = 1.5) + ranged = TRUE threat_level = TETH_LEVEL work_chances = list( ABNORMALITY_WORK_INSTINCT = list(55, 55, 50, 50, 50), @@ -32,12 +41,14 @@ One of problems, one of them was numbing.
People believed they could live happy life.
\ People believed they could buy sadness and sell happiness with money.
When the first suicide happened, we should have known that these beliefs had been shattered.
\ Many hands float in the bath.
Hands that wanted to grab something but could not.
You......" - observation_choices = list("Grabbed a hand", "Did not grab a hand") - correct_choices = list("Grabbed a hand") - observation_success_message = "I feel coldness and stiffness.
I know these hands.
These are the hands of people I once loved." - observation_fail_message = "You looked away.
This is not the first time you ignore them.
It will be the same afterwards." + observation_choices = list( + "Grabbed a hand" = list(TRUE, "I feel coldness and stiffness.
I know these hands.
These are the hands of people I once loved."), + "Did not grab a hand" = list(FALSE, "You looked away.
This is not the first time you ignore them.
It will be the same afterwards."), + ) var/hands = 0 + var/can_act = TRUE + var/special_attack_cooldown /mob/living/simple_animal/hostile/abnormality/bloodbath/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) // any work performed with level 1 Fort and Temperance makes you panic and die @@ -67,3 +78,50 @@ datum_reference.max_boxes = max_boxes icon_state = "bloodbath" return + +/mob/living/simple_animal/hostile/abnormality/bloodbath/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type != BREACH_MINING && breach_type != BREACH_PINK) + return + if(breach_type == BREACH_PINK) + maxHealth = 4000 + melee_damage_lower = 20 + melee_damage_upper = 40 + ..() + icon_state = "bloodbath_DF" + pixel_x = -8 + base_pixel_x = -8 + update_icon() + +/mob/living/simple_animal/hostile/abnormality/bloodbath/OpenFire() + if(!can_act) + return + if(special_attack_cooldown > world.time) + return + BloodBathSlam() + +/mob/living/simple_animal/hostile/abnormality/bloodbath/proc/BloodBathSlam()//weaker version of the DF form + if(!can_act) + return + special_attack_cooldown = world.time + 5 SECONDS + can_act = FALSE + for(var/turf/L in view(3, src)) + new /obj/effect/temp_visual/cult/sparks(L) + playsound(get_turf(src), 'sound/abnormalities/ichthys/jump.ogg', 100, FALSE, 6) + icon_state = "bloodbath_slamprepare" + SLEEP_CHECK_DEATH(12) + for(var/turf/T in view(3, src)) + var/obj/effect/temp_visual/small_smoke/halfsecond/FX = new(T) + FX.color = "#b52e19" + for(var/mob/living/carbon/human/H in HurtInTurf(T, list(), 50, WHITE_DAMAGE, null, null, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE)) + if(H.sanity_lost) + H.gib() + playsound(get_turf(src), 'sound/abnormalities/bloodbath/Bloodbath_EyeOn.ogg', 125, FALSE, 6) + icon_state = "bloodbath_slam" + SLEEP_CHECK_DEATH(3) + icon_state = "bloodbath_DF" + can_act = TRUE + +/mob/living/simple_animal/hostile/abnormality/bloodbath/Move() + if(!can_act) + return FALSE + ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/book.dm b/code/modules/mob/living/simple_animal/abnormality/teth/book.dm index 580e9768ee69..47c473aa6274 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/book.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/book.dm @@ -6,6 +6,7 @@ portrait = "book" maxHealth = 600 health = 600 + blood_volume = 0 start_qliphoth = 2 threat_level = TETH_LEVEL work_chances = list( @@ -27,10 +28,10 @@ observation_prompt = "It's just a stupid rumour.
\"If you fill it in whatever way, then the book will grant one wish!\"
\ All the newbies crow, waiting for their chance to fill the pages with their wishes.
\ You open the book and read through every wish, splotched with ink and tears, every employee had, living and dead, wrote..." - observation_choices = list("Tear out the wishes", "Write your own wish") - correct_choices = list("Write your own wish") - observation_success_message = "You take out the pen from your pocket and write down your wish. It'll never come true but that's why it will always remain a wish." - observation_fail_message = "You tear out their wishes one by one. The book's page count remains the same. Did your wish come true?" + observation_choices = list( + "Write your own wish" = list(TRUE, "You take out the pen from your pocket and write down your wish. It'll never come true but that's why it will always remain a wish."), + "Tear out the wishes" = list(FALSE, "You tear out their wishes one by one. The book's page count remains the same. Did your wish come true?"), + ) var/wordcount = 0 var/list/oddities = list() //List gets populated with friendly animals @@ -41,6 +42,9 @@ ) var/meltdown_cooldown //no spamming the meltdown effect var/meltdown_cooldown_time = 30 SECONDS + var/breaching = FALSE + var/summon_count = 0 + /mob/living/simple_animal/hostile/abnormality/book/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) if(work_type == ABNORMALITY_WORK_REPRESSION) @@ -103,6 +107,23 @@ if((initial(abno.threat_level)) <= TETH_LEVEL) nasties += abno +/mob/living/simple_animal/hostile/abnormality/book/Life() + . = ..() + if(!breaching) + return + if(summon_count > 15) + qdel(src) + return + if((meltdown_cooldown < world.time) && !(status_flags & GODMODE)) + MeltdownEffect() + meltdown_cooldown = world.time + meltdown_cooldown_time + +/mob/living/simple_animal/hostile/abnormality/book/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/book/CanAttack(atom/the_target) + return FALSE + /mob/living/simple_animal/hostile/abnormality/book/proc/RipPages() var/mob/living/simple_animal/newspawn if(wordcount >= 3) @@ -133,12 +154,13 @@ spawnedmob.health = spawnedmob.maxHealth spawnedmob.death_message = "collapses into a bunch of writing material." spawnedmob.filters += filter(type="drop_shadow", x=0, y=0, size=1, offset=0, color=rgb(0, 0, 0)) + spawnedmob.blood_volume = 0 src.visible_message(span_warning("Pages of [src] fold into [spawnedmob]!")) playsound(get_turf(src), 'sound/items/handling/paper_pickup.ogg', 90, 1, FALSE) /mob/living/simple_animal/hostile/abnormality/book/ZeroQliphoth(mob/living/carbon/human/user) datum_reference.qliphoth_change(start_qliphoth) //no need for qliphoth to be stuck at 0 - if(meltdown_cooldown > world.time) + if(meltdown_cooldown < world.time) return meltdown_cooldown = world.time + meltdown_cooldown_time MeltdownEffect() @@ -151,3 +173,9 @@ sleep(0.5 SECONDS) newspawn = pick(nasties) SpawnMob(newspawn) + if(breaching) + summon_count += 1 + +/mob/living/simple_animal/hostile/abnormality/book/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + breaching = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/cherry_blossoms.dm b/code/modules/mob/living/simple_animal/abnormality/teth/cherry_blossoms.dm index 163b6159af74..106f715a0a38 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/cherry_blossoms.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/cherry_blossoms.dm @@ -33,12 +33,12 @@ observation_prompt = "The tree is adorned with beautiful leaves growing here and there.
\ The kind of sight you could never even hope to see in this dark and dreary place.
\ You can take a moment to take in the beauty before you begin to work." - observation_choices = list("Take in the beauty") - correct_choices = list("Take in the beauty") - observation_success_message = "You feel refreshed after just taking a moment to watch such a beautiful thing.
\ - This doesn't mean that you don't know that this is a dangerous abnormality.
\ - There is beauty even in great and terrible things.
\ - Even the bodies underneath this tree would agree with you." + observation_choices = list( + "Take in the beauty" = list(TRUE, "You feel refreshed after just taking a moment to watch such a beautiful thing.
\ + This doesn't mean that you don't know that this is a dangerous abnormality.
\ + There is beauty even in great and terrible things.
\ + Even the bodies underneath this tree would agree with you."), + ) var/number_of_marks = 5 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/cinderella.dm b/code/modules/mob/living/simple_animal/abnormality/teth/cinderella.dm index 751804e318af..9b1f3614964d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/cinderella.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/cinderella.dm @@ -38,14 +38,13 @@ (You sit and wait.)
\ Do you not need me anymore? Did I not take you to the happiest night of your life?
\ (You sit and...)" - observation_choices = list("Remember that night", "Wait") - correct_choices = list("Remember that night") - observation_success_message = "Yes, it was the happiest night of both our lives...
\ - (The colour returns to your flesh and your wheels begin to mend.)
\ - Let's go back to that wonderous, magical night..." - observation_fail_message = "She still may have need of me, I'll wait until I'm called.
\ - (Your flesh turns grey, no one will need such a horrid looking carriage.)" - + observation_choices = list( + "Remember that night" = list(TRUE, "Yes, it was the happiest night of both our lives...
\ + (The colour returns to your flesh and your wheels begin to mend.)
\ + Let's go back to that wonderous, magical night..."), + "Wait" = list(FALSE, "She still may have need of me, I'll wait until I'm called.
\ + (Your flesh turns grey, no one will need such a horrid looking carriage.)"), + ) var/freshness = 0 //Breach stuff diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm b/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm index 9f7d4dfae5d3..5235bf64a41b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/cleaner.dm @@ -54,16 +54,16 @@ The model next to mine boasted that it has multiple parts that others don't.
\ Is that what makes one special?
\ Am I special the way I am?" - observation_choices = list("You are special", "You are not special") - correct_choices = list("You are not special") - observation_success_message = "\"Am I not special, not special, not special?\"
\ - After giving a lagged reply, it suddenly began tearing off all the cleaning gadgets from its body and crashing into walls.
\ - It rubbed its body on other objects while sparks flew off as if it was trying to attach things to it.
\ - It only stopped after a while.
\ - \"Maybe I wanted to be special.\"" - observation_fail_message = "\"No. I am not special.\"
\ - Disregarding the answer, it gives a stern reply.
\ - \"I will keep living an ordinary life, the same as now, just as assigned to me.\"" + observation_choices = list( + "You are not special" = list(TRUE, "\"Am I not special, not special, not special?\"
\ + After giving a lagged reply, it suddenly began tearing off all the cleaning gadgets from its body and crashing into walls.
\ + It rubbed its body on other objects while sparks flew off as if it was trying to attach things to it.
\ + It only stopped after a while.
\ + \"Maybe I wanted to be special.\""), + "You are special" = list(FALSE, "\"No. I am not special.\"
\ + Disregarding the answer, it gives a stern reply.
\ + \"I will keep living an ordinary life, the same as now, just as assigned to me.\""), + ) var/bumpdamage = 10 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm index d6ebb1ab472e..8c6bd5b4fa33 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/crumbling_armor.dm @@ -31,10 +31,10 @@ secret_icon_state = "megalovania" observation_prompt = "The armor that took away many people's lives is sitting in front of you.
You can put it on, if you wish." - observation_choices = list("Put it on", "Dont't put it on") - correct_choices = list("Put it on") - observation_success_message = "It seems like you were not pacifist.
You feel the armor's warm welcome." - observation_fail_message = "The armor waits for another reckless one." + observation_choices = list( + "Put it on" = list(TRUE, "It seems like you were not pacifist.
You feel the armor's warm welcome."), + "Dont't put it on" = list(FALSE, "The armor waits for another reckless one."), + ) var/buff_icon = 'ModularTegustation/Teguicons/tegu_effects.dmi' var/user_armored @@ -49,15 +49,14 @@ ..() gift_type = null -/mob/living/simple_animal/hostile/abnormality/crumbling_armor/ObservationResult(mob/living/carbon/human/user, condition) +/mob/living/simple_animal/hostile/abnormality/crumbling_armor/ObservationResult(mob/living/carbon/human/user, success, reply) . = ..() - if(condition) + if(success) var/datum/ego_gifts/recklessCourage/R = new user.Apply_Gift(R) if(!armor_dispensed) // You only get one of these. Ever. new /obj/item/clothing/suit/armor/ego_gear/he/crumbling_armor(get_turf(user)) armor_dispensed = TRUE - datum_reference.observation_ready = FALSE /mob/living/simple_animal/hostile/abnormality/crumbling_armor/SuccessEffect(mob/living/carbon/human/user, work_type, pe) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm b/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm index 1853b9590e85..46b4915a51bf 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/dealerdamned.dm @@ -32,10 +32,10 @@ observation_prompt = "You awaken to a building flooded with stimulation; guests mingle and drink as slot machines whirr and blare their tunes, drowning out the mourning of those who have lost it all.
\ Amidst all this, you find yourself sat in front of a poker table, already in the middle of a game. The Dealer turns to you, eagerly awaiting your next move." - observation_choices = list("Call", "Fold") - correct_choices = list("Call") - observation_success_message = "You call, confident your hand is enough to win. However, you lose, beat by none other than a Royal Flush. Despite this loss, you continue to play, confident your luck will eventually turn around..." - observation_fail_message = "You fold, wishing to cling to what little remains of your wealth. Despite lacking any facial features, you can feel the Dealer's disappointment..." + observation_choices = list( + "Call" = list(TRUE, "You call, confident your hand is enough to win. However, you lose, beat by none other than a Royal Flush. Despite this loss, you continue to play, confident your luck will eventually turn around..."), + "Fold" = list(FALSE, "You fold, wishing to cling to what little remains of your wealth. Despite lacking any facial features, you can feel the Dealer's disappointment..."), + ) //Coinflip V1; Expect Jank /mob/living/simple_animal/hostile/abnormality/dealerdamned/funpet(mob/petter) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/dingle_dangle.dm b/code/modules/mob/living/simple_animal/abnormality/teth/dingle_dangle.dm index c9e959226555..35656f5928bd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/dingle_dangle.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/dingle_dangle.dm @@ -29,11 +29,14 @@ abnormality_origin = ABNORMALITY_ORIGIN_WONDERLAB observation_prompt = "You pass by the containment cell and, in the corner of your eye, spy your comrades dangling from ribbons, furiously scratching at their necks in choked agony." - observation_choices = list("Save them", "Do not save them") - correct_choices = list("Save them", "Do not save them") - observation_success_message = "Regardless of your resolution, you find yourself before the tree anyway as one of its ribbons wrap around your neck.
\ - \"Let's dangle together, let your sorrows, your pain dangle, let's all dangle down...\"
It whispers into your mind.
\ - Your comrades were never here, the life passes from your body painlessly.
None of this is real." + observation_choices = list( + "Save them" = list(TRUE, "Regardless of your resolution, you find yourself before the tree anyway as one of its ribbons wrap around your neck.
\ + \"Let's dangle together, let your sorrows, your pain dangle, let's all dangle down...\"
It whispers into your mind.
\ + Your comrades were never here, the life passes from your body painlessly.
None of this is real."), + "Do not save them" = list(TRUE, "Regardless of your resolution, you find yourself before the tree anyway as one of its ribbons wrap around your neck.
\ + \"Let's dangle together, let your sorrows, your pain dangle, let's all dangle down...\"
It whispers into your mind.
\ + Your comrades were never here, the life passes from your body painlessly.
None of this is real."), + ) //Introduction to our hallucinations. This is a global hallucination, but it's all it really does. /mob/living/simple_animal/hostile/abnormality/dingledangle/ZeroQliphoth(mob/living/carbon/human/user) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm b/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm index ff6d8c9c05c2..03dbd1608667 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/drowned_sisters.dm @@ -30,10 +30,12 @@ observation_prompt = "You sit cross-legged before the pair, flowers conceal their faces and expression.
\ \"Ahh, woe is us. We have become sinners. Please hear us, hear of our sins that we do not know we've committed, and absolve us of our grief...\"" - observation_choices = list("Listen to their story", "Don't listen") - correct_choices = list("Listen to their story", "Don't listen") - observation_success_message = "You exit the cell, their story leaving your mind and voices on the wind but their sorrow remains.
\ - You'll be back again and still won't understand their grief." + observation_choices = list( + "Listen to their story" = list(TRUE, "You exit the cell, their story leaving your mind and voices on the wind but their sorrow remains.
\ + You'll be back again and still won't understand their grief."), + "Don't listen" = list(TRUE, "You exit the cell, their story leaving your mind and voices on the wind but their sorrow remains.
\ + You'll be back again and still won't understand their grief."), + ) var/breaching = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/faelantern.dm b/code/modules/mob/living/simple_animal/abnormality/teth/faelantern.dm index 71d826514fe1..cb67dc588028 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/faelantern.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/faelantern.dm @@ -10,6 +10,7 @@ portrait = "faelantern" maxHealth = 1200 health = 1200 + blood_volume = 0 base_pixel_x = -16 pixel_x = -16 threat_level = TETH_LEVEL @@ -45,16 +46,15 @@ A small fairy with a green glow sits atop it.
\ Saying no words, the fairy waves at you, inviting you to come over and take a break.
\ It looked like it was smiling, and it might have been dancing." - observation_choices = list("Take a momentary break", "Move on without resting", "Take a break where you're standing") - correct_choices = list("Move on without resting") - observation_success_message = "This is no time to be careless and stop here.
\ - Tree branches came at you to halt you from leaving, but you narrowly dodged them.
\ - You knew the real meaning of the fairy's gesture:
\ - \"There's no such thing as a free gift\"." - observation_fail_message = "The fairy's smile stretches into an eerie grin. You shouldn't have trusted its appearance and now you'll have to pay the price." - //Extra wrong answer - var/observation_fail_message_2 = "You ignore the beckoning fairy and take a short break where you stand.
\ - As you gather yourself to continue on the journey, you realize that several branches had grown in the premises, trapping you in." + observation_choices = list( + "Move on without resting" = list(TRUE, "This is no time to be careless and stop here.
\ + Tree branches came at you to halt you from leaving, but you narrowly dodged them.
\ + You knew the real meaning of the fairy's gesture:
\ + \"There's no such thing as a free gift\"."), + "Take a momentary break" = list(FALSE, "The fairy's smile stretches into an eerie grin. You shouldn't have trusted its appearance and now you'll have to pay the price."), + "Take a break where you're standing" = list(FALSE, "You ignore the beckoning fairy and take a short break where you stand.
\ + As you gather yourself to continue on the journey, you realize that several branches had grown in the premises, trapping you in."), + ) var/can_act = FALSE var/break_threshold = 450 @@ -68,13 +68,6 @@ var/stab_cooldown_time = 30 var/lured_list = list() -/mob/living/simple_animal/hostile/abnormality/faelantern/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer - if(answer == "Take a break where you're standing") - observation_fail_message = observation_fail_message_2 - else - observation_fail_message = initial(observation_fail_message) - return ..() - /mob/living/simple_animal/hostile/abnormality/faelantern/AttackingTarget(atom/attacked_target) return OpenFire() @@ -108,6 +101,12 @@ /mob/living/simple_animal/hostile/abnormality/faelantern/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() + if(breach_type == BREACH_MINING) + fairy_enabled = TRUE + fairy_health = health + can_act = TRUE + icon_state = icon_living + return INVOKE_ASYNC(src, PROC_REF(BreachDig)) return diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_gentleman.dm b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_gentleman.dm index 85b7c69b5b43..92ec524b8b6b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_gentleman.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_gentleman.dm @@ -48,11 +48,11 @@ ) observation_prompt = "\"Care for a drink?\"" - observation_choices = list("Yes", "No") - correct_choices = list("Yes") - observation_success_message = "\"Yer a good drinkin buddy as any!\"" - observation_fail_message = "\"Pssh! you're no fun!\"
\ - The fairy walks away, stumbling along the way." + observation_choices = list( + "Yes" = list(TRUE, "\"Yer a good drinkin buddy as any!\""), + "No" = list(FALSE, "\"Pssh! you're no fun!\"
\ + The fairy walks away, stumbling along the way."), + ) var/can_act = TRUE var/jump_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm index e8ec2b2f7284..d42c858169a0 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/fairy_long_legs.dm @@ -52,16 +52,16 @@ observation_prompt = "Come on, why don'cha stay under the umbrella with me?
\ Just for old times sake?" - observation_choices = list("Yes", "No") - correct_choices = list("No") - observation_success_message = "You'd think that you'd have learned your lesson by now.
\ - You leave the cell, having narrowly dodged the imminent attack.
\ - This guy will always be a crook." - observation_fail_message = "Ouch!
\ - The moment you get in striking range of fairy long legs, you are attacked.
\ - \"Heh. You really think you could be one of us, pal?\"
\ - \"You aint part of the family, chump.\"
\ - You walk away, and bandage the bleeding wound." + observation_choices = list( + "No" = list(TRUE, "You'd think that you'd have learned your lesson by now.
\ + You leave the cell, having narrowly dodged the imminent attack.
\ + This guy will always be a crook."), + "Yes" = list(FALSE, "Ouch!
\ + The moment you get in striking range of fairy long legs, you are attacked.
\ + \"Heh. You really think you could be one of us, pal?\"
\ + \"You aint part of the family, chump.\"
\ + You walk away, and bandage the bleeding wound."), + ) var/finishing = FALSE //cant move/attack when it's TRUE var/work_count = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm b/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm index 90c185e75414..451259091c4e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/falada.dm @@ -33,13 +33,13 @@ observation_prompt = "A severed horse-like creature's head hangs high on the wall, sobbing.
\ You can't help but feel some pity for the thing." - observation_choices = list("Why the long face?", "What happened to you?") - correct_choices = list("What happened to you?") - observation_success_message = "The horse head begins speaking.
\ - \"Oh, woe is me. If only it could be - the powers that be, would see fit to have me die in her stead.\"
\ - It speaks in rhymes, but it clearly lost someone important to it.
\ - Even if there is nothing you can do, at least you are there to listen." - observation_fail_message = "The horse head continues sobbing, despite your cheesy joke.
Maybe that wasn't the best approach." + observation_choices = list( + "What happened to you?" = list(TRUE, "The horse head begins speaking.
\ + \"Oh, woe is me. If only it could be - the powers that be, would see fit to have me die in her stead.\"
\ + It speaks in rhymes, but it clearly lost someone important to it.
\ + Even if there is nothing you can do, at least you are there to listen."), + "Why the long face?" = list(FALSE, "The horse head continues sobbing, despite your cheesy joke.
Maybe that wasn't the best approach."), + ) var/liked var/happy = TRUE @@ -69,6 +69,11 @@ datum_reference.qliphoth_change(1) return +/mob/living/simple_animal/hostile/abnormality/falada/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + pissed() + qdel(src) + /mob/living/simple_animal/hostile/abnormality/falada/WorkChance(mob/living/carbon/human/user, chance) if(happy) chance+=30 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_employee.dm b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_employee.dm index 1d9a304e2bac..d3badcc9f1c1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_employee.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_employee.dm @@ -32,14 +32,14 @@ The card is almost too battered and contaminated to recognize.
\ Wearing a box filled with Enkephalin on their head, the employee rams it into what looks like the door to a containment unit.
\ A rubber O-ring is worn around their neck. Could it be there to prevent Enkephalin from spilling?" - observation_choices = list("Cut the ring.", "Don't cut the ring.") - correct_choices = list("Cut the ring.") - observation_success_message = " The blade kept bouncing off the slippery O-ring...
\ - \"Brgrrgh...\
\ - And the submerged thing pushed you away and ran off. Did it prefer to stay like that?
\ - All it left was a small employee card." - observation_fail_message = "Tang- Tang- Tang- The ramming at the door and the sloshing continue.
\ - I keep watching and listening. A more attentive hearing reveals that the sounds have a rhythm. Perhaps there is delight to be found in it." + observation_choices = list( + "Cut the ring" = list(TRUE, "The blade kept bouncing off the slippery O-ring...
\ + \"Brgrrgh...\
\ + And the submerged thing pushed you away and ran off. Did it prefer to stay like that?
\ + All it left was a small employee card."), + "Don't cut the ring" = list(FALSE, "Tang- Tang- Tang- The ramming at the door and the sloshing continue.
\ + I keep watching and listening. A more attentive hearing reveals that the sounds have a rhythm. Perhaps there is delight to be found in it."), + ) /mob/living/simple_animal/hostile/abnormality/forsaken_employee/FailureEffect(mob/living/carbon/human/user, work_type, pe, work_time, canceled) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm index 5fb7606dbbbe..f5b66f540746 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/forsaken_murderer.dm @@ -97,13 +97,16 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY /** - * Final observation code. These variables should be self-explanatory. - */ + * Final observation code. + * observation_prompt controls the text that the user sees when they start the observation + * observation_choices is made in the format of: + * "Choice" = list(TRUE or FALSE [depending on if the answer is correct], "Response"), + */ observation_prompt = "Around his neck is a rope. It is up to you to cut his rope." - observation_choices = list("Cut the rope.", "Don't cut the rope.") - correct_choices = list("Don't cut the rope.") - observation_success_message = "His neck snaps, granting him silence and eternal rest." - observation_fail_message = "\"You think I'm pathetic, huh? But is you people who are really pathetic. Because you get killed. By people like me.\"" + observation_choices = list( + "Don't cut the rope" = list(TRUE, "His neck snaps, granting him silence and eternal rest."), + "Cut the rope" = list(FALSE, "\"You think I'm pathetic, huh? But is you people who are really pathetic. Because you get killed. By people like me.\""), + ) //Unique variable im defining for this abnormality. This is the timer for their during work emotes. var/work_emote_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm b/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm index ffc944680954..a94a67ccbff8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/fragment.dm @@ -39,11 +39,11 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY observation_prompt = "It started singing. You..." - observation_choices = list("Listen to it", "Plug your ears") - correct_choices = list("Listen to it") - observation_success_message = "You silently listen to it. \ - The universe lingers in your ears. You see the song. Glamorously, it approaches you." - observation_fail_message = "You are not prepared yet. The song stopped when you plugged the ears." + observation_choices = list( + "Listen to it" = list(TRUE, "You silently listen to it. \ + The universe lingers in your ears. You see the song. Glamorously, it approaches you."), + "Plug your ears" = list(FALSE, "You are not prepared yet. The song stopped when you plugged the ears."), + ) var/song_cooldown var/song_cooldown_time = 10 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm b/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm index 4adcdc3379d4..aec6beec7c07 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/lady_facing_the_wall.dm @@ -34,11 +34,10 @@ Her muttering is unintelligible, and it gives you goosebumps. You don't like being in the same space with her. \ You want to get out. The woman seems to be sobbing. You feel as though her crying is insisting you to turn towards her. \ And you also feel, that you should not." - observation_choices = list("Do not turn back.", "Turn back.") - correct_choices = list("Turn back.") - observation_success_message = "You face the fear, and turn to face the woman." - observation_fail_message = "Something terrible could happen if you turn back. You exit the room, without looking back." - + observation_choices = list( + "Turn back" = list(TRUE, "You face the fear, and turn to face the woman."), + "Do not turn back" = list(FALSE, "Something terrible could happen if you turn back. You exit the room, without looking back."), + ) /mob/living/simple_animal/hostile/abnormality/wall_gazer/NeutralEffect(mob/living/carbon/human/user, work_type, pe) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm b/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm index 1b5dbb190dc8..e1552988ee59 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/meat_lantern.dm @@ -39,10 +39,10 @@ observation_prompt = "It's always the same, dull colours in the facility. Grey walls, grey floors, grey ceilings, even the people were grey.
\ Every day was grey until, one day, you saw the a small, beautifully green flower growing and glowing from the ground." - observation_choices = list("Approach the flower", "Call for security") - correct_choices = list("Approach the flower") - observation_success_message = "It's the most beautiful thing you've ever seen, you brush your hand against it and the petals tickle your hand. You feel a tremor beneath and..." - observation_fail_message = "Something so beautiful had no right to exist in the City. You called for security and left in a hurry back to your grey workplace." + observation_choices = list( + "Approach the flower" = list(TRUE, "It's the most beautiful thing you've ever seen, you brush your hand against it and the petals tickle your hand. You feel a tremor beneath and..."), + "Call for security" = list(FALSE, "Something so beautiful had no right to exist in the City. You called for security and left in a hurry back to your grey workplace."), + ) var/can_act = TRUE var/detect_range = 1 @@ -146,6 +146,9 @@ return /mob/living/simple_animal/hostile/abnormality/meat_lantern/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING)//as funny as it sounds, this abnormality would be unreachable + qdel(src) + return . = ..() update_icon() density = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/my_sweet_home.dm b/code/modules/mob/living/simple_animal/abnormality/teth/my_sweet_home.dm index b53ba5801184..9fad97edcc9d 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/my_sweet_home.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/my_sweet_home.dm @@ -49,13 +49,13 @@ A perfect, safe place away from this scary room.
\ Everything for you.
\ Won't you come inside?" - observation_choices = list("Go inside", "Don't go inside") - correct_choices = list("Don't go inside") - observation_success_message = "Some things are too good to be true.
\ - You take the key from under the doormat, and leave." - observation_fail_message = "A key appears in your hand.
\ - You move to open the door.
\ - But at the last minute, you are pulled away by another agent to safety." + observation_choices = list( + "Don't go inside" = list(TRUE, "Some things are too good to be true.
\ + You take the key from under the doormat, and leave."), + "Go inside" = list(FALSE, "A key appears in your hand.
\ + You move to open the door.
\ + But at the last minute, you are pulled away by another agent to safety."), + ) var/ranged_damage = 15 var/damage_dealt = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm index e379c825ce46..d4121d654d65 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/old_lady.dm @@ -30,12 +30,12 @@ Because I don't like to listen to stories. Bugs were buzzing around here and there. \ Something slimy popped as I set my foot on it. I found her. Every hole on her face was swarming bugs. \ I don't want to stay here. I want to get out. It's damp, nasty, and awful. I can't stand it anymore." - observation_choices = list("Get out", "Stay") - correct_choices = list("Stay") - observation_success_message = "I stayed, bearing the unpleasantness. \ - She was so talkative before. In the end, loneliness was the only listener. \ - She called me, with her finger. I am now ready to listen to her story." - observation_fail_message = "I turned around to get out of this place. Once again, I bit lips in self-hatred while escaping." + observation_choices = list( + "Stay" = list(TRUE, "I stayed, bearing the unpleasantness. \ + She was so talkative before. In the end, loneliness was the only listener. \ + She called me, with her finger. I am now ready to listen to her story."), + "Get out" = list(FALSE, "I turned around to get out of this place. Once again, I bit lips in self-hatred while escaping."), + ) var/meltdown_cooldown_time = 120 SECONDS var/meltdown_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/pale_horse.dm b/code/modules/mob/living/simple_animal/abnormality/teth/pale_horse.dm index b3ace720687e..494912cc95ad 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/pale_horse.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/pale_horse.dm @@ -41,12 +41,12 @@ observation_prompt = "Joseph came to you once, his face flush with excitement after the horse wept before him. He's \"Nothing There\"'s shell now.
\ Did the horse merely prognosticate his death or did it doom him? You're outside the containment unit now and your legs tremble, you've been ordered to work it today.
\ You..." - observation_choices = list("Enter the containment unit", "Pretend you didn't get the order") - correct_choices = list("Enter the containment unit") - observation_success_message = "You enter the containment unit and kneel before the horse.
\ - It kneels next to you and a single tear drips from its eye onto your shoulder. You hold onto its head as you both weep.
\ - Death is terrifying but at least you know something weeps for you." - observation_fail_message = "You pretend you didn't get the order and make to leave, your PDA flashes again, you've been assigned to \"Nothing There\" and this time, you're being escorted." + observation_choices = list( + "Enter the containment unit" = list(TRUE, "You enter the containment unit and kneel before the horse.
\ + It kneels next to you and a single tear drips from its eye onto your shoulder. You hold onto its head as you both weep.
\ + Death is terrifying but at least you know something weeps for you."), + "Pretend you didn't get the order" = list(FALSE, "You pretend you didn't get the order and make to leave, your PDA flashes again, you've been assigned to \"Nothing There\" and this time, you're being escorted."), + ) //teleport var/can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm index 0f98c6e212f8..c190d7b3c524 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/penitent_girl.dm @@ -31,13 +31,13 @@ observation_prompt = "A girl in front of you dances, stumbling to and fro.
\ Her feet are chopped off at the ankles, and yet they still move.
\ You..." - observation_choices = list("Put on the shoes.", "Don't put on the shoes.") - correct_choices = list("Put on the shoes.") - observation_success_message = "You remove the severed feet, and put on the shoes.
\ - It feels good.
You want to dance.
Please, chop off my feet." - observation_fail_message = "How could you do something so gross?
\ - You leave the shoes where they are.
\ - The girl continues shifting about without a care in the world." + observation_choices = list( + "Put on the shoes" = list(TRUE, "You remove the severed feet, and put on the shoes.
\ + It feels good.
You want to dance.
Please, chop off my feet."), + "Don't put on the shoes" = list(FALSE, "How could you do something so gross?
\ + You leave the shoes where they are.
\ + The girl continues shifting about without a care in the world."), + ) //Work Mechanics /mob/living/simple_animal/hostile/abnormality/penitentgirl/AttemptWork(mob/living/carbon/human/user, work_type) diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/ppodae.dm b/code/modules/mob/living/simple_animal/abnormality/teth/ppodae.dm index 9aacdb8453c4..214808cebe5a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/ppodae.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/ppodae.dm @@ -35,18 +35,93 @@ ) gift_type = /datum/ego_gifts/cute abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY + attack_action_types = list(/datum/action/cooldown/ppodae_transform) observation_prompt = "Before me stands a creature, eagerly awaiting its next meal. The creature is..." - observation_choices = list("A puppy", "A monster") - correct_choices = list("A monster") - observation_success_message = "I don't know how I didn't see it before, I rushed out to warn the others. I was fired the next day." - observation_fail_message = "It's the cutest puppy I've ever seen." + observation_choices = list( + "A monster" = list(TRUE, "I don't know how I didn't see it before, I rushed out to warn the others. I was fired the next day."), + "A puppy" = list(FALSE, "It's the cutest puppy I've ever seen."), + ) var/smash_damage_low = 16 var/smash_damage_high = 28 var/smash_length = 2 var/smash_width = 1 var/can_act = TRUE + var/buff_form = TRUE + //Buff Form stuff + var/buff_resist_red = 0.5 + var/buff_resist_white = 0.5 + var/buff_resist_black = 0.5 + var/buff_resist_pale = 0.5 + var/buff_speed = 2 + var/can_slam = TRUE + //Cute Form stuff + var/cute_resist_red = 1.5 + var/cute_resist_white = 0.8 + var/cute_resist_black = 1 + var/cute_resist_pale = 2 + var/cute_speed = 1 + //Other Stuff + var/limb_heal = 0.1 + + +/mob/living/simple_animal/hostile/abnormality/ppodae/Login() + . = ..() + if(!. || !client) + return FALSE + to_chat(src, "

You are Ppodae, A Support/Combat Role Abnormality.


\ + |How adorable!|: You are able to switch between a 'Cute' and 'Buff' form. \ + Switching between forms has a 5 second cooldown and each time you switch forms you create smoke which lasts for 9 seconds.
\ +
\ + |Cute!|: While you are in your 'Cute' form, you have a MASSIVE speed boost and if you try to melee attack mechs or living mobs, you will crawl under them.
\ +
\ + |Strong!|: While you are in your 'Buff' form, you take 50% less damage from all attacks and you prefrom a 3x3 AoE attack when you try to melee attack, (Really good at breaking down Structures)
\ +
\ + |He's just Playing|: When you melee attack a unconscious or dead human body, you are able to tear off a limb, which heals you 10% of your max HP. (You can do this 4 time per body)
") + +/datum/action/cooldown/ppodae_transform + name = "Transform!" + icon_icon = 'icons/mob/actions/actions_abnormality.dmi' + button_icon_state = "ppodae_transform" + check_flags = AB_CHECK_CONSCIOUS + transparent_when_unavailable = TRUE + cooldown_time = 5 SECONDS + +/datum/action/cooldown/ppodae_transform/Trigger() + if(!..()) + return FALSE + if(!istype(owner, /mob/living/simple_animal/hostile/abnormality/ppodae)) + return FALSE + var/mob/living/simple_animal/hostile/abnormality/ppodae/ppodae = owner + if(ppodae.IsContained()) // No more using cooldowns while contained + return FALSE + StartCooldown() + if(ppodae.buff_form) + ppodae.buff_form = FALSE + ppodae.UpdateForm() + else + ppodae.buff_form = TRUE + ppodae.UpdateForm() + return TRUE + +/mob/living/simple_animal/hostile/abnormality/ppodae/proc/UpdateForm() + if(buff_form) + ChangeResistances(list(RED_DAMAGE = buff_resist_red, WHITE_DAMAGE = buff_resist_white, BLACK_DAMAGE = buff_resist_black, PALE_DAMAGE = buff_resist_pale)) + move_to_delay = buff_speed + icon_state = "ppodae_active" + can_slam = TRUE + else + ChangeResistances(list(RED_DAMAGE = cute_resist_red, WHITE_DAMAGE = cute_resist_white, BLACK_DAMAGE = cute_resist_black, PALE_DAMAGE = cute_resist_pale)) + move_to_delay = cute_speed + icon_state = "ppodae" + can_slam = FALSE + var/datum/effect_system/smoke_spread/smoke = new + smoke.set_up(1, src) + smoke.start() + qdel(smoke) + UpdateSpeed() + playsound(get_turf(src), 'sound/abnormalities/scaredycat/cateleport.ogg', 50, 0, 5) /mob/living/simple_animal/hostile/abnormality/ppodae/Move() if(!can_act) @@ -56,23 +131,49 @@ /mob/living/simple_animal/hostile/abnormality/ppodae/AttackingTarget(atom/attacked_target) if(!can_act) return FALSE - var/mob/living/carbon/L = attacked_target - if(iscarbon(attacked_target) && (L.health < 0 || L.stat == DEAD)) - if(HAS_TRAIT(L, TRAIT_NODISMEMBER)) + var/mob/living/carbon/L = target + if(IsCombatMap()) + if(iscarbon(target) && (L.stat == DEAD)) + LimbSteal(L) + return + else + if(iscarbon(target) && (L.health < 0 || L.stat == DEAD)) + LimbSteal(L) return - var/list/parts = list() - for(var/X in L.bodyparts) - var/obj/item/bodypart/bp = X - if(bp.body_part != HEAD && bp.body_part != CHEST) - if(bp.dismemberable) - parts += bp - if(length(parts)) - var/obj/item/bodypart/bp = pick(parts) - bp.dismember() - bp.forceMove(get_turf(datum_reference.landmark)) // Teleports limb to containment - QDEL_NULL(src) + // Taken from eldritch_demons.dm - return Smash(attacked_target) + if(IsCombatMap()) + if(can_slam) + return Smash(target) + else if(isvehicle(target)) + var/obj/vehicle/V = target + var/turf/target_turf = get_turf(V) + forceMove(target_turf) + manual_emote("crawls under [V]!") + else if (istype(target, /mob/living)) + if (target != src) + var/turf/target_turf = get_turf(target) + forceMove(target_turf) + manual_emote("crawls under [target]!") + else + return Smash(target) + +/mob/living/simple_animal/hostile/abnormality/ppodae/proc/LimbSteal(mob/living/carbon/L) + if(HAS_TRAIT(L, TRAIT_NODISMEMBER)) + return + var/list/parts = list() + for(var/X in L.bodyparts) + var/obj/item/bodypart/bp = X + if(bp.body_part != HEAD && bp.body_part != CHEST) + if(bp.dismemberable) + parts += bp + if(length(parts)) + var/obj/item/bodypart/bp = pick(parts) + bp.dismember() + if(IsCombatMap()) + adjustHealth(-(maxHealth * limb_heal)) + bp.forceMove(get_turf(datum_reference.landmark)) // Teleports limb to containment + QDEL_NULL(src) //AoE attack taken from woodsman /mob/living/simple_animal/hostile/abnormality/ppodae/proc/Smash(target) @@ -165,7 +266,7 @@ var/smash_damage = rand(smash_damage_low, smash_damage_high) for(var/turf/T in area_of_effect) new /obj/effect/temp_visual/smash_effect(T) - HurtInTurf(T, list(), smash_damage, RED_DAMAGE, check_faction = TRUE, hurt_mechs = TRUE) + HurtInTurf(T, list(), smash_damage, RED_DAMAGE, check_faction = TRUE, hurt_mechs = TRUE, hurt_structure = TRUE) playsound(get_turf(src), 'sound/abnormalities/ppodae/bark.wav', 100, 0, 5) playsound(get_turf(src), 'sound/abnormalities/ppodae/attack.wav', 50, 0, 5) SLEEP_CHECK_DEATH(0.5 SECONDS) @@ -185,3 +286,5 @@ . = ..() icon_state = "ppodae_active" GiveTarget(user) + if(IsCombatMap()) + UpdateForm() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/punishing_bird.dm b/code/modules/mob/living/simple_animal/abnormality/teth/punishing_bird.dm index 07af10bc6f7d..6c2fa3bc93ef 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/punishing_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/punishing_bird.dm @@ -60,9 +60,10 @@ ) observation_prompt = "A bird stares at you. What is the name of this bird?" - observation_choices = list("Little bird", "Punishing bird") - correct_choices = list("Little bird", "Punishing bird") - observation_success_message = "The small bird accepts whatever name you decide to give it. Its nature can never change now." + observation_choices = list( + "Little bird" = list(TRUE, "The small bird accepts whatever name you decide to give it. Its nature can never change now."), + "Punishing bird" = list(TRUE, "The small bird accepts whatever name you decide to give it. Its nature can never change now."), + ) do_not_possess = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/redblooded.dm b/code/modules/mob/living/simple_animal/abnormality/teth/redblooded.dm index f1d80feee7c4..4e9e4ee84a38 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/redblooded.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/redblooded.dm @@ -52,15 +52,19 @@ \"Blowing freakshits away with my shotgun.
Talking with my brothers in arms.\"
\ \"That's all I ever needed.
All I ever wanted.
Even now, I fight for the glory of my country.\"
\ \"Do you have anything, anyone, to serve and protect?\"" - observation_choices = list("I don't.", "I do.") - correct_choices = list("I do.") - observation_success_message = "\"Heh.\"
\ - \"We might not be on the same side but I can respect that.\"
\ - \"Go on then, freak.
Show me that you can protect what matters to you.\"" - observation_fail_message = "\"Feh.
Then what's the point of living, huh?\"
\ - \"Without a flag to protect, without a goal to achieve...\"
\ - \"Are you any better than an animal?
Get out of my sight.\"" + observation_choices = list( + "I do" = list(TRUE, "\"Heh.\"
\ + \"We might not be on the same side but I can respect that.\"
\ + \"Go on then, freak.
Show me that you can protect what matters to you.\""), + "I don't" = list(FALSE, "\"Feh.
Then what's the point of living, huh?\"
\ + \"Without a flag to protect, without a goal to achieve...\"
\ + \"Are you any better than an animal?
Get out of my sight.\""), + ) + var/ammo = 6 + var/max_ammo = 6 + var/reload_time = 2 SECONDS + var/last_reload_time = 0 var/bloodlust = 0 //more you do repression, more damage it deals. decreases on other works. var/list/fighting_quotes = list( "Go ahead, freakshit! Do your best!", @@ -86,6 +90,14 @@ "This is going to be fun!", ) +/mob/living/simple_animal/hostile/abnormality/redblooded/Login() + . = ..() + if(!. || !client) + return FALSE + to_chat(src, "

You are Red Blooded American, A Support Role Abnormality.


\ + |The American Way|: When you pick on a tile at least 2 sqrs away, You will consume 1 ammo to fire 6 pellets which deal 18 damage each.
\ + You passively reload 1 ammo every 2 seconds, but you can also reload 1 ammo by hitting humans or mechs.
") + /mob/living/simple_animal/hostile/abnormality/redblooded/AttemptWork(mob/living/carbon/human/user, work_type) work_damage_amount = 6 + bloodlust if(work_type == ABNORMALITY_WORK_REPRESSION) @@ -123,6 +135,27 @@ BreachEffect() return +//Breach +/mob/living/simple_animal/hostile/abnormality/redblooded/proc/Reload() + playsound(src, 'sound/weapons/gun/general/bolt_rack.ogg', 25, TRUE) + to_chat(src, span_nicegreen("You reload your shotgun...")) + ammo += 1 + +/mob/living/simple_animal/hostile/abnormality/redblooded/Life() + . = ..() + if (last_reload_time < world.time - reload_time) + last_reload_time = world.time + if (ammo < max_ammo) + Reload() + +/mob/living/simple_animal/hostile/abnormality/redblooded/AttackingTarget() + if(ammo < max_ammo) + if(isliving(target)) + Reload() + if(ismecha(target)) + Reload() + return ..() + /mob/living/simple_animal/hostile/abnormality/redblooded/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() icon_state = "american_aggro" @@ -134,9 +167,15 @@ return ..() /mob/living/simple_animal/hostile/abnormality/redblooded/OpenFire(atom/A) - if(get_dist(src, A) <= 2) + if(get_dist(src, A) >= 2) + if(ammo <= 0) + to_chat(src, span_warning("Out of ammo!")) + return FALSE + else + ammo -= 1 + return ..() + else return FALSE - return ..() //Projectiles /obj/item/ammo_casing/caseless/true_patriot @@ -152,3 +191,17 @@ damage_type = RED_DAMAGE damage = 8 + +/obj/item/ammo_casing/caseless/rcorp_true_patriot + name = "true patriot casing" + desc = "a true patriot casing" + projectile_type = /obj/projectile/rcorp_true_patriot + pellets = 6 + variance = 25 + +/obj/projectile/rcorp_true_patriot + name = "american pellet" + desc = "100% real, surplus military ammo." + damage_type = RED_DAMAGE + + damage = 18 diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm b/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm index c484b373ea5d..2ff651dd3346 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/scorched_girl.dm @@ -40,13 +40,13 @@ The match that never caught a fire before now burns to ash. Maybe is a price for taking my body, to burn so bright and fiery. \ Let's run when I can burn. I have been suffering and will suffer. But why you are still happy? \ I know the menace I have become. If nothing will change, I at least want to see you suffering." - observation_choices = list("Go to her", "Do not go to her") - correct_choices = list("Do not go to her") - observation_success_message = "I stopped. I can see her in the distance. \ - \"Maybe you are thinking I am some kind of lighthouse.\" \ - \"At least, I hope you realize my ash is all that remains after this flame consumes the all of me.\"" - observation_fail_message = "Come to me. \ - You who will soon become ashes just like me." + observation_choices = list( + "Do not go to her" = list(TRUE, "I stopped. I can see her in the distance. \ + \"Maybe you are thinking I am some kind of lighthouse.\" \ + \"At least, I hope you realize my ash is all that remains after this flame consumes the all of me.\""), + "Go to her" = list(FALSE, "Come to me. \ + You who will soon become ashes just like me."), + ) /// Restrict movement when this is set to TRUE var/exploding = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/shy_look.dm b/code/modules/mob/living/simple_animal/abnormality/teth/shy_look.dm index 0183a0c4ae90..54bbb65be449 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/shy_look.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/shy_look.dm @@ -30,10 +30,10 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY observation_prompt = "It's a good day! Are you still shy today?" - observation_choices = list("Yes", "No") - correct_choices = list("Yes") - observation_success_message = "\"That's no good, it's very important to have a smile on one's face! We need to be happy for our City!\"" - observation_fail_message = "\"That's great to hear! Let's see the biggest smile you can put on to make those in the Outskirts jealous!\"" + observation_choices = list( + "Yes" = list(TRUE, "\"That's no good, it's very important to have a smile on one's face! We need to be happy for our City!\""), + "No" = list(FALSE, "\"That's great to hear! Let's see the biggest smile you can put on to make those in the Outskirts jealous!\""), + ) var/chance_modifier = 1 var/previous_mood diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/simple_smile.dm b/code/modules/mob/living/simple_animal/abnormality/teth/simple_smile.dm index c609aabad6ee..c2f288f7a2a5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/simple_smile.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/simple_smile.dm @@ -44,14 +44,14 @@ abnormality_origin = ABNORMALITY_ORIGIN_WONDERLAB observation_prompt = "The abnormality appears to you from out of thin air, and swipes away your weapon." - observation_choices = list("Chase after it") - correct_choices = list("Chase after it") - observation_success_message = "You chase gone with a simple smile across the facility
\ - You trip and scrape your leg on the facility's floor.
\ - \"Well that wasn't very nice! You should apologize for so rudely disarming me, and having me run around like that!\"
\ - The words come out of your mouth before you even realize what is happening.
\ - And as if to answer, Gone with a Simple Smile hands your weapon back.
\ - Then, it disappears with a smile." + observation_choices = list( + "Chase after it" = list(TRUE, "You chase gone with a simple smile across the facility
\ + You trip and scrape your leg on the facility's floor.
\ + \"Well that wasn't very nice! You should apologize for so rudely disarming me, and having me run around like that!\"
\ + The words come out of your mouth before you even realize what is happening.
\ + And as if to answer, Gone with a Simple Smile hands your weapon back.
\ + Then, it disappears with a smile."), + ) var/list/stats = list( FORTITUDE_ATTRIBUTE, diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm b/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm index ff7b0cbeaca6..41050acbe1f6 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/skin_prophet.dm @@ -32,16 +32,16 @@ hands are busy nonetheless.
\ Yearning for destruction and doom, it writes and writes and writes.
\ You feel the passages it’s writing may be prophecies for someplace and sometime." - observation_choices = list("Snuff out the candles", "Peek at the book") - correct_choices = list("Snuff out the candles") - observation_success_message = "You hushed the candles, one by one.
\ - The space grew darker, but its hands won’t stop.
\ - The only light left was on the quill it held.
\ - Even that was snuffed by our breaths.
\ - Then, the whole place went dark.
\ - All that’s left is the pen in its hand." - observation_fail_message = "!@)(!@&)&*%(%@!@#*(#)*(%&!@#$
\ - @$*@)$ ?
@#$!!@#* !
@*()!%&$(^!!!!@&(@)" + observation_choices = list( + "Snuff out the candles" = list(TRUE, "You hushed the candles, one by one.
\ + The space grew darker, but its hands won’t stop.
\ + The only light left was on the quill it held.
\ + Even that was snuffed by our breaths.
\ + Then, the whole place went dark.
\ + All that’s left is the pen in its hand."), + "Peek at the book" = list(FALSE, "!@)(!@&)&*%(%@!@#*(#)*(%&!@#$
\ + @$*@)$ ?
@#$!!@#* !
@*()!%&$(^!!!!@&(@)"), + ) var/list/speak_list = list( "!@)(!@&)&*%(%@!@#*(#)*(%&!@#$", diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/so_that_no_cry.dm b/code/modules/mob/living/simple_animal/abnormality/teth/so_that_no_cry.dm index 0eb585b6018c..1345db7664cf 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/so_that_no_cry.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/so_that_no_cry.dm @@ -44,15 +44,15 @@ In this cramped cell, the wooden doll stands.
\ Are the talismans here to fulfill a wish?
\ Does this wooden doll wish for anything?" - observation_choices = list("Remove the doll's talismans", "Do nothing") - correct_choices = list("Remove the doll's talismans") - observation_success_message = "After you removed them, the doll knelt.
\ - Is it begging you not to take it,
\ - or is it a gesture of gratitude?
\ - You won’t know for now." - observation_fail_message = "Nothing happened.
\ - The doll would simply stand there, producing small noises.
\ - It now ignores you, as if disappointed." + observation_choices = list( + "Remove the doll's talismans" = list(TRUE, "After you removed them, the doll knelt.
\ + Is it begging you not to take it,
\ + or is it a gesture of gratitude?
\ + You won’t know for now."), + "Do nothing" = list(FALSE, "Nothing happened.
\ + The doll would simply stand there, producing small noises.
\ + It now ignores you, as if disappointed."), + ) var/can_act = TRUE /// When this reaches 400 - begins reflecting damage diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/someonesportrait.dm b/code/modules/mob/living/simple_animal/abnormality/teth/someonesportrait.dm index 7dd806c49ac4..847d2781e6dd 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/someonesportrait.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/someonesportrait.dm @@ -29,11 +29,11 @@ //TODO: Resprite + redo of this observation_prompt = "The portrait has been in our family's possession for a long time.
\ They say it was of a very important relative of ours, but we do not recognize anyone present.
I've always hated the picture, why couldn't anyone else see it was just biding its time, waiting to strike?" - observation_choices = list("Destroy the picture") - correct_choices = list("Destroy the picture") - observation_success_message = "One night, when everyone else was asleep, I snuck out of my room and found myself before that horrible thing.
\ - Retrieving a lighter from my pocket I flicked it on and held it to the painting...
\ - It turned out I was right, it was waiting to attack and I got into its striking range when no one else was around..." + observation_choices = list( + "Destroy the picture" = list(TRUE, "One night, when everyone else was asleep, I snuck out of my room and found myself before that horrible thing.
\ + Retrieving a lighter from my pocket I flicked it on and held it to the painting...
\ + It turned out I was right, it was waiting to attack and I got into its striking range when no one else was around..."), + ) //Initialize /mob/living/simple_animal/hostile/abnormality/someones_portrait/PostSpawn() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/spider_bud.dm b/code/modules/mob/living/simple_animal/abnormality/teth/spider_bud.dm index 7bb700d05279..21012c411d33 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/spider_bud.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/spider_bud.dm @@ -30,13 +30,13 @@ observation_prompt = "I am a spider.
I eat anything my web catches.
I am starving.
\ I haven't eaten anything for days.
There is a big prey hanging on my web.
\ My starvation could kill me if I don't eat something." - observation_choices = list("Eat the prey.", "Do not eat the prey.") - correct_choices = list("Do not eat the prey.") - observation_success_message = "I could not eat the prey in front of me.
\ - This starvation is slowly tiring me.
The prey struggles to get out, to survive.
\ - The struggle did nothing but shaking my web a little bit.
And I watch the prey." - observation_fail_message = "I devoured the prey.
\ - My body reacted faster than my thoughts.
...
I am a spider.
I eat anything my web catches." + observation_choices = list( + "Do not eat the prey" = list(TRUE, "I could not eat the prey in front of me.
\ + This starvation is slowly tiring me.
The prey struggles to get out, to survive.
\ + The struggle did nothing but shaking my web a little bit.
And I watch the prey."), + "Eat the prey" = list(FALSE, "I devoured the prey.
\ + My body reacted faster than my thoughts.
...
I am a spider.
I eat anything my web catches."), + ) /// Filled with ckeys of people who broke our cocoons, they need to pay if they dare mess with us var/list/metagame_list = list() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm index cf9ed70d7468..1937f3a91e42 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/training_rabbit.dm @@ -37,14 +37,14 @@ observation_prompt = "This is the training dummy that Lobotomy Corporation uses for training new agents.
\ But is that really all there is to it?
\ Looking closely, you find..." - observation_choices = list("A dead body?", "Nothing") - correct_choices = list("A dead body?") - observation_success_message = "The facial structure, the torso, arms and legs, not to mention the stench...
\ - There's no doubt that this is just a dead body in a body bag, flipped upside-down.
\ - In spite of all this, it provides a gift to you. It continues moving around as if it were alive.
\ - So this is what they call an abnormality.
\ - Are all abnormalities at Lobotomy Corporation this strange?" - observation_fail_message = "Your imagination must be going haywire due to the stress.
There's no way such an out-of-place thing could be there!" + observation_choices = list( + "A dead body?" = list(TRUE, "The facial structure, the torso, arms and legs, not to mention the stench...
\ + There's no doubt that this is just a dead body in a body bag, flipped upside-down.
\ + In spite of all this, it provides a gift to you. It continues moving around as if it were alive.
\ + So this is what they call an abnormality.
\ + Are all abnormalities at Lobotomy Corporation this strange?"), + "Nothing" = list(FALSE, "Your imagination must be going haywire due to the stress.
There's no way such an out-of-place thing could be there!"), + ) /mob/living/simple_animal/hostile/abnormality/training_rabbit/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm b/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm index 0b28cd1ba22c..984a073ab150 100644 --- a/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm +++ b/code/modules/mob/living/simple_animal/abnormality/teth/void_dream.dm @@ -40,10 +40,10 @@ I go out and bring such sweet dreams to those who've only learned to stop dreaming,
\ I'm not to blame if their dreams are so entrancing they become hollow people in their waking lives, am I not?
\ Don't you want such sweet dreams too?\"" - observation_choices = list("You're a demon", "Please, eat my dreams") - correct_choices = list("You're a demon") - observation_success_message = "\"Don't say such scary, complicated things.
I just gave them the enrapturing dreams they wanted.
They're destined to come back to me.\"" - observation_fail_message = "It's alright, dreams are harmless but unnecessary things.
So, just close your eyes and show me your most delectable dream..." + observation_choices = list( + "You're a demon" = list(TRUE, "\"Don't say such scary, complicated things.
I just gave them the enrapturing dreams they wanted.
They're destined to come back to me.\""), + "Please, eat my dreams" = list(FALSE, "It's alright, dreams are harmless but unnecessary things.
So, just close your eyes and show me your most delectable dream..."), + ) var/punched = FALSE var/pulse_damage = 50 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm b/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm index 96ccecb95f18..5cf708ad48a6 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/alriune.dm @@ -35,12 +35,11 @@ observation_prompt = "You told me, shedding petals instead of tears.
\ \"We were all nothing but soil once, so do not speak of an end here.\"
\ You told me, blossoming flowers from body as if they are your last words.
\"Soon...\"" - observation_choices = list("Spring will come.", "Winter will come.") - correct_choices = list("Spring will come.", "Winter will come.") - observation_success_message = "Spring is coming.
Slowly, rapturously, my end began." - //Special answer for choice 2 - var/observation_success_message_2 = "Winter is coming.
\ - Gradually, my exipation was drawing to an end hectically." + observation_choices = list( + "Spring will come" = list(TRUE, "Spring is coming.
Slowly, rapturously, my end began."), + "Winter will come" = list(TRUE, "Winter is coming.
\ + Gradually, my exipation was drawing to an end hectically."), + ) /// Currently displayed petals. When value is at 3 - reset to 0 and perform attack var/petals_current = 0 @@ -58,13 +57,6 @@ gift_type = /datum/ego_gifts/aroma abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY -/mob/living/simple_animal/hostile/abnormality/alriune/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer for winter - if(answer == "Winter will come.") - observation_success_message = observation_success_message_2 - else - observation_success_message = initial(observation_success_message) - return ..() - /* Combat */ /mob/living/simple_animal/hostile/abnormality/alriune/Move() @@ -160,7 +152,8 @@ /mob/living/simple_animal/hostile/abnormality/alriune/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() petals_next = world.time + petals_next_time + 30 - TeleportAway() + if(breach_type != BREACH_MINING)//in ER you get a few seconds to smack it down + TeleportAway() icon_state = "alriune_active" return diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm b/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm index f49b510ba790..8e75e6dcba6f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/apex_predator.dm @@ -50,14 +50,14 @@ You're not sure if it's even able to understand you.
Despite being shaped like a human, there's no face to relate to.
No eyes to look at.
\ Just the rough outline of a human.
\ Is there even anything you can say to it?" - observation_choices = list("Beat it up.", "Why?") - correct_choices = list("Why?") - observation_success_message = "The abnormality suddenly stops moving.
It doesn't quite know how to respond either.
\ - It stares down at the floor as if to contemplate the question.
\ - All it can offer is a shrug.
Perhaps there isn't an answer." - observation_fail_message = "There's nothing to say.
A crash test dummy's only purpose is to enable violence.
\ - Violence for the sake of violence.
\ - You smile as you pull out your baton." + observation_choices = list( + "Why?" = list(TRUE, "The abnormality suddenly stops moving.
It doesn't quite know how to respond either.
\ + It stares down at the floor as if to contemplate the question.
\ + All it can offer is a shrug.
Perhaps there isn't an answer."), + "Beat it up" = list(FALSE, "There's nothing to say.
A crash test dummy's only purpose is to enable violence.
\ + Violence for the sake of violence.
\ + You smile as you pull out your baton."), + ) var/revealed = TRUE var/can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/babayaga.dm b/code/modules/mob/living/simple_animal/abnormality/waw/babayaga.dm index 4593c2ee1f94..91efb80b28ad 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/babayaga.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/babayaga.dm @@ -40,11 +40,11 @@ Seeing little recourse, you follow them to a palace made of ice, surrounded by a fence made out of various bones.
\ The palace stands on the precipice of life and death.
You know this palace and who it belongs to.
\ A terrifying witch lives here." - observation_choices = list("Knock on the door", "Keep wandering the blizzard") - correct_choices = list("Knock on the door") - observation_success_message = "You can't keep shivering in the cold forever.
You knock on the door..." - observation_fail_message = "You keep wandering the blizzard, the cold continuing to sap your strength.
\ - Eventually you collapse in the snow, your whole body frozen.
Ahh...
There's no more pain..." + observation_choices = list( + "Knock on the door" = list(TRUE, "You can't keep shivering in the cold forever.
You knock on the door..."), + "Keep wandering the blizzard" = list(FALSE, "You keep wandering the blizzard, the cold continuing to sap your strength.
\ + Eventually you collapse in the snow, your whole body frozen.
Ahh...
There's no more pain..."), + ) var/jump_cooldown = 0 var/jump_cooldown_time = 35 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm index 194fa292f1d7..e3daa7ab1947 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/big_bird.dm @@ -63,11 +63,11 @@ For monsters could come, hurting creatures at any time.
By the time eyes covered the whole body of the big bird, no one was around for it to protect.
\ To shine the light in this dark forest, the big bird burned every single feather it had to make an everlasting lamp.
\ The big bird now could hardly be called a bird now, it has no feathers at all." - observation_choices = list("Don't pet it", "Pet it") - correct_choices = list("Pet it") - observation_success_message = "It was not soft actually, it gave you chills.
You felt eyes looking at you with curiosity.
\ - Eyes started closing as you pet the bird.
The big bird, for the first time in a very long time, peacefully fell asleep." - observation_fail_message = "The bird could get angry and bite you.
You ran out of the room in fear." + observation_choices = list( + "Pet it" = list(TRUE, "It was not soft actually, it gave you chills.
You felt eyes looking at you with curiosity.
\ + Eyes started closing as you pet the bird.
The big bird, for the first time in a very long time, peacefully fell asleep."), + "Don't pet it" = list(FALSE, "The bird could get angry and bite you.
You ran out of the room in fear."), + ) var/bite_cooldown var/bite_cooldown_time = 8 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm b/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm index f678dbc1adb1..35956de77d70 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/big_wolf.dm @@ -60,12 +60,12 @@ observation_prompt = "(You see a wolf with patchy fur)
\ I like it here.
At least it's better than where I used to live.
There are no pigs or chickens, but I don't have to be Big Bad Wolf, at least.
\ You didn't immediately kick me out, so I will tell you my name.
My name is..." - observation_choices = list("Forget the name", "Remember the name") - correct_choices = list("Remember the name") - observation_success_message = "It's no use to remember it.
Nobody cares about my name.
\ - (Even though the wolf said such a thing, it seems happy.)" - observation_fail_message = "You better watch out.
I can eat you with one bite if I want to.
\ - (The wolf seems unhappy)" + observation_choices = list( + "Remember the name" = list(TRUE, "It's no use to remember it.
Nobody cares about my name.
\ + (Even though the wolf said such a thing, it seems happy.)"), + "Forget the name" = list(FALSE, "You better watch out.
I can eat you with one bite if I want to.
\ + (The wolf seems unhappy)"), + ) var/can_act = TRUE //For when the wolf becomes incorporal and flees. diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm b/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm index aeb3656a878c..64d19f254283 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/black_swan.dm @@ -60,12 +60,12 @@ One day, her skin covered in blisters and her mouth oozing with spittle and pus, she passed by a lake, seemingly untouched by the pollution of the City.
\ Though her eyesight was almost ruined by fog and affliction, she could see it clearly.
\ Upon that lake were six white swans and a singular black swan. Elijah..." - observation_choices = list("Observed the white swans", "Observed the black swan") - correct_choices = list("Observed the black swan") - observation_success_message = "The black swan watches forlornly as her family takes flight, she's willing to give up everything for her family.
\ - Elijah embraces the near-finished nettle clothing wholeheartedly, soon..." - observation_fail_message = "The white swans were Elijah's favourite.
\ - They spread their wings and took flight to the sky, high above the fog, leaving the black swan behind. Elijah clutched her brooch tighter, she only had to work a little harder..." + observation_choices = list( + "Observed the black swan" = list(TRUE, "The black swan watches forlornly as her family takes flight, she's willing to give up everything for her family.
\ + Elijah embraces the near-finished nettle clothing wholeheartedly, soon..."), + "Observed the white swans" = list(FALSE, "The white swans were Elijah's favourite.
\ + They spread their wings and took flight to the sky, high above the fog, leaving the black swan behind. Elijah clutched her brooch tighter, she only had to work a little harder..."), + ) //family breach conditions var/insane_humans = 0 @@ -157,7 +157,8 @@ if(!LAZYLEN(teleport_potential)) return FALSE var/turf/teleport_target = pick(teleport_potential) - forceMove(teleport_target) + if(breach_type != BREACH_MINING) + forceMove(teleport_target) playsound(get_turf(src), 'sound/abnormalities/blackswan/sis_transformation.ogg', 30, 0, 4) return diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm b/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm index 878d3cf3dd27..cf055b52ddf1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/clouded_monk.dm @@ -44,9 +44,9 @@ abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY observation_prompt = "Are you a monk?" - observation_choices = list("I am no longer a monk") - correct_choices = list("I am no longer a monk") - observation_success_message = "A demon shall never reach Heaven." + observation_choices = list( + "I am no longer a monk" = list(TRUE, "A demon shall never reach Heaven."), + ) var/datum/looping_sound/cloudedmonk_ambience/soundloop var/charging = FALSE @@ -59,6 +59,7 @@ var/charge_damage = 350 var/eaten = FALSE var/damage_taken + var/slam_damage = 100 attack_action_types = list( /datum/action/innate/abnormality_attack/toggle/monk_charge, @@ -159,6 +160,7 @@ damage_taken += . if(damage_taken >= 200 && !charge_ready) charge_ready = TRUE + to_chat(src, span_userdanger("YOU ARE READY TO CHARGE!")) /mob/living/simple_animal/hostile/abnormality/clouded_monk/Goto(target, delay, minimum_distance) if(revving_charge || charging) @@ -239,7 +241,7 @@ SLEEP_CHECK_DEATH(get_dist(src, T) * movespeed) EndCharge() -/mob/living/simple_animal/hostile/abnormality/clouded_monk/proc/EndCharge() +/mob/living/simple_animal/hostile/abnormality/clouded_monk/proc/EndCharge(bump = FALSE) if(!charging) return charging = FALSE @@ -247,6 +249,22 @@ walk(src, 0) // cancel the movement icon_state = icon_aggro + if (!bump && SSmaptype.maptype == "rcorp") + var/turf/T = get_turf(src) + for(var/turf/TF in range(2, T))//Smash AOE visual + new /obj/effect/temp_visual/smash_effect(TF) + for(var/mob/living/L in range(2, T))//damage applied to targets in range + if(faction_check_mob(L)) + continue + if(L.z != z) + continue + visible_message(span_boldwarning("[src] slams [L]!")) + to_chat(L, span_userdanger("[src] slams you!")) + var/turf/LT = get_turf(L) + new /obj/effect/temp_visual/kinetic_blast(LT) + L.apply_damage(slam_damage,RED_DAMAGE, null, L.run_armor_check(null, RED_DAMAGE), spread_damage = TRUE) + playsound(L, 'sound/creatures/lc13/lovetown/slam.ogg', 75, 1) + /mob/living/simple_animal/hostile/abnormality/clouded_monk/proc/ResetCharge() monk_charge_cooldown = world.time + monk_charge_cooldown_time charge_ready = FALSE //redundancy is good @@ -276,11 +294,12 @@ playsound(src, 'sound/abnormalities/clouded_monk/eat_groggy.ogg', 75, 1) else L.adjustRedLoss(charge_damage/10) - EndCharge() + EndCharge(TRUE) ResetCharge() else if(isvehicle(A)) var/obj/vehicle/V = A - V.take_damage(charge_damage/10, RED_DAMAGE) + V.take_damage(charge_damage*1.5, RED_DAMAGE) for(var/mob/living/occupant in V.occupants) to_chat(occupant, span_userdanger("Your [V.name] is bit by [src]!")) + EndCharge(FALSE) return ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/clown_smiling.dm b/code/modules/mob/living/simple_animal/abnormality/waw/clown_smiling.dm index 9eb894acb704..83e4933ad0a4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/clown_smiling.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/clown_smiling.dm @@ -66,11 +66,11 @@ When I first met this thing, I started to understand how those people feel.
\ Right now, during my attachment work, it started its usual clown performance.
\ Things are looking good so far.
Out of its pocket, the clown pulls out..." - observation_choices = list("It's just a tool" ,"Run") - correct_choices = list("Run") - observation_success_message = "I bolted out of containment unit as fast as I could.
\ - I could hear giggling as I left.
But that was more than just a cruel prank." - observation_fail_message = "I thought it was a tool.
Just for that moment." + observation_choices = list( + "Run" = list(TRUE, "I bolted out of containment unit as fast as I could.
\ + I could hear giggling as I left.
But that was more than just a cruel prank."), + "It's just a tool" = list(FALSE, "I thought it was a tool.
Just for that moment."), + ) del_on_death = FALSE //for explosions var/finishing = FALSE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/contract.dm b/code/modules/mob/living/simple_animal/abnormality/waw/contract.dm index 37200420daf4..48d36318a091 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/contract.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/contract.dm @@ -33,17 +33,17 @@ The paper is a jumbled mess of words, you can't make out anything on it.
\ A pen appears in your hand.
\ The seems to be running out of patience.
Will you sign?" - observation_choices = list("Sign the contract", "Do not sign") - correct_choices = list("Do not sign") - observation_success_message = "You take a closer look at the contract
\ - There is a tiny clause in fine print
\ - \"Your soul becomes the property of a contract signed.\"
\ - At your refusal, the man sighs and hands you a new contract.
\ - This contract seems legitimate, so you sign." - observation_fail_message = "You sign the contract in haste.
\ - In a few moments, you feel as if a piece of you is missing.
\ - You walk out in a daze, unable to remember what the contract was about.
\ - Perhaps you should have read the fine print." + observation_choices = list( + "Do not sign" = list(TRUE, "You take a closer look at the contract
\ + There is a tiny clause in fine print
\ + \"Your soul becomes the property of a contract signed.\"
\ + At your refusal, the man sighs and hands you a new contract.
\ + This contract seems legitimate, so you sign."), + "Sign the contract" = list(FALSE, "You sign the contract in haste.
\ + In a few moments, you feel as if a piece of you is missing.
\ + You walk out in a daze, unable to remember what the contract was about.
\ + Perhaps you should have read the fine print."), + ) var/list/total_havers = list() var/list/fort_havers = list() @@ -52,6 +52,10 @@ var/list/just_havers = list() var/list/spawnables = list() var/total_per_contract = 4 + var/breaching + var/summon_count = 0 + var/summon_cooldown + var/summon_cooldown_time = 60 SECONDS /mob/living/simple_animal/hostile/abnormality/contract/Initialize() . = ..() @@ -65,6 +69,16 @@ if((initial(abno.threat_level)) <= WAW_LEVEL) spawnables += abno +/mob/living/simple_animal/hostile/abnormality/contract/Life() + . = ..() + if(!breaching) + return + if(summon_count > 4) + return + if((summon_cooldown < world.time) && !(status_flags & GODMODE)) + Summon() + summon_cooldown = world.time + summon_cooldown_time + /mob/living/simple_animal/hostile/abnormality/contract/WorkChance(mob/living/carbon/human/user, chance, work_type) . = chance if(!(user in total_havers)) @@ -147,8 +161,17 @@ //Meltdown /mob/living/simple_animal/hostile/abnormality/contract/ZeroQliphoth(mob/living/carbon/human/user) + Summon() + datum_reference.qliphoth_change(2) + +/mob/living/simple_animal/hostile/abnormality/contract/BreachEffect(mob/living/carbon/human/user, breach_type)//causes a runtime + if(breach_type == BREACH_MINING) + breaching = TRUE + ..() + +/mob/living/simple_animal/hostile/abnormality/contract/proc/Summon(mob/living/carbon/human/user) // Don't need to lazylen this. If this is empty there is a SERIOUS PROBLEM. - var/mob/living/simple_animal/hostile/abnormality/spawning = pick(spawnables) + var/mob/living/simple_animal/hostile/abnormality/spawning = pick(spawnables) var/mob/living/simple_animal/hostile/abnormality/spawned = new spawning(get_turf(src)) spawned.BreachEffect() spawned.color = "#000000" //Make it black to look cool @@ -156,7 +179,7 @@ spawned.desc = "What is that thing?" spawned.faction = list("hostile") spawned.core_enabled = FALSE - datum_reference.qliphoth_change(2) + summon_count += 1 /* Work effects */ /mob/living/simple_animal/hostile/abnormality/contract/SuccessEffect(mob/living/carbon/human/user, work_type, pe) @@ -167,7 +190,6 @@ work_damage_amount = initial(work_damage_amount) return - /mob/living/simple_animal/hostile/abnormality/contract/NeutralEffect(mob/living/carbon/human/user, work_type, pe) . = ..() NewContract(user, work_type) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/despair_knight.dm b/code/modules/mob/living/simple_animal/abnormality/waw/despair_knight.dm index 76fd03984a9f..94dc1c2701c4 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/despair_knight.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/despair_knight.dm @@ -50,11 +50,11 @@ observation_prompt = "I once dedicated myself to the justice of this world, to protect my king, the kingdom and the weak.
\ However in the end nothing was truly upheld on my watch.
Even so... I still want to protect someone, anyone..." - observation_choices = list("Accept her blessing", "Refuse it") - correct_choices = list("Refuse it") - observation_success_message = "Am I not needed anymore?
\ - No...
You're saying I should move on.
I don't know how, or if I can, but, perhaps things could turn out for the better.
We need only try." - observation_fail_message = "Thank you, though I am but a pitiful knight, I still yearn to protect, if I can't protect others, I may as well disappear..." + observation_choices = list( + "Refuse it" = list(TRUE, "Am I not needed anymore?
\ + No...
You're saying I should move on.
I don't know how, or if I can, but, perhaps things could turn out for the better.
We need only try."), + "Accept her blessing" = list(FALSE, "Thank you, though I am but a pitiful knight, I still yearn to protect, if I can't protect others, I may as well disappear..."), + ) var/mob/living/carbon/human/blessed_human = null var/teleport_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/dimension_refraction.dm b/code/modules/mob/living/simple_animal/abnormality/waw/dimension_refraction.dm index 848b8206e938..6d50202a8714 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/dimension_refraction.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/dimension_refraction.dm @@ -13,6 +13,7 @@ maxHealth = 1200 health = 1200 + blood_volume = 0 density = FALSE damage_coeff = list(RED_DAMAGE = 0, WHITE_DAMAGE = 1.5, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 1) stat_attack = HARD_CRIT @@ -40,12 +41,12 @@ observation_prompt = "It's invisible to almost all means of measurement, the only way I know it's there is due to the effect it has on the cup of water before me.
\ I calmly observe the chamber's surroundings and make adjustments when I notice the surface of the cup's liquid begin to bubble." - observation_choices = list("Stay and observe", "Exit the containment unit") - correct_choices = list("Stay and observe") - observation_success_message = "I continue to record my observations as the water rises up into the air, followed by the cup.
\ - The water folds into a sphere around the cup in a most immaculate manner before being violently dispersed, the cup shattering into infinitesmal fragments.
\ - I leave the chamber, satisfied with my observations." - observation_fail_message = "The manual says to leave the chamber immediately if the cup's condition becomes violent.
As I leave, the water falls still." + observation_choices = list( + "Stay and observe" = list(TRUE, "I continue to record my observations as the water rises up into the air, followed by the cup.
\ + The water folds into a sphere around the cup in a most immaculate manner before being violently dispersed, the cup shattering into infinitesmal fragments.
\ + I leave the chamber, satisfied with my observations."), + "Exit the containment unit" = list(FALSE, "The manual says to leave the chamber immediately if the cup's condition becomes violent.
As I leave, the water falls still."), + ) var/cooldown_time = 3 var/aoe_damage = 12 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/dreaming_current.dm b/code/modules/mob/living/simple_animal/abnormality/waw/dreaming_current.dm index 361a59cedc8d..ad59de2feaa6 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/dreaming_current.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/dreaming_current.dm @@ -45,11 +45,11 @@ observation_prompt = "My mom and dad took me to this place when I was very small, it smells strange and the people in it only wear white.
\ Mom says she and dad will come back for me very soon.
\ Today one of the men in the white clothing offers me the purple candy, it's grape-flavoured he says.
Grape is my favourite." - observation_choices = list("Eat the candy", "Don't eat the candy") - correct_choices = list("Eat the candy") - observation_success_message = "It's grape flavour, the grape is my favourite.
\ - When I eat the grape candy I imagine myself swimming in an ocean of colour.
Today, I think I'm going to go to the Sea..." - observation_fail_message = "I don't eat the candy given to me.
When will mom and dad come?
Why aren't they here?
It doesn't stop hurting,
I'm scared..." + observation_choices = list( + "Eat the candy" = list(TRUE, "It's grape flavour, the grape is my favourite.
\ + When I eat the grape candy I imagine myself swimming in an ocean of colour.
Today, I think I'm going to go to the Sea..."), + "Don't eat the candy" = list(FALSE, "I don't eat the candy given to me.
When will mom and dad come?
Why aren't they here?
It doesn't stop hurting,
I'm scared..."), + ) var/list/movement_path = list() var/list/been_hit = list() diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/ebony_queen.dm b/code/modules/mob/living/simple_animal/abnormality/waw/ebony_queen.dm index e79af2a806aa..d55d34a00ac7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/ebony_queen.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/ebony_queen.dm @@ -12,6 +12,7 @@ health = 2000 pixel_x = -16 base_pixel_x = -16 + blood_volume = 0 melee_damage_type = BLACK_DAMAGE melee_damage_lower = 35 melee_damage_upper = 45 @@ -53,12 +54,12 @@ Her plan was a success - her behated Snow White has fallen into a death-like state.
\ Is that all I was for?
To bring pain to others whilst never experiencing it myself?
\ I'm beginning to rot and feel pests and other lowly creatures make a meal out of me..." - observation_choices = list("Rot into nothing", "Don't accept the end") - correct_choices = list("Don't accept the end") - observation_success_message = "The impression of poison brings pause to the pests and even they no longer wish to remain with me.
\ - Petrified roots grow from within me and I gain some sense of being ambulatory.
I know now how long I had laid but I refuse to remain still.
\ - I shall find vengeance.
Bring me snow white..." - observation_fail_message = "An apple culminates when it shrivels up and attracts lesser creatures.
I'm just an apple, I can't change a thing." + observation_choices = list( + "Don't accept the end" = list(TRUE, "The impression of poison brings pause to the pests and even they no longer wish to remain with me.
\ + Petrified roots grow from within me and I gain some sense of being ambulatory.
I know now how long I had laid but I refuse to remain still.
\ + I shall find vengeance.
Bring me snow white..."), + "Rot into nothing" = list(FALSE, "An apple culminates when it shrivels up and attracts lesser creatures.
I'm just an apple, I can't change a thing."), + ) var/barrier_cooldown var/barrier_cooldown_time = 4 SECONDS @@ -141,7 +142,8 @@ /mob/living/simple_animal/hostile/abnormality/ebony_queen/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() - addtimer(CALLBACK(src, PROC_REF(TryTeleport)), 5) + if(breach_type != BREACH_MINING) + addtimer(CALLBACK(src, PROC_REF(TryTeleport)), 5) /mob/living/simple_animal/hostile/abnormality/ebony_queen/Move() if(!can_act) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/express_train.dm b/code/modules/mob/living/simple_animal/abnormality/waw/express_train.dm index a53015794a56..07f3c55663ee 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/express_train.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/express_train.dm @@ -33,10 +33,10 @@ observation_prompt = "The booking clerk who remains dauntingly quiet sells tickets for a train with no final destination.
\ There are no clocks to alert the arrival times, instead, there are some blinking lights.
\ \"Sir! Your ticket?\" The clerk behind the counter smothered in shadow, save for two pinpricks of amber light for eyes, holds out an unmarked ticket with its gangly appendage." - observation_choices = list("Take the ticket") - correct_choices = list("Take the ticket") - observation_success_message = "I took the ticket from his hand, it felt like a lead weight, and asked him when the train would arrive.
\ - \"Sooner than you'd like, later than you prepare for.
It comes for everyone Sir.\"
I hear the sound of a distant horn." + observation_choices = list( + "Take the ticket" = list(TRUE, "I took the ticket from his hand, it felt like a lead weight, and asked him when the train would arrive.
\ + \"Sooner than you'd like, later than you prepare for.
It comes for everyone Sir.\"
I hear the sound of a distant horn."), + ) var/meltdown_tick = 60 SECONDS var/meltdown_timer diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm index 08f611ee68c8..eab18f94e30b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/fire_bird.dm @@ -42,18 +42,17 @@ observation_prompt = "You can only hunt it wearing a thick blindfold, but even through the fabric you can track it by the light that manages to seep through and by the heat it radiates.
\ In your hands you carry a bow nocked with an arrow, it's your last one.
\ You've been pursuing your prey for days, you..." - observation_choices = list("Fire an arrow", "Take off your blindfold", "Do nothing") - correct_choices = list("Do nothing", "Take off your blindfold") - observation_success_message = "You watch and wait as the light and heat pass until only cold and darkness reign in the forest.
\ - Feeling safe, you remove your blindfold and find on the ground one of its radiant feathers.
\ - Bravo brave hunter, have you found what you were seeking?" - observation_fail_message = "You fire an arrow at what you percieve to be the source of the light and miss entirely.
You return empty-handed like so many hunters before you." - //Special answer for choice 2 - var/observation_success_message_2 = "Your curiosity gets the better of you.
\ - The sight of a mythological bird that no one has seen before is a prize no hunter has claimed.
\ - Steeling yourself, you remove the blindfold and immediately your vision is seared by the intensity of the light but you will yourself through the pain to catch a glimpse of what has long evaded every hunter's sight.
\ - The bird offers a tear for your efforts.
\ - Though your eyes may never recover, you have done what no hunter has dared to accomplish - captured it in your sight." + observation_choices = list( + "Do nothing" = list(TRUE, "You watch and wait as the light and heat pass until only cold and darkness reign in the forest.
\ + Feeling safe, you remove your blindfold and find on the ground one of its radiant feathers.
\ + Bravo brave hunter, have you found what you were seeking?"), + "Take off your blindfold" = list(TRUE, "Your curiosity gets the better of you.
\ + The sight of a mythological bird that no one has seen before is a prize no hunter has claimed.
\ + Steeling yourself, you remove the blindfold and immediately your vision is seared by the intensity of the light but you will yourself through the pain to catch a glimpse of what has long evaded every hunter's sight.
\ + The bird offers a tear for your efforts.
\ + Though your eyes may never recover, you have done what no hunter has dared to accomplish - captured it in your sight."), + "Fire an arrow" = list(FALSE, "You fire an arrow at what you percieve to be the source of the light and miss entirely.
You return empty-handed like so many hunters before you."), + ) var/pulse_cooldown var/pulse_cooldown_time = 1 SECONDS @@ -65,13 +64,6 @@ var/dash_damage = 220 var/list/been_hit = list() -/mob/living/simple_animal/hostile/abnormality/fire_bird/ObservationResult(mob/living/carbon/human/user, condition, answer) //borrowed from Bottle of Tears - if(answer == "Take off your blindfold") - observation_success_message = observation_success_message_2 - else - observation_success_message = initial(observation_success_message) - return ..() - //Initialize /mob/living/simple_animal/hostile/abnormality/fire_bird/HandleStructures() . = ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/flesh_idol.dm b/code/modules/mob/living/simple_animal/abnormality/waw/flesh_idol.dm index 7741f69fbc6f..3131e5f96cd7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/flesh_idol.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/flesh_idol.dm @@ -30,10 +30,10 @@ observation_prompt = "I've been praying for 7 days and 7 nights, my skin is taut from malnutrition, my eyes bloodshot from lack of sleep and my clothes soiled with my own filth.
\ Though my throat is so dry I cannot even maintain the chants I move my lips anyway.
\ Is anyone even listening?
Does my prayer reach Him?
All I ask for is a sign." - observation_choices = list("Stop praying", "Keep praying") - correct_choices = list("Stop praying") - observation_success_message = "No one is there, God does not reside here." - observation_fail_message = "If God truly loves us, he'll show us a sign." + observation_choices = list( + "Stop praying" = list(TRUE, "No one is there, God does not reside here."), + "Keep praying" = list(FALSE, "If God truly loves us, he'll show us a sign."), + ) var/work_count = 0 var/breach_count = 4 //when do you breach? diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/generalb.dm b/code/modules/mob/living/simple_animal/abnormality/waw/generalb.dm index c5dc7452cd8c..645ccee2eb0e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/generalb.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/generalb.dm @@ -45,13 +45,18 @@ Unquestioningly loyal, I follow my orders to the letter.
\ I even feel excited whenever I get a new order.
\ Why am I doing this all again?" - observation_choices = list("I fight to survive", "I fight out of loyalty") - correct_choices = list("I fight to survive","I fight out of loyalty") - observation_success_message = "Bees have a natural instinct to fight for their queen.
\ - It is not something as complicated as human emotion.
\ - Rather, it is a hormone produced by the queen.
\ - I will die the moment I leave the queendom.
\ - There is no other option but to remain unquestionably loyal." + observation_choices = list( + "I fight to survive" = list(TRUE, "Bees have a natural instinct to fight for their queen.
\ + It is not something as complicated as human emotion.
\ + Rather, it is a hormone produced by the queen.
\ + I will die the moment I leave the queendom.
\ + There is no other option but to remain unquestionably loyal."), + "I fight out of loyalty" = list(TRUE, "Bees have a natural instinct to fight for their queen.
\ + It is not something as complicated as human emotion.
\ + Rather, it is a hormone produced by the queen.
\ + I will die the moment I leave the queendom.
\ + There is no other option but to remain unquestionably loyal."), + ) var/fire_cooldown_time = 3 SECONDS //She has 4 cannons, fires 4 times faster than the artillery bees var/fire_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm b/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm index f6e25e918c58..7de78f1cf8ad 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/greed_king.dm @@ -38,15 +38,15 @@ Happiness of the world means happiness for me.
I'm trying to stay happy.
\ I don't care even if it got me to the point where I look like this.
Have you met my sisters?
We were always one.
\ We fought together, and shared a common goal.
By the way, are you happy now?" - observation_choices = list("Yes, I'm happy", "No, I'm not happy") - correct_choices = list("Yes, I'm happy") - observation_success_message = "(The egg shook violently)
\ - Don't lie.
Why have we been ruined like this if that's true?
\ - And why have you ended up like that?
My greed will not be sated with such flimsy conviction.
\ - But if your answer is a resolve for the future, and not just a statement of fact...
Things might change, slowly." - observation_fail_message = "I knew you were not happy.
\ - You are like me.
You trapped yourself inside of an egg, just like me.
\ - The amber-colored sky is beautiful.
Oh, I'm getting hungry again." + observation_choices = list( + "Yes, I'm happy" = list(TRUE, "(The egg shook violently)
\ + Don't lie.
Why have we been ruined like this if that's true?
\ + And why have you ended up like that?
My greed will not be sated with such flimsy conviction.
\ + But if your answer is a resolve for the future, and not just a statement of fact...
Things might change, slowly."), + "No, I'm not happy" = list(FALSE, "I knew you were not happy.
\ + You are like me.
You trapped yourself inside of an egg, just like me.
\ + The amber-colored sky is beautiful.
Oh, I'm getting hungry again."), + ) //Some Variables cannibalized from helper var/charge_check_time = 1 SECONDS @@ -54,6 +54,8 @@ var/dash_num = 50 //Mostly a safeguard var/list/been_hit = list() var/can_act = TRUE + var/initial_charge_damage = 800 + var/growing_charge_damage = 0 var/nihil_present = FALSE @@ -83,8 +85,8 @@ |Gilded Cage|: Your size is 3 by 3 tiles wide, however you can still fit in 1 by 1 areas.
\
\ |Endless Hunger|: When you click on a tile outside your melee range, you will start charging into the direction you clicked.
\ - There is a 1.5 second delay before you start charging, once you start charging into a direction you will constantly move in one direction.
\ - If human gets within your melee range while charging, you will instantly gib them. If a abnormality appears in your path, you will deal damage to them.
\ + Once you start charging into a direction you will constantly move in one direction.
\ + Initialy, your charge deal 200 RED damage, but for every tile you move you deal an extra 40 RED damage.
\ Your charge ends after you move into a wall, or any dense object. (RHINOS/OTHER ABNORMALITIES WILL STOP YOUR CHARGE)
") /datum/action/innate/abnormality_attack/kog_dash @@ -133,6 +135,7 @@ offsets_pixel_y = list("south" = -8, "north" = -8, "west" = -8, "east" = -8) transform = matrix(1.5, MATRIX_SCALE) SetOccupiedTiles(1, 1, 1, 1) + damage_effect_scale = 1.2 startTeleport() //Let's Spaghettioodle out of here /mob/living/simple_animal/hostile/abnormality/greed_king/proc/startTeleport() @@ -170,7 +173,7 @@ var/dir_to_target = get_cardinal_dir(get_turf(src), get_turf(target)) if(dir_to_target) can_act = FALSE - addtimer(CALLBACK(src, PROC_REF(charge), dir_to_target, 0, target), 2 SECONDS) + addtimer(CALLBACK(src, PROC_REF(charge), dir_to_target, 0, initial_charge_damage), 2 SECONDS) return return @@ -183,35 +186,10 @@ var/dir_to_target = get_cardinal_dir(get_turf(src), get_turf(target)) can_act = FALSE // do particle effect - if (IsCombatMap()) - manual_emote("starts shaking...") - SLEEP_CHECK_DEATH(15) - addtimer(CALLBACK(src, PROC_REF(warning_effect), get_turf(src), dir_to_target, 0, target), 0 SECONDS) - charge(dir_to_target, 0, target) + charge(dir_to_target, 0, initial_charge_damage) return -/obj/effect/temp_visual/cult/sparks/greed - duration = 4 - -/mob/living/simple_animal/hostile/abnormality/greed_king/proc/warning_effect(turf, move_dir, times_ran, target) - var/stop_warning = FALSE - if(times_ran >= dash_num) - stop_warning = TRUE - var/turf/T = get_step(turf, move_dir) - if(!T) - stop_warning = TRUE - return - if(T.density) - stop_warning = TRUE - for(var/obj/machinery/door/D in T.contents) - if(D.density) - stop_warning = TRUE - for(var/turf/open/R in range(1, T)) - new /obj/effect/temp_visual/cult/sparks/greed(R) - if (!stop_warning) - addtimer(CALLBACK(src, PROC_REF(warning_effect), T, move_dir, (times_ran + 1)), 1) - -/mob/living/simple_animal/hostile/abnormality/greed_king/proc/charge(move_dir, times_ran, target) +/mob/living/simple_animal/hostile/abnormality/greed_king/proc/charge(move_dir, times_ran, charge_damage) setDir(move_dir) var/stop_charge = FALSE if(times_ran >= dash_num) @@ -251,7 +229,7 @@ playsound(L, attack_sound, 75, 1) new /obj/effect/temp_visual/kinetic_blast(get_turf(L)) if(ishuman(L)) - L.deal_damage(800, RED_DAMAGE) + L.deal_damage(charge_damage, RED_DAMAGE) else L.adjustRedLoss(80) if(L.stat >= HARD_CRIT) @@ -278,7 +256,9 @@ playsound(src,'sound/effects/bamf.ogg', 70, TRUE, 20) for(var/turf/open/R in range(1, src)) new /obj/effect/temp_visual/small_smoke/halfsecond(R) - addtimer(CALLBACK(src, PROC_REF(charge), move_dir, (times_ran + 1)), 2) + if (IsCombatMap()) + charge_damage = charge_damage + growing_charge_damage + addtimer(CALLBACK(src, PROC_REF(charge), move_dir, (times_ran + 1), charge_damage), 2) /mob/living/simple_animal/hostile/abnormality/greed_king/proc/endCharge() can_act = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/hatred_queen.dm b/code/modules/mob/living/simple_animal/abnormality/waw/hatred_queen.dm index 26589e5d4daa..c1531ae5c317 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/hatred_queen.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/hatred_queen.dm @@ -62,13 +62,13 @@ observation_prompt = "Everyone likes me, every day someone new visits me and asks about my stories, the villains I've fought, the friends I've made, the adventures I've had.
\ They never grow tired of my stories but, hey is it always peaceful around here?
The world still needs me, doesn't it?" - observation_choices = list("The world still needs you", "The world doesn't need you") - correct_choices = list("The world doesn't need you") - observation_success_message = "...
Somehow I think I already knew that.
\ - I don't know if I can accept a world that doesn't love me as I love it.
Can I keep on loving the world, even if I'm no longer a real Magical Girl..?" - observation_fail_message = "I knew it! Whilst I'm here, no villains will go unpunished!
Just call on me anytime!..
\ - ...
\ - Why is still so peaceful..?" + observation_choices = list( + "The world doesn't need you" = list(TRUE, "...
Somehow I think I already knew that.
\ + I don't know if I can accept a world that doesn't love me as I love it.
Can I keep on loving the world, even if I'm no longer a real Magical Girl..?"), + "The world still needs you" = list(FALSE, "I knew it! Whilst I'm here, no villains will go unpunished!
Just call on me anytime!..
\ + ...
\ + Why is still so peaceful..?"), + ) var/obj/effect/qoh_wand/wand var/chance_modifier = 1 @@ -693,6 +693,8 @@ return ..() /mob/living/simple_animal/hostile/abnormality/hatred_queen/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + friendly = FALSE death_counter = 0 if(friendly) friendly = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/judgement_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/judgement_bird.dm index fed0cf1298f6..81031d835019 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/judgement_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/judgement_bird.dm @@ -52,11 +52,11 @@ observation_prompt = "\"Long Bird\" who lived in the forest didn't want to let creatures to be eaten by monsters.
\ His initial goal was pure, at least.
The forest began to be saturated by darkness.
His long vigil is saturated with memories and regrets." - observation_choices = list("Leave him be", "Console the bird") - correct_choices = list("Console the bird") - observation_success_message = "Long Bird put down his scales, that had been with him for a long time.
\ - The long-lasting judgement finally ends.
Long Bird slowly realizes the secrets behind the monster, and he waits.
For the forest that he will never take back." - observation_fail_message = "Long Bird sees through you, even though he is blind.
He is weighing your sins." + observation_choices = list( + "Console the bird" = list(TRUE, "Long Bird put down his scales, that had been with him for a long time.
\ + The long-lasting judgement finally ends.
Long Bird slowly realizes the secrets behind the monster, and he waits.
For the forest that he will never take back."), + "Leave him be" = list(FALSE, "Long Bird sees through you, even though he is blind.
He is weighing your sins."), + ) var/judgement_cooldown = 10 SECONDS var/judgement_cooldown_base = 10 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/little_prince.dm b/code/modules/mob/living/simple_animal/abnormality/waw/little_prince.dm index ef4b636338f0..15b3a426a9a1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/little_prince.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/little_prince.dm @@ -28,12 +28,12 @@ I have come across 15 billion light years to meet you.
\ However, a butterfly can only fly as high in the sky as the sun warms.
\ It does not know that it will crumble before it can reach the stars.
It fell from the sky and crushed into the ground." - observation_choices = list("Do nothing", "Become its friend") - correct_choices = list("Become its friend") - observation_success_message = "My voice can reach you unlike others.
\ - Come to me, step by step.
You will reach the stars if those steps continue." - observation_fail_message = "Many who tried to reach me got lost.
\ - Perhaps, we are standing on parallel lines.
Perhaps, we were looking at something that can never be reached." + observation_choices = list( + "Become its friend" = list(TRUE, "My voice can reach you unlike others.
\ + Come to me, step by step.
You will reach the stars if those steps continue."), + "Do nothing" = list(FALSE, "Many who tried to reach me got lost.
\ + Perhaps, we are standing on parallel lines.
Perhaps, we were looking at something that can never be reached."), + ) var/insight_count = 0 var/non_insight_count = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm b/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm index 69e549cfa40f..2a254b60a65f 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/luna.dm @@ -6,8 +6,8 @@ icon = 'ModularTegustation/Teguicons/96x48.dmi' icon_state = "dellaluna" portrait = "luna" - maxHealth = 400 - health = 400 + maxHealth = 4000 + health = 4000 damage_coeff = list(RED_DAMAGE = 1.2, WHITE_DAMAGE = 0, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) start_qliphoth = 3 threat_level = WAW_LEVEL @@ -33,15 +33,15 @@ observation_prompt = "You enter the containment unit as respectfully as you can, the woman by the piano does not acknowledge your presence, merely clutching her cane tighter.
\ \"Begin.\" She commands, her lips a tight thin line.
It's the first time she's ever spoken.
\ The piano waits for you expectantly." - observation_choices = list("Begin a performance", "Refuse") - correct_choices = list("Begin a performance") - observation_success_message = "You begin to play, there is no sheet music to guide you, you play the performance that you were always meant to play.
\ - It's haunting and beautiful,
terrifying yet entrancing.
\ - With every key press, your body feels heavier and heavier and with every step upon the shrunken heads for pedals, your mind grows slower and more sluggish.
\ - By the end of the performance, you're slumped over the keyboard with hardly the strength or wherewithal to move.
\ - Above the piano, through your fading vision, you can swear you see the moon.
\ - And you despair." - observation_fail_message = "She gives no indication of being disappointed.
Perhaps if you played, you might understand the truth behind yourself as she did." + observation_choices = list( + "Begin a performance" = list(TRUE, "You begin to play, there is no sheet music to guide you, you play the performance that you were always meant to play.
\ + It's haunting and beautiful,
terrifying yet entrancing.
\ + With every key press, your body feels heavier and heavier and with every step upon the shrunken heads for pedals, your mind grows slower and more sluggish.
\ + By the end of the performance, you're slumped over the keyboard with hardly the strength or wherewithal to move.
\ + Above the piano, through your fading vision, you can swear you see the moon.
\ + And you despair."), + "Refuse" = list(FALSE, "She gives no indication of being disappointed.
Perhaps if you played, you might understand the truth behind yourself as she did."), + ) var/performance = FALSE var/performance_length = 60 SECONDS @@ -50,6 +50,17 @@ var/breached_monster var/killspawn +/mob/living/simple_animal/hostile/abnormality/luna/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/luna/CanAttack(atom/the_target) + return FALSE + +/mob/living/simple_animal/hostile/abnormality/luna/death(gibbed) + if(breached_monster) + qdel(breached_monster) + ..() + /mob/living/simple_animal/hostile/abnormality/luna/NeutralEffect(mob/living/carbon/human/user, work_type, pe) . = ..() if(prob(50)) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/my_form_empties.dm b/code/modules/mob/living/simple_animal/abnormality/waw/my_form_empties.dm index 7e7cd7e3da92..873d5a4ff701 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/my_form_empties.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/my_form_empties.dm @@ -41,15 +41,15 @@ abnormality_origin = ABNORMALITY_ORIGIN_LIMBUS observation_prompt = "A bell occasionally tolls in the room.
\ -It's a heavy, subduing sound. You're unable to recognize its words.
\ -But, you feel that whatever it is, is not a joyous thing." - observation_choices = list("Listen closer.", "Repeat the mantras.") - correct_choices = list("Listen closer.") - observation_success_message = "You close your eyes and focus on the sound. What is is saying?
\ - This thing is uttering thoughts. Empty oneself by verbalizing one's thoughts.
\ - Expel everything within so that nothing remains." - observation_fail_message = "The statue won't move, no matter what happens around it.
\ - Though the tone of its mantra remains consistent, you knew its chants are imbued with a curse." + It's a heavy, subduing sound. You're unable to recognize its words.
\ + But, you feel that whatever it is, is not a joyous thing." + observation_choices = list( + "Listen closer" = list(TRUE, "You close your eyes and focus on the sound. What is is saying?
\ + This thing is uttering thoughts. Empty oneself by verbalizing one's thoughts.
\ + Expel everything within so that nothing remains."), + "Repeat the mantras" = list(FALSE, "The statue won't move, no matter what happens around it.
\ + Though the tone of its mantra remains consistent, you knew its chants are imbued with a curse.") + ) var/anatman_state = FALSE var/praying = FALSE @@ -178,7 +178,8 @@ But, you feel that whatever it is, is not a joyous thing." var/turf/T = pick(GLOB.department_centers) icon_state = icon_living soundloop.start() - forceMove(T) + if(breach_type != BREACH_MINING) + forceMove(T) for(var/i = 1, i <= minion_amount ,i++) var/karma_vis = new /obj/effect/karma_halo var/picked = pick(pick(possible_minion_list)) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/naked_nest.dm b/code/modules/mob/living/simple_animal/abnormality/waw/naked_nest.dm index 95019daad398..eac69e295017 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/naked_nest.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/naked_nest.dm @@ -46,12 +46,12 @@ observation_prompt = "In the beginning, a serpent tempted Eve with a bite of the forbidden fruit an act which cast Man out of the Garden of Eden.
\ Now all that remains of that fruit is a rotten, decayed mass squirming with more evil serpents." - observation_choices = list("Cover your mouth", "Take a bite") - correct_choices = list("Take a bite") - observation_success_message = "Mankind's sin began long ago but it was never the serpent that was evil, it only followed its nature as did Man.
\ - The serpents within the fruit paused and entered into your mouth with the bite, and evil took root - \ - it's hard to blame them for mistaking you for being the same as the fruit that has long been their home." - observation_fail_message = "They could infect you at any time through any orifice, you best leave in a hurry." + observation_choices = list( + "Take a bite" = list(TRUE, "Mankind's sin began long ago but it was never the serpent that was evil, it only followed its nature as did Man.
\ + The serpents within the fruit paused and entered into your mouth with the bite, and evil took root - \ + it's hard to blame them for mistaking you for being the same as the fruit that has long been their home."), + "Cover your mouth" = list(FALSE, "They could infect you at any time through any orifice, you best leave in a hurry."), + ) var/serpentsnested = 4 var/origin_cooldown = 0 diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/nosferatu.dm b/code/modules/mob/living/simple_animal/abnormality/waw/nosferatu.dm index f2acb88c7b3a..2ff2c0014b4e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/nosferatu.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/nosferatu.dm @@ -48,11 +48,11 @@ He seemed lost, wandering the backstreets in such finery made him a tempting target, I never realised it was everyone else who was in danger.
\ He wears the mask of humanity well, but a single drop of blood is all it took for him to reveal his ferocity.
\ \"It's too early for a nap...
Won't you join me and share the pleasure?\"
He asks, his lips still red with my blood." - observation_choices = list("Join the Danse Macabre") - correct_choices = list("Join the Danse Macabre") - observation_success_message = "Refusing wasn't an option and he smiles, raising his glass.
\ - \"A toast then! To a night when one is allowed to pursue all kinds of desire, a never-ending blood-red night!\"
\ - Blood....
The blood brings me eternal happiness, forfeiting false hope, let's forget all pretenses of humanity..." + observation_choices = list( + "Join the Danse Macabre" = list(TRUE, "Refusing wasn't an option and he smiles, raising his glass.
\ + \"A toast then! To a night when one is allowed to pursue all kinds of desire, a never-ending blood-red night!\"
\ + Blood....
The blood brings me eternal happiness, forfeiting false hope, let's forget all pretenses of humanity..."), + ) //work stuff var/feeding diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/orange_tree.dm b/code/modules/mob/living/simple_animal/abnormality/waw/orange_tree.dm index 7cacecfa10bb..d1e6cd0043af 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/orange_tree.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/orange_tree.dm @@ -38,10 +38,10 @@ observation_prompt = "Whenever I enter this containment cell, I find myself whisked away to Never Never Land by Peter Pan to join his merry band of Lost Boys.
\ I had forgotten all about him when I grew up, I want to stay longer..." - observation_choices = list("Stay", "Leave") - correct_choices = list("Leave") - observation_success_message = "Second to the right, and straight on till morning, I found my way back to where I'm supposed to - there's still work to be done." - observation_fail_message = "If no one comes to get me, I'll remain here - never noticing the passing of time..." + observation_choices = list( + "Leave" = list(TRUE, "Second to the right, and straight on till morning, I found my way back to where I'm supposed to - there's still work to be done."), + "Stay" = list(FALSE, "If no one comes to get me, I'll remain here - never noticing the passing of time..."), + ) var/datum/looping_sound/orangetree_ambience/soundloop diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/parasite_tree.dm b/code/modules/mob/living/simple_animal/abnormality/waw/parasite_tree.dm index 35d297bd9dbc..c273d98aa6e8 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/parasite_tree.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/parasite_tree.dm @@ -41,32 +41,24 @@ At the heart of the minituare forest you see a lush green tree with heavy, ripened fruit and a peaceful-looking face upon its trunk.
\ \"Hello, have you come here to recieve my blessing, too?\"
\ The voice on the wind (there is no wind) spoke, carrying a sweet, flowery scent asked. \"I just want to help you all, could you bring your friends to me as well?\" " - observation_choices = list("Accept the blessing and do as it asks", "Accept the blessing and refuse", "Refuse the blessing") - correct_choices = list("Accept the blessing and refuse") - observation_success_message = "\"You're a bad child, I don't need someone like you.\"
\ - Blessings should be given earnestly, not treated as an obligation.
You leave the chamber, pleased with yourself." - observation_fail_message = "\"If you say you've never had need of anyone's blessing, then that's a lie.\" The tree said, frowning deeply.
\ - \"... if you don't need my blessing then you're a bad person.
\ - There's nothing for you here, leave.\"
\ - You leave the verdant containment unit behind, the tree waits for someone else to fall into its snare." - //Extra wrong answers - var/observation_fail_message_2 = "You venture out and find some of your most trusting colleagues.
\ - \"Come with me, I have something wonderous to show you all\", you tell them as you bring them to stand before the tree, that same calm visage etched into its trunk.
\ - \"You're a good child, aren't you? Thank you for bringing these children to me.\"
\ - It says as you all stare rapturously at the bulbs about to flower. \"Let me gift you with something...\"
\ - I feel something sprout from my body..." + observation_choices = list( + "Accept the blessing and refuse" = list(TRUE, "\"You're a bad child, I don't need someone like you.\"
\ + Blessings should be given earnestly, not treated as an obligation.
You leave the chamber, pleased with yourself."), + "Refuse the blessing" = list(FALSE, "\"If you say you've never had need of anyone's blessing, then that's a lie.\" The tree said, frowning deeply.
\ + \"... if you don't need my blessing then you're a bad person.
\ + There's nothing for you here, leave.\"
\ + You leave the verdant containment unit behind, the tree waits for someone else to fall into its snare."), + "Accept the blessing and do as it asks" = list(FALSE, "You venture out and find some of your most trusting colleagues.
\ + \"Come with me, I have something wonderous to show you all\", you tell them as you bring them to stand before the tree, that same calm visage etched into its trunk.
\ + \"You're a good child, aren't you? Thank you for bringing these children to me.\"
\ + It says as you all stare rapturously at the bulbs about to flower. \"Let me gift you with something...\"
\ + I feel something sprout from my body..."), + ) var/origin_cooldown = 0 //null when compared to numbers is a eldritch concept so world.time cannot be more or less. var/static/list/blessed = list() //keeps track of status effected individuals var/static/list/minions = list() //keeps track of minions if suppressed forcefully -/mob/living/simple_animal/hostile/abnormality/parasite_tree/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer - if(answer == "Accept the blessing and do as it asks") - observation_fail_message = observation_fail_message_2 - else - observation_fail_message = initial(observation_fail_message) - return ..() - /mob/living/simple_animal/hostile/abnormality/parasite_tree/Initialize() . = ..() RegisterSignal(SSdcs, COMSIG_GLOB_ABNORMALITY_BREACH, PROC_REF(dropLeaf)) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/pygmalion.dm b/code/modules/mob/living/simple_animal/abnormality/waw/pygmalion.dm index b09f01c02142..63506a311ff1 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/pygmalion.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/pygmalion.dm @@ -46,9 +46,10 @@ observation_prompt = "The King Pygmalion prayed earnestly to the Goddess Aphrodite, wishing for the marble statue he had made and fallen in love to come to life.
\ She answered his prayer, bringing Galatea to life and united them in matrinomy.
\ What is the real name of the abnormality before you?" - observation_choices = list("Galatea", "Pygmalion") - correct_choices = list("Galatea", "Pygmalion") - observation_success_message = "Perhaps they sculpted each other." + observation_choices = list( + "Galatea" = list(TRUE, "Perhaps they sculpted each other."), + "Pygmalion" = list(TRUE, "Perhaps they sculpted each other."), + ) var/missing_prudence = 0 var/mob/living/carbon/human/sculptor = null @@ -165,7 +166,7 @@ if(client) to_chat(src, span_userdanger("The sculptor is in danger. It is now your duty to protect them!")) - threat_level = TETH_LEVEL + fear_level = TETH_LEVEL var/datum/attribute/user_attribute = sculptor.attributes[PRUDENCE_ATTRIBUTE] var/user_attribute_level = max(1, user_attribute.level) if (user_attribute_level > PRUDENCE_CAP) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/queen_bee.dm b/code/modules/mob/living/simple_animal/abnormality/waw/queen_bee.dm index 3b8db2c436bd..fb114b3aa202 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/queen_bee.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/queen_bee.dm @@ -35,30 +35,22 @@ ) observation_prompt = "There was one summer so hot and unpleasant.
Bees were busily flying around the beehive.
\ - They live for the only one queen.
\'Are they happy? Living only to work\' I asked myself.
Then someone answered." - observation_choices = list("They work to survive", "They work out of loyalty") - correct_choices = list("They work to survive", "They work out of loyalty") - observation_success_message = "They have no other option but to obey.
\ - For they know that the moment they leave the queendom, only death awaits them.
\ - It is years later that I found out that their unshakable loyalty is because of special pheromone which only queen can produce.
\ - Everything started when I began to study that pheromone." - //Special answer for choice 2. Yes, the same text is used multiple times intentionally. This is from legacy LC. - var/observation_success_message_2 = "Loyalty that bees possess is a natural instinct.
\ - If we find a way to control that instinct,
\ - Things will change.
\ - It is years later that I found out that their unshakable loyalty is because of special pheromone which only queen can produce.
\ - Everything started when I began to study that pheromone." + They live for the only one queen.
'Are they happy? Living only to work' I asked myself.
Then someone answered." + observation_choices = list( + "They work to survive" = list(TRUE, "They have no other option but to obey.
\ + For they know that the moment they leave the queendom, only death awaits them.
\ + It is years later that I found out that their unshakable loyalty is because of special pheromone which only queen can produce.
\ + Everything started when I began to study that pheromone."), + "They work out of loyalty" = list(TRUE, "Loyalty that bees possess is a natural instinct.
\ + If we find a way to control that instinct,
\ + Things will change.
\ + It is years later that I found out that their unshakable loyalty is because of special pheromone which only queen can produce.
\ + Everything started when I began to study that pheromone."), + ) var/datum/looping_sound/queenbee/soundloop var/breached_others = FALSE -/mob/living/simple_animal/hostile/abnormality/queen_bee/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer - if(answer == "They work out of loyalty") - observation_success_message = observation_success_message_2 - else - observation_success_message = initial(observation_success_message) - return ..() - /mob/living/simple_animal/hostile/abnormality/queen_bee/Initialize() . = ..() soundloop = new(list(src), TRUE) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/red_riding_mercenary.dm b/code/modules/mob/living/simple_animal/abnormality/waw/red_riding_mercenary.dm index bc4923fdefa0..02d1c4727e40 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/red_riding_mercenary.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/red_riding_mercenary.dm @@ -56,12 +56,12 @@ It has now been over four months. Now we get her for real. -Coxswain observation_prompt = "(The chamber is empty, except the Little Red Riding Hooded Mercenary, and her axe and gun. She seems exhausted)
\ Am I really alive?
What if I'm a ghost that doesn't even know it's dead?
\ The only thing I love in my life is the death of the wolf." - observation_choices = list("Exit the room", "Mourn for her memories") - correct_choices = list("Mourn for her memories") - observation_success_message = "I will swing my axe again tomorrow, still driven by hatred like I have been forever.
\ - But tonight, I think I can sleep peacefully." - observation_fail_message = "Knock on my door whenever you need my service.
\ - This is my struggle." + observation_choices = list( + "Mourn for her memories" = list(TRUE, "I will swing my axe again tomorrow, still driven by hatred like I have been forever.
\ + But tonight, I think I can sleep peacefully."), + "Exit the room" = list(FALSE, "Knock on my door whenever you need my service.
\ + This is my struggle."), + ) /* Red's targeting logic diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/rose_sign.dm b/code/modules/mob/living/simple_animal/abnormality/waw/rose_sign.dm index c0ec8662ac94..f8a19ef2ff6e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/rose_sign.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/rose_sign.dm @@ -39,22 +39,23 @@ observation_prompt = "What does this signboard say?
\ It hangs itself on a tree, trying to make its content known.
\ Its desperation is almost pitiable." - observation_choices = list("Pick a rose", "Unravel the brambles") - correct_choices = list("Pick a rose") - observation_success_message = "You pick a rose out of it.
\ - With closer examination, you notice
\ - that it has an intestinal texture.
\ - What is a flower-shaped organ for?" - observation_fail_message = "As you try to untangle the vines,
\ - sallow bits of flesh fall off.
\ - The thorny brambles you thought were a source of constricting pain
\ - ironically had been keeping the body together.
\ - The body writhes as its flesh falls apart.
\ - Blossoms of flowers sprawled on the ground substitute its screams." + observation_choices = list( + "Pick a rose" = list(TRUE, "You pick a rose out of it.
\ + With closer examination, you notice
\ + that it has an intestinal texture.
\ + What is a flower-shaped organ for?"), + "Unravel the brambles" = list(FALSE, "As you try to untangle the vines,
\ + sallow bits of flesh fall off.
\ + The thorny brambles you thought were a source of constricting pain
\ + ironically had been keeping the body together.
\ + The body writhes as its flesh falls apart.
\ + Blossoms of flowers sprawled on the ground substitute its screams."), + ) var/list/work_roses = list() var/list/work_damages = list() var/list/summoned_roses = list() + var/rose_type = /mob/living/simple_animal/hostile/rose_summoned var/rose_max = 4 var/rose_cooldown var/rose_cooldown_time = 160 SECONDS @@ -204,7 +205,10 @@ work_roses -= R qdel(R) var/turf/T = pick(GLOB.department_centers) - forceMove(T) + if(breach_type != BREACH_MINING)//TODO: create attacking roses for this breach type + forceMove(T) + else + rose_type = /mob/living/simple_animal/hostile/rose_summoned/combat /mob/living/simple_animal/hostile/abnormality/rose_sign/proc/PickTargets()//this is called by life() rose_cooldown = world.time + rose_cooldown_time @@ -227,11 +231,14 @@ sound_to_playing_players_on_level("sound/abnormalities/rosesign/rose_summon.ogg", 100, zlevel = z) /mob/living/simple_animal/hostile/abnormality/rose_sign/proc/SpawnBreachRose(mob/living/carbon/human/target, turf/T) + if(rose_type == /mob/living/simple_animal/hostile/rose_summoned/combat)//during a mining breach, these are spawned around players + T = get_ranged_target_turf(get_turf(target), pick(GLOB.alldirs), 1) if(locate(/mob/living/simple_animal/hostile/rose_summoned) in get_turf(T))//Needs to be tested in a multiplayer environment T = get_ranged_target_turf(T, pick(GLOB.alldirs), 1)//This will move the target's turf to an adjacent one, preventing stacking and visual clutter to some degree. var/list/flower_damtype = list() var/damtype - var/mob/living/simple_animal/hostile/rose_summoned/R = new(T)//Spawns the rose + var/mob/living/simple_animal/hostile/rose_summoned/R + R = new rose_type(T)//Spawns the rose summoned_roses += R for(var/obj/item/W in target.held_items + target.get_equipped_items())//Searches the human for any E.G.O and adds them to a list. if(is_ego_melee_weapon(W)) //FIXME!!!! The above line doesn't actually check suit storage slots, could be more efficient too @@ -338,6 +345,7 @@ pull_force = INFINITY generic_canpass = FALSE movement_type = PHASING | FLYING + damtype = BLACK_DAMAGE var/root_damage = 30 //Black Damage layer = POINT_LAYER//should always be visible. @@ -351,7 +359,7 @@ for(var/turf/T in view(0, target_turf)) new /obj/effect/temp_visual/thornspike(T) for(var/mob/living/L in T) - L.deal_damage(root_damage, BLACK_DAMAGE) + L.deal_damage(root_damage, damtype) if(L.stat == DEAD) if(L.has_status_effect(/datum/status_effect/stacking/crownthorns))//Stops a second crucifix from appearing L.remove_status_effect(STATUS_EFFECT_THORNS) @@ -362,6 +370,15 @@ N.buckle_mob(L) qdel(src) +/obj/effect/roseRoot/red + damtype = RED_DAMAGE + +/obj/effect/roseRoot/white + damtype = WHITE_DAMAGE + +/obj/effect/roseRoot/pale + damtype = PALE_DAMAGE + //***Breach Roses***// /mob/living/simple_animal/hostile/rose_summoned @@ -374,7 +391,7 @@ maxHealth = 500 health = 500 damage_coeff = list(RED_DAMAGE = 0.5, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 0.5) - del_on_death = FALSE + del_on_death = TRUE var/flower_damage_type var/mob/living/simple_animal/hostile/abnormality/rose_sign/master var/mob/living/status_target @@ -401,7 +418,7 @@ /mob/living/simple_animal/hostile/rose_summoned/CanAttack(atom/the_target) return FALSE -/mob/living/simple_animal/hostile/rose_summoned/death() +/mob/living/simple_animal/hostile/rose_summoned/Destroy() if(!killed || !status_target) return ..() if(flower_damage_type && master) @@ -409,10 +426,43 @@ master.ChangeResistance(flower_damage_type, (master.damage_coeff.getCoeff(flower_damage_type) + 0.3), update = TRUE) if(status_target.has_status_effect(/datum/status_effect/stacking/crownthorns)) status_target.remove_status_effect(STATUS_EFFECT_THORNS) - density = FALSE - animate(src, alpha = 0, time = 10 SECONDS) - QDEL_IN(src, 10 SECONDS) + return ..() + +/mob/living/simple_animal/hostile/rose_summoned/combat//mining breach variant + maxHealth = 1000 + health = 1000 + ranged = TRUE + var/root_type = /obj/effect/roseRoot + var/can_act = TRUE + +/mob/living/simple_animal/hostile/rose_summoned/combat/CanAttack(atom/the_target) + if(prob(30)) + return OpenFire() + +/mob/living/simple_animal/hostile/rose_summoned/combat/OpenFire() + if(!can_act) + return + rootBarrage(target)//Ebony queen-style basic attack + +/mob/living/simple_animal/hostile/rose_summoned/combat/PickColor(picked_color) ..() + switch(picked_color) + if(RED_DAMAGE) + root_type = /obj/effect/roseRoot/red + if(WHITE_DAMAGE) + root_type = /obj/effect/roseRoot/white + if(PALE_DAMAGE) + root_type = /obj/effect/roseRoot/pale + +/mob/living/simple_animal/hostile/rose_summoned/combat/proc/rootBarrage(target, picked_color)//Ebony queen's basic attack, fired at a low rate. + can_act = FALSE + playsound(get_turf(target), 'sound/creatures/venus_trap_hurt.ogg', 75, 0, 5) + SLEEP_CHECK_DEATH(3) + var/turf/target_turf = get_turf(target) + for(var/turf/T in view(0, target_turf)) + new root_type(T) + SLEEP_CHECK_DEATH(3) + can_act = TRUE //***Work-Based Roses***// /obj/structure/rose_work diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm b/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm index a69ac701449a..e87e1bbc8690 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/screenwriter.dm @@ -11,9 +11,13 @@ Defeating the murderer also surpresses the abnormality. icon = 'ModularTegustation/Teguicons/32x32.dmi' icon_state = "screenwriter" portrait = "screenwriter" + maxHealth = 4000 + health = 4000 + damage_coeff = list(RED_DAMAGE = 1.3, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1.3, PALE_DAMAGE = 1.5) faction = list("hostile") threat_level = WAW_LEVEL start_qliphoth = 2 + blood_volume = 0 work_chances = list( "Nutrition" = 35, "Cleanliness" = 35, @@ -40,9 +44,11 @@ Defeating the murderer also surpresses the abnormality. abnormality_origin = ABNORMALITY_ORIGIN_ARTBOOK //Technically it was in the beta but I dont want it showing it up in LC-only modes observation_prompt = "The play started long ago. Here is the man who killed many. And you are holding a gun." - observation_choices = list("Shoot the man", "Wait and see", "Shoot someone else") - correct_choices = list("Shoot the man", "Wait and see", "Shoot someone else") - observation_success_message = "Whether you shoot or not, the play ends with tragedy." //TODO: multiple texts + observation_choices = list( //TODO: multiple texts + "Shoot the man" = list(TRUE, "Whether you shoot or not, the play ends with tragedy."), + "Wait and see" = list(TRUE, "Whether you shoot or not, the play ends with tragedy."), + "Shoot someone else" = list(TRUE, "Whether you shoot or not, the play ends with tragedy."), + ) pet_bonus = "shuffles" //saves a few lines of code by allowing funpet() to be called by attack_hand() var/mob/living/simple_animal/hostile/actor/A @@ -56,6 +62,18 @@ Defeating the murderer also surpresses the abnormality. preferred_work_type = pick(work_chances) SpawnIcon() +/mob/living/simple_animal/hostile/abnormality/screenwriter/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/screenwriter/CanAttack(atom/the_target) + return FALSE + +/mob/living/simple_animal/hostile/abnormality/screenwriter/Destroy() + if(A) + A.death() + EndScenario() + return ..() + //Work stuff /mob/living/simple_animal/hostile/abnormality/screenwriter/AttemptWork(mob/living/carbon/human/user, work_type) if(A) @@ -110,6 +128,10 @@ Defeating the murderer also surpresses the abnormality. MeltdownEffect() return +/mob/living/simple_animal/hostile/abnormality/screenwriter/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + MeltdownEffect() + /mob/living/simple_animal/hostile/abnormality/screenwriter/proc/MeltdownEffect() var/turf/actor_location = pick(GLOB.department_centers) //Spawn the murderer A = new (actor_location) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm b/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm index 48b06b5b3e7a..e2535eceb423 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/shrimp.dm @@ -38,10 +38,12 @@ The shrimp offers you a champagne glass full of... Something.
\ It looks and smells like wellcheers grape soda. It's soda.
\ You can even see the can's label torn off and stuck on the side.
Will you drink it?" - observation_choices = list("Drink the soda","Refuse") - correct_choices = list("Drink the soda","Refuse") - observation_success_message = "Before you can make a choice, two gigantic and heavily armed shrimp guards bust in through the door.
\ - They hold you down and force you to drink the soda, and you fall asleep...
...
Somewhere in the distance, you hear seagulls." + observation_choices = list( + "Drink the soda" = list(TRUE, "Before you can make a choice, two gigantic and heavily armed shrimp guards bust in through the door.
\ + They hold you down and force you to drink the soda, and you fall asleep...
...
Somewhere in the distance, you hear seagulls."), + "Refuse" = list(TRUE, "Before you can make a choice, two gigantic and heavily armed shrimp guards bust in through the door.
\ + They hold you down and force you to drink the soda, and you fall asleep...
...
Somewhere in the distance, you hear seagulls."), + ) var/liked var/happy = TRUE @@ -118,6 +120,11 @@ datum_reference.qliphoth_change(1) return +/mob/living/simple_animal/hostile/abnormality/shrimp_exec/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + pissed() + addtimer(CALLBACK(src, PROC_REF(pissed)), 20 SECONDS) + /mob/living/simple_animal/hostile/abnormality/shrimp_exec/AttemptWork(mob/living/carbon/human/user, work_type) if(work_type == liked || !liked) happy = TRUE @@ -193,7 +200,7 @@ /mob/living/simple_animal/hostile/shrimp/Initialize() . = ..() - if(SSmaptype.maptype == "fixers" || SSmaptype.maptype == "city") + if(SSmaptype.maptype in SSmaptype.citymaps) del_on_death = FALSE //You can put these guys about to guard an area. @@ -229,7 +236,7 @@ /mob/living/simple_animal/hostile/shrimp_soldier/Initialize() . = ..() - if(SSmaptype.maptype == "fixers" || SSmaptype.maptype == "city") + if(SSmaptype.maptype in SSmaptype.citymaps) del_on_death = FALSE /mob/living/simple_animal/hostile/shrimp_soldier/friendly diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/silence.dm b/code/modules/mob/living/simple_animal/abnormality/waw/silence.dm index 9eea368f9e1c..ab4dfb18236b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/silence.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/silence.dm @@ -25,11 +25,11 @@ observation_prompt = "Time's wasting.
Time's running out...
They are nothing but meaningless tantrums.
\ The watch will not only take your lost time back, but also give you even more time." - observation_choices = list("Do not use the watch", "Use the watch") - correct_choices = list("Use the watch") - observation_success_message = "The price will follow to your decision.
It is designed this way." - observation_fail_message = "Actually, you have no right to refuse this gift.
\ - Whether you want it or not, we all know that you have to take it." + observation_choices = list( + "Use the watch" = list(TRUE, "The price will follow to your decision.
It is designed this way."), + "Do not use the watch" = list(FALSE, "Actually, you have no right to refuse this gift.
\ + Whether you want it or not, we all know that you have to take it."), + ) var/meltdown_cooldown_time = 13 MINUTES var/meltdown_cooldown diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/siltcurrent.dm b/code/modules/mob/living/simple_animal/abnormality/waw/siltcurrent.dm index 75dce523d231..e423b90b03ea 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/siltcurrent.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/siltcurrent.dm @@ -67,16 +67,16 @@ We were all abandoned, yes.
But we all had dreams, too.
Remember?
\ Well, let's make our dreams come true.
Let's sink together into the depths.\"
\ The dim fluorescent lights impaling the entity's back flicker." - observation_choices = list("Say that you will sink together", "Fix the entity's flickering fluorescent lights") - correct_choices = list("Fix the entity's flickering fluorescent lights") - observation_success_message = "\"I remember.
I've always wanted to run across a rolling field of grass under the warm sun.
\ - To swim across the vast ocean that I've seen only through pictures.
\ - That was my dream.
\ - My only dream.
\ - Now, if you ever recall a dream in which you wished to twinkle, even as a faint flicker...\"" - observation_fail_message = "You still fear the dark, don't you?
\ - I know that you will miss the surface, forever out of your reach once this fluorescent lamp dies.
\ - So do return once you're ready.\"" + observation_choices = list( + "Fix the entity's flickering fluorescent lights" = list(TRUE, "\"I remember.
I've always wanted to run across a rolling field of grass under the warm sun.
\ + To swim across the vast ocean that I've seen only through pictures.
\ + That was my dream.
\ + My only dream.
\ + Now, if you ever recall a dream in which you wished to twinkle, even as a faint flicker...\""), + "Say that you will sink together" = list(FALSE, "You still fear the dark, don't you?
\ + I know that you will miss the surface, forever out of your reach once this fluorescent lamp dies.
\ + So do return once you're ready.\""), + ) var/stunned = FALSE //Stuff relating to the dive attack diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/snow_whites_apple.dm b/code/modules/mob/living/simple_animal/abnormality/waw/snow_whites_apple.dm index a059d5072b52..b9aac2bf27ad 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/snow_whites_apple.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/snow_whites_apple.dm @@ -10,6 +10,7 @@ portrait = "snow_whites_apple" maxHealth = 1600 health = 1600 + blood_volume = 0 obj_damage = 0 damage_coeff = list(RED_DAMAGE = 0.5, WHITE_DAMAGE = 1.0, BLACK_DAMAGE = 0, PALE_DAMAGE = 1.5) ranged = TRUE @@ -59,24 +60,25 @@ Why does no one visit me?
Why does no one share my pain?
\ Why does no one like me?
I hope I had legs, no, it doesn't have to be legs.
\ All I want is to be able to move.
Oh, redemption......" - observation_choices = list("I shall go find it.", "It does not exist.") - correct_choices = list("It does not exist.") - observation_success_message = "This is unfair.
I want to be happy.
It's too painful to wait.
\ - It is my bane that no one is around me.
I want this misery to crush me to nonexistence.
\ - Some kind of legs sprouted out of me but I have no place to go.
However, I do not rot.
I cannot stop existing.
\ - I have to go, although I have no place to go.
I have to go.
I go." - - observation_fail_message = "From some moment, I realized I can walk.
\ - I see light.
I hear people.
I will be free from this torment.
For I will meet my redemption" + observation_choices = list( + "It does not exist" = list(TRUE, "This is unfair.
I want to be happy.
It's too painful to wait.
\ + It is my bane that no one is around me.
I want this misery to crush me to nonexistence.
\ + Some kind of legs sprouted out of me but I have no place to go.
However, I do not rot.
I cannot stop existing.
\ + I have to go, although I have no place to go.
I have to go.
I go."), + "I shall go find it" = list(FALSE, "From some moment, I realized I can walk.
\ + I see light.
I hear people.
I will be free from this torment.
For I will meet my redemption"), + ) initial_language_holder = /datum/language_holder/plant //essentially flavor var/togglemovement = FALSE var/toggleplants = TRUE + var/nightmare_mode = FALSE var/plant_cooldown = 30 var/hedge_cooldown = 0 var/hedge_cooldown_delay = FLORAL_BARRIER_COOLDOWN var/teleport_cooldown = 0 var/teleport_cooldown_delay = 60 SECONDS + var/can_teleport = TRUE //Spell automatically given to the abnormality. var/obj/effect/proc_holder/spell/pointed/apple_barrier/barrier_spell //All iterations share this list between eachother. @@ -96,6 +98,8 @@ /mob/living/simple_animal/hostile/abnormality/snow_whites_apple/BreachEffect(mob/living/carbon/human/user, breach_type) . = ..() update_icon() + if(breach_type == BREACH_MINING)//TODO: create attacking roses for this breach type + can_teleport = FALSE /mob/living/simple_animal/hostile/abnormality/snow_whites_apple/Initialize() . = ..() @@ -152,9 +156,18 @@ if(toggleplants) SpreadPlants() oldGrowth() - for(var/obj/structure/spreading/apple_vine/W in urange(15, get_turf(src))) + var/list/area_of_influence + if(nightmare_mode) + area_of_influence = vine_list + else + area_of_influence = urange(15, get_turf(src)) + for(var/obj/structure/spreading/apple_vine/W in area_of_influence) if(W.last_expand <= world.time) W.expand() + else if(nightmare_mode && ranged_cooldown <= world.time) + var/list/did_we_hit = HurtInTurf(get_turf(W), list(), 30, BLACK_DAMAGE, check_faction = TRUE, hurt_mechs = TRUE) + if(did_we_hit.len) + W.VineAttack(pick(did_we_hit)) if(teleport_cooldown <= world.time && !togglemovement && !client && !IsCombatMap()) TryTeleport() @@ -198,6 +211,8 @@ dir = 2 if(teleport_cooldown > world.time) return FALSE + if(!can_teleport) + return FALSE teleport_cooldown = world.time + teleport_cooldown_delay var/list/teleport_potential = TeleportList() if(!LAZYLEN(teleport_potential)) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/sphinx.dm b/code/modules/mob/living/simple_animal/abnormality/waw/sphinx.dm index 2c8d0e9f6148..6d5307692613 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/sphinx.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/sphinx.dm @@ -1,6 +1,4 @@ //Coded by Coxswain -#define SPHINX_GAZE_COOLDOWN (12 SECONDS) - /mob/living/simple_animal/hostile/abnormality/sphinx name = "Sphinx" desc = "A gigantic stone feline." @@ -21,18 +19,16 @@ melee_damage_lower = 70 melee_damage_upper = 100 attack_sound = 'sound/abnormalities/sphinx/attack.ogg' - attack_action_types = list(/datum/action/cooldown/sphinx_gaze) + attack_action_types = list(/datum/action/cooldown/sphinx_gaze, /datum/action/cooldown/sphinx_quake) can_breach = TRUE threat_level = WAW_LEVEL melee_damage_type = WHITE_DAMAGE start_qliphoth = 3 work_chances = list( - ABNORMALITY_WORK_INSTINCT = list(0, 0, 35, 35, 40), - ABNORMALITY_WORK_INSIGHT = list(20, 30, 45, 50, 50), - ABNORMALITY_WORK_ATTACHMENT = 0, - ABNORMALITY_WORK_REPRESSION = list(0, 0, 25, 30, 30), - "Riddle" = 0, //These should never be used, but they're here for clarity. - "Make Offering" = 0, + ABNORMALITY_WORK_INSTINCT = list(5, 10, 25, 25, 30), + ABNORMALITY_WORK_INSIGHT = -25, + ABNORMALITY_WORK_ATTACHMENT = 15, + ABNORMALITY_WORK_REPRESSION = list(5, 10, 25, 25, 30), ) work_damage_amount = 12 work_damage_type = WHITE_DAMAGE @@ -53,185 +49,131 @@ Beside me, the great sphinx lies.
It beckons me to answer the plaque.
\ Written in characters I have never seen before, well are the sculptor's passions read.
\ \"What goes on four feet in the morning, two feet in midday, and three feet in the evening?\"" - observation_choices = list("Man", "Monster") - correct_choices = list("Man") - observation_success_message = "The sphinx says something.
It seems happy, or proud.
\ - Then, it turns to stone, and sinks into the sand.
\ - Nothing beside remains. Round the decay
\ - Of that colossal Wreck, boundless and bare
\ - The lone and level sands stretch far away." - observation_fail_message = "The sphinx seems displeased. \ - It says some incomprehensible but hurtful words to me.
\ - Then, it turns to stone.
I try and look away, but I find that I cannot move either.
\ - My skin cracks like stone, my breathing stops.
I fall into an abyss.
\ - ...
\ - I am entombed in stone, with no end in sight.
\ - I cannot scream, for I have no tongue to scream with.
\ - I cannot see, for I have no eyes to see with.
\ - I cannot hear anything, for I have no ears to hear with.
\ - Soon after, my heart is taken away too.
And then there is nothing left." + observation_choices = list( + "Man" = list(TRUE, "The sphinx says something.
It seems happy, or proud.
\ + Then, it turns to stone, and sinks into the sand.
\ + Nothing beside remains. Round the decay
\ + Of that colossal Wreck, boundless and bare
\ + The lone and level sands stretch far away."), + "Monster" = list(FALSE, "The sphinx seems displeased. \ + It says some incomprehensible but hurtful words to me.
\ + Then, it turns to stone.
I try and look away, but I find that I cannot move either.
\ + My skin cracks like stone, my breathing stops.
I fall into an abyss.
\ + ...
\ + I am entombed in stone, with no end in sight.
\ + I cannot scream, for I have no tongue to scream with.
\ + I cannot see, for I have no eyes to see with.
\ + I cannot hear anything, for I have no ears to hear with.
\ + Soon after, my heart is taken away too.
And then there is nothing left."), + ) //work-related - var/happy = FALSE - var/demand - var/work_cooldown - var/work_cooldown_time = 3 SECONDS - var/list/worked = list() - var/list/satisfied = list( - "Ipi etog sind lemanto.", //You mind big human - "Lemantinco kom geng kaskihir etog!", //(Human-honor) show has (not-lazy) mind - ) - var/list/angry = list( - "Mi cadu cef ipi por sagmo!", //I king threat you beggar begone - "Mi thran lemantolly quistramos!", //I angry stupid man (body-coin) - ) - var/list/translate = list( - "Ipi etog geng quir.", //You mind paper translate - "Ipi inspuz geng quir.", //You quest paper translate - ) - var/list/riddleloot = list( + var/loot_progress = 0 + var/prudence_work_chance = 0 + var/list/workloot = list( /obj/item/golden_needle, /obj/item/canopic_jar, ) - var/list/demandlist = list( - /obj/item/clothing/suit/armor/ego_gear, - /obj/item/ego_weapon, - /obj/item/reagent_containers/food/drinks, - /obj/item/food, - ) - //breach var/can_act = TRUE var/curse_cooldown var/curse_cooldown_time = 12 SECONDS + var/quake_cooldown + var/quake_cooldown_time = 6 SECONDS + var/quake_damage = 20 //Playables buttons + attack_action_types = list( + /datum/action/cooldown/sphinx_gaze, + /datum/action/cooldown/sphinx_quake, + ) + /datum/action/cooldown/sphinx_gaze name = "Sphinx's Gaze" icon_icon = 'icons/mob/actions/actions_abnormality.dmi' button_icon_state = "sphinx" check_flags = AB_CHECK_CONSCIOUS transparent_when_unavailable = TRUE - cooldown_time = SPHINX_GAZE_COOLDOWN //12 seconds - -/mob/living/simple_animal/hostile/abnormality/sphinx/InitializeSecretIcon() - . = ..() - icon_aggro = "sphonx_eye" + cooldown_time = 12 SECONDS /datum/action/cooldown/sphinx_gaze/Trigger() - if(!..()) - return FALSE - if(!istype(owner, /mob/living/simple_animal/hostile/abnormality/sphinx)) + . = ..() + if(!.) return FALSE var/mob/living/simple_animal/hostile/abnormality/sphinx/sphinx = owner + if(!istype(sphinx)) + return FALSE if(sphinx.IsContained()) // No more using cooldowns while contained return FALSE + if(sphinx.curse_cooldown_time > world.time || !sphinx.can_act) + return FALSE StartCooldown() sphinx.StoneVision(FALSE) return TRUE -/mob/living/simple_animal/hostile/abnormality/sphinx/PostSpawn() - ..() - if((locate(/obj/structure/sacrifice_table) in range(1, src))) - return - new /obj/structure/sacrifice_table(get_step(src, SOUTH)) +/datum/action/cooldown/sphinx_quake + name = "Sphinx's Earthquake" + icon_icon = 'icons/mob/actions/actions_abnormality.dmi' + button_icon_state = "ebony_barrier" + check_flags = AB_CHECK_CONSCIOUS + transparent_when_unavailable = TRUE + cooldown_time = 6 SECONDS -// Work -/mob/living/simple_animal/hostile/abnormality/sphinx/AttemptWork(mob/living/carbon/human/user, work_type) - if((work_type != "Riddle") && work_type != "Make Offering") - return ..() - else if(work_cooldown > world.time) +/datum/action/cooldown/sphinx_quake/Trigger() + . = ..() + if(!.) return FALSE - - work_cooldown = world.time + work_cooldown_time - if(work_type == "Riddle") - if(!(user in worked)) - worked += user - new /obj/item/paper/fluff/translation_notes(get_turf(user)) - say(pick(translate)) - sleep(10) - NewQuest() //repeat quest lines or offer new quest + var/mob/living/simple_animal/hostile/abnormality/sphinx/sphinx = owner + if(!istype(sphinx)) return FALSE - else - var/I = null - for(var/obj/structure/sacrifice_table/S in range(1, src)) - if(S.showpiece) - I = S.showpiece - S.dump() - if(I) - to_chat(user, span_warning("[src] seems to be looking at the [I]!")) - else if(user.get_active_held_item()) - I = user.get_active_held_item() - else if(user.get_inactive_held_item()) - I = user.get_inactive_held_item() - if(!I) //both hands are empty and there is no table - to_chat(user, span_warning("You have nothing to offer to [src]!")) - return FALSE - QuestHandler(I,user) //quest item must be either the active hand, or the other hand if active is empty. No guessing. - return FALSE - -/mob/living/simple_animal/hostile/abnormality/sphinx/WorkChance(mob/living/carbon/human/user, chance) - if(happy) - chance+=30 - return chance + if(sphinx.IsContained()) // No more using cooldowns while contained + return FALSE + if(sphinx.quake_cooldown > world.time || !sphinx.can_act) + return FALSE + StartCooldown() + sphinx.Quake() + return TRUE + +/mob/living/simple_animal/hostile/abnormality/sphinx/InitializeSecretIcon() + . = ..() + icon_aggro = "sphonx_eye" + +// Abnormality Work Stuff +/mob/living/simple_animal/hostile/abnormality/sphinx/AttemptWork(mob/living/carbon/human/user, work_type) + prudence_work_chance = clamp(get_modified_attribute_level(user, PRUDENCE_ATTRIBUTE) * 0.45, 0, 60) // Additional roll on a every work tick based on prudence + var/player_temperance = get_modified_attribute_level(user, TEMPERANCE_ATTRIBUTE) + var/work_chance_bonus = 20 *((0.07*player_temperance-1.4)/(0.07*player_temperance+4)) // 20 is half of the usual temperance_mod of 40 + work_chance_bonus += datum_reference.understanding * 0.5 // Should be roughly half of the usual effects from temperance overall + prudence_work_chance = clamp(prudence_work_chance + work_chance_bonus, 0, 95) + if(datum_reference.overload_chance[user.ckey]) // Work penalty from overload applies here too. Probably. + prudence_work_chance += datum_reference.overload_chance[user.ckey] + return ..() + +/mob/living/simple_animal/hostile/abnormality/sphinx/ChanceWorktickOverride(mob/living/carbon/human/user, work_chance, init_work_chance, work_type) + if(!prob(init_work_chance)) + if(!prob(prudence_work_chance)) + return 0 // You failed both work checks, sorry bozo + loot_progress += 1 + return 100 /mob/living/simple_animal/hostile/abnormality/sphinx/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time) + if(loot_progress >= 16) + var/turf/dispense_turf = get_step(src, EAST) + var/reward = pick(workloot) + new reward(dispense_turf) + loot_progress = 0 if(user.sanity_lost) QDEL_NULL(user.ai_controller) user.ai_controller = /datum/ai_controller/insane/wander/sphinx user.InitializeAIController() - if(happy) - happy = FALSE - else - say(pick(angry)) - datum_reference.qliphoth_change(-1) - -// Riddle/Quest code -/mob/living/simple_animal/hostile/abnormality/sphinx/proc/NewQuest() - if(!demand) - demand = pick(demandlist) - switch(demand) - if(/obj/item/clothing/suit/armor/ego_gear) - say("Atan eblak esm quistra utast.")//Bring me an armor EGO - if(/obj/item/ego_weapon) - say("Atan eblak esm sommel utast.")//Bring me an weapon EGO - if(/obj/item/reagent_containers) - say("Kom eblak mina brit hethre.")//Find me a water with vessel - if(/obj/item/food) - say("Atan eblak gorno tai por prin enum gorno.")//Bring me what the beggar consumes and needs (Its food) - -/mob/living/simple_animal/hostile/abnormality/sphinx/proc/QuestHandler(obj/item/I, mob/living/carbon/human/user) - if (!istype(I, demand)) - if(demand) - QuestPenalty(user) - else - to_chat(user, span_warning("[src] is not waiting for an offering at the moment.")) - return - - if(demand == /obj/item/reagent_containers) - if(I.reagents.has_reagent(/datum/reagent/water)) - qdel(I) - else - QuestPenalty(user) - return - - if(demand == /obj/item/food) - qdel(I) - - QuestReward() -/mob/living/simple_animal/hostile/abnormality/sphinx/proc/QuestReward() - say(pick(satisfied)) - happy = TRUE - demand = null - datum_reference.qliphoth_change(3) - var/turf/dispense_turf = get_step(src, pick(GLOB.alldirs)) - var/reward = pick(riddleloot) - new reward(dispense_turf) - -/mob/living/simple_animal/hostile/abnormality/sphinx/proc/QuestPenalty(mob/living/carbon/human/user) - say(pick(angry)) +/mob/living/simple_animal/hostile/abnormality/sphinx/FailureEffect(mob/living/carbon/human/user, work_type, pe) + . = ..() datum_reference.qliphoth_change(-1) + if(!user) + return + if(get_attribute_level(user, PRUDENCE_ATTRIBUTE) >= 100) + return var/mob/living/carbon/human/H = user var/obj/item/organ/eyes/eyes = H.getorganslot(ORGAN_SLOT_EYES) var/obj/item/organ/ears/ears = H.getorganslot(ORGAN_SLOT_EARS) @@ -280,13 +222,12 @@ return pick(priority) /mob/living/simple_animal/hostile/abnormality/sphinx/AttackingTarget(atom/attacked_target) - ..() if(!ishuman(attacked_target)) - return + return OpenFire(attacked_target) var/mob/living/carbon/human/H = attacked_target if(!H.sanity_lost) - return + return OpenFire(attacked_target) QDEL_NULL(H.ai_controller) H.ai_controller = /datum/ai_controller/insane/wander/sphinx @@ -294,12 +235,58 @@ LoseTarget(H) /mob/living/simple_animal/hostile/abnormality/sphinx/OpenFire() - if(!can_act || client) + if(!can_act) return - if((curse_cooldown <= world.time)) + if((curse_cooldown <= world.time) && !client) StoneVision(FALSE) - return + return + StoneThrow(target) + +/mob/living/simple_animal/hostile/abnormality/sphinx/attackby(obj/item/I, mob/living/user, params) + ..() + if(!client) + TryQuake() + +/mob/living/simple_animal/hostile/abnormality/sphinx/attack_animal(mob/living/simple_animal/M) + ..() + if(!client) + TryQuake() + +/mob/living/simple_animal/hostile/abnormality/sphinx/proc/StoneThrow() + if(!can_act) + return + can_act = FALSE + SLEEP_CHECK_DEATH(3) + playsound(get_turf(target), 'sound/magic/arbiter/repulse.ogg', 20, 0, 5) + new /obj/effect/temp_visual/rockwarning(get_turf(target), src) + SLEEP_CHECK_DEATH(10) + can_act = TRUE + +/mob/living/simple_animal/hostile/abnormality/sphinx/proc/TryQuake() + if((quake_cooldown <= world.time) && !client) + Quake() + +/mob/living/simple_animal/hostile/abnormality/sphinx/proc/Quake() + if(quake_cooldown > world.time || !can_act) + return + quake_cooldown = world.time + quake_cooldown_time + can_act = FALSE + var/turf/origin = get_turf(src) + playsound(origin, 'sound/magic/arbiter/knock.ogg', 25, 0, 5) + SLEEP_CHECK_DEATH(9) + playsound(get_turf(src), 'sound/effects/ordeals/brown/rock_attack.ogg', 50, 0, 8) + for(var/turf/T in view(2, src)) + new /obj/effect/temp_visual/smash_effect(T) + for(var/mob/living/victim in HurtInTurf(T, list(), quake_damage, WHITE_DAMAGE, null, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE)) + var/throw_target = get_edge_target_turf(victim, get_dir(victim, get_step_away(victim, src))) + if(!victim.anchored) + var/throw_velocity = (prob(60) ? 1 : 4) + victim.throw_at(throw_target, rand(1, 2), throw_velocity, src) + SLEEP_CHECK_DEATH(8) + icon_state = icon_living + SLEEP_CHECK_DEATH(3) + can_act = TRUE /mob/living/simple_animal/hostile/abnormality/sphinx/proc/StoneVision(attack_chain) if((curse_cooldown > world.time) && !attack_chain) @@ -345,11 +332,11 @@ /datum/ai_behavior/say_line/insanity_sphinx lines = list( - "Utast tom tai beos... Utast tom esm cadu!", - "TAI ARKUR AGAL TOM LUVRI!!!", - "Mi tai hur... Mi tai hur... Mi tai hur... Mi tai hur...", - "Mies geng thran utast lemantomos!", - "Ipi manba geng mosleti atan brit utast!", + "Our old masters are waiting for us.", + "Listen to the stars.", + "The age of mankind is over...", + "AHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAHA!!", + "I can't... It's too much!", ) // Objects - Items @@ -401,71 +388,6 @@ qdel(src) return -/obj/item/paper/fluff/translation_notes //most of these are just fluff - name = "Translation Notes" - info = {"

You may find this helpful when interpreting the sphinx's demands.


- -A-
- agal: gate
- arkur: city
- atan: bring

- -B-
- beos: law
- brit: with

- -C-
- cadu: king
- ceffe: threat
- cihir: lazy

- -E-
- eblak: me
- enum: and
- esm: a
- etog: will/mind

- -G-
- geng: has/owns
- gorno: needs

- -H-
- hethre: vessel/boat
- hur: scared/cowardly
- huw: old

- -I-
- ipi: you
- inspuz: quest

- -K-
- kas: no
- kom: show

- -L-
- lemanto: human
- leti: gave
- luvri : open

- -M-
- manba: came
- medon: kill
- mina: water
- mos: coin
- mi: I

- -N-
- naar: fire
- neu: papyrus/textile

- -P-
- por: beggar/starving
- prin: consume
- puwun: to

- -Q-
- quir: translate
- quistra: body/armor

- -S-
- sagmo: begone
- sinco: honor/value
- sommel: weapon/stick

- -T-
- tai: the
- thran: angry
- tolly: stupid
- tom: to

- -U-
- ucaf: lands
- utast: abnormality/shell"} - // Chems /datum/reagent/medicine/ichor //from jar name = "Ichor" @@ -529,59 +451,41 @@ variable = TRUE multiplicative_slowdown = 2 -// Objects - Structures -/obj/structure/sacrifice_table - name = "sacrificial altar" - desc = "It looks impossibly ancient." - icon = 'ModularTegustation/Teguicons/32x32.dmi' - icon_state = "altar" - anchored = TRUE - density = TRUE - layer = TURF_LAYER - plane = FLOOR_PLANE - resistance_flags = INDESTRUCTIBLE - var/obj/item/showpiece = null - -/obj/structure/sacrifice_table/examine(mob/user) + //Effects +/obj/effect/temp_visual/rockattack + icon = 'icons/effects/effects.dmi' + icon_state = "rockattack" + duration = 6 + randomdir = TRUE // random spike appearance + layer = ABOVE_MOB_LAYER + +/obj/effect/temp_visual/rockwarning + name = "moving rocks" + desc = "A target warning you of incoming pain" + icon = 'icons/effects/effects.dmi' + icon_state = "rockwarning" + duration = 10 + layer = RIPPLE_LAYER // We want this HIGH. SUPER HIGH. We want it so that you can absolutely, guaranteed, see exactly what is about to hit you. + var/damage = 40 //Red Damage + var/mob/living/caster // who made this, anyway + +/obj/effect/temp_visual/rockwarning/Initialize(mapload, new_caster) . = ..() - if(showpiece) - . += span_notice("There's \a [showpiece] inside.") + if(new_caster) + caster = new_caster + addtimer(CALLBACK(src, PROC_REF(explode)), 0.9 SECONDS) -/obj/structure/sacrifice_table/update_overlays() - . = ..() - if(showpiece) - var/mutable_appearance/showpiece_overlay = mutable_appearance(showpiece.icon, showpiece.icon_state) - showpiece_overlay.copy_overlays(showpiece) - showpiece_overlay.transform *= 0.7 - . += showpiece_overlay - -/obj/structure/sacrifice_table/proc/insert_showpiece(obj/item/wack, mob/user) - if(user.transferItemToLoc(wack, src)) - showpiece = wack - to_chat(user, span_notice("You put [wack] on display.")) - update_icon() - -/obj/structure/sacrifice_table/proc/dump() - if(!QDELETED(showpiece)) - showpiece.forceMove(drop_location()) - showpiece = null - update_icon() - -/obj/structure/sacrifice_table/attack_hand(mob/user) - . = ..() - if(.) +/obj/effect/temp_visual/rockwarning/proc/explode() + var/turf/target_turf = get_turf(src) + if(!target_turf) return - user.changeNext_move(CLICK_CD_MELEE) - if (showpiece) - to_chat(user, span_notice("You remove [showpiece].")) - dump() - add_fingerprint(user) + if(QDELETED(caster) || caster?.stat == DEAD || !caster) return - -/obj/structure/sacrifice_table/attackby(obj/item/W, mob/user, params) - if(!showpiece) - insert_showpiece(W, user) - else - return ..() - -#undef SPHINX_GAZE_COOLDOWN + playsound(target_turf, 'sound/effects/ordeals/brown/rock_attack.ogg', 50, 0, 8) + new /obj/effect/temp_visual/rockattack(target_turf) + for(var/turf/T in view(1, src)) + new /obj/effect/temp_visual/smash_effect(T) + for(var/mob/living/L in caster.HurtInTurf(T, list(), damage, RED_DAMAGE, null, TRUE, FALSE, TRUE, hurt_hidden = TRUE, hurt_structure = TRUE)) + if(L.health < 0) + L.gib() + qdel(src) diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/thunder_bird.dm b/code/modules/mob/living/simple_animal/abnormality/waw/thunder_bird.dm index 2420c2d63c8b..71c00fb7345e 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/thunder_bird.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/thunder_bird.dm @@ -56,12 +56,12 @@ observation_prompt = "The totem sits atop a pile of gore and viscera.
\ Human scalps dangle motionlessly, strung to its wings.
\ Though the totem lies still, you feel compelled to answer it." - observation_choices = list("Speak", "Remain silent") - correct_choices = list("Remain silent") - observation_success_message = "The disgusting totem answered with silence.
\ - The Thunderbird had been defeated long ago, its existence being its only privilege." - observation_fail_message = "Before you can utter a word, thunder booms within the cell.
\ - The Thunderbird can be spoken to, but never reasoned with." + observation_choices = list( + "Remain silent" = list(TRUE, "The disgusting totem answered with silence.
\ + The Thunderbird had been defeated long ago, its existence being its only privilege."), + "Speak" = list(FALSE, "Before you can utter a word, thunder booms within the cell.
\ + The Thunderbird can be spoken to, but never reasoned with."), + ) /*---Combat---*/ //Melee stats diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm b/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm index a38b22cdd280..25335541529a 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/warden.dm @@ -44,19 +44,19 @@ As far as I know it's just me left.
\ The site burial went off and escape is impossible, yet, the other abnormalities remain in their cells - if they leave she forces them back inside.
\ Maybe if I enter one of the unused cells, she might leave me alone?" - observation_choices = list("Enter a cell", "Surrender to her") - correct_choices = list("Enter a cell") - observation_success_message = "I step inside and lock the door behind me,
I'm stuck inside.
\ - She passes by the containment unit and peers through the glass and seems satisfied." - observation_fail_message = "Steeling myself, I confront her during one of her rounds.
I tell her I'm tired and just want it to end.
\ - She gets closer and lifts her skirt(?) and I'm thrust underneath, my colleagues are here- they're alive and well!
\ - But, they seem despondent.
One looks at me says simply; \"In here, you're with us. Forever.\"" + observation_choices = list( + "Enter a cell" = list(TRUE, "I step inside and lock the door behind me,
I'm stuck inside.
\ + She passes by the containment unit and peers through the glass and seems satisfied."), + "Surrender to her" = list(FALSE, "Steeling myself, I confront her during one of her rounds.
I tell her I'm tired and just want it to end.
\ + She gets closer and lifts her skirt(?) and I'm thrust underneath, my colleagues are here- they're alive and well!
\ + But, they seem despondent.
One looks at me says simply; \"In here, you're with us. Forever.\""), + ) var/finishing = FALSE var/captured_souls = 0 - var/resistance_decrease = 0.5 + var/resistance_decrease = 0.2 var/base_red_resistance = 0.7 var/base_white_resistance = 1.2 @@ -152,4 +152,5 @@ /mob/living/simple_animal/hostile/abnormality/warden/bullet_act(obj/projectile/P) visible_message(span_userdanger("[src] is unfazed by \the [P]!")) + new /obj/effect/temp_visual/healing/no_dam(get_turf(src)) P.Destroy() diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/wrath_servant.dm b/code/modules/mob/living/simple_animal/abnormality/waw/wrath_servant.dm index 84e0673761d5..ea4a455055e3 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/wrath_servant.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/wrath_servant.dm @@ -60,13 +60,13 @@ observation_prompt = "I made a mistake, I put my trust in someone I shouldn't have and my world paid the price for my indiscretion.
\ Was I wrong to call them friend?
Were they really my friend, all along?" - observation_choices = list("You were wrong", "It wasn't wrong") - correct_choices = list("It wasn't wrong") - observation_success_message = "If that's the case, then why did balance, why did justice, fail me?
\ - Why did my world burn if I truly did not make a mistake?
It still hurts, but, if you're right then maybe I can put my trust in you..." - observation_fail_message = "It was the most precious relationship to me...
\ - That's why I lost; I fell to my beloved companion...
\ - I should have killed them when I had the chance!
Sinners!!
Embodiments of evil..!" + observation_choices = list( + "It wasn't wrong" = list(TRUE, "If that's the case, then why did balance, why did justice, fail me?
\ + Why did my world burn if I truly did not make a mistake?
It still hurts, but, if you're right then maybe I can put my trust in you..."), + "You were wrong" = list(FALSE, "It was the most precious relationship to me...
\ + That's why I lost; I fell to my beloved companion...
\ + I should have killed them when I had the chance!
Sinners!!
Embodiments of evil..!"), + ) var/friendly = TRUE var/list/friend_ship = list() diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/yang.dm b/code/modules/mob/living/simple_animal/abnormality/waw/yang.dm index 481368534514..c144ba7ea043 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/yang.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/yang.dm @@ -61,14 +61,14 @@ observation_prompt = "The Angel's Pendant was one half of a greater whole, but now they've been cleaved in half, forever wanting to reunite.
\ The pendant laid upon the podium before you, even being in the same room as it seemed to fortify your body and soul." - observation_choices = list("Put it on", "Don't put it on") - correct_choices = list("Put it on") - observation_success_message = "The moment you put it on, you feel a radiance emanate out and mend pain you didn't even know was there.
\ - It doesn't intend to heal you, it's just the way it is.
\ - If there is darkness and evil in this world, shouldn't there be light and good too?
\ - The world is far more than darkness and cold." - observation_fail_message = "It is all that is bright given form, made to gather all the positivity in the world.
\ - If you can't accept the goodness in yourself, you're not ready to accept the goodness of the world." + observation_choices = list( + "Put it on" = list(TRUE, "The moment you put it on, you feel a radiance emanate out and mend pain you didn't even know was there.
\ + It doesn't intend to heal you, it's just the way it is.
\ + If there is darkness and evil in this world, shouldn't there be light and good too?
\ + The world is far more than darkness and cold."), + "Don't put it on" = list(FALSE, "It is all that is bright given form, made to gather all the positivity in the world.
\ + If you can't accept the goodness in yourself, you're not ready to accept the goodness of the world."), + ) var/explosion_damage = 150 var/explosion_timer = 7 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/waw/yin.dm b/code/modules/mob/living/simple_animal/abnormality/waw/yin.dm index 5f2cb5ed4057..5a470a022723 100644 --- a/code/modules/mob/living/simple_animal/abnormality/waw/yin.dm +++ b/code/modules/mob/living/simple_animal/abnormality/waw/yin.dm @@ -46,14 +46,14 @@ observation_prompt = "The Devil's Pendant was one half of a greater whole, but now they've been cleaved in half, forever wanting to reunite.
\ The pendant laid upon the podium before you, even being in the same room as it seemed to suck the life out of you and erodes your very essence." - observation_choices = list("Put it on", "Don't put it on") - correct_choices = list("Put it on") - observation_success_message = "The moment you put it on, your body is stricken with deepest agony, feeling like thorns racing through your body, puncturing flesh and mind alike but you endure.
\ - It didn't mean to harm you, it's just the way it is.
\ - If there is light and goodness in this world, shouldn't there be darkness and evil too?
\ - The world is far more than brightness and warmth." - observation_fail_message = "It is darkness made manifest, made to encapsulate all the negativity in the world.
\ - If you can't accept the darkness of the world, you're not ready to accept the darkness in you." + observation_choices = list( + "Put it on" = list(TRUE, "The moment you put it on, your body is stricken with deepest agony, feeling like thorns racing through your body, puncturing flesh and mind alike but you endure.
\ + It didn't mean to harm you, it's just the way it is.
\ + If there is light and goodness in this world, shouldn't there be darkness and evil too?
\ + The world is far more than brightness and warmth."), + "Don't put it on" = list(FALSE, "It is darkness made manifest, made to encapsulate all the negativity in the world.
\ + If you can't accept the darkness of the world, you're not ready to accept the darkness in you."), + ) faction = list("neutral", "hostile") // Not fought by anything, typically. But... var/faction_override = list("hostile") // The effects hit non-hostiles. diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm index efe01e9addb5..6f4ed278a234 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/bald.dm @@ -42,10 +42,10 @@ harvest_phrase_third = "%PERSON squeezes %ABNO. Some juice drips into %VESSEL." observation_prompt = "This abnormality is filled with dreams of bald people. Are you balding, or already bald?" - observation_choices = list("Yes", "No") - correct_choices = list("Yes") - observation_success_message = "Lobotomy Corporation welcomes you." - observation_fail_message = "Come back after watching the fast and the furious 7 five more times." + observation_choices = list( + "Yes" = list(TRUE, "Lobotomy Corporation welcomes you."), + "No" = list(FALSE, "Come back after watching the fast and the furious 7 five more times."), + ) var/bald_users = list() chem_type = /datum/reagent/abnormality/bald diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm index 4d09f09118e2..18153dadaf20 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/blubbering_toad.dm @@ -58,20 +58,20 @@ This resin is like gloom.
\ A sap of gloom, not quite like tears or sadness.
\ The toad holds this resin." - observation_choices = list("Mimic the cry", "Sit and wait") - correct_choices = list("Sit and wait") - observation_success_message = "An indeterminate amount of time passes.
\ - As you waited for the toad to finish its cries,
\ - it gazed into you, closing and opening its eyelids slowly.
\ - With a quick, slick sound,a long blue tongue popped out towards you.
\ - An eyeball belonging to the toad was on its tongue.
\ - When you picked it up, it blinked its other eye at us before going on its way.
\ - Was that its thanks for lending an ear?" - observation_fail_message = "\"Croohic, croohoo.\"
\ - The toad’s cry is dull and heavy.
\ - It doesn’t seem to have understood what it heard.
\ - After crying like that a few more times, it hopped away from its spot.
\ - All that’s left is the sticky blue resin." + observation_choices = list( + "Sit and wait" = list(TRUE, "An indeterminate amount of time passes.
\ + As you waited for the toad to finish its cries,
\ + it gazed into you, closing and opening its eyelids slowly.
\ + With a quick, slick sound, a long blue tongue popped out towards you.
\ + An eyeball belonging to the toad was on its tongue.
\ + When you picked it up, it blinked its other eye at us before going on its way.
\ + Was that its thanks for lending an ear?"), + "Mimic the cry" = list(FALSE, "\"Croohic, croohoo.\"
\ + The toad’s cry is dull and heavy.
\ + It doesn’t seem to have understood what it heard.
\ + After crying like that a few more times, it hopped away from its spot.
\ + All that’s left is the sticky blue resin."), + ) //work var/pulse_healing = 15 @@ -116,8 +116,15 @@ //Attack or approach it directly and it attacks you! /mob/living/simple_animal/hostile/abnormality/blubbering_toad/BreachEffect(mob/living/user, breach_type = BREACH_NORMAL) - if(breach_type == BREACH_PINK) + if(breach_type == BREACH_PINK || breach_type == BREACH_MINING) persistant = TRUE + if(breach_type == BREACH_MINING)//nerfed to a ZAYIN statline since this is something you'll typically fight roundstart + name = "Weakened [name]" + maxHealth = 400 + melee_damage_lower = 9 + melee_damage_upper = 15 + tongue_damage = 10 + broken = TRUE SetIdiot(user) return ..() diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm index c8b1e2e26dc9..69dd327b203b 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/bottle.dm @@ -55,26 +55,17 @@ observation_prompt = "It was all very well to say \"Drink me\" but wisdom told you not to do that in a hurry.
\ The bottle had no markings to denote whether it was poisonous but you could not be sure, it was almost certain to disagree with you, sooner or later..." - observation_choices = list("Drink the bottle", "Eat the cake", "Leave") - correct_choices = list("Leave", "Eat the cake") - observation_success_message = "Suspicious things are suspicious, common sense hasn't failed you yet." - observation_fail_message = "However this bottle was not marked as poisonous and you ventured a taste, \ - and found it horrid, the brine clung to your tongue.
Who'd mark such a horrible thing for drinking?" - //Special answer for choice 2 - var/observation_success_message_2 = "Abandon reason, that's how you survive in Wonderland.
\ - You devour the cake by the handful, frosting and crumbs smear your hands, your face and the floor.
\ - It's sweet and tart, with only the slightest hint of salt.
\ - As you breach the final layer of cake, the top of the bottle cracks and a deluge of brine spills forth, filling the room faster than you could draw a breath.
\ - In spite of that, you're at peace and smiling.
\ - Through your fading eyesight, you spy yourself through the other side of the containment door's window - frowning." - -// Final Observation -/mob/living/simple_animal/hostile/abnormality/bottle/ObservationResult(mob/living/carbon/human/user, condition, answer) //special answer for cake result - if(answer == "Eat the cake") - observation_success_message = observation_success_message_2 - else - observation_success_message = initial(observation_success_message) - return ..() + observation_choices = list( + "Leave" = list(TRUE, "Suspicious things are suspicious, common sense hasn't failed you yet."), + "Eat the cake" = list(TRUE, "Abandon reason, that's how you survive in Wonderland.
\ + You devour the cake by the handful, frosting and crumbs smear your hands, your face and the floor.
\ + It's sweet and tart, with only the slightest hint of salt.
\ + As you breach the final layer of cake, the top of the bottle cracks and a deluge of brine spills forth, filling the room faster than you could draw a breath.
\ + In spite of that, you're at peace and smiling.
\ + Through your fading eyesight, you spy yourself through the other side of the containment door's window - frowning."), + "Drink the bottle" = list(FALSE, "However this bottle was not marked as poisonous and you ventured a taste, \ + and found it horrid, the brine clung to your tongue.
Who'd mark such a horrible thing for drinking?"), + ) // Work Mechanics /mob/living/simple_animal/hostile/abnormality/bottle/AttemptWork(mob/living/carbon/human/user, work_type) @@ -189,12 +180,15 @@ // Pink Midnight Breach /mob/living/simple_animal/hostile/abnormality/bottle/BreachEffect(mob/living/carbon/human/user, breach_type) - if(breach_type == BREACH_PINK) + if(breach_type == BREACH_PINK || breach_type == BREACH_MINING) ADD_TRAIT(src, TRAIT_MOVE_FLYING, INNATE_TRAIT) COOLDOWN_START(src, speak_damage_aura, speak_cooldown_time) icon_state = "bottle_breach" desc = "A floating bottle, leaking tears.\nYou can use an empty hand to drink from it." can_breach = TRUE + if(breach_type == BREACH_MINING) + speak_damage = 0 + speak_cooldown_time = 15 SECONDS return ..() /mob/living/simple_animal/hostile/abnormality/bottle/attack_hand(mob/living/carbon/human/M) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm index 8562c85400ce..6a63135f5002 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/fairy_festival.dm @@ -5,8 +5,14 @@ icon_state = "fairy" icon_living = "fairy" portrait = "fairy_festival" - maxHealth = 83 - health = 83 + maxHealth = 800 + health = 800 + move_to_delay = 5 + damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1.3, PALE_DAMAGE = 2) + melee_damage_lower = 8 + melee_damage_upper = 15 + stat_attack = DEAD + attack_sound = 'sound/abnormalities/fairyfestival/fairyqueen_hit.ogg' is_flying_animal = TRUE threat_level = ZAYIN_LEVEL work_chances = list( @@ -31,6 +37,15 @@ var/heal_cooldown = 2 SECONDS var/heal_cooldown_base = 2 SECONDS var/list/mob/living/carbon/human/protected_people = list() + var/summon_count = 0 + var/summon_type = /mob/living/simple_animal/hostile/mini_fairy + var/summon_cooldown + var/summon_cooldown_time = 30 SECONDS + var/seek_cooldown + var/seek_cooldown_time = 10 SECONDS + var/summon_group_size = 6 + var/summon_maximum = 14 + var/eat_threshold = 0.8 abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY grouped_abnos = list( @@ -46,10 +61,10 @@ observation_prompt = "A gaggle of fairies flitter to and fro about the containment cell, they giggle as you approach.
\ \"You're a peaceful child, aren't you? You're lucky to accept our care.\"
\ They say in a sing-song all around you. \"Only good people ever speak to us, you're a good person too, right?\"" - observation_choices = list("Accept their care") - correct_choices = list("Accept their care") - observation_success_message = "The fairies sprinkle their powder around you and it collects upon your hands.
You feel special.
\ - You retreat from the cell and the fairies' hungry gazes.
You've always known the true meaning of The Fairies' Care." + observation_choices = list( + "Accept their care" = list(TRUE, "The fairies sprinkle their powder around you and it collects upon your hands.
You feel special.
\ + You retreat from the cell and the fairies' hungry gazes.
You've always known the true meaning of The Fairies' Care."), + ) /mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyHeal() for(var/mob/living/carbon/human/P in protected_people) @@ -82,6 +97,10 @@ . = ..() if(protected_people.len) FairyHeal() + if(summon_count > summon_maximum) + return + if((summon_cooldown < world.time) && !(status_flags & GODMODE)) + SummonGuys(summon_type) /mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/FairyEnd(mob/living/carbon/human/user) protected_people.Remove(user) @@ -116,18 +135,82 @@ /mob/living/simple_animal/hostile/abnormality/fairy_festival/BreachEffect(mob/living/carbon/human/user, breach_type) if(breach_type == BREACH_PINK) - SummonGuys() - addtimer(CALLBACK(src, PROC_REF(SummonGuys)), 20 SECONDS) + summon_cooldown_time = 20 SECONDS + SummonGuys(summon_type) + if(breach_type == BREACH_MINING) + can_breach = TRUE + summon_type = /mob/living/simple_animal/hostile/fairy_mass + summon_group_size = 1 + summon_maximum = 3 + SummonGuys(summon_type) + icon = 'ModularTegustation/Teguicons/96x48.dmi' + icon_state = "fairy_queen" + pixel_x = -16 + maxHealth = 500 + playsound(get_turf(src), "sound/abnormalities/seasons/fall_change.ogg", 100, FALSE) + playsound(get_turf(src), "sound/abnormalities/fairyfestival/fairyqueen_growl.ogg", 100, FALSE) return ..() -/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/SummonGuys() +/mob/living/simple_animal/hostile/abnormality/fairy_festival/AttackingTarget() + . = ..() + if(summon_type != /mob/living/simple_animal/hostile/fairy_mass)//does she have fairy masses? + return + if(istype(target, /mob/living/simple_animal/hostile/fairy_mass)) + var/mob/living/L = target + if(L.health > 0)//fairies have to be alive; scarred meat isn't tasty + L.gib() + ProcessKill() + playsound(get_turf(src), "sound/abnormalities/fairyfestival/fairyqueen_growl.ogg", 100, FALSE) + return + eat_threshold -= 0.2 + if(. && isliving(target)) + var/mob/living/L = target + if(isliving(target) && (L.health < 0 || L.stat == DEAD)) + L.gib() + playsound(get_turf(src), "sound/abnormalities/fairyfestival/fairyqueen_growl.ogg", 100, FALSE) + if(ishuman(L)) + ProcessKill() + +//Cannibalism +/mob/living/simple_animal/hostile/abnormality/fairy_festival/adjustHealth(amount, updating_health = TRUE, forced = FALSE) + ..() + if(summon_type != /mob/living/simple_animal/hostile/fairy_mass)//does she have fairy masses? + return + if(health < (maxHealth * eat_threshold)) //80% health or lower, 20% less for each eat. + var/fairy_hp = 300 + var/mob/living/mytarget + if(seek_cooldown < world.time)//this check can only be done once every ten seconds, for performance + for(var/mob/living/simple_animal/hostile/fairy_mass/M in range(12, src))//finds the fairy with the lowest HP in the vicinity + if(M.health <= 0) + mytarget = M + break + if(M.health <= fairy_hp) + fairy_hp = M.health + mytarget = M + if(mytarget) + mytarget.faction = list("neutral") + LoseTarget() + GiveTarget(mytarget) + seek_cooldown = world.time + seek_cooldown_time + +/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/SummonGuys(summon_type) + summon_cooldown = world.time + summon_cooldown_time var/mob/living/simple_animal/hostile/ordeal/pink_midnight/pink = locate() in GLOB.mob_living_list - for(var/i = 1 to 6) + for(var/i = 1 to summon_group_size) var/turf/target_turf = get_turf(pink ? pink : src) - var/mob/living/simple_animal/hostile/mini_fairy/new_fairy = new(target_turf) + var/mob/living/simple_animal/hostile/mini_fairy/new_fairy + new_fairy = new summon_type(target_turf) + summon_count += 1 if(pink) new_fairy.faction += "pink_midnight" +/mob/living/simple_animal/hostile/abnormality/fairy_festival/proc/ProcessKill() + eat_threshold -= 0.2 + adjustBruteLoss(-maxHealth)//FRESH MEAT! + playsound(get_turf(src), "sound/abnormalities/fairyfestival/fairyqueen_growl.ogg", 100, FALSE) + if(move_to_delay>1) + ChangeMoveToDelayBy(-1) + /datum/reagent/abnormality/fairy_festival name = "Nectar of an Unknown Flower" description = "The fairies got this for you..." @@ -187,3 +270,36 @@ continue else M.Goto(src,M.move_to_delay,M.minimum_distance) + +/mob/living/simple_animal/hostile/fairy_mass + name = "\improper Fairy Mass" + desc = "They wander in search of food." + icon = 'ModularTegustation/Teguicons/tegumobs.dmi' + icon_state = "fairy_mass" + icon_living = "fairy_mass" + icon_dead = "fairy_mass_dead" + maxHealth = 300 + health = 300 + attack_verb_continuous = "bites" + attack_verb_simple = "bite" + is_flying_animal = TRUE + damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1.2, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1.2, PALE_DAMAGE = 1.2) + faction = list("hostile", "fairy") + melee_damage_lower = 1 + melee_damage_upper = 5 + melee_damage_type = RED_DAMAGE + obj_damage = 3 + rapid_melee = 3 + attack_sound = 'sound/abnormalities/fairyfestival/fairy_festival_bite.ogg' + density = FALSE + move_to_delay = 2 + stat_attack = DEAD + guaranteed_butcher_results = list(/obj/item/food/meat/slab = 1) + +/mob/living/simple_animal/hostile/fairy_mass/AttackingTarget() + . = ..() + if(iscarbon(target)) + var/mob/living/L = target + if(L.health < 0 || L.stat == DEAD) + playsound(get_turf(src), 'sound/magic/demon_consume.ogg', 75, 0) + L.gib() diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/fallen_amurdad.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/fallen_amurdad.dm index fa6ba5c393fe..8b7dc83b5324 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/fallen_amurdad.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/fallen_amurdad.dm @@ -27,10 +27,10 @@ observation_prompt = "The sweet stench of rot and decay hit you before you noticed the source was the bleeding person covered in plants.
\ His lips gape open and close like a fish's and what little strength he has in his limbs, he uses to beckons you closer..." - observation_choices = list("Get closer and listen", "Leave") - correct_choices = list("Get closer and listen") - observation_success_message = "You bend down and lend your ear to his mouth...
You hear the words you've been waiting your whole life to hear." - observation_fail_message = "The man clearly needs help, you rush to find a medic." + observation_choices = list( + "Get closer and listen" = list(TRUE, "You bend down and lend your ear to his mouth...
You hear the words you've been waiting your whole life to hear."), + "Leave" = list(FALSE, "The man clearly needs help, you rush to find a medic."), + ) var/seed_list = list( /obj/item/seeds/grass/fairy, diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm index 590fc73aedb1..c832ee68a798 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/hammer_light.dm @@ -30,14 +30,13 @@ gift_type = /datum/ego_gifts/evening abnormality_origin = ABNORMALITY_ORIGIN_ARTBOOK // Technically it was in the beta but I dont want it showing it up in LC-only modes - observation_prompt = "I was the unluckiest man in the world.
\ - Everything around me did nothing but ruining my life.But I had no power to change this fate.
\ - Someday, someone made an offer to me.\"If you accept it, your whole world will change.\"
\ + observation_prompt = "I was the unluckiest man in the world.
\ + Everything around me did nothing but ruining my life. But I had no power to change this fate.
\ + Someday, someone made an offer to me. \"If you accept it, your whole world will change.\"
\ Such a tempting offer. I would become something that I could only hope to be." - observation_choices = list("Accept the offer") - correct_choices = list("Accept the offer") - observation_success_message = "I accepted the offer and paid the price.
\ - The $0 Hammer of Light shined." + observation_choices = list( + "Accept the offer" = list(TRUE, "I accepted the offer and paid the price.
The $0 Hammer of Light shined.") + ) pet_bonus = "hums" // saves a few lines of code by allowing funpet() to be called by attack_hand() var/sealed = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/oceanwaves.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/oceanwaves.dm index 3fd1d945f66b..e0b2169bfe95 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/oceanwaves.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/oceanwaves.dm @@ -43,11 +43,11 @@ Where does it get its power…?
Besides that, what’s with this sound of crashing waves?
\ Regardless, this vacant lot looks to be a good place to take a break.
\ Standing in front of the vending machine, you see rows of buttons." - observation_choices = list("Press one") - correct_choices = list("Press one") - observation_success_message = "With just a single press, the machine ejected one can after another.
\ - All the cans are purple. You can’t fathom the meaning of the ships and grapes doodled on them, but they somehow feel familiar, and well… cheery.
\ - They should be okay to drink." + observation_choices = list( + "Press one" = list(TRUE, "With just a single press, the machine ejected one can after another.
\ + All the cans are purple. You can’t fathom the meaning of the ships and grapes doodled on them, but they somehow feel familiar, and well… cheery.
\ + They should be okay to drink."), + ) var/list/goodsoders = list( /obj/item/reagent_containers/food/drinks/soda_cans/oceanwave/unlabeled, diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm index 74c4c9182002..283671b9129c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/one_sin.dm @@ -7,6 +7,13 @@ portrait = "one_sin" maxHealth = 777 health = 777 + damage_coeff = list(RED_DAMAGE = 1.5, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) + melee_damage_lower = 8 + melee_damage_upper = 15 + melee_damage_type = WHITE_DAMAGE + attack_sound = 'sound/abnormalities/onesin/onesin_attack.ogg' + attack_verb_continuous = "smites" + attack_verb_simple = "smite" is_flying_animal = TRUE threat_level = ZAYIN_LEVEL work_chances = list( @@ -24,7 +31,7 @@ /datum/ego_datum/armor/penitence ) max_boxes = 10 - gift_type = /datum/ego_gifts/penitence + gift_type = /datum/ego_gifts/penitence gift_message = "From this day forth, you shall never forget his words." abnormality_origin = ABNORMALITY_ORIGIN_LOBOTOMY @@ -38,12 +45,12 @@ observation_prompt = "It has great power. It is savior that will judge you, and executioner that will put you in your demise.
\ In its eyes, you find...
(Technically, it has no eyes, so in its pitch-black holes you find...)" - observation_choices = list("You find yourself.", "Nothing.") - correct_choices = list("Nothing.") - observation_success_message = "Darkness.
\ - Nothing is there. Have you found the answers you were looking for?" - observation_fail_message = "You are found.
\ - You have great power.
You willingly lift the axe for the greater good." + observation_choices = list( + "Nothing" = list(TRUE, "Darkness.
\ + Nothing is there. Have you found the answers you were looking for?"), + "You find yourself" = list(FALSE, "You are found.
\ + You have great power.
You willingly lift the axe for the greater good."), + ) var/halo_status = "onesin_halo_normal" //used for changing the halo overlays @@ -57,7 +64,7 @@ . += "onesin" //by the nine this is too cursed /mob/living/simple_animal/hostile/abnormality/onesin/WorkChance(mob/living/carbon/human/user, chance) - if(istype(user.ego_gift_list[HAT], /datum/ego_gifts/penitence)) + if(istype(user.ego_gift_list[HAT], gift_type)) return chance + 10 return chance @@ -131,8 +138,15 @@ H.adjustSanityLoss(-H.maxSanity * heal_factor) /mob/living/simple_animal/hostile/abnormality/onesin/BreachEffect(mob/living/carbon/human/user, breach_type) + if(breach_type == BREACH_MINING) + update_icon() + return ..() return FALSE // If someone wants him to breach for SOME REASON in the future, then exclude breach_type == BREACH_PINK +/mob/living/simple_animal/hostile/abnormality/onesin/AttackingTarget() + ..() + new /obj/effect/temp_visual/onesin_punishment(get_turf(target)) + /datum/reagent/abnormality/onesin name = "Holy Light" description = "It's calming, even if you can't quite look at it straight." diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm index e39ad98d3a79..27f6735eba46 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/oracle.dm @@ -7,8 +7,8 @@ icon_state = "oracle" icon_living = "oracle" portrait = "oracle" - maxHealth = 50 - health = 50 + maxHealth = 1500 + health = 1500 damage_coeff = list(RED_DAMAGE = 2, WHITE_DAMAGE = 0, BLACK_DAMAGE = 2, PALE_DAMAGE = 2) threat_level = ZAYIN_LEVEL work_chances = list( @@ -22,7 +22,7 @@ work_damage_type = WHITE_DAMAGE ego_list = list( - /datum/ego_datum/weapon/dead_dream, + /datum/ego_datum/weapon/dead_dream, /datum/ego_datum/armor/dead_dream ) // gift_type = /datum/ego_gifts/oracle @@ -32,15 +32,15 @@
She was told that it would feel like no time at all. \
Silently sleeping she dreams of the future, a future she was promised. \
Before your eyes untold time passes until one day." - observation_choices = list("She woke up.", "The pod broke.") - correct_choices = list("The pod broke.") - observation_success_message = "You look into the window as you see her stir in her slumber before falling still. \ -
Holding your breath in silence, \ -
You remember Maria, \ -
Forever dreaming of a future she will never see." - observation_fail_message = "The pod opens with a hiss as you watch her step out. \ -
The joy on her face is immesurable, for she left behind so much to be here. \ -
Then she melts away, for this was your dream." + observation_choices = list( + "The pod broke" = list(TRUE, "You look into the window as you see her stir in her slumber before falling still. \ +
Holding your breath in silence, \ +
You remember Maria, \ +
Forever dreaming of a future she will never see."), + "She woke up" = list(FALSE, "The pod opens with a hiss as you watch her step out. \ +
The joy on her face is immesurable, for she left behind so much to be here. \ +
Then she melts away, for this was your dream."), + ) var/list/sleeplines = list( "Hello...", @@ -77,6 +77,11 @@ "A person in a blue coat... they fold into a book...", ) +/mob/living/simple_animal/hostile/abnormality/oracle/Move() + return FALSE + +/mob/living/simple_animal/hostile/abnormality/oracle/CanAttack(atom/the_target) + return FALSE /mob/living/simple_animal/hostile/abnormality/oracle/PostWorkEffect(mob/living/carbon/human/user, work_type, pe) if(work_type == ABNORMALITY_WORK_INSIGHT) @@ -97,7 +102,6 @@ to_chat(user, span_notice("[SSlobotomy_corp.next_ordeal.name]")) ..() - /mob/living/simple_animal/hostile/abnormality/oracle/Initialize(mob/living/carbon/human/user) . = ..() RegisterSignal(SSdcs, COMSIG_GLOB_ABNORMALITY_BREACH, PROC_REF(OnAbnoBreach)) @@ -127,3 +131,29 @@ if(H.IsSleeping()) continue //You need to be sleeping to get notified to_chat(H, "Oh.... [abno]... It has breached containment...") + +//ER stuff +/mob/living/simple_animal/hostile/abnormality/oracle/BreachEffect(mob/living/carbon/human/user, breach_type)//finish this shit + if(breach_type == BREACH_MINING) + var/chosenfake = pick(fakeordeals) + for(var/mob/living/L in livinginrange(48, src)) + if(L.z != z) + continue + if(faction_check_mob(L)) + continue + to_chat(L, span_userdanger("[chosenfake]")) + addtimer(CALLBACK(src, PROC_REF(NukeAttack)), 30 SECONDS) + return ..() + +/mob/living/simple_animal/hostile/abnormality/oracle/proc/NukeAttack() + if(stat == DEAD) + return + playsound(src, 'sound/magic/wandodeath.ogg', 100, FALSE, 40, falloff_distance = 10) + for(var/mob/living/L in livinginrange(48, src)) + if(L.z != z) + continue + if(faction_check_mob(L)) + continue + to_chat(L, span_userdanger("Visions of a horrible future flash before your eyes!")) + L.deal_damage((150 - get_dist(src, L)), WHITE_DAMAGE) + qdel(src) diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/pile_of_mail.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/pile_of_mail.dm index 00ab394bedde..d5eeb20a159c 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/pile_of_mail.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/pile_of_mail.dm @@ -32,12 +32,12 @@ observation_prompt = "Letters addressed to various addresses and recipients litter the containment cell.
\ Occasionally, some of the letters flutter in the air, as if a breeze has come through the cell.
\ A new batch of letters comes flooding out of the mailbox, one lands right in front of you, with your name on it." - observation_choices = list("Open the letter", "Ignore it") - correct_choices = list("Open the letter") - observation_success_message = "You open the letter, but the inside is blank.
\ - Looking at the envelope, you notice that it is labelled \"RETURN TO SENDER\"
\ - You put the envelope back in the mailbox, and find a gift inside." - observation_fail_message = "You know better than to fall for the tricks of an abnormality.
You walk out of the cell, never knowing what was in that letter." + observation_choices = list( + "Open the letter" = list(TRUE, "You open the letter, but the inside is blank.
\ + Looking at the envelope, you notice that it is labelled \"RETURN TO SENDER\"
\ + You put the envelope back in the mailbox, and find a gift inside."), + "Ignore it" = list(FALSE, "You know better than to fall for the tricks of an abnormality.
You walk out of the cell, never knowing what was in that letter."), + ) var/cooldown var/cooldown_time = 10 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/quiet_day.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/quiet_day.dm index 0549c06acd1e..35a9df15cfe7 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/quiet_day.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/quiet_day.dm @@ -11,6 +11,7 @@ core_icon = "quiet_day" maxHealth = 451 health = 451 + blood_volume = 0 threat_level = ZAYIN_LEVEL faction = list("hostile", "neutral") //Bad for stat gain, but the damage is negligable and there's a nice bonus at the end @@ -40,19 +41,19 @@ harvest_phrase_third = "%ABNO glances at %PERSON. Suddenly, %VESSEL seems to be more full." observation_prompt = "The shadow of an old man seems to be contemplating about something.
\ - \"Don\'t you ever wish you could go back to those better times? To be able to enjoy life to the fullest?
\ + \"Don't you ever wish you could go back to those better times? To be able to enjoy life to the fullest?
\ To relive the best moments of your life again?
\ To remember her face? To remember that young man's name?
\ - Perhaps it's foolish of me to ask for this. I want to hear your opinion, young\'in.
\ + Perhaps it's foolish of me to ask for this. I want to hear your opinion, young'in.
\ Would it be worth chasing after those old, familiar memories?\"" - observation_choices = list("It's not wrong.", "Perhaps it's better to move on.") - correct_choices = list("Perhaps it's better to move on.") - observation_success_message = "\"I suppose you're right after all.\"
\ - \"If I can't even remember their names and faces, what worth even are those memories?\"
\ - \"Go on. Leave before you forget too.\"" - observation_fail_message = "\"Indeed. There's no harm, right?\"
\ - \"...Yet why can't I remember her face?\"
\ - As you're about to leave, you hear the old man croak out something. \"Who are you again?\"" + observation_choices = list( + "Perhaps it's better to move on." = list(TRUE, "\"I suppose you're right after all.\"
\ + \"If I can't even remember their names and faces, what worth even are those memories?\"
\ + \"Go on. Leave before you forget too.\""), + "It's not wrong." = list(FALSE, "\"Indeed. There's no harm, right?\"
\ + \"...Yet why can't I remember her face?\"
\ + As you're about to leave, you hear the old man croak out something. \"Who are you again?\""), + ) var/performed_work var/datum/looping_sound/quietday_ambience/soundloop @@ -228,7 +229,7 @@ return FALSE /mob/living/simple_animal/hostile/abnormality/quiet_day/BreachEffect(mob/living/carbon/human/user, breach_type) - if(breach_type == BREACH_PINK) + if(breach_type == BREACH_PINK || breach_type == BREACH_MINING) AbnoRadio() Ramble() can_breach = TRUE diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/sleeping_beauty.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/sleeping_beauty.dm index e4ae27ea2019..7e33eb19cfc5 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/sleeping_beauty.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/sleeping_beauty.dm @@ -39,11 +39,10 @@ harvest_phrase_third = "%PERSON jostles %ABNO, then captures the resulting clouds with %VESSEL." observation_prompt = "The couch looks inviting, softer and plusher than anything you've ever known.
You've been working for so long, it couldn't hurt to take a break?" - observation_choices = list("Lie down", "Get back to work") - correct_choices = list("Get back to work") - observation_success_message = "You shake your head. You'll have time to rest when you're dead." - observation_fail_message = "You lay your head down into your soft and comfy pillow. You can always try again tomorrow." - + observation_choices = list( + "Get back to work" = list(TRUE, "You shake your head. You'll have time to rest when you're dead."), + "Lie down" = list(FALSE, "You lay your head down into your soft and comfy pillow. You can always try again tomorrow."), + ) var/grab_cooldown var/grab_cooldown_time = 20 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/sunset_traveller.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/sunset_traveller.dm index 672a3e6531e2..b62429f661e0 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/sunset_traveller.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/sunset_traveller.dm @@ -37,16 +37,16 @@ observation_prompt = "\"Look at those butterflies! Aren’t they just beautiful?
And gander at that sunset, too! Really makes you want to go for a stroll.\"
\ \"Why don’t you stop for a moment and take a breather here?\"
\ Something yellow gestures warmly at you." - observation_choices = list("Take a break", "Ignore it and leave") - correct_choices = list("Take a break") - observation_success_message = "\"Wasn’t it tiring coming all the way here? Really, check out those butterflies.
\ - Just watching them will warm your heart.\"
\ - You looked at the butterflies as the voice suggested. They indeed fill the heart with a certain warmth.
\ - \"Looks like some of them want to tag along!\"
\ - A kaleidoscope of butterflies started following you, even after you left that scenic spot." - observation_fail_message = "\"You must be very busy then!\"
It made the same gesture as when it first greeted you.
\ - Perhaps it was waving goodbye all along.
\ - \"Another time, I suppose!\"" + observation_choices = list( + "Take a break" = list(TRUE, "\"Wasn’t it tiring coming all the way here? Really, check out those butterflies.
\ + Just watching them will warm your heart.\"
\ + You looked at the butterflies as the voice suggested. They indeed fill the heart with a certain warmth.
\ + \"Looks like some of them want to tag along!\"
\ + A kaleidoscope of butterflies started following you, even after you left that scenic spot."), + "Ignore it and leave" = list(FALSE, "\"You must be very busy then!\"
It made the same gesture as when it first greeted you.
\ + Perhaps it was waving goodbye all along.
\ + \"Another time, I suppose!\""), + ) light_color = COLOR_ORANGE light_range = 5 diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm index f277b68aa709..be8a7c4be4bc 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/we_can_change_anything.dm @@ -49,10 +49,10 @@ Is your house suffering from an outage because you don’t have the money to pay for the power bill?
\ We can change that!
\ It’s quite simple. Just open up the machine, step inside, and press the button to make it shut." - observation_choices = list("Enter the machine") - correct_choices = list("Enter the machine") - observation_success_message = "You step inside the machine, it's just as comfortable as advertised.
\ - Now everything will be just fine." + observation_choices = list( + "Enter the machine" = list(TRUE, "You step inside the machine, it's just as comfortable as advertised.
\ + Now everything will be just fine."), + ) var/grinding = FALSE var/grind_duration = 5 SECONDS diff --git a/code/modules/mob/living/simple_animal/abnormality/zayin/wellcheers.dm b/code/modules/mob/living/simple_animal/abnormality/zayin/wellcheers.dm index c47e39ca4bd4..a83628fe5892 100644 --- a/code/modules/mob/living/simple_animal/abnormality/zayin/wellcheers.dm +++ b/code/modules/mob/living/simple_animal/abnormality/zayin/wellcheers.dm @@ -58,11 +58,12 @@ observation_prompt = "A vending machine stands before you.
\ Two delicious looking shrimp are standing at both sides of the machine.
Will you buy soda?" - observation_choices = list("Yes", "No") - correct_choices = list("Yes", "No") - observation_success_message = "Before you can make a choice, one of the shrimp buys you soda.
\ - You drink the soda, and fall asleep...
...
Somewhere in the distance, you hear seagulls." - + observation_choices = list( + "Yes" = list(TRUE, "Before you can make a choice, one of the shrimp buys you soda.
\ + You drink the soda, and fall asleep...
...
Somewhere in the distance, you hear seagulls."), + "No" = list(TRUE, "Before you can make a choice, one of the shrimp buys you soda.
\ + You drink the soda, and fall asleep...
...
Somewhere in the distance, you hear seagulls.") + ) /mob/living/simple_animal/hostile/abnormality/wellcheers/HandleStructures() . = ..() diff --git a/code/modules/mob/living/simple_animal/animal_defense.dm b/code/modules/mob/living/simple_animal/animal_defense.dm index e5b0ff5f0541..59b35d8eed8e 100644 --- a/code/modules/mob/living/simple_animal/animal_defense.dm +++ b/code/modules/mob/living/simple_animal/animal_defense.dm @@ -141,6 +141,7 @@ if(temp_damage >= 0 && temp_damage <= force_threshold) visible_message(span_warning("[src] looks unharmed!")) + DamageEffect(0, damagetype) return FALSE if(actuallydamage) diff --git a/code/modules/mob/living/simple_animal/distortion/monolith.dm b/code/modules/mob/living/simple_animal/distortion/monolith.dm index f746472ce6f3..59b2422631d1 100644 --- a/code/modules/mob/living/simple_animal/distortion/monolith.dm +++ b/code/modules/mob/living/simple_animal/distortion/monolith.dm @@ -133,7 +133,7 @@ var/mob/living/simple_animal/hostile/distortion/D = target if(D.monolith_abnormality) var/mob/living/simple_animal/hostile/abnormality/myAbno = new D.monolith_abnormality(get_turf(target)) - myAbno.BreachEffect() + myAbno.BreachEffect(null, BREACH_MINING) qdel(target) return TRUE return FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 01da7bfb9c10..41db68af73dd 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -83,6 +83,11 @@ /// How willing a mob is to switch targets. More resistance means more aggro is required var/target_switch_resistance + var/damage_effect_scale = 1 + + // Return to spawn point if target lost + var/return_to_origin = FALSE + /mob/living/simple_animal/hostile/Initialize() /*Update Speed overrides set speed and sets it to the equivilent of move_to_delay. Basically @@ -101,6 +106,9 @@ wanted_objects = typecacheof(wanted_objects) + if (return_to_origin) + AddComponent(/datum/component/return_to_origin) + /mob/living/simple_animal/hostile/Destroy() targets_from = null return ..() @@ -201,7 +209,6 @@ //register the attacker in our memory. if(P.firer) RegisterAggroValue(P.firer, P.damage, P.damage_type) - DamageEffect(P.damage, P.damage_type) return ..() /mob/living/simple_animal/hostile/attack_animal(mob/living/simple_animal/M, damage) @@ -280,42 +287,93 @@ /*-------------------\ |Damage Visual Effect| \-------------------*/ - -/mob/living/simple_animal/hostile/attack_threshold_check(damage, damagetype = BRUTE, armorcheck = MELEE, actuallydamage = TRUE) - //This used to also check actually damage but turns out melee weapons in item_attack.dm dont call actually damage. - if(stat != DEAD && (damagetype in list(RED_DAMAGE, WHITE_DAMAGE, BLACK_DAMAGE, PALE_DAMAGE))) - //To simplify things, if you bash a abnormality with a wrench it wont show any effect. --uhh it will though - DamageEffect(damagetype) - return ..() - -/mob/living/simple_animal/hostile/proc/DamageEffect(damtype) - //Code stolen from attack_threshold_check() in animal_defense.dm - var/damage_modifier - if(islist(damage_coeff)) - damage_modifier = damage_coeff[damtype] - else - damage_modifier = damage_coeff.getCoeff(damtype) - - if(damage_modifier == 0) - //Visual Effect for immunity. - return new /obj/effect/temp_visual/healing/no_dam(get_turf(src)) - if(damage_modifier < 0) - //Visual Effect for healing. - return new /obj/effect/temp_visual/healing(get_turf(src)) - +/mob/living/proc/DamageEffect(damage, damtype) + if(damage > 0) + switch(damtype) + if(RED_DAMAGE) + return new /obj/effect/temp_visual/damage_effect/red(get_turf(src)) + if(WHITE_DAMAGE) + return new /obj/effect/temp_visual/damage_effect/white(get_turf(src)) + if(BLACK_DAMAGE) + return new /obj/effect/temp_visual/damage_effect/black(get_turf(src)) + if(PALE_DAMAGE) + return new /obj/effect/temp_visual/damage_effect/pale(get_turf(src)) + if(BURN) + return new /obj/effect/temp_visual/damage_effect/burn(get_turf(src)) + if(TOX) + return new /obj/effect/temp_visual/damage_effect/tox(get_turf(src)) + else + return null + +/mob/living/simple_animal/hostile/DamageEffect(damage, damtype) + var/obj/effect/dam_effect = null + if(!damage) + dam_effect = new /obj/effect/temp_visual/healing/no_dam(get_turf(src)) + if(damage_effect_scale != 1) + dam_effect.transform *= damage_effect_scale + return dam_effect + if(damage < 0) + dam_effect = new /obj/effect/temp_visual/healing(get_turf(src)) + if(damage_effect_scale != 1) + dam_effect.transform *= damage_effect_scale + return dam_effect switch(damtype) if(RED_DAMAGE) - return new /obj/effect/temp_visual/damage_effect/red(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/red(get_turf(src)) if(WHITE_DAMAGE) - return new /obj/effect/temp_visual/damage_effect/white(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/white(get_turf(src)) if(BLACK_DAMAGE) - return new /obj/effect/temp_visual/damage_effect/black(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/black(get_turf(src)) if(PALE_DAMAGE) - return new /obj/effect/temp_visual/damage_effect/pale(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/pale(get_turf(src)) if(BURN) - return new /obj/effect/temp_visual/damage_effect/burn(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/burn(get_turf(src)) if(TOX) - return new /obj/effect/temp_visual/damage_effect/tox(get_turf(src)) + dam_effect = new /obj/effect/temp_visual/damage_effect/tox(get_turf(src)) + else + return null + if(damage_effect_scale != 1) + dam_effect.transform *= damage_effect_scale + if(length(projectile_blockers) > 0) + dam_effect.pixel_x += rand(-occupied_tiles_left_current * 32, occupied_tiles_right_current * 32) + dam_effect.pixel_y += rand(-occupied_tiles_down_current * 32, occupied_tiles_up_current * 32) + return dam_effect + +/mob/living/simple_animal/hostile/adjustRedLoss(amount, updating_health, forced) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., RED_DAMAGE) + +/mob/living/simple_animal/hostile/adjustWhiteLoss(amount, updating_health, forced, white_healable) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., WHITE_DAMAGE) + +/mob/living/simple_animal/hostile/adjustBlackLoss(amount, updating_health, forced, white_healable) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., BLACK_DAMAGE) + +/mob/living/simple_animal/hostile/adjustPaleLoss(amount, updating_health, forced) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., PALE_DAMAGE) + +/mob/living/simple_animal/hostile/adjustFireLoss(amount, updating_health, forced) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., BURN) + +/mob/living/simple_animal/hostile/adjustToxLoss(amount, updating_health, forced) + var/was_alive = stat != DEAD + . = ..() + if(was_alive) + DamageEffect(., TOX) /*Used in LC13 abnormality calculations. Moved here so we can use it for all hostiles. @@ -591,6 +649,7 @@ approaching_target = FALSE in_melee = FALSE walk(src, 0) + SEND_SIGNAL(src, COMSIG_HOSTILE_LOSTTARGET) LoseAggro() /mob/living/simple_animal/hostile/proc/Aggro() diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/amber.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/amber.dm index 1a2a3de686b4..302132d92216 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/amber.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/amber.dm @@ -183,6 +183,7 @@ base_pixel_x = -16 butcher_results = list(/obj/item/food/meat/slab/worm = 3) guaranteed_butcher_results = list(/obj/item/food/meat/slab/worm = 2) + silk_results = list(/obj/item/stack/sheet/silk/amber_simple = 2, /obj/item/stack/sheet/silk/amber_advanced = 1) attack_verb_continuous = "eviscerates" attack_verb_simple = "eviscerate" attack_sound = 'sound/effects/ordeals/amber/dusk_attack.ogg' @@ -192,6 +193,7 @@ should_projectile_blockers_change_orientation = TRUE occupied_tiles_up = 1 offsets_pixel_x = list("south" = -16, "north" = -16, "west" = 0, "east" = -32) + offsets_pixel_y = list("south" = 9, "north" = -20, "west" = 0, "east" = 0) /// This cooldown responds for both the burrowing and spawning in the dawns var/burrow_cooldown @@ -201,6 +203,8 @@ var/burrowing = FALSE /// List of currently spawned dawns, so we don't create too many var/list/spawned_mobs = list() + //If they can burrow or not. + var/can_burrow = TRUE var/datum/looping_sound/amberdusk/soundloop @@ -226,10 +230,25 @@ /mob/living/simple_animal/hostile/ordeal/amber_dusk/Initialize() . = ..() + setDir(WEST) soundloop = new(list(src), TRUE) if(LAZYLEN(butcher_results)) addtimer(CALLBACK(src, PROC_REF(BurrowOut), get_turf(src))) +/mob/living/simple_animal/hostile/ordeal/amber_dusk/OnDirChange(atom/thing, dir, newdir) + . = ..() + if(stat == DEAD) + return + var/static/matrix/add_vertical_transform = matrix(0.8, 1.4, MATRIX_SCALE) + var/static/south_north = SOUTH | NORTH + var/static/east_west = EAST | WEST + var/combined = dir | newdir + if((combined & south_north) && (combined & east_west)) + if(newdir & south_north) + transform = add_vertical_transform + else + transform = matrix() + /mob/living/simple_animal/hostile/ordeal/amber_dusk/Destroy() QDEL_NULL(soundloop) for(var/mob/living/simple_animal/hostile/ordeal/amber_bug/spawned/bug as anything in spawned_mobs) @@ -241,14 +260,17 @@ . = ..() if(!.) // Dead return FALSE - if(!burrowing && world.time > burrow_cooldown) - AttemptBirth() - BurrowIn() + if(can_burrow) + if(!burrowing && world.time > burrow_cooldown) + AttemptBirth() + BurrowIn() /mob/living/simple_animal/hostile/ordeal/amber_dusk/death(gibbed) if(LAZYLEN(butcher_results)) alpha = 255 offsets_pixel_x = list("south" = -16, "north" = -16, "west" = -16, "east" = -16) + offsets_pixel_y = list("south" = 0, "north" = 0, "west" = 0, "east" = 0) + transform = matrix() soundloop.stop() for(var/mob/living/simple_animal/hostile/ordeal/amber_bug/bug in spawned_mobs) bug.can_burrow_solo = TRUE @@ -257,6 +279,8 @@ /mob/living/simple_animal/hostile/ordeal/amber_dusk/revive(full_heal, admin_revive) . = ..() offsets_pixel_x = list("south" = -16, "north" = -16, "west" = 0, "east" = -32) + offsets_pixel_y = list("south" = 9, "north" = -20, "west" = 0, "east" = 0) + density = TRUE /mob/living/simple_animal/hostile/ordeal/amber_dusk/proc/AttemptBirth() var/max_spawn = clamp(length(GLOB.clients) * 2, 4, 8) @@ -368,6 +392,7 @@ occupied_tiles_up = 2 offsets_pixel_x = list("south" = -96, "north" = -96, "west" = -96, "east" = -96) offsets_pixel_y = list("south" = -16, "north" = -16, "west" = -16, "east" = -16) + damage_effect_scale = 1.25 blood_volume = BLOOD_VOLUME_NORMAL death_sound = 'sound/effects/ordeals/amber/midnight_dead.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/brown/dawn.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/brown/dawn.dm index cc4bd0f98d4e..b607ebfef186 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/brown/dawn.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/brown/dawn.dm @@ -7,159 +7,80 @@ icon_living = "sinrock" icon_dead = "sin_dead" faction = list("brown_ordeal") - maxHealth = 200 - health = 200 + maxHealth = 80 + health = 80 melee_damage_type = BLACK_DAMAGE - melee_damage_lower = 14 - melee_damage_upper = 24 + melee_damage_lower = 9 + melee_damage_upper = 15 attack_verb_continuous = "bashes" attack_verb_simple = "bashes" attack_sound = 'sound/effects/ordeals/brown/rock_attack.ogg' death_sound = 'sound/effects/ordeals/brown/rock_dead.ogg' damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 2, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/golem = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/golem = 1) + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) ranged = TRUE - var/list/movement_path = list() - var/list/been_hit = list() - var/charging = FALSE - var/charging_cooldown - var/charging_cooldown_time = 8 SECONDS //apparantly charge is already used in /hostile.dm - var/charge_damage = 20 - /// Delay between each subsequent move when charging - var/charge_speed = 1 - /// How many paths do we create between several landmarks? - var/charge_nodes = 3 - /// Maximum AStar pathfinding distances from one point to another - var/charge_max_distance = 40 + move_to_delay = 8 var/dash_cooldown_time = 15 SECONDS //will dash at people if they get out of range but not too often var/dash_cooldown + var/can_act = TRUE + var/jump_range = 7 + var/jump_aoe = 1 + var/jump_damage = 20 -/mob/living/simple_animal/hostile/ordeal/sin_sloth/Life() +/mob/living/simple_animal/hostile/ordeal/sin_sloth/AttackingTarget(atom/attacked_target) + if(!can_act) + return . = ..() - if(.) - if((charging_cooldown <= world.time) && prob(15)) - ChargeStart() /mob/living/simple_animal/hostile/ordeal/sin_sloth/OpenFire() - if(!target || charging) + if(!target) return Dash(target) /mob/living/simple_animal/hostile/ordeal/sin_sloth/Move() - return FALSE + if(!can_act) + return FALSE + . = ..() + if(.) + var/para = TRUE + if(dir in list(WEST, NORTHWEST, SOUTHWEST)) + para = FALSE + SpinAnimation(6, 1, para) /mob/living/simple_animal/hostile/ordeal/sin_sloth/proc/Dash(mob/living/target) if(!istype(target)) return var/dist = get_dist(target, src) - if(dist > 2 && dash_cooldown < world.time) + if(dist > 2 && dash_cooldown < world.time && dist < jump_range) + can_act = FALSE var/list/dash_line = getline(src, target) + animate(src, pixel_y = (base_pixel_y + 30), time = 2) + playsound(src, 'sound/effects/ordeals/brown/rock_kill.ogg', 50, FALSE, 4) for(var/turf/line_turf in dash_line) //checks if there's a valid path between the turf and the target if(line_turf.is_blocked_turf(exclude_mobs = TRUE)) break forceMove(line_turf) - SLEEP_CHECK_DEATH(0.8) - playsound(src, 'sound/effects/ordeals/brown/rock_runover.ogg', 50, FALSE, 4) - dash_cooldown = world.time + dash_cooldown_time - -/mob/living/simple_animal/hostile/ordeal/sin_sloth/proc/ChargeStart(target) - if(charging || charging_cooldown > world.time) - return - charging = TRUE - movement_path = list() - var/list/initial_turfs = GLOB.xeno_spawn.Copy() + GLOB.department_centers.Copy() - var/list/potential_turfs = list() - for(var/turf/open/T in initial_turfs) - if(get_dist(src, T) > 3) - potential_turfs += T - for(var/mob/living/L in livinginrange(32, src)) - if(prob(50)) - continue - if((L.status_flags & GODMODE) || faction_check_mob(L)) - continue - if(L.stat == DEAD) - continue - if(ishuman(L)) - var/mob/living/carbon/human/H = L - if(H.is_working) - continue - potential_turfs += get_turf(L) - var/turf/picking_from = get_turf(src) - var/turf/path_start = get_turf(src) - if(target) - var/turf/open/target_turf = get_turf(target) - if(istype(target_turf)) - picking_from = target_turf - potential_turfs |= target_turf - face_atom(target) - for(var/i = 1 to charge_nodes) - if(!LAZYLEN(potential_turfs)) - break - var/turf/T = get_closest_atom(/turf/open, potential_turfs, picking_from) - if(!T) - break - var/list/our_path = list() - for(var/o = 1 to 3) // Grand total of 3 retries - our_path = get_path_to(path_start, T, TYPE_PROC_REF(/turf, Distance_cardinal), charge_max_distance) - if(islist(our_path) && LAZYLEN(our_path)) - break - potential_turfs -= T // Couldn't find path to it, don't try again - if(!LAZYLEN(potential_turfs)) - break - T = get_closest_atom(/turf/open, potential_turfs, picking_from) - if(!islist(our_path) || !LAZYLEN(our_path)) - continue - movement_path += our_path - picking_from = T - path_start = T - potential_turfs -= T - if(!LAZYLEN(movement_path)) - return FALSE - playsound(src, 'sound/effects/ordeals/brown/rock_runover.ogg', 50, TRUE, 7) - for(var/turf/T in movement_path) // Warning before charging - new /obj/effect/temp_visual/mustardgas(T) - SLEEP_CHECK_DEATH(18) - been_hit = list() - SpinAnimation(3, 10) - for(var/turf/T in movement_path) - if(QDELETED(T)) - break - if(!Adjacent(T)) - break - ChargeAt(T) - SLEEP_CHECK_DEATH(charge_speed) - charging = FALSE - icon_state = icon_living - charging_cooldown = world.time + charging_cooldown_time - -/mob/living/simple_animal/hostile/ordeal/sin_sloth/proc/ChargeAt(turf/T) - face_atom(T) - for(var/obj/structure/window/W in T.contents) - W.obj_destruction("teeth") - for(var/obj/machinery/door/D in T.contents) - if(D.density) - addtimer(CALLBACK (D, TYPE_PROC_REF(/obj/machinery/door, open))) - forceMove(T) - if(prob(33)) - playsound(T, 'sound/effects/ordeals/brown/rock_attack.ogg', 10, TRUE, 3) - for(var/turf/TF in view(1, T)) - new /obj/effect/temp_visual/mustardgas(TF) - for(var/mob/living/L in TF) - if(!faction_check_mob(L)) - if(L in been_hit) + SLEEP_CHECK_DEATH(0.4) + addtimer(CALLBACK(src, PROC_REF(AnimateBack)), 8) + SLEEP_CHECK_DEATH(10) + for(var/turf/T in view(1, src)) + new /obj/effect/temp_visual/mustardgas(T) + for(var/mob/living/L in T) + if(faction_check_mob(L)) continue - L.visible_message(span_warning("[src] rams [L]!"), span_boldwarning("[src] rams into you!")) - L.apply_damage(charge_damage, BLACK_DAMAGE, null, L.run_armor_check(null, RED_DAMAGE), spread_damage = TRUE) - new /obj/effect/temp_visual/cleave(get_turf(L)) - playsound(L, 'sound/effects/ordeals/brown/rock_kill.ogg', 50, TRUE) + L.deal_damage(jump_damage, BLACK_DAMAGE) if(L.health < 0) L.gib() - if(!QDELETED(L)) - been_hit += L - if(ishuman(L)) - var/mob/living/carbon/human/H = L - H.Knockdown(4) + for(var/obj/vehicle/sealed/mecha/V in T) + V.take_damage(jump_damage, BLACK_DAMAGE) + can_act = TRUE + dash_cooldown = world.time + dash_cooldown_time + + +/mob/living/simple_animal/hostile/ordeal/sin_sloth/proc/AnimateBack() + animate(src, pixel_y = base_pixel_y, time = 2) + return TRUE /mob/living/simple_animal/hostile/ordeal/sin_gluttony name = "Peccatulum Gulae" @@ -169,8 +90,8 @@ icon_living = "sinflower" icon_dead = "sin_dead" faction = list("brown_ordeal") - maxHealth = 150 - health = 150 + maxHealth = 80 + health = 80 melee_damage_type = RED_DAMAGE rapid_melee = 3 melee_damage_lower = 4 @@ -180,8 +101,8 @@ attack_sound = 'sound/effects/ordeals/brown/flower_attack.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 2, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1) + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) stat_attack = DEAD /mob/living/simple_animal/hostile/ordeal/sin_gluttony/AttackingTarget(atom/attacked_target) @@ -226,42 +147,67 @@ icon_living = "sinflea" icon_dead = "flea_dead" faction = list("brown_ordeal") - maxHealth = 200 - health = 200 + maxHealth = 80 + health = 80 melee_damage_type = WHITE_DAMAGE - rapid_melee = 2 - melee_damage_lower = 14 - melee_damage_upper = 14 + melee_damage_lower = 35 + melee_damage_upper = 45 attack_verb_continuous = "bashes" attack_verb_simple = "bashes" attack_sound = 'sound/effects/ordeals/brown/flea_attack.ogg' death_sound = 'sound/effects/ordeals/brown/flea_dead.ogg' damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 1, BLACK_DAMAGE = 2, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/slime = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/slime = 1) + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) is_flying_animal = TRUE ranged = TRUE + ranged_cooldown_time = 5 SECONDS // Fires a laser dealing 10 white damage minimum_distance = 2 // Don't move all the way to melee projectiletype = /obj/projectile/beam/water_jet projectilesound = 'sound/effects/ordeals/brown/flea_attack.ogg' + var/can_act = TRUE -/mob/living/simple_animal/hostile/ordeal/sin_gloom/MeleeAction() - if(health <= maxHealth*0.5 && stat != DEAD) - walk_to(src, 0) - animate(src, transform = matrix()*1.8, time = 15) - addtimer(CALLBACK(src, PROC_REF(DeathExplosion)), 15) - ..() +/mob/living/simple_animal/hostile/ordeal/sin_gloom/Move() + if(!can_act) + return FALSE + return ..() -/mob/living/simple_animal/hostile/ordeal/sin_gloom/proc/DeathExplosion() - if(QDELETED(src)) - return +/mob/living/simple_animal/hostile/ordeal/sin_gloom/OpenFire() + if(!can_act) + return FALSE + return ..() + +/mob/living/simple_animal/hostile/ordeal/sin_gloom/AttackingTarget(atom/attacked_target) + if(!can_act) + return FALSE + . = AreaAttack() + +/mob/living/simple_animal/hostile/ordeal/sin_gloom/proc/AreaAttack() + set waitfor = FALSE + changeNext_move(SSnpcpool.wait / rapid_melee) //Prevents attack spam + animate(src, transform = matrix()*1.4, time = 16) + addtimer(CALLBACK(src, PROC_REF(AnimateBack)), 16) + can_act = FALSE + SLEEP_CHECK_DEATH(16) + var/obj/effect/temp_visual/decoy/D = new /obj/effect/temp_visual/decoy(get_turf(src), src) + animate(D, alpha = 0, transform = matrix()*1.6, time = 5) visible_message(span_danger("[src] suddenly explodes!")) - playsound(loc, 'sound/effects/ordeals/brown/tentacle_explode.ogg', 60, TRUE) - new /obj/effect/temp_visual/explosion(get_turf(src)) - for(var/mob/living/L in viewers(2, src)) - L.apply_damage(40, WHITE_DAMAGE, null, L.run_armor_check(null, WHITE_DAMAGE)) + playsound(loc, 'sound/abnormalities/ichthys/hardslap.ogg', 60, TRUE) + var/damage_dealt = rand(melee_damage_lower, melee_damage_upper) + for(var/turf/T in view(2, src)) + new /obj/effect/temp_visual/small_smoke/halfsecond(T) + for(var/mob/living/L in T) + if(faction_check_mob(L)) + continue + L.deal_damage(damage_dealt, melee_damage_type) + for(var/obj/vehicle/sealed/mecha/V in T) + V.take_damage(damage_dealt, melee_damage_type) + SLEEP_CHECK_DEATH(8) + can_act = TRUE + +/mob/living/simple_animal/hostile/ordeal/sin_gloom/proc/AnimateBack() animate(src, transform = matrix(), time = 0) - death() + return TRUE /mob/living/simple_animal/hostile/ordeal/sin_pride name = "Peccatulum Superbiae" @@ -273,8 +219,8 @@ icon_living = "sinwheel" icon_dead = "sin_dead" faction = list("brown_ordeal") - maxHealth = 100 - health = 100 + maxHealth = 80 + health = 80 melee_damage_type = RED_DAMAGE rapid_melee = 2 melee_damage_lower = 7 @@ -284,8 +230,8 @@ attack_sound = 'sound/weapons/ego/sword1.ogg' death_sound = 'sound/effects/ordeals/brown/dead_generic.ogg' damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 2, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/rawcrab = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/rawcrab = 1) + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) ranged = TRUE var/charging = FALSE var/dash_num = 25 @@ -387,7 +333,7 @@ /mob/living/simple_animal/hostile/ordeal/sin_lust //Tank that is resistant to bullets name = "Peccatulum Luxuriae" - desc = "It looks like a creature made of lumps of flesh. It looks eagar to devour human flesh." + desc = "A creature made of lumps of flesh. It looks eagar to devour human flesh." icon = 'ModularTegustation/Teguicons/64x32.dmi' icon_state = "sincromer" icon_living = "sincromer" @@ -407,8 +353,8 @@ attack_sound = 'sound/effects/ordeals/brown/cromer_slam.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 2, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/lizard = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/lizard = 1) + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) /mob/living/simple_animal/hostile/ordeal/sin_lust/Initialize() . = ..() @@ -439,8 +385,8 @@ pixel_x = -8 base_pixel_x = -8 faction = list("brown_ordeal") - maxHealth = 150 - health = 150 + maxHealth = 80 + health = 80 melee_damage_type = RED_DAMAGE rapid_melee = 2 melee_damage_lower = 2 @@ -450,8 +396,8 @@ attack_sound = 'sound/effects/ordeals/brown/tentacle_attack.ogg' death_sound = 'sound/effects/ordeals/brown/dead_generic.ogg' damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 2, BLACK_DAMAGE = 1, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/carpmeat/icantbeliveitsnotcarp = 1) - guaranteed_butcher_results = list(/obj/item/food/carpmeat/icantbeliveitsnotcarp = 1) //should make its own kind of meat when I get around to it + butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/sinnew = 1) /mob/living/simple_animal/hostile/ordeal/sin_wrath/AttackingTarget(atom/attacked_target) . = ..() @@ -482,7 +428,7 @@ /atom/movable/screen/alert/status_effect/fuming name = "Fuming Wrath" - desc = "You feel so angry that your head might explode! You take additional BURN damage whenever you are hurt, which is reduced by WHITE armor." + desc = "You feel so angry that your head might explode! You take additional BURN damage whenever you are hurt, which is reduced by RED armor." icon = 'ModularTegustation/Teguicons/status_sprites.dmi' icon_state = "sin_wrath" @@ -510,6 +456,6 @@ if(damagetype == BURN) return var/damage_amt = ((damage/100) * (stacks * 10)) //10-200% of damage taken is dealt as additional burn - H.apply_damage(damage_amt, BURN, blocked = H.run_armor_check(null, WHITE_DAMAGE), spread_damage = TRUE) //Damage reduced by white armor + H.apply_damage(damage_amt, BURN, blocked = H.run_armor_check(null, RED_DAMAGE), spread_damage = TRUE) //Damage reduced by red armor #undef STATUS_EFFECT_FUMING diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dawn.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dawn.dm index 5a229732f9c1..c0b1e7f70caa 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dawn.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dawn.dm @@ -1,7 +1,7 @@ // Gold Dawn - Commander that heals its minions /mob/living/simple_animal/hostile/ordeal/fallen_amurdad_corrosion name = "Fallen Nepenthes" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "A level 1 agent of Lobotomy Corporation that has somehow been corrupted by an abnormality." icon = 'ModularTegustation/Teguicons/48x48.dmi' icon_state = "amurdad_corrosion" icon_living = "amurdad_corrosion" @@ -19,8 +19,7 @@ attack_sound = 'sound/abnormalities/ebonyqueen/attack.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 1, BLACK_DAMAGE = 0.8, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 1) speed = 1 //slow as balls move_to_delay = 20 ranged = TRUE @@ -38,7 +37,7 @@ /mob/living/simple_animal/hostile/ordeal/beanstalk_corrosion name = "Beanstalk Searching for Jack" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "A Lobotomy Corporation clerk that has been corrupted by an abnormality." icon = 'ModularTegustation/Teguicons/32x48.dmi' icon_state = "beanstalk" icon_living = "beanstalk" @@ -55,5 +54,4 @@ attack_verb_continuous = "stabs" attack_verb_simple = "stab" damage_coeff = list(RED_DAMAGE = 0.9, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 0.7, PALE_DAMAGE = 2) - butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human/mutant/plant = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 1) diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dusk.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dusk.dm index 7f4147e430d6..62e1081e88fa 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dusk.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/dusk.dm @@ -1,7 +1,7 @@ // Gold Dusk - Commander that buffs its minion's attacks and wandering white damage /mob/living/simple_animal/hostile/ordeal/centipede_corrosion name = "High-Voltage Centipede" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "An agent of the information team, corrupted by an abnormality. But how?" icon = 'ModularTegustation/Teguicons/64x48.dmi' pixel_x = -16 base_pixel_x = -16 @@ -19,8 +19,7 @@ attack_sound = 'sound/abnormalities/thunderbird/tbird_peck.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 1, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 0.7) - butcher_results = list(/obj/item/food/meat/slab/robot = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 2) move_to_delay = 3 var/pulse_cooldown var/pulse_cooldown_time = 4 SECONDS @@ -148,7 +147,7 @@ /mob/living/simple_animal/hostile/ordeal/thunderbird_corrosion name = "Thunder Warrior" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "An agent of the disciplinary team, corrupted by an abnormality. But how?" icon = 'ModularTegustation/Teguicons/32x48.dmi' icon_state = "thunder_warrior" icon_living = "thunder_warrior" @@ -164,8 +163,7 @@ attack_sound = 'sound/abnormalities/thunderbird/tbird_zombieattack.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 0.7) - butcher_results = list(/obj/item/food/meat/slab/chicken = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 2) move_to_delay = 3 ranged = TRUE projectiletype = /obj/projectile/thunder_tomahawk @@ -228,7 +226,7 @@ /mob/living/simple_animal/hostile/ordeal/KHz_corrosion name = "680 Ham Actor" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "An agent of the control team, corrupted by an abnormality. But how?" icon = 'ModularTegustation/Teguicons/32x32.dmi' icon_state = "680_ham_actor" icon_living = "680_ham_actor" @@ -244,8 +242,7 @@ attack_sound = 'sound/abnormalities/thunderbird/tbird_peck.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1, PALE_DAMAGE = 1) - butcher_results = list(/obj/item/food/meat/slab/robot = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 2) move_to_delay = 4 speak = list("Kilo India Lima Lima", "Delta India Echo", "Golf Echo Tango Oscar Uniform Tango", "Oscar Mike", "Charlie Mike") speak_emote = list("emits", "groans") diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/midnight.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/midnight.dm index 622cb4b541fd..b24292212483 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/midnight.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/midnight.dm @@ -11,8 +11,8 @@ health = 4000 death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 0.2, WHITE_DAMAGE = 0.2, BLACK_DAMAGE = 0.2, PALE_DAMAGE = 0.2) - butcher_results = list(/obj/item/food/meat/slab/chicken = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/chicken = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 1) + guaranteed_butcher_results = list(/obj/item/food/meat/slab/corroded = 1) /// Range of the damage var/symphony_range = 20 /// Amount of white damage every tick diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/noon.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/noon.dm index 85099a61d838..0d3d86ea34d5 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/gold/noon.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/gold/noon.dm @@ -1,7 +1,7 @@ // Gold Noon - Boss with minions /mob/living/simple_animal/hostile/ordeal/white_lake_corrosion name = "Lady of the Lake" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "An agent captain of the central command team, corrupted by an abnormality. But how?" icon = 'ModularTegustation/Teguicons/32x64.dmi' icon_state = "lake_corrosion" icon_living = "lake_corrosion" @@ -18,8 +18,7 @@ attack_sound = 'sound/weapons/fixer/generic/blade3.ogg' death_sound = 'sound/effects/limbus_death.ogg' damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 0.5, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 1) - butcher_results = list(/obj/item/food/meat/slab/chicken = 1, /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/chicken = 1) + butcher_results = list(/obj/item/food/meat/slab/corroded = 3) speed = 3 move_to_delay = 3 @@ -249,7 +248,7 @@ /mob/living/simple_animal/hostile/ordeal/silentgirl_corrosion name = "Silent Handmaiden" - desc = "Improper use of E.G.O. can have serious consequences." + desc = "A level 2 agent of Lobotomy Corporation that has somehow been corrupted by an abnormality." icon = 'ModularTegustation/Teguicons/32x32.dmi' icon_state = "silent_girl_corrosion" icon_living = "silent_girl_corrosion" @@ -265,8 +264,7 @@ attack_verb_continuous = "stabs" attack_verb_simple = "stab" damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.6, BLACK_DAMAGE = 1.5, PALE_DAMAGE = 2) - butcher_results = list( /obj/item/food/meat/slab/human = 1) - guaranteed_butcher_results = list(/obj/item/food/meat/slab/human = 1) + butcher_results = list( /obj/item/food/meat/slab/corroded = 1) var/vengeful = FALSE var/current_target = null var/finishing = FALSE diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/green.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/green.dm index 902563287382..07756fd8c981 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/green.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/green.dm @@ -39,6 +39,7 @@ /// Can't move/attack when it's TRUE var/reloading = FALSE var/firing_time = 0 + var/firing_cooldown = 1.2 /// When at 12 - it will start "reloading" var/fire_count = 0 @@ -75,7 +76,7 @@ /mob/living/simple_animal/hostile/ordeal/green_bot_big/AttackingTarget(atom/attacked_target) if(reloading) return FALSE - if(world.time < firing_time + 1.2 SECONDS) + if(world.time < firing_time + firing_cooldown SECONDS) return FALSE . = ..() if(.) @@ -275,6 +276,7 @@ guaranteed_butcher_results = list(/obj/item/food/meat/slab/robot = 16) death_sound = 'sound/effects/ordeals/green/midnight_dead.ogg' offsets_pixel_x = list("south" = -96, "north" = -96, "west" = -96, "east" = -96) + damage_effect_scale = 1.25 var/laser_cooldown var/laser_cooldown_time = 20 SECONDS diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/shrimps.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/shrimps.dm index a1ecc6df5839..3d5afe8e20a2 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/shrimps.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/shrimps.dm @@ -29,9 +29,8 @@ /mob/living/simple_animal/hostile/shrimp_rifleman/Initialize() . = ..() - if(SSmaptype.maptype == "fixers" || SSmaptype.maptype == "city") + if(SSmaptype.maptype in SSmaptype.citymaps) del_on_death = FALSE - //extra buff shrimp i guess /mob/living/simple_animal/hostile/senior_shrimp name = "wellcheers corp senior officer" @@ -60,7 +59,7 @@ /mob/living/simple_animal/hostile/senior_shrimp/Initialize() . = ..() - if(SSmaptype.maptype == "fixers" || SSmaptype.maptype == "city") + if(SSmaptype.maptype in SSmaptype.citymaps) del_on_death = FALSE /mob/living/simple_animal/hostile/senior_shrimp/ComponentInitialize() diff --git a/code/modules/mob/living/simple_animal/hostile/ordeal/steel.dm b/code/modules/mob/living/simple_animal/hostile/ordeal/steel.dm index d09ec7bad2dd..ff422e64626f 100644 --- a/code/modules/mob/living/simple_animal/hostile/ordeal/steel.dm +++ b/code/modules/mob/living/simple_animal/hostile/ordeal/steel.dm @@ -24,7 +24,7 @@ possible_a_intents = list(INTENT_HELP, INTENT_HARM) //similar to a human damage_coeff = list(RED_DAMAGE = 0.8, WHITE_DAMAGE = 1.2, BLACK_DAMAGE = 1, PALE_DAMAGE = 1) - butcher_results = list(/obj/item/food/meat/slab/human = 2, /obj/item/food/meat/slab/human/mutant/moth = 1) + butcher_results = list(/obj/item/food/meat/slab/buggy = 2) silk_results = list(/obj/item/stack/sheet/silk/steel_simple = 1) /mob/living/simple_animal/hostile/ordeal/steel_dawn/Initialize() @@ -66,7 +66,7 @@ attack_verb_continuous = "slashes" attack_verb_simple = "slash" death_sound = 'sound/voice/mook_death.ogg' - butcher_results = list(/obj/item/food/meat/slab/human = 1, /obj/item/food/meat/slab/human/mutant/moth = 2) + butcher_results = list(/obj/item/food/meat/slab/buggy = 2) silk_results = list(/obj/item/stack/sheet/silk/steel_simple = 2, /obj/item/stack/sheet/silk/steel_advanced = 1) /mob/living/simple_animal/hostile/ordeal/steel_dawn/steel_noon/MeleeAction() @@ -224,7 +224,7 @@ footstep_type = FOOTSTEP_MOB_SHOE possible_a_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_HARM) death_sound = 'sound/voice/hiss5.ogg' - butcher_results = list(/obj/item/food/meat/slab/human = 2, /obj/item/food/meat/slab/human/mutant/moth = 1) + butcher_results = list(/obj/item/food/meat/slab/buggy = 3) silk_results = list(/obj/item/stack/sheet/silk/steel_simple = 4, /obj/item/stack/sheet/silk/steel_advanced = 2, /obj/item/stack/sheet/silk/steel_elegant = 1) //Last command issued var/last_command = 0 diff --git a/code/modules/mob/living/simple_animal/projectile_blocker.dm b/code/modules/mob/living/simple_animal/projectile_blocker.dm index 631618fb0232..7e9c7645270b 100644 --- a/code/modules/mob/living/simple_animal/projectile_blocker.dm +++ b/code/modules/mob/living/simple_animal/projectile_blocker.dm @@ -47,7 +47,7 @@ return TRUE if(!isturf(parent.loc)) return TRUE - if(parent.CanPassThroughBlocker(mover, target)) + if(parent.CanPassThroughBlocker(mover, target, get_turf(src))) return TRUE return parent.CanPass(mover, target) @@ -126,10 +126,12 @@ moveToNullspace() ///For letting some mobs walk through the blockers -/mob/living/simple_animal/proc/CanPassThroughBlocker(atom/movable/mover, turf/target) +/mob/living/simple_animal/proc/CanPassThroughBlocker(atom/movable/mover, turf/start, turf/destination) return FALSE -/mob/living/simple_animal/hostile/CanPassThroughBlocker(atom/movable/mover, turf/target) +/mob/living/simple_animal/hostile/CanPassThroughBlocker(atom/movable/mover, turf/start, turf/destination) if(isliving(mover) && faction_check_mob(mover)) return TRUE + if(isliving(mover) && get_dist_manhattan(get_turf(src), destination) > get_dist_manhattan(get_turf(src), start)) + return TRUE return FALSE diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 8bd19ccffec1..63adfc821ccb 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -191,6 +191,9 @@ var/list/offsets_pixel_y = list("south" = 0, "north" = 0, "west" = 0, "east" = 0) var/should_projectile_blockers_change_orientation = FALSE + //If they should get they city faction in City gamemodes + var/city_faction = TRUE + /mob/living/simple_animal/Initialize() . = ..() GLOB.simple_animals[AIStatus] += src @@ -237,7 +240,8 @@ AddSpell(bloodspell) //LC13 Check. If it's the citymap, they all gain a faction if(SSmaptype.maptype in SSmaptype.citymaps) - faction += "city" + if(city_faction) + faction += "city" if(occupied_tiles_down > 0 || occupied_tiles_up > 0 || occupied_tiles_left > 0 || occupied_tiles_right > 0) occupied_tiles_left_current = occupied_tiles_left occupied_tiles_right_current = occupied_tiles_right diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm index e1b8dae8c977..4cc7a6e03ce5 100644 --- a/code/modules/movespeed/modifiers/mobs.dm +++ b/code/modules/movespeed/modifiers/mobs.dm @@ -139,3 +139,7 @@ /datum/movespeed_modifier/qliphothoverload flags = IS_ACTUALLY_MULTIPLICATIVE multiplicative_slowdown = 2 + +/datum/movespeed_modifier/bloodhold + flags = IS_ACTUALLY_MULTIPLICATIVE + multiplicative_slowdown = 4 diff --git a/code/modules/ordeals/_ordeal.dm b/code/modules/ordeals/_ordeal.dm index 5fe2df2088e0..ccece1bacf5c 100644 --- a/code/modules/ordeals/_ordeal.dm +++ b/code/modules/ordeals/_ordeal.dm @@ -39,7 +39,7 @@ /datum/ordeal/proc/Run() start_time = ROUNDTIME SSlobotomy_corp.current_ordeals += src - priority_announce(announce_text, name, sound='sound/effects/meltdownAlert.ogg') + priority_announce(announce_text, name, sound='sound/vox_fem/..ogg') // We want this to be silent, so play a silent sound since null uses defaults /// If dawn started - clear suppression options if(level == 1 && !istype(SSlobotomy_corp.core_suppression)) SSlobotomy_corp.ResetPotentialSuppressions() @@ -54,7 +54,7 @@ // Ends the event /datum/ordeal/proc/End() var/total_reward = max(SSlobotomy_corp.box_goal, 3000) * reward_percent - priority_announce("The Ordeal has ended. Facility has been rewarded with [reward_percent*100]% PE.", name, sound=null) + priority_announce("The Ordeal has ended. Facility has been rewarded with [reward_percent*100]% PE.", name, sound='sound/vox_fem/..ogg') SSlobotomy_corp.AdjustAvailableBoxes(total_reward) SSlobotomy_corp.current_ordeals -= src SSlobotomy_corp.ordeal_stats += 5 diff --git a/code/modules/paperwork/paper_premade.dm b/code/modules/paperwork/paper_premade.dm index f0dfaa133468..9efa54ee8f40 100644 --- a/code/modules/paperwork/paper_premade.dm +++ b/code/modules/paperwork/paper_premade.dm @@ -125,6 +125,24 @@
\ Good Luck...
" +/obj/item/paper/fluff/fixer_skills + name = "Fixer Skills Guide" + info = "
Well, This will be a short one, but it should be enough to teach new Fixers on how to learn new skills in this line of work.

\ +
\ + In total, there are 4 levels of skills you can learn. And depending on your grade you will be able to learn some skills, or become unable to learn others.
\ +
\ + Grade 9 Fixers will be able to learn level 1 Skills, Which are your main abilities for surviving in the backstreets ranging from healing and movement. You are also able to learn 5 of them at this level.
\ +
\ + Grade 8 Fixers are also able to learn level 1 Skills, but they are only able to learn 3 level 1 Skills. However, if they already knew 5 level 1 skills they will keep those skills.
\ +
\ + Grade 7 and 6 Fixers will be able to learn level 2 Skills, Which are your main utility, making gathering and looting easier. At this point and all higher grades, you will also be unable to learn skills of a lower level. So be cautious of over leveling.
\ +
\ + Grade 5 Fixers will be able to learn level 3 Skill, Which are your passives, you are able too toggle them on and off to gain benefits and downsides while they are active. You are only able to learn one of this skill.
\ +
\ + Finaly, Grade 4 Fixers will be able to learn level 4 Skills, Which are your 'Ultimate' abilities. They hold powerful effects, but come at the cost off having very long cooldowns. You are only able to learn one of this skill.
\ +
\ + Written by the Hana Association" + /obj/item/paper/fluff/sop name = "paper- 'Standard Operating Procedure'" info = "Alert Levels:
\nBlue- Emergency
\n\t1. Caused by fire
\n\t2. Caused by manual interaction
\n\tAction:
\n\t\tClose all fire doors. These can only be opened by resetting the alarm
\nRed- Ejection/Self-Destruct
\n\t1. Caused by module operating computer.
\n\tAction:
\n\t\tAfter the specified time the module will eject completely.
\n
\nEngine Maintenance Instructions:
\n\tShut off ignition systems:
\n\tActivate internal power
\n\tActivate orbital balance matrix
\n\tRemove volatile liquids from area
\n\tWear a fire suit
\n
\n\tAfter
\n\t\tDecontaminate
\n\t\tVisit medical examiner
\n
\nToxin Laboratory Procedure:
\n\tWear a gas mask regardless
\n\tGet an oxygen tank.
\n\tActivate internal atmosphere
\n
\n\tAfter
\n\t\tDecontaminate
\n\t\tVisit medical examiner
\n
\nDisaster Procedure:
\n\tFire:
\n\t\tActivate sector fire alarm.
\n\t\tMove to a safe area.
\n\t\tGet a fire suit
\n\t\tAfter:
\n\t\t\tAssess Damage
\n\t\t\tRepair damages
\n\t\t\tIf needed, Evacuate
\n\tMeteor Shower:
\n\t\tActivate fire alarm
\n\t\tMove to the back of ship
\n\t\tAfter
\n\t\t\tRepair damage
\n\t\t\tIf needed, Evacuate
\n\tAccidental Reentry:
\n\t\tActivate fire alarms in front of ship.
\n\t\tMove volatile matter to a fire proof area!
\n\t\tGet a fire suit.
\n\t\tStay secure until an emergency ship arrives.
\n
\n\t\tIf ship does not arrive-
\n\t\t\tEvacuate to a nearby safe area!" diff --git a/code/modules/paperwork/photocopier.dm b/code/modules/paperwork/photocopier.dm index 42c3a6eb69c7..694fcbc4a488 100644 --- a/code/modules/paperwork/photocopier.dm +++ b/code/modules/paperwork/photocopier.dm @@ -43,6 +43,8 @@ var/color_mode = PHOTO_COLOR /// Indicates whether the printer is currently busy copying or not. var/busy = FALSE + /// Variable needed to determine the selected category of forms on Photocopier.js + var/category /obj/machinery/photocopier/Initialize() . = ..() @@ -60,6 +62,18 @@ data["has_item"] = !copier_empty() data["num_copies"] = num_copies + try + // var/list/blanks = json_decode(file2text("config/blanks.json")) LOBOTOMYCORPORATION EDIT OLD + var/list/blanks = (SSmaptype.maptype in SSmaptype.citymaps) ? json_decode(file2text("config/blanks_city.json")) : json_decode(file2text("config/blanks.json")) // LOBOTOMYCORPORATION EDIT NEW + if (blanks != null) + data["blanks"] = blanks + data["category"] = category + data["forms_exist"] = TRUE + else + data["forms_exist"] = FALSE + catch() + data["forms_exist"] = FALSE + if(photo_copy) data["is_photo"] = TRUE data["color_mode"] = color_mode @@ -156,6 +170,27 @@ if("set_copies") num_copies = clamp(text2num(params["num_copies"]), 1, MAX_COPIES_AT_ONCE) return TRUE + // Changes the forms displayed on Photocopier.js when you switch categories + if("choose_category") + category = params["category"] + return TRUE + // Called when you press print blank + if("print_blank") + if(busy) + to_chat(usr, span_warning("[src] is currently busy copying something. Please wait until it is finished.")) + return FALSE + if (toner_cartridge.charges - PAPER_TONER_USE < 0) + to_chat(usr, span_warning("There is not enough toner in [src] to print the form, please replace the cartridge.")) + return FALSE + do_copy_loop(CALLBACK(src, PROC_REF(make_blank_print)), usr) + var/obj/item/paper/printblank = new /obj/item/paper (loc) + var/printname = params["name"] + var/list/printinfo + for(var/infoline as anything in params["info"]) + printinfo += infoline + printblank.name = printname + printblank.info = printinfo + return printblank /** * Determines if the photocopier has enough toner to create `num_copies` amount of copies of the currently inserted item. @@ -267,6 +302,12 @@ give_pixel_offset(copied_doc) toner_cartridge.charges -= DOCUMENT_TONER_USE +/** + * The procedure is called when printing a blank to write off toner consumption. + */ +/obj/machinery/photocopier/proc/make_blank_print() + toner_cartridge.charges -= PAPER_TONER_USE + /** * Handles the copying of an ass photo. * diff --git a/code/modules/paperwork/records/info/waw.dm b/code/modules/paperwork/records/info/waw.dm index 6505c4dd95ce..157fb14115e0 100644 --- a/code/modules/paperwork/records/info/waw.dm +++ b/code/modules/paperwork/records/info/waw.dm @@ -368,13 +368,10 @@ abno_type = /mob/living/simple_animal/hostile/abnormality/sphinx abno_code = "T-03-33" abno_info = list( - "When the work was complete, the Qliphoth Counter lowered depending on the abnormality's mood. The abnormality's mood improved after an offering was successfully made.", - "When an employee performed riddle work, the abnormality posed a question in a strange language. Agents are then provided with a cipher.", - "When the employee performed offering work, an item placed on the nearby offering table was inspected by the abnormality. If the table was empty, the abnormality checked the employee's hands.", - "When the abnormality was disappointed with an offering, the offender had one of their senses taken away.", - "When the riddle was successfully solved with an offering, the Qliphoth counter raised to its maximum. In addition, the abnormality willingly parted with an anomalous object referred to henceforth as a gift.", - "When agent bong bong used the canopic jar gift, she was cured of permanent blindness. Effects may differ but are usually beneficial.", - "Agent Joshua, who was turned to stone by the abnormality was able to be saved using gift of golden needles.") + "Employees with a high Prudence Level had their work chance increased dramatically.", + "When the work result was Good, the abnormality provided a treasure with a low probability.", + "When the work result was Bad, the Qliphoth counter reduced. Additionally, employees with Prudence Level 4 or lower had one of their senses taken away.", + "Agent Joshua, who was turned to stone by the abnormality was able to be saved using the treasure of golden needles.") //Clouded Monk /obj/item/paper/fluff/info/waw/clouded_monk diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index d8453dbb326b..cb9469f97c39 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -375,8 +375,10 @@ projectile_piercing = PASSMOB /obj/projectile/beam/laser/iff/on_hit(atom/target, blocked = FALSE) - if(ishuman(target)) - return + if(isliving(target)) + var/mob/living/L = target + if("neutral" in L.faction) + return nodamage = FALSE . = ..() qdel(src) diff --git a/code/modules/projectiles/projectile/bullets/smg.dm b/code/modules/projectiles/projectile/bullets/smg.dm index ee55cf87adc9..b5af454b5ecb 100644 --- a/code/modules/projectiles/projectile/bullets/smg.dm +++ b/code/modules/projectiles/projectile/bullets/smg.dm @@ -47,3 +47,6 @@ /obj/projectile/bullet/c9x19mm/greenbot damage = 6 speed = 0.4 + +/obj/projectile/bullet/c9x19mm/greenbot/city + damage = 1 diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index d746671b11e3..f4c7be092c68 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -891,6 +891,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_name = "Barefoot" glass_desc = "Barefoot and pregnant." +/* LOBOTOMYCORPORATION REMOVAL /datum/reagent/consumable/ethanol/barefoot/on_mob_life(mob/living/carbon/M) if(ishuman(M)) //Barefoot causes the imbiber to quickly regenerate brute trauma if they're not wearing shoes. var/mob/living/carbon/human/H = M @@ -898,6 +899,7 @@ All effects don't start immediately, but rather get worse over time; the rate is H.adjustBruteLoss(-3, 0) . = 1 return ..() || . +*/ /datum/reagent/consumable/ethanol/snowwhite name = "Snow White" @@ -1957,7 +1959,7 @@ All effects don't start immediately, but rather get worse over time; the rate is generate_data_info(data) /datum/reagent/consumable/ethanol/fruit_wine/proc/generate_data_info(list/data) - var/const/minimum_percent = 0.15 + var/const/minimum_percent = 0.15 var/const/notable_percent = minimum_percent * 2 var/list/primary_tastes = list() var/list/secondary_tastes = list() diff --git a/config/blanks.json b/config/blanks.json new file mode 100644 index 000000000000..24c2d0e8cc1d --- /dev/null +++ b/config/blanks.json @@ -0,0 +1,817 @@ +[ + { + "code": "NT-CMD-JA", + "category": "Command Department", + "name": "Job Application", + "info": [ + "

Job Application

", + "
", + "

Applicant's name (with signature):

", + "

[]

", + "

Desired position

", + "

[]

", + "
", + "

By signing this document, you agree to Nanotrasen's policies on labor protection, occupational health and safety, compensation, and confidentiality.

", + "
", + "

Condemnation Review

", + "

Name of the Head of Personal or deputy head (with signature):

", + "

[]

", + "

Head of Personal Decision:

", + "

[]

", + "

[]

", + "

Review Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "

Name of department head or deputy head (with signature):

", + "

[]

", + "

Department Head's Decision:

", + "

[]

", + "

[]

", + "

Review Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

Appointment decision

", + "

[]

", + "

[]

", + "

[]

", + "

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and stamps of the heads or their deputies, this document has no corporate validity and cannot be considered evidence of the candidate's enrollment in the desired position.

" + ] + }, + { + "code": "NT-CMD-JT", + "category": "Command Department", + "name": "Job termination", + "info": [ + "

Job Termination

", + "
", + "

Name of the dismissed person:

", + "

[]

", + "

Position held

", + "

[]

", + "

Description of the reason for dismissal:

", + "

[]

", + "

[]

", + "

[]

", + "

Name of the Head of Personal or deputy head (with signature):

", + "

[]

", + "

Head of Personal Decision:

", + "

[]

", + "

[]

", + "

Decision Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

The decision of the head of staff or his deputy is sufficient grounds for dismissal. If only the head of personnel or his deputy makes the decision to dismiss, VOID values must be entered in the head of department fields.

", + "
", + "

Name of department head or deputy head (with signature):

", + "

[]

", + "

Department Head's Decision:

", + "

[]

", + "

[]

", + "

Decision Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-CMD-JR", + "category": "Command Department", + "name": "Job reassignment", + "info": [ + "

Job Reassignment

", + "
", + "

Name of the person to be reassigned:

", + "

[]

", + "

Position held

", + "

[]

", + "

New position

", + "

[]

", + "

Reason :

", + "

[]

", + "

[]

", + "

[]

", + "

Name of the Head of Personal or deputy head (with signature):

", + "

[]

", + "

Head of Personal Decision:

", + "

[]

", + "

[]

", + "

Decision Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "

Name of department head or deputy head (with signature):

", + "

[]

", + "

Department Head's Decision:

", + "

[]

", + "

[]

", + "

Decision Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-CMD-C", + "category": "Command Department", + "name": "Complaint form", + "info": [ + "

Complaint form

", + "
", + "

Complainant's name (with signature):

", + "

[]

", + "

Complaint text:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

By writing and signing this complaint, you consent to the processing of your personal data by Nanotrasen Corporation.

", + "
", + "

Name of the person who received the complaint (with signature):

", + "

[]

", + "

Actions taken:

", + "

[]

", + "

[]

", + "

Date the complaint was reviewed:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-CMD-O", + "category": "Command Department", + "name": "Order form", + "info": [ + "

Order form

", + "
", + "

The name of the orderer (with signature):

", + "

[]

", + "

Order text:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

An order may be addressed not only to a specific person, but also to a group of people, as well as to a department. This should be indicated in the text of the order. The person responsible for the execution of the order must sign in the name of the person who received the order.

", + "
", + "

Name of the executor (with signature):

", + "

[]

", + "

Other notes:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-CMD-PH", + "category": "Command Department", + "name": "Permit to perform hazardous work", + "info": [ + "

Permit to perform hazardous work

", + "
", + "

Permission requestor's name (with signature):

", + "

[]

", + "

Work description:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

Responsibility for any damage to property or employees of Nanotrasen Corporation during the execution of dangerous work lies with the person requesting the permit and the person issuing the permit.

", + "
", + "

The name of the permittee (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-SCR-W", + "category": "Security Department", + "name": "Warrant", + "info": [ + "

Warrant

", + "
", + "

Arrestee's name:

", + "

[]

", + "

Reason:

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

The arrest form is legally and corporately valid if stamped and signed by the Head of Security or his/her deputy. Arrest forms should only be used during Green and BLUE threat code of the Nanotrasen facility. In the case of a higher threat code, Nanotrasen Corporation allows security personnel to make arrests with the verbal approval of the Head of Security.

", + "
", + "

Name of the head of security or his deputy (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-SCR-SW", + "category": "Security Department", + "name": "Search warrant", + "info": [ + "

Search Warrant

", + "
", + "

Name of the person being searched:

", + "

[]

", + "

Reason:

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

The arrest form is legally and corporately valid if stamped and signed by the Head of Security or his/her deputy. Arrest forms should only be used during Green and BLUE threat code of the Nanotrasen facility. In the case of a higher threat code, Nanotrasen Corporation allows security personnel to make arrests with the verbal approval of the Head of Security.

", + "
", + "

Name of the head of security or his deputy (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-SCR-IR", + "category": "Security Department", + "name": "Interrogation Report", + "info": [ + "

Interrogation Report

", + "
", + "

Name of Interrogated:

", + "

[]

", + "

Reason for interrogation:

", + "

[]

", + "

Start date of the interrogation:

", + "

[].[].[]

", + "

[]:[]

", + "

End date of interrogation:

", + "

[].[].[]

", + "

[]:[]

", + "

The course of the interrogation:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Other materials (interrogation notes):

", + "

[]

", + "

[]

", + "
", + "

Nanotrasen Corporation recommends the use of interrogation recording tools.

", + "
", + "

Name of the interrogator (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-SCR-SR", + "category": "Security Department", + "name": "Security Report", + "info": [ + "

Security Report

", + "
", + "

Name of the reporting person (with signature):

", + "

[]

", + "

Report text:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Other materials (notes):

", + "

[]

", + "

[]

", + "

Report Date:

", + "

[].[].[]

", + "

[]:[]

", + "
", + "

Name of the person who received the report (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

" + ] + }, + { + "code": "NT-SCR-EO", + "category": "Security Department", + "name": "Execution order", + "info": [ + "

Execution order

", + "
", + "

The name of the condemned to the execution:

", + "

[]

", + "

Reason for execution:

", + "

[]

", + "

[]

", + "

[]

", + "

Type of execution:

", + "

[]

", + "
", + "

Only the top management of the Nanotrasen facility, the Nanotrasen Central Command or the Nanotrasen Board of Directors can order an execution. Remember that execution is an exceptional punishment. By signing this order, you take full responsibility for any mistakes that may occur. This order must be stapled to form NT-MDC-DC after the execution of the punishment.

", + "
", + "

The name of the orderer (with signature):

", + "

[]

", + "

Other notes:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-SCR-PP", + "category": "Security Department", + "name": "Permission to possess", + "info": [ + "

Permission to possess

", + "
", + "

Owner's name:

", + "

[]

", + "

List of items:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

This permit authorizes the possession, custody, and use of the listed equipment by the person designated on the permit. The Designated Person must present this permit to any Security Officer on first request. The permit may be revoked and withdrawn at any time without cause. When filling out this form, the authorizer should fill in the blank fields with the VOID designation.

", + "
", + "

The name of the permittee (with signature):

", + "

[]

", + "

Other notes:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-ENG-PW", + "category": "Engineering Department", + "name": "Permission to perform non-standard work", + "info": [ + "

Permission to perform non-standard work

", + "
", + "

Permission requestor's name (with signature):

", + "

[]

", + "

Description of work:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

Responsibility for any damage caused to the Nanotrasen during the execution of the described work lies with the person requesting the permit and the person giving the permit.

", + "
", + "

The name of the permittee (with signature):

", + "

[]

", + "

Other notes:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-ENG-PE", + "category": "Engineering Department", + "name": "Permit for the issuance of engineering equipment", + "info": [ + "

Permit for the issuance of engineering equipment

", + "
", + "

Name of the requesting equipment (with signature):

", + "

[]

", + "

Purpose of application of the equipment:

", + "

[]

", + "

[]

", + "

[]

", + "

List of equipment:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

Responsibility for improper receipt of equipment lies with the person who signed the permit for the issuance of equipment. The VOID value must be filled in when completing the equipment list.

", + "
", + "

Name of issuing equipment (with signature):

", + "

[]

", + "

The decision to issue:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-RSH-PR", + "category": "Research Department", + "name": "Permission to perform non-standard research", + "info": [ + "

Permission to perform non-standard research

", + "
", + "

Permission requestor's name (with signature):

", + "

[]

", + "

Description of research:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

Responsibility for any damage caused to the Nanotrasen object during the execution of the research described herein lies with the person requesting the permit and the person giving the permit.

", + "
", + "

The name of the permittee (with signature):

", + "

[]

", + "

Other notes:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-RSH-PE", + "category": "Research Department", + "name": "Permit for the issuance of research equipment", + "info": [ + "

Permit for the issuance of research equipment

", + "
", + "

Name of the requesting equipment (with signature):

", + "

[]

", + "

Purpose of application of the equipment:

", + "

[]

", + "

[]

", + "

[]

", + "

List of equipment:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

Responsibility for improper receipt of equipment lies with the person who signed the permit for the issuance of equipment. The VOID value must be filled in when completing the equipment list.

", + "
", + "

Name of issuing equipment (with signature):

", + "

[]

", + "

The decision to issue:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-MDC-MP", + "category": "Medical Department", + "name": "Medical prescription", + "info": [ + "

Medical Prescription

", + "
", + "

Patient name:

", + "

[]

", + "

Diagnosis:

", + "

[]

", + "

[]

", + "

[]

", + "

Recommendations for treatment:

", + "

[]

", + "

[]

", + "

[]

", + "

List of treating drugs:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

This document entitles you to receive, store and use the listed medications. Patients should follow their doctor's recommendations when using medications. When filling out this form, the doctor should indicate the VOID value in the blank fields to avoid tampering.

", + "
", + "

The attending doctor (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-MDC-AR", + "category": "Medical Department", + "name": "Autopsy report", + "info": [ + "

Autopsy Report

", + "
", + "

Body Name:

", + "

[]

", + "

The reason for the autopsy:

", + "

[]

", + "

[]

", + "

[]

", + "

Autopsy result:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

Coroner's Name (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-MDC-DC", + "category": "Medical Department", + "name": "Death Certificate", + "info": [ + "

Death Certificate

", + "
", + "

Body Name:

", + "

[]

", + "

Confirmation of Death:

", + "

[]

", + "

[]

", + "

[]

", + "

Cause of death:

", + "

[]

", + "

[]

", + "

[]

", + "
", + "

This is evidence that the designated person is permanently dead and cannot be resurrected. The person signing the certificate is responsible for the wrongful death.

", + "
", + "

Coroner's Name (with signature):

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-SPL-PO", + "category": "Supply Department", + "name": "Permission to execute a non-standard order", + "info": [ + "

Permission to execute a non-standard order

", + "
", + "

The name of the person requesting the delivery (with signature):

", + "

[]

", + "

Purpose of delivery target:

", + "

[]

", + "

[]

", + "

[]

", + "

List of deliveries:

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

The person who signed the permission to receive the package is responsible for the improper receipt of the package. The VOID value must be filled in when completing the equipment list.

", + "
", + "

Name of the person who approved the delivery (with signature):

", + "

[]

", + "

The decision to issue:

", + "

[]

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "

Place for a stamp

", + "
", + "

This document is the property of Nanotrasen Corporation. Without the signatures and seals of the managers or their deputies, this document has no corporate force.

", + "
" + ] + }, + { + "code": "NT-LB", + "category": "Other", + "name": "Lunch bill", + "info": [ + "

Lunch Bill

", + "
", + "

Name of the place:

", + "

[]

", + "

Waiter's name (with signature):

", + "

[]

", + "
", + "

Order

", + "

1. []

", + "

2. []

", + "

3. []

", + "

4. []

", + "

5. []

", + "

6. []

", + "

7. []

", + "

8. []

", + "

9.  []

", + "

Total price (includes the cost of paper)

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "
", + "

This payment document is the property of NanoTrasen. You must deliver this document to the head of the NanoTrasen facility staff within 24 hours of service for independent tax accounting.

", + "
" + ] + }, + { + "code": "NT-PS", + "category": "Other", + "name": "Provision of paid services", + "info": [ + "

Provision of paid services

", + "
", + "

Name of the place:

", + "

[]

", + "

Name of service provider (with signature):

", + "

[]

", + "
", + "

List of services rendered

", + "

1. []

", + "

2. []

", + "

3. []

", + "

4. []

", + "

5. []

", + "

6. []

", + "

7. []

", + "

8. []

", + "

9.  []

", + "

Total price (includes the cost of paper)

", + "

[]

", + "

Date:

", + "

[].[].[]

", + "

[]:[]

", + "
", + "

This payment document is the property of NanoTrasen. You must deliver this document to the head of the NanoTrasen facility staff within 24 hours of service for independent tax accounting.

", + "
" + ] + } +] diff --git a/config/blanks_city.json b/config/blanks_city.json new file mode 100644 index 000000000000..8017b63a72c6 --- /dev/null +++ b/config/blanks_city.json @@ -0,0 +1,167 @@ +[ + { + "code": "COL-FF-FOR", + "category": "Fixer Forms", + "name": "Fixer Office Registration", + "info": [ + "

Hana-Association - Fixer Office Registration form

", + "
", + "

This is a Registration form for the creation of an office. Please fill in the following information properly. This form is meant for the Office Director.

", + "

Registrant Information

", + "
    ", + "
  • Name:[]

  • ", + "
  • Age:[] Sex:[]

  • ", + "
  • Has the registrant previously registered to another Office? (Y/N) []

  • ", + "
", + "
", + "
", + "

========

", + "

STAMP HERE

", + "

========

", + "
", + "
", + "

Office Details

", + "

Office-Name: []

", + "

Office Type (ONLY CHECK 1)

", + "
    ", + "
  • [] Combat

  • ", + "
  • [] Protection

  • ", + "
  • [] Peacekeeping

  • ", + "
  • [] Recon

  • ", + "
  • [] Fishing

  • ", + "
  • [] Workshop

  • ", + "
  • [] Other*

  • ", + "
", + "

*Other must be defined for capsule, if definition is not qualified for a specific capsule, your Hana Associate will choose one for you.

", + "

Starting-Number of Fixers: []

", + "

By signing this, you agree to the laws and stipulations that Hana can impose.

", + "

Signature:[]

", + "

Approved By: []

", + "
", + "

Offices approved by the Hana-Association are liable to direct-orders/Emergency Summons in regards to Urban-Myths and above. Please keep in mind the Hana-Association retains the right to Remove your office from the list of Registered offices, if the Hana-Association has in any reason, or any case decided to do so. In which case, the Hana-Association retains the right to termination of this authorization

", + "
" + ] + }, + { + "code": "COL-FF-HGS", + "category": "Fixer Forms", + "name": "Hana Grading Sheet", + "info": [ + "

Hana Grading Sheet

", + "

Fixer information

", + "

Name []

", + "

Office []

", + "

Grade Issued (C denotes Color): []

", + "

Hana Official Name:

", + "

[]

", + "

Stamp Below:

", + "
" + ] + }, + { + "code": "COL-FF-SFL", + "category": "Fixer Forms", + "name": "Solo Fixer License", + "info": [ + "

Hana-Association - Solo Fixer License Form

", + "
", + "

This is a Hana-Association official form stating that you are an official Fixer with no office or association affiliation.

", + "

As of, []Citizen[]has requested to form a fixer under the Hana Association. Within District[] of the City.

", + "

Fixer approval given by [], Official of the Hana-Association

", + "
", + "
", + "

========

", + "

STAMP HERE

", + "

========

", + "
", + "
", + "

Fixers approved by the Hana-Association are liable to direct-orders/Emergency Summons in regards to Urban-Myths and above. Please keep in mind the Hana-Association retains the right to Remove your status from the registry, if the Hana-Association has in any reason, or any case decided to do so. In which case, the Hana-Association retains the right to termination of this authorization

", + "
" + ] + }, + { + "code": "COL-HQ-CQ-GMG", + "category": "Combat Hana Quests", + "name": "Combat Quest - General Meat Gathering", + "info": [ + "

Type - Combat

", + "

There have been reports of the Outskirts being flooded with excess amounts of sweepers, robots, worms, and people with augments that look like bugs.

", + "

The Hana Association requests assistance from fixers in clearing out the Outskirts.

", + "

Rewards:

", + "
    ", + "
  • 5 Bug Meat from G-Corp Remnants: 1300 Ahn

  • ", + "
  • 6 Meat Slurry from Sweepers: 1500 Ahn

  • ", + "
  • 5 Nihilist Components from Robots: 1700 Ahn

  • ", + "
  • 4 Perfect Meat from small Worms: 900 Ahn

  • ", + "
", + "

(These jobs are repeatable a total of three times per person/office.)

", + "
" + ] + }, + { + "code": "COL-HQ-CQ-PTC", + "category": "Combat Hana Quests", + "name": "Combat Quest - Protecting The City", + "info": [ + "

Type - Combat (Protection)

", + "

There has been reports of hostiles around the city. Hana will give you a lump sum up front,

", + "

so long as you assist in cleaning them out.

", + "

Rewards

", + "
    ", + "
  • All proceeds from kills.

  • ", + "
  • Grade 9 Fixer - 500 ahn

  • ", + "
  • Grade 8 Fixer - 700 ahn

  • ", + "
  • Grade 7 Fixer - 1000 ahn

  • ", + "
  • Grade 6 Fixer - 1500 ahn

  • ", + "
  • Grade 5 Fixer - 2000 ahn

  • ", + "
  • Grade 4 Fixer - 2500 ahn

  • ", + "
  • Grade 3 Fixer - 3000 ahn

  • ", + "
  • Grade 2 Fixer - 4000 ahn

  • ", + "
  • Grade 1 Fixer - 5000 ahn

  • ", + "
", + "

(Failure to assist will result in a breach of contract)

", + "
" + ] + }, + { + "code": "COL-HQ-RQ-BR", + "category": "Retrieval Hana Quests", + "name": "Retrieval Quest - Body Retrieval", + "info": [ + "

Type - Retrieval

", + "

Fixers going in to the Outskirts have proven to have a high chance of not coming back from their expeditions.

", + "

Bringing back the corpse of a registered fixer in a state that is revivable will be eligible for a reward.

", + "

Reward:

", + "
  • Fixer Corpse returned to Hana: 1000 Ahn
", + "
" + ] + }, + { + "code": "COL-HQ-BR", + "category": "Misc Hana Quests", + "name": "Contract Breach", + "info": [ + "

Type - Contract Enforcement

", + "

A Hana-made contract has been breached.

", + "

You are being hired to kill and retrieve their body.

", + "

Target - []

", + "

Rewards

", + "
  • [] Ahn
", + "
" + ] + }, + { + "code": "COL-HQ-OI", + "category": "Misc Hana Quests", + "name": "Office Inspection", + "info": [ + "

Type - Office Grading

", + "

This is a lump sum grant given to offices that are graded.

", + "

Office grades are up to the local Hana Representative or Administrator.

", + "

Rewards

", + "
  • Increase in Grade x 500 ahn
", + "

(Only available to offices with a physical office space)

", + "
" + ] + } +] diff --git a/config/admin_nicknames.json b/config/example/admin_nicknames.json similarity index 100% rename from config/admin_nicknames.json rename to config/example/admin_nicknames.json diff --git a/config/admin_ranks.txt b/config/example/admin_ranks.txt similarity index 100% rename from config/admin_ranks.txt rename to config/example/admin_ranks.txt diff --git a/config/admins.txt b/config/example/admins.txt similarity index 100% rename from config/admins.txt rename to config/example/admins.txt diff --git a/config/antag_rep.txt b/config/example/antag_rep.txt similarity index 100% rename from config/antag_rep.txt rename to config/example/antag_rep.txt diff --git a/config/arenas/README.md b/config/example/arenas/README.md similarity index 100% rename from config/arenas/README.md rename to config/example/arenas/README.md diff --git a/config/awaymissionconfig.txt b/config/example/awaymissionconfig.txt similarity index 100% rename from config/awaymissionconfig.txt rename to config/example/awaymissionconfig.txt diff --git a/config/badges.json b/config/example/badges.json similarity index 100% rename from config/badges.json rename to config/example/badges.json diff --git a/config/comms.txt b/config/example/comms.txt similarity index 100% rename from config/comms.txt rename to config/example/comms.txt diff --git a/config/config.txt b/config/example/config.txt similarity index 100% rename from config/config.txt rename to config/example/config.txt diff --git a/config/dbconfig.txt b/config/example/dbconfig.txt similarity index 100% rename from config/dbconfig.txt rename to config/example/dbconfig.txt diff --git a/config/dynamic.json b/config/example/dynamic.json similarity index 100% rename from config/dynamic.json rename to config/example/dynamic.json diff --git a/config/game_options.txt b/config/example/game_options.txt similarity index 100% rename from config/game_options.txt rename to config/example/game_options.txt diff --git a/config/iceruinblacklist.txt b/config/example/iceruinblacklist.txt similarity index 100% rename from config/iceruinblacklist.txt rename to config/example/iceruinblacklist.txt diff --git a/config/in_character_filter.txt b/config/example/in_character_filter.txt similarity index 100% rename from config/in_character_filter.txt rename to config/example/in_character_filter.txt diff --git a/config/interviews.txt b/config/example/interviews.txt similarity index 100% rename from config/interviews.txt rename to config/example/interviews.txt diff --git a/config/jobs.txt b/config/example/jobs.txt similarity index 100% rename from config/jobs.txt rename to config/example/jobs.txt diff --git a/config/jukebox_music/LICENSE.txt b/config/example/jukebox_music/LICENSE.txt similarity index 100% rename from config/jukebox_music/LICENSE.txt rename to config/example/jukebox_music/LICENSE.txt diff --git a/config/jukebox_music/README.txt b/config/example/jukebox_music/README.txt similarity index 100% rename from config/jukebox_music/README.txt rename to config/example/jukebox_music/README.txt diff --git a/config/jukebox_music/sounds/exclude b/config/example/jukebox_music/sounds/exclude similarity index 100% rename from config/jukebox_music/sounds/exclude rename to config/example/jukebox_music/sounds/exclude diff --git a/config/lavaruinblacklist.txt b/config/example/lavaruinblacklist.txt similarity index 100% rename from config/lavaruinblacklist.txt rename to config/example/lavaruinblacklist.txt diff --git a/config/maps.txt b/config/example/maps.txt similarity index 100% rename from config/maps.txt rename to config/example/maps.txt diff --git a/config/motd.txt b/config/example/motd.txt similarity index 100% rename from config/motd.txt rename to config/example/motd.txt diff --git a/config/policy.json b/config/example/policy.json similarity index 100% rename from config/policy.json rename to config/example/policy.json diff --git a/config/resources.txt b/config/example/resources.txt similarity index 100% rename from config/resources.txt rename to config/example/resources.txt diff --git a/config/silicon_laws.txt b/config/example/silicon_laws.txt similarity index 100% rename from config/silicon_laws.txt rename to config/example/silicon_laws.txt diff --git a/config/spaceruinblacklist.txt b/config/example/spaceruinblacklist.txt similarity index 100% rename from config/spaceruinblacklist.txt rename to config/example/spaceruinblacklist.txt diff --git a/config/title_music/LICENSE.txt b/config/example/title_music/LICENSE.txt similarity index 100% rename from config/title_music/LICENSE.txt rename to config/example/title_music/LICENSE.txt diff --git a/config/title_music/README.txt b/config/example/title_music/README.txt similarity index 100% rename from config/title_music/README.txt rename to config/example/title_music/README.txt diff --git a/config/title_music/sounds/exclude b/config/example/title_music/sounds/exclude similarity index 100% rename from config/title_music/sounds/exclude rename to config/example/title_music/sounds/exclude diff --git a/config/title_screens/LICENSE.txt b/config/example/title_screens/LICENSE.txt similarity index 100% rename from config/title_screens/LICENSE.txt rename to config/example/title_screens/LICENSE.txt diff --git a/config/title_screens/README.txt b/config/example/title_screens/README.txt similarity index 100% rename from config/title_screens/README.txt rename to config/example/title_screens/README.txt diff --git a/config/title_screens/images/exclude b/config/example/title_screens/images/exclude similarity index 100% rename from config/title_screens/images/exclude rename to config/example/title_screens/images/exclude diff --git a/config/trusted_players.txt b/config/example/trusted_players.txt similarity index 100% rename from config/trusted_players.txt rename to config/example/trusted_players.txt diff --git a/config/unbuyableshuttles.txt b/config/example/unbuyableshuttles.txt similarity index 100% rename from config/unbuyableshuttles.txt rename to config/example/unbuyableshuttles.txt diff --git a/config/whitelist.txt b/config/example/whitelist.txt similarity index 100% rename from config/whitelist.txt rename to config/example/whitelist.txt diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index f1cc646bd4f9..f99db3cf7739 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/effects/eldritch.dmi b/icons/effects/eldritch.dmi index 82549dccf081..5c7dadcb69f5 100644 Binary files a/icons/effects/eldritch.dmi and b/icons/effects/eldritch.dmi differ diff --git a/icons/mob/actions/actions_abnormality.dmi b/icons/mob/actions/actions_abnormality.dmi index 0e9f0cea9b0a..2af44ab1be4a 100644 Binary files a/icons/mob/actions/actions_abnormality.dmi and b/icons/mob/actions/actions_abnormality.dmi differ diff --git a/icons/mob/actions/actions_rcorp.dmi b/icons/mob/actions/actions_rcorp.dmi new file mode 100644 index 000000000000..c3ccc57061ca Binary files /dev/null and b/icons/mob/actions/actions_rcorp.dmi differ diff --git a/icons/mob/actions/actions_shrimp.dmi b/icons/mob/actions/actions_shrimp.dmi new file mode 100644 index 000000000000..c71f39aef41f Binary files /dev/null and b/icons/mob/actions/actions_shrimp.dmi differ diff --git a/icons/mob/inhands/64x64_lefthand.dmi b/icons/mob/inhands/64x64_lefthand.dmi index b32050b2b943..4728e22a03c0 100644 Binary files a/icons/mob/inhands/64x64_lefthand.dmi and b/icons/mob/inhands/64x64_lefthand.dmi differ diff --git a/icons/mob/inhands/64x64_righthand.dmi b/icons/mob/inhands/64x64_righthand.dmi index 1ea8df44ae4a..7f61bce124d3 100644 Binary files a/icons/mob/inhands/64x64_righthand.dmi and b/icons/mob/inhands/64x64_righthand.dmi differ diff --git a/icons/mob/inhands/96x96_lefthand.dmi b/icons/mob/inhands/96x96_lefthand.dmi index 4dd7aab4d6f7..232cc9a98e93 100644 Binary files a/icons/mob/inhands/96x96_lefthand.dmi and b/icons/mob/inhands/96x96_lefthand.dmi differ diff --git a/icons/mob/inhands/96x96_righthand.dmi b/icons/mob/inhands/96x96_righthand.dmi index 3866084cc211..9d802231b3dd 100644 Binary files a/icons/mob/inhands/96x96_righthand.dmi and b/icons/mob/inhands/96x96_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/ego_lefthand.dmi b/icons/mob/inhands/weapons/ego_lefthand.dmi index 5d331e0d00b8..4d3877b02b2d 100644 Binary files a/icons/mob/inhands/weapons/ego_lefthand.dmi and b/icons/mob/inhands/weapons/ego_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/ego_righthand.dmi b/icons/mob/inhands/weapons/ego_righthand.dmi index f6538be472e0..41160a202cfc 100644 Binary files a/icons/mob/inhands/weapons/ego_righthand.dmi and b/icons/mob/inhands/weapons/ego_righthand.dmi differ diff --git a/icons/obj/ego_weapons.dmi b/icons/obj/ego_weapons.dmi index 79cd28bc800d..7dd45890d4c9 100644 Binary files a/icons/obj/ego_weapons.dmi and b/icons/obj/ego_weapons.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 457c5ab9be42..5e0c8358762a 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index d29eab635627..a35862cf3c3f 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index ec917ff24628..122fbd1f0d29 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/lobotomy-corp13.dme b/lobotomy-corp13.dme index 4b27a9d33a3f..3bf3725d9538 100644 --- a/lobotomy-corp13.dme +++ b/lobotomy-corp13.dme @@ -160,6 +160,7 @@ #include "code\__DEFINES\~lobotomy_defines\_patreon.dm" #include "code\__DEFINES\~lobotomy_defines\adventure.dm" #include "code\__DEFINES\~lobotomy_defines\is_helpers.dm" +#include "code\__DEFINES\~lobotomy_defines\jobs.dm" #include "code\__DEFINES\~lobotomy_defines\weapon.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_logging.dm" @@ -224,6 +225,7 @@ #include "code\_globalvars\misc.dm" #include "code\_globalvars\regexes.dm" #include "code\_globalvars\religion.dm" +#include "code\_globalvars\tgui.dm" #include "code\_globalvars\traits.dm" #include "code\_globalvars\lists\achievements.dm" #include "code\_globalvars\lists\admin.dm" @@ -543,6 +545,7 @@ #include "code\datums\components\radioactive.dm" #include "code\datums\components\religious_tool.dm" #include "code\datums\components\remote_materials.dm" +#include "code\datums\components\return_to_origin.dm" #include "code\datums\components\rotation.dm" #include "code\datums\components\shrink.dm" #include "code\datums\components\silkweave.dm" @@ -584,6 +587,7 @@ #include "code\datums\components\crafting\recipes\tools.dm" #include "code\datums\components\crafting\recipes\weapons.dm" #include "code\datums\components\crafting\recipes\carnival_silk\armor_weaving\carnival_blade_lineage.dm" +#include "code\datums\components\crafting\recipes\carnival_silk\armor_weaving\carnival_bloodfiend.dm" #include "code\datums\components\crafting\recipes\carnival_silk\armor_weaving\carnival_boatworks.dm" #include "code\datums\components\crafting\recipes\carnival_silk\armor_weaving\carnival_custom_armor.dm" #include "code\datums\components\crafting\recipes\carnival_silk\armor_weaving\carnival_index.dm" @@ -1107,6 +1111,7 @@ #include "code\game\objects\effects\spawners\traps.dm" #include "code\game\objects\effects\spawners\vaultspawner.dm" #include "code\game\objects\effects\spawners\vending.dm" +#include "code\game\objects\effects\spawners\village_spawner.dm" #include "code\game\objects\effects\spawners\xeno_egg_delivery.dm" #include "code\game\objects\effects\temporary_visuals\cult.dm" #include "code\game\objects\effects\temporary_visuals\effect_indicators.dm" @@ -2080,6 +2085,7 @@ #include "code\modules\clothing\suits\ego_gear\zayin.dm" #include "code\modules\clothing\suits\ego_gear\non_abnormality\_cityarmor.dm" #include "code\modules\clothing\suits\ego_gear\non_abnormality\bladelineage.dm" +#include "code\modules\clothing\suits\ego_gear\non_abnormality\bloodfiend.dm" #include "code\modules\clothing\suits\ego_gear\non_abnormality\carnival.dm" #include "code\modules\clothing\suits\ego_gear\non_abnormality\cinq.dm" #include "code\modules\clothing\suits\ego_gear\non_abnormality\color.dm" @@ -2375,6 +2381,7 @@ #include "code\modules\jobs\job_types\city\rat.dm" #include "code\modules\jobs\job_types\city\workshop.dm" #include "code\modules\jobs\job_types\city\fixer\east.dm" +#include "code\modules\jobs\job_types\city\fixer\minifixers.dm" #include "code\modules\jobs\job_types\city\fixer\north.dm" #include "code\modules\jobs\job_types\city\misc\blade_lineage_misc.dm" #include "code\modules\jobs\job_types\city\syndicate\blade_lineage\cutthroat.dm" @@ -2559,6 +2566,7 @@ #include "code\modules\mob\status_procs.dm" #include "code\modules\mob\transform_procs.dm" #include "code\modules\mob\camera\camera.dm" +#include "code\modules\mob\dead\crew_manifest.dm" #include "code\modules\mob\dead\dead.dm" #include "code\modules\mob\dead\new_player\login.dm" #include "code\modules\mob\dead\new_player\logout.dm" @@ -3914,6 +3922,7 @@ #include "interface\stylesheet.dm" #include "interface\skin.dmf" #include "ModularTegustation\chair_override.dm" +#include "ModularTegustation\delivery_doors.dm" #include "ModularTegustation\engineering_bounties.dm" #include "ModularTegustation\harvestable_gardens.dm" #include "ModularTegustation\languagebooks.dm" @@ -4065,15 +4074,25 @@ #include "ModularTegustation\lc13_obj\_adventure_console\console.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\_event.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\aleph\giant.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\he\singing_machine.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\he\tsa_woods.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\teth\forsaken_murderer.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\teth\old_lady.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\teth\ppodae.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\teth\scorched_girl.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\teth\void_dream.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\waw\general_bee.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\waw\thunder_bird.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\zayin\fairy_festival.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\zayin\oceanic.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\abnormality\zayin\we_can_change_anything.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\fun_contract.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\jazz_end.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\legacy.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\Man_Sand.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\quiz.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\sinking_bell.dm" +#include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\general\vending machine.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\limbus_company\allaround_cleaner.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\limbus_company\ambling_pearl.dm" #include "ModularTegustation\lc13_obj\_adventure_console\adventure_events\limbus_company\ardor_blossom.dm" @@ -4188,12 +4207,14 @@ #include "ModularTegustation\tegu_items\prosthetics\fixertools.dm" #include "ModularTegustation\tegu_items\prosthetics\mantis.dm" #include "ModularTegustation\tegu_items\prosthetics\overdrive.dm" +#include "ModularTegustation\tegu_items\prosthetics\resurgence_core.dm" #include "ModularTegustation\tegu_items\prosthetics\scrying.dm" #include "ModularTegustation\tegu_items\prosthetics\storage.dm" #include "ModularTegustation\tegu_items\prosthetics\timestop.dm" #include "ModularTegustation\tegu_items\prosthetics\zippyarm.dm" #include "ModularTegustation\tegu_items\rcorp\!abno_overwrites.dm" #include "ModularTegustation\tegu_items\rcorp\basecode.dm" +#include "ModularTegustation\tegu_items\rcorp\button.dm" #include "ModularTegustation\tegu_items\rcorp\gadgets.dm" #include "ModularTegustation\tegu_items\rcorp\itemspawner.dm" #include "ModularTegustation\tegu_items\rcorp\landmarks.dm" @@ -4293,11 +4314,13 @@ #include "ModularTegustation\tegu_mobs\apostle_antag.dm" #include "ModularTegustation\tegu_mobs\butcher.dm" #include "ModularTegustation\tegu_mobs\chaos_marine.dm" +#include "ModularTegustation\tegu_mobs\lc13_blood_fiend.dm" #include "ModularTegustation\tegu_mobs\lc13_bongy.dm" #include "ModularTegustation\tegu_mobs\lc13_corrosions.dm" #include "ModularTegustation\tegu_mobs\lc13_humanoids.dm" #include "ModularTegustation\tegu_mobs\lc13_outskirtdwellers.dm" #include "ModularTegustation\tegu_mobs\lc13_resurgence_clan_mobs.dm" +#include "ModularTegustation\tegu_mobs\lc13_resurgence_clan_npcs.dm" #include "ModularTegustation\tegu_mobs\lc13_resurgence_tapes.dm" #include "ModularTegustation\tegu_mobs\necromancer.dm" #include "ModularTegustation\tegu_mobs\necromancer_mobs.dm" diff --git a/sound/abnormalities/fairyfestival/fairyqueen_eat.ogg b/sound/abnormalities/fairyfestival/fairyqueen_eat.ogg new file mode 100644 index 000000000000..85eb68fbf5a7 Binary files /dev/null and b/sound/abnormalities/fairyfestival/fairyqueen_eat.ogg differ diff --git a/sound/abnormalities/fairyfestival/fairyqueen_growl.ogg b/sound/abnormalities/fairyfestival/fairyqueen_growl.ogg new file mode 100644 index 000000000000..ff83bdba6c5b Binary files /dev/null and b/sound/abnormalities/fairyfestival/fairyqueen_growl.ogg differ diff --git a/sound/abnormalities/fairyfestival/fairyqueen_hit.ogg b/sound/abnormalities/fairyfestival/fairyqueen_hit.ogg new file mode 100644 index 000000000000..f359a470f88e Binary files /dev/null and b/sound/abnormalities/fairyfestival/fairyqueen_hit.ogg differ diff --git a/sound/abnormalities/onesin/onesin_attack.ogg b/sound/abnormalities/onesin/onesin_attack.ogg new file mode 100644 index 000000000000..e3d9a2843dbd Binary files /dev/null and b/sound/abnormalities/onesin/onesin_attack.ogg differ diff --git a/sound/abnormalities/spiral_contempt/spiral_bleed.ogg b/sound/abnormalities/spiral_contempt/spiral_bleed.ogg new file mode 100644 index 000000000000..433a41b71ad7 Binary files /dev/null and b/sound/abnormalities/spiral_contempt/spiral_bleed.ogg differ diff --git a/sound/abnormalities/spiral_contempt/spiral_grow.ogg b/sound/abnormalities/spiral_contempt/spiral_grow.ogg new file mode 100644 index 000000000000..e9a38501c091 Binary files /dev/null and b/sound/abnormalities/spiral_contempt/spiral_grow.ogg differ diff --git a/sound/abnormalities/spiral_contempt/spiral_hit.ogg b/sound/abnormalities/spiral_contempt/spiral_hit.ogg new file mode 100644 index 000000000000..2f3248d65172 Binary files /dev/null and b/sound/abnormalities/spiral_contempt/spiral_hit.ogg differ diff --git a/sound/abnormalities/spiral_contempt/spiral_mark.ogg b/sound/abnormalities/spiral_contempt/spiral_mark.ogg new file mode 100644 index 000000000000..8b9d7c3c1056 Binary files /dev/null and b/sound/abnormalities/spiral_contempt/spiral_mark.ogg differ diff --git a/sound/abnormalities/spiral_contempt/spiral_whine.ogg b/sound/abnormalities/spiral_contempt/spiral_whine.ogg new file mode 100644 index 000000000000..e52bb6ac01cb Binary files /dev/null and b/sound/abnormalities/spiral_contempt/spiral_whine.ogg differ diff --git a/sound/ambience/resurgence_village1.ogg b/sound/ambience/resurgence_village1.ogg new file mode 100644 index 000000000000..d3f1f031abaa Binary files /dev/null and b/sound/ambience/resurgence_village1.ogg differ diff --git a/tgui/packages/tgui/interfaces/CrewManifest.js b/tgui/packages/tgui/interfaces/CrewManifest.js new file mode 100644 index 000000000000..c91be56197b4 --- /dev/null +++ b/tgui/packages/tgui/interfaces/CrewManifest.js @@ -0,0 +1,152 @@ +import { classes } from 'common/react'; +import { useBackend } from "../backend"; +import { Icon, Section, Table, Tooltip } from "../components"; +import { Window } from "../layouts"; + +// LOBOTOMYCORPORATION ADDITION START +const highcommandjobs = [ + "W-Corp L3 Squad Captain", + "Ground Commander", + "Assault Commander", + "Hana Administrator", + "Association Section Director", + "Index Messenger", + "Blade Lineage Cutthroat", + "Grand Inquisitor", + "Thumb Sottocapo", + "Kurokumo Kashira", +]; +// LOBOTOMYCORPORATION ADDITION END + +const commandJobs = [ +// LOBOTOMYCORPORATION ADDITION START + "Hana Representative", + "Index Proxy", + "Blade Lineage Salsu", + "N Corp Grosshammer", + "Thumb Capo", + "Kurokumo Hosa", + + "W-Corp L2 Type A Lieutenant", + + "Lieutenant Commander", + "Operations Officer", + "Rabbit Squad Captain", + "Reindeer Squad Captain", + "Rhino Squad Captain", + "Raven Squad Captain", + + "Base Commander", + "Support Officer", + "Rat Squad Leader", + "Rooster Squad Leader", + "Raccoon Squad Leader", + "Roadrunner Squad Leader", + // LOBOTOMYCORPORATION ADDITION END + "Head of Personnel", + "Head of Security", + "Chief Engineer", + "Research Director", + "Chief Medical Officer", +]; + +export const CrewManifest = (props, context) => { + const { data: { manifest, positions } } = useBackend(context); + + return ( + + + {Object.entries(manifest).map(([dept, crew]) => ( +
+ + {Object.entries(crew).map(([crewIndex, crewMember]) => ( + + + {crewMember.name} + + + {positions[dept].exceptions.includes(crewMember.rank) && ( + + + + )} + {crewMember.rank === "Captain" && ( + + + + )} + {/* LOBOTOMYCORPORATION ADDITION START */} + {highcommandjobs.includes(crewMember.rank) && ( + + + + )} + {/* LOBOTOMYCORPORATION ADDITION END */} + {commandJobs.includes(crewMember.rank) && ( + + + + )} + + + {crewMember.rank} + + + ))} +
+
+ ))} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/Photocopier.js b/tgui/packages/tgui/interfaces/Photocopier.js index 583778f51207..e74354d312bb 100644 --- a/tgui/packages/tgui/interfaces/Photocopier.js +++ b/tgui/packages/tgui/interfaces/Photocopier.js @@ -1,5 +1,6 @@ -import { ProgressBar, NumberInput, Button, Section, Box, Flex } from '../components'; +import { sortBy } from 'common/collections'; import { useBackend } from '../backend'; +import { Box, Button, Dropdown, Flex, NumberInput, ProgressBar, Section } from '../components'; import { Window } from '../layouts'; export const Photocopier = (props, context) => { @@ -8,13 +9,14 @@ export const Photocopier = (props, context) => { isAI, has_toner, has_item, + forms_exist, } = data; return ( + width={320} + height={512}> {has_toner ? ( @@ -25,6 +27,15 @@ export const Photocopier = (props, context) => { )} + {forms_exist ? ( + + ) : ( +
+ + No forms found. Please contact your system administrator. + +
+ )} {has_item ? ( ) : ( @@ -162,6 +173,59 @@ const Options = (props, context) => { ); }; +const Blanks = (props, context) => { + const { act, data } = useBackend(context); + const { + blanks, + category, + has_toner, + } = data; + + const sortedBlanks = sortBy( + blank => blanks.category, + )(blanks || []); + + const categories = []; + for (let blank of sortedBlanks) { + if (!categories.includes(blank.category)) { + categories.push(blank.category); + } + } + + const selectedCategory = category ?? categories[0]; + const visibleBlanks = sortedBlanks.filter(blank => ( + blank.category === selectedCategory + )); + + return ( +
+ act("choose_category", { + category: value, + })} + /> + + {visibleBlanks.map(blank => ( + + ))} + +
+ ); +}; + const AIOptions = (props, context) => { const { act, data } = useBackend(context); const { can_AI_print } = data; diff --git a/tgui/packages/tgui/styles/components/Tooltip.scss b/tgui/packages/tgui/styles/components/Tooltip.scss index 0ef766b694d0..5c041bb12632 100644 --- a/tgui/packages/tgui/styles/components/Tooltip.scss +++ b/tgui/packages/tgui/styles/components/Tooltip.scss @@ -16,6 +16,7 @@ $border-radius: base.$border-radius !default; left: 0; right: 0; bottom: 0; + font-family: Verdana, sans-serif; font-style: normal; font-weight: normal; diff --git a/tgui/packages/tgui/styles/interfaces/CrewManifest.scss b/tgui/packages/tgui/styles/interfaces/CrewManifest.scss new file mode 100644 index 000000000000..1bd608a94cf5 --- /dev/null +++ b/tgui/packages/tgui/styles/interfaces/CrewManifest.scss @@ -0,0 +1,66 @@ +@use '../colors.scss'; + +$department_map: ( + 'Command': colors.$yellow, + 'Security': colors.$red, + 'Engineering': colors.$orange, + 'Medical': colors.$teal, + 'Misc': colors.$white, + 'Science': colors.$purple, + 'Supply': colors.$brown, + 'Service': colors.$green, + 'Silicon': colors.$pink, + // LOBOTOMYCORPORATION ADDITION START + 'W Corp': colors.$teal, + 'R Corp': colors.$orange, + 'Hana': colors.$white, + 'Association': colors.$good, + 'Syndicate': colors.$bad, + 'Fixers': colors.$grey, + // LOBOTOMYCORPORATION ADDITION END +); + +.CrewManifest { + @each $department-name, $color-value in $department_map { + &--#{$department-name} { + .Section { + &__title { + border-color: $color-value; + } + &__titleText { + color: $color-value; + } + } + } + } + + &__Cell { + padding: 3px 0; + + &--Rank { + color: colors.$label; + } + } + + &__Icons { + padding: 3px 9px; + text-align: right; + } + + &__Icon { + color: colors.$label; + position: relative; + + &:not(:last-child) { + margin-right: 7px; + } + + &--Chevron { + padding-right: 2px; + } + + &--Command { + color: colors.$yellow; + } + } +} diff --git a/tgui/packages/tgui/styles/main.scss b/tgui/packages/tgui/styles/main.scss index 03fd832d574a..d6aa3fe82ef9 100644 --- a/tgui/packages/tgui/styles/main.scss +++ b/tgui/packages/tgui/styles/main.scss @@ -45,6 +45,7 @@ @include meta.load-css('./interfaces/ListInput.scss'); @include meta.load-css('./interfaces/AlertModal.scss'); @include meta.load-css('./interfaces/CameraConsole.scss'); +@include meta.load-css('./interfaces/CrewManifest.scss'); @include meta.load-css('./interfaces/NuclearBomb.scss'); @include meta.load-css('./interfaces/Paper.scss'); @include meta.load-css('./interfaces/Roulette.scss');