Grid Sage Forums

Grid Sage Forums

  • November 22, 2024, 12:59:11 AM
  • Welcome, Guest
Please login or register.

Login with username, password and session length
Advanced search  

News:

LINKS: Website | Steam | Wiki

Author Topic: Attack Resolution Process  (Read 3034 times)

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Attack Resolution Process
« on: April 30, 2018, 08:37:58 AM »

So there have been a number of very specific questions in recent months regarding the order of operations when it comes to an attack, so I've put together a new reference subsection that'll become part of the Beta 6 manual (at the end of the Combat section). Here's a preview:

Quote
Attack Resolution
-------------------
With so many mechanics playing into an attack, especially later in the game when there are numerous active parts involved at once, min-maxers looking to optimize their build may want a clearer understanding of the order in which all elements of an attack are carried out. This manual already covered hit chances above, but there are many more steps to what happens once an attack hits a robot. Below is an ordered list of detailing that entire process, which applies to both ranged and melee combat:

1. Check if the attack is a non-damaging special case such as Datajacks, Stasis Beams, Tearclaws, etc., and handle that before quitting early.

2. Calculate base damage, a random value selected from the weapon's damage range. Melee Analysis Suites raise the minimum damage here.

3. Apply robot analysis damage modifier, if applicable (+10%).

4. Apply LINK hack damage modifier, if applicable (+15%)

5. Apply Particle Charger damage modifier, if applicable.

6. Reduce damage by resistances.

7. Apply salvage modifiers from the weapon and any Salvage Targeting Computers.

8. Split damage into a random number of chunks, usually 1~3 for explosions, or if Core Analyzer applies split projectile damage into 2 chunks (the second of which will automatically hit the core below). The process from here is repeated for each chunk.

9. Determine whether the chunk caused a critical hit.

10. Store the current damage value as [originalDamage] for later.

11. Apply the first and only first defense applicable from the following list: phase wall, 75% personal shield (VFP etc), Force Field, Shield Generator, stasis bubble, active Stasis Trap, Remote Shield, 50% remote shield (Energy Mantle etc.), Hardlight Generator.

12. Apply Thermal Converter effect, if applicable.

13. Store the current damage value as [damageForHeatTransfer] for later.

14. Choose target part (or core) based on coverage, if not already forcing a core hit for this chunk.

15. Cancel critical strike intent if that target has applicable part shielding, or if not applicable to target.

16. If targeting core, apply damage and, if robot survives, check for core disruption if applicable.

17. If targeting a power source with an EM weapon, check for a chain reaction due to spectrum.

18. If not a core hit or chain reaction, apply damage to target part, reducing the amount in exchange for energy (if available) if part is Powered Armor, and if not destroyed also check for EM disruption if applicable.

19. If part destroyed by damage (rather than a critical hit), record any excess damage as overflow.

