pardeike / Zombieland

Rimworld Mod featuring zombie hordes
https://www.patreon.com/pardeike
MIT License
55 stars 22 forks source link

Damage/Pain inflicted needs to be adjusted #6

Closed pardeike closed 6 years ago

pardeike commented 7 years ago

From the ludeon forum:

Zombies don't hit particularly hard, maybe between 1 to 4 damage per bite. Pawns go down after 2-5 bites due to acute pain but with so with still plenty of health to go.

Compare with fighting a wild boar or something similar, the pawns will take A LOT more damage before going down due to pain. Seems like zombie bites inflict more pain than other attacks? I don't know how the damage system works so I'm wildly guessing here based on my observations. At any rate it would be more fun if melee was still a viable options when not vastly outnumbered or in chokepoints but currently even a competent, well-equipped brawler is liable to go down on a 1v1 against a zombie... not fun. Same applies to trained animals, a pack of wargs should make minced meat of an equivalent number of zombies but currently it's the other way round.

It's worth noting for balance purpose than I got 1-4dmg on average but my pawns are fully equipped with the medieval times higher tier armor set which seems pretty OP (when comparing to vanilla armor value). I don't remember at the top of my head the final average armor value but I can look into it later and report if you're interested.

From the discord server:

Pain is defined per hediff

    <HediffDef ParentName="InjuryBase">
        <defName>Bite</defName>
        <label>bite</label>
    <comps>
      <li Class="HediffCompProperties_TendDuration">
        <labelTendedWell>bandaged</labelTendedWell>
        <labelTendedWellInner>sutured</labelTendedWellInner>
        <labelSolidTendedWell>set</labelSolidTendedWell>
      </li>
      <li Class="HediffCompProperties_Infecter">
        <infectionChance>0.25</infectionChance>
      </li>
      <li Class="HediffCompProperties_GetsOld">
        <oldLabel>bite scar</oldLabel>
      </li>
    </comps>
    <injuryProps>
      <painPerSeverity>0.0125</painPerSeverity>
      <averagePainPerSeverityOld>0.00625</averagePainPerSeverityOld>
      <bleedRate>0.02</bleedRate>
            <canMerge>false</canMerge>
            <destroyedLabel>Bitten off</destroyedLabel>
            <destroyedOutLabel>Bitten out</destroyedOutLabel>
        </injuryProps>
    </HediffDef>

So modify injuryProps.painPerSeverity

RenaudF commented 7 years ago

is inflicted pain calculated before or after armor damage reduction has been applied?

pardeike commented 7 years ago

Hediff_Injury.PainOffset uses painPerSeverity in combination with Hediff_Injury.Severity. So your question can be reformulated to "Does amor damage reduction" influence hediff severity?". It's per severity, so after. 1 point of damage = x% of pain.

RenaudF commented 7 years ago

So does the inflicted pain become nDmgPoints * painPerSeverity + averagePainPerSeverityOld * elapsedTicks ? That doesn't look like a lot although I don't know how pain is normalised... Is 1 point of pain like 1% ? If I can compute this formula by hand I'll be in a position to tell you if I'm getting what's expected or if there is some side effect going on.

pardeike commented 7 years ago

Fixes in an upcoming release.