46 lines
1.2 KiB
C#
46 lines
1.2 KiB
C#
using RimWorld;
|
||
using Verse;
|
||
using UnityEngine;
|
||
|
||
namespace ArachnaeSwarm
|
||
{
|
||
public class Hediff_Frozen : Hediff_Injury
|
||
{
|
||
// 我们需要覆盖这个方法来改变在健康面板上显示的标签
|
||
public override string LabelInBrackets
|
||
{
|
||
get
|
||
{
|
||
// 如果严重性达到了部位的满生命值,就显示“完全冷冻”
|
||
if (Severity >= Part.def.GetMaxHealth(pawn))
|
||
{
|
||
return "Fully Frozen";
|
||
}
|
||
return base.LabelInBrackets;
|
||
}
|
||
}
|
||
|
||
// 当部位的疼痛感,可以根据严重性调整
|
||
public override float PainOffset
|
||
{
|
||
get
|
||
{
|
||
// 冷冻不造成额外疼痛
|
||
return 0f;
|
||
}
|
||
}
|
||
|
||
// 当一个部位的伤害被治疗(在这里就是冷冻值减少)时调用
|
||
public override void Heal(float amount)
|
||
{
|
||
// 减少严重性,但不让它低于0
|
||
Severity -= amount;
|
||
if (Severity < 0)
|
||
{
|
||
Severity = 0;
|
||
}
|
||
}
|
||
|
||
// 伤害拦截逻辑将通过 Harmony 补丁实现,不在 Hediff 内部处理
|
||
}
|
||
} |