Flan's Mod: Legacy

Flan's Mod: Legacy

2M Downloads

Armor Resistance and Weapon Penetration

Kirby859 opened this issue ยท 2 comments

commented

(enhancement)

OK, let's say Manus (cough cough) makes a Tiger II. Normally, a Tiger II would not take any damage from an M1 Garand because an M1 Garand can't penetrate the ridiculous armor of the Tiger II. But with persistence in Minecraft, a player can eventually destroy the Tiger II with an M1 Garand because the Tiger can take damage from the M1 Garand.

For vehicles/planes:

Resistance 40
ResistanceCo 0
Absorbency 0.5

Resistance: The maximum damage a vehicle/plane can take while still being protected by ResistanceCo:

ResistanceCo: The multiplier applied to any damage done to the tank that is less than or equal to Resistance.

Absorbency: The multiplier applied to any damage done to the tank that is greater than Resistance.

For guns and vehicles:

Penetration 2

Penetration: The divisor applied to Resistance, and the multiplier applied to Absorbency.


Guns shooting vehicles example:

Stats for Tiger II:

Health 2000
Resistance 200
ResistanceCo 0
Absorbency 0.5

Stats for M1 Garand:

Damage 18
//Penetration 1 (default value)

Stats for Boys AT Rifle:

Damage 200
//Penetration 1 (default value)

Stats for M9 Bazooka:

Damage 250
Penetration 2

If an M1 Garand shoots the Tiger II, the damage done will be 18 * 0 (damage * resistanceCo) because Damage is less than or equal to 200 / 1 (resistance / penetration).

If a Boys AT Rifle shoots the Tiger II, the damage done will be 200 * 0.5 * 1 (damage * absorbency * penetration) because Damage is greater than 200 / 1 (resistance / penetration).

If an M9 Bazooka shoots the Tiger II, the damage done will be 250 * 0.5 * 2 (damage * absorbency * penetration) because Damage is greater than 200 / 2 (resistance / penetration).


Vehicles shooting vehicles example:

(of course, this is "written" in some form of pseudocode)
if Resistance (target) / Penetration (shooter) < Damage (shooter) then
  DamageDone = Damage (shooter) * Absorbency (target) * Penetration (shooter)
elseif Resistance (target) / Penetration (shooter) >= Damage (shooter) then
  DamageDone = Damage (shooter) * ResistanceCo (target)
end

M4 Sherman:

Health 1000
Damage 600 //found in the bullet file?
Penetration 2
Resistance 300
ResistanceCo 0.1
Absorbency 0.5

Tiger II:

Health 2500
Damage 1000 //bullet file
Penetration 3
Resistance 500
ResistanceCo 0.05
Absorbency 1

Marder III:

Health 500
Damage 700 //bullet file
Penetration 2
Resistance 100
ResistanceCo 0.2
Absorbency 1

M4 Sherman -> Tiger II:

Damage Done is 1200.
500 / 2 < 600
600 * 1 * 2 = 1200

M4 Sherman -> Marder III:

Damage done is 1200.
100 / 2 < 600
600 * 1 * 2 = 1200

Tiger II -> M4 Sherman:

Damage done is 1500.
300 / 3 < 1000
1000 * 0.5 * 3 = 1500

Tiger II -> Marder III:

Damage done is 3000.
100 / 3 < 1000
1000 * 1 * 3 = 3000

Marder III -> M4 Sherman:

Damage done is 700.
300 / 2 < 700
700 * 0.5 * 2 = 700

Marder III -> Tiger II:

Damage done is 1400.
500 / 2 < 700
700 * 1 * 2 = 1400


So...implement some sort of armor system.

EDIT: Is damage done calculated by the bullet file?

commented

I think I'll think about this a little more and resubmit it. Some of the variables seem useless.

commented

Also, is it possible to set an arbitrary "armor thickness" for a specific shape? I might want the front of a tank to have a 100mm plate, but a 30mm plate at the back.

And while we're on the topic of armor, is it possible to calculate the impact angle of armor? Vertical AND horizontal angles would be ideal.