User Tools

Site Tools


user:cavesomething:possible_stat_values

The following is intended to provoke some thought, not be definitive.

weapon stats:

Stat Meaning Typical Range
damage how many hit points would be done to an unresisted, non-critical hit 1-100, inversely proportional to weapon speed, not above 40 for non-artifact weapons.
weapon_speed how many attacks could be attempted with 0 range penalty in one minute 5 for hammers, 10 for broadswords, 40 for rapier, 50-80 for dagger
weapon_reach how far, in inches, an attack can be done from the front hand of the attacker - ie, blade length. 0 for hand to hand, 4 for daggers, 18 for small swords, 24-40 for big swords, 36-60 for axes/hammers/staves
attack bonus number of levels to increase the effective attack skill by 1-5 is typical, 10 is really good, 20-30 are really powerful artifacts

player stats

Stat Meaning Based on Typical Range
speed Inches that a player can move per minute Dex, Weight of equipped items/strength+dex, Weight of Carried equipment/strength 1000-10000, 10000 is only likely for someone who is almost completely unburdened
wc likelihood to hit with any given attack skill in weapon, dex*weapon_speed, str/weapon_speed (ie, dex good for fast weapons, strength for slow ones 1-1000
ac likelihood to avoid being hit with any given attack dex, weight of equipped items, weight of carried items, bonuses from items 1-1000
resist points resistances Equipped items, Constitution unsure
hit points life con, bonuses from items? 1-500
spell points to cast magic spells int, pow, bonuses from items? 1-500
grace points to cast god spells wis, pow, bonuses from items? 1-500

Every melee combat is between 2 opponents, additional attackers are defended against, and this can slow down subsequent attacks, but are not attacked directly at the same time. There is a penalty to defend based on how far away the defenders facing is from the attacker (attacking a player in the back is easy).

The difference between weapon_reach for the two combatants creates a range penalty for one attacker, in order to attack they attempt to advance by their range penalty, and then attack as many times as they can before the other player gets a strike.

If they can not advance by their range penalty then they may attack an out-of-range strike over a distance of up to 10 inches, this corresponds to stretching out in order to hit someone. Doing this has a major penalty to to_hit (10% reduction per inch?) -

Question - should there be an option to set a stance? This system suggests 4 obvious ones:

  • aggressive - if retreating would lose an additional attack, attack anyway, take a major penalty to ac for the opponents attack,
  • opportunistic, if you could get an extra attack by not advancing fully, take the partial step and extra attack with the penalty, that way an aggressive stance could correspond to not
  • normal - take as many attacks as you can while hitting normal range and returning.
  • defensive - return early and 'leave' an attack to parry with. (gives a bonus to effective ac based on how much time is left and weapon_skill)

This can mean that a slowed creature may be unable to attack an axeman with a dagger.

Example. I attack an axeman while holding a dagger, I am using a 'normal' stance. Me: speed 3000 weapon_speed 50 weapon_reach 4

Him: weapon_speed 7 weapon_reach 40

(speed doesn't matter with a long range weapon, slow characters will prefer them for that reason).

I have a range penalty of 36 inches, I may move 3000 inches or attack 50 times per minute. My opponent has a weapon_speed of 7, he gets seven attacks per minute.

start of combat: My opponent attempts to attack, he will strike in 60/7 seconds time.

I attempt to attack, I have 60/7 seconds to attempt to attack, I must close a range penalty of 36 inches, so I must travel 72 inches (there and back) I can travel 3000 inches a minute, or 50 a second, so moving takes 72/50 seconds, this leaves me (60/7)-(72/50) seconds to land attacks, I have 50 attacks per minute or 5/6 of an attack per second. Therefore I can land 1)*5/6 = 5.94 attacks before my opponent strikes.

The .94 that remains is halved (or reduced by a fixed amount- 0.2, say?) to 0.47 - this is to bring my guard up for the next attack. - This number is my 'readiness'

My opponent strikes next, if my opponent would score a hit, then I have a chance based on my readiness, and my weapon_skill to parry the attack, reducing the excess roll used in the damage calculation, doing this also reduces the remaining readiness by an amount.

If my opponent missed, I would now have 0.47 attacks in reserve, effectively this is as though I start my advance step early, when figuring out how many attacks I can make, I add the 0.47 attacks, giving 7.41 attacks.

If my opponent hit, then I would have fewer attacks in reserve, so may or may not get the 7th attack.

If I had been doing this with a different stance: For the stances above then:

  • defensive would try to ensure that the readiness was always at least 1, giving me the best possible chance to parry.
  • aggressive would have taken the 7th attack on the first attempt, and remained an inch forward of the starting position at the end. This would have given me a penalty to my ac when the attack came, I would not be ready for it, so would have no chance to block it.
  • opportunistic would have advanced only part of the way forward, and stretched to get a seventh hit in, this would've had a penalty to to_hit for every attack, and wouldn't have left me with much readiness for the counter attack, but I would not have taken a penalty to my ac as I would with aggressive.

Stance choice then would depend on what was being fought:

Against lots of much weaker opponents, opportunistic is good, the to_hit penalty wouldn't matter as much because you are likely to hit anyway, and you can probably kill them before they can attack.

When you have a magical effect you really want to apply to an enemy, aggressive can be a worthwhile gamble, because you might be able to (for example) slow the creature before it strikes, if it fails though, the consequences can be much worse.

Defensive is when you are surrounded by enemies you don't really want to be surrounded by, you are likely to take hits, so being able to parry some can mitigate the damage you will take.

Some other desirable behaviour emerges from this:

  • A spellcaster should have a staff when fighting someone with daggers (to hold them off), but not when fighting someone with a spear (since they won't need to move much to strike anyway).
  • Creatures can have defense_attacks, which will depend on the range of the attacker and skill at weapon (eg, attacking an acid blog at zero range is a really bad idea, expect to take acid damage each time you hit unless you are, in fact, Bruce Lee)
  • A defensive square is a very strong setup, as long as one of the corners isn't weak enough to be defeated, and there aren't spells cast into the middle of it.

All of the discussion of times above are in seconds, for the purposes of the combat engine, these are translated into ticks. When an attack is made, the game calculates which tick the attack finishes in, and doesn't take another move until then. The 'partial tick' is stored as a value for when control is given back after the attack. If there is an attacking monster and the player elects not to attack, the attack speed rolls against the player speed to determine how good a hit the creature gets as the player moves away. - This is kind of what the speed system is supposed to do, but this approach is simpler, and prevents commands queuing so much.

I am considering keeping all of the times described above as real-time not game time, and that typically 3 or 4 hits with an axe would be required to defeat a tough opponent, it is quite reasonable then that combat with a single creature might take an entire minute or more.

fine by me, but then we need to drastically reduce the number of monsters on maps :) — Ryo

AC and WC work like this (with wc the attacker's wc, ac the defender's ac):

  • if wc == ac, 50% chance to hit
  • if wc > ac, >50% chance to hit, capped to 90% or 95% - you can always miss?
  • if wc < ac, <50% chance to hit, bottom value is 5 or 10% - you can always get lucky

The change shouldn't be linear, it should give bonuses for way higher wc or ac

1) 60/7)-(72/50
user/cavesomething/possible_stat_values.txt · Last modified: 2010/05/10 11:54 (external edit)