!---------------------------------------------------------------------------- !************************************* "DROP" AND "CAN'T DROP THAT" MESSAGES !---------------------------------------------------------------------------- routine PrintText04(val1,val2) { select val1 case 0 { !Usage: (4,0,obj) !"You let go of (the object)" print "You let go of "; The(val2); "." } case 1 { !Usage: (4,1) !Trying to drop the motherly maiden's parchment. "For now, you shouldn't. "; print CThe(parchment); " isn't important except for the simple instructions scribed upon it, but you should hang onto it at least until you reach the fishing village." } case 2 { !Usage: (4,2) !Trying to drop or put something in the grass. "Anything dropped here would be hard to find again." } case 3 { select val2 case 1 { !Usage: (4,3,1) ! This is shown if the player tries to drop the flask. ! I hesitate to describe the flask as tied at the tip with a ! coil of string -- which it probably is -- since I don't really ! want to implement the fastener. So I'll avoid that in the msg. "Of course, you could leave the flask behind. However, you didn't become the rugged swordsman you are today by purposely subjecting yourself to dehydration.\n" print "The impulse to "; VerbWord; " your flask quickly fades." } case 2 { !Usage: (4,3,2) ! This is shown if the user tries to pour out the flask. ! Since the player has to pour water on the saplings, I don't ! want to discourage the player entirely, when they try here. "You pour a drop from the flask, but decide against wasting more of it here." } case 3 { !Usage: (4,3,3) ! This is shown when trying to pour out an empty flask. "No water remains in your flask." } case 4 { !Usage: (4,3,4) ! It's empty, but we should keep it anyway. "Your flask is empty now, but you're still inclined to hold onto it." } } case 4 { !Usage: (4,4) !This is shown if the player tries to drop the sheath. print "If you left "; Art(sheath); " behind, where would you keep your sword?" } case 5 { select val2 case 1 { !Usage: (4,5,1) !Player trying to put something we hold into something else. !General enough that we can use it for the main items. if (object = sword) print CArt(object); else print CThe(object); " doesn't belong there." } case 2 { !Usage: (4,5,2) !The player is trying to drop the sword. Why??? "What would a traveling swordsman be with no sword to show? The rigors of combat can tire a man, but you can think of nothing else you'd rather do. You decide against parting with your sword." } } case 6 { !Usage: (4,6) !Attempting to SHEATHE the sword. Check if it's already done. if (sword.misc #1) { "It's already sheathed." } else { print "You slide "; Art(sword); " back into the sheath "; "at your side." } } case 7 { !Usage: (4,7) !Attempting to UNSHEATHE the sword. Check if it's already. if (sword.misc #1) { print "You draw "; Art(sword); " quickly from the sheath "; "at your side." } else { "It's already drawn and ready." } } case 8 { !Usage: (4,8) !Attempting to put something in the sheath that doesn't belong. print "Only "; Art(sword); " goes there." } case 9 { select val2 case 1 { !Usage: (4,9,1) !Player trying to put an apple into the contraption. "Even if that's what it's for, you don't know how to use the contraption. It's a mystery to you." } case 2 { !Usage: (4,9,1) "That's unlikely to accomplish anything, especially now that the contraption is ruined." } } case 10 { !Usage: (4,10,obj) !Attempting to put anything else on the wagon. "The wagon is tipped over. You can't put anything in it. Even if this wasn't the case, you're better off keeping "; print The(val2); "." } case 11 { !Usage: (4,11,obj) !Attempting to put anything else on the wagon axles. "Only a wheel will fit there"; if (wheel in wagon) { ", and the wagon now has all of them." } else { ". Putting "; print The(val2); " there would serve no purpose." } } case 12 { !Usage: (4,12,obj) !Trying to put anything into a place where it won't fit. print MatchPlural(val2,"It","They"); " won't fit." } case 13 { !Usage: (4,13) !User is trying to pour the grain out, but not into the trough. "The grain would go to waste if you did that here." } case 14 { ! messages associated with tying the bull to the wagon. select val2 case 1 { !Usage: (4,14,1) "You approach the bull, harness in hand. It turns away from the empty trough at your approach, snorts, and glares a warning in your direction.\n" "You can't get close enough to strap it in the harness, without risking serious injury." } case 2 { !Usage: (4,14,2) !Trying to tie the rope directly to the bull. print "You consider, for a moment, how you might "; Verbword; print " "; The(rope); " to the bull. Its horns? That might work, but it wouldn't have the neck power to do the job. Its neck? That might strangle it. Its legs? That'd only trip the poor beast. What you need, you decide upon reflection, is something else." } case 3 { !Usage: (4,14,3) !The rope is tied to the harness already, and bull wears it. "The rope is already tied to the harness, and the bull is wearing that." } case 4 { !Usage: (4,14,4) !Trying to tie bull to wagon, but it's already done. "A rope is already tied from the bull's harness to the wagon's hitch." } case 5 { !Usage: (4,14,5) !Trying to tie bull to wagon, but no rope. "You don't have anything that can be tied around the wagon's hitch." } case 6 { !Usage: (4,14,6) !Trying to tie bull to wagon, but rope tied to something else. ! There should only ever be one thing the rope can be tied to ! that's not valid (the wheel), but handle it just in case. ! We should ONLY call this when we have already check to be ! sure the rope is tied to something invalid, otherwise it will ! just result in a blank/empty message (and that'd be bad). for (rnd = 1; rnd <= rope.#attached_to; rnd++) { if (rope.attached_to #rnd) { if (rope.attached_to #rnd ~= harness, wagon_hitch) { "That won't work while the rope is tied to "; print The(rope.attached_to #rnd); "." } } } } case 7 { !Usage: (4,14,7) - implicit "putting the harness on the bull" ! Note that "rnd" should be true or false, to determine if we ! have already taken one implicit action before getting here. if (rnd): "\n(then "; else: "(first "; "putting the harness on the bull)" } case 8 { !Usage: (4,14,8) - implicit "tying the rope to the harness" ! Note that "rnd" should be true or false, to determine if we ! have already taken one implicit action before getting here. if (rnd): "\n(then "; else: "(first "; print "tying the rope to "; The(harness); ")" } case 9 { !Usage: (4,14,9) - implicit "tying the rope to the hitch" ! Note that "rnd" should be true or false, to determine if we ! have already taken one implicit action before getting here. if (rnd): "\n(then "; else: "(first "; print "tying the rope to "; The(wagon_hitch); ")" } case 10 { !Usage: (4,14,10) ! Trying to "untie bull" but no harness or rope or anything. ! Note that this can also be used for OTHER things we untie, ! when nothing is attached, as long as object is set right. print "Nothing is attached to "; The(object); "." } } case 15 { !Usage: (4,15,obj) !Trying to put something into the cabinet which isn't allowed. select val2 case gate_key { if (val2.misc #1 = location) { "You "; } else { "Although this is probably where it's supposed to be kept, you "; } print "don't need to put "; The(val2); " back inside "; print The(barn_cabinet); "." } } case 16 { !Messages when trying to "throw" an object (lib/defaults). select val2 case 1 { !Usage: (4,16,1) !Player attempted to throw a very large object. print CThe(object); IsOrAre(object,true); " too large to throw." } case 2 { !Usage: (4,16,2) !Player throws a medium-sized object. print "You throw the bulky "; object.name; " a short ways."; !Falls through to say "...lands on the ground" below. } case 3 { !Usage: (4,16,3) print "You throw "; The(object); " as far as you can."; !Falls through to say "...lands on the ground" below. } case 4 { !Usage: (4,16,4) !User throws "object" at "xobject" print CThe(object); " hit"; print MatchSubject(object); print " "; The(xobject); ", but "; "nothing happens."; !Falls through to say "...lands on the ground" below. } case 2,3,4,5 { !Usage: (4,16,5) - when calling manually only. ! This also ends *three* throw options from above. if (val2 = 5) { !Called manually, so mention it by name. print CThe(object); } else { !Automatic from 2 or 3 or 4. print MatchPlural(object,"It","They"); } if (val2=4) { " fall"; } else { " land"; } print MatchSubject(object); if (val2=4) { " to the "; } else { " on the "; } print location.ground_name; "."; if (val2 ~= 5) { print newline !End the line when automatic calls. } } case 6 { !Usage: (4,16,6) !Trying to throw something at an NPC. !If I was going for the multiple endings I'd probably allow. if (object.size >= 25) { !Medium or larger objects would hurt. "No, that might really hurt "; print xobject.pronouns #2; "." !him/her/it. } else { !No reason to do that. rnd = random(13) !Help spread more randomness. select rnd case 1,5,9 { PrintMessage(3,2,6) !Generic "Better not." } case 2,6,10 { PrintMessage(3,2,13) !Nothing gained by trying. } case 3,7,11 { PrintMessage(3,2,22) !You're not a barbarian. } case 4,8,12 { PrintMessage(3,2,23) !That's not your way. } case else { !Remember that some animals are "living" too. !Make this one really rare. I should probably !remove it from the mix entirely, but oh well. PrintMessage(3,2,15) !NPC wouldn't like that. } } } case 7 { !Usage: (4,16,7) ! Very specific condition, when the player throws an "object" ! at the metal plate, and the metal plate is not in the same ! area. "object" is what's thrown, xobject is what it hits. print "You "; VerbWord; " "; The(object); " as far as you can."; print MatchPlural(object, "It", "They"); " appear"; print MatchSubject(object); " to hit "; The(xobject); ", "; "but nothing happens." } case sword { !Usage: (4,16,obj) !Attempting to throw the sword. print CArt(val2); " is a good weapon. While it would certainly survive "; if (xobject) { print "being thrown at "; The(xobject); if (xobject is living) { !Acknowledge we tried to throw it at a person. print " (even if "; The(xobject); " wouldn't)"; } } else { print "a good throw"; } ", you prefer to keep it at the ready." } } case 17 { !Player is trying to put something on the contraption. select val2 case wheel { !Usage: (4,17,obj) "The spot where the wheel was previously mounted is now broken. You see no way to put it back." } } case 18 { !Usage: (4,18,obj) !Player is trying to drop something from a floorless room. select verbroutine case &DoDrop { "From so far up, it would be a mistake to drop "; print The(val2); " here." } case &DoThrowAt { print "You're really high up. If you were to "; VerbWord; " "; print The(val2); " here from here, you might lose"; print MatchPlural(val2,"it","them"); "." } } case 19 { !Usage: (4,19,obj) ! Player throws something into the stream. Silly player. Well, the ! only two things they could have which aren't always_held are the ! fish bones and the burlap sack, at this point. The bones are ! optional, and we'll find the burlap sack again later, if lost. print "You toss "; The(val2); " into the stream. "; if (val2 = sack) { "It floats away on the current." } else { print MatchPlural(val2,"It","They"); " sink"; print MatchSubject(val2); " from sight, lost to the current." } } case 20 { !Putting stuff in the the stone basin, in the windmill select val2 case 1 { !Usage: (4,20,1) - putting something unexpected in moving basin. ! There shouldn't really be anything that meets this condition. ! The sack and bones can both be put in, the pipe gets thrown ! out, the lock will jam it, and everything else can't even be ! dropped. But, just in case I missed anything, here's this. "You decide against dropping "; print The(object); " into "; The(basin); "." } case else { !Usage: (4,20,obj) print "You drop "; The(val2); " into the basin. "; select val2 case apple { "The millstone makes short work of it. In moments, it is crushed and minced until nothing remains." } case bones { "They hit against the millstone, fall under it, and are momentarily crushed into dust." } case sack { "It catches on the millstone and gets drawn around and under it. In another moment, "; print The(val2); " is completely shredded. Nothing remains but dust." } case pipe { "It's knocked around by the rotating millstone, but with the basin's curve and the pipe's length, the millstone just keeps turning." } case rusty_lock { "It's quickly jammed against the side, and drawn partially under the millstone. The entire drive shaft shakes for a moment, as it fights against the obstruction. In a moment, the lock is wedged in so completely that it jams the entire system." !Going to make sure the player notices this, by using line. "\nThe gears stop, and the main axle can no longer turn." } } } case 21 { !Throwing stuff at the gears, in the windmill. select val2 case 1 { !Usage: (4,21,1) !Basically, each Child(sack) falls to the ground. print CThe(Child(sack)); " fall"; print MatchSubject(Child(sack)); " to the ground." } case rusty_lock { !Usage: (4,21,obj) !In failing, give the player a clue about putting it in basin. "For a moment, it is knocked around by the gears. It fails to catch, though, and it falls back to the ground. It just misses the edge of the basin." } case sack { !Usage: (4,21,obj) "You throw the sack at the gears above. It catches, and is subsequently caught and torn. The gears keep moving, and the sack is lost." } case pipe { !Usage: (4,21,obj) "You hurl the pipe at the set of gears above. It catches on one, then falls over to another. A third gear spins over it and wedges it between the other two. In a moment, the entire system is jammed.\n" "The gears stop, and the main axle can no longer turn." } } case 22 { !Trying to put stuff on the fishing hooks. select val2 case fishnet { !Usage: (4,22,obj) "You hang the net from the hooks above the panel. It drapes down, covering it, dragging the ground." } } case 23 { !Dropping stuff into the riverbed, from above. !Usage: (4,23,obj) print "You drop "; The(val2); " over the side, and"; print MatchPlural(val2,"it","they"); " fall"; print MatchSubject(val2); " to the riverbed below." } case 24 { !Usage: (4,24,obj) !Dropping stuff into the well, from above. print "You lean over and drop "; The(val2); print " into "; The(well); "." } case 25 { !Usage: (4,25,obj) !Trying to put stuff on the slab, but the slab is leaning. print CThe(slab); " is leaning against the well. You don't need to try putting anything on it." } case 26 { !Dropping stuff into the barn, from above. !Usage: (4,24,obj) print "You drop "; The(val2); " over the side, and"; print MatchPlural(val2,"it","they"); " fall"; print MatchSubject(val2); " down to the barn floor." } }