by DBThanatos » Sun Mar 21, 2010 4:41 pm
NeuralStunner wrote:More testing done. I tried the following lines:
Code: Select all
DamageFactor "Normal", 0.01
DamageFactor "Bullet", 100
So, setting "Bullet" damage to 100 should more or less counteract the 1% from "Normal", right? No, actually hitting the Imp with a single bullet results in an instagib.
No, it should not counteract.
You first are telling the game that all damage will be considered x0.01
Then you're telling the game that bullet damage will be multiplied by 100. Right there you're saying that the game will consider 2 types of damage
separately: "normal" and "bullet". So, "normal" (all damage except "bullet") will deal x0.01. Bullet (not considered
inside "normal") will deal x100
Resume: all damage, except "bullet" will deal x0.01; and "bullet" will be dealt x100
NeuralStunner wrote:
This had the
same result:
Code: Select all
DamageFactor "Normal", 0.0
DamageFactor "Bullet", 100
Exact same case
Telling the game that all damage will be ignored ("normal" 0.0)
then that bulled will be dealt x100.
All damage but "Bullet" will be ignored. "Bullet" will be dealt x100
NeuralStunner wrote:But! This works as expected:
Code: Select all
DamageFactor "Normal", 0.0
DamageFactor "Bullet", 1.0001
Then, you're telling the game that all damage ("all damage" = "normal" = all unespecified damage) will be ignored and that bullet will deal 0.0001 more than the regular damage it would deal regularly (not counting at all the previous "damagefactor "normal", 0.0).
If you put "normal" you're talking about all damage, then if you specify another damage, it's considered separately and overrides the damage factor applied by "normal"
So, another way to say it, both damage calculations are being done parallel, instead of being done consecutively.
Check this
Spoiler:
DBThanatos wrote:Anyway, one monster, should be immune to everything except one type of custom damage. I have made large tests and I have succesfully reduced all possible damage in Zdoom to 0, that is:
Code: Select all
DamageFactor "normal" , 0.0 //any non custom damage
DamageFactor "Fire" , 0.0 //lots of hexen projectiles
DamageFactor "Ice" , 0.0 //more hexen projectiles
DamageFactor "Electric" , 0.0 //I believe is the arc of death. This one was mentioned in the maulotaur's code
DamageFactor "Explosion" , 0.0 //Not sure, please correct me if Im wrong or if it doesnt exist
DamageFactor "Disintegrate", 0.0 //strife
DamageFactor "Extreme", 0.0 //I believe that's how is called please correct me if wrong
DamageFactor "Poison", 0.0 //hexen
DamageFactor "Railgun", 0.0 //I didnt know why my railgun was killing the mosnter, so i tried this and worked :D
DamageFactor "Melee", 0.0 //I didnt know it was considered apart, but it is
DamageFactor "BFGSplash", 0.0 //self explanatory
And I think those are all. Except that the "HolyMissile" (from the cleric's wraith verge, the main shot which fires the 4 ghosts) is still killing it. I checked the decorate of it, and it doesnt seems to have any custom damage type, at least not visible; I assume it is hardcoded or something. Anyone knows how is called or how to cancel it?
Graf Zahl wrote:After seeing this thread I realized that there's a serious bug in the damage type system. DamageFactor "Normal" is supposed to protect against all types of damage that don't have a specific factor assigned. Otherwise it will never properly work.
So in your case, the proper method would have been to specify
DamageFactors "Normal", 0
DamageFactors "AllowedDamageTypeForThisMonster", 1.0 or whatever
[quote="NeuralStunner"]More testing done. I tried the following lines:[code]
DamageFactor "Normal", 0.01
DamageFactor "Bullet", 100
[/code]
So, setting "Bullet" damage to 100 should more or less counteract the 1% from "Normal", right? No, actually hitting the Imp with a single bullet results in an instagib.[/quote]
No, it should not counteract.
You first are telling the game that all damage will be considered x0.01
[u]Then[/u] you're telling the game that bullet damage will be multiplied by 100. Right there you're saying that the game will consider 2 types of damage [b]separately[/b]: "normal" and "bullet". So, "normal" (all damage except "bullet") will deal x0.01. Bullet (not considered [i]inside[/i] "normal") will deal x100
Resume: all damage, except "bullet" will deal x0.01; and "bullet" will be dealt x100
[quote="NeuralStunner"]
This had the [i]same result[/i]:[code]
DamageFactor "Normal", 0.0
DamageFactor "Bullet", 100
[/code][/quote]
Exact same case
Telling the game that all damage will be ignored ("normal" 0.0)
then that bulled will be dealt x100.
All damage but "Bullet" will be ignored. "Bullet" will be dealt x100
[quote="NeuralStunner"]But! This works as expected:[code]
DamageFactor "Normal", 0.0
DamageFactor "Bullet", 1.0001
[/code][/quote]
Then, you're telling the game that all damage ("all damage" = "normal" = all unespecified damage) will be ignored and that bullet will deal 0.0001 more than the regular damage it would deal regularly (not counting at all the previous "damagefactor "normal", 0.0).
If you put "normal" you're talking about all damage, then if you specify another damage, it's considered separately and overrides the damage factor applied by "normal"
So, another way to say it, both damage calculations are being done parallel, instead of being done consecutively.
Check this
[spoiler][quote="DBThanatos"]Anyway, one monster, should be immune to everything except one type of custom damage. I have made large tests and I have succesfully reduced all possible damage in Zdoom to 0, that is:
[code] DamageFactor "normal" , 0.0 //any non custom damage
DamageFactor "Fire" , 0.0 //lots of hexen projectiles
DamageFactor "Ice" , 0.0 //more hexen projectiles
DamageFactor "Electric" , 0.0 //I believe is the arc of death. This one was mentioned in the maulotaur's code
DamageFactor "Explosion" , 0.0 //Not sure, please correct me if Im wrong or if it doesnt exist
DamageFactor "Disintegrate", 0.0 //strife
DamageFactor "Extreme", 0.0 //I believe that's how is called please correct me if wrong
DamageFactor "Poison", 0.0 //hexen
DamageFactor "Railgun", 0.0 //I didnt know why my railgun was killing the mosnter, so i tried this and worked :D
DamageFactor "Melee", 0.0 //I didnt know it was considered apart, but it is
DamageFactor "BFGSplash", 0.0 //self explanatory[/code]
And I think those are all. Except that the "HolyMissile" (from the cleric's wraith verge, the main shot which fires the 4 ghosts) is still killing it. I checked the decorate of it, and it doesnt seems to have any custom damage type, at least not visible; I assume it is hardcoded or something. Anyone knows how is called or how to cancel it?
[/quote]
[quote="Graf Zahl"]After seeing this thread I realized that there's a serious bug in the damage type system. [u]DamageFactor "Normal" is supposed to protect against all types of damage that don't have a specific factor assigned[/u]. Otherwise it will never properly work.
So in your case, the proper method would have been to specify
DamageFactors "Normal", 0
DamageFactors "AllowedDamageTypeForThisMonster", 1.0 or whatever
[/quote][/spoiler]