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