November 17th, 1997
Battle Prompts version 1.0

Here are my battle prompts, there are 2 in the following code.
The first prompt gives you a graphical view of the mob's condition throughtout the battle.
The second give you a percentage of the mob's health.
The ^w,^r,^g,^Y,^x are the colour codes used in my mud so either
change them to use for your mud or remove them.

Any comments or ideas send them to:
 Ian McCormick (aka Gothar)
 mcco0055@algonquinc.on.ca


Here is the help entry for the prompts, just include these to the end of
the entry already present.

               ^r****************^W BATTLE PROMPTS^r ****************^w
                <- Gothar's Battle Prompts ->
        %b :  Displays a graphical view of a mob's health
                 ^wEnemy: [^r+++^Y+++^g++++^x]
        %B :  Displays a percentage of a mob's health
                 ^wEnemy: ^r33%^x


In the function void bust_a_prompt( CHAR_DATA *ch )
You must add the following declarations.
    
  /* for enemy life meter */
    CHAR_DATA *victim;
    char wound[20];
    int percent;
 /* for enemy life meter */   
 
 /* at the start of the bust_a_prompt */
     ++str;
      switch( *str )
      {
         default :
            i = " "; break;
	case 'e':
	    found = FALSE;
	    doors[0] = '\0';
	    for (door = 0; door < 6; door++)
	    {
		if ((pexit = ch->in_room->exit[door]) != NULL
		&&  pexit ->u1.to_room != NULL
		&&  (can_see_room(ch,pexit->u1.to_room)
		||   (IS_AFFECTED(ch,AFF_INFRARED) 
		&&    !IS_AFFECTED(ch,AFF_BLIND)))
		&&  !IS_SET(pexit->exit_info,EX_CLOSED))
		{
		    found = TRUE;
		    strcat(doors,dir_name[door]);
		}
	    }
	    if (!found)
	 	strcat(buf,"none");
	    sprintf(buf2,"%s",doors);
	    i = buf2; break;
 	 case 'c' :

/* <SNIP>
 * the other prompt options
 *  <- Gothar 1997 ->
 */

	case 'b' :

/*    this is the graphical battle damage prompt
 *    
 *    <- Gothar 1997 ->
 */

        if ((victim = ch->fighting) != NULL)
        {
            if (victim->max_hit > 0)
                percent = victim->hit * 100 / victim->max_hit;
            else
                percent = -1;
            if (percent >= 100)
                sprintf(wound,"^wEnemy: [^r+++^Y+++^g++++^x]");
            else if (percent >= 90)
                sprintf(wound,"^wEnemy: [^r+++^Y+++^g+++ ^x]");
            else if (percent >= 80)
                sprintf(wound,"^wEnemy: [^r+++^Y+++^g++  ^x]");
            else if (percent >= 70)
                sprintf(wound,"^wEnemy: [^r+++^Y+++^g+   ^x]");
            else if (percent >= 58)
                sprintf(wound,"^wEnemy: [^r+++^Y+++    ^x]");
            else if (percent >= 45)
                sprintf(wound,"^wEnemy: [^r+++^Y++     ^x]");
            else if (percent >= 30)
                sprintf(wound,"^wEnemy: [^r+++^Y+      ^x]");
            else if (percent >= 28)
                sprintf(wound,"^wEnemy: [^r+++^x       ^x]");
            else if (percent >= 15)
                sprintf(wound,"^wEnemy: [^r++^x        ^x]");
            else if (percent >= 8)
                sprintf(wound,"^wEnemy: [^r+^x         ^x]");
            else
                sprintf(wound,"^wEnemy: [          ^x]");
            sprintf(buf2," %s",wound);
            i = buf2;
        }
        else
           i = "";         
        break;    
	case 'B' :

/*    this is the percentage battle damage prompt
 *    The prompt changes colour to show the 
 *    condition of the mob.
 *    <- Gothar 1997 ->
 */
           if ((victim = ch->fighting) != NULL)
           {
              percent = victim->hit * 100 / victim->max_hit;
              if(percent >= 65)
                 sprintf(buf2," ^wEnemy: ^g%d^x%%",percent);
              else if(percent >= 25 && percent < 65)
                 sprintf(buf2," ^wEnemy: ^Y%d^x%%",percent);
              else
                 sprintf(buf2," ^wEnemy: ^r%d^x%%",percent);
              i = buf2;
           }
           else
              i = "";         
           break;    
      }          /* end of switch */
      ++str;