!---------------------------------------------------------------------------- !**************************************** VARIOUS "CAN'T TAKE THAT" MESSAGES !---------------------------------------------------------------------------- routine PrintText10(val1,val2) { select val1 case rope { if (val2 = 1) { !Usage: (10,obj,1) ! I have to be careful here. I don't want to make the player ! think that the rope is *entirely* impossible to remove, ! but at the same time, I don't want to say something like ! "you'll have to chop it off to get it loose." So, the ! wording is (hopefully) clued just well enough to work. print CThe(rope); " is tied securely around the handle on "; print The(hatch); ". You make an attempt to untie it, but "; "it won't come loose that way. These knots were tied to last." } } case tackle { !Usage: (10,obj) ! We've already found the harness, so nothing else matters. "None of the rest of it interests you." } case wheel { if (val2 = 1) { !Usage: (10,obj,1) "With its missing wheel returned, the wagon is fixed. Even though the wagon remains uselessly tipped over on one side, you have no need to take the wheel back off." } } case wagon_wheels { select val2 case 1 { !Usage: (10,obj,1) "No, the wagon is better off with all its wheels." } } case wagon { select val2 case 1 { !Usage: (10,obj,1) "The wagon is large and heavy. No way can you take it with you." } } case grain { !Usage: (10,obj) print "The grain has been poured into one end of "; print The(trough); ", and there it will remain"; if InList(bull,found_on,hill) { " until the bull has its fill." } else { "." } } case harness { !Usage: (10,obj,1) !The player is trying to take back the harness, but it's on bull. "Now that it's strapped to the bull, it's going to stay there." } case bull_horns { !Usage: (10,obj,1) !Trying to take/pull/hit/etc its horns. "The bull wouldn't like that at all, and besides, it's likely to gore you with them." } case widow_hair { !Usage: (10,obj,1) "You reach out a hand to tug on the woman's hair, but think better of it." } case apple { select val2 case 1 { !Usage: (10,obj,1) !Trying to get the apple from the tree. "It's high in the branches of the tree, out of reach." } case 2 { !Usage: (10,obj,2) !This is said if we implicitly find the apple during an !action that is intended to get or interact with it. if (verbroutine = &DoGet, &DoGetFrom) { print CThe(apple); " is out of reach." } else { "However, it's too high to reach." } } } case blossoms { select val2 case 1 { !Usage: (10,obj,1) "You pick up an apple blossom, only to watch it turn to dust in your hand. It blows away on the wind." } } case apple_tree { select val2 case 1 { !Usage: (10,obj,1) !Player is trying to take the whole tree. print CThe(val1); "? You can't." } } case wood_paneling, reed_hoses, steel_springs, thick_cords { !Usage: (10,obj,1) ! I want to support the attempts, but not lead the player into ! thinking they're somehow *supposed* to make it work. print "You pull on "; The(val1); ", but nothing happens. It's probably for the best. You are messing with the pieces of a strange contraption, and any result you may manage to finagle from it is unlikely to help you."; if (wheel is moved) { print newline !Nothing else to be added. } else { " The wooden wheel, however, seems out of place and a little loose." } } case tapestry { !Usage: (10,obj,1) ! I'm doing away with this. I need to clue the player into touching ! the tapestries in the last chapter, and this could discourage ! them from even trying. So, instead of doing this in response to ! DoGet and DoPull, I'm going to print a different version. This ! can also be called for DoTouch and routines such as that. ! !! if (location = cellar) { !! "It's mounted at the top, and that's too far up the wall. "; !! } else { !! "You can't see how it's mounted to the wall. "; !! } !! "Moreover, it seems to be protected by an enchantment. It's !! evidently meant to stay here, "; !! select location !! case cellar: "hidden away in this dark, deep cellar, forever. "; !! case quarters: "hidden away in the captain's quarters, forever. "; !! "You can't take it with you." ! "A white light envelops the tapestry when you "; if (verbroutine = &DoGet): "try taking "; elseif (verbroutine = &DoPush): "push on "; elseif (verbroutine = &DoPull, &DoMove): "pull on "; else: "touch "; "it. Just as quickly, it sparks and fizzles away. An enchantment is at work in the tapestry, but such things are beyond your skills.\n" if (verbroutine = &DoPush, &DoPull, &DoMove) { ! In beta, some players were thinking something might be behind ! the tapestry. So, let's handle that here, and make sure not. "You notice nothing of interest behind it." !That'll do. } else { "Nothing else happens." } } case cargo { select val2 case 1 { !Usage: (10,obj,1) "The crates are large and heavy; so much so, that you find it impossible to lift and carry one more than a short distance. Unless you intend to move or arrange the cargo (and you haven't the time to do a proper job of it), you will have to leave the crates here on the deck." } } case rusty_lock { select val2 case 1 { !Usage: (10,obj,1) "You pull on the rusty lock, but it's fastened securely to the mill door's latch." } case 2 { !Usage: (10,obj,2) - Attempting to take lock from basin. "The lock is wedged under the millstone, inside the basin. No amount of tugging is going to help you retrieve it now." } } case starboard_wing { select val2 case 1 { !Usage: (10,obj,1) - When it's on the ground, can only move. "It's too large to carry with you, but not too heavy to move." } case 2 { !Usage: (10,obj,2) - When it's leaning against windmill. !This will be used not just for "get", but also "move". "The wing is leaning upright against the windmill, taking the place of the lower steps. You don't need to move it." } } case pipe { select val2 case 1 { !Usage: (10,obj,1) - Attempting to take pipe from basin. print CThe(pipe); " is really down in there, where the millstone turns and crushes. You can't retrieve the pipe now, without losing a hand in the process." } } case sack { select val2 case 1 { !Usage: (10,obj,1) - The sack is caught up in the gears. "The sack is out of reach, way up in the gears. In its current state, it wouldn't be worth having anyway." } } case sail_arms { select val2 case 1 { !Usage: (10,obj,1) - Need to find another way to "get" one. "The sail arms are bound tightly with thick cords. You find it presently impossible to lift one off the main axle." } case 2 { !Usage: (10,obj,2) - You have already removed one. ! Note that this gets called from multiple places where the ! intent is to remove a sail arm, so make it kinda generic. "You have already removed one of the sail arms, and one is all you need. It fell to the deck of the barge. The cords holding the others are too thick and tightly wrapped. You could cut them off given extra time and effort, but it seems unnecessary now." } } case sail_arm { !select val2 !Not necessary - we can't mess with slot while flying. !case 1 { ! !Usage: (10,obj,1) - can't take it back out of the slot. !} } case axle_cords { select val2 case 1 { !Usage: (10,obj,1) - Too thick to be untied. if (val1.misc #1) { "It will take more than nimble fingers to remove the cord." } else { "The cords are thick and tightly knotted around the axle; nearly fused to it, in fact, after many years of varying weather. You try to untie some of it, but it's impossible." } } } case cabin_ladder, deck_ladder { !Either of these ladders might seem likely to the player. select val2 case 1 { !Usage: (10,obj,1) - Trying to move/get it, in general. print CThe(val1); " won't budge. You can't "; VerbWord; " it." } case 2 { !Usage: (10,obj,1) - Probably wanting it for the mast. print CThe(val1); " is fixed in place. You can climb it here, but you can't "; VerbWord; " it. If your intention is to reach the top of the mast, you will have to find another way." } } case panel_hooks { select val2 case 1 { !Usage: (10,obj,1) - Trying to get the hooks. "You carefully pull, but they won't come out." } } case chain { select val2 case 1 { !Usage: (10,obj,1) - Trying to untie chain from windlass. if (val1.misc #1) { print CThe(val1); " is linked into the barrel of the windlass. You see no way to remove it." } else { print "Most of "; The(val1); " is wound around the barrel of the windlass. You can't remove it." } } case 2 { !Usage: (10,obj,2) - Trying to take chain, but it's attached. print "With "; The(val1); " "; val1.attached_desc; " "; print The(val1.attached_to #2); ", nothing is to be gained by taking hold of it now." } } case plate { select val2 case 1 { !Usage: (10,obj,1) - Trying to pull plate, but it's held down. "The plate is pressed down, a little below ground level. You can't get a hold on it." } case 2 { !Usage: (10,obj,2) - Trying to pull plate, and not held down. "You try to pull the plate up, but it proves impossible. "; if (plate.misc #1) { "It can only be pressed down." } else { ! This should be a pretty good clue about how it works. "For a moment, it seemed to sink a little from the pressure." } } } case upward_chain { select val2 case 1 { !Usage: (10,obj,1) "You don't need to take hold of the chain, unless you intend to climb up." } } case farm_tapestry, barge_tapestry { select val2 case 1 { !Usage: (10,obj,1) ! This is printed if the player tries taking cut-up tapestries. "Even cut into ribbons, the tapestry hangs on the wall. You can see no way to take it down." } } case treasure { select val2 case 1 { !Usage: (10,obj,1) "Maybe later, when the tyrant has been "; if (tyrant.misc #2): "defeated, captured, "; else: "captured "; "and brought to justice, there will be time to sort out the treasure and decide how best to redistribute it. For now, it's better left here, together and in one place." } } case tyrant_sword { select val2 case 1 { !Usage: (10,obj,1) "He's clutching it rather tightly. Your skill as a swordsman prevents you from trying to take it from him. Instead, it would be better to watch his moves, react, and defeat him in a fair fight." } } case casserole { select val2 case 1 { !Usage: (10,obj,1) if (verbroutine = &DoGet): "It"; else: print CThe(casserole); " still needs to bake a little longer." } } case dishrag { select val2 case 1 { !Usage: (10,obj,1) "At the moment, the dishes are done. You don't need "; print The(dishrag); "." } } case dishes { select val2 case 1 { !Usage: (10,obj,1) !This'll also get printed when we try to push, pull, move. "The cups and plates are clean. You don't need to do anything else with them." } } }