[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