ifmapper 0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. data/HISTORY.txt +2 -0
  2. data/IFMapper.gemspec +21 -0
  3. data/IFMapper.rb +27 -0
  4. data/icons/copy.png +0 -0
  5. data/icons/cut.png +0 -0
  6. data/icons/filenew.png +0 -0
  7. data/icons/fileopen.png +0 -0
  8. data/icons/filesave.png +0 -0
  9. data/icons/filesaveas.png +0 -0
  10. data/icons/help.png +0 -0
  11. data/icons/kill.png +0 -0
  12. data/icons/nextpage.png +0 -0
  13. data/icons/paste.png +0 -0
  14. data/icons/prevpage.png +0 -0
  15. data/icons/printicon.png +0 -0
  16. data/icons/redo.png +0 -0
  17. data/icons/saveas.png +0 -0
  18. data/icons/undo.png +0 -0
  19. data/icons/winapp.png +0 -0
  20. data/icons/zoom.png +0 -0
  21. data/lib/IFMapper/Connection.rb +63 -0
  22. data/lib/IFMapper/FXAboutDialogBox.rb +32 -0
  23. data/lib/IFMapper/FXConnection.rb +283 -0
  24. data/lib/IFMapper/FXConnectionDialogBox.rb +126 -0
  25. data/lib/IFMapper/FXMap.rb +1614 -0
  26. data/lib/IFMapper/FXMapDialogBox.rb +51 -0
  27. data/lib/IFMapper/FXMapFileDialog.rb +29 -0
  28. data/lib/IFMapper/FXMapperSettings.rb +45 -0
  29. data/lib/IFMapper/FXMapperWindow.rb +1051 -0
  30. data/lib/IFMapper/FXPage.rb +24 -0
  31. data/lib/IFMapper/FXPageDialogBox.rb +38 -0
  32. data/lib/IFMapper/FXRoom.rb +218 -0
  33. data/lib/IFMapper/FXRoomDialogBox.rb +119 -0
  34. data/lib/IFMapper/FXSearchDialogBox.rb +51 -0
  35. data/lib/IFMapper/FXSpline.rb +54 -0
  36. data/lib/IFMapper/FXWarningBox.rb +45 -0
  37. data/lib/IFMapper/IFMReader.rb +613 -0
  38. data/lib/IFMapper/Map.rb +110 -0
  39. data/lib/IFMapper/PDFMapExporter.rb +315 -0
  40. data/lib/IFMapper/Page.rb +158 -0
  41. data/lib/IFMapper/Room.rb +104 -0
  42. data/maps/Bureaucracy.ifm +75 -0
  43. data/maps/Hollywood_Hijinx.ifm +149 -0
  44. data/maps/Jigsaw.ifm +806 -0
  45. data/maps/LGOP.ifm +705 -0
  46. data/maps/Mercy.ifm +76 -0
  47. data/maps/Planetfall.ifm +186 -0
  48. data/maps/Plundered_Hearts.ifm +251 -0
  49. data/maps/Ralph.ifm +50 -0
  50. data/maps/Robots_of_Dawn.ifm +224 -0
  51. data/maps/Seastalker.ifm +149 -0
  52. data/maps/Sherlock.ifm +209 -0
  53. data/maps/SoFar.ifm +72 -0
  54. data/maps/Starcross.ifm +170 -0
  55. data/maps/Suspended.ifm +82 -0
  56. data/maps/Wishbringer.ifm +277 -0
  57. data/maps/Wishbringer2.ifm +246 -0
  58. data/maps/Zork1.ifm +410 -0
  59. data/maps/Zork2.ifm +150 -0
  60. data/maps/Zork3.ifm +136 -0
  61. data/maps/Zork_Zero.ifm +557 -0
  62. data/maps/anchor.ifm +645 -0
  63. data/maps/atrox.ifm +134 -0
  64. data/maps/awaken.ifm +116 -0
  65. data/maps/babel.ifm +279 -0
  66. data/maps/bse.ifm +150 -0
  67. data/maps/change.ifm +128 -0
  68. data/maps/curses.ifm +307 -0
  69. data/maps/curves.ifm +529 -0
  70. data/maps/edifice.ifm +158 -0
  71. data/maps/frozen.ifm +126 -0
  72. data/maps/glow.ifm +101 -0
  73. data/maps/library.ifm +93 -0
  74. data/maps/mindelec.ifm +89 -0
  75. data/maps/minster.ifm +234 -0
  76. data/maps/muse.ifm +154 -0
  77. data/maps/paperchase.ifm +110 -0
  78. data/maps/space_st.ifm +104 -0
  79. data/maps/stationfall.ifm +320 -0
  80. data/maps/theatre.ifm +182 -0
  81. data/maps/toonesia.ifm +54 -0
  82. data/maps/tortoise.ifm +72 -0
  83. data/maps/vgame.ifm +219 -0
  84. data/maps/weather.ifm +98 -0
  85. data/maps/windhall.ifm +154 -0
  86. data/maps/zebulon.ifm +68 -0
  87. metadata +144 -0
