!---------------------------------------------------------------------------- !**************************************** COMMUNICATIONS - POINT, SHOW, GIVE !---------------------------------------------------------------------------- routine PrintText17(val1,val2) { select val1 !------------------------- !GIVING THINGS. case 1 { select val2 case 1 { !Usage: (17,1,1) !Attempting to give something to the widow, she doesn't want. print CThe(widow); " just shakes her head at the offer." } case 2 { !Usage: (17,1,2) !Attempting to give the pendant to the woman. if (pendant.misc #3) { print "She still doesn't want "; } else { "She shrinks back in her chair, puts up her hands, and shakes her head. She doesn't seem to want "; } print The(pendant); ". "; "She looks to you with pleading eyes, then points "; if (girl in orchard): "to the south"; if (girl in barn): "to the east"; if (girl in hill): "to the north"; if (girl in location): "at the girl"; ". That, she indicates, is where it belongs." } case 3 { !Usage: (17,1,3) ! A general response to trying to give something to animal(s). print CThe(xobject); " can't possibly take"; print MatchPlural(object,"that","those"); " from you." } case 4 { !Usage: (17,1,4) ! Trying to give stuff to the barge's captain - normal. print CThe(captain); " seems doubtful of"; print MatchPlural(object,"that","those"); ". "; "He shakes his head, declining"; print MatchPlural(object,"it","them"); "." } case 5 { !Usage: (17,1,5) ! Trying to give stuff to the barge's captain - as ghost. print CThe(captain); " has no substance. He can't take anything from you." } case 6 { !Usage: (17,1,6) ! Trying to give stuff to the tyrant. print CThe(tyrant); " is not at all interested in anything you have to offer." } } !-------------------------- !GENERAL TRAPS FOR TALKING ! Note that "generic" talk ! traps for real NPCs are ! in PrintMessage(3,3,x). case 2 { select val2 case animal { !Usage: (17,2,obj) "Lacking the ability to communicate, "; print The(object); " show"; MatchSubject(object); " no sign of comprehension." } } !---------------------------- !POINTING and SHOWING case animal { !Usage: (17,obj,1) ! A general response to trying to show something to animal(s). print CThe(xobject); rnd = random(3) select rnd case 1 { print " offer"; MatchSubject(xobject); print " no response to"; } case 2 { print MatchPlural(xobject,"doesn't","don't"); " notice or"; print MatchPlural(xobject,"doesn't","don't"); print " care about"; } case 3 { print " show"; MatchSubject(xobject); " no signs that"; print MatchPlural(xobject,"it","they"); print " understand"; MatchSubject(xobject); " anything about "; } print MatchPlural(object,"that","those"); "." } case widow { !Showing things to the widow. select val2 case 0 { !Usage: (17,npc,0) print CThe(widow); " shakes her head."; rnd = random(2) select rnd case 1 { " She doesn't seem to care about"; print MatchPlural(object,"that","those"); } case 2 { print MatchPlural(object,"That doesn't", "Those don't"); " seem to interest her"; } " right now." } case 1 { !Usage: (17,npc,1) !This begins a "yes" from the woman. She nods. print CThe(widow); " nods"; rnd = random(3) select rnd case 1: " as she continues rocking. "; case 2: ", then tilts her head. "; case 3: " and points. "; } case 2 { !Usage: (17,npc,2) "She's trying to tell you... her daughter is "; } case orchard { !Usage: (17,npc,obj) PrintMessage(17,val1,1) !Begin the affirmative response. PrintMessage(17,val1,2) !She's trying to tell you... "in the orchard?" } case barn { !Usage: (17,npc,obj) PrintMessage(17,val1,1) !Begin the affirmative response. PrintMessage(17,val1,2) !She's trying to tell you... "inside the barn?" } case hill { !Usage: (17,npc,obj) PrintMessage(17,val1,1) !Begin the affirmative response. PrintMessage(17,val1,2) !She's trying to tell you... print n_obj.name; if (hill is visited): ", at the feeding hill?" else: " of here?" } case pendant { !Usage: (17,npc,obj) if (pendant.misc #2) { "Yes, that seems important. "; print CThe(widow); " nods, "; } else { print CThe(widow); " stops rocking for a moment, so that "; print "she can focus on "; The(pendant); ". "; "She nods vigorously, "; } "then points "; if (girl in hill): "to the north." if (girl in barn): "to the east." if (girl in orchard): "to the south." if (girl in location): "at the girl." } case sword,sheath { !Usage: (17,npc,obj) print CThe(widow); " seems wary of that. She shakes her head, indicating perhaps that her problems"; if (tapestry.misc #1) { " (the curse, maybe) "; } else { " (whatever they may be) "; } "can't be handled with aggression." } case widow { !Usage: (17,npc,obj) "She just smiles and nods." } case wheel { !Usage: (17,npc,obj) "She seems somehow regretful. She points to the north." } case apple { !Usage: (17,npc,obj) "Her expression is one of pure distaste." } case gate_key { !Usage: (17,npc,obj) "She recognizes the key, but she makes a motion indicating that she doesn't need it back right now." } case parchment { !Usage: (17,npc,obj) if (val2.misc #1) { "She seems unwilling to have another look." } else { val2.misc #1 = true !Flag that she saw it. "She leans forward to get a better look at the parchment. After a moment, she sits back quickly in the chair with a wave of dismissal." } } case sack, harness, rope { !Usage: (17,npc,obj) "She seems to agree that it's a fine "; if (val2 = rope) { "length of rope." } else { print val2.name; "." } } } case captain { !Showing things to the captain. select val2 case 0 { !Usage: (17,npc,0) print CThe(captain); " shrugs."; rnd = random(2) select rnd case 1 { " He doesn't seem concerned by"; print MatchPlural(object,"that","those"); } case 2 { print MatchPlural(object,"That doesn't", "Those don't"); " seem to interest him"; } " right now." } case 1 { !Usage: (17,npc,1) - a give or show response. !The captain realizes he's a ghost, and is sulking. print CThe(captain); " seems lost in thoughts of his own. If he notices "; The(object); ", he offers no indication." } case 2 { !Usage: (17,npc,2) - a give or show response. !He's reading the parchment. "At the moment, the captain is busy looking of the parchment, which lies at his feet. He takes no notice to "; if (object = captain) or (object.part_of = captain) { "you." !Really, what else could be said here? Dunno. } else { print The(object); "." !He pays no attention to it now. } } case 3 { !Usage: (17,npc,3) !Showing him parchment while it's on ground. He's reading it. print CThe(captain); " nods. He seems to understand that you have undertaken an important quest." } case 4 { !Usage: (17,npc,4) !We're trying to show something off-topic, with spiders here. print CThe(captain); " seems frustrated that "; if (sword.misc #1) { "you haven't drawn your sword."; } else { "you aren't fighting the spiders."; } " He points toward the spider nearest you, and makes grandiose sweeping gestures with his arms." } case captain { !Usage: (17,npc,obj) rnd = random(3) select rnd case 1: "He takes a bow." case 2: "He just nods to you." case 3: "He shrugs." } case parchment { print CThe(captain); if (captain.misc #5) { !He has already seen it. " nods, then glances at it again. He points to the "; print game_fore_dir.name; ", perhaps indicating that his own travels run parallel to yours." } else { !First time he's seeing it. " looks over the parchment carefully. He seems to understand that you have undertaken an important quest. He makes a general gesture at the barge, perhaps to let you know that he can get you there faster." } } case sword { print CThe(captain); if (deck.misc #1 = 0) { " nods vigorously, and then points at the "; if (red_spider.found_in = location) print red_spider.adjectives #1; elseif (black_spider.found_in = location) print black_spider.adjectives #1; else print gray_spider.adjectives #1; " spider nearest to you." } else { " seems grateful that you are such a skilled swordsman." } } case spiders { print CThe(captain); " is well aware of the spider infestation. He makes slashing and cutting motions with his arms, then points to your sword." } case sail_arm { print "From here, "; The(captain); " can see that the top end is stuck at the top of the tall center post. He "; if InList(cargo,misc,mast) { "points at the three cargo crates stacked beside the mast, and then up toward the top of the post." } else { "considers the problem. After a moment, he points toward the scattered crates, and makes a pushing motion toward the mast." } } case mast { print CThe(captain); select rnd case 1 { ! The captain wants us to lower the mast. " nods. He makes a lowering motion, then points out to the mast." } case 2 { ! The handles of the mast have been broken. " shakes his head. The mast handles are broken." } case 3 { ! We need to recover the sail arm. if InList(cargo,misc,mast) { " points at the three cargo crates stacked beside the mast, and then up toward the top of the post." } else { " considers it. After a moment, he points toward the scattered crates, and makes a pushing motion toward the mast." } } } case helm { print CThe(captain); if (deck.misc #1 = 4) { !Yes, now's the time to take the helm. " smiles and slowly nods. He seems ready for you to take the helm, as though he knows what to expect and welcomes it." } else { !It's not yet time to take the helm. " shakes his head and motions you away from the helm." } } } case tyrant { !Showing things to the tyrant. select val2 case 0 { !Usage: (17,npc,0) print CThe(tyrant); " ignores your gestures. His one fixation is the fight." } case fishnet { "The tyrant wags a finger at you, as if to say you'll never trap him in that." } case sword { "The tyrant is in no mood to compare swords." } case parchment { "He glances at it, then sneers. You've found the right tyrant." } } }