Lerk spores damage armour?
Skiddywinks
Join Date: 2011-01-12 Member: 77239Members
<div class="IPBDescription">I didn't realise it could breathe.</div>Hey guys. <3 the game, really do. Every new build seems to improve on a lot. I can't wait to see it feature complete/released!
Anyway, I noticed a while back that Lerk spores seem to damage armour, yet in the description it specifically states it only damages breathing targets. I haven't checked to see if this is still the case, or has been patched out, but that seems like it is either a bug or an oversight. Either the spores are corrosive and damage everything (health, armour, Macs, buildings, nodes etc), or they only affect breathing entities (pretty much limited to marines in this case), which would mean they have no effect on armour.
Thoughts?
Anyway, I noticed a while back that Lerk spores seem to damage armour, yet in the description it specifically states it only damages breathing targets. I haven't checked to see if this is still the case, or has been patched out, but that seems like it is either a bug or an oversight. Either the spores are corrosive and damage everything (health, armour, Macs, buildings, nodes etc), or they only affect breathing entities (pretty much limited to marines in this case), which would mean they have no effect on armour.
Thoughts?
Comments
What about if spores only damaged armor? Like corrosive?
That would make lerk gas way less annoying but still worth using, especially on HA.
Yeh, I know, but in NS1 I always assumed (or was lead to believe) that it was corrosive. In NS2 it clearly states in-game that it only damages breathing organisms.
They should either remove that, since it makes no sense, or remove the armour damage. It would still be doing damage to over three quarters of the total damage points a marine can take. Which also sort of makes the argument it combats medpack spam moot, because medpacks still heal the majority of any damage done.
7 damage, every 0.5 seconds, for 6 seconds (from SporeCloud.lua), i.e. 12 ticks of 7 damage (alternatively can be expressed as 14 damage per second, from Balance.lua - haven't checked which is used, but I assume SporeCloud.lua):
<img src="http://img3.imageshack.us/img3/7808/ns2sporevsmarine.png" border="0" class="linked-image" />
** <b>This is because there isn't (yet) any specific code applied</b> for damage types other than 'heavy' (e.g. pistol), 'light' (e.g. sentry), and 'normal' (e.g. rifle, bite, swipe, most attacks), but 'normal' damage-dealing also includes every non-'heavy' and non-'light' damage type. These all use the same code, really, but have different HealthPerArmor values: 1 for heavy, 2 for normal, 4 for light. The higher the number, the more health that 1 point of armour protects.
I would imagine that 'biological' would have a zero HealthPerArmor value, i.e. 1 point of armor protects no health. Knowing this, this is actually very easy to code.
(This is one approach.)
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// add to Balance.lua:
kHealthPointsPerArmorBiological = 0
// change to Balance.lua:
kSporesDamageType = kDamageType.Biological
// add to function LiveScriptActor:GetHealthPerArmor(damageType)
elseif damageType == kDamageType.Biological then
healthPerArmor = kHealthPointsPerArmorBiological<!--c2--></div><!--ec2-->
So:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> local absorbPercentage = self:GetArmorAbsorbPercentage(damageType)
healthPointsBlocked = math.min(self:GetHealthPerArmor(damageType) * self.armor, absorbPercentage * damage )
armorPointsUsed = healthPointsBlocked / self:GetHealthPerArmor(damageType)
healthPointsUsed = damage - healthPointsBlocked
=>
local absorbPercentage = self:GetArmorAbsorbPercentage(damageType)
healthPointsBlocked = math.min(0 * self.armor, absorbPercentage * damage ) = 0
armorPointsUsed = 0 / 0 = ?
healthPointsUsed = damage - 0 = damage<!--c2--></div><!--ec2-->
That middle line that tries to equate zero divided by zero could become a problem though. You could easily add an if statement to fix it where:
IF self:GetHealthPerArmor(damageType) == 0, THEN armorPointsUsed = 0, ELSE do the same as before.
An alternative approach is to set absorbPercentage to zero:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->// change to Balance.lua:
kSporesDamageType = kDamageType.Biological
// modify function LiveScriptActor:GetArmorAbsorbPercentage(damageType)
if damageType == kDamageType.Falling or damageType == kDamageType.Biological then
armorAbsorbPercentage = 0<!--c2--></div><!--ec2-->
So:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1--> local absorbPercentage = self:GetArmorAbsorbPercentage(damageType)
healthPointsBlocked = math.min(self:GetHealthPerArmor(damageType) * self.armor, absorbPercentage * damage )
armorPointsUsed = healthPointsBlocked / self:GetHealthPerArmor(damageType)
healthPointsUsed = damage - healthPointsBlocked
=>
local absorbPercentage = 0
healthPointsBlocked = math.min(self:GetHealthPerArmor(damageType) * self.armor, 0 * damage ) = 0
armorPointsUsed = 0 / self:GetHealthPerArmor(damageType) = 0
healthPointsUsed = damage - 0 = damage<!--c2--></div><!--ec2-->
In either approach, healthPointsBlocked is 0, so spores do full damage to health, and amorPointsUsed is 0, so no damage to armour.
<b>No armour effects on spores seems to already be planned though</b>:
// Armor is best at absorbing melee damage, less against projectiles and not effective for gas/breathing damage
from LiveScriptActor_Server.lua
I could be wrong, but I believe right now medpacks do heal armor.
It seems to only repair armor, when your health is also below 100 and there seems to be a bug. When your health is at 100, but your armor is not at full, you still pick up medkits, while not repairing your armor.
Reported this at <a href="http://getsatisfaction.com/unknownworlds/topics/medkits_being_picked_up_at_full_health" target="_blank">Getsatisaction</a>
The armory does at least which is different from NS1.
The function adds both health and armour (but health first).
In the case of both the Armoury and the Medpack, it checks if you're alive and, if you have less than max hp OR less than max armour. Medpack also checks whether you are parasited, and removes it if you are.
AddHealth takes an amount (50 for the medpack), adds that to your health, but if your health was 70 for example, it'd only add 30 (because maxhealth is 100), but the remainder (20) would go onto your armour.
I'm not sure why the medpack doesn't add more armour when you're on maxhp though, it's supposed to. The armoury works properly anyway.
Also, can anyone confirm that the medpack does remove parasite?
<a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=112345&view=findpost&p=1824215" target="_blank">Details</a>
Align, I also believed the lore says it is corrosive, since that is what I remembered from NS1. Didn't know about the more detailed lore about it though ("seeing" organisms), so thanks for the info!
Anyway, speaking generally, all I was trying to point out with my first post was that the wording is bad, and if it isn't a bug (i.e. should be damaging armour), the wording of the tool tip should be made a little more clear. The use of the word "breathing" suggests it has something to do with the victim's inhalation of the spores, which lore-wise is incorrect, and gameplay-wise is incorrect, otherwise it wouldn't affect armour. That is why I first assumed it was a bug, since the wording is very specific.
If it is/was meant to damage armour all along, then it seems like a bad choice of words for the tooltip, and I just wanted to point out that it might want to be changed.
I think it'd definitely be interesting if lerk spores only removed armour, as per Chris's suggestion. I don't know how that'd make sense lore-wise, but hey, they've developed bacteria that break down crude oil in the modern age, so why not in the future an organism that breaks down the material that marine armour is made of?
Plus, I like getting kills with spores :P
Also, I have no programming knowledge whatsoever! Maybe some Matlab, but I don't think that is comparable! Still, reading through it, it is pretty easy to figure out what does what when considering the context. I would just have no idea how to write my own, nor know where to start analysing code myself.
But that's the point, it's a support weapon, rather than a "let's just gas this area to hell and hopefully kill some marines" weapon.
<!--quoteo--><div class='quotetop'>QUOTE </div><div class='quotemain'><!--quotec-->Plus, I like getting kills with spores :P<!--QuoteEnd--></div><!--QuoteEEnd-->
Actually, that's a good enough reason.
Just like a parasite kill.
The humiliation.
Maybe have it do very little damage to health, but plenty of damage to armour. Or corrode armour first, then take out hp. I dunno.
Hey, come on, the most programming I've ever done is: brief HTML and visual basic when I was young, a semester of C, and quite a bit of MATLAB (which contributes to the bulk of my experience with programming). I study engineering, see. MATLAB scripting is simple, and Lua is of a comparable simplicity, at least on the surface. If you know your functions, your loops, your ifs, elses, ends, your logical operators, and your maths... you can probably <b>approach</b> a programming language like lua without feeling too lost. I guess then it's about familiarising yourself with the particular quirks, and doing the research or asking the questions if necessary. At least I think so, and it's worked for me.
Most programming I have ever done was roughly a week's worth of Matlab during my engineering course (which I dropped out of after my first year btw). Never done anything else. If I wanted to get a grasp of Lua I would more or less have to start from scratch. I really don't remember any of it, likely since I never use it anymore!
To be honest, I don't care enough to learn Lua just for NS2, since I have no interest in it otherwise. And when we have our resident Harimau doing all the analysis we need, there really is no incentive! :P
EDIT: Your graph seems to show AP starting at 30, so which is it?!
It's the way the armour system works. Different damage types will affect armour differently:
a) heavy damage against armour, means armour only blocks 1 health damage.
b) normal damage against armour, means armour blocks 2 health damage.
c) light damage against armour, means armour blocks 4 health damage.
So as an example, a skulk does 75 normal damage per bite. A marine has 100 health and 30 armour.
Two bites means 150 damage - but the marine doesn't die. He'll be left with 10 health. This is because effective hitpoints are 100 + 30*2 = 160.
Do you get it?
<!--quoteo(post=1824245:date=Jan 14 2011, 01:26 PM:name=Skiddywinks)--><div class='quotetop'>QUOTE (Skiddywinks @ Jan 14 2011, 01:26 PM) <a href="index.php?act=findpost&pid=1824245"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->To be honest, I don't care enough to learn Lua just for NS2, since I have no interest in it otherwise. And when we have our resident Harimau doing all the analysis we need, there really is no incentive! :P<!--QuoteEnd--></div><!--QuoteEEnd-->
Learn it so you can mod NS2! :P
Yes. It has worked for me at least once.
<!--quoteo(post=1824316:date=Jan 14 2011, 02:10 PM:name=Silverwing)--><div class='quotetop'>QUOTE (Silverwing @ Jan 14 2011, 02:10 PM) <a href="index.php?act=findpost&pid=1824316"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Yes. It has worked for me at least once.<!--QuoteEnd--></div><!--QuoteEEnd-->
I think that's kind of stupid if medpack removes parasite. So after every combat that skulks parasites marines and couple parasited marines survives of it, of course commander drop couple of medbacks during the battle and after the battle and no more parasites.. So whats the point of parasite?
Would be better if welder removes parasite? or something a little harder way to remove it?
Would be better if welder removes parasite? or something a little harder way to remove it?<!--QuoteEnd--></div><!--QuoteEEnd-->
the point is to tie the commander into his squad. the point is to encourage teamwork. however, sentries need to go back to costing plasma. i liked that you had to choose between medpack spam and base defense.
It's the way the armour system works. Different damage types will affect armour differently:
a) heavy damage against armour, means armour only blocks 1 health damage.
b) normal damage against armour, means armour blocks 2 health damage.
c) light damage against armour, means armour blocks 4 health damage.
So as an example, a skulk does 75 normal damage per bite. A marine has 100 health and 30 armour.
Two bites means 150 damage - but the marine doesn't die. He'll be left with 10 health. This is because effective hitpoints are 100 + 30*2 = 160.
Do you get it?
Learn it so you can mod NS2! :P<!--QuoteEnd--></div><!--QuoteEEnd-->
Ahh, makes perfect sense. So what does light and what does heavy damage so far then, if anything?
Fine, I'll take a beginners look at Lua, but I'm not promising anything!
HealthPerArmor for Light, Normal and Heavy are 4, 2 and 1 respectively.
Effectively, they determine how much armour is consumed when you take damage.
This is because armour blocks 70% of HP damage regardless of the damage type, and the amount of armour consumed is: HP damage blocked / HealthPerArmour.
For example, if something deals 200 damage:
70% is blocked (140 damage) and 30% (60 damage) gets taken directly from health.
With light damage, the amount of armour consumed is: 140/4=35.
With normal damage, the amount of armour consumed is: 140/2=70.
With heavy damage, the amount of armour consumed is: 140/1=140.
^ The above applies when armour is high.
Of course if you only had, say, 30 armour, it could only block 30/60/120 (heavy/normal/light) damage, so that's the amount that is blocked (instead of 70% of damage), and the rest goes directly to hp.
As you can see, though, light damage consumes the least armour, normal damage consumes some armour, and heavy damage consumes the most armour. Heavy damage is most effective on high-armour units then.