data/maps/atrox.ifm ADDED
@@ -0,0 +1,134 @@
1
+ # IFM Map for "Cattus Atrox" by David A. Cornelson
2
+ # Based on Release 3 / Serial number 981001
3
+ # This file writen by Dave Chapeskie <dchapes@ddm.crosswinds.net>
4
+ #
5
+ # $Id: atrox.ifm,v 1.3 2003/01/11 21:29:21 dchapes Exp $
6
+
7
+ title "Cattus Atrox";
8
+
9
+ ########################################################################
10
+ # Starting items
11
+
12
+ item "napkin" tag napkin;
13
+
14
+ ########################################################################
15
+ map "Streets";
16
+
17
+ room "Sidewalk" tag Start exit w;
18
+ room "Back Door of Scott's House" dir sw style special after Susan_Drive;
19
+ room "Outside Scott's Apartment" dir n go in;
20
+ room "Scott's Kitchen" dir nw go in;
21
+ task "wait" cmd "z.z.z.z" goto Living_Room;
22
+ room "Living Room" tag Living_Room dir e;
23
+ task "get up" follow last;
24
+ task "listen" follow last;
25
+ task "listen" follow last;
26
+ task "wait" cmd "z" 14;
27
+ task "loosen ropes" follow last;
28
+ task "free hands" follow last;
29
+ task "get gun" need gun follow last;
30
+ task "push Karl" follow last;
31
+ task "push Scott" follow last;
32
+ task "push Susan" follow last;
33
+
34
+
35
+ room "Sidewalk" dir n from Start;
36
+ room "Sidewalk" dir n;
37
+ room "Sidewalk" dir n;
38
+ room "Driveway" tag Driveway dir n;
39
+ item "station wagon";
40
+ item "Karl";
41
+ task "wait" cmd "z.z.z.z.z.z.z" tag Wait;
42
+ room "Car" dir nw from Driveway go in style special after Wait_Karl;
43
+ task "x ignition" tag X_ignition get key;
44
+ item "key" tag key hidden;
45
+ task "unlock glove box with key" need key;
46
+ task "open it" follow last get gun;
47
+ item "gun" tag gun hidden;
48
+ task "hide gun" need gun;
49
+
50
+ room "Street" tag Street_A dir e from Driveway after Wait;
51
+ room "Intersection" tag Intersection dir n;
52
+ room "Street" dir n;
53
+ task "x street";
54
+ task "open grate" after last;
55
+ join last to Sewer go down oneway after last;
56
+ join Ladder to last go up oneway after last;
57
+
58
+ room "Street" dir e from Intersection;
59
+ room "Street" dir e;
60
+ room "Street" tag Street_B dir e exit e;
61
+ room "Alley" dir s s;
62
+ room "Alley" dir s s;
63
+ room "Back of House" dir w;
64
+ room "Front of House" dir w;
65
+ room "Street" dir w;
66
+ room "Street" dir n;
67
+ room "Street" dir n link Street_A;
68
+
69
+ room "Street" dir e from Street_B;
70
+ room "Street" dir e link Street_5;
71
+
72
+ room "Alley" dir n n from Street_B;
73
+ room "Alley" dir n n n;
74
+ room "Alley" dir e e;
75
+ room "Street" dir e;
76
+ room "Street" dir s exit e;
77
+ room "Street" dir s exit e;
78
+ room "Street" tag Street_3 dir s;
79
+ task "wait for Karl" cmd "z" tag Wait_Karl follow Ask_Susan;
80
+ room "Street" dir s exit e;
81
+ item "phone";
82
+ task "call susan";
83
+ task "ask susan for help" tag Ask_Susan follow last;
84
+ room "Street" tag Street_5 dir s exit e;
85
+ room "Street" dir s exit e;
86
+ room "Street" dir s exit e;
87
+ room "Street" dir s exit e;
88
+ room "Street" dir s;
89
+ task "wait for Susan" cmd "z" tag Wait_Susan;
90
+ task "wait for her to drive to Scott's" tag Susan_Drive
91
+ cmd "z" 9 follow last goto Start;
92
+
93
+ ########################################################################
94
+ map "Sewers";
95
+
96
+ room "Top of Ladder" tag Ladder;
97
+ room "Sewer" tag Sewer dir w go down;
98
+ item "iron ladder";
99
+ room "Sewer" dir n;
100
+ room "Sewer" dir n;
101
+ room "Sewer" dir e;
102
+ item "crowbar" tag crowbar;
103
+ task "wait" need crowbar;
104
+ task "kill lion" need crowbar follow last;
105
+ task "kill lion" need crowbar follow last;
106
+ task "kill lion" need crowbar follow last;
107
+ room "Sewer" dir e;
108
+ room "Sewer" dir e;
109
+ room "Sewer" dir e;
110
+ room "Sewer" dir e;
111
+ room "Sewer" dir e;
112
+ room "Sewer" tag Sewer_E dir s;
113
+ room "Top of Ladder" dir e go up;
114
+ task "open grate";
115
+ join last to Street_3 go up oneway after last;
116
+ join Street_3 to Sewer_E go down oneway after last;
117
+
118
+ room "Sewer" dir s from Sewer_E;
119
+ room "Sewer" dir s;
120
+ room "Sewer" dir w;
121
+ room "Sewer" dir w;
122
+ room "Sewer" dir w tag Sewer_S;
123
+ room "Sewer" dir w;
124
+ room "Sewer" dir w;
125
+ room "Sewer" dir w link Sewer;
126
+
127
+ ########################################################################
128
+ # Modify some of the above to help IFM generate a workable walkthrough
129
+
130
+ task "(just used to force this path)" cmd none in Sewer_S follow Wait_Karl;
131
+ task X_ignition follow last;
132
+ task Wait_Susan need gun;
133
+
134
+ # EOF
data/maps/awaken.ifm ADDED
@@ -0,0 +1,116 @@
1
+ # IFM Map for "The Awakening" by Dennis Matheson
2
+ # This file writen by Dave Chapeskie <dchapes@ddm.crosswinds.net>
3
+
4
+ # $Id: awaken.ifm,v 1.4 2003/01/11 21:29:21 dchapes Exp $
5
+
6
+ title "The Awakening";
7
+
8
+ ########################################################################
9
+ map "Outside";
10
+
11
+ room "In the Mud";
12
+ room "Graveyard" dir n go up oneway;
13
+ item "broken limb";
14
+ room "West Side of Church" tag W_Church dir e;
15
+ task "" follow kick_dog note "lead the dog around the church...";
16
+ room "North Side of the Church" dir ne;
17
+ task "" follow last note "still leading the dog...";
18
+ room "East Side of the Church" dir se;
19
+ task "" tag leading_dog follow last note "still leading the dog...";
20
+ item "gravel";
21
+ room "Front of the Church" tag S_Church dir sw link W_Church exit s;
22
+ item "dog";
23
+ task "kick dog" tag kick_dog;
24
+ task "" tag lead_dog follow leading_dog note "now the dog is tied up";
25
+ task "put railing against tree" tag tree_ladder
26
+ need railing drop it;
27
+ room "Top of Oak Tree" tag Tree_Top dir se go up style special after tree_ladder;
28
+ room "to Belfry" tag j_belfry dir n style puzzle;
29
+
30
+ room "inside" tag j_church dir n from S_Church after lead_dog style special puzzle;
31
+
32
+
33
+ ########################################################################
34
+ map "Inside the Church";
35
+
36
+ room "exit" style puzzle join j_church;
37
+ room "Church Porch" tag Church_Porch dir n after lead_dog score 10;
38
+ item "railing" tag railing;
39
+ room "Vestibule" tag Vestibule dir n;
40
+ task "put railing under trap door. climb railing" tag trap_ladder
41
+ need railing drop it goto Steeple_Chamber score 5;
42
+ # The score is for passing through the trap door
43
+ task "put railing under trap door. climb railing" tag trap_ladder2
44
+ need railing drop it goto Steeple_Chamber after push_bell;
45
+ room "Sanctuary" tag Sactuary dir n;
46
+ item "glass shards";
47
+ item "portrait";
48
+ task "put railing under painting" tag painting_ladder
49
+ need railing drop it until look; #optional
50
+ room "Near Painting" tag Painting dir ne go up style special
51
+ after painting_ladder
52
+ cmd to "climb railing" cmd from "D";
53
+ task "look through holes" tag look; #optional
54
+
55
+ room "Pulpit" dir n from Sactuary;
56
+ item "podium";
57
+ task "x podium" note "reveals book";
58
+ item "book" tag book hidden after last;
59
+ task "read book" need book;
60
+ room "Small Office" dir n;
61
+ item "desk";
62
+ item "bookshelf";
63
+ item "journal" tag journal;
64
+ item "robe";
65
+ item "ashes" tag ashes lost;
66
+ item "glass shards";
67
+ task "x shards" note "reveals stopper"; #optional
68
+ item "stopper" hidden ;#after last;
69
+ task "search journal" note "indentations" need journal;
70
+ task "rub ashes on the journal" after last need ashes journal;
71
+ task "read journal" after last need journal score 5;
72
+ task "search bookshelf";
73
+ task "push it" follow last note "reveals grimoire";
74
+ item "grimoire" tag grimoire hidden after last;
75
+ task "read grimoire" need grimoire;
76
+
77
+ room "Steeple Chamber" tag Steeple_Chamber dir e from Vestibule go up
78
+ style special after trap_ladder;
79
+ item "door";
80
+ item "rope";
81
+ task "tie rope to door" tag tie_rope;
82
+ room "Belfry" tag Belfry dir ne go up before push_bell;
83
+ item "bell";
84
+ item "rope";
85
+ task "push bell" tag push_bell after tie_rope tree_ladder score 10
86
+ note "make sure the ladder is against the tree first";
87
+ room "to tree" dir s style puzzle join j_belfry;
88
+
89
+ room "Inner Chamber" dir n from Steeple_Chamber style special after push_bell
90
+ score 5 exit n s;
91
+ item "sofa";
92
+ item "table";
93
+ item "purple curtain";
94
+ item "old man";
95
+ item "oil lantern";
96
+ item "green bottle" tag green lost;
97
+ item "blue bottle";
98
+ item "mirror" hidden;
99
+ task "N" score 5 note "reveals mirror";
100
+ task "open mirror" after last; #optional
101
+ task "look through holes" after last; #optional
102
+ task "break green bottle" score 10 finish;
103
+
104
+
105
+ ########################################################################
106
+ # Tweaks to help the solver generate a working walkthrough
107
+
108
+ # Joins
109
+ join S_Church to Church_Porch hidden cmd to "N" cmd from "S" after lead_dog;
110
+ join Tree_Top to Belfry hidden cmd to "N" cmd from "S";
111
+
112
+ # No point going up the tree until the rope is tied
113
+ task tree_ladder after tie_rope drop railing until push_bell;
114
+
115
+
116
+ # EOF
data/maps/babel.ifm ADDED
@@ -0,0 +1,279 @@
1
+ # IFM Map for "Babel" by Ian Finley
2
+ # Based on Release Number 2
3
+ # This file writen by Dave Chapeskie <dchapes@ddm.crosswinds.net>
4
+ #
5
+ # Note: The walkthrough this file generates has a few unnecessary steps
6
+ # in it like examining objects. The idea is that the transcript the
7
+ # walkthrough will generate should be fairly readable.
8
+ #
9
+ # Also note that the generated map shows two bathrooms each with two
10
+ # exits when in reality there are four bathrooms with only one exit
11
+ # each. I.e. the bathrooms overlap on the map.
12
+ #
13
+ # $Id: babel.ifm,v 1.3 2003/01/11 21:29:21 dchapes Exp $
14
+
15
+ title "Babel";
16
+
17
+ ########################################################################
18
+ # Starting items
19
+ item "gown";
20
+
21
+ ########################################################################
22
+ room "North End" tag North_End start;
23
+ task "put ID card in slot" tag Card2 need id_card after On_power;
24
+ task "x calendar" need calendar after Inject_cure;
25
+ room "Records II" after On_power dir w style special after Card2;
26
+ task "x safe" note "red dial";
27
+ task "x dial" after last note "from 1 to 100";
28
+ task "set dial to 80" tag O_safe after last X_blotter get key;
29
+ task "touch shelf" after O_safe score 1;
30
+ task "x key" after O_safe note "residential master";
31
+ item "key" tag key hidden;
32
+ task "ask Hosea about HS1" after X_flask;
33
+
34
+ room "Courtyard" dir n from North_End go up style special after Inject_cure
35
+ score 1 finish;
36
+
37
+ room "North Hall" dir s from North_End;
38
+ room "Center" tag Center dir s
39
+ note "vision" score 1;
40
+ #task "touch east door frame" note "vision" score 1; # automatic
41
+ room "South Hall" tag South_Hall dir s;
42
+ room "Communications Room" dir e;
43
+ task "x cabinet" note "reveals a large plastic switch";
44
+ item "switch" hidden;
45
+ task "flip switch" tag On_power after last note "turns on the power";
46
+ task "flip switch" tag Off_power after last note "power is off";
47
+ task "flip switch" tag On_power2 after last Wedge_door
48
+ note "power is on" note "system can't close gallery door";
49
+
50
+ room "Entry Area" tag Entry_Area style special after On_power
51
+ dir s from South_Hall;
52
+ task "touch bulkhead" note "panel in vision" score 1;
53
+ task "push panel" tag P_panel after last note "opens the NW door";
54
+ task "put ID card in slot" tag Card1 need id_card after On_power;
55
+ task "type \"11:4\" on keypad" tag O_outside_bulkhead after R_bible;
56
+ room "Records I" dir e style special after Card1;
57
+ task "x screen" note "HOSEA";
58
+
59
+ room "Entry Steps" dir w from Entry_Area style special after O_outside_bulkhead;
60
+ room "Outside" dir w;
61
+ room "Shed" dir se;
62
+ item "battery" tag battery;
63
+ task "touch shelf" score 1;
64
+
65
+ room "Antichamber" dir nw from Entry_Area style special after P_panel;
66
+ room "Round Room" tag Round_Room dir nw;
67
+ task "unlock north door" tag UL_David need key;
68
+ task "unlock south door" tag UL_Alexis need key;
69
+ task "unlock northwest door" tag UL_dining need key;
70
+ room "Alexis' Room" dir s style special after UL_Alexis;
71
+ task "touch vase" tag T_vase score 1;
72
+ task "open dresser";
73
+ task "x sketch book" follow last;
74
+ room "Bathroom" dir w;
75
+ task "touch toilet" tag T_toilet score 1;
76
+
77
+ room "Jonas' Room" dir w from Round_Room;
78
+ task "x desk" note "reveals a fading green blotter";
79
+ task "x blotter" tag X_blotter after last note "the number 80";
80
+ task "touch blotter" after X_mirror score 1;
81
+ room "Bathroom" dir s;
82
+ task "touch mirror" score 1 after X_mirror;
83
+
84
+ room "David's Room" dir n from Round_Room style special after UL_David;
85
+ task "touch table" tag T_table score 1;
86
+ task "open bathroom door" note "can't; inhuman strength";
87
+ task "inject self with fluid" after Load_red_syringe need red_syringe;
88
+ task "open bathroom door" tag O_bathroom follow last;
89
+ task "touch bookcase" after X_mirror score 1;
90
+ room "Bathroom" dir e style special after O_bathroom;
91
+ task "x mirror" tag X_mirror;
92
+
93
+ room "Brett's Room" dir e from Round_Room;
94
+ task "x mattress" get id_card note "reveals ID card";
95
+ item "ID card" tag id_card hidden keep;
96
+ task "x books" tag X_books;
97
+ task "touch mattress" tag T_mattress after X_mirror score 1
98
+ note "\"He knew his Bible to the letter\""
99
+ note "414";
100
+ task "x note" after T_mattress;
101
+ task "find Babel in bible" tag R_bible follow X_books after T_mattress
102
+ note "11:4";
103
+ room "Bathroom" dir n;
104
+
105
+ room "Dining Room" dir nw from Round_Room style special after UL_dining;
106
+ item "calendar" tag calendar;
107
+ task "touch counter" tag T_counter score 1;
108
+ task "touch table" after X_mirror score 1;
109
+ room "Residential Storage" dir sw;
110
+ item "screwdriver" tag screwdriver;
111
+ item "metal pole" tag pole hidden;
112
+ task "touch pegboard" tag T_pegboard score 1;
113
+ task "x broken shelves" get pole note "support bar";
114
+
115
+
116
+ room "East Hall" dir e from Center;
117
+ room "East End" tag East_End dir e;
118
+ task "touch bulkhead" tag T_east_bulkhead score 1;
119
+ task "put ID card in slot" tag Card3 need id_card after On_power2;
120
+ task "x bulkhead" note "loose panel";
121
+ task "open panel with screwdriver" need screwdriver after last
122
+ note "manual override";
123
+ task "pull lever" tag Pull_lever1 after last
124
+ note "can't, emergency locking system";
125
+ task "pull lever" tag Pull_lever2 after last Off_power;
126
+ task "x bulkhead" after last note "grooves";
127
+ task "x grooves" follow last;
128
+ task "put pole in groove" tag Wedge_door after last need pole lose it;
129
+
130
+ room "Records III" after On_power2 dir n style special after Card3;
131
+ task "ask Hosea about Jabberwocky" tag Ask_Jabberwocky
132
+ after T_east_bulkhead;
133
+ task "ask Hosea about Telerus" tag Ask_Telerus after T_toxin_door;
134
+ task "ask Hosea about gallery" tag Ask_gallery after X_recess
135
+ note "polarizing filters";
136
+ task "ask Hosea about polarizing filters" tag Ask_filters
137
+ follow last note "settings";
138
+
139
+ room "Gallery Junction" tag Gallery_Junction dir e from East_End
140
+ style special after Pull_lever2;
141
+ task "touch south door" tag T_toxin_door score 1;
142
+ task "x recess" tag X_recess after On_power2
143
+ note "filter alignment" note "button";
144
+ task "press button" after last;
145
+ task "x sliders" follow Ask_filters;
146
+ task "set red to 3" tag Light_gallery follow last note "gallery is lit";
147
+ task "put id card in east slot" tag Card4 need id_card after On_power2;
148
+ task "put id card in south slot" tag Card5 need id_card after On_power2;
149
+ task "read warning" after On_power2;
150
+ room "Toxin Gallery" need rad_suit after Wear_suit dir s style special after Card5;
151
+ task "x frame" tag X_frame get telerus_vial;
152
+ item "Telerus vial" tag telerus_vial;
153
+
154
+ room "Terran Gallery" tag Terran_Gallery dir e e from Gallery_Junction
155
+ style special after Card4;
156
+ room "Aquatic Gallery" after Light_gallery dir s go down;
157
+ task "touch floor" score 1 after X_mirror;
158
+
159
+ room "Avian Gallery" after Light_gallery dir n from Terran_Gallery go up;
160
+ task "touch railing" tag T_railing score 1;
161
+ room "Cage" dir n;
162
+ item "bowl of water";
163
+ task "wash flask" tag Wash_flask after Load_red_syringe need flask;
164
+
165
+
166
+ room "Hall" after On_power2 dir n from Gallery_Junction;
167
+ room "Lab Entrance" tag Lab_Entrance dir n;
168
+ room "Supply Closet" dir e;
169
+ item "flask" tag flask;
170
+ task "x flask" tag X_flask need flask note "HS1 Hormone" in any;
171
+ task "open flask" tag O_flask need flask in any;
172
+ room "Medical Alcove" dir n;
173
+ item "red syringe" tag red_syringe;
174
+ task "put liquid in red syringe" tag Load_red_syringe
175
+ follow O_flask need flask red_syringe in any;
176
+ task "touch sink" after X_mirror score 1;
177
+ room "Lab Hall III" dir w link Lab_Entrance;
178
+ task "touch cages" tag T_cages score 1;
179
+ task "x cabinet" tag X_cabinet note "lock and hinges";
180
+ task "x lock" follow last;
181
+ task "x hinges" tag X_hinges follow last note "quite thin";
182
+ task "x battery" need battery in any
183
+ note "highly corrosive" note "slit";
184
+ task "open battery with screwdriver" need battery screwdriver
185
+ after last;
186
+ task "pour acid on hinges" tag O_cabinet need battery
187
+ after last X_hinges get base_vial note "cabinet opens";
188
+ task "touch shelf" after O_cabinet score 1;
189
+ task "read notes" after O_cabinet note "instructions";
190
+ item "base vial" tag base_vial hidden;
191
+ room "Lab Hall II" dir w;
192
+ task "touch microscope" score 1;
193
+ room "Lab Hall I" dir w;
194
+ item "amber syringe" tag amber_syringe;
195
+ task "touch microscope" score 1;
196
+ task "x bulkhead" note "release lever";
197
+ task "pull lever" tag O_lab1_bulkhead follow last;
198
+ link last to North_End after last;
199
+ room "Landing" tag Landing dir n n ne e s go down;
200
+ room "Changing Room" dir w;
201
+ item "radiation suit" tag rad_suit;
202
+ task "get radiation suit" give rad_suit get green_card;
203
+ item "green card" tag green_card hidden;
204
+ task "wear suit" tag Wear_suit need rad_suit in any;
205
+ task "touch bench" tag T_bench score 1 after X_mirror;
206
+
207
+ room "Radiation Area" dir s from Landing go down;
208
+ task "set dial to 414" tag Set_dial after T_mattress;
209
+ task "x control panel" tag X_controls;
210
+ task "open hatch" tag O_hatch;
211
+ task "open base vial" need base_vial in any;
212
+ task "put base in flask" tag base_in_flask
213
+ need base_vial flask follow last after Wash_flask in any;
214
+ task "open Telerus vial" need telerus_vial in any;
215
+ task "put Telerus in flask" tag Telerus_in_flask
216
+ need telerus_vial flask follow last after Wash_flask in any;
217
+ task "close flask" tag Prep_flask need flask
218
+ after base_in_flask Telerus_in_flask in any;
219
+ task "shake flask" tag Shake_flask need flask after last;
220
+ task "put flask in alcove" after last drop flask until O_hatch2;
221
+ task "close hatch" after last;
222
+ task "flip switch" after last after X_controls;
223
+ task "put green card in slot" after last
224
+ need green_card drop it until Press_black;
225
+ task "press black button" tag Press_black after last after Set_dial;
226
+ task "press blue button" after last;
227
+ task "flip switch" after last;
228
+ task "open hatch" tag O_hatch2 need green_card after last;
229
+ task "open flask" need flask after last;
230
+ task "put cure in amber syringe" need flask amber_syringe after last;
231
+ task "inject self with cure" tag Inject_cure need amber_syringe
232
+ after last;
233
+
234
+ ########################################################################
235
+ # Modify some of the above to help IFM generate a better walkthrough
236
+
237
+ # Move into the room immediatly after unlocking the door.
238
+ # It's nicer than unlocking all the doors at once.
239
+ task T_vase follow UL_Alexis;
240
+ task T_table follow UL_David;
241
+ task T_counter follow UL_dining;
242
+ task UL_dining after UL_Alexis;
243
+ task X_frame follow Card5;
244
+ task Card5 after T_mattress;
245
+ task T_railing follow Card4;
246
+
247
+ # Finish Alexis' room before unlocking anything else
248
+ task T_toilet follow T_vase;
249
+
250
+ # Make sure we pick up the calendar...
251
+ task T_pegboard need calendar;
252
+
253
+ # Don't drop the the calendar
254
+ item calendar keep;
255
+
256
+ # Don't bother going to the east hall until we can open the door
257
+ #link East_End need pole;
258
+ link East_End after T_pegboard;
259
+
260
+ # Try pulling the lever once before turning off the power
261
+ task Off_power after Pull_lever1;
262
+
263
+ # Ask some questions all at once
264
+ task Ask_Jabberwocky follow Card3;
265
+ task Ask_Telerus follow Ask_Jabberwocky;
266
+ task Ask_gallery follow Ask_Telerus;
267
+
268
+ # Pick up the red syring on the way to Lab Hall III
269
+ task T_cages need red_syringe;
270
+ task X_cabinet after T_cages;
271
+
272
+ # Don't bother going to touch the railing until we're ready to wash the flask.
273
+ task Wash_flask follow T_railing;
274
+
275
+ # Touch the bench before we start the process to produce the anti-toxin
276
+ task Shake_flask after T_bench;
277
+ task Set_dial after T_bench;
278
+
279
+ # EOF