添加head seeker perk
This commit is contained in:
parent
0a2557751a
commit
037e7acdde
5 changed files with 38 additions and 1 deletions
|
@ -286,6 +286,10 @@ public class LivingEventHandler {
|
||||||
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 (PerkHelper.getItemPerkLevel(ModPerks.FOURTH_TIMES_CHARM.get(), stack) > 0) {
|
if (PerkHelper.getItemPerkLevel(ModPerks.FOURTH_TIMES_CHARM.get(), stack) > 0) {
|
||||||
float bypassArmorRate = projectile.getBypassArmorRate();
|
float bypassArmorRate = projectile.getBypassArmorRate();
|
||||||
|
@ -300,6 +304,10 @@ public class LivingEventHandler {
|
||||||
handleFieldDoctor(stack, event, attacker);
|
handleFieldDoctor(stack, event, attacker);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (DamageTypeTool.isGunHeadshotDamage(source)) {
|
||||||
|
handleHeadSeekerDamage(stack, event);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleGunPerksWhenDeath(LivingDeathEvent event) {
|
private static void handleGunPerksWhenDeath(LivingDeathEvent event) {
|
||||||
|
@ -443,4 +451,23 @@ public class LivingEventHandler {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void handleHeadSeekerTime(ItemStack stack) {
|
||||||
|
int level = PerkHelper.getItemPerkLevel(ModPerks.HEAD_SEEKER.get(), stack);
|
||||||
|
if (level == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
stack.getOrCreateTag().putInt("HeadSeeker", 11 + level * 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void handleHeadSeekerDamage(ItemStack stack, LivingHurtEvent event) {
|
||||||
|
int level = PerkHelper.getItemPerkLevel(ModPerks.HEAD_SEEKER.get(), stack);
|
||||||
|
if (level == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getInt("HeadSeeker") > 0) {
|
||||||
|
event.setAmount(event.getAmount() * (1.095f + 0.0225f * level));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,8 +56,10 @@ public class ModPerks {
|
||||||
public static final RegistryObject<Perk> KILL_CLIP = DAMAGE_PERKS.register("kill_clip", () -> new Perk("kill_clip", Perk.Type.DAMAGE));
|
public static final RegistryObject<Perk> KILL_CLIP = DAMAGE_PERKS.register("kill_clip", () -> new Perk("kill_clip", Perk.Type.DAMAGE));
|
||||||
public static final RegistryObject<Perk> GUTSHOT_STRAIGHT = DAMAGE_PERKS.register("gutshot_straight", () -> new Perk("gutshot_straight", Perk.Type.DAMAGE));
|
public static final RegistryObject<Perk> GUTSHOT_STRAIGHT = DAMAGE_PERKS.register("gutshot_straight", () -> new Perk("gutshot_straight", Perk.Type.DAMAGE));
|
||||||
public static final RegistryObject<Perk> KILLING_TALLY = DAMAGE_PERKS.register("killing_tally", () -> new Perk("killing_tally", Perk.Type.DAMAGE));
|
public static final RegistryObject<Perk> KILLING_TALLY = DAMAGE_PERKS.register("killing_tally", () -> new Perk("killing_tally", Perk.Type.DAMAGE));
|
||||||
|
public static final RegistryObject<Perk> HEAD_SEEKER = DAMAGE_PERKS.register("head_seeker", () -> new Perk("head_seeker", Perk.Type.DAMAGE));
|
||||||
public static final RegistryObject<Perk> MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE));
|
public static final RegistryObject<Perk> MONSTER_HUNTER = DAMAGE_PERKS.register("monster_hunter", () -> new Perk("monster_hunter", Perk.Type.DAMAGE));
|
||||||
|
|
||||||
|
|
||||||
public static void registerCompatPerks() {
|
public static void registerCompatPerks() {
|
||||||
if (ModList.get().isLoaded(CompatHolder.DMV)) {
|
if (ModList.get().isLoaded(CompatHolder.DMV)) {
|
||||||
AMMO_PERKS.register("blade_bullet", () -> new AmmoPerk(new AmmoPerk.Builder("blade_bullet", Perk.Type.AMMO)
|
AMMO_PERKS.register("blade_bullet", () -> new AmmoPerk(new AmmoPerk.Builder("blade_bullet", Perk.Type.AMMO)
|
||||||
|
|
|
@ -123,7 +123,7 @@ public abstract class GunItem extends Item {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isFoil(ItemStack stack) {
|
public boolean isFoil(ItemStack stack) {
|
||||||
return stack.getOrCreateTag().getBoolean("beast");
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@SubscribeEvent
|
@SubscribeEvent
|
||||||
|
@ -176,6 +176,10 @@ public abstract class GunItem extends Item {
|
||||||
stack.getOrCreateTag().putInt("ammo", Math.min(mag, stack.getOrCreateTag().getInt("ammo") + 2));
|
stack.getOrCreateTag().putInt("ammo", Math.min(mag, stack.getOrCreateTag().getInt("ammo") + 2));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stack.getOrCreateTag().getInt("HeadSeeker") > 0) {
|
||||||
|
stack.getOrCreateTag().putInt("HeadSeeker", Math.max(0, stack.getOrCreateTag().getInt("HeadSeeker") - 1));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canApplyPerk(ItemStack stack, Perk perk, Perk.Type slot) {
|
public boolean canApplyPerk(ItemStack stack, Perk perk, Perk.Type slot) {
|
||||||
|
|
|
@ -202,6 +202,8 @@
|
||||||
"des.superbwarfare.killing_tally": "Kill increases the weapon's damage until it is stowed or reloaded",
|
"des.superbwarfare.killing_tally": "Kill increases the weapon's damage until it is stowed or reloaded",
|
||||||
"item.superbwarfare.gutshot_straight": "Gutshot Straight",
|
"item.superbwarfare.gutshot_straight": "Gutshot Straight",
|
||||||
"des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage",
|
"des.superbwarfare.gutshot_straight": "Aiming down sights increases body shot damage",
|
||||||
|
"item.superbwarfare.head_seeker": "Head Seeker",
|
||||||
|
"des.superbwarfare.head_seeker": "Body shots landed with this weapon increase precision damage for a short time",
|
||||||
|
|
||||||
"perk.superbwarfare.tips": "[Perks]",
|
"perk.superbwarfare.tips": "[Perks]",
|
||||||
"perk.superbwarfare.slot": "Type: ",
|
"perk.superbwarfare.slot": "Type: ",
|
||||||
|
|
|
@ -202,6 +202,8 @@
|
||||||
"des.superbwarfare.killing_tally": "完成击杀可提高此武器的伤害,效果持续至切换或填装武器",
|
"des.superbwarfare.killing_tally": "完成击杀可提高此武器的伤害,效果持续至切换或填装武器",
|
||||||
"item.superbwarfare.gutshot_straight": "直击要害",
|
"item.superbwarfare.gutshot_straight": "直击要害",
|
||||||
"des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害",
|
"des.superbwarfare.gutshot_straight": "瞄准时增加身体射击伤害",
|
||||||
|
"item.superbwarfare.head_seeker": "死亡寻觅者",
|
||||||
|
"des.superbwarfare.head_seeker": "使用此武器命中身体可在短时间内提高精准伤害",
|
||||||
|
|
||||||
"perk.superbwarfare.tips": "[武器模组]",
|
"perk.superbwarfare.tips": "[武器模组]",
|
||||||
"perk.superbwarfare.slot": "类型: ",
|
"perk.superbwarfare.slot": "类型: ",
|
||||||
|
|
Loading…
Add table
Reference in a new issue