[CF-Devel] PR (Partial resistance)
Jan Echternach
echter at informatik.uni-rostock.de
Wed Nov 15 04:40:38 CST 2000
On Sun, Nov 12, 2000 at 08:29:47PM +1100,
dnh at hawthorn.csse.monash.edu.au
wrote:
>
1) Implement a working addative resistances system, much like the current
>
armour is for physical, these resistance systems would do the same just be
>
based on another "armour" type value
I favour the following scheme:
Each item has a protection value per attacktype. Typical values should
be
Dragon mail 10
Fire shield 8
Simple ring 4 (Ring prot: fire, vuln: cold)
Simple amulet 7 (Amulet prot: fire, vuln: cold)
Ring of Fire 6
Crown of Fire 5
Ring of Elements 4 (but for several attacktypes)
Vulnerabilites:
Simple ring -5
Simple amulet -9
Spells:
Protection from fire up to 20 - 30, depending on level
(e.g. 10 for wisdom level 25)
Immunities (value >= 50):
Potion of fire resistance 100
The effective protection is calculated this way:
sum_prot = sum of all values < 50
sum_immu = sum of all values >= 50
limited_sum_prot = MIN (50, sum_prot)
tmp_sum = limited_sum_prot + sum_immu
sum = MAX(-50, MIN (250, tmp_sum))
table_index = 50 + sum
protection = table[table_index]
limited_sum_prot = 50: maximum protection equals a "small" immunity
sum = 250: two normal immunities (e.g. potion + holy posession) and
best protection, or three immunities
sum -50: highest vulnerability
* Protections are limited.
* Spells are still useful.
* Different strengths of protections (and even immunites) possible.
* Easy to calculate.
* Easy to balance with the table.
* Uses little space (one unsigned char per protection value).
* Optional: Add magic or magic/2 to the item's base protection value
(e.g. body armour with high protection usually has value 9, but Dragon
mail +3 gives 9+3/2=10.5, if enchanted to +10 it gives 9+10/2=14).
But this is a bit difficult to get right. For example, gauntlets +10
with some protection would give something like 3+10/2=8 which is very
much for gauntlets. Maybe a formula like
effective_value = base_value * magic_modifier_table[magic_value]
would be better.
* Using spells or potions multiple times should probably be forbidden,
like many poison spells won't make the poison stronger, but will only
make it last longer. But maybe it's already implemented this way.
--
Jan
More information about the crossfire
mailing list