At the moment the game has 2 paths to trigger a guilty check.
- 1. When a pawn is downed and his `pawn.GetLord().LordJob` is of particular types, e.g. `LordJob_AssultColony`, via `GuiltyOnDowned`
- 2. When a pawn damages a player pawn.
I notice some scenarios feel like guilty actions but the current logic fails to mark guilty.
For example, in a quest of "Orbital Drone Hack", `LordJob` is `LordJob_AssultThings` which somehow is not considered `GuiltyOnDowned` from the first path.
Hence the game relies on the second path to determine the guilt of an enemy. Now lets look at the following cases
- An enemy hits my slaves. The code checks `pawn.HomeFaction.IsPlayer`, but slaves belong to their original faction. So in this case the game would consider the attacker innocent.
- An enemy is downed before he manages to deal any damage to my pawn. E.g. he hasn't got a chance to attack, his attack misses, his attack is dodged. The guilty check is in `Pawn_HealthTracker.PreApplyDamage`, as long as the damage doesn't take place, he is considered innocent.
- 1. When a pawn is downed and his `pawn.GetLord().LordJob` is of particular types, e.g. `LordJob_AssultColony`, via `GuiltyOnDowned`
- 2. When a pawn damages a player pawn.
I notice some scenarios feel like guilty actions but the current logic fails to mark guilty.
For example, in a quest of "Orbital Drone Hack", `LordJob` is `LordJob_AssultThings` which somehow is not considered `GuiltyOnDowned` from the first path.
Hence the game relies on the second path to determine the guilt of an enemy. Now lets look at the following cases
- An enemy hits my slaves. The code checks `pawn.HomeFaction.IsPlayer`, but slaves belong to their original faction. So in this case the game would consider the attacker innocent.
- An enemy is downed before he manages to deal any damage to my pawn. E.g. he hasn't got a chance to attack, his attack misses, his attack is dodged. The guilty check is in `Pawn_HealthTracker.PreApplyDamage`, as long as the damage doesn't take place, he is considered innocent.