RjY
anARCHy
Posts: 429
Registered: 05-02 |
I'll use the d(N) convention since others have used it already. So dN := uniformly distributed random integer in the inclusive range 1..N.
MdN means dN multiplied by M.
Sum(M,dN) means work out M values of dN and add them up.
There are three types of weapon/monster attack in Doom: projectile, and two hitscan types, bullet and melee.
Bullet attacks
Players and monster bullet attacks are composed from different arrangements of a single gunshot hitscan trace of maximum range 2048 map units (16 squares on the automap grid) as follows:
- Player gunshot damage = 3d5 (i.e. takes values 5,10,15) Sometimes has a random directional deviation added to simulate shot spread.
- Monster gunshot damage = 5d3 (i.e. 3,6,9,12,15...note the expected damage is slightly less for a monster than for a player, 9 compared to 10; that is, monster bullets are statistically weaker than player bullets)
Hence, player bullet weapon damages
- Pistol: 1 shot of damage 5d3. The first is autoaimed, subsequent shots incur a random angular deviation of 11.25 degrees.
- Shotgun: 7 shots of damage 5d3 all with angular deviation 11.25 degrees
- Super shotgun: 20 shots of damage 5d3 (EDIT: not 21, sorry about that) random horizontal angular deviation of 22.5 degrees, and vertical slope deviation of 1 part in 16 (Note Doom doesn't use angles vertically, it calculates slopes instead.)
- Chaingun: one shot of damage 5d3 per shot, always fires two in a row though. The first two are autoaimed, the rest are subject to the same deviation as the pistol/shotgun bullets.
And monster bullet damages:
- Trooper: 1 shot, 3d5 damage, random horizontal angular deviation of 45 degrees (no wonder troopers are harmless!)
- Sergeant: 3 shots, damage 3d5, same deviation. (Yes, only three. So when you you steal a sargeant's weapon, it becomes more than twice as powerful)
- Chaingunner: 1 shot of damage 3d5, will fire in twos unless you interrupt him by shooting him and causing him pain. Uses the shotgun sound
- SS Nazi: 1 shot of of damage 3d5, also fires in twos unless interrupted, but far more slowly.
- Spider mastermind, 3 shots of damage 3d5 at a rapid rate, also as with all chaingun/machinegun weapons, in twos unless interrupted by pain (not by loss of line of sight)
Melee attacks
A melee attack is pretty much identical to a bullet attack in terms of how it works. The maximum range is of course not 2048 but 64 (half a square)
- Player punch: 2d10 (2,4,..,20) per hit
- Berserk punch: 20d10 per hit (yes, 20, you can do 200 damage with your fist)
- Chainsaw: 2d10 per hit, like the chaingun it always attacks twice. There are random deviations but at a maximum range of 64 units they're too small to worry about. (The saw is like a very-sped-up unenhanced fist)
- Imp scratch: 8d3 damage
- Demon/Spectre bite: damage 4d10
- Cacodemon bite: damage 6d10
- Baron/Hellknight scratch: damage 10d8
- Revenant punch: damage 6d10
Projectile attacks
Projectiles, missiles, whatever, are generated from the player and from most of the monsters, and they all have this in common: They will fly at a constant speed until they hit something (infinite range) and they all do a basic damage of Md8 where M is the so-called "missile damage". Firstly we list the missile damages of each player weapon or monster shot:
- Rocket: missile damage 20 (so damage 20d8 on direct hit. Also makes a radius or "splash" damage at the point of explosion, which does damage to everything within 128 units of the explosion point, the damage being 128 - (approx.dist to bomb spot)
- Plasma: missile damage 5
- BFG: missile damage 100 but see below
- Imp fireball: missile damage 3
- Cacodemon shot: missile damage 5
- Lost soul: A lost soul making an attack run is almost identical to an imp fireball, that is, on impact it does a missile damage of 3 (i.e. a damage of 3d8) However, it bounces off floors and ceilings.
- Baron/Hellknight shot: missile damage 8
- Revenant missile: Missile damage 10. Missiles travel very slowly but have a good chance that they will home in on you.
- Mancubus fireball: Missile damage 8; fires in three salvoes of two shots each: angular deviations are (0, 11.25 degrees to monster's left (so dodge right first!)), (0, 11.25 degrees to right (so next, dodge left)), (5.75 degrees to left, 5.75 degrees to right)
- Arachnotron shot: Missile damage 5 (identical to player's own, except for colour)
- Pain elementals spawn lost souls in flight. As stated above, this is the same as a projectile of missile damage 3.
- Cyberdemons fire a salvo of three rockets, identical to the player's own (missile damage 20, splash damage as above) unless interrupted by pain.
Addendum: points to note
A fraction of a second after the BFG ball bursts and hopefully does 100d8 damage to its target, the gun (that is, the player) will emit 40 hitscan traces distributed uniformly across a cone of angular displacent 45 degrees each side of the angle at which the gun was originally fired - that is, if since firing you've turned 180 degrees, the traces will emerge from your back. Each trace has a range of 1024 map units (8 grid squares) and will do a damage of Sum(15,d8) to the monster it hits. This is the well-documented BFG spray effect that all deathmatch players know about.
I haven't yet mentioned archvile attacks, they deserve a whole section to themselves:) Basically, if you are within 1024 units (8 squares) of it, the creature sticks up its arms and a fraction of a second later a fire forms at your position (interesting things happen if you can get behind cover between the creature's attack starting and the spawning of the fire...) After it has gone through its routine, if it still has line of sight, you immediately take a damage of 20, and a radius damage of 70 occurs at your position, so you can expect a damage of 90 and the momentum change this brings.
Cyberdemons and spiderdemons don't feel radius damages at all, and all other monsters can be damaged by an archvile attack (including archviles themselves) but they will never respond to it.
Finally, random note, not on topic but worth mentioning especially if like me you don't like revenants in small spaces. If one is within 196 units (just over one and a half squares) of you, it will never fire its projectile, but attempt to close in for the punch. Hence, keep them near, run round in circles, and they will never attack you.
PRBoom's source was used as a reference.
Last edited by RjY on 11-14-02 at 19:24
|