20. If part was not armor and the attack was via cannon, launcher, or melee, transfer remaining damage to another random target (forcing to a random armor if any exists). Continue transferring through additional parts if destroyed (and didn't hit armor).

21. If part not destroyed, check whether heat transfer melts it instead.

22. Apply damage type side effects:

* Thermal weapons attempt to transfer ([damageForHeatTransfer] / [originalDamage])% of the maximum heat transfer rating, and also check for possible robot meltdown (the effect of which might be delayed until the robot's next turn).

* The amount of EM corruption is based on [originalDamage].

* Impact damage may cause knockback, and applies corruption for each part destroyed.

* Slashing damage severing chance is based on [originalDamage].

Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Valguris

  • Cyborg
  • ***
  • Kyzrati Patron Bug Hunter Weekly Seed Participant Shared a Confirmed Stealth Win
  • Posts: 148
    • View Profile
Re: Attack Resolution Process
« Reply #1 on: April 30, 2018, 11:59:26 AM »

Awesome!

So this answers a number of recently asked questions:

  • Crits + Core Analyzers: Both part and core roll for crit separately.
  • What affects corruption: Corruption from EM damage is affected by all damage modifiers and resistances except for energy shields

Further interesting observations:
  • Slashing chance is affected in the same way that EM corruption is.
  • Heat transfer is affected ONLY by shields
  • Crits are applied before damage and therefore cancel the overflow damage (Core Cannon would be better if it didn't crit???)

Quote
Melee Analysis Suites raise the minimum damage here.
What? Oh it's a new version thing!

There is still no explanation for the amount of corruption from crushing effects, which seems to be affected by EM resistance (EM resistance seems to affect all corruption sources, i.e. EM surge traps).

EDIT: And there is no momentum bonuses for melee damage included? Or overloading bonus? I assume these are supposed to be next to particle charging bonus. All bonuses stack multiplicatively?
« Last Edit: April 30, 2018, 12:08:59 PM by Valguris »
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #2 on: April 30, 2018, 06:15:52 PM »

Momentum and overloading are excluded because they're not a part of the resolution phase. They determine the damage of the projectile before it even leaves the attacker, while I only outlined the defensive/application process here because that's where all the questions have been.

And impact corruption details were left out because I wanted this to be
a mostly number-free outline, just the steps of the process, while other parts of the manual (or in-game context help) go into more detail about each mechanic where appropriate. I added the impact corruption description to other areas.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #3 on: April 30, 2018, 06:25:01 PM »

Ah, I can see why you're thinking about overloading and momentum because it does say "Calculate base damage, a random value selected from the weapon's damage range." Technically those modifiers are determined much earlier so I excluded them, but the final "damage multiplier" is not actually applied until step #2 there. I'll see if I can fit them in, even though that's not technically the order in which they're calculated :P
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #4 on: April 30, 2018, 06:59:38 PM »

This is all it really is:
Quote
2. Calculate base damage, a random value selected from the weapon's damage range and multiplied by applicable modifiers for overloading, momentum, and melee sneak attacks, in that order. Melee Analysis Suites raise the minimum damage here.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Valguris

  • Cyborg
  • ***
  • Kyzrati Patron Bug Hunter Weekly Seed Participant Shared a Confirmed Stealth Win
  • Posts: 148
    • View Profile
Re: Attack Resolution Process
« Reply #5 on: May 01, 2018, 06:40:08 AM »

One more question.

Piercing damage: How does it increase core exposure? Is it a separate roll that succeeds 33% of the time, or it increases core coverage by 33%, or it takes core exposure % and increases it? The last one can be weird with other parts' hit chances.
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #6 on: May 01, 2018, 07:42:19 AM »

Increases core exposure by 33%.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Valguris

  • Cyborg
  • ***
  • Kyzrati Patron Bug Hunter Weekly Seed Participant Shared a Confirmed Stealth Win
  • Posts: 148
    • View Profile
Re: Attack Resolution Process
« Reply #7 on: May 01, 2018, 08:23:32 AM »

30% is changed into (1+33%)*30%=40% or into 30%+33% = 63%?
Both of these can exceed 100% for sufficiently high core exposure (like a bot that lost a few components). Hence I'm missing something, hence my question.

I'm assuming that the chance to hit each other component is reduced proportionally.
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #8 on: May 01, 2018, 08:31:16 AM »

Ah, core exposure is not the percentage you see listed for the robot (which is itself a calculated value for convenience), but like your own value is a static number dependent on the robot. So whatever that number is, it's increased by 33%. It's not really possible to be more specific because of the variables involved, but as you can see that means the 33% increase will have an even greater impact if the robot has already lost other parts.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

Valguris

  • Cyborg
  • ***
  • Kyzrati Patron Bug Hunter Weekly Seed Participant Shared a Confirmed Stealth Win
  • Posts: 148
    • View Profile
Re: Attack Resolution Process
« Reply #9 on: May 01, 2018, 09:05:50 AM »

but like your own value is a static number dependent on the robot.

So it's core coverage? 100 for Cogmind? Or it's more complicated? If that IS core coverage, then it's easy to fix in the manual and in the piercing damage tooltip: +33% core exposure -> +33% core coverage
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #10 on: May 01, 2018, 05:47:17 PM »

Note that there is no such thing as "core coverage" in the terminology. The term "exposure" is used because it is intended to be at the center, while all parts are covering it for the most part. But in mechanical terms, as described in the manual section under Coverage/Exposure, there is no difference between the two. The value for Cogmind is 100, but every robot has as different value (you could theoretically work out this static value for every robot by calculating it from their exposure% in combination with the known coverage of all parts they have attached).
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon

b_sen

  • Derelict
  • **
  • Shared a Confirmed Stealth Win
  • Posts: 66
    • View Profile
Re: Attack Resolution Process
« Reply #11 on: May 01, 2018, 08:34:47 PM »

Since we're on the subject of terminology for the coverage / exposure mechanics, some remarks from my experience:
  • When I first read the manual (shortly after hitting Factory for the first time), the distinction between part coverage and core exposure did serve to emphasize that parts cover and protect cores, which suits the tactical lesson that should be imparted to new players about keeping slots full.
  • However, having "core exposure" potentially refer to both the static value inherent to the robot core and the calculated chance of that core being hit when the whole robot is hit is confusing; I myself didn't know exactly how the buff to core hit chance for piercing damage worked until I read this thread.
  • In my prequel mockup series, where these values are not static because the player can design parts and cores alike (though tiny cores are expensive), I did change this to suit the game: coverage is always the value set by the part / core design, while exposure is always the calculated chance to be hit when the robot is hit, and is not defined without a specified robot.  (And yes, I did calculate the static value for Engineers from their exposure % and part coverage. :P )

Your call on what terminology is best for Cogmind. :)
Logged

Kyzrati

  • Administrator
  • True Cogmind
  • *****
  • Posts: 4477
    • View Profile
    • Cogmind
Re: Attack Resolution Process
« Reply #12 on: May 02, 2018, 03:48:09 AM »

Yeah I'm aware that bit may not be obvious, but it's also not too important (the final percentage is what's important). Technically I don't set the static values myself nor do I know them :P. From almost immediately at the beginning of Cogmind 7DRL development I realized that setting static values manually is unnecessarily complicated. What really needs to be done for proper balance is to set the desired final core exposure percent (since this is a vital number that will determine how easy it is to destroy a robot), and let the game calculate the static value automatically for each variant depending on what other parts they have by default. This makes it far easier to compare robots by how likely they are to be destroyed, both in terms of design and for the player.
Logged
Josh Ge, Developer - Dev Blog | @GridSageGames | Patreon