Config

常规

#玩家能受到最大外伤,默认16
#范围: 0.0 ~ 1.7976931348623157E308
MaxWound = 16.0

#有多少伤害会转化为外伤,默认25%
#范围: 0.0 ~ 1.0
WoundRate = 0.25

#玩家每tick能自然恢复外伤,默认3.0E-5
#范围: 0.0 ~ 1.7976931348623157E308
NatureHeal = 3.0E-5

#重型护盾默认在伤害达到多少时触发,默认20
#Range: 0.0 ~ 1.7976931348623157E308
ShieldProtect = 20.0

难度

#在不同难度下玩家获得的外伤抗性
Peaceful = 1.0
Easy = 0.9
Normal = 0.5
Hard = 0.2
HardcoreMode = 0.0

伤害源

#以下哪些伤害源会造成外伤
Player = false
Mob = true
Fire = true
Explosion = true
Fall = false
Magic = true
Drown = false
Other = true

CraftTweaker

给 crafttweaker.api.player.MCPlayerEntity 拓展了方法,详见下表:

方法名返回值说明
getWound()float获得玩家当前外伤
setWound(float value)
void设置玩家外伤
setWoundResistance(float value)
void设置玩家独立外伤抗性
getCapWoundResistance()
float 获取玩家独立外伤抗性
getWoundResistance()
float获取玩家总外伤抗性

Java

添加依赖:我什么时候能有自己的maven库啊

repositories {
    maven {url = "https://www.cursemaven.com"}
}

implementation fg.deobf("curse.maven:wound-811591:4346893")

玩家 Cap:

public interface IWound {

//获取玩家外伤
    float getWound();

//设置玩家外伤
    void setWound(float value);

//自然恢复外伤(在PlayerTick使用)
    void healWound();

//增加玩家外伤    
    void addWound(float value);

//获得玩家独立外伤抗性
    float getWoundResistance();

//设置玩家独立外伤抗性
    void setWoundResistance(float value);
}

获取 Cap:

PlayerEntity#getCapability(ModCapability.WOUND).ifPresent(c -> {
    ...
});