Re: combat code

From: Edward Glamkowski (EGlamkowski@MATHEMATICA-MPR.COM)
Date: 10/09/97


Being that I wrote that calc_speed function in my mailer
yesterday, I forgot one critically important thing:

  if (s <= 0)
    s = 1;  /* The lowest possible initiative is a 1. */
  /* Because we have NEXT_HIT(ch)--, and it is when */
  /* NEXT_HIT(ch) == 0 that we perform the attack.  */

I'd also throw in something like:
  if (GET_LEVEL(ch) >= LVL_IMMORT)
    s = 1;

}:)


Edward Glamkowski, Programmer           Mathematica Policy Research
EGlamkowski@mathematic-MPR.COM          Princeton, NJ
                http://www.mathematica-mpr.com/

        Il dort. Quoique le sort fut pour lui bien etrange,
        Il vivait. Il mourut quand il n'eut plus son ange.
        La chose simplement d'elle-meme arriva,
        Comme la nuit se fait lorsque le jour s'en va.

>----------
>From:  Angus Mezick[SMTP:angus@EDGIL.CCMAIL.COMPUSERVE.COM]
>Sent:  Wednesday, October 08, 1997 3:06 PM
>To:    CIRCLE@post.queensu.ca
>Subject:        combat code
>
>Daniel, would you happen to mind posting your calculate_speed function? This
>idea seems very interesting. (i hope you still have the code, it is an old
>post
>from the archives.)  I would like to integrate this with the timed spell
>casting
>function. thinking about giving my magic usrers more to practice by giving
>them
>the choice of raising skill level with the spell, or speed.  maybe I will
>remove
>practices and just make spells/skills learned items with having to go to the
>guild master every time they learn 5% points to get the next point. that or
>have
>them just go up once per level. and have the guild master actually do the
>teaching, while the player has to use it a certain amount for the master to
>be
>willing to teach.  hrms....
>--Angus
>______________________________ Forward Header
>__________________________________
>Did it. And it was actually quite easy! [IF ANYONE
>INTREPRETS THAT AS AN INSULT TO ANYONE'S INTELLIGENCE I WILL
>SLAP THE LIVING HELL OUT OF THEM] What I did was change the
>combat pulses to occur every second, then I made a temp
>variable for characters (where-ever they have 'fighting' and
>'hunting' and all those other temporary things) that would
>save how long it takes to attack. Next I created a function
>called 'calculate_speed' that took into account HASTE and
>SLOW, and dextrity, weapon weight, what they person was
>wearing (eg., huge armor slowed them down), what they were
>carrying (lots of weight slowed them down), terrain, etc.,
>etc. and a bit of randomisity then returned that.  In hit()
>I would do: 'NEXT_HIT(ch) = calculate_speed(ch);' and a
>check to make sure that their opponent was fighting (if not
>then I made them hit the person to get them fighting).
>Finally, in perform_violence() I did something like:
>
>if ((NEXT_HIT(ch)--))
>  continue;
>
>Inside my loop...
>


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html |
     +------------------------------------------------------------+



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