Check if partner died - but did not work fully

This commit is contained in:
Vegapnk 2024-07-02 10:43:50 +02:00
parent 63480fb994
commit 02f57c2316

View file

@ -86,9 +86,8 @@ namespace RJW_Genes
instigator: damager, category: DamageInfo.SourceCategory.ThingOrUnknown,
hitPart: GetRandomOralBodyPartRecord(damaged, allow_for_inner_damage));
var result = DamageWorker.Apply(dInfo, damaged);
return result.LastHitPart.IsMissingForPawn(damaged);
DamageWorker.DamageResult result = DamageWorker.Apply(dInfo, damaged);
return CheckIfNeedsToAbortSexDriver(damaged, result);
}
case xxx.rjwSextype.Vaginal:
@ -107,8 +106,8 @@ namespace RJW_Genes
instigator: damager, category: DamageInfo.SourceCategory.ThingOrUnknown,
hitPart: GetRandomGenitalBodyPartRecord(damaged, allow_for_inner_damage));
var result = DamageWorker.Apply(dInfo, damaged);
return result.LastHitPart.IsMissingForPawn(damaged);
DamageWorker.DamageResult result = DamageWorker.Apply(dInfo, damaged);
return CheckIfNeedsToAbortSexDriver(damaged, result);
}
case xxx.rjwSextype.Anal:
@ -126,18 +125,21 @@ namespace RJW_Genes
instigator: damager, category: DamageInfo.SourceCategory.ThingOrUnknown,
hitPart: GetRandomAnalBodyPartRecord(damaged, allow_for_inner_damage));
dInfo.SetApplyAllDamage(false);
dInfo.SetAllowDamagePropagation(true);
var result = DamageWorker.Apply(dInfo, damaged);
return result.LastHitPart.IsMissingForPawn(damaged);
DamageWorker.DamageResult result = DamageWorker.Apply(dInfo, damaged);
return CheckIfNeedsToAbortSexDriver(damaged, result);
}
default: return false;
}
}
private static bool CheckIfNeedsToAbortSexDriver(Pawn damaged, DamageWorker.DamageResult result)
{
bool partner_killed = damaged.Dead;
bool part_destroyed = result.LastHitPart.IsMissingForPawn(damaged);
return partner_killed || part_destroyed;
}
/// <summary>
/// Checks both pawns for their genes,
/// and returns the pawn that has the rjw_genes_dangerous_genitalia def.