static void BuildBuilding1() { // first floor { Building1F1.Name = "行政楼[1#]一楼"; Building1F1.Alias.Clear(); Building1F1.IsLit = false; Area NLobby = new Area(); Area SLobby = new Area(); //Area Library = new Area(); //Area Study = new Area(); Building1F1.Areas.Clear(); Building1F1.Areas.AddRange(new[] { NLobby, SLobby, /*Library, Study, CStairs*/ }); Building1F1.Objects.Clear(); AObject doorNLobby = AObject.SimpleDoor( dest: Campus, name: "北侧大门", alias: new[] { "外面", "大门", "门" }, desc: "一扇开阔的玻璃门外,教学楼间的广场被暗紫色的天空微弱地照亮。", flopside: () => Campus.FindObjectInternal("行政楼的正门")); doorNLobby.OnEntering = (s, v) => { Campus.ChangeArea("教学楼间的小广场"); return(HandleResult.Continue); }; Building1F1.Objects.Add(doorNLobby); SetupArea(ref NLobby, "大厅北侧", desc: "你站在一个空旷、昏暗的大厅中,北侧开阔的玻璃门外教学楼间的广场被暗紫色的天空微弱地照亮。两边通往大厅南侧的过道之间,是往上延伸的宽敞大理石楼梯。", ldesc: "空旷的大厅,在手电筒的光束下甚至显得更加空旷,你站在中间。北侧开阔的玻璃门外教学楼间的广场被暗紫色的天空微弱地照亮。两边通往大厅南侧的过道之间,是往上延伸的宽敞大理石台阶。", usable: new[] { doorNLobby }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, SLobby } }, defDoor: doorNLobby); NLobby.RoomTo.Add(Direction.Up, Building1F2); NLobby.OnGoDirection = (self, v, d) => { Building1F2.ChangeArea("中央楼梯"); return(HandleResult.Continue); }; AObject doorSLobby = AObject.SimpleDoor( dest: Campus, name: "南侧大门", alias: new[] { "外面", "大门", "门" }, desc: "一扇开阔的玻璃门外,道路后面是寝室楼和树木的阴暗影子。", flopside: () => Campus.FindObjectInternal("行政楼的南门")); doorSLobby.OnEntering = (s, v) => { Campus.ChangeArea("道路"); return(HandleResult.Continue); }; Building1F1.Objects.Add(doorSLobby); SetupArea(ref SLobby, "大厅南侧", desc: "你站在一个昏暗的大厅中,南侧开阔的玻璃门外,道路后面是寝室楼和树木的阴暗影子。两边通往大厅北侧的过道之间是一面有浮雕的墙。", ldesc: "大厅在手电筒的光束下显得既狭小又空旷;你站在中间。南侧开阔的玻璃门外,道路后面是寝室楼和树木的阴暗影子。两边通往大厅北侧的过道之间是一面有浮雕的墙。", usable: new[] { doorSLobby }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, NLobby } }, defDoor: doorSLobby); } // second floor { Building1F2.Name = "行政楼[1#]二楼"; Building1F2.Alias.Clear(); Building1F2.IsLit = false; Area CStairs = new Area(); //Area SLobby = new Area(); Building1F2.Areas.Clear(); Building1F2.Areas.AddRange(new[] { CStairs }); Building1F2.Objects.Clear(); SetupArea(ref CStairs, "中央楼梯", desc: "你站在宽阔的大理石楼梯平台上;楼梯向上通往三楼,向下通往一楼。向南北方向绕过楼梯,是两边的过道;东西两面(西边是一块自习区域,东边堆着些活动用品)的空间被各层过道包围着向上通达楼顶。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { }); CStairs.RoomTo.Add(Direction.Down, Building1F1); CStairs.RoomTo.Add(Direction.Up, Building1F3); CStairs.OnGoDirection = (self, v, d) => { Building1F1.ChangeArea("大厅北侧"); Building1F3.ChangeArea("中央楼梯"); return(HandleResult.Continue); }; } // third floor { Building1F3.Name = "行政楼[1#]三楼"; Building1F3.Alias.Clear(); Building1F3.IsLit = false; Area CStairs = new Area(); Building1F3.Areas.Clear(); Building1F3.Areas.AddRange(new[] { CStairs }); Building1F3.Objects.Clear(); SetupArea(ref CStairs, "中央楼梯", desc: "你站在宽阔的大理石楼梯平台上;楼梯向上通往四楼,向下通往二楼。向南北方向绕过楼梯,是两边的过道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { }); CStairs.RoomTo.Add(Direction.Down, Building1F2); CStairs.RoomTo.Add(Direction.Up, Building1F4); CStairs.OnGoDirection = (self, v, d) => { Building1F2.ChangeArea("中央楼梯"); Building1F4.ChangeArea("中央楼梯"); return(HandleResult.Continue); }; } // fourth floor { Building1F4.Name = "行政楼[1#]四楼"; Building1F4.Alias.Clear(); Building1F4.IsLit = false; Area CStairs = new Area(); Building1F4.Areas.Clear(); Building1F4.Areas.AddRange(new[] { CStairs }); Building1F4.Objects.Clear(); SetupArea(ref CStairs, "中央楼梯", desc: "你站在宽阔的大理石楼梯平台上;楼梯向上通往五楼,向下通往三楼。向南北方向绕过楼梯,是两边的过道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { }); CStairs.RoomTo.Add(Direction.Down, Building1F3); CStairs.RoomTo.Add(Direction.Up, Building1F5); CStairs.OnGoDirection = (self, v, d) => { Building1F3.ChangeArea("中央楼梯"); Building1F5.ChangeArea("中央楼梯"); return(HandleResult.Continue); }; } // fifth floor { Building1F5.Name = "行政楼[1#]五楼"; Building1F5.Alias.Clear(); Building1F5.IsLit = false; Area CStairs = new Area(); Building1F5.Areas.Clear(); Building1F5.Areas.AddRange(new[] { CStairs }); Building1F5.Objects.Clear(); SetupArea(ref CStairs, "中央楼梯", desc: "你站在宽阔的大理石楼梯平台上;楼梯向下通往四楼。向南北方向绕过楼梯,是两边的过道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { }); CStairs.RoomTo.Add(Direction.Down, Building1F4); CStairs.OnGoDirection = (self, v, d) => { Building1F4.ChangeArea("中央楼梯"); return(HandleResult.Continue); }; } // sixth floor: to be added (only approachable from the side stairs) }
static void BuildPlayground() { Playground.Name = "操场"; Playground.Alias.Clear(); Playground.IsLit = true; Area Entrance = new Area(); Area NEntrance = new Area(); Area FdInstr = new Area(); Area Court = new Area(); Area NCourt = new Area(); Area SCourt = new Area(); Area TrackN = new Area(); Area TrackE = new Area(); Area TrackS = new Area(); Area TrackW = new Area(); Area TrackNE = new Area(); Area TrackNW = new Area(); Area TrackSE = new Area(); Area TrackSW = new Area(); Area NTrackEnd = new Area(); Area STrackEnd = new Area(); Area FdNTrack = new Area(); Area HighPlt = new Area(); Area NSpectPlt = new Area(); Area SSpectPlt = new Area(); Area SpectEndPlt = new Area(); Area UdHighPlt = new Area(); Area UdNSpectPlt = new Area(); Area UdSSpectPlt = new Area(); Area NPassage = new Area(); Area SPassage = new Area(); Playground.Areas.AddRange(new[] { Entrance, NEntrance, FdInstr, Court, NCourt, SCourt, TrackN, TrackE, TrackS, TrackW, TrackNE, TrackNW, TrackSE, TrackSW, NTrackEnd, STrackEnd, FdNTrack, HighPlt, NSpectPlt, SSpectPlt, SpectEndPlt, UdHighPlt, UdNSpectPlt, UdSSpectPlt, NPassage, SPassage }); SetupArea(ref Entrance, "入口处的空地", desc: "你站在操场入口处,环绕场地的栅栏在你东边打开:外面是一条南边走向的大路。往北边,场地通往沙坑和更远处;西边和南边则是一小片围起来的草地。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, NEntrance } }); Entrance.RoomTo.Add(Direction.E, Campus); Entrance.OnGoDirection = (s, v, d) => { Campus.ChangeArea("操场入口边"); return(HandleResult.Continue); }; // sandpool SetupArea(ref NEntrance, "沙坑边的空地", desc: "你站在沙坑边,场地向北延伸到单杠器材附近,向南则是操场入口。往西,你可以进入到环绕足球场的跑道上。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, Entrance }, { Direction.W, TrackE }, { Direction.N, FdInstr } }); SetupArea(ref FdInstr, "单杠附近", desc: "你站在单杠和其他器械之间;北边,透过操场的围栏,你只看见一片黑暗;场地向南边延伸,你也可以向西闯过一片草地走向跑道北边的一片空地。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, NEntrance }, { Direction.W, FdNTrack } }); SetupArea(ref Court, "足球场上", desc: "你站在足球场的草坪上。草长得很茂盛;梦中半暗的天空光照下,它们在脚踝高度投下一片随风颤动的阴影。你可以往南北走向两片铺着塑胶的空地,也可以往东西走向两侧的跑道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, NCourt }, { Direction.S, SCourt }, { Direction.W, TrackW }, { Direction.E, TrackE } }); SetupArea(ref NCourt, "空地", desc: "你站在足球场北边的一小片铺着塑胶的空地上。南边通往足球场,北边是跑道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, Court }, { Direction.N, TrackN } }); SetupArea(ref SCourt, "空地", desc: "你站在足球场南边的一小片铺着塑胶的空地上。北边通往足球场,南边是跑道。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, Court }, { Direction.S, TrackS } }); SetupArea(ref TrackN, "跑道", desc: "你在环绕足球场的塑胶跑道上;弯道向东、西延伸。你也可以横穿跑道,向南或向北走进空地。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, FdNTrack }, { Direction.S, NCourt }, { Direction.W, TrackNW }, { Direction.E, TrackNE } }); SetupArea(ref TrackE, "跑道", desc: "你在环绕足球场的塑胶跑道上;直道向南、北延伸。你也可以横穿跑道,向西走进足球场或向东走到沙坑附近。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, TrackNE }, { Direction.S, TrackSE }, { Direction.W, Court }, { Direction.E, NEntrance } }); SetupArea(ref TrackS, "跑道", desc: "你在环绕足球场的塑胶跑道上;弯道向东、西延伸。你也可以横穿跑道,向南或向北走进空地。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, SCourt }, { Direction.W, TrackSW }, { Direction.E, TrackSE } }); SetupArea(ref TrackW, "跑道", desc: "你在环绕足球场的塑胶跑道上;直道向南、北延伸。主席台在你西侧的上方;你也可以横穿跑道,向东走进足球场。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, TrackNW }, { Direction.S, TrackSW }, { Direction.W, UdHighPlt }, { Direction.E, Court } }); SetupArea(ref TrackNE, "跑道", desc: "你在环绕足球场的塑胶跑道上;这里弯道的拐角向南边和西边延伸。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, TrackE }, { Direction.W, TrackN } }); SetupArea(ref TrackNW, "跑道", desc: "你在环绕足球场的塑胶跑道上;这里弯道的拐角向北边和西边延伸。你的北面是直跑道延伸出去的末端一截,一百米跑的起点;阶梯状的观众席在你的西侧。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, NTrackEnd }, { Direction.S, TrackW }, { Direction.W, UdNSpectPlt }, { Direction.E, TrackN } }); SetupArea(ref TrackSE, "跑道", desc: "你在环绕足球场的塑胶跑道上;这里弯道的拐角向北边和东边延伸。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, TrackE }, { Direction.W, TrackS } }); SetupArea(ref TrackSW, "跑道", desc: "你在环绕足球场的塑胶跑道上;这里弯道的拐角向北边和东边延伸。你南北面是直跑道延伸出去的末端一截;阶梯状的观众席在你的西侧。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, TrackW }, { Direction.S, NTrackEnd }, { Direction.W, UdSSpectPlt }, { Direction.E, TrackS } }); SetupArea(ref NTrackEnd, "跑道末端", desc: "你站在直跑道延伸出去的末端一截,一百米跑的起点附近;南边,跑道汇入围绕足球场的弯道。你也可以向东走向一块空地。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, TrackNW }, { Direction.E, FdNTrack } }); SetupArea(ref STrackEnd, "跑道末端", desc: "你站在直跑道延伸出去的末端一截;北边,跑道汇入围绕足球场的弯道。你也可以向西上坡走向观众席南端的一个平台。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.W, SpectEndPlt }, { Direction.N, TrackSW } }); SetupArea(ref FdNTrack, "空地", desc: "你站在跑道北边的一块空地上;再北侧,操场的栅栏外面只有一片黑暗。你可以向南回到跑道,向西进入一百米跑起点那边直跑道延伸出去的一截,或向东穿过一片草地走向单杠附近。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, TrackN }, { Direction.W, NTrackEnd }, { Direction.E, FdInstr } }); SetupArea(ref HighPlt, "主席台", desc: "你站在主席台的穹顶下,在这个位置你能俯视整个操场;可惜,夜雾阻止了你看得太远。你可以向北或向南回到两边的阶梯观众席上。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, NSpectPlt }, { Direction.S, SSpectPlt } }); // should there be a bunch of lights (that can be operated in some obscure place) up there? SetupArea(ref NSpectPlt, "观众席(北)", desc: "你站在北边的观众席上;这里的阶梯地面空空荡荡,没有任何垃圾或落叶。南边一条道路向上通往主席台;你也可以从东边的台阶下去。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.S, HighPlt }, { Direction.E, UdNSpectPlt } }); SetupArea(ref SSpectPlt, "观众席(南)", desc: "你站在南边的观众席上;这里的阶梯地面空空荡荡,没有任何垃圾或落叶。北边一条道路向上通往主席台,南边是观众席末端通向学校西门附近的一个平台;你也可以从东边的台阶下去。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, HighPlt }, { Direction.E, UdSSpectPlt }, { Direction.S, SpectEndPlt } }); SetupArea(ref SpectEndPlt, "观众席末端平台", desc: "你站在观众席南边末端的一个弧形平台上;南边,操场的侧面出入口通向学校西门边的大路。你可以向北进入观众席,或者向东通过阶梯式的地面下去到跑道上。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, SSpectPlt }, { Direction.E, STrackEnd } }); SpectEndPlt.RoomTo.Add(Direction.S, Campus); SpectEndPlt.OnGoDirection = (s, v, d) => { Campus.ChangeArea("通向学校西门的道路"); return(HandleResult.Continue); }; SetupArea(ref UdHighPlt, "主席台前", desc: "你站在主席台下(准确来说,东边)的一块小空地上。这里没有直接通向主席台的路。你可以向南或向北走到观众席边。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.N, UdNSpectPlt }, { Direction.S, UdSSpectPlt } }); SetupArea(ref UdNSpectPlt, "观众席前", desc: "你站在北侧观众席东边的一块小空地上;阶梯观众席的金属栏杆在你的西侧开口。你可以向南走到主席台前,向东走上跑道,或向西南走穿过主席台底下两条通道中北边的那一条。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.W, NSpectPlt }, { Direction.S, UdHighPlt }, { Direction.E, TrackNW }, { Direction.SW, NPassage } }); SetupArea(ref UdSSpectPlt, "观众席前", desc: "你站在南侧观众席东边的一块小空地上;阶梯观众席的金属栏杆在你的西侧开口。你可以向北走到主席台前,向东走上跑道,或向西北走穿过主席台底下两条通道中南边的那一条。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.W, SSpectPlt }, { Direction.N, UdHighPlt }, { Direction.E, TrackSW }, { Direction.NW, SPassage } }); SetupArea(ref NPassage, "主席台下的小路", desc: "你在一条通道里,通道穿过主席台下向西通往操场后院、向东北通往观众席前。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.NE, UdNSpectPlt } }); // to back of playground SetupArea(ref SPassage, "主席台下的小路", desc: "你在一条通道里,通道穿过主席台下向西通往操场后院、向东南通往观众席前。", usable: new AObject[] { }, notClear: new AObject[0], godir: new Dictionary <Direction, Area> { { Direction.SE, UdSSpectPlt } }); // to back of playground }
public static void Day2Setting() { // Whoooooosh.... // A. reset BuildDormitory12(); BuildRestroom(); BuildBalcony(); BuildDormsHallway(); BuildLobbyNo8(); Dormitory12.Objects.Find((x) => x.Name == "床铺").Description = (_s, _v) => "在暗中看不清楚。"; // B. modify // B.1. dorm12 // remove the light of darkness Dormitory12.LightDescription = "这是你熟悉的寝室,闭上眼都能想象出它的样子。你能看见衣柜,桌子,床铺(四张:你睡在靠窗的下铺)以及通向走廊和洗手间过道的两扇门。"; Dormitory12.Description = "你只能在黑暗中看见大概的轮廓:衣柜,桌子,床铺(四张:你睡在靠窗的下铺),以及通向走廊和洗手间过道的两扇门。"; // add the light of sky Dormitory12.GetDescription = (self, v) => { if (self.IsLit) { return(Dormitory12.LightDescription + "\n\n窗帘拉开,外面的天空里滚动着紫红色的浓云。"); } else if (self.IsPlayerLit) { return(Dormitory12.LightDescription + "\n\n窗帘后什么地方透出一种红晕,但几乎被手电筒的强光掩盖了。"); } else { return(Dormitory12.Description + "\n\n有一种可爱的红晕穿透窗帘照进来。"); } }; Dormitory12.ReplaceObjectInternal("窗帘", new AObject(Dormitory12.FindObjectInternal("窗帘")) { Description = (_s, _v) => "从它后面什么地方照进来一种红色的光。", LightDescription = (_s, _v) => "从它后面什么地方照进来一种红色的光,但几乎被你手电筒的强光掩盖了。", OnOpening = (self, v) => { self.OpenState = true; self.Description = self.LightDescription = (_s, _v) => "窗帘被你拉开,缩在一边。"; v.currentRoom.FindObjectInternal("窗户").Description = v.currentRoom.FindObjectInternal("窗户").LightDescription = (_s, _v) => "窗外是对面的9#楼(高中男生寝室)和周围的人行道路。天空是紫红色的。"; if (!v.foundNoVoid2) { Print($"你拉开窗帘的一瞬间,紫红色的光涌入房间。它来自对面寝室楼后的天空。楼下的路灯沦为了暗暗的白点。地面也散发出紫色,与天空一起变幻着。在你眼中,有一秒钟时间,天空成了翻滚的海洋,而地面则是风中倒置的迷雾和森林。但是寂静……这片寂静使你惊异。现在甚至听不见外面风声,只有背景中若有若无的耳鸣。{(v.foundDarkness1 ? "你原先期望看到什么?黑暗?……紫色的黑暗?有点可笑。" : "")}\n\n"); v.foundNoVoid2 = true; } else { Print("你拉开窗帘时,紫红色的光涌入房间。\n\n"); } v.currentRoom.IsLit = true; return(HandleResult.FullManaged); }, OnClosing = (self, v) => { self.OpenState = false; self.Description = (_s, _v) => "从它后面什么地方照进来一种红晕。"; self.LightDescription = (_s, _v) => "从它后面什么地方照进来一种红晕,但几乎被你手电筒的强光掩盖了。"; v.currentRoom.FindObjectInternal("窗户").Description = (_s, _v) => "窗户被窗帘遮挡着,只从外面透进来一种红晕。"; v.currentRoom.FindObjectInternal("窗户").LightDescription = (_s, _v) => "窗帘没有拉开,你看不见外面的样子。"; Print("你拉上窗帘。室内恢复了原来的阴暗。\n\n"); return(HandleResult.FullManaged); } }); Dormitory12.ReplaceObjectInternal("窗户", new AObject(Dormitory12.FindObjectInternal("窗户")) { Description = (_s, _v) => "窗户被窗帘遮挡着,只从外面透进来一种红晕。", LightDescription = (_s, _v) => "窗帘没有拉开,你看不见外面的样子。" }); Dormitory12.BeforeCommand = (self, v, p) => { // convenience magic if (p == "xyzzy") { v.withClothes = true; v.currentRoom = Campus; Campus.CurrentArea = Campus.Areas.Find((x) => x.Name == "食堂和寝室楼之间"); Print("Flooooooooooosh!!\n\n"); return(HandleResult.FullManaged); } // TODO: move these to separate verbs if (p == "起床" || p == "起来") { if (self.CurrentArea.Name == "床上") { Print( "你推开被子,坐起来,摸索着穿上最近的一双拖鞋。\n\n"); self.CurrentArea = null; } else { Print("你并不在床上。\n\n"); } return(HandleResult.FullManaged); } else if ((p == "睡" || p == "睡觉")) { Print("现在你不想睡觉。\n\n"); return(HandleResult.FullManaged); } else { return(HandleResult.Continue); } }; // B.2. Restroom: Good. No changes... // B.3. Balcony // sky Balcony.GetDescription = (self, v) => $"阳台的瓷砖地面反射着{(self.IsPlayerLit ? "手电筒和" : "")}天空的色彩。天空在地面上投下你模模糊糊的影子,瓷砖的边缘泛起微光。虽然还没到能看书的地步,但你能注意到光照的亮度很不寻常。眼前漂浮在夜晚朦胧空气中的树和楼房奇怪地漂亮。你能听见风声了。"; Balcony.PostDescription = (self, v) => { if (!v.foundNoVoid2) { v.foundNoVoid2 = true; return($"房间里的红光就来自那天空,使楼下的路灯沦为了暗暗的白点。地面也散发出紫色,与天空一起变幻着。在你眼中,有一秒钟时间,天空成了翻滚的海洋,而地面则是风中倒置的迷雾和森林。但是寂静——这片寂静使你惊异,现在甚至听不见外面风声,只有背景中若有若无的耳鸣。{(v.foundDarkness1 ? "你原先期望看到什么?黑暗?……紫色的黑暗?有点可笑。" : "")}\n\n"); } else { return(""); } }; Balcony.IsLit = true; Balcony.Objects.Remove(Balcony.FindObjectInternal("黑暗")); Balcony.Objects.Add(new AObject("楼房", new[] { "楼房", "树", "树木", "房子", "寝室楼", "9#楼", "地面", "天空" }) { IsReachable = false }); // B.4. DormsHallway: No changes. // B.5. Lobby8 LobbyNo8.LightDescription = "灯光下是一个空荡的小门厅,墙上有一些花哨夸张的图案。楼梯向上通往二楼,另一侧是宿管老师值班的房间,没开灯,窗内黑洞洞的。一扇玻璃大门通向外面。"; // real door LobbyNo8.FindObjectInternal("外面").RoomTo = Campus; LobbyNo8.FindObjectInternal("外面").OnEntering = (self, v) => { Campus.ChangeArea("食堂和寝室楼之间"); return(HandleResult.Continue); }; LobbyNo8.FindObjectInternal("外面").LinkedSide = () => Campus.FindObjectInternal("去8#寝室楼大厅的门"); }