Lerk spores damage armour?

SkiddywinksSkiddywinks 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?

Comments

  • Chris0132Chris0132 Join Date: 2009-07-25 Member: 68262Members
    Actually...
    What about if spores only damaged armor? Like corrosive?

    That would make lerk gas way less annoying but still worth using, especially on HA.
  • ZekZek Join Date: 2002-11-10 Member: 7962Members, NS1 Playtester, Constellation, Reinforced - Shadow
    It's worked that way since NS1 - eroding armor was the most useful part about spores because it can't be recovered through medpack spam. Don't think about it too hard.
  • weezlweezl Join Date: 2008-07-04 Member: 64557Members, Reinforced - Shadow
    maybe it makes marines weat out acid that slowly kills them and corrodes the armor... :P
  • SkiddywinksSkiddywinks Join Date: 2011-01-12 Member: 77239Members
    <!--quoteo(post=1823773:date=Jan 13 2011, 01:27 AM:name=Zek)--><div class='quotetop'>QUOTE (Zek @ Jan 13 2011, 01:27 AM) <a href="index.php?act=findpost&pid=1823773"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->It's worked that way since NS1 - eroding armor was the most useful part about spores because it can't be recovered through medpack spam. Don't think about it too hard.<!--QuoteEnd--></div><!--QuoteEEnd-->

    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.
  • Mr_CharismaMr_Charisma Join Date: 2003-01-26 Member: 12748Members, NS1 Playtester
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    edited January 2011
    From the perspective of the code: It has to do with the armour/damage system**. Although the damage type is 'biological' (read: does not affect structures or exoskeletons), the same damage is applied in the same way as the 'normal' damage type**, to these biological targets:
    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
  • zexzex Join Date: 2009-10-07 Member: 68978Members
    edited January 2011
  • AlignAlign Remain Calm Join Date: 2002-11-02 Member: 5216Forum Moderators, Constellation
    Lore-wise, it's corrosive, not poisonous. The reason it only affects living targets anyway is because the spores "see" organic targets through armour somehow, while it won't bother metal stuff (lest it melt a hole through the hull into space, killing the Kharaa as well as the marines).
  • Stele007Stele007 Join Date: 2004-07-23 Member: 30063Members
    <!--quoteo(post=1823773:date=Jan 12 2011, 08:27 PM:name=Zek)--><div class='quotetop'>QUOTE (Zek @ Jan 12 2011, 08:27 PM) <a href="index.php?act=findpost&pid=1823773"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->It's worked that way since NS1 - eroding armor was the most useful part about spores because it can't be recovered through medpack spam. Don't think about it too hard.<!--QuoteEnd--></div><!--QuoteEEnd-->

    I could be wrong, but I believe right now medpacks do heal armor.
  • Kouji_SanKouji_San Sr. Hινε Uρкεερεг - EUPT Deputy The Netherlands Join Date: 2003-05-13 Member: 16271Members, NS2 Playtester, Squad Five Blue
    edited January 2011
    <!--quoteo(post=1824100:date=Jan 13 2011, 08:33 PM:name=Stele007)--><div class='quotetop'>QUOTE (Stele007 @ Jan 13 2011, 08:33 PM) <a href="index.php?act=findpost&pid=1824100"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I could be wrong, but I believe right now medpacks do heal armor.<!--QuoteEnd--></div><!--QuoteEEnd-->
    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>
  • LazerLazer Join Date: 2003-03-11 Member: 14406Members, Contributor, Constellation, NS2 Playtester
    <!--quoteo(post=1824100:date=Jan 13 2011, 03:33 PM:name=Stele007)--><div class='quotetop'>QUOTE (Stele007 @ Jan 13 2011, 03:33 PM) <a href="index.php?act=findpost&pid=1824100"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->I could be wrong, but I believe right now medpacks do heal armor.<!--QuoteEnd--></div><!--QuoteEEnd-->
    The armory does at least which is different from NS1.
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    edited January 2011
    Medpacks and the Armoury use the same function: AddHealth
    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>
  • SkiddywinksSkiddywinks Join Date: 2011-01-12 Member: 77239Members
    Wow, I'm glad you showed up Harimau! I don't pretend to understand Lua coding (haven't taken a detailed look at the code you have posted yet), but from the remaining content of your posts everything makes sense. Very interesting.

    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.
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    I think that if you have a very basic programming background (which is all that I have) and you're decent at maths, lua is pretty understandable. Easier, even. Before NS2 I'd never even heard of lua.

    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?
  • SkiddywinksSkiddywinks Join Date: 2011-01-12 Member: 77239Members
    I was thinking something similar myself, but seeing as the armour only accounts for less than a quarter of the total damage a marine can take, it would have to be boosted a little to make it fair. Maybe more damage, or quicker damage. But still, only damaging armour would seriously nerf it.

    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.
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    edited January 2011
    Actually it's more than that. It accounts for 60/160, so 37.5%.
    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.
  • SkiddywinksSkiddywinks Join Date: 2011-01-12 Member: 77239Members
    edited January 2011
    ######, what game have I been playing?! I thought it accounted for 30 points. Woops. That makes it a little better actually. I could see armour only damage working. Beef it up a little though I would say. I would miss the kills with it though. Maybe have it do a small amount of damage on impact that includes health (the amount of spores released upon strike must be a lot to fill the volume it spreads through). I'm sure some decent explanation could be made.

    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?!
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    edited January 2011
    It's 30 armour, but it accounts for (normally) 60 damage. Sorry I didn't make that clear.
    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
  • SilverwingSilverwing bulletsponge Join Date: 2003-11-23 Member: 23395Members, Constellation
    <!--quoteo(post=1824197:date=Jan 13 2011, 09:23 PM:name=Harimau)--><div class='quotetop'>QUOTE (Harimau @ Jan 13 2011, 09:23 PM) <a href="index.php?act=findpost&pid=1824197"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Also, can anyone confirm that the medpack does remove parasite?<!--QuoteEnd--></div><!--QuoteEEnd-->


    Yes. It has worked for me at least once.
  • VaratharVarathar Join Date: 2004-03-17 Member: 27382Members
    edited January 2011
    <!--quoteo(post=1824197:date=Jan 14 2011, 04:23 AM:name=Harimau)--><div class='quotetop'>QUOTE (Harimau @ Jan 14 2011, 04:23 AM) <a href="index.php?act=findpost&pid=1824197"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->Also, can anyone confirm that the medpack does remove parasite?<!--QuoteEnd--></div><!--QuoteEEnd-->


    <!--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?
  • TigTig Join Date: 2010-05-08 Member: 71674Members, Reinforced - Shadow, WC 2013 - Silver
    <!--quoteo(post=1824322:date=Jan 14 2011, 07:39 AM:name=Varathar)--><div class='quotetop'>QUOTE (Varathar @ Jan 14 2011, 07:39 AM) <a href="index.php?act=findpost&pid=1824322"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->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?<!--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.
  • SkiddywinksSkiddywinks Join Date: 2011-01-12 Member: 77239Members
    <!--quoteo(post=1824291:date=Jan 14 2011, 09:57 AM:name=Harimau)--><div class='quotetop'>QUOTE (Harimau @ Jan 14 2011, 09:57 AM) <a href="index.php?act=findpost&pid=1824291"><{POST_SNAPBACK}></a></div><div class='quotemain'><!--quotec-->It's 30 armour, but it accounts for (normally) 60 damage. Sorry I didn't make that clear.
    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!
  • HarimauHarimau Join Date: 2007-12-24 Member: 63250Members
    Well, conceptually, they allow for different effective hitpoints: HP = HealthPerArmor*Armour + Health
    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.
Sign In or Register to comment.