A large stream, or perhaps a small river, has carved a deep, narrow gorge into the native sedimentary stone here. The walls of the gorge are almost vertical and provide no purchase. In places, the limestone walls turn to glassy marbleized outcrops, as though some intense heat or force had crystallized or fused the rock together. Such patches make it impossible to climb your way out.
Obvious paths: north
Map: wl-darkstone-1717380773.png
Exit Connecting Room
;e script = Script.self hand = sword = sword_container = nil; close_containers = []; find_all_containers_var = nil; find_all_containers = proc { if find_all_containers_var.nil? restore_want_downstream = script.want_downstream restore_want_downstream_xml = script.want_downstream_xml script.want_downstream = false script.want_downstream_xml = true clear put 'inventory containers' timeout = Time.now + 10 container_ids = [] while (Time.now < timeout and line = get) if (line =~ /^You are wearing/) container_ids = line.scan(/<a exist="([^"]+)"/).flatten break end end script.want_downstream = restore_want_downstream script.want_downstream_xml = restore_want_downstream_xml clear find_all_containers_var = container_ids.collect { |id| GameObj[id] } end find_all_containers_var } ds_to_bag = proc { |item_id, container_id| restore_want_downstream = script.want_downstream restore_want_downstream_xml = script.want_downstream_xml script.want_downstream = false script.want_downstream_xml = true result = dothistimeout "_drag ##{item_id} ##{container_id}", 3, /<(?:right|left)>Empty<|^You can't .+ It's closed!|I could not find what you were referring to|Your .*? won't fit in/ script.want_downstream = restore_want_downstream script.want_downstream_xml = restore_want_downstream_xml result } ds_to_hand = proc { |item_id,hand| if hand.nil?; hand = 'left' if GameObj.left_hand.id.nil?; hand = 'right' if GameObj.right_hand.id.nil?; end restore_want_downstream = script.want_downstream restore_want_downstream_xml = script.want_downstream_xml script.want_downstream = false script.want_downstream_xml = true result = dothistimeout "_drag ##{item_id} #{hand}", 3, /<(?:right|left) exist="#{item_id}"/ script.want_downstream = restore_want_downstream script.want_downstream_xml = restore_want_downstream_xml result } stow_sword = proc { if sword.nil? if (GameObj.right_hand.noun == 'sword') sword = GameObj.right_hand elsif (GameObj.left_hand.noun == 'sword') sword = GameObj.left_hand end end if sword if sword_container ds_to_bag.call(sword.id, sword_container.id) else ds_to_bag.call(sword.id, XMLData.stow_container_id) if (GameObj.right_hand.id == sword.id or GameObj.left_hand.id == sword.id) for container in find_all_containers.call next if (container.noun == 'locket') ds_to_bag.call(sword.id, container.id) break unless (GameObj.right_hand.id == sword.id or GameObj.left_hand.id == sword.id) end end end end } empty_hands GameObj.containers.each{|k,v| if sword = v.find {|i| i.name == 'short sword'};sword_container = GameObj[k];break;end}; if sword.nil? for container in find_all_containers.call if container.contents.nil? result = dothistimeout "open ##{container.id}", 3, /^You open|^That is already open|^There doesn't seem to be any way to do that|^What were you referring to|^I could not find what you were referring to/ if (container.contents.nil? and result =~ /^That is already open/) dothistimeout "look in ##{container.id}", 3, /^In the|^There is nothing|^That is closed|^What were you referring to|^I could not find what you were referring to/ elsif result =~ /^You open/ close_containers.push(container) end end if (sword = container.contents.find { |obj| obj.name == 'short sword' }) sword_container = container break end end end if sword ds_to_hand.call(sword.id, 'right') else if $go2_get_silvers this_room = Room.current if (Script.running.find_all { |s| s.name == 'go2' }.length > 1) echo 'Too many instances of go2 running. Killing other instances.' for s in Script.running s.kill if s.name == 'go2' and s != Script.self end exit end force_start_script 'go2', [ 'bank', '--disable-confirm' ] wait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 } fput 'unhide' if hidden? or invisible? fput 'withdraw 200' force_start_script 'go2', [ 'weaponshop', '--disable-confirm' ] wait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 } fput 'unhide' if hidden? or invisible? fput 'order 3' fput 'buy' force_start_script 'go2', [ 'bank', '--disable-confirm' ] wait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 } fput 'unhide' if hidden? or invisible? fput 'deposit all' force_start_script 'go2', [ this_room.id.to_s ] wait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 } else echo 'You have no short sword! Use ;go2 getsilvers=on if you want this script to buy one for you.' close_containers.each { |c| fput "close ##{c.id}" } fill_hands exit end end if (resolve = Spell[9704] and resolve.known? and resolve.affordable? and !resolve.active?) resolve.cast end killed_disarm = Script.kill('disarmed') before_dying { Script.start('disarm') if killed_disarm } recovering_item = false loop do move 'go pool' fput 'swim down' fput 'kneel' sleep 0.5 unless recovering_item line = dothistimeout 'pry gap', 3, /you are spit out|tumbles out of your hand|good enough leverage/ if line =~ /tumbles out of your hand/ recovering_item = true sword = nil end waitrt? break if Room.current.id != 22229 end if recovering_item line = dothistimeout 'recover item', 3, /nothing recoverable|and recover it/ recovering_item = false if line =~ /and recover it/ waitrt? end fput 'swim up' fput 'go shore' end fput 'stand' until standing? waitrt? stow_sword.call close_containers.each { |c| fput "close ##{c.id}" } fill_hands Script.start('disarm') if killed_disarm undo_before_dying $go2_restart = true; 6985
go pool 22229
north 6954
Full Room Info
{ "climate": "cold, dry", "description": [ "A large stream, or perhaps a small river, has carved a deep, narrow gorge into the native sedimentary stone here. The walls of the gorge are almost vertical and provide no purchase. In places, the limestone walls turn to glassy marbleized outcrops, as though some intense heat or force had crystallized or fused the rock together. Such patches make it impossible to climb your way out." ], "id": 6955, "image": "wl-darkstone-1717380773.png", "image_coords": [ 158, 206, 168, 216 ], "location": "Darkstone Castle", "paths": [ "Obvious paths: north" ], "tags": [ "wild pink geranium", "stalk of bluebells", "tkaro root", "bright red cranberry", "bright red teaberry", "sassafras leaf", "white hook mushroom", "sweetfern stalk", "acantha leaf", "wolifrew lichen", "ephlox moss", "sticks", "angelica root", "valerian root", "pennyroyal stem", "wintergreen leaf", "broken twig", "tree bark", "willow twig", "yew twig", "oak twig", "luckbloom blossom", "twisted twig", "slender twig", "bolmara lichen", "brostheras grass", "meta:forage-sensed", "meta:forage-sensed:night:2023-01", "meta:forage-sensed:day:2023-02" ], "terrain": "deciduous", "timeto": { "22229": ";e XMLData.level > 19 ? 0.2 : nil ", "6954": 0.2, "6985": ";e XMLData.level > 19 ? 33.2 : nil " }, "title": [ "[Gorge, Intersection]" ], "uid": [ 43062 ], "wayto": { "22229": "go pool", "6954": "north", "6985": ";e script = Script.self\nhand = sword = sword_container = nil;\nclose_containers = [];\nfind_all_containers_var = nil;\nfind_all_containers = proc {\n\tif find_all_containers_var.nil?\n\t\trestore_want_downstream = script.want_downstream\n\t\trestore_want_downstream_xml = script.want_downstream_xml\n\t\tscript.want_downstream = false\n\t\tscript.want_downstream_xml = true\n\t\tclear\n\t\tput 'inventory containers'\n\t\ttimeout = Time.now + 10\n\t\tcontainer_ids = []\n\t\twhile (Time.now < timeout and line = get)\n\t\t\tif (line =~ /^You are wearing/)\n\t\t\t\tcontainer_ids = line.scan(/<a exist=\"([^\"]+)\"/).flatten\n\t\t\t\tbreak\n\t\t\tend\n\t\tend\n\t\tscript.want_downstream = restore_want_downstream\n\t\tscript.want_downstream_xml = restore_want_downstream_xml\n\t\tclear\n\t\tfind_all_containers_var = container_ids.collect { |id| GameObj[id] }\n\tend\n\tfind_all_containers_var\n}\nds_to_bag = proc { |item_id, container_id|\n\trestore_want_downstream = script.want_downstream\n\trestore_want_downstream_xml = script.want_downstream_xml\n\tscript.want_downstream = false\n\tscript.want_downstream_xml = true\n\tresult = dothistimeout \"_drag ##{item_id} ##{container_id}\", 3, /<(?:right|left)>Empty<|^You can't .+ It's closed!|I could not find what you were referring to|Your .*? won't fit in/\n\tscript.want_downstream = restore_want_downstream\n\tscript.want_downstream_xml = restore_want_downstream_xml\n\tresult\n}\nds_to_hand = proc { |item_id,hand|\n\tif hand.nil?;\n\t\thand = 'left' if GameObj.left_hand.id.nil?;\n\t\thand = 'right' if GameObj.right_hand.id.nil?;\n\tend\n\trestore_want_downstream = script.want_downstream\n\trestore_want_downstream_xml = script.want_downstream_xml\n\tscript.want_downstream = false\n\tscript.want_downstream_xml = true\n\tresult = dothistimeout \"_drag ##{item_id} #{hand}\", 3, /<(?:right|left) exist=\"#{item_id}\"/\n\tscript.want_downstream = restore_want_downstream\n\tscript.want_downstream_xml = restore_want_downstream_xml\n\tresult\n}\n\nstow_sword = proc {\n\tif sword.nil?\n\t\tif (GameObj.right_hand.noun == 'sword')\n\t\t\tsword = GameObj.right_hand\n\t\telsif (GameObj.left_hand.noun == 'sword')\n\t\t\tsword = GameObj.left_hand\n\t\tend\n\tend\n\tif sword\n\t\tif sword_container\n\t\t\tds_to_bag.call(sword.id, sword_container.id)\n\t\telse\n \t\tds_to_bag.call(sword.id, XMLData.stow_container_id)\n\t\t\tif (GameObj.right_hand.id == sword.id or GameObj.left_hand.id == sword.id)\n\t\t\t\tfor container in find_all_containers.call\n\t\t\t\t\tnext if (container.noun == 'locket')\n\t\t\t\t\tds_to_bag.call(sword.id, container.id)\n\t\t\t\t\tbreak unless (GameObj.right_hand.id == sword.id or GameObj.left_hand.id == sword.id)\n\t\t\t\tend\n\t\t\tend\n\t\tend\n\tend\n}\nempty_hands\nGameObj.containers.each{|k,v| if sword = v.find {|i| i.name == 'short sword'};sword_container = GameObj[k];break;end};\nif sword.nil?\n\tfor container in find_all_containers.call\n\t\tif container.contents.nil?\n\t\t\tresult = dothistimeout \"open ##{container.id}\", 3, /^You open|^That is already open|^There doesn't seem to be any way to do that|^What were you referring to|^I could not find what you were referring to/\n\t\t\tif (container.contents.nil? and result =~ /^That is already open/)\n\t\t\t\tdothistimeout \"look in ##{container.id}\", 3, /^In the|^There is nothing|^That is closed|^What were you referring to|^I could not find what you were referring to/\n\t\t\telsif result =~ /^You open/\n\t\t\t\tclose_containers.push(container)\n\t\t\tend\n\t\tend\n\t\tif (sword = container.contents.find { |obj| obj.name == 'short sword' })\n\t\t\tsword_container = container\n\t\t\tbreak\n\t\tend\n\tend\nend\nif sword\n\tds_to_hand.call(sword.id, 'right')\nelse\n\tif $go2_get_silvers\n\t\tthis_room = Room.current\n\t\tif (Script.running.find_all { |s| s.name == 'go2' }.length > 1)\n\t\t\techo 'Too many instances of go2 running. Killing other instances.'\n\t\t\tfor s in Script.running\n\t\t\t\ts.kill if s.name == 'go2' and s != Script.self\n\t\t\tend\n\t\t\texit\n\t\tend\n\t\tforce_start_script 'go2', [ 'bank', '--disable-confirm' ]\n\t\twait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 }\n\t\tfput 'unhide' if hidden? or invisible?\n\t\tfput 'withdraw 200'\n\t\tforce_start_script 'go2', [ 'weaponshop', '--disable-confirm' ]\n\t\twait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 }\n\t\tfput 'unhide' if hidden? or invisible?\n\t\tfput 'order 3'\n\t\tfput 'buy'\n\t\tforce_start_script 'go2', [ 'bank', '--disable-confirm' ]\n\t\twait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 }\n\t\tfput 'unhide' if hidden? or invisible?\n\t\tfput 'deposit all'\n\t\tforce_start_script 'go2', [ this_room.id.to_s ]\n\t\twait_while { Script.running.find_all { |s| s.name == 'go2' }.length > 1 }\n\telse\n\t\techo 'You have no short sword! Use\t ;go2 getsilvers=on\t if you want this script to buy one for you.'\n\t\tclose_containers.each { |c| fput \"close ##{c.id}\" }\n\t\tfill_hands\n\t\texit\n\tend\nend\nif (resolve = Spell[9704] and resolve.known? and resolve.affordable? and !resolve.active?)\n\tresolve.cast\nend\nkilled_disarm = Script.kill('disarmed')\nbefore_dying { Script.start('disarm') if killed_disarm }\nrecovering_item = false\nloop do\n\tmove 'go pool'\n\tfput 'swim down'\n\tfput 'kneel'\n\tsleep 0.5\n\tunless recovering_item\n\t\tline = dothistimeout 'pry gap', 3, /you are spit out|tumbles out of your hand|good enough leverage/\n\t\tif line =~ /tumbles out of your hand/\n\t\t\trecovering_item = true\n\t\t\tsword = nil\n\t\tend\n\t\twaitrt?\n\t\tbreak if Room.current.id != 22229\n\tend\n\tif recovering_item\n\t\tline = dothistimeout 'recover item', 3, /nothing recoverable|and recover it/\n\t\trecovering_item = false if line =~ /and recover it/\n\t\twaitrt?\n\tend\n\tfput 'swim up'\n\tfput 'go shore'\nend\nfput 'stand' until standing?\nwaitrt?\nstow_sword.call\nclose_containers.each { |c| fput \"close ##{c.id}\" }\nfill_hands\nScript.start('disarm') if killed_disarm\nundo_before_dying\n$go2_restart = true;\n" } }


MapDB last updated: 2024-11-03 01:44:25 +0000