--- /dev/null
+
+! (level 3)
+
+Class Gambit_Room_Lev3_Class
+ with description "You are on the surface of a floating stone \
+cube. The red light from below seems a bit brighter here.",
+ name "stone" "cube" "light",
+has light;
+
+Object GAMBIT_31 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with w_to
+ [ i ;
+ i = CheckGambit(n312,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n313,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_32 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with e_to
+ [ i ;
+ i = CheckGambit(n324,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ w_to
+ [ i ;
+ i = CheckGambit(n322,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n323,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_33 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with e_to
+ [ i ;
+ i = CheckGambit(n334,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n333,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_34 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with w_to
+ [ i ;
+ i = CheckGambit(n342,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n341,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n343,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_35 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with e_to
+ [ i ;
+ i = CheckGambit(n354,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ w_to
+ [ i ;
+ i = CheckGambit(n352,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n351,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n353,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_36 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with e_to
+ [ i ;
+ i = CheckGambit(n364,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n361,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+ s_to
+ [ i ;
+ i = CheckGambit(n363,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_37 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with w_to
+ [ i ;
+ i = CheckGambit(n372,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n371,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+Object GAMBIT_38 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with w_to
+ [ i ;
+ i = CheckGambit(n382,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n381,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+ e_to
+ [ i ;
+ i = CheckGambit(n384,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+;
+
+Object GAMBIT_39 "On Giant White Cube"
+ class Gambit_Room_Lev3_Class
+ with e_to
+ [ i ;
+ i = CheckGambit(n394,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W31;
+ ],
+ n_to
+ [ i ;
+ i = CheckGambit(n381,0,3);
+ if (i ~= 2) return i;
+ else return GAMBIT_W32;
+ ],
+;
+
+
+! (level 3 niches)
+
+Object n313 "southern niche" GAMBIT_31
+ class niche_class
+ with name "southern",
+ counter_niche n341,
+ niche_dir 3;
+Object n312 "western niche" GAMBIT_31
+ class niche_class
+ with name "western",
+ counter_niche n324,
+ niche_dir 2;
+
+Object n324 "eastern niche" GAMBIT_32
+ class niche_class
+ with name "eastern",
+ counter_niche n312,
+ niche_dir 4;
+Object n323 "southern niche" GAMBIT_32
+ class niche_class
+ with name "southern",
+ counter_niche n351,
+ niche_dir 3;
+Object n322 "western niche" GAMBIT_32
+ class niche_class
+ with name "western",
+ counter_niche n334,
+ niche_dir 2;
+
+Object n334 "eastern niche" GAMBIT_33
+ class niche_class
+ with name "eastern",
+ counter_niche n322,
+ niche_dir 4;
+Object n333 "southern niche" GAMBIT_33
+ class niche_class
+ with name "southern",
+ counter_niche n361,
+ niche_dir 3;
+
+Object n341 "northern niche" GAMBIT_34
+ class niche_class
+ with name "northern",
+ counter_niche n313,
+ niche_dir 1;
+Object n342 "western niche" GAMBIT_34
+ class niche_class
+ with name "western",
+ counter_niche n354,
+ niche_dir 2;
+Object n343 "southern niche" GAMBIT_34
+ class niche_class
+ with name "southern",
+ counter_niche n371,
+ niche_dir 3;
+
+Object n351 "northern niche" GAMBIT_35
+ class niche_class
+ with name "northern",
+ counter_niche n323,
+ niche_dir 1;
+Object n354 "eastern niche" GAMBIT_35
+ class niche_class
+ with name "eastern",
+ counter_niche n342,
+ niche_dir 4;
+Object n352 "western niche" GAMBIT_35
+ class niche_class
+ with name "western",
+ counter_niche n364,
+ niche_dir 2;
+Object n353 "southern niche" GAMBIT_35
+ class niche_class
+ with name "southern",
+ counter_niche n381,
+ niche_dir 3;
+
+Object n364 "eastern niche" GAMBIT_36
+ class niche_class
+ with name "eastern",
+ counter_niche n352,
+ niche_dir 4;
+Object n361 "northern niche" GAMBIT_36
+ class niche_class
+ with name "northern",
+ counter_niche n333,
+ niche_dir 1;
+Object n363 "southern niche" GAMBIT_36
+ class niche_class
+ with name "southern",
+ counter_niche n391,
+ niche_dir 3;
+
+Object n371 "northern niche" GAMBIT_37
+ class niche_class
+ with name "northern",
+ counter_niche n343,
+ niche_dir 1;
+Object n372 "western niche" GAMBIT_37
+ class niche_class
+ with name "western",
+ counter_niche n384,
+ niche_dir 2;
+
+Object n381 "northern niche" GAMBIT_38
+ class niche_class
+ with name "northern",
+ counter_niche n353,
+ niche_dir 1;
+Object n382 "western niche" GAMBIT_38
+ class niche_class
+ with name "western",
+ counter_niche n394,
+ niche_dir 2;
+Object n384 "eastern niche" GAMBIT_38
+ class niche_class
+ with name "eastern",
+ counter_niche n372,
+ niche_dir 4;
+
+Object n391 "northern niche" GAMBIT_39
+ class niche_class
+ with name "northern",
+ counter_niche n363,
+ niche_dir 1;
+Object n394 "eastern niche" GAMBIT_39
+ class niche_class
+ with name "eastern",
+ counter_niche n382,
+ niche_dir 4;
+
+! (level 3 initial wood beam layout)
+! wood beam, as two 'halves'
+
+Object p31 "pine beam" n322 class pine_beam_class;
+Object p311 "pine beam" n334 class pine_beam_class with number 99;
+
+! (side note: with balsa beams, 2nd side need not be 99, since
+! it will always break on the first try, and the default number is 0
+Object b31 "balsa beam" n312 class balsa_beam_class;
+Object b311 "balsa beam" n324 class balsa_beam_class;
+Object b32 "balsa beam" n313 class balsa_beam_class;
+Object b321 "balsa beam" n341 class balsa_beam_class;
+Object b33 "balsa beam" n323 class balsa_beam_class;
+Object b331 "balsa beam" n351 class balsa_beam_class;
+Object b34 "balsa beam" n333 class balsa_beam_class;
+Object b341 "balsa beam" n361 class balsa_beam_class;
+Object b35 "balsa beam" n342 class balsa_beam_class;
+Object b351 "balsa beam" n354 class balsa_beam_class;
+Object b36 "balsa beam" n352 class balsa_beam_class;
+Object b361 "balsa beam" n364 class balsa_beam_class;
+Object b37 "balsa beam" n343 class balsa_beam_class;
+Object b371 "balsa beam" n371 class balsa_beam_class;
+Object b38 "balsa beam" n353 class balsa_beam_class;
+Object b381 "balsa beam" n381 class balsa_beam_class;
+Object b39 "balsa beam" n363 class balsa_beam_class;
+Object b391 "balsa beam" n391 class balsa_beam_class;
+Object b3a "balsa beam" n372 class balsa_beam_class;
+Object b3a1 "balsa beam" n384 class balsa_beam_class;
+Object b3b "balsa beam" n382 class balsa_beam_class;
+Object b3b1 "balsa beam" n394 class balsa_beam_class;
+
+
+! extra goodies...
+
+Object Gambit_hole "large round hole" GAMBIT_37
+ with name "hole" "round",
+ initial "In the center of the room is a large round \
+hole, going straight down through the floating cube.",
+ description "A large round hole cut straight through the \
+giant cube you stand on. All you need is a huge square peg.",
+ size 30,
+ before [;
+ Enter:
+ if (fire_spirit in GAMBIT_37)
+ "The towering fire spirit blocks your way!";
+ print "^You close your eyes and jump straight \
+into the hole! There is a bright flash of light...^";
+ Achieved(5);
+ PlayerTo(GAMBIT_11);
+ return 2;
+ Receive:
+ if (fire_spirit in GAMBIT_37)
+ "The towering fire spirit is in your way!";
+ move noun to GAMBIT_11;
+ print "You drop "; DefArt(noun);
+ " into the hole. There is a bright flash of light, and \
+the object disappears!";
+ Rub, Push, Pull, Touch, Squeeze, Turn, Shake:
+"I don't know how to do that to a giant hole.";
+ ],
+ after [;
+ Search:
+ if (fire_spirit in GAMBIT_37)
+ "The towering fire spirit fills the hole currently!";
+else "Looking through the hole, you can see a reddish haze \
+far below.";
+ ],
+ has static container open enterable;
+
+! rod piece -- SMOKE
+Object smoke_rod_piece "smoke rod piece" GAMBIT_37
+ class rod_class,
+ with name "smoke",
+ initial "Sitting on the floor is a short smoke-colored rod.",
+ description "It's a short section of a rod made of some \
+undeterminable hard substance, \
+colored smoke. A piece of the Rod of \
+the Ancients, no doubt!",
+;
+
+
+Object fire_spirit "fire spirit" GAMBIT_37
+ with name "spirit",
+ description "It looks like a tower of animated flame.",
+ each_turn [ i ;
+ ! spirit attack
+ ! (in general, the 4 spirits are _very_ dangerous.
+ ! There's a 1/5 chance of killing outright, and 2
+ ! chances of doing 10 and 5 points of damage respectively.
+ ! In short, the player needs to realize it's time to swanko,
+ ! and do so, quickly)
+ if (self hasnt general) {
+ give self general ~concealed;
+ "^Suddenly, a flash of flame bursts through the hole \
+in the center of the cube! A living tower of flame attacks!";
+ }
+ i = random(5);
+ if (i == 1) {
+ deadflag = 1;
+ "^The fire creature engulfs you in a deadly inferno! \
+You are burned to a crisp.";
+ }
+ if (i == 2)
+ Player_HP_CUR = Player_HP_CUR - 10;
+ if (i==3)
+ Player_HP_CUR = Player_HP_CUR - 5;
+ if (Player_HP_CUR <= 0) {
+ deadflag = 1;
+ "^The last blow from the fire spirit was too much for \
+you, I'm afraid to say. The spirit senses your \
+weakness and engulfs you in flame.";
+ }
+ print "^The fir spirit ";
+ if (i==2)
+ "singes you with a jet of fire!";
+ if (i==3) {
+ "sends a small ball of \
+flame your way! You get slightly burned!";
+ }
+ "tries to torch you in a sheet of \
+flame, but you evade just in time!";
+ ],
+ before [;
+ Cast:
+ if (the_spell_was == swanko_spell) {
+ remove self;
+ "As you speak the chant, the fire spirit falls back \
+in fear! You finish the chant, and the fire spirit \
+dissipates into harmless smoke, banished!";
+ }
+ print "Crackling flame drowns out your chant.^";
+ ],
+ life [ ;
+ Attack:
+ if (random(20) >= 8)
+ "You strike the fire creature, but your attack passes \
+ harmlessly through it! You hear a crackling noise \
+that could pass for laughter.";
+ "You attack the fire spirit, but miss!";
+ default: "It's too busy trying to kill you.";
+ ],
+ has animate concealed;