重构部分伤害perk
This commit is contained in:
parent
d4deb03eaf
commit
f138f1aaf2
9 changed files with 101 additions and 77 deletions
|
@ -492,26 +492,15 @@ public class LivingEventHandler {
|
||||||
for (Perk.Type type : Perk.Type.values()) {
|
for (Perk.Type type : Perk.Type.values()) {
|
||||||
var instance = data.perk.getInstance(type);
|
var instance = data.perk.getInstance(type);
|
||||||
if (instance != null) {
|
if (instance != null) {
|
||||||
|
instance.perk().onHit(damage, data, instance, event.getEntity(), source);
|
||||||
damage = instance.perk().getModifiedDamage(damage, data, instance, event.getEntity(), source);
|
damage = instance.perk().getModifiedDamage(damage, data, instance, event.getEntity(), source);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
|
||||||
handleVorpalWeaponDamage(stack, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DamageTypeTool.isGunFireDamage(source) && source.getDirectEntity() instanceof ProjectileEntity projectile && projectile.isZoom()) {
|
|
||||||
handleGutshotStraightDamage(stack, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (DamageTypeTool.isGunDamage(source)) {
|
if (DamageTypeTool.isGunDamage(source)) {
|
||||||
handleKillingTallyDamage(stack, event);
|
handleKillingTallyDamage(stack, event);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DamageTypeTool.isGunFireDamage(source)) {
|
|
||||||
handleHeadSeekerTime(stack);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (source.getDirectEntity() instanceof ProjectileEntity projectile) {
|
if (source.getDirectEntity() instanceof ProjectileEntity projectile) {
|
||||||
if (data.perk.getLevel(ModPerks.FOURTH_TIMES_CHARM) > 0) {
|
if (data.perk.getLevel(ModPerks.FOURTH_TIMES_CHARM) > 0) {
|
||||||
float bypassArmorRate = projectile.getBypassArmorRate();
|
float bypassArmorRate = projectile.getBypassArmorRate();
|
||||||
|
@ -527,10 +516,6 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (DamageTypeTool.isHeadshotDamage(source)) {
|
|
||||||
handleHeadSeekerDamage(stack, event);
|
|
||||||
}
|
|
||||||
|
|
||||||
event.setAmount(damage);
|
event.setAmount(damage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -572,19 +557,12 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleGutshotStraightDamage(ItemStack stack, LivingIncomingDamageEvent event) {
|
|
||||||
int level = GunData.from(stack).perk.getLevel(ModPerks.GUTSHOT_STRAIGHT);
|
|
||||||
if (level == 0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
event.setAmount(event.getAmount() * (1.15f + 0.05f * level));
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void handleKillingTallyDamage(ItemStack stack, LivingIncomingDamageEvent event) {
|
private static void handleKillingTallyDamage(ItemStack stack, LivingIncomingDamageEvent event) {
|
||||||
var data = GunData.from(stack);
|
var data = GunData.from(stack);
|
||||||
int level = data.perk.getLevel(ModPerks.KILLING_TALLY);
|
int level = data.perk.getLevel(ModPerks.KILLING_TALLY);
|
||||||
if (level == 0) return;
|
if (level == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int killTally = data.perk.getTag(ModPerks.KILLING_TALLY).getInt("KillingTally");
|
int killTally = data.perk.getTag(ModPerks.KILLING_TALLY).getInt("KillingTally");
|
||||||
if (killTally == 0) {
|
if (killTally == 0) {
|
||||||
|
@ -661,26 +639,6 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleHeadSeekerTime(ItemStack stack) {
|
|
||||||
var data = GunData.from(stack);
|
|
||||||
int level = data.perk.getLevel(ModPerks.HEAD_SEEKER);
|
|
||||||
if (level == 0) return;
|
|
||||||
|
|
||||||
data.perk.getTag(ModPerks.HEAD_SEEKER).putInt("HeadSeeker", 11 + level * 2);
|
|
||||||
data.save();
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void handleHeadSeekerDamage(ItemStack stack, LivingIncomingDamageEvent event) {
|
|
||||||
var data = GunData.from(stack);
|
|
||||||
int level = data.perk.getLevel(ModPerks.HEAD_SEEKER);
|
|
||||||
if (level == 0) return;
|
|
||||||
|
|
||||||
var tag = data.perk.getTag(ModPerks.HEAD_SEEKER);
|
|
||||||
if (tag.getInt("HeadSeeker") > 0) {
|
|
||||||
event.setAmount(event.getAmount() * (1.095f + 0.0225f * level));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static void handleDesperado(ItemStack stack) {
|
private static void handleDesperado(ItemStack stack) {
|
||||||
var data = GunData.from(stack);
|
var data = GunData.from(stack);
|
||||||
int level = data.perk.getLevel(ModPerks.DESPERADO);
|
int level = data.perk.getLevel(ModPerks.DESPERADO);
|
||||||
|
@ -802,17 +760,6 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleVorpalWeaponDamage(ItemStack stack, LivingIncomingDamageEvent event) {
|
|
||||||
var entity = event.getEntity();
|
|
||||||
var data = GunData.from(stack);
|
|
||||||
|
|
||||||
int level = data.perk.getLevel(ModPerks.VORPAL_WEAPON);
|
|
||||||
if (level <= 0) return;
|
|
||||||
if (entity.getHealth() < 100.0f) return;
|
|
||||||
|
|
||||||
event.setAmount((float) (event.getAmount() + entity.getHealth() * 0.00002f * Math.pow(level, 2)));
|
|
||||||
}
|
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
public static void onKnockback(LivingKnockBackEvent event) {
|
public static void onKnockback(LivingKnockBackEvent event) {
|
||||||
ICustomKnockback knockback = ICustomKnockback.getInstance(event.getEntity());
|
ICustomKnockback knockback = ICustomKnockback.getInstance(event.getEntity());
|
||||||
|
|
|
@ -3,7 +3,10 @@ package com.atsuishio.superbwarfare.init;
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.atsuishio.superbwarfare.perk.AmmoPerk;
|
import com.atsuishio.superbwarfare.perk.AmmoPerk;
|
||||||
import com.atsuishio.superbwarfare.perk.Perk;
|
import com.atsuishio.superbwarfare.perk.Perk;
|
||||||
|
import com.atsuishio.superbwarfare.perk.damage.GutshotStraight;
|
||||||
|
import com.atsuishio.superbwarfare.perk.damage.HeadSeeker;
|
||||||
import com.atsuishio.superbwarfare.perk.damage.KillClip;
|
import com.atsuishio.superbwarfare.perk.damage.KillClip;
|
||||||
|
import com.atsuishio.superbwarfare.perk.damage.VorpalWeapon;
|
||||||
import com.atsuishio.superbwarfare.perk.functional.HealClip;
|
import com.atsuishio.superbwarfare.perk.functional.HealClip;
|
||||||
import net.minecraft.resources.ResourceKey;
|
import net.minecraft.resources.ResourceKey;
|
||||||
import net.minecraft.world.effect.MobEffects;
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
@ -69,13 +72,13 @@ public class ModPerks {
|
||||||
public static final DeferredRegister<Perk> DAMAGE_PERKS = DeferredRegister.create(Mod.loc("perk"), Mod.MODID);
|
public static final DeferredRegister<Perk> DAMAGE_PERKS = DeferredRegister.create(Mod.loc("perk"), Mod.MODID);
|
||||||
|
|
||||||
public static final DeferredHolder<Perk, Perk> KILL_CLIP = DAMAGE_PERKS.register("kill_clip", KillClip::new);
|
public static final DeferredHolder<Perk, Perk> KILL_CLIP = DAMAGE_PERKS.register("kill_clip", KillClip::new);
|
||||||
public static final DeferredHolder<Perk, Perk> GUTSHOT_STRAIGHT = DAMAGE_PERKS.register("gutshot_straight", () -> new Perk("gutshot_straight", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> GUTSHOT_STRAIGHT = DAMAGE_PERKS.register("gutshot_straight", GutshotStraight::new);
|
||||||
public static final DeferredHolder<Perk, Perk> KILLING_TALLY = DAMAGE_PERKS.register("killing_tally", () -> new Perk("killing_tally", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> KILLING_TALLY = DAMAGE_PERKS.register("killing_tally", () -> new Perk("killing_tally", Perk.Type.DAMAGE));
|
||||||
public static final DeferredHolder<Perk, Perk> HEAD_SEEKER = DAMAGE_PERKS.register("head_seeker", () -> new Perk("head_seeker", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> HEAD_SEEKER = DAMAGE_PERKS.register("head_seeker", HeadSeeker::new);
|
||||||
public static final DeferredHolder<Perk, Perk> MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE));
|
||||||
public static final DeferredHolder<Perk, Perk> VOLT_OVERLOAD = DAMAGE_PERKS.register("volt_overload", () -> new Perk("volt_overload", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> VOLT_OVERLOAD = DAMAGE_PERKS.register("volt_overload", () -> new Perk("volt_overload", Perk.Type.DAMAGE));
|
||||||
public static final DeferredHolder<Perk, Perk> DESPERADO = DAMAGE_PERKS.register("desperado", () -> new Perk("desperado", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> DESPERADO = DAMAGE_PERKS.register("desperado", () -> new Perk("desperado", Perk.Type.DAMAGE));
|
||||||
public static final DeferredHolder<Perk, Perk> VORPAL_WEAPON = DAMAGE_PERKS.register("vorpal_weapon", () -> new Perk("vorpal_weapon", Perk.Type.DAMAGE));
|
public static final DeferredHolder<Perk, Perk> VORPAL_WEAPON = DAMAGE_PERKS.register("vorpal_weapon", VorpalWeapon::new);
|
||||||
|
|
||||||
// public static void registerCompatPerks() {
|
// public static void registerCompatPerks() {
|
||||||
// if (ModList.get().isLoaded(CompatHolder.DMV)) {
|
// if (ModList.get().isLoaded(CompatHolder.DMV)) {
|
||||||
|
|
|
@ -203,8 +203,6 @@ public abstract class GunItem extends Item implements CustomRendererItem {
|
||||||
|
|
||||||
perk.reduceCooldown(ModPerks.FOURTH_TIMES_CHARM, "FourthTimesCharmTick");
|
perk.reduceCooldown(ModPerks.FOURTH_TIMES_CHARM, "FourthTimesCharmTick");
|
||||||
|
|
||||||
perk.reduceCooldown(ModPerks.HEAD_SEEKER, "HeadSeeker");
|
|
||||||
|
|
||||||
perk.reduceCooldown(ModPerks.DESPERADO, "DesperadoTime");
|
perk.reduceCooldown(ModPerks.DESPERADO, "DesperadoTime");
|
||||||
perk.reduceCooldown(ModPerks.DESPERADO, "DesperadoTimePost");
|
perk.reduceCooldown(ModPerks.DESPERADO, "DesperadoTimePost");
|
||||||
|
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class Perk {
|
||||||
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onShoot() {
|
public void onHit(float damage, GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
||||||
}
|
}
|
||||||
|
|
||||||
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
|
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.atsuishio.superbwarfare.perk.damage;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.entity.projectile.ProjectileEntity;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||||
|
import com.atsuishio.superbwarfare.perk.Perk;
|
||||||
|
import com.atsuishio.superbwarfare.perk.PerkInstance;
|
||||||
|
import com.atsuishio.superbwarfare.tools.DamageTypeTool;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class GutshotStraight extends Perk {
|
||||||
|
|
||||||
|
public GutshotStraight() {
|
||||||
|
super("gutshot_straight", Perk.Type.DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
|
||||||
|
if (DamageTypeTool.isGunFireDamage(source) && source.getDirectEntity() instanceof ProjectileEntity projectile && projectile.isZoom()) {
|
||||||
|
return damage * (1.15f + 0.05f * instance.level());
|
||||||
|
}
|
||||||
|
return super.getModifiedDamage(damage, data, instance, target, source);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,38 @@
|
||||||
|
package com.atsuishio.superbwarfare.perk.damage;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||||
|
import com.atsuishio.superbwarfare.perk.Perk;
|
||||||
|
import com.atsuishio.superbwarfare.perk.PerkInstance;
|
||||||
|
import com.atsuishio.superbwarfare.tools.DamageTypeTool;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class HeadSeeker extends Perk {
|
||||||
|
|
||||||
|
public HeadSeeker() {
|
||||||
|
super("head_seeker", Perk.Type.DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void tick(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
|
data.perk.reduceCooldown(this, "HeadSeeker");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onHit(float damage, GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
||||||
|
if (DamageTypeTool.isGunFireDamage(source)) {
|
||||||
|
data.perk.getTag(this).putInt("HeadSeeker", 11 + instance.level() * 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
|
||||||
|
if (DamageTypeTool.isHeadshotDamage(source)) {
|
||||||
|
if (data.perk.getTag(this).getInt("HeadSeeker") > 0) {
|
||||||
|
return damage * (1.095f + 0.0225f * instance.level());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getModifiedDamage(damage, data, instance, target, source);
|
||||||
|
}
|
||||||
|
}
|
|
@ -17,15 +17,12 @@ public class KillClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void tick(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.tick(data, instance, living);
|
|
||||||
data.perk.reduceCooldown(this, "KillClipReloadTime");
|
data.perk.reduceCooldown(this, "KillClipReloadTime");
|
||||||
data.perk.reduceCooldown(this, "KillClipTime");
|
data.perk.reduceCooldown(this, "KillClipTime");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void preReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.preReload(data, instance, living);
|
|
||||||
|
|
||||||
int time = data.perk.getTag(this).getInt("KillClipReloadTime");
|
int time = data.perk.getTag(this).getInt("KillClipReloadTime");
|
||||||
if (time > 0) {
|
if (time > 0) {
|
||||||
data.perk.getTag(this).remove("KillClipReloadTime");
|
data.perk.getTag(this).remove("KillClipReloadTime");
|
||||||
|
@ -37,8 +34,6 @@ public class KillClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void postReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.postReload(data, instance, living);
|
|
||||||
|
|
||||||
if (!data.perk.getTag(this).getBoolean("KillClip")) {
|
if (!data.perk.getTag(this).getBoolean("KillClip")) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -49,8 +44,6 @@ public class KillClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
||||||
super.onKill(data, instance, target, source);
|
|
||||||
|
|
||||||
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
||||||
int killClipLevel = instance.level();
|
int killClipLevel = instance.level();
|
||||||
if (killClipLevel != 0) {
|
if (killClipLevel != 0) {
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.atsuishio.superbwarfare.perk.damage;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.init.ModDamageTypes;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.data.GunData;
|
||||||
|
import com.atsuishio.superbwarfare.perk.Perk;
|
||||||
|
import com.atsuishio.superbwarfare.perk.PerkInstance;
|
||||||
|
import com.atsuishio.superbwarfare.tools.DamageTypeTool;
|
||||||
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
|
public class VorpalWeapon extends Perk {
|
||||||
|
|
||||||
|
public VorpalWeapon() {
|
||||||
|
super("vorpal_weapon", Perk.Type.DAMAGE);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public float getModifiedDamage(float damage, GunData data, PerkInstance instance, @Nullable LivingEntity target, DamageSource source) {
|
||||||
|
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
||||||
|
if (target != null && target.getHealth() >= 100.0f) {
|
||||||
|
return (float) (damage + target.getHealth() * 0.00002f * Math.pow(instance.level(), 2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return super.getModifiedDamage(damage, data, instance, target, source);
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,14 +20,11 @@ public class HealClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void tick(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void tick(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.tick(data, instance, living);
|
|
||||||
data.perk.reduceCooldown(this, "HealClipTime");
|
data.perk.reduceCooldown(this, "HealClipTime");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
public void onKill(GunData data, PerkInstance instance, LivingEntity target, DamageSource source) {
|
||||||
super.onKill(data, instance, target, source);
|
|
||||||
|
|
||||||
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
if (DamageTypeTool.isGunDamage(source) || source.is(ModDamageTypes.PROJECTILE_BOOM)) {
|
||||||
int healClipLevel = instance.level();
|
int healClipLevel = instance.level();
|
||||||
if (healClipLevel != 0) {
|
if (healClipLevel != 0) {
|
||||||
|
@ -38,8 +35,6 @@ public class HealClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void preReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void preReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.preReload(data, instance, living);
|
|
||||||
|
|
||||||
int time = data.perk.getTag(this).getInt("HealClipTime");
|
int time = data.perk.getTag(this).getInt("HealClipTime");
|
||||||
if (time > 0) {
|
if (time > 0) {
|
||||||
data.perk.getTag(this).remove("HealClipTime");
|
data.perk.getTag(this).remove("HealClipTime");
|
||||||
|
@ -51,8 +46,6 @@ public class HealClip extends Perk {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void postReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
public void postReload(GunData data, PerkInstance instance, @Nullable LivingEntity living) {
|
||||||
super.postReload(data, instance, living);
|
|
||||||
|
|
||||||
if (living == null) return;
|
if (living == null) return;
|
||||||
|
|
||||||
if (!data.perk.getTag(this).contains("HealClip")) {
|
if (!data.perk.getTag(this).contains("HealClip")) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue