[CODE] Automatic MOB settings for Oasis

From: Shawn J. Wallace (shawn@gusto.net)
Date: 02/13/97


I did this quick code a few months ago to have mobs' stats automatically
configured by OasisOLC when a level is input.  This way I've achieved a
nicer balance in the game, because all the builders make mobs pretty much
the same way.  You'll naturally have to adjust the settings to suit your
MUD, but it's an interesting idea.  You probably don't have the xp()
function, and I can't recall what the original circle one was, but it
calculates exp points based on an algorithm rather than predefined numbers.
My MUD also has 100 levels, so you'll need to adjust accordingly.

In MEDIT.C:
  case MEDIT_ATTACK:
    GET_ATTACK(OLC_MOB(d)) = MAX(0, MIN(NUM_ATTACK_TYPES-1, atoi(arg)));
    break;

  case MEDIT_LEVEL:
    #define LVL GET_LEVEL(OLC_MOB(d))
    LVL = MAX(1, MIN(100, atoi(arg)));
    GET_MOVE(OLC_MOB(d)) = number(4*LVL, 6*LVL); /* HP bonus */
    GET_HIT(OLC_MOB(d)) = number(3, 4);  /* Num HP Dice */
    GET_MANA(OLC_MOB(d)) = number(1*LVL, 2*LVL);  /* Size Hp dice */

    GET_NDD(OLC_MOB(d)) = 2;
    GET_SDD(OLC_MOB(d)) = 5 + number(1,3);
    GET_HITROLL(OLC_MOB(d)) = (LVL / 6) + number(1,4);
    GET_DAMROLL(OLC_MOB(d)) = (LVL / 7) + number(1,4);
    GET_EXP(OLC_MOB(d)) = ((xp(LVL+1) - xp(LVL)) / number(16,24)) * 3;
    break;

  case MEDIT_ALIGNMENT:
    GET_ALIGNMENT(OLC_MOB(d)) = MAX(-1000, MIN(1000, atoi(arg)));
    break;


Shawn

=================================================================
Shawn J. Wallace                           Gusto Multimedia Group
shawn@gusto.net                              http://www.gusto.net


+-----------------------------------------------------------+
| Ensure that you have read the CircleMUD Mailing List FAQ: |
|   http://cspo.queensu.ca/~fletcher/Circle/list_faq.html   |
|    Or send 'info circle' to majordomo@cspo.queensu.ca     |
+-----------------------------------------------------------+



This archive was generated by hypermail 2b30 : 12/18/00 PST