home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume5 / omega2 / part15 / oetc.c < prev    next >
C/C++ Source or Header  |  1988-07-26  |  13KB  |  332 lines

  1. /* omega copyright (C) by Laurence Raphael Brothers, 1987,1988 */
  2. /* oetc.c */
  3. /* grab bag of random functions used in random places */
  4.  
  5. #include "oglob.h"
  6.  
  7. /* there are various ways for the player to receive one of these hints */
  8. void hint()
  9. {
  10.   switch(random_range(95)) {
  11.   case 0:mprint("There is an entrance to the sewers in the Garden.");break;
  12.   case 1:mprint("Statues can be dangerous.");break;
  13.   case 2:mprint("Unidentified Artifacts can be dangerous.");break;
  14.   case 3:mprint("The higher form of mercury is desirable.");break;
  15.   case 4:mprint("A sense of unease is a good thing to have.");break;
  16.   case 5:mprint("If you dig too much, you might cause a cave in!.");break;
  17.   case 6:mprint("Be Lawful: Live and Let Live.");break;
  18.   case 7:mprint("Be Chaotic: Live and Let Die."); break;
  19.   case 8:mprint("The world doesn't slow down; you speed up.");break;
  20.   case 9:mprint("Security is a sense of dislocation.");break;
  21.   case 10:mprint("Tullimore Dew is a panacea.");break;
  22.   case 11:mprint("Thieves hide behind closed doors.");break;
  23.   case 12:mprint("`No jail is escapeproof' -- John Dillinger.");break;
  24.   case 13:mprint("Oh, to have an apartment of your own!");break;
  25.   case 14:mprint("Some homes have money and treasure.");break;
  26.   case 15:mprint("Some homes are defended.");break;
  27.   case 16:mprint("Sometimes you could just wish for Death."); break;
  28.   case 17:mprint("A cursed wish can be fatal.");break;
  29.   case 18:mprint("The way you play, you should wish for Skill."); break;
  30.   case 19:mprint("A druid might wish for Balance."); break;
  31.   case 20:mprint("Mages always wish for Knowledge.");break;
  32.   case 21:mprint("Some fairies are good.");break;
  33.   case 22:mprint("An affair with a demon can be heartbreaking."); break;
  34.   case 23:mprint("The Explorer's Club knows a useful spell."); break;
  35.   case 24:mprint("They say some famous people live in mansions."); break;
  36.   case 25:mprint("Magic pools are totally random."); break;
  37.   case 26:mprint("There are five elements, including Void."); break;
  38.   case 27:mprint("Humans can be good or evil, lawful or chaotic."); break;
  39.   case 28:mprint("There are many kinds of wishes. Case counts, you know.");
  40.     break;
  41.   case 29:mprint("There are caves due south of Rampart"); break;
  42.   case 30:mprint("Donaldson's Giants can withstand lava.");break;
  43.   case 31:mprint("Ritual magic can have many different effects.");break;
  44.   case 32:mprint("The Mercenaries are the best equipped fighters."); break;
  45.   case 33:mprint("The Gladiators are the most skilled fighters."); break;
  46.   case 34:mprint("Rent a flat and lose any bad stati you may have."); break;
  47.   case 35:mprint("Some junk may be worth a fortune if identified."); break;
  48.   case 36:mprint("Identify humans by talking to them."); break;
  49.   case 37:mprint("They say the Duke has a treasure trove."); break;
  50.   case 38:mprint("If you yield, your opponent will gain experience."); break;
  51.   case 39:mprint("The Dragon Lord lives in the Waste of Time."); break;
  52.   case 40:mprint("A full moon bodes well for the followers of Law."); break;
  53.   case 41:mprint("A new moon omens evil for the Law-abiding."); break;
  54.   case 42:mprint("Druids revere the half-moon."); break;
  55.   case 43:mprint("Most grot is useless."); break;
  56.   case 44:mprint("Cash can sometimes be found in the walls."); break;
  57.   case 45:mprint("Pointy weapons break often but dig better."); break;
  58.   case 46:mprint("The DREADED AQUAE MORTIS is invulnerable."); break;
  59.   case 47:mprint("There must be *some* reason to worship Destiny!"); break;
  60.   case 48:mprint("Kill a trifid? A puzzle! Try a saline solution!"); break;
  61.   case 49:mprint("Beware! The Eater of Souls inhabits the abyss!"); break;
  62.   case 50:mprint("They say there's a red-light district in town."); break;
  63.   case 51:mprint("The House of the Eclipse is behind a closed door."); break;
  64.   case 52:mprint("The Orbs may be encountered on the Astral Plane."); break;
  65.   case 53:mprint("The Champion should never refuse a challenge."); break;
  66.   case 54:mprint("They say that the autoteller program is buggy."); break;
  67.   case 55:mprint("It's better not to sleep on the ground."); break;
  68.   case 56:mprint("Try ritual magic in different kinds of rooms."); break;
  69.   case 57:mprint("Breaking down a wall by bashing it is a bad idea!"); break;
  70.   case 58:mprint("Follow the Oracle's advice; she is all-wise."); break;
  71.   case 59:mprint("The ArchDruid lives in the northern forest.");break;
  72.   case 60:mprint("A search of the mountains may reveal a secret pass.");break;
  73.   case 61:mprint("Star Peak is to the far North-East."); break;
  74.   case 62:mprint("The Archmage lives in the far North-West beyond a pass.");
  75.     break;
  76.   case 63:mprint("There is a volcano in the southern marshes."); break;
  77.   case 64:mprint("The Demon Emperor resides in the Volcano."); break;
  78.   case 65:mprint("The Lawgiver can be found at Star Peak."); break;
  79.   case 66:mprint("The Temple of Athena is to the North-East."); break;
  80.   case 67:mprint("The Temple of Set can be found in a desert.");break;
  81.   case 68:mprint("The Temple of Hecate is in the swamp."); break;
  82.   case 69:mprint("The Temple of Odin is to the South in some mountains.");
  83.     break;
  84.   case 70:mprint("There is a curious island off a promontory of the swamp.");
  85.     break;
  86.   case 71:mprint("The Eater of Magic can be found on an island.");break;
  87.   case 72:mprint("The Temple of Destiny is practically inaccessible.");break;
  88.   case 73:mprint("Each sect has its own main temple outside the city.");break;
  89.   case 74:mprint("The aligned temples are dangerous to unbelievers.");break;
  90.   case 75:mprint("If you are poor, maybe you should wish for Wealth.");break;
  91.   case 76:mprint("Need mana? Wish for Power.");break;
  92.   case 77:mprint("Wishing for Law, Balance, or Chaos alters alignment.");break;
  93.   case 78:mprint("Feeling out of sorts? Wish for Health.");break;
  94.   case 79:mprint("Challenge the abyss at the Temple of Destiny.");break;
  95.   case 80:mprint("The Circle of Sorcerors has an Astral HQ");break;
  96.   case 81:mprint("The Star Gem is the only way back from the Astral Plane.");
  97.     break;
  98.   case 82:mprint("The Star Gem is guarded by the Circle of Sorcerors.");break;
  99.   case 83:mprint("The Star Gem is rightfully the property of the LawBringer.");
  100.     break;
  101.   case 84:mprint("They say the Demon Emperor owns the Amulet of the Planes.");
  102.     break;
  103.   case 85:mprint("An Amulet might get you to the Temple of Destiny.");break;
  104.   case 86:mprint("A wish for Location might help you become Adept.");break;
  105.   case 87:mprint("Some Artifacts may be used only once per day.");break;
  106.   case 88:mprint("Overusing Artifacts can be a bad move."); break;
  107.   case 89:mprint("You might starve in the Swamp or the Mountains!");break;
  108.   case 90:mprint("You would have to be very chaotic to attack a guard!");break;
  109.   case 91:mprint("You would have to be very foolhardy to attack a guard!");
  110.     break;
  111.   case 92:mprint("Only a master of chaos would kill all the city guards!");
  112.     break;
  113.   case 93:mprint("The Order depends on the force of the LawGiver");break;
  114.   case 94:mprint("City Guards are employees of the Order");break;
  115.   }
  116. }
  117.  
  118. /* for when a deity teaches spells to a devotee */
  119. void learnclericalspells(deity,level)
  120. int deity,level;
  121. {
  122.   mprint("With your new clerical rank comes knowledge of magic...");
  123.   Player.pow+=level;
  124.   Player.maxpow+=level;
  125.   switch(level) {
  126.     case LAY: 
  127.       if (deity==ODIN) 
  128.     Spells[S_MISSILE].known = TRUE;
  129.       else if (deity==SET)
  130.     Spells[S_INVISIBLE].known = TRUE;
  131.       else if (deity==ATHENA)
  132.     Spells[S_IDENTIFY].known = TRUE;
  133.       else if (deity==HECATE)
  134.     Spells[S_DRAIN].known = TRUE;
  135.       else if (deity==DRUID) {
  136.     Spells[S_KNOWLEDGE].known = TRUE;
  137.     Spells[S_MON_DET].known = TRUE;
  138.       }
  139.       break;
  140.     case ACOLYTE: 
  141.       if (deity==ODIN) {
  142.     Spells[S_LBALL].known = TRUE;
  143.     Spells[S_TRUESIGHT].known = TRUE;
  144.       }
  145.       else if (deity==SET) {
  146.     Spells[S_SUMMON].known = TRUE;
  147.     Spells[S_FIREBOLT].known = TRUE;
  148.       }
  149.       else if (deity==ATHENA) {
  150.     Spells[S_HEAL].known = TRUE;
  151.     Spells[S_SANCTUARY].known = TRUE;
  152.       }
  153.       else if (deity==HECATE) {
  154.     Spells[S_SLEEP].known = TRUE;
  155.     Spells[S_DISPEL].known = TRUE;
  156.       }
  157.       else if (deity==DRUID) {
  158.     Spells[S_HEAL].known = TRUE;
  159.     Spells[S_CURE].known = TRUE;
  160.       }
  161.       else if (deity==DESTINY)
  162.     mprint("An acolyte of the Lords of Destiny. Gee whiz.");
  163.       break;
  164.     case PRIEST: 
  165.       Spells[S_SANCTIFY].known = TRUE;
  166.       if (deity==ODIN) {
  167.     Spells[S_HERO].known = TRUE;
  168.     Spells[S_HEAL].known = TRUE;
  169.       }
  170.       else if (deity==SET) {
  171.     Spells[S_INVISIBLE].known = TRUE;
  172.     Spells[S_DISPEL].known = TRUE;
  173.       }
  174.       else if (deity==ATHENA) {
  175.     Spells[S_REGENERATE].known = TRUE;
  176.     Spells[S_ACCURACY].known = TRUE;
  177.       }
  178.       else if (deity==HECATE) {
  179.     Spells[S_SHADOWFORM].known = TRUE;
  180.     Spells[S_CURE].known = TRUE;
  181.       }
  182.       else if (deity==DRUID) {
  183.     Spells[S_DISRUPT].known = TRUE;
  184.     Spells[S_ALERT].known = TRUE;
  185.     Spells[S_CLAIRVOYANCE].known = TRUE;
  186.       }
  187.       else if (deity==DESTINY)
  188.     mprint("How useless, a new priest of the Lords of Destiny.");
  189.       break;
  190.     case SPRIEST:
  191.       Spells[S_BLESS].known = TRUE;
  192.       if (deity == ODIN) 
  193.     Spells[S_ACCURACY].known = TRUE;
  194.       else if (deity == SET)
  195.     Spells[S_SHADOWFORM].known = TRUE;
  196.       else if (deity == ATHENA)
  197.     Spells[S_HERO].known = TRUE;
  198.       else if (deity == HECATE)
  199.     Spells[S_POLYMORPH].known = TRUE;
  200.       else if (deity == DRUID) {
  201.     Spells[S_POLYMORPH].known = TRUE;    
  202.     Spells[S_LEVITATE].known = TRUE;
  203.       }
  204.       else if (deity == DESTINY)
  205.     mprint("Wow, a new senior priest of the Lords of Destiny.");
  206.       break;
  207.     case HIGHPRIEST:
  208.       if (deity == ODIN)
  209.     Spells[S_RESTORE].known = TRUE;
  210.       else if (deity == SET)
  211.     Spells[S_HELLFIRE].known = TRUE;
  212.       else if (deity == ATHENA)
  213.     Spells[S_HELLFIRE].known = TRUE;
  214.       else if (deity == HECATE)
  215.     Spells[S_DESECRATE].known = TRUE;
  216.       else if (deity == DRUID) {
  217.     Spells[S_DISINTEGRATE].known = TRUE;
  218.     Spells[S_HERO].known = TRUE;
  219.       }
  220.       else if (deity == DESTINY) {
  221.     mprint("So you're now the high priest of the Lords of Destiny.");
  222.     mprint("You didn't think you were going to get anything, did you?");
  223.       }
  224.     }
  225. }
  226.  
  227. /* for the use of the casino slot machine */
  228. char *slotstr(num)
  229. int num;
  230. {
  231.   switch(num) {
  232.   case 0:
  233.     return("<Slime Mold>");
  234.     break;
  235.   case 1:
  236.     return("<Lemon>");
  237.     break;
  238.   case 2:
  239.     return("<Copper>");
  240.     break;
  241.   case 3:
  242.     return("<Nymph>");
  243.     break;
  244.   case 4:
  245.     return("<Sword>");
  246.     break;
  247.   case 5:
  248.     return("<Shield>");
  249.     break;
  250.   case 6:
  251.     return("<Chest>");
  252.     break;
  253.   case 7:
  254.     return("<Bar>");
  255.     break;
  256.   case 8:
  257.     return("<Orb>");
  258.     break;
  259.   case 9:
  260.     return("<Mithril Nugget>");
  261.     break;
  262.   }
  263. }
  264.  
  265. /* random names for various uses */
  266. char *nameprint()
  267. {
  268.   switch(random_range(40)) {
  269.   case 0:strcpy(Str3,"Orion Splash");break;
  270.   case 1:strcpy(Str3,"Gorgar");break;
  271.   case 2:strcpy(Str3,"Hieronymous");break;
  272.   case 3:strcpy(Str3,"Quantifor Quotron");break;
  273.   case 4:strcpy(Str3,"Leon");break;
  274.   case 5:strcpy(Str3,"Joyce");break;
  275.   case 6:strcpy(Str3,"Leticia Smiley");break;
  276.   case 7:strcpy(Str3,"Ogilvy the Grim");break;
  277.   case 8:strcpy(Str3,"Salara Storn");break;
  278.   case 9:strcpy(Str3,"Murgo");break;
  279.   case 10:strcpy(Str3,"Jonathan Atwilder");break;
  280.   case 11:strcpy(Str3,"Xylos the Tan");break;
  281.   case 12:strcpy(Str3,"Terence");break;
  282.   case 13:strcpy(Str3,"Toronado");break;
  283.   case 14:strcpy(Str3,"Kelly");break;
  284.   case 15:strcpy(Str3,"Cantinflas");break;
  285.   case 16:strcpy(Str3,"Ixel");break;
  286.   case 17:strcpy(Str3,"Toto");break;
  287.   case 18:strcpy(Str3,"Frost");break;
  288.   case 19:strcpy(Str3,"Aliera Erinyes");break;
  289.   case 20:strcpy(Str3,"Godel");break;
  290.   case 21:strcpy(Str3,"Kerst Blackblade");break;
  291.   case 22:strcpy(Str3,"Ebenezer");break;
  292.   case 23:strcpy(Str3,"Jeremiah");break;
  293.   case 24:strcpy(Str3,"Triskelion Shadow");break;
  294.   case 25:strcpy(Str3,"Eleskir Eremar");break;
  295.   case 26:strcpy(Str3,"Tyron");break;
  296.   case 27:strcpy(Str3,"Morgon");break;
  297.   case 28:strcpy(Str3,"Achmed");break;
  298.   case 29:strcpy(Str3,"Chin");break;
  299.   case 30:strcpy(Str3,"Fujimoto");break;
  300.   case 31:strcpy(Str3,"Dos Santos");break;
  301.   case 32:strcpy(Str3,"Federico");break;
  302.   case 33:strcpy(Str3,"Jaime");break;
  303.   case 34:strcpy(Str3,"Siobhan");break;
  304.   case 35:strcpy(Str3,"Hans");break;
  305.   case 36:strcpy(Str3,"Gurkov");break;
  306.   case 37:strcpy(Str3,"Krilos the Slayer");break;
  307.   case 38:strcpy(Str3,"Oxxblud");break;
  308.   case 39:strcpy(Str3,"Dorian");break;
  309.   }
  310.   return(Str3);
  311. }
  312.  
  313.  
  314. /* returns english string equivalent of number */
  315. char *wordnum(num)
  316. {
  317.   switch(num) {
  318.   case 0: return("zero "); break;
  319.   case 1: return("one "); break;
  320.   case 2: return("two "); break;
  321.   case 3: return("three "); break;
  322.   case 4: return("four "); break;
  323.   case 5: return("five "); break;
  324.   case 6: return("six "); break;
  325.   case 7: return("seven "); break;
  326.   case 8: return("eight "); break;
  327.   case 9: return("nine "); break;
  328.   case 10: return("ten "); break;
  329.   default: return(""); break;
  330.   }
  331. }
  332.