Skip to content

Damages

Daybreak edited this page Oct 16, 2020 · 7 revisions

Damages

대미지 관련 유용한 기능들을 모아둔 유틸입니다. 아래는 사용할 수 있는 메소드 목록입니다.
다음과 같이 이용하세요: Damages.메소드(...);

// victim을 damage 대미지로 공격했을 때 실제로 얼마의 대미지가 들어갈지 계산해 반환합니다.
double getFinalDamage(LivingEntity victim, double damage, int flags);

플래그는 ARMOR (보호구 대미지 감소 포함), RESISTANCE (저항 효과 대미지 감소 포함), ENCHANTMENT (보호구 마법 부여 대미지 감소 포함), ABSORPTION (흡수 체력 대미지 감소 포함)이 있으며, 비트 연산으로 조합하여 flags에 인수로 전달하거나 Flag.ALL로 모든 대미지 감소 계산을 포함하세요.

// 현재 damager가 victim에게 damageCause의 이유로 damage 만큼의 대미지를 줄 수 있는지 여부를 반환합니다.
boolean canDamage(Entity victim, Entity damager, DamageCause damageCause, double damage);
// 현재 victim이 damageCause의 이유로 damage 만큼의 대미지를 받을 수 있는지 여부를 반환합니다.
boolean canDamage(Entity victim, DamageCause damageCause, double damage);
// entity에게 shooter가 발사자인 화살 대미지를 damage 만큼 줍니다.
boolean damageArrow(@NotNull Entity entity, @NotNull LivingEntity shooter, float damage);
// entity에게 damager가 공격자인 고정 대미지를 damage 만큼 줍니다.
boolean damageFixed(@NotNull Entity entity, @NotNull Player damager, float damage);
// entity에게 damager가 공격자인 마법 대미지를 damage 만큼 줍니다.
// ignoreArmor가 true인 경우 대미지가 방어구의 방어도에 의해 감소되지 않습니다.
boolean damageMagic(@NotNull Entity entity, @Nullable Player damager, boolean ignoreArmor, float damage);