暂存
This commit is contained in:
Binary file not shown.
@@ -2139,9 +2139,9 @@
|
|||||||
<warmupTime>3</warmupTime>
|
<warmupTime>3</warmupTime>
|
||||||
<range>45</range>
|
<range>45</range>
|
||||||
<burstShotCount>3</burstShotCount>
|
<burstShotCount>3</burstShotCount>
|
||||||
<ticksBetweenBurstShots>30</ticksBetweenBurstShots>
|
<ticksBetweenBurstShots>20</ticksBetweenBurstShots>
|
||||||
<beamDamageDef>ARA_Damage_Freeze_ex</beamDamageDef>
|
<beamDamageDef>ARA_Damage_Freeze_ex</beamDamageDef>
|
||||||
<beamTotalDamage>25</beamTotalDamage>
|
<beamTotalDamage>15</beamTotalDamage>
|
||||||
|
|
||||||
<!-- 消除射线偏移的参数 -->
|
<!-- 消除射线偏移的参数 -->
|
||||||
<beamFullWidthRange>1000</beamFullWidthRange>
|
<beamFullWidthRange>1000</beamFullWidthRange>
|
||||||
|
|||||||
@@ -32,9 +32,6 @@ namespace ArachnaeSwarm
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// --- 日志输出 ---
|
|
||||||
Log.Message($"[DamageWorker_InstaKill] Executed on {pawn.LabelShort}. Target Part: {dinfo.HitPart.Label}. Damage: {totalDamage}.");
|
|
||||||
|
|
||||||
// 根据Hediff严重性从曲线计算所需的伤害百分比阈值
|
// 根据Hediff严重性从曲线计算所需的伤害百分比阈值
|
||||||
float requiredPercentage = extension.requiredDamagePercentageCurve.Evaluate(hediff.Severity);
|
float requiredPercentage = extension.requiredDamagePercentageCurve.Evaluate(hediff.Severity);
|
||||||
float destroyChance = extension.destroyChance;
|
float destroyChance = extension.destroyChance;
|
||||||
@@ -42,12 +39,9 @@ namespace ArachnaeSwarm
|
|||||||
// 计算本次伤害占目标部件最大生命值的实际百分比
|
// 计算本次伤害占目标部件最大生命值的实际百分比
|
||||||
float actualDamagePercentage = totalDamage / dinfo.HitPart.def.GetMaxHealth(pawn);
|
float actualDamagePercentage = totalDamage / dinfo.HitPart.def.GetMaxHealth(pawn);
|
||||||
|
|
||||||
Log.Message($"[DamageWorker_InstaKill] Hediff: {hediff.Label}, Severity: {hediff.Severity:F2}. RequiredDmg%: {requiredPercentage:P2}, ActualDmg%: {actualDamagePercentage:P2}.");
|
|
||||||
|
|
||||||
// 如果造成的实际伤害百分比 *大于或等于* 所需的百分比阈值,并且随机判定成功
|
// 如果造成的实际伤害百分比 *大于或等于* 所需的百分比阈值,并且随机判定成功
|
||||||
if (actualDamagePercentage >= requiredPercentage && Rand.Chance(destroyChance))
|
if (actualDamagePercentage >= requiredPercentage && Rand.Chance(destroyChance))
|
||||||
{
|
{
|
||||||
Log.Message($"[DamageWorker_InstaKill] Insta-Kill triggered! Applying massive damage to destroy part.");
|
|
||||||
// 直接施加一个足以摧毁该部位的伤害
|
// 直接施加一个足以摧毁该部位的伤害
|
||||||
base.ApplySpecialEffectsToPart(pawn, dinfo.HitPart.def.GetMaxHealth(pawn) + 1, dinfo, result);
|
base.ApplySpecialEffectsToPart(pawn, dinfo.HitPart.def.GetMaxHealth(pawn) + 1, dinfo, result);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user