ifmapper 0.5

Sign up to get free protection for your applications and to get access to all the features.
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