# # # # # # # # # # # # #

  monster.c - [v2001]

 # # # # # # # # # # # # #


* set_wander(int sec, int flag, string *dirs)

   Where 'sec' is the number of seconds
   between each wander; if 'flag' is non-zero,
   then it wanders in combat.  if zero, it does
   not; and dirs is an array of blocked directions
   where the monster cannot leave.
   i.e
     -  Bob wants Gurgle, his dragon, to wander
     - every 30 seconds, but only when not in combat.
     - He also does not want Gurgle to travel north.
     - The code would be like this:
     - set_wander(30, 0, ({ north }));

* set_level(int level)
    Same as before.. Only now it gives default
    attributes [same as a player] per level
    i.e ]
     - a level 8 monster will get 8 str, 8 int, etc..
     - and a level 15 monster will get 15 str.. 
    These are only DEFAULTS..  Also it is it not
    necessary to set wc, ac, hp, of the monster [unless
    of course, you wish to make them higher] any longer.
    set_level() will automatically calculate these
    values per the monster guide, up to level 30.

* "offwield"
    Monsters now handle offwield..  if you want
    them to offwield something, just command("offwield", ob);
    I don't think it is necessary for them to wield a weapon
    while offwielding, and it might yet be possible to
    wield, offwield and wear a shield.. *shrug*

* set_attrib(string str, int level)
    To handle attributes like str, ste, etc..
    Simply call set_attrib() and it will set the attribute
    to the desired level.  Monsters that do not
    call set_level to get to the 'default' statistics
    will 'default' at 1 for all.  The only
    attributes handled are the normal player attributes;
    =] str, ste, mag, int, wil, pie, sta, luc.

* get_spell_mess1(mixed) | get_spell_mess2(mixed)

    To handle dynamic spell msgs, all you must do is
    write a new function for whatever spell msg you wish
    to change.
      i.e. ]
       - Bob wants his dragon Gurgle to display the msg
       - "Gurgle breathes fire upon ENEMYNAME" ..
       -  So, all he must do is write a function as following:

       get_spell_mess1()
       {
       return 
"Gurgle breathes fire upon " + (string)attacker_ob->query_name();
       }
       - and it will print the attacker's name.

* set_wimpy(int health, int chance, string preferred, string msg)
    To handle wimpy better [every heart beat they will "try" to
    run]. 'health' is the percentage health the monster will
    run [0 - 100].  'chance' is the percent chance that the
    monster will succeed, per heart beat.  'preferred'
    is the preferred direction in which the monster would
    like to travel, if any. if you wish to leave that blank,
    simply substitute a 0.  'msg' is the message you wish to
    display to the room if the monster flees.  This msg
    will default as 'cap_name + " runs away...";'.

      i.e. ]
        - Bob wants Gurgle to flee [he's just a little baby dragon]
        - at 20% health, any direction he can, at a 50% success
        - rate, with a message of "Gurgle flies away in panic!";
        - Thus the code would be:

        set_wimpy(20, 50, 0, "Gurgle flies away in panic!\n");

* set_aggro(int flag, int health, int chance)
    This handles aggressiveness different than the standard
    object and will constantly check, rendering the object
    virtually 'uncalmable'.  'flag' toggles whether
    aggressiveness is on or off.  'health' is the relative
    health [0 - 100] of the player the monster will attack
    first.  If there is no available target with relative
    health less than 'health', then the monster will attack
    the first available target.  'Chance' is the percent
    chance that the monster will attack per heart beat.

      i.e. ]
        - Gurgle is to be aggressive 100% of the time,
        - and will attack players with extremely low hit points
        - first [10%].  So Bob writes it like this,
        
        set_aggro(1, 10, 100);

* set_assist(string path, int secs, int local, int total)
    This handles whether monsters will call for help..
    Meaning cloning monsters that do not exist in the
    environment to help. 'path' is the path of the object
    to clone.  'secs' is the number of seconds between
    calls of assistance.  'local' is the number of
    helpers that are allowed within the environment of
    the caller at any given time.  'total' is the total
    number of helpers the caller can call.

     i.e ]
       - Gurgle will summon 10 firedrakes to assist him
       - in path /players/bob/Area/Npc/drake.  Gurgle
       - will only be able to have five in the area,
       - and the call will be every 10 seconds.
       - Bob codes this:

       set_assist("/players/bob/Area/Npc/drake", 10, 5, 10);
