[CF-Devel] attacktype proposal
crossfire-devel-admin at archives.real-time.com
crossfire-devel-admin at archives.real-time.com
Wed Mar 19 23:23:25 CST 2003
Bernd Edler wrote:
>
As the resistances have been changed from simple bits to
>
integer values , it seems natural to me to change the
>
attacktypes to integers also.
>
>
Then we could have a weapon like this:
>
>
damage: pysical : 12, fire : 8, poison : 15, paralyse 20
Interesting idea.
>
>
If you have more strength, then only the physical damage would rise.
>
Maybe weaponmagic too.
>
The number for slow would indicate about the probability of a
>
successful paralyzation, depending an the enemy's level and resistance.
>
It could also influence the duration of the effect.
IMO, it should probably do one or the other. Either increase likelihood of
getting hit by effect, or increasing potency of effect. To do both then makes
minor increases in something like paralyzation really powerful - not only will
you more often paralyze creatures, but those you do paralyzed will be paralyzed
for longer.
It'd probably be simplest (intuitive) to make the damage for effect type
things to be how long the effect last fors. Eg, damage_paralyze 3 means the
creature is paralyzed for 3 ticks, adjusted by resistance. damage_paralyze 20
means it is paralyzed for 20 ticks.
I like this because you could much better tune some things - at low levels,
you could have very short duration paralyzations which would be annoying and
dangerous, but not instantly deadly.
>
With this is would not only be important what attacktypes a weapon
>
has, but how strong these are.
>
>
The weapons would be a lot more different / interesting.
Yep. there are two ways you could deal with this however:
1) Weapon does damage of all attacktypes it has. Eg, a dam_fire 10, dam_physical
10 dam_magic 10 could do 30 points of damage, adjusted by creatures resistances.
Thus, you could add something like 'dam_fire 6' to a weapon, which gives is
some minor fire damage in addition to what it already has.
2) Weapon only does damage for the most a damaging attack. In the case above,
if the creature had armor (resist physical) and fire protection, then it would
take that 10 magic damage, and nothing else. Special non damaging effects
(drain, paralyze, slow) would still always effect the player. This is how it is
currently done, but one reason because since the same damage is used for all
attacktypes, if you didn't do it this way, weapons with multiple attacktypes
would be much deadlier.
In both these cases, the question of how damage is rolled would need to be
figured. For example, if a weapon does 20 fire damage and 10 physical damage,
on any single hit, do we roll a 1d20 for the fire, and 1d10 for the physical,
and see which of those did the most damage (in this case, the damage done my go
between being physical and fire depending on that the value was rolled). Or do
we roll something like a 1d1000 (or other large value it) and scale it down for
both attacktypes, eg, val = 1d1000, fire_dam = val * dam[fire] / 1000, phys_dam
= val * dam[phys] / 1000.
The later case more of less says 'this was a solid hit, so all the damage
types are high'. It pretty much means that if physical is the best attacktype
against that monster, you'd always do physical damage, since a crappy damage
roll would be crappy for both physical and fire.
>
>
Negative:
>
I am sure it would be a LOT of work to change the damage routine,
>
adjust existing weapons, maps , archetypes etc.
The hard part is that hit_player passes in the damage, so the calling
structure would need to get changed - basically, hit_player (or new function)
would be needed that passes in the victim and what is hitting it, and then
figures out damage based on all the attacktypes. There is code currently in
place the cycles through the attacktypes figuring out the most damaging.
Updating the arch's should be rather easy for a first pass (take existing dam
and distribute it to all the attacks the monster does) - I used scripts to do
this for the resist_ changes, and those could easily be modified for attacktype.
But there would be a lot of tuning involved most likely
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list