Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 21.65 KB | None | 0 0
  1. /*
  2.      Hey there! Quick comment to explain some weirdness you'll see below. Here are two
  3.      things
  4.  
  5.          ", QT_NAME(t), " - notice the commas
  6.          " +HE(t)+ "      - notice the +'s
  7.  
  8.      This is because the QT_NAME macros are constructed by making statements into arrays.
  9.      Effectively, let's look at this:
  10.  
  11.      ({"You lunge, and try to hook ", QT_NAME(t), " but "+HE(t)+" steps out of the way. You fall flat on your face!.\n"})
  12.  
  13.      The first thing you see in the code below. ;) QT_NAME will depend based on who is
  14.      actually doing the looking. This is why it's an array. These messages are sent to each
  15.      character individually. The HE() there is a macro which gives a gendered pronoun
  16.      (with HIM() and HIS() giving objective and possessive, respectively), so it's unnecessary
  17.      to make it into an actual entry. Just concatenate that stuff right into the string there. ;)
  18.  
  19.      Sorry if this is weird. To make it short, always make sure you surround QT_NAME() and
  20.      similar macros with commas. Always surround HE() and similar macros with plus signs. :)
  21.  
  22.     -WW
  23.  
  24.     QT_NAME(t)   target full description or remembered name), join with commas
  25.     QCT_NAME(f)  attacker full description or remembered name), join with commas
  26.     HE(t)        target pronoun, join with +
  27.     HIS(f)       attacker possessive pronoun, join with +
  28.     capitalize() useful for capitalising pronouns
  29.  
  30.  */
  31. #include "../cfs_defs.h"
  32.  
  33. #define T_ENV(s,obs) tell_objects(all_inventory(environment(obs[0]),2)-obs,s);
  34. #define T(o,s) o->catch_msg(s)
  35.  
  36. inherit STD_STYLE;
  37.  
  38. string query_author() { return "Bokitja"; }
  39.  
  40. int style_check(object f, string sp) {
  41.   switch(f->query_race()) {
  42.     case "dwarf":
  43.       return 1;
  44.       break;
  45.  
  46.     case "human":
  47.     case "areede":
  48.     case "northman":
  49.       if (f->query_height() is-more-than("short") ) { // FIXME how to get, and compare?
  50.         f->catch_msg("You are too tall to use this style.\n");
  51.         return 0;
  52.         break;
  53.       }
  54.       else if (f->query_strength() is-less-than("forceful")) { // FIXME how to get, and compare?
  55.         f->catch_msg("You lack the raw power of a Dwarf to use this fighting style.\n");
  56.         return 0;
  57.         break;
  58.       }
  59.       else {
  60.         return 1;
  61.         break;
  62.       }
  63.  
  64.     case "gnome":
  65.     case "brookling":
  66.     case "hillgnome":
  67.       if (f->query_strength() is-less-than("epic")) { // FIXME how to get, and compare?
  68.         f->catch_msg("You lack the raw power of a Dwarf to use this fighting style.\n");
  69.         return 0;
  70.         break;
  71.       }
  72.       else {
  73.         return 1;
  74.         break;
  75.       }
  76.       return 1;
  77.       break;
  78.  
  79.     default:
  80.       f->catch_msg("You lack the necessary strength and compactness of a Dwarf to use this fighting style.\n");
  81.       return 0;
  82.       break;
  83.   }
  84. }
  85.  
  86.  
  87. public void get_messages(object f, object t, string sp, int success, mixed
  88. additional) {
  89.   string wp;
  90.   string deity;
  91.   string self_output, target_output, room_output;
  92.   object * wielded;
  93.   int wielded_size, wielded_count; // for scream
  94.  
  95.   if(additional&&objectp(additional))
  96.     wp = additional->short();
  97.   else
  98.     wp = "clenched fist";
  99.  
  100.   deity = f->query_deity();
  101.  
  102.   switch(sp) {
  103.     case CFS_S_PUNCH:
  104.  
  105.     switch(success) {
  106.       case 0:  // critical failure
  107.       self_output = "You lunge at ", QT_NAME(t), " and try to hook " +HIM(t)+ ", but " + HE(t)+ " steps out of the way. You crash to the floor, landing on your outstretched arm!.\n";
  108.       target_output = QCT_NAME(f), " lunges at you with an outsretched arm, but you step out of the way. ", QCT_NAME(f), " crashes to the floor!\n";
  109.       room_output = QCT_NAME(f), " lunges at ",QT_NAME(t), " with an outstretched arm, but " +HE(t)+ " steps out of the way. ", QCT_NAME(f), " crashes to the floor!\n";
  110.       break;
  111.  
  112.       case 1:  // failure
  113.       self_output = "You lunge at ", QT_NAME(t), " and manage to hook " +HIM(t)+ ", but " + HE(t)+ " breaks free and pushes you away.\n";
  114.       target_output = QCT_NAME(f), " lunges at you and hooks an arm around you, but you manage to break free.\n";
  115.       room_output = QCT_NAME(f), " lunges at ",QT_NAME(t), " and hooks an arm around " +HIM(t)+ ", but ", QT_NAME(t), " manages to break free from the attack.\n";
  116.       break;
  117.  
  118.       case 2:  // success
  119.       self_output = "You lunge at ", QT_NAME(t), " and manage to hook " +HIM(t)+ " long enough to land a heavy punch.\n";
  120.       target_output = QCT_NAME(f), " lunges at you, and hooks you long enough to land a heavy punch.\n";
  121.       room_output = QCT_NAME(f), " lunges at ", QT_NAME(t), ", and hooks " +HIM(t)+ " long enough to land a heavy punch.\n";
  122.       break;
  123.  
  124.       case 3:  // critical success
  125.       self_output = "You lunge at ", QT_NAME(t), " and manage to hook " +HIM(t)+ " long enough to land a heavy punch. Your fist bores deep into muscle!\n " + QCT_NAME(t), " howls in pain!\n";
  126.       target_output = QCT_NAME(f), " lunges at you, and hooks you long enough to land a heavy punch. ", QCT_NAME(f), "'s fist bores deep into your muscle!\n You howl in pain!\n";
  127.       room_output = QCT_NAME(f), " lunges at ", QT_NAME(t), " and hooks " +HIM(t)+ " long enough to land a heavy punch. ", QCT_NAME(f), "'s fist bores deep into muscle!\n", QCT_NAME(t), " howls in pain!\n";
  128.       break;
  129.  
  130.     }
  131.     break;
  132.  
  133.  
  134.     case CFS_S_KICK:
  135.  
  136.     switch(success) {
  137.       case 0:  // critical failure
  138.       self_output = "You barge in close to ", QT_NAME(t), " and raise your foot, but you lose your balance and fall to the ground.\n";
  139.       target_output = QCT_NAME(f), " barges in close to you and raises a foot, but " + HE(f)+ " overbalances and falls to the ground.\n";
  140.       room_output = QCT_NAME(f), " barges in close to " ,QT_NAME(t), " and raises " + HIS(f)+ " foot, but overbalances and falls to the ground.\n";
  141.       break;
  142.  
  143.       case 1:  // failure
  144.       self_output = "You barge towards ", QT_NAME(t), " and raise your foot, but " + HE(t)+ " doesn't let you get close enough for an attack.\n";
  145.       target_output = QCT_NAME(f), " barges towards you and raises a foot, but you are able to keep your distance.\n";
  146.       room_output = QCT_NAME(f), " barges towards ", QT_NAME(t), " and raises a foot, but ", QT_NAME(t), " is able to keep " +HIM(f)+ " at a distance.\n";
  147.       break;
  148.  
  149.       case 2:  // success
  150.       self_output = "You barge in close to ", QT_NAME(t), ", raise your foot and drive it into "+HIS(t)+" leg.\n";
  151.       target_output = QCT_NAME(f), " barges in close to you, raises a foot and drives it into your leg.\n";
  152.       room_output = QCT_NAME(f), " barges in close to ", QT_NAME(t), ", raises a foot and drives it into " +HIS(t)+ " leg.\n";
  153.       break;
  154.  
  155.       case 3:  // critical success
  156.       self_output = "You barge in close to ", QT_NAME(t), ", raise your foot and drive it HARD into "+HIS(t)+" knee!\n";
  157.       target_output = QCT_NAME(f), " barges in close to you, raises a foot and drives it HARD into your knee!\n";
  158.       room_output = QCT_NAME(f), " barges in close to ", QT_NAME(t), ", raises a foot and drives it HARD into " +HIS(t)+ " knee!\n";
  159.       if (!t->query_prop(LIVE_I_AT_GROUND)) {
  160.         self_output += QCT_NAME(t), "'s knee buckles and " +HE(t)+ " falls to the ground.\n";
  161.         target_output += "Your knee buckles and you fall to the ground.\n";
  162.         room_output += QCT_NAME(t), "'s knee buckles and " +HE(t)+ " falls to the ground.\n";
  163.       }
  164.       break;
  165.     }
  166.  
  167.     break;
  168.  
  169.  
  170.     case CFS_S_CLEAVE:
  171.  
  172.     if(!success) {
  173.       self_output = "You lumber toward ", QT_NAME(t), " with your " +wp+ " held high. At the last moment you leap into the air and furiously swing your " +wp+ ", but " +HE(t)+ " steps out of the way.\n";
  174.       target_output = QCT_NAME(f), " lumbers toward you with " +HIS(f)+ " " +wp+ " held high. " +capitalize(HE(t))+ " leaps into the air and swings " +HIS(f)+ " " +wp+ " at you, but you are able to step away in time.\n";
  175.       room_output = QCT_NAME(f), " lumbers towards ", QT_NAME(t), " with " +HIS(f)+ " " +wp+ " held high. " +capitalize(HE(t))+ " leaps and swings, but ", QT_NAME(t), " steps out of the way.\n";
  176.     }
  177.  
  178.     else {
  179.       self_output = "You lumber toward ", QT_NAME(t), " leading the way with your " +wp+ " held high. ", QCT_NAME(t), " hesitates long enough for you to leap up and bring your " +wp+ " down in a furious *SMASH*, splattering blood everywhere!\n";
  180.       target_output = QCT_NAME(f), " lumbers towards you, leading the way with " +HIS(f)+ " " +wp+ " held high. You hesitate just long enough for " +HIM(f)+ " to leap up and bring " +HIS(f)+ " " +wp+ " down upon you in a furious *SMASH*, and you see your blood splatter!\n";
  181.       room_output = QCT_NAME(f), " lumbers towards ", QT_NAME(t), " leading the way with " +HIS(f)+ " " +wp+ " held high. ", QCT_NAME(t), " hesitates long enough for ", QT_NAME(f), " to leap up and bring " +HIS(f)+ " " +wp+ " down in a furious *SMASH*. You are hit with splattering blood!\n";
  182.     }
  183.  
  184.     break;
  185.  
  186.  
  187.     case CFS_S_SPIN:
  188.  
  189.     if(!success) {
  190.       self_output = "You charge at ", QT_NAME(t), " swinging your " +wp+ " wildly, but you clumsily hit nothing but air!\n";
  191.       target_output = QCT_NAME(f), " charges at you, swinging " +HIS(f)+ " " +wp+ " wildly. You avoid the attack.\n";
  192.       room_output = QCT_NAME(f), " charges at ", QT_NAME(t), " swinging " +HIS(f)+ " " +wp+ " wildly, but " +HE(f)+ " clumsily hits nothing but air!\n";
  193.     }
  194.  
  195.     else {
  196.       self_output = "You charge at ", QT_NAME(t), ", swinging your " +wp+ " in a wild frenzy! You explode through ", QT_NAME(t), "'s feeble guard and land a *SOLID* blow!\n";
  197.       target_output = QCT_NAME(f), " charges at you, swinging " +HIS(f)+ " " +wp+ " in a wild frenzy! " +capitalize(HE(f))+ " crashes through your guard and lands a *SOLID* blow!\n";
  198.       room_output = QCT_NAME(f), " charges at ", QT_NAME(t), ", swinging " +HIS(f)+ " " +wp+ " in a wild frenzy! " +capitalize(HE(f))+ " explodes through ", QT_NAME(t), "'s feeble guard and lands a *SOLID* blow!\n";
  199.     }
  200.  
  201.     break;
  202.  
  203.  
  204.     case CFS_S_DISARM:
  205.  
  206.     if(!success) {
  207.       self_output = "You lunge and try to grab hold of ", QT_NAME(t), "'s arm, but fail.\n";
  208.       target_output = QCT_NAME(f), " lunges and tries to grab your arm but fails.\n";
  209.       room_output = QCT_NAME(f), " lunges and tries to grab ", QT_NAME(t), + "'s arm, but fails.\n";
  210.     }
  211.  
  212.     else {
  213.       self_output = "You lunge, grab hold of ", QT_NAME(t), "'s arm, pull it close to your chest and *CHOMP* down hard on " +HIS(t)+ " hand. Blood spurts from the wound, and " +HIS(t)+ " weapon clatters to the ground!\n";
  214.       target_output = QCT_NAME(f), " lunges, grabs hold of your arm, pulls it close to " + HIS(f)+ " chest and *CHOMPS* down hard on your hand. Blood spurts from the wound and you lose hold of your weapon!\n";
  215. // FIXME target's weapon? not wp
  216.       room_output = QCT_NAME(f), " lunges, grabs hold of ", QT_NAME(t), "'s arm, pulls it in close to " +HIS(f)+ " chest and *CHOMPS* down hard on ", QT_NAME(t), "'s hand. Blood spurts from the wound, and ", QT_NAME(t), "'s weapon falls to the ground!\n";
  217.     }
  218.  
  219.     break;
  220.  
  221.  
  222.     case CFS_S_STAND:
  223.  
  224.     if(!success) {
  225.       self_output = "You plant your " +wp+ " into the ground and try to propel yourself up, but it gives way and you fall back to the ground.\n";
  226.       target_output = QCT_NAME(f), " tries to propel " +HIM(f)+ "self up off the ground but fails.\n";
  227.       room_output = target_output;
  228.     }
  229.  
  230.     else {
  231.       self_output = "You plant your " +wp+ " into the ground and propel yourself up onto your feet.\n";
  232.       target_output = QCT_NAME(f), " propels " +HIM(f)+ "self up onto " +HIS(f)+ " feet.\n";
  233.       room_output = target_output;
  234.     }
  235.  
  236.     break;
  237.  
  238.  
  239.     case CFS_S_RESCUE:
  240.  
  241.     if(!success) {
  242.       self_output = "You hurtle toward ", QT_NAME(t), ", preparing to bump " +HIM(t)+ " out of harm's way. Your timing is off and you succeed only in attacking from a different angle.\n";
  243.       target_output = QCT_NAME(f), " hurtles past you, making no appreciable difference to the fight.\n";
  244.       room_output = QCT_NAME(f), " hurtles past ", QT_NAME(t), ", making no appreciable difference to the fight.\n";
  245.     }
  246.  
  247.     else {
  248.       self_output = "With a running start you barrel into ", QT_NAME(t), ", knocking " + HIM(t)+ " out of harm's way.\n";
  249.       target_output = QCT_NAME(f), " barrels into you, knocking you out of harm's way.\n";
  250.       room_output = "With a running start ", QCT_NAME(f), " barrels into ", QT_NAME(t), ", knocking " +HIM(t)+ " out of harm's way.\n";
  251.     }
  252.  
  253.     break;
  254.  
  255.  
  256.     case CFS_S_FOCUS:
  257.  
  258.     switch(success) {
  259.       case -1:  // message when it wears off
  260.       self_output = "A jumble of thoughts return to your mind.\n";
  261.       target_output = QCT_NAME(f), " flinches and for a brief moment a scowl crosses " +HIS(f)+ " face.\n";
  262.       break;
  263.  
  264.       case 0:  // initial message (at time when command is given)
  265.       self_output = "You utter a prayer to " +deity+ " and focus your thoughts on " + additional+ ".\n";
  266.       target_output = QCT_NAME(f), " murmurs something quietly to " +HIM(f)+ "self.\n";
  267.       break;
  268.  
  269.       case 1:  // failure
  270.       self_output = "You seem to have recited the prayer wrong. You grit your teeth in frustration.\n";
  271.       target_output = QCT_NAME(f), " grits " +HIS(f)+ " teeth and looks frustrated.\n";
  272.       break;
  273.  
  274.       case 2:  // success
  275.       self_output = "Your prayer is answered. You feel you will be able to use " + additional+ " more effectively now.\n";
  276.       target_output = QCT_NAME(f), " appears satisfied with " +HIS(f)+ " prayer.\n";
  277.       break;
  278.  
  279.       case 3:  // critical success
  280.       self_output = "Adrenaline courses through your body as your prayer is answered. You feel like you cannot fail!\n";
  281.       target_output = QCT_NAME(f), "'s eyes glimmer, " +HIS(f)+ " muscles ripple, and " + HE(f)+ " appears very satisfied with " +HIS(f)+ " prayer.\n";
  282.       break;
  283.     }
  284.     room_output = target_output;
  285.  
  286.     break;
  287.  
  288.  
  289.     case CFS_S_SCREAM:
  290.  
  291. // FIXME int wielded_count = 0 or 1 or 2;
  292. // unarmed: 0
  293. // unarmed + shield: 0
  294. // one 2hander: 1
  295. // one 1hander + shield: 1
  296. // one 1hander: 1
  297. // two 1handers: 2
  298.     wielded = f->query_wielded();
  299.     wielded_size = sizeof(wielded),
  300.     wielded_count = 0;
  301.     for (int i = 0; i < wielded_size; i++) {
  302.       if (wielded[i]->query_type() != SHIELD) {
  303.         wielded_count++;
  304.       }
  305.     }
  306.  
  307.     switch(wielded_count) {
  308.       case 0:
  309.       self_output = "Fists held wide, ";
  310.       target_output = self_output;
  311.       break;
  312.  
  313.       case 1:
  314.       self_output = "Brandishing your " +wp+ " above your head, ";
  315.       target_output = "Brandishing " +HIS(t)+ " " +wp+ " above " +HIS(t)+ " head, ";
  316.       break;
  317.  
  318.       case 2:
  319.       self_output = "Brandishing your weapons wide, ";
  320.       target_output = "Brandishing " +HIS(t)+ " weapons wide, ";
  321.       break;
  322.     }
  323.     room_output = target_output;
  324.  
  325.     self_output += "you shout an ancient battle hymn to " +deity+ " and charge into battle!\n";
  326.     target_output += HE(f)+ " shouts in an unfamiliar tongue and charges towards you!\n";
  327.     room_output += HE(f)+ " shouts in an unfamiliar tongue and charges towards ", QT_NAME(t), "!\n";
  328.  
  329.     switch(success) {
  330.       case 0:  // critical failure
  331.       self_output += QCT_NAME(t), " holds " +HIS(t)+ " ground and laughs in your face!\n";
  332.       target_output += "You hold your ground and laugh in ", QT_NAME(f), "'s face!\n";
  333.       room_output += QCT_NAME(t), " holds " +HIS(t)+ " ground and laughs loudly.\n";
  334.       break;
  335.  
  336.       case 1:  // failure
  337.       self_output += QCT_NAME(t), " holds " +HIS(t)+ " ground and stares you down.\n";
  338.       target_output += "You hold your ground and lock gaze with ", QT_NAME(f), ".\n";
  339.       room_output += QCT_NAME(t), " holds " +HIS(t)+ " ground, glaring at ", QT_NAME(f), ".\n";
  340.       break;
  341.  
  342.       case 2:  // success
  343.       self_output += QCT_NAME(t), " looks a bit fearful.\n";
  344.       target_output += "A feeling of dread overcomes you!\n";
  345.       room_output += QCT_NAME(t), " looks a bit fearful.\n";
  346.       break;
  347.  
  348.       case 3:  // critical success 1
  349.       self_output += QCT_NAME(t), " looks terrified! " +capitalize(HE(t))+ " tries to back up, but stumbles and falls to the ground.\n";
  350.       target_output += "Fear takes hold of you! You begin to backpedal, but stumble and fall!\n";
  351.       room_output += QCT_NAME(t), " looks terrified! " +capitalize(HE(t))+ " tries to back up, but stumbles and falls to the ground.\n";
  352.       break;
  353.  
  354.       case 4:  // critical success 2
  355.       self_output += QCT_NAME(t), " looks terrified, and stands frozen on the spot!\n";
  356.       target_output += "Fear takes hold of you. You tense up and feel unable to move!\n";
  357.       room_output += QCT_NAME(t), " looks terrified, and stands frozen on the spot!\n";
  358.       break;
  359.     }
  360.  
  361.     break;
  362.  
  363.  
  364.     case CFS_S_BASH:
  365.  
  366.     if(!success) {
  367.       self_output = "You snap your " +wp+ " out with a fierce backhand, but miss.\n";
  368.       target_output = QCT_NAME(f), " snaps " +HIS(f)+ " " +wp+ " with a fierce backhand, but misses.\n";
  369.       room_output = target_output;
  370.     }
  371.  
  372.     else {
  373.       self_output = "You *SNAP* your " +wp+ " out with a fierce backhand, walloping ", QT_NAME(t), ".\n";
  374.       target_output = QCT_NAME(f), " *SNAPS* " +HIS(f)+ " " +wp+ " out with a fierce backhand. You move to block, but you are too late as it slams into you!\n";
  375.       room_output = QCT_NAME(f), " *SNAPS* " +HIS(f)+ " " +wp+ " out with a fierce backhand, giving ", QT_NAME(t), " a good wallop!\n";
  376.     }
  377.  
  378.     break;
  379.  
  380.  
  381.     case CFS_S_IRONWILL:
  382.  
  383.     if(!success) {
  384.       self_output = "You search for " +(deity == "no god") ? "courage" : deity+ " in your heart but fail!\n";
  385.       target_output = "";
  386.       room_output = target_output;
  387.     }
  388.  
  389.     else {
  390.       if (deity == "no god")
  391.           deity = "all that I stand for";
  392.  
  393.       self_output = "Your knuckles turn white as you grip your " +wp+ " firmly. You plant your feet firmly and shout: By da name of " +deity+ ", I shall not fail!!\n";
  394.       target_output = QCT_NAME(f), " grips " +HIS(f)+ " " +wp+ " firmly, knuckles turning white. " +capitalize(HE(f))+ " plants " +HIS(f)+ " feet firmly, and shouts: By da name of " +deity+ ", I shall not fail!!\n";
  395.       room_output = target_output;
  396.     }
  397.  
  398.     break;
  399.  
  400.  
  401.     case CFS_S_REST:
  402.  
  403.     target_output = "";
  404.     switch (success) {
  405.       case -1: // messsage when command given
  406.       self_output = "You quietly hum a prayer to " +deity+ ".\n";
  407.       target_output = QCT_NAME(f), " seems to be quietly humming.\n";
  408.       break;
  409.  
  410.       case 0:  // message after call-out: failure
  411.       self_output = "You falter and lose your rhythm. How annoying!\n";
  412.       target_output = QCT_NAME(f), " stops humming, then swears loudly!\n";
  413.       break;
  414.  
  415.       case 1:  // message after call-out: success
  416.       self_output = "You hum a song of prayer, feeling your faith wash your fatigue away.\n";
  417.       target_output = QCT_NAME(f), " seems to be refreshed.\n";
  418.       break;
  419.     }
  420.     room_output = target_output;
  421.  
  422.     break;
  423.  
  424.  
  425.     case CFS_S_BLIND:
  426.  
  427.     switch(success) {
  428.       case 0:
  429.       self_output = "You bend over to grasp some " +additional+ " and prepare to throw it at ", QT_NAME(t), ", but it slips through your fingers as you try to hurl it. Instead of hitting ", QT_NAME(t), ", it flicks back in your face!\n";
  430.       target_output = QCT_NAME(f), " fumbles while trying to throw something, and hits " +HIM(f)+ "self in the face, looking quite stupid in the process.\n";
  431.       room_output = target_output;
  432.       break;
  433.  
  434.       case 1:
  435.       self_output = "You bend over to grasp some " +additional+ " and prepare to throw it at ", QT_NAME(t), ", but it slips through your fingers as you try to hurl it.\n";
  436.       target_output = QCT_NAME(f), " fumbles while trying to throw something, and swings an empty hand toward you.\n";
  437.       room_output = QCT_NAME(f), " fumbles while trying to throw something, and swings an empty hand toward ", QT_NAME(t), ".\n";
  438.       break;
  439.  
  440.       case 2:
  441.       self_output = "You squat to grasp some " +additional+ ", and hurl it at ", QT_NAME(t), ". It was a good throw, and " +additional+ " lands in " +HIS(t)+ " eyes even though " +HE(t)+ " turned " +HIS(t)+ " head at the last possible moment. " +HE(t)+ " seems temporarily blinded. You rise up and return to your fighting stance.\n";
  442.       target_output = "You notice ", QT_NAME(f), " squatting to grasp some " +additional+ ", and hurling it in your direction. You turn your head aside in time to partly avoid it, so you are blinded, but you are sure it could have been worse.\n";
  443.       room_output = QCT_NAME(f), " hurls some " +additional+ " at ", QT_NAME(t), ", and even though ", QT_NAME(t), " turns " +HIS(t)+ " head at the last possible moment, " +HE(t)+ " is hit by it and left blind for a moment. ", QCT_NAME(f), " resumes " +HIS(f)+ " fighting stance.\n";
  444.       break;
  445.  
  446.       case 3:
  447.       self_output = "You deftly grasp some " +additional+ " as you step low towards ", QT_NAME(t), ". You hurl it in the same motion, and " +additional+ " lands squarely in " +HIS(t)+ " face. That should blind "+HIM(t)+ " for a while.\n";
  448.       target_output = QCT_NAME(f), " steps low towards you, grasping at something. " +capitalize(HE(f))+ " hurls it in the same motion, and you are hit squarely in the face with " +additional+ ". You're blinded and it hurts like hell.\n";
  449.       room_output = QCT_NAME(f), " steps low towards ", QT_NAME(t), ", grasping at something. " +capitalize(HE(f))+ " hurls it in the same motion, and ", QT_NAME(t), " is hit squarely in the face with " +additional+ ". " +capitalize(HE(t))+ " seems to be blinded and in pain.\n";
  450.       break;
  451.     }
  452.  
  453.     break;
  454.  
  455.   default: T(f,"YOU ENCOUNTERED A BUG. CONTACT PINCER!\n");
  456.  
  457.   break;
  458.   }
  459.  
  460.   T(f, self_output);
  461.   T(t, target_output);
  462.   T_ENV(({room_output}), ({f,t}));
  463. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement