[CF-Devel] improving the PR-code (patch written)

Andreas Vogl andi.vogl at gmx.net
Mon Dec 11 14:18:37 CST 2000


I tested the new PR code and felt that it is good, but still
not perfect.

The calculation for partial resistances works well for
positive values, but for negative it doesn't. Examples:
  +50 and -50 makes +25 ...huh?
  -40 and -40 makes -96 ...d'oh!

Moreover, the way potions work doesn't please me. We've created
partial protections to get rid of immunties. But potions still
grant +100% (immunity). Hence, not too much has really changed yet.


Now I've written a patch, to make the PR-calculations perfect.
Get it at <
     
     http://mids.student.utwente.nl/~avogl/pr_patch.tar.gz
     
     >
(read INSTALL.txt for installation hints).

Here's what my patch does:

o I calculate positive and negative resistances seperately. The
  negative res. are calculated exactly like the positive. Then I
  take: "overall resistance = total positive - total negative".
  Advantage: Negative resistances are calculated in a "logical" way.
  For example: +50 and -50 makes zero. -40 and -40 makes -64.

o Many People have stated their wish for "caps" on resistances.
  With my scheme vulnerabilities work automatically as caps for
  protection. Example: While wearing one item with fire -20, you
  cannot get more than fire +80 overall from equipment!
  (it's simple: +100% -20% = +80%)
  This will greatly help to balance powerful artifacts. If there
  is an artifact with "cold +100", we add a "fire -5" and violà:
  Impossible to get both cold +100 and fire +100 by using that
  item!
  And if one is forced to live with hight vulnerability for
  permanent (like wraith: fire -30), one can still use a potion
  to go beyond the natural cap (see next point).

o Potions work completely different than before. The so-called
  "immunity-potions" grant an absolute value of 90% protection,
  independant from the players's equipment and properties!
  Minor potions/balms grant 50%. If the player has already got
  more protection than that, the potion won't have any effect.
  Example: I have fire +50 and drink a "potion of fire res."
  - so I get fire +90. If I have fire +95 by equipment and drink
  the same potion - nothing happens.
  Great advantage: While newbies can use potions very efficiently,
  high-level characters can't abuse them to beat the game.
  90% resist. is good for killing some dragons, but it won't
  suffice to kill a "grandmaster wizard" at clevel 18.

o Cursed resistance potions are working now (have been broken
  before). They give a temporare vulnerability, but can be
  overriden by uncursed potions of the same resistance-type.
  Like all potions they give an absolute value (-100% or -50%),
  so they are truely dangerous while in effect.

o Protection spells work different than potions. Their effect does
  add to the player's equipment. (Maybe +50% resistance for spells
  is a bit too much though... I consider changing it to +30%, but
  this is not part of my patch yet).
  I think this is fun because it makes combat more interesting:
  While your equipment might already be good you still have the
  option to gain an additional 30% by casting that spell. Not
  much, but maybe the small tweak deciding over life and death.
  (Fortunately, Peter has modified the spells so that no more
  than one protection spell (of same type) can be in effect)

o When the player's state of resistance changes, a new kind of
  message shows up: The percentage of the new (current) resistance
  is displayed. I consider this very helpful, especially in combat.
  It just plain sucks to need a rod of perceive self all the time.
  That worked fine while there was no more than two classes of
  resistances (prot. & immu.), but now this is no longer acceptible.


Okay, that's all. I know this might be hard to understand without
being able to test it. Now this is why I wrote the patch *before*
starting to babble about it.

Maybe some of you might be afraid that there are some cute little
bugs lurking in my patch. Well, look at it and you'll see that it
is real easy code. In fact I have tested it seriously and even more,
I have *fixed* some bugs with my patch. But still, nobody's perfect...
at least I tried my best.

Like you can all imagine, I would be glad if this peace of work
found common acceptance. I believe it would really add a great deal
of both gaming-fun and game-balance.


Andreas V.


    
    


More information about the crossfire mailing list